From 72eb98651e0bc197dd58cc44cbd3e8c6f33f17ad Mon Sep 17 00:00:00 2001 From: mikera Date: Fri, 8 Dec 2023 02:24:18 +0000 Subject: [PATCH] Extra testing for fungible token offers --- convex-core/src/main/cvx/convex/asset.cvx | 8 +++---- .../src/test/java/convex/lib/AssetTester.java | 22 ++++++++++++++++++- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/convex-core/src/main/cvx/convex/asset.cvx b/convex-core/src/main/cvx/convex/asset.cvx index be868eafd..2096e64f1 100644 --- a/convex-core/src/main/cvx/convex/asset.cvx +++ b/convex-core/src/main/cvx/convex/asset.cvx @@ -85,10 +85,10 @@ (defn get-offer ^{:doc {:description ["Gets the current offer from `sender` to `receiver` for a given asset." "Returns the quantity representing the current offer. Will be the 'zero' quantity if no open offer exists."] - :examples [{:code "(get-offer asset-address sender receiver)"}] - :signature [{:params [asset-address sender receiver]}]}} - [asset-address sender receiver] - (query (call asset-address + :examples [{:code "(get-offer asset-path sender receiver)"}] + :signature [{:params [asset-path sender receiver]}]}} + [path sender receiver] + (query (call path (get-offer sender receiver)))) diff --git a/convex-core/src/test/java/convex/lib/AssetTester.java b/convex-core/src/test/java/convex/lib/AssetTester.java index 692e1bcef..688d9b9d5 100644 --- a/convex-core/src/test/java/convex/lib/AssetTester.java +++ b/convex-core/src/test/java/convex/lib/AssetTester.java @@ -47,10 +47,30 @@ public static void doFungibleTests (Context ctx, ACell token, Address user) { assertEquals(0L, evalL(ctx,"(asset/balance token actor)")); assertTrue(BAL>0,"Should provide a user account with positive balance!"); - // New Address gets zero balance + // New Address gets zero offers { assertEquals(0L,evalL(ctx,"(asset/balance token (deploy nil))")); assertEquals(0L,evalL(ctx,"(asset/balance token (create-account *key*))")); + assertEquals(0L,evalL(ctx,"(asset/get-offer token (create-account *key*) (deploy nil))")); + } + + // New Address gets zero offers + { + assertEquals(0L,evalL(ctx,"(asset/balance token (deploy nil))")); + assertEquals(0L,evalL(ctx,"(asset/balance token (create-account *key*))")); + assertEquals(0L,evalL(ctx,"(asset/get-offer token (create-account *key*) (deploy nil))")); + } + + // New Address offers work + { + Context ctxx = step (ctx,"(do (def a1 (deploy nil)))"); + assertEquals(0L,evalL(ctxx,"(asset/get-offer token *address* a1)")); + ctxx = step (ctxx,"(asset/offer a1 token 1000)"); + assertCVMEquals(1000L,ctxx.getResult()); + assertEquals(1000L,evalL(ctxx,"(asset/get-offer token *address* a1)")); + ctxx = step(ctxx,"(asset/offer a1 [token 0])"); + assertCVMEquals(0L,ctxx.getResult()); + assertEquals(0L,evalL(ctxx,"(asset/get-offer token *address* a1)")); } // transfer all to self, should not affect balance