From 2ea745be7c619f527a123870dc17a52fb9195056 Mon Sep 17 00:00:00 2001 From: Lyova Potyomkin Date: Mon, 24 May 2021 14:32:11 +0300 Subject: [PATCH 1/3] NFTs now have 0 decimals --- core/lib/storage/src/chain/state/mod.rs | 2 +- core/lib/types/src/tokens.rs | 6 +++--- sdk/zksync-rs/src/operations/transfer_nft.rs | 2 +- sdk/zksync.js/src/utils.ts | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/core/lib/storage/src/chain/state/mod.rs b/core/lib/storage/src/chain/state/mod.rs index b7bdc716c9..1a07e0ae85 100644 --- a/core/lib/storage/src/chain/state/mod.rs +++ b/core/lib/storage/src/chain/state/mod.rs @@ -281,7 +281,7 @@ impl<'a, 'c> StateSchema<'a, 'c> { upd.token_id, address, upd.symbol, - 1 + 0 ) .execute(self.0.conn()) .await?; diff --git a/core/lib/types/src/tokens.rs b/core/lib/types/src/tokens.rs index 0adfc1d8fe..a50f2b1e1a 100644 --- a/core/lib/types/src/tokens.rs +++ b/core/lib/types/src/tokens.rs @@ -117,12 +117,12 @@ impl Token { } } - pub fn new_nft(id: TokenId, address: Address, symbol: &str, decimals: u8) -> Self { + pub fn new_nft(id: TokenId, symbol: &str) -> Self { Self { id, - address, + address: Default::default(), symbol: symbol.to_string(), - decimals, + decimals: 0, is_nft: true, } } diff --git a/sdk/zksync-rs/src/operations/transfer_nft.rs b/sdk/zksync-rs/src/operations/transfer_nft.rs index 92c05216d1..40a9afd26f 100644 --- a/sdk/zksync-rs/src/operations/transfer_nft.rs +++ b/sdk/zksync-rs/src/operations/transfer_nft.rs @@ -94,7 +94,7 @@ where }; // Address is not used in signing, thus default can be passed to the constructor. - let nft_token = Token::new_nft(nft.id, Address::default(), &nft.symbol, 1); + let nft_token = Token::new_nft(nft.id, &nft.symbol); let (tx_nft, tx_nft_signature) = self .wallet .signer diff --git a/sdk/zksync.js/src/utils.ts b/sdk/zksync.js/src/utils.ts index d2c08144cb..aedf477268 100644 --- a/sdk/zksync.js/src/utils.ts +++ b/sdk/zksync.js/src/utils.ts @@ -383,7 +383,7 @@ export class TokenSet { public resolveTokenDecimals(tokenLike: TokenOrId): number { if (isNFT(tokenLike)) { - return 1; + return 0; } return this.resolveTokenObject(tokenLike).decimals; } From 8dd7a7fb46f5a7c7c3bf34324628cd1832e17855 Mon Sep 17 00:00:00 2001 From: Lyova Potyomkin Date: Mon, 24 May 2021 15:07:54 +0300 Subject: [PATCH 2/3] Increase timeout --- core/tests/ts-tests/package.json | 2 +- core/tests/ts-tests/tests/mint-nft.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/core/tests/ts-tests/package.json b/core/tests/ts-tests/package.json index 3ce8bcf6a0..49b7fcca75 100644 --- a/core/tests/ts-tests/package.json +++ b/core/tests/ts-tests/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "license": "MIT", "mocha": { - "timeout": 240000, + "timeout": 300000, "exit": true, "color": false, "slow": 0, diff --git a/core/tests/ts-tests/tests/mint-nft.ts b/core/tests/ts-tests/tests/mint-nft.ts index 6a20f9469d..18404695fe 100644 --- a/core/tests/ts-tests/tests/mint-nft.ts +++ b/core/tests/ts-tests/tests/mint-nft.ts @@ -50,8 +50,8 @@ Tester.prototype.testMintNFT = async function ( expect(balanceBefore.sub(balanceAfter).eq(fee), 'Wrong amount in wallet after withdraw').to.be.true; const state = await receiver.getAccountState(); - const nft: any = Object.values(state.committed.nfts)[0]; - expect(nft !== undefined); + const nft = Object.values(state.committed.nfts)[0]; + expect(nft).to.exist; expect(nft.contentHash).eq(utils.hexlify(contentHash)); return nft; @@ -70,9 +70,9 @@ Tester.prototype.testGetNFT = async function (wallet: Wallet, feeToken: TokenLik await handle.awaitReceipt(); this.runningFee = this.runningFee.add(fee); const state = await wallet.getAccountState(); - const nft: any = Object.values(state.committed.nfts)[0]; + const nft = Object.values(state.committed.nfts)[0]; const nft1 = await wallet.provider.getNFT(nft.id); - expect(nft1).eq(null, ' NFT does not exist yet'); + expect(nft1).eq(null, 'NFT does not exist yet'); await handle.awaitVerifyReceipt(); const nft2 = await wallet.provider.getNFT(nft.id); expect(nft2.id).eq(nft.id); From 1b23e1e155e0308e604dc4f31adedc477d55a977 Mon Sep 17 00:00:00 2001 From: Lyova Potyomkin Date: Mon, 24 May 2021 19:10:08 +0300 Subject: [PATCH 3/3] Remove outdated comment --- sdk/zksync-rs/src/operations/transfer_nft.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/sdk/zksync-rs/src/operations/transfer_nft.rs b/sdk/zksync-rs/src/operations/transfer_nft.rs index 40a9afd26f..543d99c0d8 100644 --- a/sdk/zksync-rs/src/operations/transfer_nft.rs +++ b/sdk/zksync-rs/src/operations/transfer_nft.rs @@ -93,7 +93,6 @@ where } }; - // Address is not used in signing, thus default can be passed to the constructor. let nft_token = Token::new_nft(nft.id, &nft.symbol); let (tx_nft, tx_nft_signature) = self .wallet