UNPKG

@iyonger/aptos-web3-bip44.js

Version:
100 lines (84 loc) 3.51 kB
// Copyright (c) Aptos // SPDX-License-Identifier: Apache-2.0 import { FaucetClient } from "./faucet_client"; import { AptosAccount } from "./aptos_account"; import { AptosClient } from "./aptos_client"; import { TokenClient } from "./token_client"; import { FAUCET_URL, NODE_URL } from "./utils/test_helper.test"; test( "full tutorial nft token flow", async () => { const client = new AptosClient(NODE_URL); const faucetClient = new FaucetClient(NODE_URL, FAUCET_URL); const tokenClient = new TokenClient(client); const alice = new AptosAccount(); const bob = new AptosAccount(); // Fund both Alice's and Bob's Account await faucetClient.fundAccount(alice.address(), 10000000); await faucetClient.fundAccount(bob.address(), 10000000); const collectionName = "AliceCollection"; const tokenName = "Alice Token"; // Create collection and token on Alice's account await client.waitForTransaction( await tokenClient.createCollection(alice, collectionName, "Alice's simple collection", "https://aptos.dev"), { checkSuccess: true }, ); await client.waitForTransaction( await tokenClient.createToken( alice, collectionName, tokenName, "Alice's simple token", 1, "https://aptos.dev/img/nyan.jpeg", 1000, alice.address(), 0, 0, ["key"], ["2"], ["int"], ), { checkSuccess: true }, ); const tokenId = { token_data_id: { creator: alice.address().hex(), collection: collectionName, name: tokenName, }, property_version: "0", }; // Transfer Token from Alice's Account to Bob's Account await tokenClient.getCollectionData(alice.address().hex(), collectionName); let aliceBalance = await tokenClient.getTokenForAccount(alice.address().hex(), tokenId); expect(aliceBalance.amount).toBe("1"); const tokenData = await tokenClient.getTokenData(alice.address().hex(), collectionName, tokenName); expect(tokenData.name).toBe(tokenName); await client.waitForTransaction( await tokenClient.offerToken(alice, bob.address().hex(), alice.address().hex(), collectionName, tokenName, 1), { checkSuccess: true }, ); aliceBalance = await tokenClient.getTokenForAccount(alice.address().hex(), tokenId); expect(aliceBalance.amount).toBe("0"); await client.waitForTransaction( await tokenClient.cancelTokenOffer(alice, bob.address().hex(), alice.address().hex(), collectionName, tokenName), { checkSuccess: true }, ); aliceBalance = await tokenClient.getTokenForAccount(alice.address().hex(), tokenId); expect(aliceBalance.amount).toBe("1"); await client.waitForTransaction( await tokenClient.offerToken(alice, bob.address().hex(), alice.address().hex(), collectionName, tokenName, 1), { checkSuccess: true }, ); aliceBalance = await tokenClient.getTokenForAccount(alice.address().hex(), tokenId); expect(aliceBalance.amount).toBe("0"); await client.waitForTransaction( await tokenClient.claimToken(bob, alice.address().hex(), alice.address().hex(), collectionName, tokenName), { checkSuccess: true }, ); const bobBalance = await tokenClient.getTokenForAccount(bob.address().hex(), tokenId); expect(bobBalance.amount).toBe("1"); }, 60 * 1000, );