diff --git a/codex/contracts/market.nim b/codex/contracts/market.nim index 495a43ee..9d0799f9 100644 --- a/codex/contracts/market.nim +++ b/codex/contracts/market.nim @@ -23,25 +23,12 @@ type rewardRecipient: ?Address configuration: ?MarketplaceConfig requestCache: LruCache[string, StorageRequest] - allowanceLock: AsyncLock MarketSubscription = market.Subscription EventSubscription = ethers.Subscription OnChainMarketSubscription = ref object of MarketSubscription eventSubscription: EventSubscription -template withAllowanceLock*(market: OnChainMarket, body: untyped) = - if market.allowanceLock.isNil: - market.allowanceLock = newAsyncLock() - await market.allowanceLock.acquire() - try: - body - finally: - try: - market.allowanceLock.release() - except AsyncLockError as error: - raise newException(Defect, error.msg, error) - func new*( _: type OnChainMarket, contract: Marketplace, @@ -96,11 +83,7 @@ proc approveFunds( convertEthersError("Failed to approve funds"): let tokenAddress = await market.contract.token() let token = Erc20Token.new(tokenAddress, market.signer) - let owner = await market.signer.getAddress() - let spender = market.contract.address - market.withAllowanceLock: - let allowance = await token.allowance(owner, spender) - discard await token.approve(spender, allowance + amount).confirm(1) + discard await token.increaseAllowance(market.contract.address(), amount).confirm(1) method loadConfig*( market: OnChainMarket diff --git a/vendor/codex-contracts-eth b/vendor/codex-contracts-eth index f757de96..0bf13851 160000 --- a/vendor/codex-contracts-eth +++ b/vendor/codex-contracts-eth @@ -1 +1 @@ -Subproject commit f757de969e463c4ab924eb1bed0f40fcdc938d4b +Subproject commit 0bf138512b7c1c3b8d77c48376e47f702e47106c