diff --git a/examples/common.ts b/examples/common.ts index 0b9e940..77bf506 100644 --- a/examples/common.ts +++ b/examples/common.ts @@ -1,24 +1,34 @@ +import { AccountAddress, Aptos } from "@aptos-labs/ts-sdk"; -export const NODE_URL = process.env.APTOS_NODE_URL || "https://aptos-devnet.pontem.network"; -export const FAUCET_URL = process.env.APTOS_FAUCET_URL || "https://faucet.devnet.aptoslabs.com"; - -export const RESOURCE_ACCOUNT = "0xf5f11a0fa0ef6e2cd215d73cc3bd3c4cc2ad5b1c24625a690aadc9b13a57eaff"; -export const MODULES_ACCOUNT = "0x43417434fd869edee76cca2a4d2301e528a1551b1d719b75c350c3c97d15b8b9"; +export const RESOURCE_ACCOUNT = "0x61d2c22a6cb7831bee0f48363b0eec92369357aece0d1142062f7d5d85c7bef8"; +export const MODULES_ACCOUNT = "0x163df34fccbf003ce219d3f1d9e70d140b60622cb9dd47599c25fb2f797ba6e"; export const TokensMapping = { APTOS: '0x1::aptos_coin::AptosCoin', // APTOS - USDT: '0x43417434fd869edee76cca2a4d2301e528a1551b1d719b75c350c3c97d15b8b9::coins::USDT', //devnet USDT -}; + LSD: '0x53a30a6e5936c0a4c5140daed34de39d17ca7fcae08f947c02e979cef98a3719::coin::LSD', //LSD +} as const; -export type TxPayloadCallFunction = { - type: 'entry_function_payload'; - function: string; - type_arguments: string[]; - arguments: string[]; -}; +/** + * Prints the balance of an account + * @param aptos + * @param name + * @param address + * @returns {Promise<*>} + * + */ +export const balance = async (aptos: Aptos, name: string, address: AccountAddress) => { + const balances = await aptos.fungibleAsset.getCurrentFungibleAssetBalances({ + options: { + where: { + owner_address: { + _eq: address.toString(), + }, + } + } + }); + const aptBalance = balances.find(b => b.asset_type === TokensMapping.APTOS); + const amount = Number(aptBalance?.amount); -export const NETWORKS_MAPPING = { - TESTNET: 'testnet', - DEVNET: 'devnet', - MAINNET: 'mainnet' + console.log(`${name}'s balance is: ${amount}`); + return amount; }; diff --git a/examples/package.json b/examples/package.json index 8b645e5..4b101d5 100644 --- a/examples/package.json +++ b/examples/package.json @@ -9,12 +9,12 @@ "pool": "ts-node swap_and_pool_transactions.ts" }, "dependencies": { + "@aptos-labs/ts-sdk": "3.1.2", "@pontem/liquidswap-sdk": "file:../", "dotenv": "16.0.1" }, "devDependencies": { "ts-node": "^10.9.1", - "typescript": "^4.9.3", - "aptos": "^1.3.17" + "typescript": "^4.9.3" } } diff --git a/examples/swap_and_pool_transactions.ts b/examples/swap_and_pool_transactions.ts index a4bd181..8907c91 100644 --- a/examples/swap_and_pool_transactions.ts +++ b/examples/swap_and_pool_transactions.ts @@ -1,16 +1,12 @@ import dotenv from "dotenv"; import SDK from "@pontem/liquidswap-sdk"; -import { AptosClient, FaucetClient, AptosAccount, CoinClient } from 'aptos'; import { - NODE_URL, TokensMapping, - FAUCET_URL, RESOURCE_ACCOUNT, MODULES_ACCOUNT, - TxPayloadCallFunction, - NETWORKS_MAPPING, } from "./common"; +import { Network, NetworkToNodeAPI } from "@aptos-labs/ts-sdk"; dotenv.config(); @@ -18,7 +14,10 @@ dotenv.config(); // setup const sdk = new SDK({ - nodeUrl: NODE_URL, + nodeUrl: NetworkToNodeAPI[Network.MAINNET], + nodeOptions: { + network: Network.MAINNET, + }, networkOptions: { resourceAccount: RESOURCE_ACCOUNT, moduleAccount: MODULES_ACCOUNT, @@ -29,79 +28,37 @@ dotenv.config(); }, }, }); - const client = new AptosClient(NODE_URL); - const faucetClient = new FaucetClient(NODE_URL, FAUCET_URL); - - const coinClient = new CoinClient(client); - - // create local accounts - const alice = new AptosAccount(); try { - - // make Faucet create and fund accounts - await faucetClient.fundAccount(alice.address(), 100_000_000); - - // check balance - console.log(`Account balance: ${await coinClient.checkBalance(alice)}`); - - // Register account with coin - try { - const coinRegisterPayload = { - type: 'entry_function_payload', - function: '0x1::managed_coin::register', - type_arguments: [TokensMapping.USDT], - arguments: [], - } - - const rawTxn = await client.generateTransaction(alice.address(), coinRegisterPayload); - const bcsTxn = await client.signTransaction(alice, rawTxn); - const { hash } = await client.submitTransaction(bcsTxn); - await client.waitForTransaction(hash); - - console.log(`Coin ${TokensMapping.USDT} successfully Registered to Alice account`); - console.log(`Check on explorer: https://explorer.aptoslabs.com/txn/${hash}?network=${NETWORKS_MAPPING.DEVNET}`); - - } catch(e) { - console.log("Coin register error: ", e); - } - - // get Rate for USDT coin. - const usdtRate = await sdk.Swap.calculateRates({ + // get Rate for LSD coin. + const lsdRate = await sdk.Swap.calculateRates({ fromToken: TokensMapping.APTOS, - toToken: TokensMapping.USDT, + toToken: TokensMapping.LSD, amount: 10000000, // 0.1 APTOS curveType: 'uncorrelated', interactiveToken: 'from', }); - console.log('SsdtRate: ', usdtRate); + console.log('LsdRate: ', lsdRate); // create payload for swap transaction const swapTransactionPayload = await sdk.Swap.createSwapTransactionPayload({ fromToken: TokensMapping.APTOS, - toToken: TokensMapping.USDT, + toToken: TokensMapping.LSD, fromAmount: 10000000, // 0.1 APTOS - toAmount: Number(usdtRate), // USDT + toAmount: Number(lsdRate), // LSD interactiveToken: 'from', slippage: 0.005, stableSwapType: 'normal', curveType: 'uncorrelated', - }) as TxPayloadCallFunction; + }); console.log('Swap Transaction Payload: ', swapTransactionPayload); - const rawTxn = await client.generateTransaction(alice.address(), swapTransactionPayload); - const bcsTxn = await client.signTransaction(alice, rawTxn); - const { hash } = await client.submitTransaction(bcsTxn); - await client.waitForTransaction(hash); - console.log(`Swap transaction ${hash} is submitted.`); - console.log(`Check on explorer: https://explorer.aptoslabs.com/txn/${hash}?network=${NETWORKS_MAPPING.DEVNET}`); - //check pool existence const poolExisted = await sdk.Liquidity.checkPoolExistence({ fromToken: TokensMapping.APTOS, - toToken: TokensMapping.USDT, + toToken: TokensMapping.LSD, curveType: 'uncorrelated' }); console.log(`Pool existed: ${poolExisted}`); @@ -109,7 +66,7 @@ dotenv.config(); // get rate and Minimum received LP const { rate, receiveLp } = await sdk.Liquidity.calculateRateAndMinReceivedLP({ fromToken: TokensMapping.APTOS, - toToken: TokensMapping.USDT, + toToken: TokensMapping.LSD, amount: 10000000, // 0.1 APTOS curveType: 'uncorrelated', interactiveToken: 'from', @@ -120,27 +77,19 @@ dotenv.config(); // get payload to add LiquidityPool const addLiquidityPoolPayload = await sdk.Liquidity.createAddLiquidityPayload({ fromToken: TokensMapping.APTOS, - toToken: TokensMapping.USDT, + toToken: TokensMapping.LSD, fromAmount: 10000000, // 0.1 APTOS - toAmount: Number(rate), // USDT + toAmount: Number(rate), // LSD interactiveToken: 'from', slippage: 0.005, curveType: 'uncorrelated', }); console.log('Add liquidity pool payload', addLiquidityPoolPayload); - // sign and submit payload - const addLiquidityRawTxn = await client.generateTransaction(alice.address(), addLiquidityPoolPayload); - const addLiquidityBcsTxn = await client.signTransaction(alice, addLiquidityRawTxn); - const { hash: addLiquidityHash } = await client.submitTransaction(addLiquidityBcsTxn); - await client.waitForTransaction(addLiquidityHash); - console.log(`Add liquidity transaction with hash ${addLiquidityHash} is submitted`); - console.log(`Check on explorer: https://explorer.aptoslabs.com/txn/${addLiquidityHash}?network=${NETWORKS_MAPPING.DEVNET}`); - // calculate Burn Liquidity Minimum received values const outputBurnValues = await sdk.Liquidity.calculateOutputBurn({ fromToken: TokensMapping.APTOS, - toToken: TokensMapping.USDT, + toToken: TokensMapping.LSD, slippage: 0.005, curveType: 'uncorrelated', burnAmount: Number(receiveLp), @@ -151,23 +100,13 @@ dotenv.config(); const burnLiquidityPayload = await sdk.Liquidity.createBurnLiquidityPayload({ fromToken: TokensMapping.APTOS, - toToken: TokensMapping.USDT, + toToken: TokensMapping.LSD, slippage: 0.005, curveType: 'uncorrelated', burnAmount: Number(receiveLp), }); console.log('Burn liquidity payload: ', burnLiquidityPayload); - - // sign and submit payload - const burnLiquidityRawTxn = await client.generateTransaction(alice.address(), burnLiquidityPayload); - const burnLiquidityBcsTxn = await client.signTransaction(alice, burnLiquidityRawTxn); - const { hash: burnLiquidityHash } = await client.submitTransaction(burnLiquidityBcsTxn); - await client.waitForTransaction(burnLiquidityHash); - console.log(`Burn liquidity transaction ${burnLiquidityHash} is submitted`); - console.log(`Check on explorer: https://explorer.aptoslabs.com/txn/${burnLiquidityHash}?network=${NETWORKS_MAPPING.DEVNET}`); - - } catch(e) { console.log(e) } diff --git a/examples/swap_transaction.ts b/examples/swap_transaction.ts index 603b6e8..8682ef3 100644 --- a/examples/swap_transaction.ts +++ b/examples/swap_transaction.ts @@ -1,15 +1,8 @@ import dotenv from "dotenv"; import SDK from "@pontem/liquidswap-sdk"; -import { AptosAccount, CoinClient, FaucetClient } from 'aptos'; +import { Network, NetworkToNodeAPI } from '@aptos-labs/ts-sdk'; -import { NODE_URL, TokensMapping, MODULES_ACCOUNT, RESOURCE_ACCOUNT, FAUCET_URL, NETWORKS_MAPPING } from "./common"; - -type TxPayloadCallFunction = { - type: 'entry_function_payload'; - function: string; - type_arguments: string[]; - arguments: string[]; -}; +import { TokensMapping, MODULES_ACCOUNT, RESOURCE_ACCOUNT } from "./common"; dotenv.config(); @@ -17,7 +10,10 @@ dotenv.config(); // setup const sdk = new SDK({ - nodeUrl: NODE_URL, + nodeUrl: NetworkToNodeAPI[Network.MAINNET], + nodeOptions: { + network: Network.MAINNET, + }, networkOptions: { resourceAccount: RESOURCE_ACCOUNT, moduleAccount: MODULES_ACCOUNT, @@ -28,70 +24,37 @@ dotenv.config(); }, }, }); - const client = sdk.client; - const coinClient = new CoinClient(client); - - // create local account - const alice = new AptosAccount(); - - const faucetClient = new FaucetClient(NODE_URL, FAUCET_URL); - - await faucetClient.fundAccount(alice.address(), 100_000_000); - - console.log(`Account Balance ${await coinClient.checkBalance(alice)}`); - // Register account with coin try { - const coinRegisterPayload = { - type: 'entry_function_payload', - function: '0x1::managed_coin::register', - type_arguments: [TokensMapping.USDT], - arguments: [], - } - - const rawTxn = await client.generateTransaction(alice.address(), coinRegisterPayload); - const bcsTxn = await client.signTransaction(alice, rawTxn); - const { hash } = await client.submitTransaction(bcsTxn); - await client.waitForTransaction(hash); - - console.log(`Coin ${TokensMapping.USDT} successfully Registered to Alice account`); - console.log(`Check on explorer: https://explorer.aptoslabs.com/txn/${hash}?network=${NETWORKS_MAPPING.DEVNET}`); - } catch(e) { - console.log("Coin register error: ", e); - } - - try { - // get Rate for USDT coin. - const usdtRate = await sdk.Swap.calculateRates({ + // get Rate for LSD coin. + const lsdRate = await sdk.Swap.calculateRates({ fromToken: TokensMapping.APTOS, - toToken: TokensMapping.USDT, + toToken: TokensMapping.LSD, amount: 10000000, // 0.1 APTOS curveType: 'uncorrelated', - interactiveToken: 'from', + interactiveToken: 'to', }); - console.log('SsdtRate: ', usdtRate); + console.log('LsdRate: ', lsdRate); // create payload for swap transaction const swapTransactionPayload = await sdk.Swap.createSwapTransactionPayload({ fromToken: TokensMapping.APTOS, - toToken: TokensMapping.USDT, + toToken: TokensMapping.LSD, fromAmount: 10000000, // 0.1 APTOS - toAmount: Number(usdtRate), // USDT - interactiveToken: 'from', + toAmount: Number(lsdRate), // LSD + interactiveToken: 'to', slippage: 0.005, stableSwapType: 'normal', curveType: 'uncorrelated', - }) as TxPayloadCallFunction; + }); console.log('Swap Transaction Payload: ', swapTransactionPayload); - const rawTxn = await client.generateTransaction(alice.address(), swapTransactionPayload); - const bcsTxn = await client.signTransaction(alice, rawTxn); - const { hash } = await client.submitTransaction(bcsTxn); - await client.waitForTransaction(hash); - console.log(`Swap transaction ${hash} is submitted.`); - console.log(`Check on explorer: https://explorer.aptoslabs.com/txn/${hash}?network=${NETWORKS_MAPPING.DEVNET}`); + // const txn = await client.transaction.build.simple({ + // data: swapTransactionPayload, + // sender: alice.accountAddress, + // }); } catch (e) { console.log(e); diff --git a/examples/yarn.lock b/examples/yarn.lock index 8f625eb..d64d9aa 100644 --- a/examples/yarn.lock +++ b/examples/yarn.lock @@ -2,6 +2,35 @@ # yarn lockfile v1 +"@aptos-labs/aptos-cli@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@aptos-labs/aptos-cli/-/aptos-cli-1.0.2.tgz#91bd1368cf808f715d102822b7d4032388cdad79" + integrity sha512-PYPsd0Kk3ynkxNfe3S4fanI3DiUICCoh4ibQderbvjPFL5A0oK6F4lPEO2t0MDsQySTk2t4vh99Xjy6Bd9y+aQ== + dependencies: + commander "^12.1.0" + +"@aptos-labs/aptos-client@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@aptos-labs/aptos-client/-/aptos-client-2.0.0.tgz#13331f038f7bbd5c942f0d1fee0018810008c08a" + integrity sha512-A23T3zTCRXEKURodp00dkadVtIrhWjC9uo08dRDBkh69OhCnBAxkENmUy/rcBarfLoFr60nRWt7cBkc8wxr1mg== + +"@aptos-labs/ts-sdk@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@aptos-labs/ts-sdk/-/ts-sdk-3.1.2.tgz#430909c41c462c01311699a923614d968bf932b9" + integrity sha512-wEe8+JhtjfuDHLsAUHfUcLmR3EvWHN9LzhE98vKAI5nDJmme6dC5JnBwwK+p+XIrbQqCc6qFEAEpzjMpJLpE6A== + dependencies: + "@aptos-labs/aptos-cli" "^1.0.2" + "@aptos-labs/aptos-client" "^2.0.0" + "@noble/curves" "^1.6.0" + "@noble/hashes" "^1.5.0" + "@scure/bip32" "^1.4.0" + "@scure/bip39" "^1.3.0" + eventemitter3 "^5.0.1" + form-data "^4.0.0" + js-base64 "^3.7.7" + jwt-decode "^4.0.0" + poseidon-lite "^0.2.0" + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" @@ -27,30 +56,64 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@noble/hashes@1.1.3", "@noble/hashes@~1.1.1": - version "1.1.3" - resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz" - integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A== +"@noble/curves@^1.6.0", "@noble/curves@~1.9.0": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.2.tgz#73388356ce733922396214a933ff7c95afcef911" + integrity sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g== + dependencies: + "@noble/hashes" "1.8.0" + +"@noble/hashes@1.8.0", "@noble/hashes@^1.5.0", "@noble/hashes@~1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" + integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== "@pontem/liquidswap-sdk@file:..": - version "0.5.0" + version "0.7.3" dependencies: - aptos "^1.3.17" + "@aptos-labs/ts-sdk" "3.1.2" axios "^0.27.2" decimal.js "^10.4.1" + got "^14.4.7" -"@scure/base@~1.1.0": - version "1.1.1" - resolved "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz" - integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== +"@scure/base@~1.2.5": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.6.tgz#ca917184b8231394dd8847509c67a0be522e59f6" + integrity sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg== -"@scure/bip39@1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz" - integrity sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w== +"@scure/bip32@^1.4.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.7.0.tgz#b8683bab172369f988f1589640e53c4606984219" + integrity sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw== + dependencies: + "@noble/curves" "~1.9.0" + "@noble/hashes" "~1.8.0" + "@scure/base" "~1.2.5" + +"@scure/bip39@^1.3.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.6.0.tgz#475970ace440d7be87a6086cbee77cb8f1a684f9" + integrity sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A== + dependencies: + "@noble/hashes" "~1.8.0" + "@scure/base" "~1.2.5" + +"@sec-ant/readable-stream@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz#60de891bb126abfdc5410fdc6166aca065f10a0c" + integrity sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg== + +"@sindresorhus/is@^7.0.1": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-7.0.2.tgz#a0df078a8d29f9741503c5a9c302de474ec8564a" + integrity sha512-d9xRovfKNz1SKieM0qJdO+PQonjnnIfSNWfHYnBSJ9hkjm0ZPw6HlxscDXYstp3z+7V2GOFHc+J0CYrYTjqCJw== + +"@szmarczak/http-timer@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== dependencies: - "@noble/hashes" "~1.1.1" - "@scure/base" "~1.1.0" + defer-to-connect "^2.0.1" "@tsconfig/node10@^1.0.7": version "1.0.9" @@ -72,6 +135,11 @@ resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== +"@types/http-cache-semantics@^4.0.4": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== + acorn-walk@^8.1.1: version "8.2.0" resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" @@ -82,17 +150,6 @@ acorn@^8.4.1: resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz" integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== -aptos@^1.3.17: - version "1.3.17" - resolved "https://registry.npmjs.org/aptos/-/aptos-1.3.17.tgz" - integrity sha512-SPgWR9D0nHwLNpvxH943T9ieA2/Q0AVVsvT/qTUuWQSImxkxMVkb++XyWhiFyQpnZDqo6o2o0/fZakeUkqrc8w== - dependencies: - "@noble/hashes" "1.1.3" - "@scure/bip39" "1.1.0" - axios "0.27.2" - form-data "4.0.0" - tweetnacl "1.0.3" - arg@^4.1.0: version "4.1.3" resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" @@ -103,7 +160,7 @@ asynckit@^0.4.0: resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -axios@0.27.2, axios@^0.27.2: +axios@^0.27.2: version "0.27.2" resolved "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz" integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== @@ -111,6 +168,24 @@ axios@0.27.2, axios@^0.27.2: follow-redirects "^1.14.9" form-data "^4.0.0" +cacheable-lookup@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" + integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== + +cacheable-request@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-12.0.1.tgz#e6f473b5b76c02e72a0ec2cd44c7cfb7c751d7c5" + integrity sha512-Yo9wGIQUaAfIbk+qY0X4cDQgCosecfBe3V9NSyeY4qPC2SAkbCS4Xj79VP8WOzitpJUZKc/wsRCYF5ariDIwkg== + dependencies: + "@types/http-cache-semantics" "^4.0.4" + get-stream "^9.0.1" + http-cache-semantics "^4.1.1" + keyv "^4.5.4" + mimic-response "^4.0.0" + normalize-url "^8.0.1" + responselike "^3.0.0" + combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" @@ -118,6 +193,11 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" +commander@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== + create-require@^1.1.0: version "1.1.1" resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" @@ -128,6 +208,18 @@ decimal.js@^10.4.1: resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.2.tgz#0341651d1d997d86065a2ce3a441fbd0d8e8b98e" integrity sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA== +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + +defer-to-connect@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" @@ -143,12 +235,22 @@ dotenv@16.0.1: resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz" integrity sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ== +eventemitter3@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== + follow-redirects@^1.14.9: version "1.15.2" resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== -form-data@4.0.0, form-data@^4.0.0: +form-data-encoder@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-4.1.0.tgz#497cedc94810bd5d53b99b5d4f6c152d5cbc9db2" + integrity sha512-G6NsmEW15s0Uw9XnCg+33H3ViYRyiM0hMrMhhqQOR8NFc5GhYrI+6I3u7OTw7b91J2g8rtvMBZJDbcGb2YUniw== + +form-data@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== @@ -157,6 +259,76 @@ form-data@4.0.0, form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +get-stream@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-9.0.1.tgz#95157d21df8eb90d1647102b63039b1df60ebd27" + integrity sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA== + dependencies: + "@sec-ant/readable-stream" "^0.4.1" + is-stream "^4.0.1" + +got@^14.4.7: + version "14.4.7" + resolved "https://registry.yarnpkg.com/got/-/got-14.4.7.tgz#f23644b9bc16d6f35fafdf410c18116614b922dd" + integrity sha512-DI8zV1231tqiGzOiOzQWDhsBmncFW7oQDH6Zgy6pDPrqJuVZMtoSgPLLsBZQj8Jg4JFfwoOsDA8NGtLQLnIx2g== + dependencies: + "@sindresorhus/is" "^7.0.1" + "@szmarczak/http-timer" "^5.0.1" + cacheable-lookup "^7.0.0" + cacheable-request "^12.0.1" + decompress-response "^6.0.0" + form-data-encoder "^4.0.2" + http2-wrapper "^2.2.1" + lowercase-keys "^3.0.0" + p-cancelable "^4.0.1" + responselike "^3.0.0" + type-fest "^4.26.1" + +http-cache-semantics@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz#205f4db64f8562b76a4ff9235aa5279839a09dd5" + integrity sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ== + +http2-wrapper@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" + integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.2.0" + +is-stream@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-4.0.1.tgz#375cf891e16d2e4baec250b85926cffc14720d9b" + integrity sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A== + +js-base64@^3.7.7: + version "3.7.7" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.7.tgz#e51b84bf78fbf5702b9541e2cb7bfcb893b43e79" + integrity sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +jwt-decode@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-4.0.0.tgz#2270352425fd413785b2faf11f6e755c5151bd4b" + integrity sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA== + +keyv@^4.5.4: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + make-error@^1.1.1: version "1.3.6" resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" @@ -174,6 +346,48 @@ mime-types@^2.1.12: dependencies: mime-db "1.52.0" +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + +mimic-response@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" + integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== + +normalize-url@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.2.tgz#3b343a42f837e4dae2b01917c04e8de3782e9170" + integrity sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw== + +p-cancelable@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-4.0.1.tgz#2d1edf1ab8616b72c73db41c4bc9ecdd10af640e" + integrity sha512-wBowNApzd45EIKdO1LaU+LrMBwAcjfPaYtVzV3lmfM3gf8Z4CHZsiIqlM8TZZ8okYvh5A1cP6gTfCRQtwUpaUg== + +poseidon-lite@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/poseidon-lite/-/poseidon-lite-0.2.1.tgz#7ad98e3a3aa5b91a1fd3a61a87460e9e46fd76d6" + integrity sha512-xIr+G6HeYfOhCuswdqcFpSX47SPhm0EpisWJ6h7fHlWwaVIvH3dLnejpatrtw6Xc6HaLrpq05y7VRfvDmDGIog== + +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + +resolve-alpn@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.0.0" + ts-node@^10.9.1: version "10.9.1" resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" @@ -193,10 +407,10 @@ ts-node@^10.9.1: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tweetnacl@1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== +type-fest@^4.26.1: + version "4.41.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58" + integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== typescript@^4.9.3: version "4.9.3" diff --git a/package.json b/package.json index 7483979..4686a93 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@pontem/liquidswap-sdk", - "version": "0.7.3", + "version": "0.8.0", "description": "SDK to use LiquidSwap functions", "author": "Igor Demko ", "repository": "https://github.com/pontem-network/liquidswap-sdk", @@ -45,9 +45,10 @@ "typescript": "^4.6.3" }, "dependencies": { - "aptos": "1.21.0", + "@aptos-labs/ts-sdk": "3.1.2", "axios": "^0.27.2", - "decimal.js": "^10.4.1" + "decimal.js": "^10.4.1", + "got": "^14.4.7" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/src/constants/index.ts b/src/constants/index.ts index ae1f8ba..d1fc925 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -1,29 +1,29 @@ -export const MODULES_ACCOUNT = '0x190d44266241744264b964a37b8f09863167a12d3e70cda39376cfb4e3561e12'; -export const RESOURCES_ACCOUNT = '0x05a97986a9d031c4567e15b797be516910cfcb4156312482efc6a19c0a30c948'; -export const COINS_ACCOUNT = '0x43417434fd869edee76cca2a4d2301e528a1551b1d719b75c350c3c97d15b8b9'; -export const MODULES_V05_ACCOUNT = '0x163df34fccbf003ce219d3f1d9e70d140b60622cb9dd47599c25fb2f797ba6e'; -export const RESOURCES_V05_ACCOUNT = '0x61d2c22a6cb7831bee0f48363b0eec92369357aece0d1142062f7d5d85c7bef8'; +export const MODULES_ACCOUNT = '0x190d44266241744264b964a37b8f09863167a12d3e70cda39376cfb4e3561e12' as const; +export const RESOURCES_ACCOUNT = '0x05a97986a9d031c4567e15b797be516910cfcb4156312482efc6a19c0a30c948' as const; +export const COINS_ACCOUNT = '0x43417434fd869edee76cca2a4d2301e528a1551b1d719b75c350c3c97d15b8b9' as const; +export const MODULES_V05_ACCOUNT = '0x163df34fccbf003ce219d3f1d9e70d140b60622cb9dd47599c25fb2f797ba6e' as const; +export const RESOURCES_V05_ACCOUNT = '0x61d2c22a6cb7831bee0f48363b0eec92369357aece0d1142062f7d5d85c7bef8' as const; -export const COIN_INFO = '0x1::coin::CoinInfo'; -export const COIN_STORE = '0x1::coin::CoinStore'; +export const COIN_INFO = '0x1::coin::CoinInfo' as const; +export const COIN_STORE = '0x1::coin::CoinStore' as const; -export const SCRIPTS_V1 = 'scripts'; -export const SCRIPTS_V2 = 'scripts_v2'; -export const VERSION_0 = 0; -export const VERSION_0_5 = 0.5; +export const SCRIPTS_V1 = 'scripts' as const; +export const SCRIPTS_V2 = 'scripts_v2' as const; +export const VERSION_0 = 0 as const; +export const VERSION_0_5 = 0.5 as const; export const NETWORKS_MODULES = { Scripts: `${MODULES_ACCOUNT}::scripts_v2`, Faucet: `${COINS_ACCOUNT}::faucet`, CoinInfo: `${COIN_INFO}`, CoinStore: `${COIN_STORE}`, -}; +} as const; -export const TOKENS_MAPPING: Record = { +export const TOKENS_MAPPING = { APTOS: '0x1::aptos_coin::AptosCoin', USDT: '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDT', //layerzero USDT BTC: '0xae478ff7d83ed072dbc5e264250e67ef58f57c99d89b447efd8a0a2e8b2be76e::coin::T', // wormhole wrapped BTC WETH: '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::WETH', // LayerZero WETH USDC: '0xf22bede237a07e121b56d91a491eb7bcdfd1f5907926a9e58338f964a01b17fa::asset::USDC', // layerzero USDC amAPT: '0x111ae3e5bc816a5e63c2da97d0aa3886519e0cd5e4b046659fa35796bd11542a::amapt_token::AmnisApt' // Amnis APT -}; +} as const; diff --git a/src/modules/LiquidityModule.ts b/src/modules/LiquidityModule.ts index e381faa..068316d 100644 --- a/src/modules/LiquidityModule.ts +++ b/src/modules/LiquidityModule.ts @@ -4,7 +4,6 @@ import { IModule } from '../interfaces/IModule'; import { SDK } from '../sdk'; import { AptosCoinInfoResource, - AptosResource, AptosResourceType, CurveType, AptosPoolResource, @@ -57,8 +56,8 @@ interface ICalculateSupplyParams } interface ICalculateBurnLiquidityParams { - fromToken: string; - toToken: string; + fromToken: AptosResourceType; + toToken: AptosResourceType; slippage: number; burnAmount: Decimal | number; curveType: CurveType; @@ -108,11 +107,11 @@ export class LiquidityModule implements IModule { try { const liquidityPoolResource = - await this.sdk.Resources.fetchAccountResource( + await this.sdk.Resources.fetchAccountResource( resourceAcc, liquidityPoolType, ); - return Boolean(liquidityPoolResource?.type); + return Boolean(liquidityPoolResource); } catch (_e) { return false; } @@ -271,11 +270,11 @@ export class LiquidityModule implements IModule { } const fromReserve = isSorted - ? d(liquidityPoolResource.data.coin_x_reserve.value) - : d(liquidityPoolResource.data.coin_y_reserve.value); + ? d(liquidityPoolResource.coin_x_reserve.value) + : d(liquidityPoolResource.coin_y_reserve.value); const toReserve = isSorted - ? d(liquidityPoolResource.data.coin_y_reserve.value) - : d(liquidityPoolResource.data.coin_x_reserve.value); + ? d(liquidityPoolResource.coin_y_reserve.value) + : d(liquidityPoolResource.coin_x_reserve.value); const optimalAmount = params.interactiveToken === 'from' @@ -293,7 +292,7 @@ export class LiquidityModule implements IModule { // TODO: fix typing // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - lpSupply = lpSupplyResponse.data.supply.vec[0].integer.vec[0].value; + lpSupply = lpSupplyResponse.supply.vec[0].integer.vec[0].value; } catch (e) { console.log(e); } @@ -332,7 +331,7 @@ export class LiquidityModule implements IModule { const curves = this.sdk.curves; const scriptsVersion = getScriptsFor(version); - const functionName = composeType( + const functionName = composeType( moduleAcc, scriptsVersion, isPoolExisted ? 'add_liquidity' : 'register_pool_and_add_liquidity', @@ -374,8 +373,8 @@ export class LiquidityModule implements IModule { return { type: 'entry_function_payload', function: functionName, - type_arguments: typeArguments, - arguments: args, + typeArguments: typeArguments, + functionArguments: args, }; } @@ -416,8 +415,8 @@ export class LiquidityModule implements IModule { return { type: 'entry_function_payload', function: functionName, - type_arguments: typeArguments, - arguments: args, + typeArguments: typeArguments, + functionArguments: args, }; } @@ -437,7 +436,7 @@ export class LiquidityModule implements IModule { // TODO: fix typing // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - lpSupply = lpSupplyResponse.data.supply.vec[0].integer.vec[0].value; + lpSupply = lpSupplyResponse.supply.vec[0].integer.vec[0].value; } catch (e) { console.log(e); } @@ -449,11 +448,11 @@ export class LiquidityModule implements IModule { const isSorted = is_sorted(params.fromToken, params.toToken); const fromReserve = isSorted - ? d(liquidityPoolResource.data.coin_x_reserve.value) - : d(liquidityPoolResource.data.coin_y_reserve.value); + ? d(liquidityPoolResource.coin_x_reserve.value) + : d(liquidityPoolResource.coin_y_reserve.value); const toReserve = isSorted - ? d(liquidityPoolResource.data.coin_y_reserve.value) - : d(liquidityPoolResource.data.coin_x_reserve.value); + ? d(liquidityPoolResource.coin_y_reserve.value) + : d(liquidityPoolResource.coin_x_reserve.value); const outputVal = calcOutputBurnLiquidity({ xReserve: fromReserve, diff --git a/src/modules/ResourcesModule.ts b/src/modules/ResourcesModule.ts index 3484e4c..a9e3687 100644 --- a/src/modules/ResourcesModule.ts +++ b/src/modules/ResourcesModule.ts @@ -1,6 +1,6 @@ import { SDK } from '../sdk'; import { IModule } from '../interfaces/IModule'; -import { AptosResource, AptosResourceType } from '../types/aptos'; +import { AptosResourceType } from '../types/aptos'; import { isAxiosError } from '../utils/is'; export class ResourcesModule implements IModule { @@ -17,13 +17,13 @@ export class ResourcesModule implements IModule { async fetchAccountResource( accountAddress: string, resourceType: AptosResourceType, - ): Promise | undefined> { + ): Promise { try { - const response = await this._sdk.client.getAccountResource( + const response = await this._sdk.client.getAccountResource({ accountAddress, resourceType, - ); - return response as unknown as AptosResource; + }); + return response as unknown as T; } catch (e: unknown) { if (isAxiosError(e)) { if (e.response?.status === 404) { diff --git a/src/modules/SwapModule.ts b/src/modules/SwapModule.ts index c81ec0e..ca447ef 100644 --- a/src/modules/SwapModule.ts +++ b/src/modules/SwapModule.ts @@ -106,21 +106,25 @@ export class SwapModule implements IModule { ? [fromCoinInfo, toCoinInfo] : [toCoinInfo, fromCoinInfo]; + console.log("sortedFromCoinInfo", sortedFromCoinInfo); + console.log("sortedToCoinInfo", sortedToCoinInfo); + console.log("liquidityPoolResource", liquidityPoolResource); + const fromReserve = isSorted - ? d(liquidityPoolResource.data.coin_x_reserve.value) - : d(liquidityPoolResource.data.coin_y_reserve.value); + ? d(liquidityPoolResource.coin_x_reserve.value) + : d(liquidityPoolResource.coin_y_reserve.value); const toReserve = isSorted - ? d(liquidityPoolResource.data.coin_y_reserve.value) - : d(liquidityPoolResource.data.coin_x_reserve.value); + ? d(liquidityPoolResource.coin_y_reserve.value) + : d(liquidityPoolResource.coin_x_reserve.value); - let fee = d(liquidityPoolResource.data.fee); + let fee = d(liquidityPoolResource.fee); if (params.additionalFee) { fee = fee.plus(params.additionalFee); } - const coinFromDecimals = +sortedFromCoinInfo.data.decimals; - const coinToDecimals = +sortedToCoinInfo.data.decimals; + const coinFromDecimals = +sortedFromCoinInfo.decimals; + const coinToDecimals = +sortedToCoinInfo.decimals; const amount = d(params.amount); @@ -183,7 +187,7 @@ export class SwapModule implements IModule { const scriptsVersion = getScriptsFor(version); const moduleAcc = version === VERSION_0_5 ? moduleAccountV05 : moduleAccount; - const functionName = composeType( + const functionName = composeType( moduleAcc, scriptsVersion, isUnchecked @@ -215,8 +219,8 @@ export class SwapModule implements IModule { return { type: 'entry_function_payload', function: functionName, - type_arguments: typeArguments, - arguments: args, + typeArguments: typeArguments, + functionArguments: args, }; } @@ -237,11 +241,11 @@ export class SwapModule implements IModule { 'LiquidityPool', ); - function getPoolStr(coinX: string, coinY: string, curve: string): string { + function getPoolStr(coinX: AptosResourceType, coinY: AptosResourceType, curve: string): AptosResourceType { const [sortedX, sortedY] = is_sorted(coinX, coinY) ? [coinX, coinY] : [coinY, coinX]; - return composeType(modulesLiquidityPool, [sortedX, sortedY, curve]); + return composeType(modulesLiquidityPool, [sortedX, sortedY, curve]); } const liquidityPoolType = getPoolStr( diff --git a/src/sdk.ts b/src/sdk.ts index 8d9f93c..4fec884 100644 --- a/src/sdk.ts +++ b/src/sdk.ts @@ -1,7 +1,7 @@ -import { AptosClient, ClientConfig } from 'aptos'; +import { Aptos, AptosConfig } from '@aptos-labs/ts-sdk'; import { SwapModule } from './modules/SwapModule'; import { ResourcesModule } from './modules/ResourcesModule'; -import { AptosResourceType } from './types/aptos'; +import { AptosResourceType, AptosScriptType } from './types/aptos'; import { LiquidityModule } from './modules/LiquidityModule'; import { NETWORKS_MODULES, @@ -22,15 +22,15 @@ const initialNetworkOptions = { moduleAccount: MODULES_ACCOUNT, moduleAccountV05: MODULES_V05_ACCOUNT, resourceAccountV05: RESOURCES_V05_ACCOUNT, -}; +} as const; interface INetworkOptions { nativeToken?: AptosResourceType; modules?: { CoinInfo: AptosResourceType; CoinStore: AptosResourceType; - Scripts: AptosResourceType; - } & Record; + Scripts: AptosScriptType; + } & Record; resourceAccount?: string; moduleAccount?: string; moduleAccountV05?: string; @@ -39,7 +39,7 @@ interface INetworkOptions { export interface SdkOptions { nodeUrl: string; - nodeOptions?: Partial; + nodeOptions?: Partial; networkOptions?: INetworkOptions; } @@ -51,7 +51,7 @@ export interface ICurves { } export class SDK { - protected _client: AptosClient; + protected _client: Aptos; protected _swap: SwapModule; protected _liquidity: LiquidityModule; protected _resources: ResourcesModule; @@ -108,7 +108,11 @@ export class SDK { options.networkOptions.resourceAccountV05; } } - this._client = new AptosClient(options.nodeUrl, options.nodeOptions); + const config = new AptosConfig({ + fullnode: options.nodeUrl, + ...options.nodeOptions, + }); + this._client = new Aptos(config); this._swap = new SwapModule(this); this._resources = new ResourcesModule(this); this._liquidity = new LiquidityModule(this); diff --git a/src/tests/swap.test.ts b/src/tests/swap.test.ts index 412a18a..5613ee3 100644 --- a/src/tests/swap.test.ts +++ b/src/tests/swap.test.ts @@ -9,6 +9,7 @@ import { } from '../constants'; import SDK from '../main'; import { convertValueToDecimal } from '../utils'; +import { AptosResourceType } from '../types/aptos'; describe('Swap Module', () => { @@ -200,7 +201,7 @@ describe('Swap Module', () => { try { await sdk.Swap.calculateRates({ - fromToken: TOKENS_MAPPING.APTOS + '0', + fromToken: TOKENS_MAPPING.APTOS + '0' as AptosResourceType, toToken: TOKENS_MAPPING.WETH, amount: 100000000, // 1 WETH curveType: 'stable', @@ -214,7 +215,7 @@ describe('Swap Module', () => { try { await sdk.Swap.calculateRates({ fromToken: TOKENS_MAPPING.APTOS, - toToken: TOKENS_MAPPING.WETH + '0', + toToken: TOKENS_MAPPING.WETH + '0' as AptosResourceType, amount: 100000000, // 1 WETH curveType: 'stable', interactiveToken: 'to', diff --git a/src/types/aptos.ts b/src/types/aptos.ts index 88a2ca4..55d8ba5 100644 --- a/src/types/aptos.ts +++ b/src/types/aptos.ts @@ -1,9 +1,5 @@ -export type AptosResourceType = string; - -export type AptosResource = { - data: T; - type: string; -}; +export type AptosResourceType = `${string}::${string}::${string}`; +export type AptosScriptType = `${string}::${string}`; export type AptosCoinInfoResource = { decimals: string; @@ -31,9 +27,9 @@ export type AptosPoolResource = { export type TxPayloadCallFunction = { type: 'entry_function_payload'; - function: string; - type_arguments: string[]; - arguments: string[]; + function: AptosResourceType; + typeArguments: string[]; + functionArguments: string[]; }; export type TAptosTxPayload = TxPayloadCallFunction; diff --git a/src/utils/contracts.ts b/src/utils/contracts.ts index 621e778..a493991 100644 --- a/src/utils/contracts.ts +++ b/src/utils/contracts.ts @@ -11,7 +11,7 @@ import { } from '../constants'; import { checkAddress } from './hex'; -import {CurveType} from "../types/aptos"; +import { CurveType } from "../types/aptos"; const EQUAL = 0; const LESS_THAN = 1; @@ -104,22 +104,22 @@ export function is_sorted(coin_x: string, coin_y: string) { return compare_types(coin_x, coin_y) == LESS_THAN; } -export function composeType(address: string, generics: string[]): string; +export function composeType(address: string, generics: string[]): TResourceType; -export function composeType( +export function composeType( address: string, struct: string, generics?: string[], -): string; +): TResourceType; -export function composeType( +export function composeType( address: string, module: string, struct: string, generics?: string[], -): string; +): TResourceType; -export function composeType(address: string, ...args: unknown[]): string { +export function composeType(address: string, ...args: unknown[]): TResourceType { const generics: string[] = Array.isArray(args[args.length - 1]) ? (args.pop() as string[]) : []; @@ -131,7 +131,7 @@ export function composeType(address: string, ...args: unknown[]): string { result += `<${generics.join(',')}>`; } - return result; + return result as unknown as TResourceType; } /** @@ -157,7 +157,7 @@ export function extractAddressFromType(type: string) { } export function checkAptosType( - type: any, + type: unknown, options: { leadingZero: boolean } = { leadingZero: true }, ): boolean { if (typeof type !== 'string') { diff --git a/src/utils/hex.ts b/src/utils/hex.ts index 02f5301..e32ce41 100644 --- a/src/utils/hex.ts +++ b/src/utils/hex.ts @@ -16,7 +16,7 @@ export function shortAddress(address: string, start = 4, end = 4) { } export function checkAddress( - address: any, + address: unknown, options: { leadingZero: boolean } = { leadingZero: true }, ): boolean { if (typeof address !== 'string') { @@ -40,7 +40,7 @@ export function checkAddress( * As input it supports `Buffer`, `String`, `Number`, null/undefined, `BN` and other objects with a `toArray()` method. * @param v the value */ -export function toBuffer(v: any): Buffer { +export function toBuffer(v: unknown): Buffer { if (!Buffer.isBuffer(v)) { if (Array.isArray(v)) { v = Buffer.from(v); @@ -54,18 +54,18 @@ export function toBuffer(v: any): Buffer { v = exports.intToBuffer(v); } else if (v === null || v === undefined) { v = Buffer.allocUnsafe(0); - } else if (v.toArray) { + } else if ((v as { toArray: () => number[] }).toArray) { // converts a BN to a Buffer - v = Buffer.from(v.toArray()); + v = Buffer.from((v as { toArray: () => number[] }).toArray()); } else { throw new Error('invalid type'); } } - return v; + return v as Buffer; } export function checkAptosType( - type: any, + type: unknown, options: { leadingZero: boolean } = { leadingZero: true }, ): boolean { if (typeof type !== 'string') { diff --git a/src/utils/is.ts b/src/utils/is.ts index d797354..66f6bde 100644 --- a/src/utils/is.ts +++ b/src/utils/is.ts @@ -1,9 +1,5 @@ import { AxiosError } from 'axios'; -export function isAxiosError(e: any): e is AxiosError { - if (e.isAxiosError) { - return e; - } - - return e; +export function isAxiosError(e: unknown): e is AxiosError { + return (e as AxiosError).isAxiosError === true; } diff --git a/src/utils/liquidity.ts b/src/utils/liquidity.ts index 6f8b701..ec24580 100644 --- a/src/utils/liquidity.ts +++ b/src/utils/liquidity.ts @@ -2,6 +2,7 @@ import { Decimal } from 'decimal.js'; import { d } from './numbers'; import { is_sorted, composeType } from './contracts'; +import { AptosResourceType } from '../types/aptos'; /** * Calculate return of Liquidity Coins @@ -86,9 +87,9 @@ export function getPoolStr( coinY: string, curve: string, modulesLiquidityPool: string, -): string { +): AptosResourceType { const [sortedX, sortedY] = is_sorted(coinX, coinY) ? [coinX, coinY] : [coinY, coinX]; - return composeType(modulesLiquidityPool, [sortedX, sortedY, curve]); + return composeType(modulesLiquidityPool, [sortedX, sortedY, curve]); } diff --git a/yarn.lock b/yarn.lock index 9170bbf..b83baa1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,13 +17,34 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@aptos-labs/aptos-client@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@aptos-labs/aptos-client/-/aptos-client-0.1.0.tgz#911fb27e436e5731290de0e0cfce6e0d3feeabaa" - integrity sha512-q3s6pPq8H2buGp+tPuIRInWsYOuhSEwuNJPwd2YnsiID3YSLihn2ug39ktDJAcSOprUcp7Nid8WK7hKqnUmSdA== +"@aptos-labs/aptos-cli@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@aptos-labs/aptos-cli/-/aptos-cli-1.0.2.tgz#91bd1368cf808f715d102822b7d4032388cdad79" + integrity sha512-PYPsd0Kk3ynkxNfe3S4fanI3DiUICCoh4ibQderbvjPFL5A0oK6F4lPEO2t0MDsQySTk2t4vh99Xjy6Bd9y+aQ== dependencies: - axios "1.6.2" - got "^11.8.6" + commander "^12.1.0" + +"@aptos-labs/aptos-client@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@aptos-labs/aptos-client/-/aptos-client-2.0.0.tgz#13331f038f7bbd5c942f0d1fee0018810008c08a" + integrity sha512-A23T3zTCRXEKURodp00dkadVtIrhWjC9uo08dRDBkh69OhCnBAxkENmUy/rcBarfLoFr60nRWt7cBkc8wxr1mg== + +"@aptos-labs/ts-sdk@3.1.2": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@aptos-labs/ts-sdk/-/ts-sdk-3.1.2.tgz#430909c41c462c01311699a923614d968bf932b9" + integrity sha512-wEe8+JhtjfuDHLsAUHfUcLmR3EvWHN9LzhE98vKAI5nDJmme6dC5JnBwwK+p+XIrbQqCc6qFEAEpzjMpJLpE6A== + dependencies: + "@aptos-labs/aptos-cli" "^1.0.2" + "@aptos-labs/aptos-client" "^2.0.0" + "@noble/curves" "^1.6.0" + "@noble/hashes" "^1.5.0" + "@scure/bip32" "^1.4.0" + "@scure/bip39" "^1.3.0" + eventemitter3 "^5.0.1" + form-data "^4.0.0" + js-base64 "^3.7.7" + jwt-decode "^4.0.0" + poseidon-lite "^0.2.0" "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.14.5": version "7.14.5" @@ -804,10 +825,17 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@noble/hashes@1.3.3", "@noble/hashes@~1.3.0": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" - integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== +"@noble/curves@^1.6.0", "@noble/curves@~1.9.0": + version "1.9.2" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.9.2.tgz#73388356ce733922396214a933ff7c95afcef911" + integrity sha512-HxngEd2XUcg9xi20JkwlLCtYwfoFw4JGkuZpT+WlsPD4gB/cxkvTD8fSsoAnphGZhFdZYKeQIPCuFlWPm1uE0g== + dependencies: + "@noble/hashes" "1.8.0" + +"@noble/hashes@1.8.0", "@noble/hashes@^1.5.0", "@noble/hashes@~1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.8.0.tgz#cee43d801fcef9644b11b8194857695acd5f815a" + integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -830,23 +858,37 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@scure/base@~1.1.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" - integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== +"@scure/base@~1.2.5": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.2.6.tgz#ca917184b8231394dd8847509c67a0be522e59f6" + integrity sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg== -"@scure/bip39@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a" - integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg== +"@scure/bip32@^1.4.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.7.0.tgz#b8683bab172369f988f1589640e53c4606984219" + integrity sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw== dependencies: - "@noble/hashes" "~1.3.0" - "@scure/base" "~1.1.0" + "@noble/curves" "~1.9.0" + "@noble/hashes" "~1.8.0" + "@scure/base" "~1.2.5" -"@sindresorhus/is@^4.0.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" - integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== +"@scure/bip39@^1.3.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.6.0.tgz#475970ace440d7be87a6086cbee77cb8f1a684f9" + integrity sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A== + dependencies: + "@noble/hashes" "~1.8.0" + "@scure/base" "~1.2.5" + +"@sec-ant/readable-stream@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz#60de891bb126abfdc5410fdc6166aca065f10a0c" + integrity sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg== + +"@sindresorhus/is@^7.0.1": + version "7.0.2" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-7.0.2.tgz#a0df078a8d29f9741503c5a9c302de474ec8564a" + integrity sha512-d9xRovfKNz1SKieM0qJdO+PQonjnnIfSNWfHYnBSJ9hkjm0ZPw6HlxscDXYstp3z+7V2GOFHc+J0CYrYTjqCJw== "@sinonjs/commons@^1.7.0": version "1.8.6" @@ -862,12 +904,12 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@szmarczak/http-timer@^4.0.5": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" - integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== +"@szmarczak/http-timer@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== dependencies: - defer-to-connect "^2.0.0" + defer-to-connect "^2.0.1" "@tootallnate/once@1": version "1.1.2" @@ -952,16 +994,6 @@ dependencies: "@babel/types" "^7.20.7" -"@types/cacheable-request@^6.0.1": - version "6.0.3" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" - integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== - dependencies: - "@types/http-cache-semantics" "*" - "@types/keyv" "^3.1.4" - "@types/node" "*" - "@types/responselike" "^1.0.0" - "@types/graceful-fs@^4.1.2": version "4.1.9" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" @@ -969,7 +1001,7 @@ dependencies: "@types/node" "*" -"@types/http-cache-semantics@*": +"@types/http-cache-semantics@^4.0.4": version "4.0.4" resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== @@ -1006,13 +1038,6 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== -"@types/keyv@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" - integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== - dependencies: - "@types/node" "*" - "@types/node@*": version "16.10.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.2.tgz#5764ca9aa94470adb4e1185fe2e9f19458992b2e" @@ -1028,13 +1053,6 @@ resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== -"@types/responselike@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50" - integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== - dependencies: - "@types/node" "*" - "@types/stack-utils@^2.0.0": version "2.0.1" resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" @@ -1231,18 +1249,6 @@ anymatch@^3.0.3: normalize-path "^3.0.0" picomatch "^2.0.4" -aptos@1.21.0: - version "1.21.0" - resolved "https://registry.yarnpkg.com/aptos/-/aptos-1.21.0.tgz#346623967a6d038a85f02d71ed6ec62c4cd2ae5e" - integrity sha512-PRKjoFgL8tVEc9+oS7eJUv8GNxx8n3+0byH2+m7CP3raYOD6yFKOecuwjVMIJmgfpjp6xH0P0HDMGZAXmSyU0Q== - dependencies: - "@aptos-labs/aptos-client" "^0.1.0" - "@noble/hashes" "1.3.3" - "@scure/bip39" "1.2.1" - eventemitter3 "^5.0.1" - form-data "4.0.0" - tweetnacl "1.0.3" - arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -1278,15 +1284,6 @@ axios@*, axios@^0.27.2: follow-redirects "^1.14.9" form-data "^4.0.0" -axios@1.6.2: - version "1.6.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" - integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - babel-jest@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" @@ -1420,23 +1417,23 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== - -cacheable-request@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" - integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^6.0.1" - responselike "^2.0.0" +cacheable-lookup@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" + integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== + +cacheable-request@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-12.0.1.tgz#e6f473b5b76c02e72a0ec2cd44c7cfb7c751d7c5" + integrity sha512-Yo9wGIQUaAfIbk+qY0X4cDQgCosecfBe3V9NSyeY4qPC2SAkbCS4Xj79VP8WOzitpJUZKc/wsRCYF5ariDIwkg== + dependencies: + "@types/http-cache-semantics" "^4.0.4" + get-stream "^9.0.1" + http-cache-semantics "^4.1.1" + keyv "^4.5.4" + mimic-response "^4.0.0" + normalize-url "^8.0.1" + responselike "^3.0.0" callsites@^3.0.0: version "3.1.0" @@ -1504,13 +1501,6 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -clone-response@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" - integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== - dependencies: - mimic-response "^1.0.0" - co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -1552,6 +1542,11 @@ combined-stream@^1.0.8: dependencies: delayed-stream "~1.0.0" +commander@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1660,7 +1655,7 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -defer-to-connect@^2.0.0: +defer-to-connect@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== @@ -1726,13 +1721,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" @@ -2129,24 +2117,24 @@ follow-redirects@^1.14.9: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== -follow-redirects@^1.15.0: - version "1.15.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" - integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== +form-data-encoder@^4.0.2: + version "4.1.0" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-4.1.0.tgz#497cedc94810bd5d53b99b5d4f6c152d5cbc9db2" + integrity sha512-G6NsmEW15s0Uw9XnCg+33H3ViYRyiM0hMrMhhqQOR8NFc5GhYrI+6I3u7OTw7b91J2g8rtvMBZJDbcGb2YUniw== -form-data@4.0.0, form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" mime-types "^2.1.12" -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -2187,18 +2175,19 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - get-stream@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +get-stream@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-9.0.1.tgz#95157d21df8eb90d1647102b63039b1df60ebd27" + integrity sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA== + dependencies: + "@sec-ant/readable-stream" "^0.4.1" + is-stream "^4.0.1" + glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -2261,22 +2250,22 @@ globby@^11.0.4: merge2 "^1.4.1" slash "^3.0.0" -got@^11.8.6: - version "11.8.6" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" - integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== - dependencies: - "@sindresorhus/is" "^4.0.0" - "@szmarczak/http-timer" "^4.0.5" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" +got@^14.4.7: + version "14.4.7" + resolved "https://registry.yarnpkg.com/got/-/got-14.4.7.tgz#f23644b9bc16d6f35fafdf410c18116614b922dd" + integrity sha512-DI8zV1231tqiGzOiOzQWDhsBmncFW7oQDH6Zgy6pDPrqJuVZMtoSgPLLsBZQj8Jg4JFfwoOsDA8NGtLQLnIx2g== + dependencies: + "@sindresorhus/is" "^7.0.1" + "@szmarczak/http-timer" "^5.0.1" + cacheable-lookup "^7.0.0" + cacheable-request "^12.0.1" decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" + form-data-encoder "^4.0.2" + http2-wrapper "^2.2.1" + lowercase-keys "^3.0.0" + p-cancelable "^4.0.1" + responselike "^3.0.0" + type-fest "^4.26.1" graceful-fs@^4.2.9: version "4.2.10" @@ -2312,10 +2301,10 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -http-cache-semantics@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" - integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== +http-cache-semantics@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz#205f4db64f8562b76a4ff9235aa5279839a09dd5" + integrity sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ== http-proxy-agent@^4.0.1: version "4.0.1" @@ -2326,13 +2315,13 @@ http-proxy-agent@^4.0.1: agent-base "6" debug "4" -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" - integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== +http2-wrapper@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" + integrity sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ== dependencies: quick-lru "^5.1.1" - resolve-alpn "^1.0.0" + resolve-alpn "^1.2.0" https-proxy-agent@^5.0.0: version "5.0.1" @@ -2447,6 +2436,11 @@ is-stream@^2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-stream@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-4.0.1.tgz#375cf891e16d2e4baec250b85926cffc14720d9b" + integrity sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A== + is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -2920,6 +2914,11 @@ jest@27.0.0: import-local "^3.0.2" jest-cli "^27.0.0" +js-base64@^3.7.7: + version "3.7.7" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.7.tgz#e51b84bf78fbf5702b9541e2cb7bfcb893b43e79" + integrity sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw== + js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -3020,7 +3019,12 @@ jsonc-parser@^3.0.0: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== -keyv@^4.0.0: +jwt-decode@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-4.0.0.tgz#2270352425fd413785b2faf11f6e755c5151bd4b" + integrity sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA== + +keyv@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== @@ -3072,10 +3076,10 @@ lodash@^4.7.0: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== lru-cache@^5.1.1: version "5.1.1" @@ -3155,16 +3159,16 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-response@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - mimic-response@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== +mimic-response@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" + integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== + minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" @@ -3221,10 +3225,10 @@ normalize-path@^3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== +normalize-url@^8.0.1: + version "8.0.2" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.2.tgz#3b343a42f837e4dae2b01917c04e8de3782e9170" + integrity sha512-Ee/R3SyN4BuynXcnTaekmaVdbDAEiNrHqjQIA37mHU8G9pf7aaAD4ZX3XjBLo6rsdcxA/gtkcNYZLt30ACgynw== npm-run-path@^4.0.1: version "4.0.1" @@ -3238,7 +3242,7 @@ nwsapi@^2.2.0: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -3264,10 +3268,10 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" -p-cancelable@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== +p-cancelable@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-4.0.1.tgz#2d1edf1ab8616b72c73db41c4bc9ecdd10af640e" + integrity sha512-wBowNApzd45EIKdO1LaU+LrMBwAcjfPaYtVzV3lmfM3gf8Z4CHZsiIqlM8TZZ8okYvh5A1cP6gTfCRQtwUpaUg== p-limit@^2.2.0: version "2.3.0" @@ -3357,6 +3361,11 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +poseidon-lite@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/poseidon-lite/-/poseidon-lite-0.2.1.tgz#7ad98e3a3aa5b91a1fd3a61a87460e9e46fd76d6" + integrity sha512-xIr+G6HeYfOhCuswdqcFpSX47SPhm0EpisWJ6h7fHlWwaVIvH3dLnejpatrtw6Xc6HaLrpq05y7VRfvDmDGIog== + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -3384,24 +3393,11 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - psl@^1.1.33: version "1.9.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -3447,7 +3443,7 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== -resolve-alpn@^1.0.0: +resolve-alpn@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== @@ -3483,12 +3479,12 @@ resolve@^1.20.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -responselike@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" - integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== dependencies: - lowercase-keys "^2.0.0" + lowercase-keys "^3.0.0" reusify@^1.0.4: version "1.0.4" @@ -3805,11 +3801,6 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" -tweetnacl@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -3832,6 +3823,11 @@ type-fest@^0.21.3: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +type-fest@^4.26.1: + version "4.41.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58" + integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"