From 897903fb605ceca0eede9c140eccc155c1b734ad Mon Sep 17 00:00:00 2001 From: Andrew Min Date: Thu, 14 Nov 2024 23:57:48 +0700 Subject: [PATCH 1/4] wip: nexus --- examples/with-biconomy-aa/package.json | 2 + examples/with-biconomy-aa/src/nexus-viem.ts | 192 ++++++ pnpm-lock.yaml | 628 ++++++++++++++++---- 3 files changed, 717 insertions(+), 105 deletions(-) create mode 100644 examples/with-biconomy-aa/src/nexus-viem.ts diff --git a/examples/with-biconomy-aa/package.json b/examples/with-biconomy-aa/package.json index 9d7b476bd..0e5fbb87c 100644 --- a/examples/with-biconomy-aa/package.json +++ b/examples/with-biconomy-aa/package.json @@ -5,11 +5,13 @@ "scripts": { "start-ethers": "tsx src/ethers.ts", "start-viem": "tsx src/viem.ts", + "start-nexus-viem": "tsx src/nexus-viem.ts", "clean": "rimraf ./dist ./.cache", "typecheck": "tsc --noEmit" }, "dependencies": { "@biconomy/account": "^4.5.6", + "@biconomy/sdk": "^0.0.10", "@turnkey/ethers": "workspace:*", "@turnkey/sdk-server": "workspace:*", "@turnkey/viem": "workspace:*", diff --git a/examples/with-biconomy-aa/src/nexus-viem.ts b/examples/with-biconomy-aa/src/nexus-viem.ts new file mode 100644 index 000000000..c769c7ba9 --- /dev/null +++ b/examples/with-biconomy-aa/src/nexus-viem.ts @@ -0,0 +1,192 @@ +import * as path from "path"; +import * as dotenv from "dotenv"; +import prompts, { PromptType } from "prompts"; +import { + createWalletClient, + createPublicClient, + http, + type Account, + WalletClient, + formatEther, +} from "viem"; +import { sepolia } from "viem/chains"; +import { + createSmartAccountClient, + BiconomySmartAccountV2, + PaymasterMode, + LightSigner, +} from "@biconomy/account"; +import { createNexusClient, createBicoPaymasterClient } from "@biconomy/sdk"; + +// Load environment variables from `.env.local` +dotenv.config({ path: path.resolve(process.cwd(), ".env.local") }); + +import { createAccount } from "@turnkey/viem"; +import { Turnkey as TurnkeyServerSDK } from "@turnkey/sdk-server"; +import { createNewWallet } from "./createNewWallet"; +import { print } from "./util"; + +async function main() { + if (!process.env.SIGN_WITH) { + // If you don't specify a `SIGN_WITH`, we'll create a new wallet for you via calling the Turnkey API. + await createNewWallet(); + return; + } + + const turnkeyClient = new TurnkeyServerSDK({ + apiBaseUrl: process.env.BASE_URL!, + apiPrivateKey: process.env.API_PRIVATE_KEY!, + apiPublicKey: process.env.API_PUBLIC_KEY!, + defaultOrganizationId: process.env.ORGANIZATION_ID!, + }); + + // Initialize a Turnkey-powered Viem Account + const turnkeyAccount = await createAccount({ + client: turnkeyClient.apiClient(), + organizationId: process.env.ORGANIZATION_ID!, + signWith: process.env.SIGN_WITH!, + }); + + const network = "sepolia"; + + // Bring your own provider + const client = createWalletClient({ + account: turnkeyAccount as Account, + chain: sepolia, + transport: http( + `https://${network}.infura.io/v3/${process.env.INFURA_KEY!}` + ), + }); + + const publicClient = createPublicClient({ + chain: sepolia, + transport: http( + `https://${network}.infura.io/v3/${process.env.INFURA_KEY!}` + ), + }); + + // Connect a TurnkeySigner to a Biconomy Smart Account Client, defaulting to Sepolia + // Ensure this method is hoisted + const connect = async ( + turnkeyClient: WalletClient + ): Promise => { + try { + const smartAccount = await createSmartAccountClient({ + signer: turnkeyClient, + bundlerUrl: process.env.BICONOMY_BUNDLER_URL!, // <-- Read about this at https://docs.biconomy.io/dashboard#bundler-url + biconomyPaymasterApiKey: process.env.BICONOMY_PAYMASTER_API_KEY!, // <-- Read about at https://docs.biconomy.io/dashboard/paymaster + rpcUrl: `https://${network}.infura.io/v3/${process.env.INFURA_KEY!}`, // <-- read about this at https://docs.biconomy.io/account/methods#createsmartaccountclient + chainId: Number(chainId), + }); + + return smartAccount; + } catch (error: any) { + throw new Error(error); + } + }; + + const nexusClient = await createNexusClient({ + signer: client, + chain: sepolia, + transport: http(), + bundlerTransport: http(process.env.BICONOMY_BUNDLER_URL!), + paymaster: createBicoPaymasterClient({ + paymasterUrl: process.env.BICONOMY_PAYMASTER_URL!, + }) + }); + + const smartAccountAddress = nexusClient.account.address; + + const chainId = client.chain.id; + const signerAddress = client.account.address; // signer + + const smartAccount = nexusClient.account; + // const smartAccount = await connect(client); + // const smartAccountAddress = await smartAccount.getAccountAddress(); + + const transactionCount = await publicClient.getTransactionCount({ + address: smartAccountAddress, + }); + const nonce = await smartAccount.getNonce(); + let balance = + (await publicClient.getBalance({ address: smartAccountAddress })) ?? 0; + + print("Network:", `${network} (chain ID ${chainId})`); + print("Signer address:", signerAddress); + print("Smart wallet address:", smartAccountAddress); + print("Balance:", `${formatEther(balance)} Ether`); + print("Transaction count:", `${transactionCount}`); + print("Nonce:", `${nonce}`); + + while (balance === 0n) { + console.log( + [ + `\nšŸ’ø Your onchain balance is at 0! To continue this demo you'll need testnet funds! You can use:`, + `- Any online faucet (e.g. https://www.alchemy.com/faucets/)`, + `\nTo check your balance: https://${network}.etherscan.io/address/${smartAccountAddress}`, + `\n--------`, + ].join("\n") + ); + + const { continue: _ } = await prompts([ + { + type: "text" as PromptType, + name: "continue", + message: "Ready to continue? y/n", + initial: "y", + }, + ]); + + balance = await publicClient.getBalance({ + address: smartAccountAddress, + })!; + } + + const { amount, destination } = await prompts([ + { + type: "number" as PromptType, + name: "amount", + message: "Amount to send (wei). Default to 0.0000001 ETH", + initial: 100000000000, + }, + { + type: "text" as PromptType, + name: "destination", + message: "Destination address (default to TKHQ warchest)", + initial: "0x08d2b0a37F869FF76BACB5Bab3278E26ab7067B7", + }, + ]); + const transactionRequest = { + to: destination, + value: amount, + type: 2, + }; + + // Make a simple send tx (which calls `signTransaction` under the hood) + const hash = await nexusClient.sendTransaction({ + calls: [ + { + to: destination, + value: amount, + }, + ], + }); + const { transactionHash } = await nexusClient.waitForTransactionReceipt({ hash }); + + print( + `Sent ${formatEther(transactionRequest.value)} Ether to ${ + transactionRequest.to + }:`, + `https://${network}.etherscan.io/tx/${transactionHash}` + ); + + print( + `User Ops can be found here:`, + `https://jiffyscan.xyz/bundle/${transactionHash}?network=${network}&pageNo=0&pageSize=10` + ); +} + +main().catch((error) => { + console.error(error); + process.exit(1); +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 234614315..ac3f64b94 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -22,7 +22,7 @@ importers: devDependencies: '@changesets/cli': specifier: ^2.27.5 - version: 2.27.9 + version: 2.27.5 '@jest/globals': specifier: ^29.3.1 version: 29.4.3 @@ -637,7 +637,10 @@ importers: dependencies: '@biconomy/account': specifier: ^4.5.6 - version: 4.5.6(typescript@5.1.5)(viem@2.21.35) + version: 4.5.6(typescript@5.1.5)(viem@2.21.29) + '@biconomy/sdk': + specifier: ^0.0.10 + version: 0.0.10(@rhinestone/module-sdk@0.1.28)(typescript@5.1.5)(viem@2.21.29) '@turnkey/ethers': specifier: workspace:* version: link:../../packages/ethers @@ -658,7 +661,7 @@ importers: version: 2.4.2 viem: specifier: ^2.21.29 - version: 2.21.35(typescript@5.1.5) + version: 2.21.29(typescript@5.1.5) devDependencies: '@types/prompts': specifier: ^2.4.2 @@ -820,7 +823,7 @@ importers: dependencies: '@biconomy/account': specifier: ^4.5.6 - version: 4.5.6(typescript@5.1.3)(viem@2.21.35) + version: 4.5.6(typescript@5.1.3)(viem@2.21.29) '@turnkey/api-key-stamper': specifier: workspace:* version: link:../../packages/api-key-stamper @@ -895,7 +898,7 @@ importers: version: 5.1.3 viem: specifier: ^2.21.9 - version: 2.21.35(typescript@5.1.3) + version: 2.21.29(typescript@5.1.3) examples/with-ethers: dependencies: @@ -1908,14 +1911,14 @@ packages: engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.24.5 - picocolors: 1.1.1 + picocolors: 1.0.0 /@babel/code-frame@7.24.7: resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.24.7 - picocolors: 1.1.1 + picocolors: 1.0.0 /@babel/compat-data@7.20.14: resolution: {integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==} @@ -2617,7 +2620,7 @@ packages: '@babel/helper-validator-identifier': 7.24.5 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.1.1 + picocolors: 1.0.0 /@babel/highlight@7.24.7: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} @@ -2626,7 +2629,7 @@ packages: '@babel/helper-validator-identifier': 7.24.7 chalk: 2.4.2 js-tokens: 4.0.0 - picocolors: 1.1.1 + picocolors: 1.0.0 /@babel/parser@7.20.15: resolution: {integrity: sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==} @@ -4671,7 +4674,6 @@ packages: engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 - dev: false /@babel/runtime@7.24.8: resolution: {integrity: sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==} @@ -4774,7 +4776,7 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@biconomy/account@4.5.6(typescript@5.1.3)(viem@2.21.35): + /@biconomy/account@4.5.6(typescript@5.1.3)(viem@2.21.29): resolution: {integrity: sha512-Mq0X9HF4fsPTkf87eXklJJE/Hl3GQwQHN/2/D1fCA4Q4o4AM9HV7Tzpb+hBsh8cUJ+s2j0Q9wORXA1c0onAImQ==} peerDependencies: typescript: ^5 @@ -4783,14 +4785,14 @@ packages: '@silencelaboratories/walletprovider-sdk': 0.1.0(typescript@5.1.3) merkletreejs: 0.4.0 typescript: 5.1.3 - viem: 2.21.35(typescript@5.1.3) + viem: 2.21.29(typescript@5.1.3) transitivePeerDependencies: - bufferutil - utf-8-validate - zod dev: false - /@biconomy/account@4.5.6(typescript@5.1.5)(viem@2.21.35): + /@biconomy/account@4.5.6(typescript@5.1.5)(viem@2.21.29): resolution: {integrity: sha512-Mq0X9HF4fsPTkf87eXklJJE/Hl3GQwQHN/2/D1fCA4Q4o4AM9HV7Tzpb+hBsh8cUJ+s2j0Q9wORXA1c0onAImQ==} peerDependencies: typescript: ^5 @@ -4799,7 +4801,24 @@ packages: '@silencelaboratories/walletprovider-sdk': 0.1.0(typescript@5.1.5) merkletreejs: 0.4.0 typescript: 5.1.5 - viem: 2.21.35(typescript@5.1.5) + viem: 2.21.29(typescript@5.1.5) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + dev: false + + /@biconomy/sdk@0.0.10(@rhinestone/module-sdk@0.1.28)(typescript@5.1.5)(viem@2.21.29): + resolution: {integrity: sha512-HolZ2V95/Z/oE75qbbm2X+cGcWwh4S0oTgyDzd8XQBnnRDOGKlQuf5gxAz0AFvZTCfkjLqZe8E9cVhYPBI+2yQ==} + peerDependencies: + '@rhinestone/module-sdk': ^0.1.25 + typescript: ^5 + viem: ^2.20.0 + dependencies: + '@rhinestone/module-sdk': 0.1.28(viem@2.21.29) + '@silencelaboratories/walletprovider-sdk': 0.3.0(typescript@5.1.5) + typescript: 5.1.5 + viem: 2.21.29(typescript@5.1.5) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -4837,13 +4856,14 @@ packages: case: 1.6.3 dev: true - /@changesets/apply-release-plan@7.0.5: - resolution: {integrity: sha512-1cWCk+ZshEkSVEZrm2fSj1Gz8sYvxgUL4Q78+1ZZqeqfuevPTPk033/yUZ3df8BKMohkqqHfzj0HOOrG0KtXTw==} + /@changesets/apply-release-plan@7.0.3: + resolution: {integrity: sha512-klL6LCdmfbEe9oyfLxnidIf/stFXmrbFO/3gT5LU5pcyoZytzJe4gWpTBx3BPmyNPl16dZ1xrkcW7b98e3tYkA==} dependencies: - '@changesets/config': 3.0.3 + '@babel/runtime': 7.25.6 + '@changesets/config': 3.0.1 '@changesets/get-version-range-type': 0.4.0 - '@changesets/git': 3.0.1 - '@changesets/should-skip-package': 0.1.1 + '@changesets/git': 3.0.0 + '@changesets/should-skip-package': 0.1.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 detect-indent: 6.1.0 @@ -4855,12 +4875,13 @@ packages: semver: 7.5.4 dev: true - /@changesets/assemble-release-plan@6.0.4: - resolution: {integrity: sha512-nqICnvmrwWj4w2x0fOhVj2QEGdlUuwVAwESrUo5HLzWMI1rE5SWfsr9ln+rDqWB6RQ2ZyaMZHUcU7/IRaUJS+Q==} + /@changesets/assemble-release-plan@6.0.2: + resolution: {integrity: sha512-n9/Tdq+ze+iUtjmq0mZO3pEhJTKkku9hUxtUadW30jlN7kONqJG3O6ALeXrmc6gsi/nvoCuKjqEJ68Hk8RbMTQ==} dependencies: + '@babel/runtime': 7.25.6 '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.2 - '@changesets/should-skip-package': 0.1.1 + '@changesets/get-dependents-graph': 2.1.0 + '@changesets/should-skip-package': 0.1.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 semver: 7.5.4 @@ -4872,46 +4893,51 @@ packages: '@changesets/types': 6.0.0 dev: true - /@changesets/cli@2.27.9: - resolution: {integrity: sha512-q42a/ZbDnxPpCb5Wkm6tMVIxgeI9C/bexntzTeCFBrQEdpisQqk8kCHllYZMDjYtEc1ZzumbMJAG8H0Z4rdvjg==} + /@changesets/cli@2.27.5: + resolution: {integrity: sha512-UVppOvzCjjylBenFcwcZNG5IaZ8jsIaEVraV/pbXgukYNb0Oqa0d8UWb0LkYzA1Bf1HmUrOfccFcRLheRuA7pA==} hasBin: true dependencies: - '@changesets/apply-release-plan': 7.0.5 - '@changesets/assemble-release-plan': 6.0.4 + '@babel/runtime': 7.24.1 + '@changesets/apply-release-plan': 7.0.3 + '@changesets/assemble-release-plan': 6.0.2 '@changesets/changelog-git': 0.2.0 - '@changesets/config': 3.0.3 + '@changesets/config': 3.0.1 '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.2 - '@changesets/get-release-plan': 4.0.4 - '@changesets/git': 3.0.1 - '@changesets/logger': 0.1.1 - '@changesets/pre': 2.0.1 - '@changesets/read': 0.6.1 - '@changesets/should-skip-package': 0.1.1 + '@changesets/get-dependents-graph': 2.1.0 + '@changesets/get-release-plan': 4.0.2 + '@changesets/git': 3.0.0 + '@changesets/logger': 0.1.0 + '@changesets/pre': 2.0.0 + '@changesets/read': 0.6.0 + '@changesets/should-skip-package': 0.1.0 '@changesets/types': 6.0.0 - '@changesets/write': 0.3.2 + '@changesets/write': 0.3.1 '@manypkg/get-packages': 1.1.3 + '@types/semver': 7.5.8 ansi-colors: 4.1.3 + chalk: 2.4.2 ci-info: 3.8.0 enquirer: 2.4.1 external-editor: 3.1.0 fs-extra: 7.0.1 - mri: 1.2.0 + human-id: 1.0.2 + meow: 6.1.1 + outdent: 0.5.0 p-limit: 2.3.0 - package-manager-detector: 0.2.4 - picocolors: 1.1.1 + preferred-pm: 3.0.3 resolve-from: 5.0.0 semver: 7.5.4 spawndamnit: 2.0.0 term-size: 2.2.1 + tty-table: 4.1.6 dev: true - /@changesets/config@3.0.3: - resolution: {integrity: sha512-vqgQZMyIcuIpw9nqFIpTSNyc/wgm/Lu1zKN5vECy74u95Qx/Wa9g27HdgO4NkVAaq+BGA8wUc/qvbvVNs93n6A==} + /@changesets/config@3.0.1: + resolution: {integrity: sha512-nCr8pOemUjvGJ8aUu8TYVjqnUL+++bFOQHBVmtNbLvKzIDkN/uiP/Z4RKmr7NNaiujIURHySDEGFPftR4GbTUA==} dependencies: '@changesets/errors': 0.2.0 - '@changesets/get-dependents-graph': 2.1.2 - '@changesets/logger': 0.1.1 + '@changesets/get-dependents-graph': 2.1.0 + '@changesets/logger': 0.1.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 @@ -4924,22 +4950,24 @@ packages: extendable-error: 0.1.7 dev: true - /@changesets/get-dependents-graph@2.1.2: - resolution: {integrity: sha512-sgcHRkiBY9i4zWYBwlVyAjEM9sAzs4wYVwJUdnbDLnVG3QwAaia1Mk5P8M7kraTOZN+vBET7n8KyB0YXCbFRLQ==} + /@changesets/get-dependents-graph@2.1.0: + resolution: {integrity: sha512-QOt6pQq9RVXKGHPVvyKimJDYJumx7p4DO5MO9AhRJYgAPgv0emhNqAqqysSVKHBm4sxKlGN4S1zXOIb5yCFuhQ==} dependencies: '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - picocolors: 1.1.1 + chalk: 2.4.2 + fs-extra: 7.0.1 semver: 7.5.4 dev: true - /@changesets/get-release-plan@4.0.4: - resolution: {integrity: sha512-SicG/S67JmPTrdcc9Vpu0wSQt7IiuN0dc8iR5VScnnTVPfIaLvKmEGRvIaF0kcn8u5ZqLbormZNTO77bCEvyWw==} + /@changesets/get-release-plan@4.0.2: + resolution: {integrity: sha512-rOalz7nMuMV2vyeP7KBeAhqEB7FM2GFPO5RQSoOoUKKH9L6wW3QyPA2K+/rG9kBrWl2HckPVES73/AuwPvbH3w==} dependencies: - '@changesets/assemble-release-plan': 6.0.4 - '@changesets/config': 3.0.3 - '@changesets/pre': 2.0.1 - '@changesets/read': 0.6.1 + '@babel/runtime': 7.25.6 + '@changesets/assemble-release-plan': 6.0.2 + '@changesets/config': 3.0.1 + '@changesets/pre': 2.0.0 + '@changesets/read': 0.6.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 dev: true @@ -4948,20 +4976,22 @@ packages: resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==} dev: true - /@changesets/git@3.0.1: - resolution: {integrity: sha512-pdgHcYBLCPcLd82aRcuO0kxCDbw/yISlOtkmwmE8Odo1L6hSiZrBOsRl84eYG7DRCab/iHnOkWqExqc4wxk2LQ==} + /@changesets/git@3.0.0: + resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==} dependencies: + '@babel/runtime': 7.25.6 '@changesets/errors': 0.2.0 + '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 is-subdir: 1.2.0 micromatch: 4.0.5 spawndamnit: 2.0.0 dev: true - /@changesets/logger@0.1.1: - resolution: {integrity: sha512-OQtR36ZlnuTxKqoW4Sv6x5YIhOmClRd5pWsjZsddYxpWs517R0HkyiefQPIytCVh4ZcC5x9XaG8KTdd5iRQUfg==} + /@changesets/logger@0.1.0: + resolution: {integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==} dependencies: - picocolors: 1.1.1 + chalk: 2.4.2 dev: true /@changesets/parse@0.4.0: @@ -4971,30 +5001,33 @@ packages: js-yaml: 3.14.1 dev: true - /@changesets/pre@2.0.1: - resolution: {integrity: sha512-vvBJ/If4jKM4tPz9JdY2kGOgWmCowUYOi5Ycv8dyLnEE8FgpYYUo1mgJZxcdtGGP3aG8rAQulGLyyXGSLkIMTQ==} + /@changesets/pre@2.0.0: + resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==} dependencies: + '@babel/runtime': 7.25.6 '@changesets/errors': 0.2.0 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 fs-extra: 7.0.1 dev: true - /@changesets/read@0.6.1: - resolution: {integrity: sha512-jYMbyXQk3nwP25nRzQQGa1nKLY0KfoOV7VLgwucI0bUO8t8ZLCr6LZmgjXsiKuRDc+5A6doKPr9w2d+FEJ55zQ==} + /@changesets/read@0.6.0: + resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==} dependencies: - '@changesets/git': 3.0.1 - '@changesets/logger': 0.1.1 + '@babel/runtime': 7.25.6 + '@changesets/git': 3.0.0 + '@changesets/logger': 0.1.0 '@changesets/parse': 0.4.0 '@changesets/types': 6.0.0 + chalk: 2.4.2 fs-extra: 7.0.1 p-filter: 2.1.0 - picocolors: 1.1.1 dev: true - /@changesets/should-skip-package@0.1.1: - resolution: {integrity: sha512-H9LjLbF6mMHLtJIc/eHR9Na+MifJ3VxtgP/Y+XLn4BF7tDTEN1HNYtH6QMcjP1uxp9sjaFYmW8xqloaCi/ckTg==} + /@changesets/should-skip-package@0.1.0: + resolution: {integrity: sha512-FxG6Mhjw7yFStlSM7Z0Gmg3RiyQ98d/9VpQAZ3Fzr59dCOM9G6ZdYbjiSAt0XtFr9JR5U2tBaJWPjrkGGc618g==} dependencies: + '@babel/runtime': 7.25.6 '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 dev: true @@ -5007,9 +5040,10 @@ packages: resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==} dev: true - /@changesets/write@0.3.2: - resolution: {integrity: sha512-kDxDrPNpUgsjDbWBvUo27PzKX4gqeKOlhibaOXDJA6kuBisGqNHv/HwGJrAu8U/dSf8ZEFIeHIPtvSlZI1kULw==} + /@changesets/write@0.3.1: + resolution: {integrity: sha512-SyGtMXzH3qFqlHKcvFY2eX+6b0NGiFcNav8AFsYwy5l8hejOeoeTDemu5Yjmke2V5jpzY+pBvM0vCCQ3gdZpfw==} dependencies: + '@babel/runtime': 7.25.6 '@changesets/types': 6.0.0 fs-extra: 7.0.1 human-id: 1.0.2 @@ -5162,7 +5196,7 @@ packages: resolution: {integrity: sha512-BDXFbYOJzT/NBEtp71cvsrGPwGAMGRB/349rwKuoxNSiKjPraNNnlK6MIIabViCjqZugu6j+xeMDlEkWdHHJSg==} dependencies: '@esbuild-kit/core-utils': 3.1.0 - get-tsconfig: 4.5.0 + get-tsconfig: 4.8.1 dev: true /@esbuild-kit/core-utils@3.1.0: @@ -5178,7 +5212,7 @@ packages: deprecated: 'Merged into tsx: https://tsx.is' dependencies: '@esbuild-kit/core-utils': 3.1.0 - get-tsconfig: 4.5.0 + get-tsconfig: 4.8.1 dev: true /@esbuild/android-arm64@0.17.18: @@ -7710,7 +7744,7 @@ packages: fast-glob: 3.3.2 is-glob: 4.0.3 open: 9.1.0 - picocolors: 1.1.1 + picocolors: 1.0.0 tslib: 2.6.3 /@project-serum/anchor@0.26.0: @@ -9654,6 +9688,16 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false + /@rhinestone/module-sdk@0.1.28(viem@2.21.29): + resolution: {integrity: sha512-Ob9qMs/scBrk6/X0dvb02kWqiCdP3Vau6PRNr3PP7PGxIIBFunJoVHuLWg4Tb/DHS3dCUXhuTk+XhObH1HjH+w==} + peerDependencies: + viem: ^2.0.0 + dependencies: + solady: 0.0.235 + tslib: 2.8.1 + viem: 2.21.29(typescript@5.1.5) + dev: false + /@rnx-kit/chromium-edge-launcher@1.0.0: resolution: {integrity: sha512-lzD84av1ZQhYUS+jsGqJiCMaJO2dn9u+RTT9n9q6D3SaKVwWqv+7AoRKqBu19bkwyE+iFRl1ymr40QS90jVFYg==} engines: {node: '>=14.15'} @@ -10088,6 +10132,19 @@ packages: - zod dev: false + /@silencelaboratories/walletprovider-sdk@0.3.0(typescript@5.1.5): + resolution: {integrity: sha512-5+yS95DwIufP0qOPuk81cXZ8gepcARXwuKRDAtjtf50JVX0MOMy6pR8f/1j5PATPdImzgI8905x3ZBgXfi+FKw==} + dependencies: + '@noble/curves': 1.6.0 + js-base64: 3.7.7 + viem: 2.21.32(typescript@5.1.5) + transitivePeerDependencies: + - bufferutil + - typescript + - utf-8-validate + - zod + dev: false + /@sinclair/typebox@0.25.22: resolution: {integrity: sha512-6U6r2L7rnM7EG8G1tWzIjdB3QlsHF4slgcqXNN/SF0xJOAr0nDmT2GedlkyO3mrv8mDTJ24UuOMWR3diBrCvQQ==} dev: true @@ -11396,7 +11453,7 @@ packages: /@toruslabs/eccrypto@2.2.1: resolution: {integrity: sha512-7sviL0wLYsfA5ogEAOIdb0tu/QAOFXfHc9B8ONYtF04x4Mg3Nr89LL35FhjaEm055q8Ru7cUQhEFSiqJqm9GCw==} dependencies: - elliptic: 6.6.0 + elliptic: 6.5.7 dev: false /@toruslabs/http-helpers@3.4.0(@babel/runtime@7.25.6): @@ -11423,7 +11480,7 @@ packages: '@babel/runtime': 7.25.6 '@toruslabs/eccrypto': 2.2.1 '@toruslabs/http-helpers': 3.4.0(@babel/runtime@7.25.6) - elliptic: 6.6.0 + elliptic: 6.5.7 ethereum-cryptography: 2.1.3 json-stable-stringify: 1.1.1 transitivePeerDependencies: @@ -11975,6 +12032,10 @@ packages: resolution: {integrity: sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==} dev: true + /@types/minimist@1.2.2: + resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} + dev: true + /@types/ms@0.7.34: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} dev: false @@ -12015,6 +12076,10 @@ packages: /@types/node@20.3.1: resolution: {integrity: sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg==} + /@types/normalize-package-data@2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: true + /@types/pbkdf2@3.1.0: resolution: {integrity: sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==} dependencies: @@ -13336,6 +13401,11 @@ packages: is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 + /arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + dev: true + /asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} dev: false @@ -13374,7 +13444,7 @@ packages: resolution: {integrity: sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg==} engines: {node: '>=4'} dependencies: - tslib: 2.6.3 + tslib: 2.8.1 dev: false /astral-regex@1.0.0: @@ -13934,6 +14004,12 @@ packages: dependencies: fill-range: 7.1.1 + /breakword@1.0.5: + resolution: {integrity: sha512-ex5W9DoOQ/LUEU3PMdLs9ua/CYZl1678NUkKOdUSi8Aw5F1idieaiRURCBFJCwVcrD1J8Iy3vfWSloaMwO2qFg==} + dependencies: + wcwidth: 1.0.1 + dev: true + /brorand@1.1.0: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} @@ -13990,7 +14066,7 @@ packages: browserify-rsa: 4.1.0 create-hash: 1.2.0 create-hmac: 1.1.7 - elliptic: 6.6.0 + elliptic: 6.5.7 hash-base: 3.0.4 inherits: 2.0.4 parse-asn1: 5.1.7 @@ -14176,6 +14252,15 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} + /camelcase-keys@6.2.2: + resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} + engines: {node: '>=8'} + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + dev: true + /camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -14372,7 +14457,6 @@ packages: string-width: 4.2.3 strip-ansi: 6.0.1 wrap-ansi: 6.2.0 - dev: false /cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} @@ -14407,7 +14491,6 @@ packages: /clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} - dev: false /clsx@2.0.0: resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} @@ -14624,7 +14707,7 @@ packages: resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} dependencies: bn.js: 4.12.0 - elliptic: 6.6.0 + elliptic: 6.5.7 dev: false /create-hash@1.2.0: @@ -14736,6 +14819,28 @@ packages: /csstype@3.1.2: resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} + /csv-generate@3.4.3: + resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==} + dev: true + + /csv-parse@4.16.3: + resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==} + dev: true + + /csv-stringify@5.6.5: + resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==} + dev: true + + /csv@5.5.3: + resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==} + engines: {node: '>= 0.1.90'} + dependencies: + csv-generate: 3.4.3 + csv-parse: 4.16.3 + csv-stringify: 5.6.5 + stream-transform: 2.1.3 + dev: true + /damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} @@ -14808,10 +14913,17 @@ packages: ms: 2.1.2 supports-color: 8.1.1 + /decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + dev: true + /decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - dev: false /decamelize@4.0.0: resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} @@ -14878,7 +14990,6 @@ packages: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} dependencies: clone: 1.0.4 - dev: false /defer-to-connect@2.0.1: resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} @@ -15092,8 +15203,8 @@ packages: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 - /elliptic@6.6.0: - resolution: {integrity: sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==} + /elliptic@6.5.7: + resolution: {integrity: sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==} dependencies: bn.js: 4.12.0 brorand: 1.1.0 @@ -16194,6 +16305,13 @@ packages: locate-path: 6.0.0 path-exists: 4.0.0 + /find-yarn-workspace-root2@1.2.16: + resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} + dependencies: + micromatch: 4.0.5 + pkg-dir: 4.2.0 + dev: true + /flat-cache@3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} @@ -16382,6 +16500,12 @@ packages: /get-tsconfig@4.5.0: resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==} + /get-tsconfig@4.8.1: + resolution: {integrity: sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==} + dependencies: + resolve-pkg-maps: 1.0.0 + dev: true + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -16525,6 +16649,10 @@ packages: /graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + dev: true + /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -16545,6 +16673,11 @@ packages: - uWebSockets.js dev: false + /hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + dev: true + /hardhat-watcher@2.5.0(hardhat@2.12.7): resolution: {integrity: sha512-Su2qcSMIo2YO2PrmJ0/tdkf+6pSt8zf9+4URR5edMVti6+ShI8T3xhPrwugdyTOFuyj8lKHrcTZNKUFYowYiyA==} peerDependencies: @@ -16868,6 +17001,10 @@ packages: minimalistic-assert: 1.0.1 minimalistic-crypto-utils: 1.0.1 + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: true + /hpke-js@1.2.7: resolution: {integrity: sha512-g6gW2QZki8PktguvoXzAN4jKDWUPkApkBFHAVlhnr/tZUHlvuvMLZb7ZpdDMU8UvCh4iUDFMOJJrjN18OqEpIQ==} engines: {node: '>=16.0.0'} @@ -17223,6 +17360,11 @@ packages: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} + /is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + dev: true + /is-plain-obj@2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} @@ -18243,7 +18385,6 @@ packages: /kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - dev: false /klaw@1.3.1: resolution: {integrity: sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==} @@ -18254,6 +18395,11 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} + /kleur@4.1.5: + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} + dev: true + /language-subtag-registry@0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} @@ -18347,6 +18493,16 @@ packages: - uWebSockets.js dev: false + /load-yaml-file@0.2.0: + resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} + engines: {node: '>=6'} + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + dev: true + /locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} @@ -18501,6 +18657,16 @@ packages: dependencies: tmpl: 1.0.5 + /map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + dev: true + + /map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + dev: true + /marky@1.2.5: resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} dev: false @@ -18532,6 +18698,23 @@ packages: resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} engines: {node: '>= 0.10.0'} + /meow@6.1.1: + resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==} + engines: {node: '>=8'} + dependencies: + '@types/minimist': 1.2.2 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 2.5.0 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.13.1 + yargs-parser: 18.1.3 + dev: true + /merge-options@3.0.4: resolution: {integrity: sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==} engines: {node: '>=10'} @@ -18836,6 +19019,11 @@ packages: engines: {node: '>=10'} dev: false + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: true + /minimalistic-assert@1.0.1: resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} @@ -18859,6 +19047,15 @@ packages: dependencies: brace-expansion: 2.0.1 + /minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + dev: true + /minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -18866,6 +19063,11 @@ packages: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} + /mixme@0.5.5: + resolution: {integrity: sha512-/6IupbRx32s7jjEwHcycXikJwFD5UujbVNuJFkeKLYje+92OvtuPniF6JhnFm5JCTDUhS+kYK3W/4BWYQYXz7w==} + engines: {node: '>= 8.0.0'} + dev: true + /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true @@ -18926,6 +19128,7 @@ packages: /mri@1.2.0: resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} engines: {node: '>=4'} + dev: false /ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} @@ -19170,6 +19373,15 @@ packages: engines: {node: '>=0.12.0'} dev: false + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.8 + semver: 7.5.4 + validate-npm-package-license: 3.0.4 + dev: true + /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} @@ -19551,10 +19763,6 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - /package-manager-detector@0.2.4: - resolution: {integrity: sha512-H/OUu9/zUfP89z1APcBf2X8Us0tt8dUK4lUmKqz12QNXif3DxAs1/YqjGtcutZi1zQqeNQRWr9C+EbQnnvSSFA==} - dev: true - /pako@2.1.0: resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} dev: false @@ -19651,9 +19859,6 @@ packages: /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - /picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -19874,6 +20079,16 @@ packages: resolution: {integrity: sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q==} dev: false + /preferred-pm@3.0.3: + resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + find-yarn-workspace-root2: 1.2.16 + path-exists: 4.0.0 + which-pm: 2.0.0 + dev: true + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -20082,6 +20297,11 @@ packages: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} dev: false + /quick-lru@4.0.1: + resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} + engines: {node: '>=8'} + dev: true + /quick-lru@5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} @@ -20434,6 +20654,25 @@ packages: dependencies: pify: 2.3.0 + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + /read-yaml-file@1.1.0: resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==} engines: {node: '>=6'} @@ -20500,9 +20739,17 @@ packages: ast-types: 0.15.2 esprima: 4.0.1 source-map: 0.6.1 - tslib: 2.6.3 + tslib: 2.8.1 dev: false + /redent@3.0.0: + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + dev: true + /reduce-flatten@2.0.0: resolution: {integrity: sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==} engines: {node: '>=6'} @@ -20582,7 +20829,6 @@ packages: /require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - dev: false /resolve-alpn@1.2.1: resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} @@ -20608,6 +20854,10 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} + /resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + dev: true + /resolve.exports@2.0.0: resolution: {integrity: sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg==} engines: {node: '>=10'} @@ -20719,7 +20969,7 @@ packages: dependencies: bn.js: 5.2.1 brorand: 1.1.0 - elliptic: 6.6.0 + elliptic: 6.5.7 hash.js: 1.1.7 ripple-address-codec: 4.3.1 dev: false @@ -20930,7 +21180,7 @@ packages: engines: {node: '>=18.0.0'} requiresBuild: true dependencies: - elliptic: 6.6.0 + elliptic: 6.5.7 node-addon-api: 5.1.0 node-gyp-build: 4.6.0 @@ -21002,7 +21252,6 @@ packages: /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - dev: false /set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} @@ -21103,6 +21352,19 @@ packages: engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} dev: false + /smartwrap@2.0.2: + resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==} + engines: {node: '>=6'} + hasBin: true + dependencies: + array.prototype.flat: 1.3.2 + breakword: 1.0.5 + grapheme-splitter: 1.0.4 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + yargs: 15.4.1 + dev: true + /snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: @@ -21153,6 +21415,10 @@ packages: smart-buffer: 4.2.0 dev: false + /solady@0.0.235: + resolution: {integrity: sha512-JUEXLDG7ag3HmqUnrDG7ilhafH6R9bFPpwV63O2kH4UbnS2+gRGEOqqy4k01O7tHjo3MWkDD0cpG+UY9pjy/fQ==} + dev: false + /solc@0.7.3(debug@4.3.4): resolution: {integrity: sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==} engines: {node: '>=8.0.0'} @@ -21246,6 +21512,28 @@ packages: signal-exit: 3.0.7 dev: true + /spdx-correct@3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.12 + dev: true + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: true + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.12 + dev: true + + /spdx-license-ids@3.0.12: + resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} + dev: true + /split-on-first@1.1.0: resolution: {integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==} engines: {node: '>=6'} @@ -21302,6 +21590,12 @@ packages: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} dev: false + /stream-transform@2.1.3: + resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} + dependencies: + mixme: 0.5.5 + dev: true + /streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} engines: {node: '>=10.0.0'} @@ -21446,6 +21740,13 @@ packages: dependencies: is-hex-prefixed: 1.0.0 + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} @@ -21756,7 +22057,7 @@ packages: bindings: 1.5.0 bn.js: 4.12.0 create-hmac: 1.1.7 - elliptic: 6.6.0 + elliptic: 6.5.7 nan: 2.20.0 dev: false @@ -21818,6 +22119,11 @@ packages: engines: {node: '>=0.6'} dev: false + /trim-newlines@3.0.1: + resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} + engines: {node: '>=8'} + dev: true + /ts-api-utils@1.3.0(typescript@5.1.3): resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} @@ -21878,6 +22184,10 @@ packages: /tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + /tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + dev: false + /tsort@0.0.1: resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} @@ -21910,6 +22220,20 @@ packages: fsevents: 2.3.3 dev: true + /tty-table@4.1.6: + resolution: {integrity: sha512-kRj5CBzOrakV4VRRY5kUWbNYvo/FpOsz65DzI5op9P+cHov3+IqPbo1JE1ZnQGkHdZgNFDsrEjrfqqy/Ply9fw==} + engines: {node: '>=8.0.0'} + hasBin: true + dependencies: + chalk: 4.1.2 + csv: 5.5.3 + kleur: 4.1.5 + smartwrap: 2.0.2 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + yargs: 17.6.2 + dev: true + /tweetnacl-util@0.15.1: resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==} @@ -21926,6 +22250,11 @@ packages: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} + /type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + dev: true + /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -21934,10 +22263,20 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: true + /type-fest@0.7.1: resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} engines: {node: '>=8'} + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: true + /typechain@8.3.2(typescript@5.1.5): resolution: {integrity: sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==} hasBin: true @@ -22217,7 +22556,7 @@ packages: dependencies: browserslist: 4.22.3 escalade: 3.1.1 - picocolors: 1.1.1 + picocolors: 1.0.0 /uqr@0.1.2: resolution: {integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA==} @@ -22360,6 +22699,13 @@ packages: convert-source-map: 1.9.0 dev: true + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: true + /varuint-bitcoin@1.1.2: resolution: {integrity: sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw==} dependencies: @@ -22441,9 +22787,80 @@ packages: - zod dev: false + /viem@2.21.29(typescript@5.1.3): + resolution: {integrity: sha512-n9LoCJjmI1XsE33nl+M4p3Wy5hczv7YC682RpX4Qk9cw8s9HJU+hUi5eDcNDPBcAwIHGCPKsf8yFBEYnE2XYVg==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@adraffy/ens-normalize': 1.11.0 + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@scure/bip32': 1.5.0 + '@scure/bip39': 1.4.0 + abitype: 1.0.6(typescript@5.1.3) + isows: 1.0.6(ws@8.17.1) + typescript: 5.1.3 + webauthn-p256: 0.0.10 + ws: 8.17.1(bufferutil@4.0.7)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + dev: false + + /viem@2.21.29(typescript@5.1.5): + resolution: {integrity: sha512-n9LoCJjmI1XsE33nl+M4p3Wy5hczv7YC682RpX4Qk9cw8s9HJU+hUi5eDcNDPBcAwIHGCPKsf8yFBEYnE2XYVg==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@adraffy/ens-normalize': 1.11.0 + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@scure/bip32': 1.5.0 + '@scure/bip39': 1.4.0 + abitype: 1.0.6(typescript@5.1.5) + isows: 1.0.6(ws@8.17.1) + typescript: 5.1.5 + webauthn-p256: 0.0.10 + ws: 8.17.1(bufferutil@4.0.7)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + dev: false + + /viem@2.21.32(typescript@5.1.5): + resolution: {integrity: sha512-2oXt5JNIb683oy7C8wuIJ/SeL3XtHVMEQpy1U2TA6WMnJQ4ScssRvyPwYLcaP6mKlrGXE/cR/V7ncWpvLUVPYQ==} + peerDependencies: + typescript: '>=5.0.4' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@adraffy/ens-normalize': 1.11.0 + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@scure/bip32': 1.5.0 + '@scure/bip39': 1.4.0 + abitype: 1.0.6(typescript@5.1.5) + isows: 1.0.6(ws@8.17.1) + typescript: 5.1.5 + webauthn-p256: 0.0.10 + ws: 8.17.1(bufferutil@4.0.7)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate + - zod + dev: false + /viem@2.21.35(typescript@5.1.3): resolution: {integrity: sha512-f3EFc5JILeA9veuNymUN8HG/nKP9ykC0NCgwFrZWuxcCc822GaP0IEnkRBsHGqmjwbz//FxJFmvtx7TBcdVs0A==} - requiresBuild: true peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -22468,7 +22885,6 @@ packages: /viem@2.21.35(typescript@5.1.5): resolution: {integrity: sha512-f3EFc5JILeA9veuNymUN8HG/nKP9ykC0NCgwFrZWuxcCc822GaP0IEnkRBsHGqmjwbz//FxJFmvtx7TBcdVs0A==} - requiresBuild: true peerDependencies: typescript: '>=5.0.4' peerDependenciesMeta: @@ -22556,7 +22972,6 @@ packages: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} dependencies: defaults: 1.0.4 - dev: false /web3-core@4.3.2: resolution: {integrity: sha512-uIMVd/j4BgOnwfpY8ZT+QKubOyM4xohEhFZXz9xB8wimXWMMlYVlIK/TbfHqFolS9uOerdSGhsMbcK9lETae8g==} @@ -22905,7 +23320,14 @@ packages: /which-module@2.0.0: resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==} - dev: false + + /which-pm@2.0.0: + resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} + engines: {node: '>=8.15'} + dependencies: + load-yaml-file: 0.2.0 + path-exists: 4.0.0 + dev: true /which-typed-array@1.1.15: resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} @@ -22969,7 +23391,6 @@ packages: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: false /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} @@ -23039,7 +23460,6 @@ packages: /y18n@4.0.3: resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: false /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} @@ -23072,7 +23492,6 @@ packages: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 - dev: false /yargs-parser@20.2.4: resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} @@ -23121,7 +23540,6 @@ packages: which-module: 2.0.0 y18n: 4.0.3 yargs-parser: 18.1.3 - dev: false /yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} From a79b34861bd976d2587f957e47aca311a45dd3d2 Mon Sep 17 00:00:00 2001 From: Andrew Min Date: Wed, 20 Nov 2024 11:01:23 +0900 Subject: [PATCH 2/4] use jiffyscan v2 --- examples/with-biconomy-aa/src/ethers.ts | 2 +- examples/with-biconomy-aa/src/viem.ts | 2 +- examples/with-eth-passkeys-galore/src/pages/index.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/with-biconomy-aa/src/ethers.ts b/examples/with-biconomy-aa/src/ethers.ts index d0564361e..2e6235a3c 100644 --- a/examples/with-biconomy-aa/src/ethers.ts +++ b/examples/with-biconomy-aa/src/ethers.ts @@ -149,7 +149,7 @@ async function main() { print( `User Ops can be found here:`, - `https://jiffyscan.xyz/bundle/${transactionHash}?network=${network}&pageNo=0&pageSize=10` + `https://v2.jiffyscan.xyz/tx/${transactionHash}?network=${network}&pageNo=0&pageSize=10` ); } diff --git a/examples/with-biconomy-aa/src/viem.ts b/examples/with-biconomy-aa/src/viem.ts index 08953971d..560572b6b 100644 --- a/examples/with-biconomy-aa/src/viem.ts +++ b/examples/with-biconomy-aa/src/viem.ts @@ -166,7 +166,7 @@ async function main() { print( `User Ops can be found here:`, - `https://jiffyscan.xyz/bundle/${transactionHash}?network=${network}&pageNo=0&pageSize=10` + `https://v2.jiffyscan.xyz/tx/${transactionHash}?network=${network}&pageNo=0&pageSize=10` ); } diff --git a/examples/with-eth-passkeys-galore/src/pages/index.tsx b/examples/with-eth-passkeys-galore/src/pages/index.tsx index f53c759c9..97b25a94c 100644 --- a/examples/with-eth-passkeys-galore/src/pages/index.tsx +++ b/examples/with-eth-passkeys-galore/src/pages/index.tsx @@ -305,7 +305,7 @@ export default function Home() { const { transactionHash } = await userOpResponse.waitForTxHash(); setSignedTransaction( - `https://jiffyscan.xyz/bundle/${transactionHash}?network=sepolia&pageNo=0&pageSize=10` + `https://v2.jiffyscan.xyz/tx/${transactionHash}?network=sepolia&pageNo=0&pageSize=10` ); }; From 9171a48a97501986e80b00e4c03c767043ccb857 Mon Sep 17 00:00:00 2001 From: Andrew Min Date: Wed, 20 Nov 2024 11:01:48 +0900 Subject: [PATCH 3/4] finish nexus implementation --- examples/with-biconomy-aa/package.json | 3 +- examples/with-biconomy-aa/src/nexus-viem.ts | 90 ++++------ pnpm-lock.yaml | 187 ++++++++++---------- 3 files changed, 129 insertions(+), 151 deletions(-) diff --git a/examples/with-biconomy-aa/package.json b/examples/with-biconomy-aa/package.json index 0e5fbb87c..a6ccdb3b8 100644 --- a/examples/with-biconomy-aa/package.json +++ b/examples/with-biconomy-aa/package.json @@ -1,6 +1,6 @@ { "name": "@turnkey/example-with-biconomy-aa", - "version": "0.1.0", + "version": "0.2.0", "private": true, "scripts": { "start-ethers": "tsx src/ethers.ts", @@ -12,6 +12,7 @@ "dependencies": { "@biconomy/account": "^4.5.6", "@biconomy/sdk": "^0.0.10", + "@rhinestone/module-sdk": "^0.1.28", "@turnkey/ethers": "workspace:*", "@turnkey/sdk-server": "workspace:*", "@turnkey/viem": "workspace:*", diff --git a/examples/with-biconomy-aa/src/nexus-viem.ts b/examples/with-biconomy-aa/src/nexus-viem.ts index c769c7ba9..1e006ed9d 100644 --- a/examples/with-biconomy-aa/src/nexus-viem.ts +++ b/examples/with-biconomy-aa/src/nexus-viem.ts @@ -6,16 +6,9 @@ import { createPublicClient, http, type Account, - WalletClient, formatEther, } from "viem"; -import { sepolia } from "viem/chains"; -import { - createSmartAccountClient, - BiconomySmartAccountV2, - PaymasterMode, - LightSigner, -} from "@biconomy/account"; +import { baseSepolia } from "viem/chains"; import { createNexusClient, createBicoPaymasterClient } from "@biconomy/sdk"; // Load environment variables from `.env.local` @@ -47,63 +40,43 @@ async function main() { signWith: process.env.SIGN_WITH!, }); - const network = "sepolia"; + // Network must be base-sepolia at the moment + const network = "base-sepolia"; + const bundlerUrl = + "https://bundler.biconomy.io/api/v3/84532/nJPK7B3ru.dd7f7861-190d-41bd-af80-6877f74b8f44"; + const paymasterUrl = + "https://paymaster.biconomy.io/api/v2/84532/F7wyL1clz.75a64804-3e97-41fa-ba1e-33e98c2cc703"; + const providerUrl = `https://${network}.infura.io/v3/${process.env + .INFURA_KEY!}`; // Bring your own provider const client = createWalletClient({ account: turnkeyAccount as Account, - chain: sepolia, - transport: http( - `https://${network}.infura.io/v3/${process.env.INFURA_KEY!}` - ), + chain: baseSepolia, + transport: http(providerUrl), }); const publicClient = createPublicClient({ - chain: sepolia, - transport: http( - `https://${network}.infura.io/v3/${process.env.INFURA_KEY!}` - ), + chain: baseSepolia, + transport: http(providerUrl), }); - // Connect a TurnkeySigner to a Biconomy Smart Account Client, defaulting to Sepolia - // Ensure this method is hoisted - const connect = async ( - turnkeyClient: WalletClient - ): Promise => { - try { - const smartAccount = await createSmartAccountClient({ - signer: turnkeyClient, - bundlerUrl: process.env.BICONOMY_BUNDLER_URL!, // <-- Read about this at https://docs.biconomy.io/dashboard#bundler-url - biconomyPaymasterApiKey: process.env.BICONOMY_PAYMASTER_API_KEY!, // <-- Read about at https://docs.biconomy.io/dashboard/paymaster - rpcUrl: `https://${network}.infura.io/v3/${process.env.INFURA_KEY!}`, // <-- read about this at https://docs.biconomy.io/account/methods#createsmartaccountclient - chainId: Number(chainId), - }); - - return smartAccount; - } catch (error: any) { - throw new Error(error); - } - }; - const nexusClient = await createNexusClient({ - signer: client, - chain: sepolia, + signer: turnkeyAccount, + chain: baseSepolia, transport: http(), - bundlerTransport: http(process.env.BICONOMY_BUNDLER_URL!), + bundlerTransport: http(bundlerUrl), paymaster: createBicoPaymasterClient({ - paymasterUrl: process.env.BICONOMY_PAYMASTER_URL!, - }) + paymasterUrl, + }), }); - + + const smartAccount = nexusClient.account; const smartAccountAddress = nexusClient.account.address; const chainId = client.chain.id; const signerAddress = client.account.address; // signer - const smartAccount = nexusClient.account; - // const smartAccount = await connect(client); - // const smartAccountAddress = await smartAccount.getAccountAddress(); - const transactionCount = await publicClient.getTransactionCount({ address: smartAccountAddress, }); @@ -162,27 +135,28 @@ async function main() { type: 2, }; - // Make a simple send tx (which calls `signTransaction` under the hood) - const hash = await nexusClient.sendTransaction({ - calls: [ - { - to: destination, + const hash = await nexusClient.sendTransaction({ + calls: [ + { + to: destination, value: amount, - }, - ], - }); - const { transactionHash } = await nexusClient.waitForTransactionReceipt({ hash }); + }, + ], + }); + const { transactionHash } = await nexusClient.waitForTransactionReceipt({ + hash, + }); print( `Sent ${formatEther(transactionRequest.value)} Ether to ${ transactionRequest.to }:`, - `https://${network}.etherscan.io/tx/${transactionHash}` + `https://sepolia.basescan.org/tx/${transactionHash}` ); print( `User Ops can be found here:`, - `https://jiffyscan.xyz/bundle/${transactionHash}?network=${network}&pageNo=0&pageSize=10` + `https://v2.jiffyscan.xyz/tx/${transactionHash}?network=${network}&pageNo=0&pageSize=10` ); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ac3f64b94..8c36aa437 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -641,6 +641,9 @@ importers: '@biconomy/sdk': specifier: ^0.0.10 version: 0.0.10(@rhinestone/module-sdk@0.1.28)(typescript@5.1.5)(viem@2.21.29) + '@rhinestone/module-sdk': + specifier: ^0.1.28 + version: 0.1.28(viem@2.21.29) '@turnkey/ethers': specifier: workspace:* version: link:../../packages/ethers @@ -1376,7 +1379,7 @@ importers: version: 0.9.35(@solana/web3.js@1.88.1)(bs58@5.0.0)(react-dom@18.3.1)(react-native@0.74.0)(react@18.3.1) '@solana/wallet-adapter-wallets': specifier: ^0.19.32 - version: 0.19.32(@babel/core@7.24.5)(@babel/runtime@7.25.6)(@solana/web3.js@1.88.1)(bs58@5.0.0)(react-dom@18.3.1)(react-native@0.74.0)(react@18.3.1)(tslib@2.6.3) + version: 0.19.32(@babel/core@7.24.5)(@babel/runtime@7.25.6)(@solana/web3.js@1.88.1)(bs58@5.0.0)(react-dom@18.3.1)(react-native@0.74.0)(react@18.3.1)(tslib@2.8.1) '@solana/web3.js': specifier: ^1.88.1 version: 1.88.1 @@ -6508,7 +6511,7 @@ packages: dependencies: '@ngraveio/bc-ur': 1.1.13 bs58check: 2.1.2 - tslib: 2.6.3 + tslib: 2.8.1 dev: false /@keystonehq/sdk@0.13.1: @@ -7709,14 +7712,14 @@ packages: dependencies: asn1js: 3.0.5 pvtsutils: 1.3.5 - tslib: 2.6.3 + tslib: 2.8.1 dev: false /@peculiar/json-schema@1.1.12: resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} engines: {node: '>=8.0.0'} dependencies: - tslib: 2.6.3 + tslib: 2.8.1 dev: false /@peculiar/webcrypto@1.5.0: @@ -7745,7 +7748,7 @@ packages: is-glob: 4.0.3 open: 9.1.0 picocolors: 1.0.0 - tslib: 2.6.3 + tslib: 2.8.1 /@project-serum/anchor@0.26.0: resolution: {integrity: sha512-Nq+COIjE1135T7qfnOHEn7E0q39bQTgXLFk837/rgFe6Hkew9WML7eHsS+lSYD2p3OJaTiUOHTAq1lHy36oIqQ==} @@ -10850,7 +10853,7 @@ packages: - utf-8-validate dev: false - /@solana/wallet-adapter-trezor@0.1.2(@babel/core@7.24.5)(@solana/web3.js@1.88.1)(react-native@0.74.0)(tslib@2.6.3): + /@solana/wallet-adapter-trezor@0.1.2(@babel/core@7.24.5)(@solana/web3.js@1.88.1)(react-native@0.74.0)(tslib@2.8.1): resolution: {integrity: sha512-x4nXntYi1SIv63ZdXWX/Rq/VKwguByKu67WpyUXsu8kOdviksb20bQMuAR7Ue41oJ9zSnLlTxAxA1SuWNkFRBg==} engines: {node: '>=16'} peerDependencies: @@ -10858,7 +10861,7 @@ packages: dependencies: '@solana/wallet-adapter-base': 0.9.23(@solana/web3.js@1.88.1) '@solana/web3.js': 1.88.1 - '@trezor/connect-web': 9.3.0(@babel/core@7.24.5)(react-native@0.74.0)(tslib@2.6.3) + '@trezor/connect-web': 9.3.0(@babel/core@7.24.5)(react-native@0.74.0)(tslib@2.8.1) buffer: 6.0.3 transitivePeerDependencies: - '@babel/core' @@ -10924,7 +10927,7 @@ packages: - utf-8-validate dev: false - /@solana/wallet-adapter-wallets@0.19.32(@babel/core@7.24.5)(@babel/runtime@7.25.6)(@solana/web3.js@1.88.1)(bs58@5.0.0)(react-dom@18.3.1)(react-native@0.74.0)(react@18.3.1)(tslib@2.6.3): + /@solana/wallet-adapter-wallets@0.19.32(@babel/core@7.24.5)(@babel/runtime@7.25.6)(@solana/web3.js@1.88.1)(bs58@5.0.0)(react-dom@18.3.1)(react-native@0.74.0)(react@18.3.1)(tslib@2.8.1): resolution: {integrity: sha512-voZYQiIy1yXuKvm7x7YpnQ53eiJC7NpIYSQjzApOUiswiBRVeYcnPO4O/MMPUwsGkS7iZKqKZjo5CnOaN44n+g==} engines: {node: '>=16'} peerDependencies: @@ -10961,7 +10964,7 @@ packages: '@solana/wallet-adapter-tokenary': 0.1.12(@solana/web3.js@1.88.1) '@solana/wallet-adapter-tokenpocket': 0.4.19(@solana/web3.js@1.88.1) '@solana/wallet-adapter-torus': 0.11.28(@babel/runtime@7.25.6)(@solana/web3.js@1.88.1) - '@solana/wallet-adapter-trezor': 0.1.2(@babel/core@7.24.5)(@solana/web3.js@1.88.1)(react-native@0.74.0)(tslib@2.6.3) + '@solana/wallet-adapter-trezor': 0.1.2(@babel/core@7.24.5)(@solana/web3.js@1.88.1)(react-native@0.74.0)(tslib@2.8.1) '@solana/wallet-adapter-trust': 0.1.13(@solana/web3.js@1.88.1) '@solana/wallet-adapter-unsafe-burner': 0.1.7(@solana/web3.js@1.88.1) '@solana/wallet-adapter-walletconnect': 0.1.16(@solana/web3.js@1.88.1) @@ -11325,13 +11328,13 @@ packages: /@swc/helpers@0.5.12: resolution: {integrity: sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==} dependencies: - tslib: 2.6.3 + tslib: 2.8.1 /@swc/helpers@0.5.5: resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} dependencies: '@swc/counter': 0.1.3 - tslib: 2.6.3 + tslib: 2.8.1 dev: false /@szmarczak/http-timer@4.0.6: @@ -11570,30 +11573,30 @@ packages: - utf-8-validate dev: false - /@trezor/analytics@1.1.0(react-native@0.74.0)(tslib@2.6.3): + /@trezor/analytics@1.1.0(react-native@0.74.0)(tslib@2.8.1): resolution: {integrity: sha512-1SpPYt335qatjMxd0Sd1ZsTWxkifRCBPo6/2XjioUGHzurJYO5Lt58mlPd48k2c97JorwCSCCv863PD8Ja/GgA==} peerDependencies: tslib: ^2.6.2 dependencies: - '@trezor/env-utils': 1.1.0(react-native@0.74.0)(tslib@2.6.3) - '@trezor/utils': 9.1.0(tslib@2.6.3) - tslib: 2.6.3 + '@trezor/env-utils': 1.1.0(react-native@0.74.0)(tslib@2.8.1) + '@trezor/utils': 9.1.0(tslib@2.8.1) + tslib: 2.8.1 transitivePeerDependencies: - expo-constants - expo-localization - react-native dev: false - /@trezor/blockchain-link-types@1.1.0(tslib@2.6.3): + /@trezor/blockchain-link-types@1.1.0(tslib@2.8.1): resolution: {integrity: sha512-PTUKxAa+e0USf4/33mXlgttedCB8OWOzBANnFJqQ7/FFI2XhEC610ore86FTt6uPz4hyNkquiiQXRv07OYQJjQ==} peerDependencies: tslib: ^2.6.2 dependencies: '@solana/web3.js': 1.95.3 '@trezor/type-utils': 1.1.0 - '@trezor/utxo-lib': 2.1.0(tslib@2.6.3) + '@trezor/utxo-lib': 2.1.0(tslib@2.8.1) socks-proxy-agent: 6.1.1 - tslib: 2.6.3 + tslib: 2.8.1 transitivePeerDependencies: - bufferutil - encoding @@ -11601,16 +11604,16 @@ packages: - utf-8-validate dev: false - /@trezor/blockchain-link-utils@1.1.0(react-native@0.74.0)(tslib@2.6.3): + /@trezor/blockchain-link-utils@1.1.0(react-native@0.74.0)(tslib@2.8.1): resolution: {integrity: sha512-BBMKYZQchh16dMtc0rAwg4os58L/ubsHn6hpb/OQeLHhEvvW4g0Og4fPl4zNjSG4BX3lFt+J2GfZteXJCOjGQg==} peerDependencies: tslib: ^2.6.2 dependencies: '@mobily/ts-belt': 3.13.1 '@solana/web3.js': 1.95.3 - '@trezor/env-utils': 1.1.0(react-native@0.74.0)(tslib@2.6.3) - '@trezor/utils': 9.1.0(tslib@2.6.3) - tslib: 2.6.3 + '@trezor/env-utils': 1.1.0(react-native@0.74.0)(tslib@2.8.1) + '@trezor/utils': 9.1.0(tslib@2.8.1) + tslib: 2.8.1 transitivePeerDependencies: - bufferutil - encoding @@ -11620,22 +11623,22 @@ packages: - utf-8-validate dev: false - /@trezor/blockchain-link@2.2.0(react-native@0.74.0)(tslib@2.6.3): + /@trezor/blockchain-link@2.2.0(react-native@0.74.0)(tslib@2.8.1): resolution: {integrity: sha512-jtMr+YZX7h1HGpXl5J8h25THC37bOA3fiPUeRMjaeYarAojKpygWf5J2oNShKlbyO6XqcyVXuVk2Ao6P5KGeuw==} peerDependencies: tslib: ^2.6.2 dependencies: '@solana/buffer-layout': 4.0.1 '@solana/web3.js': 1.95.3 - '@trezor/blockchain-link-types': 1.1.0(tslib@2.6.3) - '@trezor/blockchain-link-utils': 1.1.0(react-native@0.74.0)(tslib@2.6.3) - '@trezor/utils': 9.1.0(tslib@2.6.3) - '@trezor/utxo-lib': 2.1.0(tslib@2.6.3) + '@trezor/blockchain-link-types': 1.1.0(tslib@2.8.1) + '@trezor/blockchain-link-utils': 1.1.0(react-native@0.74.0)(tslib@2.8.1) + '@trezor/utils': 9.1.0(tslib@2.8.1) + '@trezor/utxo-lib': 2.1.0(tslib@2.8.1) '@types/web': 0.0.138 events: 3.3.0 ripple-lib: 1.10.1 socks-proxy-agent: 6.1.1 - tslib: 2.6.3 + tslib: 2.8.1 ws: 8.17.1(bufferutil@4.0.7)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil @@ -11647,42 +11650,42 @@ packages: - utf-8-validate dev: false - /@trezor/connect-analytics@1.1.0(react-native@0.74.0)(tslib@2.6.3): + /@trezor/connect-analytics@1.1.0(react-native@0.74.0)(tslib@2.8.1): resolution: {integrity: sha512-FhQOwCNpUyorf29I3eCD0K7/XU7JiOBMWKftxszCyVAIb2FJuLaIivEN8m83iNqQUliXm+DQXhICQyauhcuWXQ==} peerDependencies: tslib: ^2.6.2 dependencies: - '@trezor/analytics': 1.1.0(react-native@0.74.0)(tslib@2.6.3) - tslib: 2.6.3 + '@trezor/analytics': 1.1.0(react-native@0.74.0)(tslib@2.8.1) + tslib: 2.8.1 transitivePeerDependencies: - expo-constants - expo-localization - react-native dev: false - /@trezor/connect-common@0.1.0(react-native@0.74.0)(tslib@2.6.3): + /@trezor/connect-common@0.1.0(react-native@0.74.0)(tslib@2.8.1): resolution: {integrity: sha512-V80a4BOg7md47Hm28FOdWIG9dwZyjc1um3+JywNnw3aMJL1Uj3kQt2tUVHJn1ObMkKPdKy9hFhjd6yUlRs1iPg==} peerDependencies: tslib: ^2.6.2 dependencies: - '@trezor/env-utils': 1.1.0(react-native@0.74.0)(tslib@2.6.3) - '@trezor/utils': 9.1.0(tslib@2.6.3) - tslib: 2.6.3 + '@trezor/env-utils': 1.1.0(react-native@0.74.0)(tslib@2.8.1) + '@trezor/utils': 9.1.0(tslib@2.8.1) + tslib: 2.8.1 transitivePeerDependencies: - expo-constants - expo-localization - react-native dev: false - /@trezor/connect-web@9.3.0(@babel/core@7.24.5)(react-native@0.74.0)(tslib@2.6.3): + /@trezor/connect-web@9.3.0(@babel/core@7.24.5)(react-native@0.74.0)(tslib@2.8.1): resolution: {integrity: sha512-Toh/AN0UDafN3HiEMNKGiBJlmXuRnfNnbzd2m+SvkAp5gDGtrn8zgci72RXJmwVKdzmHxmRRb/A6cdCH7/yFtw==} peerDependencies: tslib: ^2.6.2 dependencies: - '@trezor/connect': 9.3.0(@babel/core@7.24.5)(react-native@0.74.0)(tslib@2.6.3) - '@trezor/connect-common': 0.1.0(react-native@0.74.0)(tslib@2.6.3) - '@trezor/utils': 9.1.0(tslib@2.6.3) - tslib: 2.6.3 + '@trezor/connect': 9.3.0(@babel/core@7.24.5)(react-native@0.74.0)(tslib@2.8.1) + '@trezor/connect-common': 0.1.0(react-native@0.74.0)(tslib@2.8.1) + '@trezor/utils': 9.1.0(tslib@2.8.1) + tslib: 2.8.1 transitivePeerDependencies: - '@babel/core' - bufferutil @@ -11694,7 +11697,7 @@ packages: - utf-8-validate dev: false - /@trezor/connect@9.3.0(@babel/core@7.24.5)(react-native@0.74.0)(tslib@2.6.3): + /@trezor/connect@9.3.0(@babel/core@7.24.5)(react-native@0.74.0)(tslib@2.8.1): resolution: {integrity: sha512-GRXzRTFZ53Va86xXa0n8NA0w/V4Oc6BYfQUal++ZnyTLeEqNfkGC0rSkgUWuBC0r1RO72GYG5pzP3Xuus+oSSw==} peerDependencies: tslib: ^2.6.2 @@ -11703,21 +11706,21 @@ packages: '@ethereumjs/common': 4.3.0 '@ethereumjs/tx': 5.3.0 '@fivebinaries/coin-selection': 2.2.1 - '@trezor/blockchain-link': 2.2.0(react-native@0.74.0)(tslib@2.6.3) - '@trezor/blockchain-link-types': 1.1.0(tslib@2.6.3) - '@trezor/connect-analytics': 1.1.0(react-native@0.74.0)(tslib@2.6.3) - '@trezor/connect-common': 0.1.0(react-native@0.74.0)(tslib@2.6.3) - '@trezor/protobuf': 1.1.0(tslib@2.6.3) - '@trezor/protocol': 1.1.0(tslib@2.6.3) - '@trezor/schema-utils': 1.1.0(tslib@2.6.3) - '@trezor/transport': 1.2.0(tslib@2.6.3) - '@trezor/utils': 9.1.0(tslib@2.6.3) - '@trezor/utxo-lib': 2.1.0(tslib@2.6.3) + '@trezor/blockchain-link': 2.2.0(react-native@0.74.0)(tslib@2.8.1) + '@trezor/blockchain-link-types': 1.1.0(tslib@2.8.1) + '@trezor/connect-analytics': 1.1.0(react-native@0.74.0)(tslib@2.8.1) + '@trezor/connect-common': 0.1.0(react-native@0.74.0)(tslib@2.8.1) + '@trezor/protobuf': 1.1.0(tslib@2.8.1) + '@trezor/protocol': 1.1.0(tslib@2.8.1) + '@trezor/schema-utils': 1.1.0(tslib@2.8.1) + '@trezor/transport': 1.2.0(tslib@2.8.1) + '@trezor/utils': 9.1.0(tslib@2.8.1) + '@trezor/utxo-lib': 2.1.0(tslib@2.8.1) blakejs: 1.2.1 bs58: 5.0.0 bs58check: 3.0.1 cross-fetch: 4.0.0 - tslib: 2.6.3 + tslib: 2.8.1 transitivePeerDependencies: - '@babel/core' - bufferutil @@ -11729,7 +11732,7 @@ packages: - utf-8-validate dev: false - /@trezor/env-utils@1.1.0(react-native@0.74.0)(tslib@2.6.3): + /@trezor/env-utils@1.1.0(react-native@0.74.0)(tslib@2.8.1): resolution: {integrity: sha512-inGzkeervHlfBvsReH2fKmkSSF2+zmBFFrGZMEEbDDNqpSURalyfujXAwxh3PbFlLzLr8YlTbt++micD5n204Q==} peerDependencies: expo-constants: '*' @@ -11745,51 +11748,51 @@ packages: optional: true dependencies: react-native: 0.74.0(@babel/core@7.24.5)(@babel/preset-env@7.20.2)(@types/react@18.3.3)(react@18.3.1) - tslib: 2.6.3 + tslib: 2.8.1 ua-parser-js: 1.0.38 dev: false - /@trezor/protobuf@1.1.0(tslib@2.6.3): + /@trezor/protobuf@1.1.0(tslib@2.8.1): resolution: {integrity: sha512-x6nFIi8q9PRJOPnEn1dITLbFmzCUaWXvbSJxPnzuUYSMJr0iSSj8BA3HqiXpK97+FseGbusee8oo4njAMLWOrA==} peerDependencies: tslib: ^2.6.2 dependencies: - '@trezor/schema-utils': 1.1.0(tslib@2.6.3) + '@trezor/schema-utils': 1.1.0(tslib@2.8.1) protobufjs: 7.2.6 - tslib: 2.6.3 + tslib: 2.8.1 dev: false - /@trezor/protocol@1.1.0(tslib@2.6.3): + /@trezor/protocol@1.1.0(tslib@2.8.1): resolution: {integrity: sha512-+EtR8CNlqkBw47oA8rexq2CHORF40xoE3f2Kiu7s9uq2sKHYEW3o20TZnDLMGqUOWcl1h3zxrvL8wymsUddjzw==} peerDependencies: tslib: ^2.6.2 dependencies: - tslib: 2.6.3 + tslib: 2.8.1 dev: false - /@trezor/schema-utils@1.1.0(tslib@2.6.3): + /@trezor/schema-utils@1.1.0(tslib@2.8.1): resolution: {integrity: sha512-FvHR3mzSB030E5HKQDEFioBEA36J27U1/z74Gobz6jy1SJu6vZsBhwerh7bZaLShkrmUQP7iHzSH/9x8jJxPhg==} peerDependencies: tslib: ^2.6.2 dependencies: '@sinclair/typebox': 0.31.28 ts-mixer: 6.0.4 - tslib: 2.6.3 + tslib: 2.8.1 dev: false - /@trezor/transport@1.2.0(tslib@2.6.3): + /@trezor/transport@1.2.0(tslib@2.8.1): resolution: {integrity: sha512-JaVhZ2KU48bCxT3Y+TnpU/J5rVxJ3OFiWWBBSxVeLlHM0ghCey2YlWrzfZIAfwCvFBfSqJA0VVYGKM2GSYhH0w==} peerDependencies: tslib: ^2.6.2 dependencies: - '@trezor/protobuf': 1.1.0(tslib@2.6.3) - '@trezor/protocol': 1.1.0(tslib@2.6.3) - '@trezor/utils': 9.1.0(tslib@2.6.3) + '@trezor/protobuf': 1.1.0(tslib@2.8.1) + '@trezor/protocol': 1.1.0(tslib@2.8.1) + '@trezor/utils': 9.1.0(tslib@2.8.1) cross-fetch: 4.0.0 json-stable-stringify: 1.1.1 long: 4.0.0 protobufjs: 7.2.6 - tslib: 2.6.3 + tslib: 2.8.1 usb: 2.13.0 transitivePeerDependencies: - encoding @@ -11799,21 +11802,21 @@ packages: resolution: {integrity: sha512-zoPN9ZmdYlr03WyCWEQY6xCHPfhsodENYHPcZMKObVsUlhtMh1Z7OSD/pzd/NzOPBAtSctNbldx4aFu9A88afw==} dev: false - /@trezor/utils@9.1.0(tslib@2.6.3): + /@trezor/utils@9.1.0(tslib@2.8.1): resolution: {integrity: sha512-ok9PxsVwwkyCFX6CVUjUzKsNQ0XblVnp5AYSUrPqESez3uioedzBd7f+tzHGo9sVAb7adYzQF2C2jzaINtHbiQ==} peerDependencies: tslib: ^2.6.2 dependencies: bignumber.js: 9.1.2 - tslib: 2.6.3 + tslib: 2.8.1 dev: false - /@trezor/utxo-lib@2.1.0(tslib@2.6.3): + /@trezor/utxo-lib@2.1.0(tslib@2.8.1): resolution: {integrity: sha512-qVwTgdqDMAduZWJc6/rXKHejUwTZT+KwxKvbqplm5KIIJdiqtjcEYi/5nXVZzuKZco4kOr0LoCjr35rhqJvW2w==} peerDependencies: tslib: ^2.6.2 dependencies: - '@trezor/utils': 9.1.0(tslib@2.6.3) + '@trezor/utils': 9.1.0(tslib@2.8.1) bchaddrjs: 0.5.2 bech32: 2.0.0 bip66: 1.1.5 @@ -11827,7 +11830,7 @@ packages: int64-buffer: 1.0.1 pushdata-bitcoin: 1.0.1 tiny-secp256k1: 1.1.6 - tslib: 2.6.3 + tslib: 2.8.1 typeforce: 1.18.0 varuint-bitcoin: 1.1.2 wif: 4.0.0 @@ -13291,7 +13294,7 @@ packages: resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} engines: {node: '>=10'} dependencies: - tslib: 2.6.3 + tslib: 2.8.1 dev: false /aria-query@5.3.0: @@ -13424,7 +13427,7 @@ packages: dependencies: pvtsutils: 1.3.5 pvutils: 1.1.3 - tslib: 2.6.3 + tslib: 2.8.1 dev: false /assert@2.1.0: @@ -13461,7 +13464,7 @@ packages: /async-mutex@0.4.1: resolution: {integrity: sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA==} dependencies: - tslib: 2.6.3 + tslib: 2.8.1 dev: false /async-retry@1.3.3: @@ -15134,7 +15137,7 @@ packages: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} dependencies: no-case: 3.0.4 - tslib: 2.6.3 + tslib: 2.8.1 dev: false /dotenv@14.3.2: @@ -18595,7 +18598,7 @@ packages: /lower-case@2.0.2: resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} dependencies: - tslib: 2.6.3 + tslib: 2.8.1 dev: false /lowercase-keys@2.0.0: @@ -19287,7 +19290,7 @@ packages: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} dependencies: lower-case: 2.0.2 - tslib: 2.6.3 + tslib: 2.8.1 dev: false /nocache@3.0.4: @@ -20224,7 +20227,7 @@ packages: /pvtsutils@1.3.5: resolution: {integrity: sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==} dependencies: - tslib: 2.6.3 + tslib: 2.8.1 dev: false /pvutils@1.1.3: @@ -20526,7 +20529,7 @@ packages: '@types/react': 18.2.14 react: 18.2.0 react-style-singleton: 2.2.1(@types/react@18.2.14)(react@18.2.0) - tslib: 2.6.3 + tslib: 2.8.1 dev: false /react-remove-scroll-bar@2.3.6(@types/react@18.3.3)(react@18.3.1): @@ -20542,7 +20545,7 @@ packages: '@types/react': 18.3.3 react: 18.3.1 react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) - tslib: 2.6.3 + tslib: 2.8.1 dev: false /react-remove-scroll@2.5.5(@types/react@18.2.14)(react@18.2.0): @@ -20559,7 +20562,7 @@ packages: react: 18.2.0 react-remove-scroll-bar: 2.3.6(@types/react@18.2.14)(react@18.2.0) react-style-singleton: 2.2.1(@types/react@18.2.14)(react@18.2.0) - tslib: 2.6.3 + tslib: 2.8.1 use-callback-ref: 1.3.2(@types/react@18.2.14)(react@18.2.0) use-sidecar: 1.1.2(@types/react@18.2.14)(react@18.2.0) dev: false @@ -20578,7 +20581,7 @@ packages: react: 18.3.1 react-remove-scroll-bar: 2.3.6(@types/react@18.3.3)(react@18.3.1) react-style-singleton: 2.2.1(@types/react@18.3.3)(react@18.3.1) - tslib: 2.6.3 + tslib: 2.8.1 use-callback-ref: 1.3.2(@types/react@18.3.3)(react@18.3.1) use-sidecar: 1.1.2(@types/react@18.3.3)(react@18.3.1) dev: false @@ -20607,7 +20610,7 @@ packages: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 - tslib: 2.6.3 + tslib: 2.8.1 dev: false /react-style-singleton@2.2.1(@types/react@18.3.3)(react@18.3.1): @@ -20624,7 +20627,7 @@ packages: get-nonce: 1.0.1 invariant: 2.2.4 react: 18.3.1 - tslib: 2.6.3 + tslib: 2.8.1 dev: false /react@16.13.1: @@ -21369,7 +21372,7 @@ packages: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} dependencies: dot-case: 3.0.4 - tslib: 2.6.3 + tslib: 2.8.1 dev: false /socket.io-client@4.7.5: @@ -21861,7 +21864,7 @@ packages: engines: {node: ^14.18.0 || >=16.0.0} dependencies: '@pkgr/utils': 2.4.2 - tslib: 2.6.3 + tslib: 2.8.1 /system-architecture@0.1.0: resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} @@ -22183,10 +22186,10 @@ packages: /tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + dev: false /tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - dev: false /tsort@0.0.1: resolution: {integrity: sha512-Tyrf5mxF8Ofs1tNoxA13lFeZ2Zrbd6cKbuH3V+MQ5sb6DtBj5FjrXVsRWT8YvNAQTqNoz66dz1WsbigI22aEnw==} @@ -22589,7 +22592,7 @@ packages: dependencies: '@types/react': 18.2.14 react: 18.2.0 - tslib: 2.6.3 + tslib: 2.8.1 dev: false /use-callback-ref@1.3.2(@types/react@18.3.3)(react@18.3.1): @@ -22604,7 +22607,7 @@ packages: dependencies: '@types/react': 18.3.3 react: 18.3.1 - tslib: 2.6.3 + tslib: 2.8.1 dev: false /use-sidecar@1.1.2(@types/react@18.2.14)(react@18.2.0): @@ -22620,7 +22623,7 @@ packages: '@types/react': 18.2.14 detect-node-es: 1.1.0 react: 18.2.0 - tslib: 2.6.3 + tslib: 2.8.1 dev: false /use-sidecar@1.1.2(@types/react@18.3.3)(react@18.3.1): @@ -22636,7 +22639,7 @@ packages: '@types/react': 18.3.3 detect-node-es: 1.1.0 react: 18.3.1 - tslib: 2.6.3 + tslib: 2.8.1 dev: false /usehooks-ts@3.1.0(react@18.2.0): @@ -23259,7 +23262,7 @@ packages: '@peculiar/json-schema': 1.1.12 asn1js: 3.0.5 pvtsutils: 1.3.5 - tslib: 2.6.3 + tslib: 2.8.1 dev: false /webidl-conversions@3.0.1: From a2d880e90895c452763008dd116c14d79f51a68f Mon Sep 17 00:00:00 2001 From: Andrew Min Date: Wed, 20 Nov 2024 11:02:09 +0900 Subject: [PATCH 4/4] update documentation --- examples/with-biconomy-aa/CHANGELOG.md | 18 ++++++++ examples/with-biconomy-aa/README.md | 60 +++++++++++++++++++++++++- 2 files changed, 76 insertions(+), 2 deletions(-) create mode 100644 examples/with-biconomy-aa/CHANGELOG.md diff --git a/examples/with-biconomy-aa/CHANGELOG.md b/examples/with-biconomy-aa/CHANGELOG.md new file mode 100644 index 000000000..0c3a5b6be --- /dev/null +++ b/examples/with-biconomy-aa/CHANGELOG.md @@ -0,0 +1,18 @@ +# @turnkey/with-biconomy-aa + +## 0.2.0 + +- Add support for Nexus (latest offering from Biconomy) with Turnkey and Viem. +- Use v2 of jiffyscan everywhere +- Several resources to learn more about Nexus here: + - https://github.com/bcnmy/nexus/wiki + - https://docs.biconomy.io/nexus-client + - https://docs.biconomy.io/overview#what-is-nexus + - https://docs.biconomy.io/quickstart#sending-your-first-transaction-with-nexus-sdk-%EF%B8%8F + - https://docs.biconomy.io/tutorials/gasless#set-up-nexus-client-with-paymaster + +## 0.1.0 + +Initial release + +- Add integration between Turnkey, Biconomy smart accounts, and both Viem and Ethers. diff --git a/examples/with-biconomy-aa/README.md b/examples/with-biconomy-aa/README.md index e13b2659c..2061ad05b 100644 --- a/examples/with-biconomy-aa/README.md +++ b/examples/with-biconomy-aa/README.md @@ -97,11 +97,67 @@ Sent 0.0000001 Ether to 0x08d2b0a37F869FF76BACB5Bab3278E26ab7067B7: https://sepolia.etherscan.io/tx/0x2f2d996d6b262ebf0263b432ca3e6d621ba42d60b92344f31cf3ed94d09f49c4 User Ops can be found here: - https://jiffyscan.xyz/bundle/0x2f2d996d6b262ebf0263b432ca3e6d621ba42d60b92344f31cf3ed94d09f49c4?network=sepolia&pageNo=0&pageSize=10 + https://v2.jiffyscan.xyz/tx/0x2f2d996d6b262ebf0263b432ca3e6d621ba42d60b92344f31cf3ed94d09f49c4?network=sepolia&pageNo=0&pageSize=10 ``` +#### Viem + Nexus + +```bash +$ pnpm start-viem-nexus +``` + +This script will do the following: + +1. instantiate a Turnkey Viem wallet client +2. instantiate a Viem public client (to be used to fetch onchain data) +3. connect the wallet client to Biconomy Nexus +4. send ETH (via type 2 EIP-1559 transaction) + +Note: this script must be used specifically with Base's Sepolia testnet. + +See the following for a sample output: + +Network: +base-sepolia (chain ID 84532) + +Signer address: +0xDC608F098255C89B36da905D9132A9Ee3DD266D9 + +Smart wallet address: +0xC00f5dCe7E266553cb3FBCd0BeDD11e290D551Fd + +Balance: +0.009998258337028736 Ether + +Transaction count: +1 + +Nonce: +106650284489225899116705470776299986053547585411730459514530106938958242906112 + +āœ” Amount to send (wei). Default to 0.0000001 ETH ā€¦ 100000000000 +āœ” Destination address (default to TKHQ warchest) ā€¦ 0x08d2b0a37F869FF76BACB5Bab3278E26ab7067B7 +Sent 0.0000001 Ether to 0x08d2b0a37F869FF76BACB5Bab3278E26ab7067B7: +https://sepolia.basescan.org/tx/0x453781ffcf1b4f5f98952347bcef14a0e7d6cbf7f9992b2a31163f67278625c6 + +User Ops can be found here: +https://v2.jiffyscan.xyz/tx/0x453781ffcf1b4f5f98952347bcef14a0e7d6cbf7f9992b2a31163f67278625c6?network=base-sepolia&pageNo=0&pageSize=10 + #### Ethers +```bash +$ pnpm start-ethers +``` + +This script will do the following: + +1. instantiate a Turnkey Ethers wallet client +2. instantiate a Ethers provider (to be used to fetch onchain data) +3. connect the wallet client to the Biconomy paymaster +4. send ETH (via type 2 EIP-1559 transaction) + +See the following for a sample output: + ``` Network: sepolia (chain ID 11155111) @@ -127,5 +183,5 @@ Sent 0.0000001 Ether to 0x08d2b0a37F869FF76BACB5Bab3278E26ab7067B7: https://sepolia.etherscan.io/tx/0x0f0d5346ba726f7ccf80142ae295f28bf3873b0aeb7b29488b1e3dfb949d5ba6 User Ops can be found here: - https://jiffyscan.xyz/bundle/0x0f0d5346ba726f7ccf80142ae295f28bf3873b0aeb7b29488b1e3dfb949d5ba6?network=sepolia&pageNo=0&pageSize=10 + https://v2.jiffyscan.xyz/tx/0x0f0d5346ba726f7ccf80142ae295f28bf3873b0aeb7b29488b1e3dfb949d5ba6?network=sepolia&pageNo=0&pageSize=10 ```