diff --git a/dummy-token-transfer/Anchor.toml b/dummy-token-transfer/Anchor.toml index cb79a710..840d84e4 100644 --- a/dummy-token-transfer/Anchor.toml +++ b/dummy-token-transfer/Anchor.toml @@ -6,14 +6,11 @@ resolution = true skip-lint = false [programs.devnet] -dummy_transfer = "58yUmvFtbxoV9dRmv3mbrmKCviJmQLY2MzECCa5cWR6j" +dummy_transfer = "6hakvCNCdyi8hRSmqC5TbWHjp87kgoKxyiexjCs65dmf" [programs.localnet] dummy_transfer = "58yUmvFtbxoV9dRmv3mbrmKCviJmQLY2MzECCa5cWR6j" -[registry] -url = "https://api.apr.dev" - [provider] cluster = "devnet" wallet = "~/.config/solana/id.json" @@ -21,6 +18,8 @@ wallet = "~/.config/solana/id.json" [scripts] test = "NODE_OPTIONS='--no-deprecation' yarn run ts-mocha -p ./tsconfig.json -t 120000 tests/**/*.ts" +[hooks] + [test] startup_wait = 5000 shutdown_wait = 2000 diff --git a/dummy-token-transfer/package-lock.json b/dummy-token-transfer/package-lock.json deleted file mode 100644 index 22b7b179..00000000 --- a/dummy-token-transfer/package-lock.json +++ /dev/null @@ -1,3077 +0,0 @@ -{ - "name": "dummy-token-transfer", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "license": "MIT", - "dependencies": { - "@coral-xyz/anchor": "0.31.1", - "@magicblock-labs/ephemeral-rollups-sdk": "0.2.3", - "@solana/web3.js": "^1.98.2", - "magic-router-sdk": "^1.0.8" - }, - "devDependencies": { - "@metaplex-foundation/beet": "^0.7.2", - "@solana/spl-token": "^0.4.8", - "@types/bn.js": "^5.1.0", - "@types/chai": "^4.3.0", - "@types/mocha": "^9.0.0", - "chai": "^4.3.4", - "mocha": "^9.0.3", - "prettier": "^2.6.2", - "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" - } - }, - "node_modules/@babel/runtime": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.9.tgz", - "integrity": "sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@coral-xyz/anchor": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.31.1.tgz", - "integrity": "sha512-QUqpoEK+gi2S6nlYc2atgT2r41TT3caWr/cPUEL8n8Md9437trZ68STknq897b82p5mW0XrTBNOzRbmIRJtfsA==", - "license": "(MIT OR Apache-2.0)", - "dependencies": { - "@coral-xyz/anchor-errors": "^0.31.1", - "@coral-xyz/borsh": "^0.31.1", - "@noble/hashes": "^1.3.1", - "@solana/web3.js": "^1.69.0", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^6.3.0", - "cross-fetch": "^3.1.5", - "eventemitter3": "^4.0.7", - "pako": "^2.0.3", - "superstruct": "^0.15.4", - "toml": "^3.0.0" - }, - "engines": { - "node": ">=17" - } - }, - "node_modules/@coral-xyz/anchor-errors": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz", - "integrity": "sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/@coral-xyz/borsh": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.31.1.tgz", - "integrity": "sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw==", - "license": "Apache-2.0", - "dependencies": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@solana/web3.js": "^1.69.0" - } - }, - "node_modules/@magicblock-labs/ephemeral-rollups-sdk": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.2.3.tgz", - "integrity": "sha512-y3IkJUxqkVF1SMrSZtLAFSfzSlb+BBknU89hApswlsjNth+wgPKn8IwrQYZ4oFl5xk2inmFdXbSGiDXQuXWDbQ==", - "license": "MIT", - "dependencies": { - "@metaplex-foundation/beet": "^0.7.2", - "@solana/web3.js": "^1.98.0", - "rpc-websockets": "^9.0.4" - } - }, - "node_modules/@metaplex-foundation/beet": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@metaplex-foundation/beet/-/beet-0.7.2.tgz", - "integrity": "sha512-K+g3WhyFxKPc0xIvcIjNyV1eaTVJTiuaHZpig7Xx0MuYRMoJLLvhLTnUXhFdR5Tu2l2QSyKwfyXDgZlzhULqFg==", - "license": "Apache-2.0", - "dependencies": { - "ansicolors": "^0.3.2", - "assert": "^2.1.0", - "bn.js": "^5.2.0", - "debug": "^4.3.3" - } - }, - "node_modules/@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.7.1" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@solana/buffer-layout": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", - "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", - "license": "MIT", - "dependencies": { - "buffer": "~6.0.3" - }, - "engines": { - "node": ">=5.10" - } - }, - "node_modules/@solana/buffer-layout-utils": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", - "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/web3.js": "^1.32.0", - "bigint-buffer": "^1.1.5", - "bignumber.js": "^9.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@solana/spl-token": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.4.13.tgz", - "integrity": "sha512-cite/pYWQZZVvLbg5lsodSovbetK/eA24gaR0eeUeMuBAMNrT8XFCwaygKy0N2WSg3gSyjjNpIeAGBAKZaY/1w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/buffer-layout-utils": "^0.2.0", - "@solana/spl-token-group": "^0.0.7", - "@solana/spl-token-metadata": "^0.1.6", - "buffer": "^6.0.3" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "@solana/web3.js": "^1.95.5" - } - }, - "node_modules/@solana/spl-token-group": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/@solana/spl-token-group/-/spl-token-group-0.0.7.tgz", - "integrity": "sha512-V1N/iX7Cr7H0uazWUT2uk27TMqlqedpXHRqqAbVO2gvmJyT0E0ummMEAVQeXZ05ZhQ/xF39DLSdBp90XebWEug==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@solana/codecs": "2.0.0-rc.1" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "@solana/web3.js": "^1.95.3" - } - }, - "node_modules/@solana/spl-token-group/node_modules/@solana/codecs": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/codecs/-/codecs-2.0.0-rc.1.tgz", - "integrity": "sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solana/codecs-core": "2.0.0-rc.1", - "@solana/codecs-data-structures": "2.0.0-rc.1", - "@solana/codecs-numbers": "2.0.0-rc.1", - "@solana/codecs-strings": "2.0.0-rc.1", - "@solana/options": "2.0.0-rc.1" - }, - "peerDependencies": { - "typescript": ">=5" - } - }, - "node_modules/@solana/spl-token-group/node_modules/@solana/codecs-core": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.0.0-rc.1.tgz", - "integrity": "sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solana/errors": "2.0.0-rc.1" - }, - "peerDependencies": { - "typescript": ">=5" - } - }, - "node_modules/@solana/spl-token-group/node_modules/@solana/codecs-data-structures": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-2.0.0-rc.1.tgz", - "integrity": "sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solana/codecs-core": "2.0.0-rc.1", - "@solana/codecs-numbers": "2.0.0-rc.1", - "@solana/errors": "2.0.0-rc.1" - }, - "peerDependencies": { - "typescript": ">=5" - } - }, - "node_modules/@solana/spl-token-group/node_modules/@solana/codecs-numbers": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.0.0-rc.1.tgz", - "integrity": "sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solana/codecs-core": "2.0.0-rc.1", - "@solana/errors": "2.0.0-rc.1" - }, - "peerDependencies": { - "typescript": ">=5" - } - }, - "node_modules/@solana/spl-token-group/node_modules/@solana/codecs-strings": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.0.0-rc.1.tgz", - "integrity": "sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solana/codecs-core": "2.0.0-rc.1", - "@solana/codecs-numbers": "2.0.0-rc.1", - "@solana/errors": "2.0.0-rc.1" - }, - "peerDependencies": { - "fastestsmallesttextencoderdecoder": "^1.0.22", - "typescript": ">=5" - } - }, - "node_modules/@solana/spl-token-group/node_modules/@solana/errors": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.0.0-rc.1.tgz", - "integrity": "sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^5.3.0", - "commander": "^12.1.0" - }, - "bin": { - "errors": "bin/cli.mjs" - }, - "peerDependencies": { - "typescript": ">=5" - } - }, - "node_modules/@solana/spl-token-group/node_modules/@solana/options": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/options/-/options-2.0.0-rc.1.tgz", - "integrity": "sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solana/codecs-core": "2.0.0-rc.1", - "@solana/codecs-data-structures": "2.0.0-rc.1", - "@solana/codecs-numbers": "2.0.0-rc.1", - "@solana/codecs-strings": "2.0.0-rc.1", - "@solana/errors": "2.0.0-rc.1" - }, - "peerDependencies": { - "typescript": ">=5" - } - }, - "node_modules/@solana/spl-token-group/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@solana/spl-token-group/node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@solana/spl-token-group/node_modules/typescript": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", - "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/@solana/spl-token-metadata": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@solana/spl-token-metadata/-/spl-token-metadata-0.1.6.tgz", - "integrity": "sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@solana/codecs": "2.0.0-rc.1" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "@solana/web3.js": "^1.95.3" - } - }, - "node_modules/@solana/spl-token-metadata/node_modules/@solana/codecs": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/codecs/-/codecs-2.0.0-rc.1.tgz", - "integrity": "sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solana/codecs-core": "2.0.0-rc.1", - "@solana/codecs-data-structures": "2.0.0-rc.1", - "@solana/codecs-numbers": "2.0.0-rc.1", - "@solana/codecs-strings": "2.0.0-rc.1", - "@solana/options": "2.0.0-rc.1" - }, - "peerDependencies": { - "typescript": ">=5" - } - }, - "node_modules/@solana/spl-token-metadata/node_modules/@solana/codecs-core": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.0.0-rc.1.tgz", - "integrity": "sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solana/errors": "2.0.0-rc.1" - }, - "peerDependencies": { - "typescript": ">=5" - } - }, - "node_modules/@solana/spl-token-metadata/node_modules/@solana/codecs-data-structures": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-2.0.0-rc.1.tgz", - "integrity": "sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solana/codecs-core": "2.0.0-rc.1", - "@solana/codecs-numbers": "2.0.0-rc.1", - "@solana/errors": "2.0.0-rc.1" - }, - "peerDependencies": { - "typescript": ">=5" - } - }, - "node_modules/@solana/spl-token-metadata/node_modules/@solana/codecs-numbers": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.0.0-rc.1.tgz", - "integrity": "sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solana/codecs-core": "2.0.0-rc.1", - "@solana/errors": "2.0.0-rc.1" - }, - "peerDependencies": { - "typescript": ">=5" - } - }, - "node_modules/@solana/spl-token-metadata/node_modules/@solana/codecs-strings": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.0.0-rc.1.tgz", - "integrity": "sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solana/codecs-core": "2.0.0-rc.1", - "@solana/codecs-numbers": "2.0.0-rc.1", - "@solana/errors": "2.0.0-rc.1" - }, - "peerDependencies": { - "fastestsmallesttextencoderdecoder": "^1.0.22", - "typescript": ">=5" - } - }, - "node_modules/@solana/spl-token-metadata/node_modules/@solana/errors": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.0.0-rc.1.tgz", - "integrity": "sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^5.3.0", - "commander": "^12.1.0" - }, - "bin": { - "errors": "bin/cli.mjs" - }, - "peerDependencies": { - "typescript": ">=5" - } - }, - "node_modules/@solana/spl-token-metadata/node_modules/@solana/options": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@solana/options/-/options-2.0.0-rc.1.tgz", - "integrity": "sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@solana/codecs-core": "2.0.0-rc.1", - "@solana/codecs-data-structures": "2.0.0-rc.1", - "@solana/codecs-numbers": "2.0.0-rc.1", - "@solana/codecs-strings": "2.0.0-rc.1", - "@solana/errors": "2.0.0-rc.1" - }, - "peerDependencies": { - "typescript": ">=5" - } - }, - "node_modules/@solana/spl-token-metadata/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@solana/spl-token-metadata/node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@solana/spl-token-metadata/node_modules/typescript": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", - "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/@solana/web3.js": { - "version": "1.98.2", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.98.2.tgz", - "integrity": "sha512-BqVwEG+TaG2yCkBMbD3C4hdpustR4FpuUFRPUmqRZYYlPI9Hg4XMWxHWOWRzHE9Lkc9NDjzXFX7lDXSgzC7R1A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.25.0", - "@noble/curves": "^1.4.2", - "@noble/hashes": "^1.4.0", - "@solana/buffer-layout": "^4.0.1", - "@solana/codecs-numbers": "^2.1.0", - "agentkeepalive": "^4.5.0", - "bn.js": "^5.2.1", - "borsh": "^0.7.0", - "bs58": "^4.0.1", - "buffer": "6.0.3", - "fast-stable-stringify": "^1.0.0", - "jayson": "^4.1.1", - "node-fetch": "^2.7.0", - "rpc-websockets": "^9.0.2", - "superstruct": "^2.0.2" - } - }, - "node_modules/@solana/web3.js/node_modules/@solana/codecs-core": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", - "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", - "license": "MIT", - "dependencies": { - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@solana/web3.js/node_modules/@solana/codecs-numbers": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz", - "integrity": "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==", - "license": "MIT", - "dependencies": { - "@solana/codecs-core": "2.3.0", - "@solana/errors": "2.3.0" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@solana/web3.js/node_modules/@solana/errors": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", - "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", - "license": "MIT", - "dependencies": { - "chalk": "^5.4.1", - "commander": "^14.0.0" - }, - "bin": { - "errors": "bin/cli.mjs" - }, - "engines": { - "node": ">=20.18.0" - }, - "peerDependencies": { - "typescript": ">=5.3.3" - } - }, - "node_modules/@solana/web3.js/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@solana/web3.js/node_modules/commander": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz", - "integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==", - "license": "MIT", - "engines": { - "node": ">=20" - } - }, - "node_modules/@solana/web3.js/node_modules/superstruct": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-2.0.2.tgz", - "integrity": "sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==", - "license": "MIT", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@solana/web3.js/node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.8.0" - } - }, - "node_modules/@types/bn.js": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.6.tgz", - "integrity": "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/chai": { - "version": "4.3.20", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.20.tgz", - "integrity": "sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/@types/mocha": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.1.tgz", - "integrity": "sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "22.13.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.13.9.tgz", - "integrity": "sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.20.0" - } - }, - "node_modules/@types/uuid": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", - "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", - "license": "MIT" - }, - "node_modules/@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@ungap/promise-all-settled": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", - "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==", - "dev": true, - "license": "ISC" - }, - "node_modules/agentkeepalive": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", - "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", - "license": "MIT", - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg==", - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/assert": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", - "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "is-nan": "^1.3.2", - "object-is": "^1.1.5", - "object.assign": "^4.1.4", - "util": "^0.12.5" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/base-x": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", - "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/bigint-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", - "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "bindings": "^1.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/bignumber.js": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "license": "MIT" - }, - "node_modules/borsh": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", - "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", - "license": "Apache-2.0", - "dependencies": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", - "dev": true, - "license": "ISC" - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "license": "MIT", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/buffer-layout": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", - "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==", - "license": "MIT", - "engines": { - "node": ">=4.5" - } - }, - "node_modules/bufferutil": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.9.tgz", - "integrity": "sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/chai": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", - "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", - "dev": true, - "license": "MIT", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.3", - "deep-eql": "^4.1.3", - "get-func-name": "^2.0.2", - "loupe": "^2.3.6", - "pathval": "^1.1.1", - "type-detect": "^4.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/check-error": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", - "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.2" - }, - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-fetch": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", - "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", - "license": "MIT", - "dependencies": { - "node-fetch": "^2.7.0" - } - }, - "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/deep-eql": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", - "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "license": "MIT" - }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", - "license": "MIT", - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "license": "MIT" - }, - "node_modules/eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", - "engines": { - "node": "> 0.1.90" - } - }, - "node_modules/fast-stable-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", - "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==", - "license": "MIT" - }, - "node_modules/fastestsmallesttextencoderdecoder": { - "version": "1.0.22", - "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz", - "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==", - "dev": true, - "license": "CC0-1.0", - "peer": true - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", - "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/growl": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", - "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.x" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "license": "MIT", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/is-arguments": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", - "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-nan": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "license": "MIT", - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/jayson": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.3.tgz", - "integrity": "sha512-LtXh5aYZodBZ9Fc3j6f2w+MTNcnxteMOrb+QgIouguGOulWi0lieEkOUg+HkjjFs0DGoWDds6bi4E9hpNFLulQ==", - "license": "MIT", - "dependencies": { - "@types/connect": "^3.4.33", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "uuid": "^8.3.2", - "ws": "^7.5.10" - }, - "bin": { - "jayson": "bin/jayson.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jayson/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "license": "ISC" - }, - "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "engines": [ - "node >= 0.2.0" - ], - "license": "MIT" - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "license": "(MIT OR Apache-2.0)", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/loupe": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", - "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-func-name": "^2.0.1" - } - }, - "node_modules/magic-router-sdk": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/magic-router-sdk/-/magic-router-sdk-1.0.8.tgz", - "integrity": "sha512-60XJWr3tgREkhg6NDVaLN8NP9XXDCZXUm0UGhYwDG5nLUgYQCqDU+/XfAN/KTQ5rwNam9kU/Q8E7UOVKWQOwmA==", - "license": "ISC", - "dependencies": { - "@solana/web3.js": "^1.98.2" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true, - "license": "ISC" - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/minimatch": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz", - "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mocha": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz", - "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ungap/promise-all-settled": "1.1.2", - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.3", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "growl": "1.10.5", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "4.2.1", - "ms": "2.1.3", - "nanoid": "3.3.1", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "which": "2.0.2", - "workerpool": "6.2.0", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/mocha/node_modules/debug/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true, - "license": "MIT" - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", - "dev": true, - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp-build": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", - "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", - "license": "MIT", - "optional": true, - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==", - "license": "(MIT AND Zlib)" - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/rpc-websockets": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-9.1.1.tgz", - "integrity": "sha512-1IXGM/TfPT6nfYMIXkJdzn+L4JEsmb0FL1O2OBjaH03V3yuUDdKFulGLMFG6ErV+8pZ5HVC0limve01RyO+saA==", - "license": "LGPL-3.0-only", - "dependencies": { - "@swc/helpers": "^0.5.11", - "@types/uuid": "^8.3.4", - "@types/ws": "^8.2.2", - "buffer": "^6.0.3", - "eventemitter3": "^5.0.1", - "uuid": "^8.3.2", - "ws": "^8.5.0" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/kozjak" - }, - "optionalDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - } - }, - "node_modules/rpc-websockets/node_modules/@types/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8svvI3hMyvN0kKCJMvTJP/x6Y/EoQbepff882wL+Sn5QsXb3etnamgrJq4isrBxSJj5L2AuXcI0+bgkoAXGUJw==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/rpc-websockets/node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", - "license": "MIT" - }, - "node_modules/rpc-websockets/node_modules/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/superstruct": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", - "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==", - "license": "MIT" - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/text-encoding-utf-8": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", - "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "license": "MIT" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", - "license": "MIT" - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT" - }, - "node_modules/ts-mocha": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.1.0.tgz", - "integrity": "sha512-T0C0Xm3/WqCuF2tpa0GNGESTBoKZaiqdUP8guNv4ZY316AFXlyidnrzQ1LUrCT0Wb1i3J0zFTgOh/55Un44WdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ts-node": "7.0.1" - }, - "bin": { - "ts-mocha": "bin/ts-mocha" - }, - "engines": { - "node": ">= 6.X.X" - }, - "optionalDependencies": { - "tsconfig-paths": "^3.5.0" - }, - "peerDependencies": { - "mocha": "^3.X.X || ^4.X.X || ^5.X.X || ^6.X.X || ^7.X.X || ^8.X.X || ^9.X.X || ^10.X.X || ^11.X.X" - } - }, - "node_modules/ts-node": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", - "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "arrify": "^1.0.0", - "buffer-from": "^1.1.0", - "diff": "^3.1.0", - "make-error": "^1.1.1", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "source-map-support": "^0.5.6", - "yn": "^2.0.0" - }, - "bin": { - "ts-node": "dist/bin.js" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ts-node/node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/type-detect": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", - "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/undici-types": { - "version": "6.20.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz", - "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", - "license": "MIT" - }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", - "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/workerpool": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz", - "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/dummy-token-transfer/package.json b/dummy-token-transfer/package.json index 6050fd32..d30f4aff 100644 --- a/dummy-token-transfer/package.json +++ b/dummy-token-transfer/package.json @@ -1,25 +1,30 @@ { + "name": "@magicblock-labs/dummy-token-transfer-helpers", + "version": "0.1.0", + "private": true, + "main": "src/index.ts", + "types": "src/index.ts", + "files": [ + "src" + ], "scripts": { + "test": "anchor test --skip-local-validator --skip-deploy", + "build": "tsc --noEmit", "lint:fix": "prettier */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" }, - "dependencies": { - "@coral-xyz/anchor": "0.32.1", - "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", - "@solana/web3.js": "^1.98.2", - "magic-router-sdk": "^1.0.8" - }, "devDependencies": { - "@metaplex-foundation/beet": "^0.7.2", - "@solana/spl-token": "^0.4.8", + "@coral-xyz/anchor": "0.32.1", + "@magicblock-labs/magicsvm": "^0.1.1", "@types/bn.js": "^5.1.0", "@types/chai": "^4.3.0", "@types/mocha": "^9.0.0", "chai": "^4.3.4", "mocha": "^9.0.3", "prettier": "^2.6.2", + "test-utils": "link:../test-utils", "ts-mocha": "^10.0.0", - "typescript": "^4.3.5" + "typescript": "^5.3.0" }, "license": "MIT", "packageManager": "yarn@1.22.19+sha1.4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" diff --git a/dummy-token-transfer/programs/dummy-transfer/src/lib.rs b/dummy-token-transfer/programs/dummy-transfer/src/lib.rs index 8695b8cd..22392dc4 100644 --- a/dummy-token-transfer/programs/dummy-transfer/src/lib.rs +++ b/dummy-token-transfer/programs/dummy-transfer/src/lib.rs @@ -3,7 +3,7 @@ use ephemeral_rollups_sdk::anchor::{commit, delegate, ephemeral}; use ephemeral_rollups_sdk::cpi::DelegateConfig; use ephemeral_rollups_sdk::ephem::MagicIntentBundleBuilder; -declare_id!("Ckyvyxw2rrFmhAKxDa7qjfTridciYHRTetS1WPGmKdpo"); +declare_id!("6hakvCNCdyi8hRSmqC5TbWHjp87kgoKxyiexjCs65dmf"); #[ephemeral] #[program] diff --git a/dummy-token-transfer/tests/dummy-transfer-local.ts b/dummy-token-transfer/tests/dummy-transfer-local.ts deleted file mode 100644 index efeb2b59..00000000 --- a/dummy-token-transfer/tests/dummy-transfer-local.ts +++ /dev/null @@ -1,207 +0,0 @@ -import * as anchor from "@coral-xyz/anchor"; -import { BN, Program, web3 } from "@coral-xyz/anchor"; -import { DummyTransfer } from "../target/types/dummy_transfer"; -import { DELEGATION_PROGRAM_ID } from "@magicblock-labs/ephemeral-rollups-sdk"; -import { PublicKey, Transaction } from "@solana/web3.js"; - -async function printBalances( - program: Program, - andyBalancePda: web3.PublicKey, - bobBalancePda: web3.PublicKey, -) { - for (const [name, pda] of [ - ["Andy", andyBalancePda], - ["Bob", bobBalancePda], - ] as const) { - try { - const acc = await program.account.balance.fetch(pda); - console.log(`${name} Balance: `, acc.balance.toString()); - } catch { - console.log(`${name} Balance PDA not initialized`); - } - } -} - -describe("dummy-transfer-local", () => { - // Base layer = localhost solana-test-validator (or whatever PROVIDER_ENDPOINT points to). - const provider = new anchor.AnchorProvider( - new anchor.web3.Connection( - process.env.PROVIDER_ENDPOINT || "http://localhost:8899", - { - wsEndpoint: process.env.WS_ENDPOINT || undefined, - commitment: "confirmed", - }, - ), - anchor.Wallet.local(), - ); - anchor.setProvider(provider); - - // ER = localhost ephemeral-validator (or EPHEMERAL_PROVIDER_ENDPOINT). - const providerEphemeralRollup = new anchor.AnchorProvider( - new anchor.web3.Connection( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || "http://localhost:7799", - { - wsEndpoint: process.env.EPHEMERAL_WS_ENDPOINT || undefined, - commitment: "confirmed", - }, - ), - anchor.Wallet.local(), - ); - - const program = anchor.workspace.DummyTransfer as Program; - const bob = web3.Keypair.generate(); - - const andyBalancePda = web3.PublicKey.findProgramAddressSync( - [provider.wallet.publicKey.toBuffer()], - program.programId, - )[0]; - const bobBalancePda = web3.PublicKey.findProgramAddressSync( - [bob.publicKey.toBuffer()], - program.programId, - )[0]; - - console.log("Base Layer Connection: ", provider.connection.rpcEndpoint); - console.log("Ephemeral Rollup Connection: ", providerEphemeralRollup.connection.rpcEndpoint); - console.log("Program ID: ", program.programId.toBase58()); - console.log("Andy: ", provider.wallet.publicKey.toBase58()); - console.log("Bob: ", bob.publicKey.toBase58()); - - before(async () => { - if ( - provider.connection.rpcEndpoint.includes("localhost") || - provider.connection.rpcEndpoint.includes("127.0.0.1") - ) { - const sig = await provider.connection.requestAirdrop( - provider.wallet.publicKey, - 2 * web3.LAMPORTS_PER_SOL, - ); - await provider.connection.confirmTransaction(sig, "confirmed"); - } - }); - - it("Initialize balances on base layer", async () => { - if (!(await provider.connection.getAccountInfo(andyBalancePda))) { - await program.methods - .initialize() - .accounts({ user: provider.wallet.publicKey }) - .rpc({ skipPreflight: true }); - console.log("✅ Initialized Andy Balance PDA"); - } - if (!(await provider.connection.getAccountInfo(bobBalancePda))) { - const transferIx = web3.SystemProgram.transfer({ - fromPubkey: provider.wallet.publicKey, - toPubkey: bob.publicKey, - lamports: web3.LAMPORTS_PER_SOL * 0.01, - }); - const initIx = await program.methods - .initialize() - .accounts({ user: bob.publicKey }) - .instruction(); - const tx = new web3.Transaction().add(transferIx).add(initIx); - const sig = await provider.sendAndConfirm(tx, [bob], { skipPreflight: true }); - console.log("✅ Initialized Bob Balance PDA. Sig:", sig); - } - await printBalances(program, andyBalancePda, bobBalancePda); - }); - - it("Transfer on base layer from Andy to Bob", async () => { - const info = await provider.connection.getAccountInfo(andyBalancePda); - if (info?.owner.toBase58() === DELEGATION_PROGRAM_ID.toBase58()) { - console.log("❌ Skipping — balances are delegated"); - return; - } - const sig = await program.methods - .transfer(new BN(5)) - .accounts({ payer: provider.wallet.publicKey, receiver: bob.publicKey }) - .rpc({ skipPreflight: true }); - console.log("✅ Transferred 5 (base). Sig:", sig); - await printBalances(program, andyBalancePda, bobBalancePda); - }); - - it("Delegate Andy and Bob balances", async () => { - const info = await provider.connection.getAccountInfo(andyBalancePda); - if (info?.owner.toBase58() === DELEGATION_PROGRAM_ID.toBase58()) { - console.log("Already delegated"); - return; - } - const validatorKey = new PublicKey( - process.env.VALIDATOR || "mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev", - ); - const params = { commitFrequencyMs: 30000, validator: validatorKey }; - const tx = await program.methods - .delegate(params) - .accounts({ payer: provider.wallet.publicKey }) - .postInstructions([ - await program.methods - .delegate(params) - .accounts({ payer: bob.publicKey }) - .instruction(), - ]) - .transaction(); - const sig = await provider.sendAndConfirm(tx, [bob], { skipPreflight: true }); - await new Promise((r) => setTimeout(r, 3000)); - console.log("✅ Delegated. Sig:", sig); - }); - - it("Transfer in the ephemeral rollup", async () => { - const info = await provider.connection.getAccountInfo(andyBalancePda); - if (info?.owner.toBase58() !== DELEGATION_PROGRAM_ID.toBase58()) { - console.log("Skipping — not delegated"); - return; - } - const tx1 = await program.methods - .transfer(new BN(5)) - .accounts({ payer: provider.wallet.publicKey, receiver: bob.publicKey }) - .transaction(); - tx1.feePayer = provider.wallet.publicKey; - tx1.recentBlockhash = (await providerEphemeralRollup.connection.getLatestBlockhash()).blockhash; - const sig1 = await providerEphemeralRollup.sendAndConfirm(tx1, [], { skipPreflight: true }); - console.log("✅ Transferred 5 (ER). Sig:", sig1); - - const tx2 = await program.methods - .transfer(new BN(15)) - .accounts({ payer: bob.publicKey, receiver: provider.wallet.publicKey }) - .transaction(); - tx2.feePayer = bob.publicKey; - tx2.recentBlockhash = (await providerEphemeralRollup.connection.getLatestBlockhash()).blockhash; - tx2.partialSign(bob); - const sig2 = await providerEphemeralRollup.connection.sendRawTransaction( - tx2.serialize(), - { skipPreflight: true }, - ); - await providerEphemeralRollup.connection.confirmTransaction(sig2, "confirmed"); - console.log("✅ Transferred 15 (ER). Sig:", sig2); - }); - - it("Undelegate Andy and Bob balances", async () => { - const info = await provider.connection.getAccountInfo(andyBalancePda); - if (info?.owner.toBase58() !== DELEGATION_PROGRAM_ID.toBase58()) { - console.log("Skipping — not delegated"); - return; - } - const tx1 = await program.methods - .undelegate() - .accounts({ payer: provider.wallet.publicKey }) - .transaction(); - tx1.feePayer = provider.wallet.publicKey; - tx1.recentBlockhash = (await providerEphemeralRollup.connection.getLatestBlockhash()).blockhash; - const sig1 = await providerEphemeralRollup.sendAndConfirm(tx1, [], { skipPreflight: true }); - - const tx2 = await program.methods - .undelegate() - .accounts({ payer: bob.publicKey }) - .transaction(); - tx2.feePayer = bob.publicKey; - tx2.recentBlockhash = (await providerEphemeralRollup.connection.getLatestBlockhash()).blockhash; - tx2.partialSign(bob); - const sig2 = await providerEphemeralRollup.connection.sendRawTransaction( - tx2.serialize(), - { skipPreflight: true }, - ); - await providerEphemeralRollup.connection.confirmTransaction(sig2, "confirmed"); - - await new Promise((r) => setTimeout(r, 5000)); - console.log("✅ Undelegated. Sigs:", sig1, sig2); - await printBalances(program, andyBalancePda, bobBalancePda); - }); -}); diff --git a/dummy-token-transfer/tests/dummy-transfer.ts b/dummy-token-transfer/tests/dummy-transfer.ts index f21a4f3c..72517be5 100644 --- a/dummy-token-transfer/tests/dummy-transfer.ts +++ b/dummy-token-transfer/tests/dummy-transfer.ts @@ -2,312 +2,365 @@ import * as anchor from "@coral-xyz/anchor"; import { BN, Program, web3 } from "@coral-xyz/anchor"; import { DummyTransfer } from "../target/types/dummy_transfer"; import { - DELEGATION_PROGRAM_ID, ConnectionMagicRouter -} from "@magicblock-labs/ephemeral-rollups-sdk"; -import { PublicKey, sendAndConfirmTransaction, Transaction} from "@solana/web3.js"; - -// Helper function to print balances of all accounts -async function printBalances(program: Program, andyBalancePda: web3.PublicKey, bobBalancePda: web3.PublicKey) { - let andyBalanceAccount, bobBalanceAccount; - try { - andyBalanceAccount = await program.account.balance.fetch(andyBalancePda); - } catch (e) { - andyBalanceAccount = null; + signerFromWeb3Keypair, + addressFromWeb3PublicKey, + transactionFromWeb3Transaction, +} from "test-utils"; +import { + FailedTransactionMetadata, + MagicSVM, + TransactionMetadata, + TransactionTarget, +} from "@magicblock-labs/magicsvm"; +import { expect } from "chai"; +import * as fs from "fs"; +import * as path from "path"; + +const program = anchor.workspace.DummyTransfer as Program; +const programBytes = fs.readFileSync( + path.join(__dirname, "../target/deploy/dummy_transfer.so"), +); +const programId = addressFromWeb3PublicKey(program.programId); + +type ExpectedBalances = { andy: string | null; bob: string | null }; + +function expectSuccess(meta: TransactionMetadata | FailedTransactionMetadata) { + if (meta instanceof FailedTransactionMetadata) { + console.error("❌ Failed to execute transaction", meta.toString()); + console.error("Transaction logs: ", meta.meta().prettyLogs()); + throw new Error("Failed to execute transaction"); + } else if (meta instanceof TransactionMetadata) { + console.log("✅ Transaction executed successfully"); + } else { + throw new Error("Invalid signature"); } + return meta; +} + +function getBalance( + svm: MagicSVM, + balancePda: web3.PublicKey, + layer: TransactionTarget, +): string | null { try { - bobBalanceAccount = await program.account.balance.fetch(bobBalancePda); + const accountData = svm.getAccountFor( + addressFromWeb3PublicKey(balancePda), + { + target: layer, + }, + ); + if (!accountData.exists) { + return null; + } + + const account = program.coder.accounts.decode( + "balance", + Buffer.from(accountData.data), + ); + return account.balance.toString(); } catch (e) { - bobBalanceAccount = null; + return null; } +} + +function getBalances( + svm: MagicSVM, + andyBalancePda: web3.PublicKey, + bobBalancePda: web3.PublicKey, + layer: TransactionTarget, +): ExpectedBalances { + return { + andy: getBalance(svm, andyBalancePda, layer), + bob: getBalance(svm, bobBalancePda, layer), + }; +} - if (andyBalanceAccount) { - console.log("Andy Balance: ", andyBalanceAccount.balance.toString()); +function printBalances( + svm: MagicSVM, + andyBalancePda: web3.PublicKey, + bobBalancePda: web3.PublicKey, + layer: TransactionTarget, +) { + const balances = getBalances(svm, andyBalancePda, bobBalancePda, layer); + + if (balances.andy !== null) { + console.log( + `${layer === "ephemeral" ? "Ephemeral" : "Base"} Andy Balance: ${ + balances.andy + }`, + ); } else { console.log("Andy Balance PDA not initialized"); } - if (bobBalanceAccount) { - console.log("Bob Balance: ", bobBalanceAccount.balance.toString()); + if (balances.bob !== null) { + console.log( + `${layer === "ephemeral" ? "Ephemeral" : "Base"} Bob Balance: ${ + balances.bob + }`, + ); } else { console.log("Bob Balance PDA not initialized"); } } -describe("dummy-transfer", () => { - const provider = anchor.AnchorProvider.env(); - anchor.setProvider(provider); - - // Configure the router endpoint for Magic Router - const routerConnection = new ConnectionMagicRouter( - process.env.ROUTER_ENDPOINT || "https://devnet-router.magicblock.app", - { - wsEndpoint: process.env.ROUTER_WS_ENDPOINT || "wss://devnet-router.magicblock.app", - } - ); - - console.log("Router Endpoint: ", routerConnection.rpcEndpoint) +function expectBalances( + svm: MagicSVM, + andyBalancePda: web3.PublicKey, + bobBalancePda: web3.PublicKey, + layer: TransactionTarget, + expected: ExpectedBalances, +) { + const balances = getBalances(svm, andyBalancePda, bobBalancePda, layer); + expect(balances).to.deep.equal(expected); +} - const program = anchor.workspace.DummyTransfer as Program; +describe("dummy-transfer", () => { + let svm = new MagicSVM(); + const andy = web3.Keypair.generate(); const bob = web3.Keypair.generate(); + const andySigner = signerFromWeb3Keypair(andy); + const bobSigner = signerFromWeb3Keypair(bob); const andyBalancePda = web3.PublicKey.findProgramAddressSync( - [provider.wallet.publicKey.toBuffer()], - program.programId + [andy.publicKey.toBuffer()], + program.programId, )[0]; - const bobBalancePda = web3.PublicKey.findProgramAddressSync( [bob.publicKey.toBuffer()], - program.programId + program.programId, )[0]; console.log("Program ID: ", program.programId.toBase58()); - console.log("Andy Public Key: ", provider.wallet.publicKey.toBase58()); + console.log("Andy Public Key: ", andy.publicKey.toBase58()); console.log("Bob Public Key: ", bob.publicKey.toBase58()); console.log("Andy Balance PDA: ", andyBalancePda.toBase58()); console.log("Bob Balance PDA: ", bobBalancePda.toBase58()); - before(async () => { - // If running locally, airdrop SOL to the wallet. - if ( - provider.connection.rpcEndpoint.includes("localhost") || - provider.connection.rpcEndpoint.includes("127.0.0.1") - ) { - // Airdrop to bob - const andyAirdropSignature = await provider.connection.requestAirdrop( - provider.wallet.publicKey, - 2 * web3.LAMPORTS_PER_SOL - ); - } - }); + before(() => { + svm.addProgram(programId, programBytes); - it("Initialize balances if not already initialized.", async () => { - const andyBalancePDA = await provider.connection.getAccountInfo( - andyBalancePda + // Airdrop to keypairs + const andyAirdropSignature = svm.airdrop( + addressFromWeb3PublicKey(andy.publicKey), + BigInt(2 * web3.LAMPORTS_PER_SOL), ); - const bobBalancePDA = await provider.connection.getAccountInfo( - bobBalancePda + expectSuccess(andyAirdropSignature); + const bobAirdropSignature = svm.airdrop( + addressFromWeb3PublicKey(bob.publicKey), + BigInt(2 * web3.LAMPORTS_PER_SOL), ); + expectSuccess(bobAirdropSignature); + }); - if(!andyBalancePDA) { - const tx = await program.methods - .initialize() - .accounts({ - user: provider.wallet.publicKey, - }) - .transaction() as Transaction; - - const signature = await sendAndConfirmTransaction( - routerConnection, - tx, - [provider.wallet.payer], - { skipPreflight: true } + it("Initialize balances", async () => { + const andyInitializeTx = await transactionFromWeb3Transaction( + await program.methods + .initialize() + .accountsPartial({ + user: andy.publicKey, + }) + .transaction(), + { + recentBlockhash: svm.latestBlockhash(), + payer: andySigner, + }, ); - console.log("✅ Initialized Andy Balance PDA! Signature:", signature); - } - else { - console.log("✅ Andy Balance PDA already initialized!"); - } + const andyInitializeSignature = svm.sendTransaction(andyInitializeTx); + expectSuccess(andyInitializeSignature); + console.log("✅ Initialized Andy Balance PDA!"); - if (!bobBalancePDA) { - const transferIx = web3.SystemProgram.transfer({ - fromPubkey: provider.wallet.publicKey, - toPubkey: bob.publicKey, - lamports: web3.LAMPORTS_PER_SOL * 0.01, - }); - // Build the initialize instruction - const initIx = await program.methods + const bobInitializeTx = await transactionFromWeb3Transaction( + await program.methods .initialize() .accounts({ user: bob.publicKey, }) - .instruction(); - const tx = new web3.Transaction() - .add(transferIx) - .add(initIx); - - const signature = await sendAndConfirmTransaction( - routerConnection, - tx, - [provider.wallet.payer, bob], - { skipPreflight: true } - ); - console.log("✅ Initialized Bob Balance PDA! Signature:", signature); - } else { - console.log("✅ Bob Balance PDA already initialized!"); - } - - await printBalances(program, andyBalancePda, bobBalancePda); + .transaction(), + { + recentBlockhash: svm.latestBlockhash(), + payer: bobSigner, + }, + ); + const bobInitializeSignature = svm.sendTransaction(bobInitializeTx); + expectSuccess(bobInitializeSignature); + console.log("✅ Initialized Bob Balance PDA!"); + + printBalances(svm, andyBalancePda, bobBalancePda, "base"); + printBalances(svm, andyBalancePda, bobBalancePda, "ephemeral"); + expectBalances(svm, andyBalancePda, bobBalancePda, "base", { + andy: "100", + bob: "100", + }); + expectBalances(svm, andyBalancePda, bobBalancePda, "ephemeral", { + andy: "100", + bob: "100", + }); }); it("Transfer on base chain from Andy to Bob", async () => { - const balanceAccountInfo = await provider.connection.getAccountInfo( - andyBalancePda - ); - if ( - balanceAccountInfo.owner.toBase58() == DELEGATION_PROGRAM_ID.toBase58() - ) { - console.log("❌ Cannot transfer: Balances are currently delegated"); - return; - } - - const tx = await program.methods - .transfer(new BN(5)) - .accounts({ - payer: provider.wallet.publicKey, - receiver: bob.publicKey, - }) - .transaction(); - - const signature = await sendAndConfirmTransaction( - routerConnection, - tx, - [provider.wallet.payer], - { skipPreflight: true } + const tx = await transactionFromWeb3Transaction( + await program.methods + .transfer(new BN(5)) + .accounts({ + payer: andy.publicKey, + receiver: bob.publicKey, + }) + .transaction(), + { + recentBlockhash: svm.latestBlockhash(), + payer: andySigner, + }, ); - console.log("✅ Transfered 5 from Andy to Bob"); - console.log("Transfer Tx: ", signature); - - await printBalances(program, andyBalancePda, bobBalancePda); + const signature = svm.sendTransaction(tx); + expectSuccess(signature); + console.log("✅ Transfered 5 from Andy to Bob!"); + + printBalances(svm, andyBalancePda, bobBalancePda, "base"); + printBalances(svm, andyBalancePda, bobBalancePda, "ephemeral"); + expectBalances(svm, andyBalancePda, bobBalancePda, "base", { + andy: "95", + bob: "105", + }); + expectBalances(svm, andyBalancePda, bobBalancePda, "ephemeral", { + andy: "95", + bob: "105", + }); }); it("Delegate Balances of Andy and Bob", async () => { - const balanceAccountInfo = await provider.connection.getAccountInfo( - andyBalancePda - ); - if ( - balanceAccountInfo.owner.toBase58() == DELEGATION_PROGRAM_ID.toBase58() - ) { - console.log("❌ Balance is already delegated"); - return; - } - - const validatorKey = new PublicKey((await routerConnection.getClosestValidator()).identity); - const tx = await program.methods - .delegate({ - commitFrequencyMs: 30000, - validator: validatorKey, - }) - .accounts({ - payer: provider.wallet.publicKey, - }) - .postInstructions([ - await program.methods - .delegate({ - commitFrequencyMs: 30000, - validator: validatorKey, - }) - .accounts({ - payer: bob.publicKey, - }) - .instruction() - ]) - .transaction(); - - const signature = await sendAndConfirmTransaction( - routerConnection, - tx, - [provider.wallet.payer, bob], + const validator = new web3.PublicKey(svm.validatorIdentity().toString()); + const tx = await transactionFromWeb3Transaction( + await program.methods + .delegate({ + commitFrequencyMs: 30000, + validator, + }) + .accounts({ + payer: andy.publicKey, + }) + .postInstructions([ + await program.methods + .delegate({ + commitFrequencyMs: 30000, + validator, + }) + .accounts({ + payer: bob.publicKey, + }) + .instruction(), + ]) + .transaction(), { - skipPreflight: true - } + recentBlockhash: svm.latestBlockhash(), + payer: andySigner, + signers: [bobSigner], + }, ); - - // Naive wait for the transaction to be confirmed on the base chain. Better pattern incoming soon. - await new Promise(resolve => setTimeout(resolve, 5000)); - + const signature = svm.sendTransaction(tx); + expectSuccess(signature); console.log("✅ Delegated Balances of Andy and Bob"); - console.log("Delegation signature", signature); + printBalances(svm, andyBalancePda, bobBalancePda, "base"); + printBalances(svm, andyBalancePda, bobBalancePda, "ephemeral"); + expectBalances(svm, andyBalancePda, bobBalancePda, "base", { + andy: "95", + bob: "105", + }); + expectBalances(svm, andyBalancePda, bobBalancePda, "ephemeral", { + andy: "95", + bob: "105", + }); }); it("Perform transfers in the ephemeral rollup", async () => { - const balanceAccountInfo = await provider.connection.getAccountInfo( - andyBalancePda - ); - if ( - balanceAccountInfo.owner.toBase58() != DELEGATION_PROGRAM_ID.toBase58() - ) { - console.log("Balance is not delegated"); - return; - } - - const tx1 = await program.methods - .transfer(new BN(5)) - .accounts({ - payer: provider.wallet.publicKey, - receiver: bob.publicKey, - }) - .transaction(); - - const signature1 = await sendAndConfirmTransaction( - routerConnection, - tx1, - [provider.wallet.payer], - { skipPreflight: true } + const tx1 = await transactionFromWeb3Transaction( + await program.methods + .transfer(new BN(5)) + .accounts({ + payer: andy.publicKey, + receiver: bob.publicKey, + }) + .transaction(), + { + recentBlockhash: svm.latestBlockhash(), + payer: andySigner, + }, ); + const signature1 = svm.sendTransaction(tx1, { target: "ephemeral" }); + expectSuccess(signature1); console.log("✅ Transfered 5 from Andy to Bob in the ephemeral rollup"); - console.log("Transfer Tx: ", signature1); - - const tx2 = await program.methods - .transfer(new BN(15)) - .accounts({ - payer: bob.publicKey, - receiver: provider.wallet.publicKey, - }) - .transaction(); - const signature2 = await sendAndConfirmTransaction( - routerConnection, - tx2, - [bob], - { skipPreflight: true } + const tx2 = await transactionFromWeb3Transaction( + await program.methods + .transfer(new BN(15)) + .accounts({ + payer: bob.publicKey, + receiver: andy.publicKey, + }) + .transaction(), + { + recentBlockhash: svm.latestBlockhash(), + payer: bobSigner, + }, ); + const signature2 = svm.sendTransaction(tx2, { target: "ephemeral" }); + expectSuccess(signature2); console.log("✅ Transfered 15 from Bob to Andy in the ephemeral rollup"); - console.log("Transfer Tx: ", signature2); + + printBalances(svm, andyBalancePda, bobBalancePda, "ephemeral"); + printBalances(svm, andyBalancePda, bobBalancePda, "base"); + expectBalances(svm, andyBalancePda, bobBalancePda, "ephemeral", { + andy: "105", + bob: "95", + }); + expectBalances(svm, andyBalancePda, bobBalancePda, "base", { + andy: "95", + bob: "105", + }); }); it("Undelegate Balances of Andy and Bob", async () => { - const balanceAccountInfo = await provider.connection.getAccountInfo( - andyBalancePda - ); - if ( - balanceAccountInfo.owner.toBase58() != DELEGATION_PROGRAM_ID.toBase58() - ) { - console.log("Balance is not delegated"); - return; - } - - const tx1 = await program.methods - .undelegate() - .accounts({ - payer: provider.wallet.publicKey, - }) - .transaction(); - - const signature1 = await sendAndConfirmTransaction( - routerConnection, - tx1, - [provider.wallet.payer], - { skipPreflight: true } + const tx1 = await transactionFromWeb3Transaction( + await program.methods + .undelegate() + .accounts({ + payer: andy.publicKey, + }) + .transaction(), + { + recentBlockhash: svm.latestBlockhash(), + payer: andySigner, + }, ); + const signature1 = svm.sendTransaction(tx1, { target: "ephemeral" }); + expectSuccess(signature1); - const tx2 = await program.methods - .undelegate() - .accounts({ - payer: bob.publicKey, - }) - .transaction(); - - const signature2 = await sendAndConfirmTransaction( - routerConnection, - tx2, - [bob], - { skipPreflight: true } + const tx2 = await transactionFromWeb3Transaction( + await program.methods + .undelegate() + .accounts({ + payer: bob.publicKey, + }) + .transaction(), + { + recentBlockhash: svm.latestBlockhash(), + payer: bobSigner, + }, ); + const signature2 = svm.sendTransaction(tx2, { target: "ephemeral" }); + expectSuccess(signature2); console.log("✅ Undelegated Balances of Andy and Bob"); - console.log("Undelegation signatures:", signature1, signature2); - // Naive wait for the transaction to be confirmed on the base chain. Better pattern incoming soon. - await new Promise(resolve => setTimeout(resolve, 5000)); - await printBalances(program, andyBalancePda, bobBalancePda); + + printBalances(svm, andyBalancePda, bobBalancePda, "base"); + printBalances(svm, andyBalancePda, bobBalancePda, "ephemeral"); + expectBalances(svm, andyBalancePda, bobBalancePda, "base", { + andy: "105", + bob: "95", + }); + expectBalances(svm, andyBalancePda, bobBalancePda, "ephemeral", { + andy: "105", + bob: "95", + }); }); }); diff --git a/dummy-token-transfer/tsconfig.json b/dummy-token-transfer/tsconfig.json index b8d61e0c..449daf23 100644 --- a/dummy-token-transfer/tsconfig.json +++ b/dummy-token-transfer/tsconfig.json @@ -2,9 +2,9 @@ "compilerOptions": { "types": ["mocha", "chai"], "typeRoots": ["./node_modules/@types"], - "lib": ["ES2020"], + "lib": ["ES2022", "DOM"], "module": "commonjs", - "target": "ES2020", + "target": "ES2022", "esModuleInterop": true, "strict": false } diff --git a/dummy-token-transfer/yarn.lock b/dummy-token-transfer/yarn.lock index 0882bbce..c4ef13b9 100644 --- a/dummy-token-transfer/yarn.lock +++ b/dummy-token-transfer/yarn.lock @@ -41,29 +41,50 @@ bn.js "^5.1.2" buffer-layout "^1.2.0" -"@magicblock-labs/ephemeral-rollups-sdk@0.14.3": - version "0.14.3" - resolved "https://registry.yarnpkg.com/@magicblock-labs/ephemeral-rollups-sdk/-/ephemeral-rollups-sdk-0.14.3.tgz#536c215d1daefdbcfa82a79304b08f5014405c58" - integrity sha512-CoByiXHLLS+l7Ojl6XJuYypP/k08ymFkab8+Gh/HCv5Gn2oC4VkwszEQoTDnKo++8Oxbqr9YVGzAMUW4Km7cLA== - dependencies: - "@noble/curves" "^1.4.2" - "@noble/hashes" "^1.4.0" - "@phala/dcap-qvl" "^0.3.9" - "@solana/web3.js" "^1.98.0" - bs58 "^6.0.0" - rpc-websockets "^9.0.4" - tweetnacl "^1.0.3" - typescript "^5.3.0" - -"@metaplex-foundation/beet@^0.7.2": - version "0.7.2" - resolved "https://registry.npmjs.org/@metaplex-foundation/beet/-/beet-0.7.2.tgz" - integrity sha512-K+g3WhyFxKPc0xIvcIjNyV1eaTVJTiuaHZpig7Xx0MuYRMoJLLvhLTnUXhFdR5Tu2l2QSyKwfyXDgZlzhULqFg== - dependencies: - ansicolors "^0.3.2" - assert "^2.1.0" - bn.js "^5.2.0" - debug "^4.3.3" +"@magicblock-labs/magicsvm-darwin-arm64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.1.1.tgz#c95ff3722730b001e537d6083db366bab7ac2f50" + integrity sha512-bTNHYRtI4TZN9xvQ78Yzi8HKUDN3m1VsJ4TyAM+HqQdxder/a1L59XvlyfpR19E1UMvwGUQCjTiyG8tAOejKfQ== + +"@magicblock-labs/magicsvm-darwin-x64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.1.1.tgz#681a77d422422056df0ef239c56de481673362f0" + integrity sha512-Hd/ciw44daYyyjKRDNs2GX5wgZldgUEYGPfUYP1odOgcRS+gaqw4wC/HhwG6awi3jcWtUnHOTeJuv1P9J6zG0w== + +"@magicblock-labs/magicsvm-linux-arm64-gnu@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.1.1.tgz#69b7301513a5dc965d885d0825d2e08d16f24c62" + integrity sha512-uB1RAx5Vn2rBQ+sZArGX2Lr0edjtVINfXUKU91+bZoCwhOMLmTxBh/C2PhPgko0xSkvga22G6euiOBL7ZZccxw== + +"@magicblock-labs/magicsvm-linux-arm64-musl@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.1.1.tgz#b3e8db3429fb909735acb2c25ac1c062f6585af9" + integrity sha512-xnik1ovoZa7WQQxbtM0qyIOiked5CPS+21WI9FfSHlNwFvr/cnjXkGB5oLF2TJvexbIEOsnviDVMlXpaXAIi5Q== + +"@magicblock-labs/magicsvm-linux-x64-gnu@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.1.1.tgz#369303ef622ea242aded11a803ecbecb726340cd" + integrity sha512-zGYKpcSHix4gNTDLp6G3viazrTt1ZjPqh+8zPmu4NAlNELvRSg8Hr089w8RaMLUuYXei6LzGcpGY/xMrkelCHQ== + +"@magicblock-labs/magicsvm-linux-x64-musl@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.1.1.tgz#34db0e287364997af5c6358f7505a20e4f6c09b9" + integrity sha512-NSg5eZx5JO5LUx2dHygCJbP///v4e1pjjeCMqjKUKDjnMlbtL8oX48laB4/a4kRqUAyrh0bcuhl/UM4htMWqtA== + +"@magicblock-labs/magicsvm@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.1.1.tgz#995732d8668fafc15b778e2ac230615516f13101" + integrity sha512-MJbyUHkPmZgYRLTCMJJaErxqM/ZstudVua7RTMeKXHUtmlBcTSkjua+6sJsgqNAuQJI4QdRiDyeerVOHbFQlww== + dependencies: + "@solana/web3.js" "3.0.0-rc.1" + litesvm "1.1.0" + optionalDependencies: + "@magicblock-labs/magicsvm-darwin-arm64" "0.1.1" + "@magicblock-labs/magicsvm-darwin-x64" "0.1.1" + "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.1.1" + "@magicblock-labs/magicsvm-linux-arm64-musl" "0.1.1" + "@magicblock-labs/magicsvm-linux-x64-gnu" "0.1.1" + "@magicblock-labs/magicsvm-linux-x64-musl" "0.1.1" "@noble/curves@^1.4.2": version "1.8.1" @@ -77,70 +98,70 @@ resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz" integrity sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ== -"@peculiar/asn1-schema@^2.3.13", "@peculiar/asn1-schema@^2.7.0": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.7.0.tgz#f2dcb25995ce7cac8687ba1039f043e5eff43820" - integrity sha512-W8ZfWzLmQnrcky+eh3tni4IozMdqBDiHWU0N+vve/UGjMaUs8c0L7A2oEdkBXS8rTpWDpK/aoI3DG/L/hxmxPg== - dependencies: - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/asn1-x509@^2.3.13": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@peculiar/asn1-x509/-/asn1-x509-2.7.0.tgz#84793efb7819dbc9526fd6b0a4ccd86f90464b96" - integrity sha512-mUn9RRrkGDnG4ALfunDmzyRW5dg+sWCj/pfnCCqEHYbkGxEpvUt6iVJv8Yw1cyp6SWZ26ZE5oSmI5SqEaen15g== - dependencies: - "@peculiar/asn1-schema" "^2.7.0" - "@peculiar/utils" "^2.0.2" - asn1js "^3.0.6" - tslib "^2.8.1" - -"@peculiar/utils@^2.0.2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@peculiar/utils/-/utils-2.0.3.tgz#a27ca4c4b73652e110f19a7d16d664f458a5528e" - integrity sha512-+oL3HPFRIZ1St2K50lWCXiioIgSoxzz7R1J3uF6neO2yl1sgmpgY6XXJH4BdpoDkMWznQTeYF6oWNDZLCdQ4eQ== - dependencies: - tslib "^2.8.1" - -"@phala/dcap-qvl@^0.3.9": - version "0.3.9" - resolved "https://registry.yarnpkg.com/@phala/dcap-qvl/-/dcap-qvl-0.3.9.tgz#34da2506c31954cd290afb5a46146cd52ae24481" - integrity sha512-s/4gAFVq1DRhYkuerDR9WAlX8tkCpFTHTVpWnWlrigj5la2X5OtQl9Y7PzwcqY4h0fc25yqZrcRH3AZpzB1qOw== - dependencies: - "@peculiar/asn1-schema" "^2.3.13" - "@peculiar/asn1-x509" "^2.3.13" - asn1.js "^5.4.1" - bn.js "^5.2.2" - buffer "^6.0.3" - elliptic "^6.6.1" - hash.js "^1.1.7" - node-fetch "^2.7.0" +"@solana-program/address-lookup-table@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.11.0.tgz#90f9c290b13c51be98b39597e0e502f31415fbf0" + integrity sha512-loC6VTEhmhYSq2ElZrv+V9uHp/Te6A7rllLIArk9c3A5+5V7sRhVsxZvsPGcv/WMXLgqmXR+Vl7WF7QSV3tXNQ== -"@solana/buffer-layout-utils@^0.2.0": - version "0.2.0" - resolved "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz" - integrity sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g== - dependencies: - "@solana/buffer-layout" "^4.0.0" - "@solana/web3.js" "^1.32.0" - bigint-buffer "^1.1.5" - bignumber.js "^9.0.1" +"@solana-program/compute-budget@^0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.15.0.tgz#b6e2d1d1314afe6b4af116c0e54eddfd9f5bd54b" + integrity sha512-toejNdIkzpUTqLSIzP0Nofr/EFel8QpPWuTtIKzfCcjn+mXpkThHxPJaNesk251rSTiWaxDZ3WxG7RxYwTWTqA== -"@solana/buffer-layout@^4.0.0", "@solana/buffer-layout@^4.0.1": +"@solana-program/stake@^0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.6.1.tgz#a05369615b91188c84cabb85c1a5b5710cccdce6" + integrity sha512-Jgo6hNnByGH7Nch+MrybYselbGLTtaq+/sUnMpf0DY7KtujM8lWmZYLg+eUaea9pyW47b6LVS3WXXE9vMdWraQ== + +"@solana-program/system@^0.12.0": + version "0.12.2" + resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.12.2.tgz#bd5d77350e4576a193324045283a7091155ef830" + integrity sha512-MaBeOxlvTruQhA7UYkOb3hVTEHPPagOtd+PvTm6a8rGgvEAP0kD4BbC37NceOaR4ABNqdaCmD5OMVRKgrE6KAg== + +"@solana-program/token@^0.13.0": + version "0.13.0" + resolved "https://registry.yarnpkg.com/@solana-program/token/-/token-0.13.0.tgz#6ef44f5fdc9cc4f087fcda3a001da8fe033ab678" + integrity sha512-/Apjrd5lwOJGrPB0J5Rv7EBeclvyEBQPAGA85Scm7wBH+GpkbdLDM9uK3TNg8jjFKyWQYai/JtPHbrx7VgFLSg== + dependencies: + "@solana-program/system" "^0.12.0" + +"@solana/accounts@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-6.9.0.tgz#82abef4a6b60afc8c336d0881872236324d1d488" + integrity sha512-g36AJreJrgf9AAjOfbdFHEFUTymBgzbWHoEDElZ+fDKvqBINDiUVKzDApwc7C7kGPMFqQBaoEHnQRxf2IqfKZQ== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/rpc-spec" "6.9.0" + "@solana/rpc-types" "6.9.0" + +"@solana/addresses@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-6.9.0.tgz#8c6f61e8725e6fbc6395edb64761d5534654d298" + integrity sha512-tWnG2L6lo/ZhcMT019F3myDsH87MM8EZbTO0cgwgvVPlEdIGblROFF3tGVrb7FVCOlbPI0ONCFyPbnrmR58LsA== + dependencies: + "@solana/assertions" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/nominal-types" "6.9.0" + +"@solana/assertions@6.9.0", "@solana/assertions@^6.8.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-6.9.0.tgz#48236eb42c346612d237d43a925c6b4f981f26e3" + integrity sha512-FjWWD6e0in+HFsHMvU2zKCbyPfKtDW6iGXZZ9+Qg1QUYpO1AEObsya3F7hb9RkZKUueK4WwWAQnIuvEUp3A1uA== + dependencies: + "@solana/errors" "6.9.0" + +"@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz" integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== dependencies: buffer "~6.0.3" -"@solana/codecs-core@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.0.0-rc.1.tgz" - integrity sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ== - dependencies: - "@solana/errors" "2.0.0-rc.1" - "@solana/codecs-core@2.3.0": version "2.3.0" resolved "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz" @@ -148,22 +169,29 @@ dependencies: "@solana/errors" "2.3.0" -"@solana/codecs-data-structures@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-2.0.0-rc.1.tgz" - integrity sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog== +"@solana/codecs-core@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-6.9.0.tgz#78bbb68107082b576526ed2d6492188b66d9e5ba" + integrity sha512-F2BmLecG/1nTtnjyD509NsEc254pxJKa2bpvotymv1lL1WfEn3zchcZ9SMIiLyL4G6J8b9F3OKIq2YSZho2AOQ== + dependencies: + "@solana/errors" "6.9.0" + +"@solana/codecs-data-structures@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-6.9.0.tgz#8d04fd375bca5701fab0e2efd6f0455a0728cc41" + integrity sha512-f7GYtiHafvJDhqiwzUUSr/6AYSK4DCw6quPmA80NZGtkNiFa+g6LoJy2wbC0wp2dxvCwNpxf6x3ILCYRutAvvg== dependencies: - "@solana/codecs-core" "2.0.0-rc.1" - "@solana/codecs-numbers" "2.0.0-rc.1" - "@solana/errors" "2.0.0-rc.1" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/errors" "6.9.0" -"@solana/codecs-numbers@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.0.0-rc.1.tgz" - integrity sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ== +"@solana/codecs-numbers@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-6.9.0.tgz#b1847005fda2974aad7b7b1bcc212e9f1039b647" + integrity sha512-XMI0FOHV2h7yPAllxWCX8z+J1msidNjXzN1mRjH5KR6C+vfzyKa2xWHve0bNSV/bjVAhqqhc7dQCpBKuF4+ScQ== dependencies: - "@solana/codecs-core" "2.0.0-rc.1" - "@solana/errors" "2.0.0-rc.1" + "@solana/codecs-core" "6.9.0" + "@solana/errors" "6.9.0" "@solana/codecs-numbers@^2.1.0": version "2.3.0" @@ -173,33 +201,26 @@ "@solana/codecs-core" "2.3.0" "@solana/errors" "2.3.0" -"@solana/codecs-strings@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.0.0-rc.1.tgz" - integrity sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g== +"@solana/codecs-strings@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-6.9.0.tgz#76329d3776296b474c4b7838681acb72b2cc03fe" + integrity sha512-PTqYQxMsmdfEEq29bV1AnALD4FjFEsSxOj1fYNqooOSTEQEpUoYEQtsd55/kBsnIKltXbvYwXYXBusm19n1sQA== dependencies: - "@solana/codecs-core" "2.0.0-rc.1" - "@solana/codecs-numbers" "2.0.0-rc.1" - "@solana/errors" "2.0.0-rc.1" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/errors" "6.9.0" -"@solana/codecs@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.npmjs.org/@solana/codecs/-/codecs-2.0.0-rc.1.tgz" - integrity sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ== +"@solana/codecs@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-6.9.0.tgz#d62f524a71b48dc9e912492bc3cca17797f3eb98" + integrity sha512-oWOybKa1PTGI1D/FyrvGKralADM1jmVZC2AtgEo+4JTKG0+i1p9ZbwNY2UcJqdYsDMDaGHAx0LMAid9LDCxXTQ== dependencies: - "@solana/codecs-core" "2.0.0-rc.1" - "@solana/codecs-data-structures" "2.0.0-rc.1" - "@solana/codecs-numbers" "2.0.0-rc.1" - "@solana/codecs-strings" "2.0.0-rc.1" - "@solana/options" "2.0.0-rc.1" - -"@solana/errors@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.npmjs.org/@solana/errors/-/errors-2.0.0-rc.1.tgz" - integrity sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ== - dependencies: - chalk "^5.3.0" - commander "^12.1.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-data-structures" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/fixed-points" "6.9.0" + "@solana/options" "6.9.0" "@solana/errors@2.3.0": version "2.3.0" @@ -209,43 +230,407 @@ chalk "^5.4.1" commander "^14.0.0" -"@solana/options@2.0.0-rc.1": - version "2.0.0-rc.1" - resolved "https://registry.npmjs.org/@solana/options/-/options-2.0.0-rc.1.tgz" - integrity sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA== +"@solana/errors@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-6.9.0.tgz#9652690e89e9572a0b27bb18950a7a48136cb7e2" + integrity sha512-7i+b07KMnkbHvFlz7uWade3jvyc22UmVm8o9taxPK8YV3JNM/NkS8oQFvMac2MIaLPAlEs7I8MHyVLUal1yY4g== + dependencies: + chalk "5.6.2" + commander "14.0.3" + +"@solana/fast-stable-stringify@6.9.0", "@solana/fast-stable-stringify@^6.8.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-6.9.0.tgz#d21d3f505c1f849277ed1e40998e16456e4acd98" + integrity sha512-l14zGVsURbT5Aox/kLFQywqV4VaE9/j3h2EvCu9oULVPMwzQB6yezJb1/KyiDwhm/RscooPd0gFQFIKEGQbayw== + +"@solana/fixed-points@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-6.9.0.tgz#9db86eeb54cb14d1a45d8b512d4ce982fccdc90d" + integrity sha512-0K7mbYC4jdAZFlXqXjpNanmEyZxk7K9NtXDLc1zuhGuxwH8J9guvohwdw2V7TQ9bfjCYsprY3Tp2kUVQpECGmA== + dependencies: + "@solana/codecs-core" "6.9.0" + "@solana/errors" "6.9.0" + +"@solana/functional@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-6.9.0.tgz#305408d892dd7ff0d575b29519fee8a3246a683c" + integrity sha512-sgNHOaIjETZZuziZdlwPsU5EjBVj5M0dUbwrSQTTNZe0SxX3pQ1QFVcs5KyvdS7AQcpBVdLjx4CfQjdKXk52GA== + +"@solana/instruction-plans@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-6.9.0.tgz#79203fad8acc25fd02e61b324fa6764a30589d34" + integrity sha512-SxTSOetEKD+WPzvDuYRsP1+KkwUp8KqL1n7oFx9ThxjyfEY0ly0i9KdbvX5yYVDOA2TSwrltgdu14y/Pf6y3Cg== + dependencies: + "@solana/errors" "6.9.0" + "@solana/instructions" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/promises" "6.9.0" + "@solana/transaction-messages" "6.9.0" + "@solana/transactions" "6.9.0" + +"@solana/instructions@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-6.9.0.tgz#555594e9115f85c377450ecd6c5a209668263054" + integrity sha512-LZfJx3bGdUSbGaswoOEPHygticqkCg3TusRczPJXyCmKhoQzPCcGQQ99qMzP7Wg8pEV5tWA5t7tycf8E237ydg== + dependencies: + "@solana/codecs-core" "6.9.0" + "@solana/errors" "6.9.0" + +"@solana/keys@6.9.0", "@solana/keys@^6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-6.9.0.tgz#7e6b1fa17d5f93e9df6324c67bd79134ba5d4dc1" + integrity sha512-1g2QARiqSjNqT0EIqLDLQ5vRm7hCsbqgFwFAp5GsMV/8BTYT8s1Ct2wLHDZiJ4eAX6beTHVf8LbOBfVejtn3oQ== + dependencies: + "@solana/assertions" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/nominal-types" "6.9.0" + "@solana/promises" "6.9.0" + +"@solana/kit@^6.8.0", "@solana/kit@^6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-6.9.0.tgz#1aa99d8fc3507f185d6233be9051eff172770dba" + integrity sha512-k7BRz7Akfv8wiRtlCR/xUyDLfuMfYMelMR1+AC5KgwaRRJReDF0BucMLNN1In7WoI+KuWwr1OKv4na/oKpyeAQ== + dependencies: + "@solana/accounts" "6.9.0" + "@solana/addresses" "6.9.0" + "@solana/codecs" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/functional" "6.9.0" + "@solana/instruction-plans" "6.9.0" + "@solana/instructions" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/offchain-messages" "6.9.0" + "@solana/plugin-core" "6.9.0" + "@solana/plugin-interfaces" "6.9.0" + "@solana/program-client-core" "6.9.0" + "@solana/programs" "6.9.0" + "@solana/rpc" "6.9.0" + "@solana/rpc-api" "6.9.0" + "@solana/rpc-parsed-types" "6.9.0" + "@solana/rpc-spec-types" "6.9.0" + "@solana/rpc-subscriptions" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/signers" "6.9.0" + "@solana/subscribable" "6.9.0" + "@solana/sysvars" "6.9.0" + "@solana/transaction-confirmation" "6.9.0" + "@solana/transaction-messages" "6.9.0" + "@solana/transactions" "6.9.0" + +"@solana/nominal-types@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-6.9.0.tgz#88f4fc7f20b5c41abc77deb93a076b6e2db99021" + integrity sha512-ouhrnY7a6nsLXRGcariwcmHDdXroCNqOuzwtdjKt2c8e8Drwao9yxPH2VoViNgpq8IGNJeQMEI1TVnoJZRn0gw== + +"@solana/offchain-messages@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-6.9.0.tgz#6f85619fac4a210b549613ab6d73f5445b087dc7" + integrity sha512-qK3tqRPb+E0kmTz5qFXZbEdF4pyzfOWRZjyVESHVGemDDeGzZ1SV3zAxcA6HBCnv4wCBnlyaDPw8t+5sryNMAw== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-data-structures" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/nominal-types" "6.9.0" + +"@solana/options@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-6.9.0.tgz#1f5df9cb4610cf1bf7a99a811101000dadaa44a2" + integrity sha512-H5ZRWNzzLMwHU/fRU9aVx+3TaMN4gDNCUYxsZxq0h7mqiwxFy6mpy95xPsfdldthCHDYtYnUTxe2sBatGbNHig== + dependencies: + "@solana/codecs-core" "6.9.0" + "@solana/codecs-data-structures" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + +"@solana/plugin-core@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-6.9.0.tgz#ab9343204146703e394a63ab9c358e2b653a6b47" + integrity sha512-KslLSnzY8zbGZibEBVMVUm2ZS8T2xf+cut7F65VjWPoWNAxU+p7933wsMz/az6CF7b65RI7iU3HhCr5/5QF50w== + +"@solana/plugin-interfaces@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-6.9.0.tgz#7d96977ed6708ba319d48e9cc1eeb8d22419cbd8" + integrity sha512-Qj4sk9thkM1UgnFXvWIoezd/CbqpX/2jigLBDsMB5Ed/gmFlkBSTL127LFDSY3OtzBpXl4hROs+Zqv+5xqtguA== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/instruction-plans" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/rpc-spec" "6.9.0" + "@solana/rpc-subscriptions-spec" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/signers" "6.9.0" + +"@solana/program-client-core@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-6.9.0.tgz#02bc7bfc619e38162610dc18785d73e7e4d599e7" + integrity sha512-+iUnsddhs72QoBJoUO+/yHUXoBvYWa1sGCBRJk35zeg8j7ZXEwRkk6eX0VOrUPxhEpQbYJsIOCrIYApNIt8RFw== + dependencies: + "@solana/accounts" "6.9.0" + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/instruction-plans" "6.9.0" + "@solana/instructions" "6.9.0" + "@solana/plugin-interfaces" "6.9.0" + "@solana/rpc-api" "6.9.0" + "@solana/signers" "6.9.0" + +"@solana/programs@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-6.9.0.tgz#17c0b9c1a5ef0bb513d77f1efe2d201845f45a7c" + integrity sha512-L9LAnQtfFFcCDLcbbnxhUtgAmu/kS4aRmrVncdnX5CFyQshlpo0/Qhrq3UA7vnhute4gjYV4pFT+64onH5qGEQ== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/errors" "6.9.0" + +"@solana/promises@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-6.9.0.tgz#8e78ee54a285a24ca455f84cb14494ef49b3f856" + integrity sha512-227PlXRi6KZX4ODYTkJitr9InSa79NTquI72slay4gzxO9VmMepgvYdMAX6kawdN5pt+VzaklKhNhWXk50Pi9g== + +"@solana/rpc-api@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-6.9.0.tgz#54ea5efa5d7b4d79a8790e2e48b5baa96de5da08" + integrity sha512-3KhXS6A1ie6GqTywW/KEMSXJ1VJEU66fxjhuiiqPILuJstP7kex3ycr3H6DirKydUsy6gaKaPN43rE+LfyS7OA== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/rpc-parsed-types" "6.9.0" + "@solana/rpc-spec" "6.9.0" + "@solana/rpc-transformers" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/transaction-messages" "6.9.0" + "@solana/transactions" "6.9.0" + +"@solana/rpc-parsed-types@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-6.9.0.tgz#84288f351fd5d26d2761eb2da98acf61ce57c752" + integrity sha512-6ThH8izY+DWDyrVOOlS40vTcFjwjCinjfqnId7zhRk8OxhkfHQ/iEj+OnGwD4Yhe8pGdVa7GNVYlrQgQgzQ3eQ== + +"@solana/rpc-spec-types@6.9.0", "@solana/rpc-spec-types@^6.8.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-6.9.0.tgz#a6c88e9a8ef04b8c3b48c450b200defaf50b7031" + integrity sha512-A4fY1JRrcKqX3EfttO4Q8L97nGPqdjfekAV0eDyxN5nu9ngf5p7GKenkl7AYDoHLNr6ZX/C96cRADxXjsRJ0iA== + +"@solana/rpc-spec@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-6.9.0.tgz#8f21e023ec5fdf162e77fa3ecff00c1072d7aa0e" + integrity sha512-3yHRoChc0IpsJbUq0/94l+ar3t9U3Ax58W0HON7eyYe7zFP10UAxpkHn7DPch9DeALyuGph8kVnvl+kXRgJlGg== + dependencies: + "@solana/errors" "6.9.0" + "@solana/rpc-spec-types" "6.9.0" + +"@solana/rpc-subscriptions-api@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-6.9.0.tgz#f63111f92f96ed98fd0c58be4cad94cf7a781b53" + integrity sha512-UA/rPQeNx6zQMUFcS8PPPuB4vzUOtSzIY/igMH0DRoP020NyES2GguIb7Zo7sqDNi4n0gkQRhoW4dPVotcNKdA== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/rpc-subscriptions-spec" "6.9.0" + "@solana/rpc-transformers" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/transaction-messages" "6.9.0" + "@solana/transactions" "6.9.0" + +"@solana/rpc-subscriptions-channel-websocket@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-6.9.0.tgz#c3646d93f65098bc832e0a9f58c03e8f7423ccf7" + integrity sha512-kT8Yne9HjJD2gooaOFNSyKrvaIfOy2GR0Ymv8OfecBCwFStdz+SPo5eYXq8ZWoZbr5E/MMpHgqsHBanqa2Ffyg== + dependencies: + "@solana/errors" "6.9.0" + "@solana/functional" "6.9.0" + "@solana/rpc-subscriptions-spec" "6.9.0" + "@solana/subscribable" "6.9.0" + ws "^8.19.0" + +"@solana/rpc-subscriptions-spec@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-6.9.0.tgz#2790efd94e784f704d5a6e58b838f2f6a0627286" + integrity sha512-DbaG67s99vRZQxFMK80UQ7DEKkRJK6JEZeYg/U5UttD6n7ax/vct7qopxGnrt4RCkaaac2fU8Sr+fcnvWQweUg== + dependencies: + "@solana/errors" "6.9.0" + "@solana/promises" "6.9.0" + "@solana/rpc-spec-types" "6.9.0" + "@solana/subscribable" "6.9.0" + +"@solana/rpc-subscriptions@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-6.9.0.tgz#857f0ace838e14cef7bf782860c5fab4fbf5de61" + integrity sha512-IMctZQaMxzvRACQ6ooW98lP+7tVoUJnRgOZtkAdzgBizldQAYPIKd3MulP0jbQPCMfdPsa2Hs0NBcUwfgonq3w== + dependencies: + "@solana/errors" "6.9.0" + "@solana/fast-stable-stringify" "6.9.0" + "@solana/functional" "6.9.0" + "@solana/promises" "6.9.0" + "@solana/rpc-spec-types" "6.9.0" + "@solana/rpc-subscriptions-api" "6.9.0" + "@solana/rpc-subscriptions-channel-websocket" "6.9.0" + "@solana/rpc-subscriptions-spec" "6.9.0" + "@solana/rpc-transformers" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/subscribable" "6.9.0" + +"@solana/rpc-transformers@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-6.9.0.tgz#ddcbad4b8504b5c3a14c3fdde31053cb95749bbe" + integrity sha512-dg4LK2wEBpaY+KRk/SJIkYvrvjdsc1AwD4bkmGY4Fp7EwVlvwBQShAQn78Qi4IP0WQ/0n9ncFyUxgcB1Y01ZuQ== + dependencies: + "@solana/errors" "6.9.0" + "@solana/functional" "6.9.0" + "@solana/nominal-types" "6.9.0" + "@solana/rpc-spec-types" "6.9.0" + "@solana/rpc-types" "6.9.0" + +"@solana/rpc-transport-http@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-6.9.0.tgz#e5d1559df421835d33f14bf4156020a634344d9c" + integrity sha512-4gy30fWJcS6jrcXCoP/optFpGJ/gD9xdkE8wDbe1Ys/Y+e4XjyBt45xtTnbdmMdukvdRX+oXS3zgUIYoagpNzQ== + dependencies: + "@solana/errors" "6.9.0" + "@solana/rpc-spec" "6.9.0" + "@solana/rpc-spec-types" "6.9.0" + undici-types "^8.2.0" + +"@solana/rpc-types@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-6.9.0.tgz#73e6d48cbdbeadcd0af9106ddd00922f57c1ab87" + integrity sha512-iFhPzZK3qiQ1lhfNTNBTI7BIs5PfWZSgRLD3enKm8ZAQggzvUklfO3KPh47jVsc/Jsr1UGPH8M3o3m17qjO1Cg== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/fixed-points" "6.9.0" + "@solana/nominal-types" "6.9.0" + +"@solana/rpc@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-6.9.0.tgz#ba008e7b1f894b3d94ea76c54be12eb09c58e788" + integrity sha512-ny1Kt20+oq3xZErNA56+Magmb2JKYfQgHwZTsBmHKVl/9mBpv1y1+ygV+KNiiX/wWXWstLbdIo1jgPwZPbU2Vg== + dependencies: + "@solana/errors" "6.9.0" + "@solana/fast-stable-stringify" "6.9.0" + "@solana/functional" "6.9.0" + "@solana/rpc-api" "6.9.0" + "@solana/rpc-spec" "6.9.0" + "@solana/rpc-spec-types" "6.9.0" + "@solana/rpc-transformers" "6.9.0" + "@solana/rpc-transport-http" "6.9.0" + "@solana/rpc-types" "6.9.0" + +"@solana/signers@6.9.0", "@solana/signers@^6.8.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-6.9.0.tgz#c3f7a7415ef9615e45b2d3010543b914bc7c12b4" + integrity sha512-x7WyoRm9IORMqeSqNivZgyY+RERPkmqWxpINPD13kUH+oaZzonORIgxk2Lz+u5iPRXiJPkdRPrQ4FoFWv8i6kQ== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/instructions" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/nominal-types" "6.9.0" + "@solana/offchain-messages" "6.9.0" + "@solana/transaction-messages" "6.9.0" + "@solana/transactions" "6.9.0" + +"@solana/subscribable@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-6.9.0.tgz#781c9c94ce00b18ed104b07091dfe7d506cdae42" + integrity sha512-YV0/BrJNfepf10CTfLwD7kRY1kkELDHd+BbHJZhBeiuiXTY3xQTvvx1RFs3NtfFCcTHG25Uh8NpRacQJnxSSIQ== + dependencies: + "@solana/errors" "6.9.0" + +"@solana/sysvars@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-6.9.0.tgz#5a5941245a14a1cbe231b0be07c93743f5bcae66" + integrity sha512-e0e+QKr/th9t/O2N1oUoJmcodLghzAtWKUlGb1zyYub0/WJrPImnKqJqp/gDP4tK98mJxopPMcprCeHk4B+TQg== + dependencies: + "@solana/accounts" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-data-structures" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/rpc-types" "6.9.0" + +"@solana/transaction-confirmation@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-6.9.0.tgz#17bac847e9f79a7aaf4638f8988257a7a55cdc47" + integrity sha512-fzYCOih7hhtBzzNSkAnxMjeFeQ8U7e27k9i0RsgQc3/e3OCynF5HoIVNhhqZbwfIBKiaD4ginJR6slRnfqO32Q== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/promises" "6.9.0" + "@solana/rpc" "6.9.0" + "@solana/rpc-subscriptions" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/transaction-messages" "6.9.0" + "@solana/transactions" "6.9.0" + +"@solana/transaction-messages@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-6.9.0.tgz#8977ee3b6fea1d011d78a34d3b3867838f4fd485" + integrity sha512-OWpryt0w6SHlwHx12Vd1wvx2QwSGBXAIUEHTCtkctcM3AaZRy5cIl7CAq9iD5PgahUsaOyRLBV0zlCJcC2JrJA== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-data-structures" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/functional" "6.9.0" + "@solana/instructions" "6.9.0" + "@solana/nominal-types" "6.9.0" + "@solana/rpc-types" "6.9.0" + +"@solana/transactions@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-6.9.0.tgz#5161cad07765392feaff780833820c15056c4ca8" + integrity sha512-uKPzLwHbjwChfVl82he17ntkh02PfgnMMhN7uOAC+VbkIt1O+EEw8sX87gi6kdG/EV+QBDQXm9PLAo5W0tYylw== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-data-structures" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/functional" "6.9.0" + "@solana/instructions" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/nominal-types" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/transaction-messages" "6.9.0" + +"@solana/web3.js@3.0.0-rc.1", "@solana/web3.js@^3.0.0-rc.1": + version "3.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.1.tgz#90147c6f0b164a402d148d852ebeb01b7424c74a" + integrity sha512-bTP4hm6HRSd4Nqa2XoHDYLA1p0J4iPbPEXwMMTrYaRoj+ksIm9QyCEJotzTtGgM/iebTButc+QLSugQbwenWRg== dependencies: - "@solana/codecs-core" "2.0.0-rc.1" - "@solana/codecs-data-structures" "2.0.0-rc.1" - "@solana/codecs-numbers" "2.0.0-rc.1" - "@solana/codecs-strings" "2.0.0-rc.1" - "@solana/errors" "2.0.0-rc.1" - -"@solana/spl-token-group@^0.0.7": - version "0.0.7" - resolved "https://registry.npmjs.org/@solana/spl-token-group/-/spl-token-group-0.0.7.tgz" - integrity sha512-V1N/iX7Cr7H0uazWUT2uk27TMqlqedpXHRqqAbVO2gvmJyT0E0ummMEAVQeXZ05ZhQ/xF39DLSdBp90XebWEug== - dependencies: - "@solana/codecs" "2.0.0-rc.1" - -"@solana/spl-token-metadata@^0.1.6": - version "0.1.6" - resolved "https://registry.npmjs.org/@solana/spl-token-metadata/-/spl-token-metadata-0.1.6.tgz" - integrity sha512-7sMt1rsm/zQOQcUWllQX9mD2O6KhSAtY1hFR2hfFwgqfFWzSY9E9GDvFVNYUI1F0iQKcm6HmePU9QbKRXTEBiA== - dependencies: - "@solana/codecs" "2.0.0-rc.1" - -"@solana/spl-token@^0.4.8": - version "0.4.13" - resolved "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.4.13.tgz" - integrity sha512-cite/pYWQZZVvLbg5lsodSovbetK/eA24gaR0eeUeMuBAMNrT8XFCwaygKy0N2WSg3gSyjjNpIeAGBAKZaY/1w== - dependencies: - "@solana/buffer-layout" "^4.0.0" - "@solana/buffer-layout-utils" "^0.2.0" - "@solana/spl-token-group" "^0.0.7" - "@solana/spl-token-metadata" "^0.1.6" - buffer "^6.0.3" - -"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.69.0", "@solana/web3.js@^1.98.0", "@solana/web3.js@^1.98.2": + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana-program/address-lookup-table" "^0.11.0" + "@solana-program/compute-budget" "^0.15.0" + "@solana-program/stake" "^0.6.1" + "@solana-program/system" "^0.12.0" + "@solana/assertions" "^6.8.0" + "@solana/fast-stable-stringify" "^6.8.0" + "@solana/kit" "^6.8.0" + "@solana/rpc-spec-types" "^6.8.0" + "@solana/signers" "^6.8.0" + +"@solana/web3.js@^1.69.0": version "1.98.2" resolved "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.98.2.tgz" integrity sha512-BqVwEG+TaG2yCkBMbD3C4hdpustR4FpuUFRPUmqRZYYlPI9Hg4XMWxHWOWRzHE9Lkc9NDjzXFX7lDXSgzC7R1A== @@ -370,11 +755,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansicolors@^0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz" - integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== - anymatch@~3.1.2: version "3.1.3" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" @@ -393,48 +773,11 @@ arrify@^1.0.0: resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== -asn1.js@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1js@^3.0.6: - version "3.0.10" - resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-3.0.10.tgz#df26c874c8a8b41ca605efea47b2ad07551013dd" - integrity sha512-S2s3aOytiKdFRdulw2qPE51MzjzVOisppcVv7jVFR+Kw0kxwvFrDcYA0h7Ndqbmj0HkMIXYWaoj7fli8kgx1eg== - dependencies: - pvtsutils "^1.3.6" - pvutils "^1.1.5" - tslib "^2.8.1" - -assert@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz" - integrity sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== - dependencies: - call-bind "^1.0.2" - is-nan "^1.3.2" - object-is "^1.1.5" - object.assign "^4.1.4" - util "^0.12.5" - assertion-error@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== -available-typed-arrays@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz" - integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== - dependencies: - possible-typed-array-names "^1.0.0" - balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" @@ -447,55 +790,21 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" -base-x@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-5.0.1.tgz#16bf35254be1df8aca15e36b7c1dda74b2aa6b03" - integrity sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg== - base64-js@^1.3.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -bigint-buffer@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz" - integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== - dependencies: - bindings "^1.3.0" - -bignumber.js@^9.0.1: - version "9.1.2" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" - integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== - binary-extensions@^2.0.0: version "2.3.0" resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== -bindings@^1.3.0: - version "1.5.0" - resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bn.js@^4.0.0, bn.js@^4.11.9: - version "4.12.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" - integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== - bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.1" resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -bn.js@^5.2.2: - version "5.2.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" - integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== - borsh@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz" @@ -520,11 +829,6 @@ braces@~3.0.2: dependencies: fill-range "^7.1.1" -brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - browser-stdout@1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" @@ -537,13 +841,6 @@ bs58@^4.0.0, bs58@^4.0.1: dependencies: base-x "^3.0.2" -bs58@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-6.0.0.tgz#a2cda0130558535dd281a2f8697df79caaf425d8" - integrity sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw== - dependencies: - base-x "^5.0.0" - buffer-from@^1.0.0, buffer-from@^1.1.0: version "1.1.2" resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" @@ -569,32 +866,6 @@ bufferutil@^4.0.1: dependencies: node-gyp-build "^4.3.0" -call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" - integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== - dependencies: - es-errors "^1.3.0" - function-bind "^1.1.2" - -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.7, call-bind@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz" - integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== - dependencies: - call-bind-apply-helpers "^1.0.0" - es-define-property "^1.0.0" - get-intrinsic "^1.2.4" - set-function-length "^1.2.2" - -call-bound@^1.0.2, call-bound@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz" - integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== - dependencies: - call-bind-apply-helpers "^1.0.2" - get-intrinsic "^1.3.0" - camelcase@^6.0.0, camelcase@^6.3.0: version "6.3.0" resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" @@ -613,6 +884,11 @@ chai@^4.3.4: pathval "^1.1.1" type-detect "^4.1.0" +chalk@5.6.2: + version "5.6.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.2.tgz#b1238b6e23ea337af71c7f8a295db5af0c158aea" + integrity sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA== + chalk@^4.1.0: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" @@ -621,7 +897,7 @@ chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.3.0, chalk@^5.4.1: +chalk@^5.4.1: version "5.4.1" resolved "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz" integrity sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w== @@ -669,10 +945,10 @@ color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -commander@^12.1.0: - version "12.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz" - integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== +commander@14.0.3: + version "14.0.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" + integrity sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw== commander@^14.0.0: version "14.0.0" @@ -703,13 +979,6 @@ debug@4.3.3: dependencies: ms "2.1.2" -debug@^4.3.3: - version "4.4.0" - resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz" - integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== - dependencies: - ms "^2.1.3" - decamelize@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" @@ -722,24 +991,6 @@ deep-eql@^4.1.3: dependencies: type-detect "^4.0.0" -define-data-property@^1.0.1, define-data-property@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" - integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - dependencies: - es-define-property "^1.0.0" - es-errors "^1.3.0" - gopd "^1.0.1" - -define-properties@^1.1.3, define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - delay@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz" @@ -755,50 +1006,11 @@ diff@^3.1.0: resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== -dunder-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" - integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== - dependencies: - call-bind-apply-helpers "^1.0.1" - es-errors "^1.3.0" - gopd "^1.2.0" - -elliptic@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.6.1.tgz#3b8ffb02670bf69e382c7f65bf524c97c5405c06" - integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -es-define-property@^1.0.0, es-define-property@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz" - integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz" - integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== - dependencies: - es-errors "^1.3.0" - es6-promise@^4.0.3: version "4.2.8" resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz" @@ -841,11 +1053,6 @@ fast-stable-stringify@^1.0.0: resolved "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz" integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - fill-range@^7.1.1: version "7.1.1" resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" @@ -866,13 +1073,6 @@ flat@^5.0.2: resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -for-each@^0.3.3: - version "0.3.5" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz" - integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== - dependencies: - is-callable "^1.2.7" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" @@ -883,11 +1083,6 @@ fsevents@~2.3.2: resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" @@ -898,30 +1093,6 @@ get-func-name@^2.0.1, get-func-name@^2.0.2: resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz" integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== -get-intrinsic@^1.2.4, get-intrinsic@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz" - integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== - dependencies: - call-bind-apply-helpers "^1.0.2" - es-define-property "^1.0.1" - es-errors "^1.3.0" - es-object-atoms "^1.1.1" - function-bind "^1.1.2" - get-proto "^1.0.1" - gopd "^1.2.0" - has-symbols "^1.1.0" - hasown "^2.0.2" - math-intrinsics "^1.1.0" - -get-proto@^1.0.0, get-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz" - integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== - dependencies: - dunder-proto "^1.0.1" - es-object-atoms "^1.0.0" - glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" @@ -941,11 +1112,6 @@ glob@7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -gopd@^1.0.1, gopd@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" - integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== - growl@1.10.5: version "1.10.5" resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz" @@ -956,54 +1122,11 @@ has-flag@^4.0.0: resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" - integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - dependencies: - es-define-property "^1.0.0" - -has-symbols@^1.0.3, has-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz" - integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== - -has-tostringtag@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" - integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - dependencies: - has-symbols "^1.0.3" - -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - he@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz" @@ -1024,19 +1147,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: +inherits@2: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -is-arguments@^1.0.4: - version "1.2.0" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz" - integrity sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA== - dependencies: - call-bound "^1.0.2" - has-tostringtag "^1.0.2" - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" @@ -1044,11 +1159,6 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" @@ -1059,16 +1169,6 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-function@^1.0.7: - version "1.1.0" - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz" - integrity sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ== - dependencies: - call-bound "^1.0.3" - get-proto "^1.0.0" - has-tostringtag "^1.0.2" - safe-regex-test "^1.1.0" - is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" @@ -1076,14 +1176,6 @@ is-glob@^4.0.1, is-glob@~4.0.1: dependencies: is-extglob "^2.1.1" -is-nan@^1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz" - integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" @@ -1094,23 +1186,6 @@ is-plain-obj@^2.1.0: resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-regex@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz" - integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== - dependencies: - call-bound "^1.0.2" - gopd "^1.2.0" - has-tostringtag "^1.0.2" - hasown "^2.0.2" - -is-typed-array@^1.1.3: - version "1.1.15" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz" - integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== - dependencies: - which-typed-array "^1.1.16" - is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" @@ -1168,6 +1243,52 @@ jsonparse@^1.2.0: resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== +litesvm-darwin-arm64@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/litesvm-darwin-arm64/-/litesvm-darwin-arm64-1.1.0.tgz#28e0bbc6f4076cf4d2181d48abb718e911887102" + integrity sha512-SjcivEOOjBk65U6TgIeMJ7CCnHNKQXHx0qf6K6GIFZC1aHTg7ePrEi+WhAQD6VUBMdDHIMCVKC/uXnXPi6EKIw== + +litesvm-darwin-x64@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/litesvm-darwin-x64/-/litesvm-darwin-x64-1.1.0.tgz#69740b0aecbb062d0c745fab2173686f463423f0" + integrity sha512-hTs+eZ9sHVZXhjggpnn/8A/E+Nt/E6Gf8E2ejdWWL9bBQKmq1Y0VcrDpORbIvqqRpTLHXqbxCuH1wQB2C8frJg== + +litesvm-linux-arm64-gnu@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/litesvm-linux-arm64-gnu/-/litesvm-linux-arm64-gnu-1.1.0.tgz#b02cdbc2bee8899d9a0c64b098815fb90aa3aaf7" + integrity sha512-6EjJ6+E+1SUXdJmCyeyhvlKhNncccqQNH241+P8d4E72rE3zuFxeCtLHhusCQk2p/Xau3dBI0qTLogZ1F1IGSA== + +litesvm-linux-arm64-musl@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/litesvm-linux-arm64-musl/-/litesvm-linux-arm64-musl-1.1.0.tgz#4a853aba08fc77d41bcf9f1869a15c183a586e18" + integrity sha512-mNuBOfX6GnDFT2i/kYPWud7eZGe57dDP0u4lwiSTQPRE0BxQbGZT2aEwX8LTwbonhbc6HSt50LamaZZzK4h4ig== + +litesvm-linux-x64-gnu@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/litesvm-linux-x64-gnu/-/litesvm-linux-x64-gnu-1.1.0.tgz#369ab59d9eb552a575b4365a8b75db2db52ce19e" + integrity sha512-Ot8RgUVlMKzKJi2nVDxaHVo0hjB5vtYTomYNIf26mIA32DOy0+dQfwOqUhynhvvSMxN3VFec3r/OtCnk6lRBrw== + +litesvm-linux-x64-musl@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/litesvm-linux-x64-musl/-/litesvm-linux-x64-musl-1.1.0.tgz#d25c25b85440ba817e46ffa19b0e3ce029f85f9a" + integrity sha512-6kmneOIsTBSActELRTwxIYVJOVaLm3P6uwlmkqc9BUtDAQ7bRdRmwREWSbM8XxKBGw2LjiUfgRJ5WJGYo8fUFg== + +litesvm@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/litesvm/-/litesvm-1.1.0.tgz#2f3eefa2e5f061fd4e24c6a391a12cea9b25d723" + integrity sha512-UOlMIEst50gSUyPnC2pGjGLygH8iC/GOqnNXQIHc8iGwD76m44ReeA/0h0vu/AIieZ2zG5/ERLxFV0kdNxkNsA== + dependencies: + "@solana-program/system" "^0.12.0" + "@solana-program/token" "^0.13.0" + "@solana/kit" "^6.9.0" + optionalDependencies: + litesvm-darwin-arm64 "1.1.0" + litesvm-darwin-x64 "1.1.0" + litesvm-linux-arm64-gnu "1.1.0" + litesvm-linux-arm64-musl "1.1.0" + litesvm-linux-x64-gnu "1.1.0" + litesvm-linux-x64-musl "1.1.0" + locate-path@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" @@ -1190,33 +1311,11 @@ loupe@^2.3.6: dependencies: get-func-name "^2.0.1" -magic-router-sdk@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/magic-router-sdk/-/magic-router-sdk-1.0.8.tgz" - integrity sha512-60XJWr3tgREkhg6NDVaLN8NP9XXDCZXUm0UGhYwDG5nLUgYQCqDU+/XfAN/KTQ5rwNam9kU/Q8E7UOVKWQOwmA== - dependencies: - "@solana/web3.js" "^1.98.2" - make-error@^1.1.1: version "1.3.6" resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -math-intrinsics@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz" - integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - minimatch@4.2.1: version "4.2.1" resolved "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz" @@ -1278,7 +1377,7 @@ ms@2.1.2: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.0.0, ms@^2.1.3: +ms@2.1.3, ms@^2.0.0: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -1305,31 +1404,6 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -object-is@^1.1.5: - version "1.1.6" - resolved "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz" - integrity sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.7" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz" - integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== - dependencies: - call-bind "^1.0.8" - call-bound "^1.0.3" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - has-symbols "^1.1.0" - object-keys "^1.1.1" - once@^1.3.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" @@ -1376,28 +1450,11 @@ picomatch@^2.0.4, picomatch@^2.2.1: resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -possible-typed-array-names@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz" - integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== - prettier@^2.6.2: version "2.8.8" resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== -pvtsutils@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.6.tgz#ec46e34db7422b9e4fdc5490578c1883657d6001" - integrity sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg== - dependencies: - tslib "^2.8.1" - -pvutils@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.1.5.tgz#84b0dea4a5d670249aa9800511804ee0b7c2809c" - integrity sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA== - randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" @@ -1422,7 +1479,7 @@ require-directory@^2.1.1: resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -rpc-websockets@^9.0.2, rpc-websockets@^9.0.4: +rpc-websockets@^9.0.2: version "9.1.1" resolved "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-9.1.1.tgz" integrity sha512-1IXGM/TfPT6nfYMIXkJdzn+L4JEsmb0FL1O2OBjaH03V3yuUDdKFulGLMFG6ErV+8pZ5HVC0limve01RyO+saA== @@ -1443,20 +1500,6 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0: resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-regex-test@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz" - integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== - dependencies: - call-bound "^1.0.2" - es-errors "^1.3.0" - is-regex "^1.2.1" - -safer-buffer@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - serialize-javascript@6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" @@ -1464,18 +1507,6 @@ serialize-javascript@6.0.0: dependencies: randombytes "^2.1.0" -set-function-length@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" - integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - dependencies: - define-data-property "^1.1.4" - es-errors "^1.3.0" - function-bind "^1.1.2" - get-intrinsic "^1.2.4" - gopd "^1.0.1" - has-property-descriptors "^1.0.2" - source-map-support@^0.5.6: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" @@ -1539,6 +1570,10 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +"test-utils@link:../test-utils": + version "0.0.0" + uid "" + text-encoding-utf-8@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz" @@ -1599,7 +1634,7 @@ tsconfig-paths@^3.5.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^2.8.0, tslib@^2.8.1: +tslib@^2.8.0: version "2.8.1" resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== @@ -1614,16 +1649,16 @@ type-detect@^4.0.0, type-detect@^4.1.0: resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz" integrity sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw== -typescript@^4.3.5: - version "4.9.5" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - typescript@^5.3.0: version "5.9.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== +undici-types@^8.2.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.3.0.tgz#44e9fc9f3244648cdea35e4f9bb2d681e9410809" + integrity sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ== + undici-types@~6.20.0: version "6.20.0" resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz" @@ -1636,17 +1671,6 @@ utf-8-validate@^5.0.2: dependencies: node-gyp-build "^4.3.0" -util@^0.12.5: - version "0.12.5" - resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz" - integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - which-typed-array "^1.1.2" - uuid@^8.3.2: version "8.3.2" resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" @@ -1665,18 +1689,6 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" -which-typed-array@^1.1.16, which-typed-array@^1.1.2: - version "1.1.18" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz" - integrity sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA== - dependencies: - available-typed-arrays "^1.0.7" - call-bind "^1.0.8" - call-bound "^1.0.3" - for-each "^0.3.3" - gopd "^1.2.0" - has-tostringtag "^1.0.2" - which@2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" @@ -1708,6 +1720,11 @@ ws@^7.5.10: resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== +ws@^8.19.0: + version "8.21.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.21.0.tgz#012e413fc07429945121b0c153158c4343086951" + integrity sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g== + ws@^8.5.0: version "8.18.1" resolved "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz" diff --git a/pinocchio-counter/package.json b/pinocchio-counter/package.json index c10e712c..82698513 100644 --- a/pinocchio-counter/package.json +++ b/pinocchio-counter/package.json @@ -28,11 +28,13 @@ "dependencies": { "@magicblock-labs/ephemeral-rollups-kit": "0.14.3", "@magicblock-labs/ephemeral-rollups-sdk": "0.14.3", + "@magicblock-labs/magicsvm": "^0.1.1", "@solana-program/system": "^0.10.0", "@solana/kit": "^5.4.0", "@solana/web3.js": "^1.93.0", "borsh": "^0.7.0", - "dotenv": "^16.0.0" + "dotenv": "^16.0.0", + "test-utils": "link:../test-utils" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" } diff --git a/pinocchio-counter/tests/kit/initializeKeypair.ts b/pinocchio-counter/tests/kit/initializeKeypair.ts deleted file mode 100644 index 1765f39c..00000000 --- a/pinocchio-counter/tests/kit/initializeKeypair.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { generateKeyPair, createKeyPairFromPrivateKeyBytes, createKeyPairFromBytes, Address, createSolanaRpc, createSolanaRpcSubscriptions, airdropFactory, lamports, getAddressFromPublicKey, address} from "@solana/kit" -import * as fs from 'fs' - -import dotenv from 'dotenv' -dotenv.config() - -// Initialize Keypair for SOL -export async function initializeSolSignerKeypair() : Promise> { - - if (!process.env.PRIVATE_KEY) { - - const { privateKey, publicKey } = await generateKeyPair(); - const privateKeyBytes = new Uint8Array(await crypto.subtle.exportKey('raw', privateKey)); - const publicKeyBytes = new Uint8Array(await crypto.subtle.exportKey('raw', publicKey)); - const keypairBytes = new Uint8Array([...privateKeyBytes, ...publicKeyBytes]); - // Append the new key-value pair to the contents of the .env file - console.log(`New SOL Public Key: ${await getAddressFromPublicKey(publicKey)}`) - fs.writeFileSync('.env', `PRIVATE_KEY=${JSON.stringify(Array.from(keypairBytes))}\n`); - - const keypair = await createKeyPairFromBytes(keypairBytes) - return keypair - - } - - const secret = JSON.parse(process.env.PRIVATE_KEY ?? "") as number[] - const keypair = await createKeyPairFromBytes( - new Uint8Array(secret), - ); - console.log(`\rCurrent SOL Public Key: ${await getAddressFromPublicKey(keypair.publicKey)}`) - - return keypair - -} - -export async function airdropSolIfNeeded(rpcEndpoint: string, wsEndpoint: string, pubkey: Address, amount: number, threshold: number = 1) { - - const SOL_PER_LAMPORTS = BigInt("1000000000"); - - if (rpcEndpoint.includes('dev') || rpcEndpoint.includes('test') || rpcEndpoint.includes('local') || rpcEndpoint.includes('http://')) { - - const rpc = await createSolanaRpc(rpcEndpoint) - const rpcSubscriptions = createSolanaRpcSubscriptions(wsEndpoint); - const balance = (await rpc.getBalance(pubkey).send())?.value - console.log('Current balance is', balance / SOL_PER_LAMPORTS, ' SOL','\n') - if (balance < (BigInt(threshold) * SOL_PER_LAMPORTS)) { - console.log(`Selected cluster: ${rpcEndpoint}`) - console.log(`Airdropping ${amount} SOL...`) - const airdrop = airdropFactory({ rpc, rpcSubscriptions }); - await airdrop({ - commitment: 'confirmed', - recipientAddress: address(pubkey), - lamports: lamports(BigInt(SOL_PER_LAMPORTS) * BigInt(amount)) - }); - console.log(`\rAirdrop of ${amount} SOL was successful.`) - } - } - -} diff --git a/pinocchio-counter/tests/kit/pinocchio-counter.test.ts b/pinocchio-counter/tests/kit/pinocchio-counter.test.ts index 50c3b898..4e0dbdcc 100644 --- a/pinocchio-counter/tests/kit/pinocchio-counter.test.ts +++ b/pinocchio-counter/tests/kit/pinocchio-counter.test.ts @@ -1,372 +1,381 @@ -import { - initializeSolSignerKeypair, - airdropSolIfNeeded, -} from "./initializeKeypair"; import * as borsh from "borsh"; import * as fs from "fs"; import dotenv from "dotenv"; +import { CounterInstruction, IncreaseCounterPayload } from "./schema"; import { - CounterInstruction, - IncreaseCounterPayload, -} from "./schema"; -import { - Connection, DELEGATION_PROGRAM_ID, delegationRecordPdaFromDelegatedAccount, delegationMetadataPdaFromDelegatedAccount, delegateBufferPdaFromDelegatedAccountAndOwnerProgram, MAGIC_CONTEXT_ID, - MAGIC_PROGRAM_ID + MAGIC_PROGRAM_ID, } from "@magicblock-labs/ephemeral-rollups-kit"; -import { +import { Instruction, getAddressEncoder, - getProgramDerivedAddress, - AccountRole, - createKeyPairFromBytes, - getAddressFromPublicKey, - address, + getProgramDerivedAddress, + AccountRole, + createKeyPairFromBytes, + getAddressFromPublicKey, + address, createTransactionMessage, - appendTransactionMessageInstructions, - pipe, - setTransactionMessageFeePayer -} from '@solana/kit'; -import { SYSTEM_PROGRAM_ADDRESS } from "@solana-program/system" -import { describe, it, beforeAll, expect } from "vitest"; + appendTransactionMessageInstructions, + pipe, + createKeyPairSignerFromPrivateKeyBytes, + Address, + KeyPairSigner, +} from "@solana/kit"; +import { SYSTEM_PROGRAM_ADDRESS } from "@solana-program/system"; +import { describe, it, beforeAll } from "vitest"; +import { FailedTransactionMetadata, MagicSVM } from "@magicblock-labs/magicsvm"; +import { transactionFromKitTransactionMessage } from "test-utils"; +import { LAMPORTS_PER_SOL } from "@solana/web3.js"; dotenv.config(); -describe("basic-test", async () => { - const TEST_TIMEOUT = 60_000; - - console.log("🧪 Running pinocchio-counter.ts test suite..."); +describe("basic-test", () => { + const svm = new MagicSVM(); // Load the deployed program keypair and get Proram ID const keypairPath = "target/deploy/pinocchio_counter-keypair.json"; const secretKeyArray = Uint8Array.from( - JSON.parse(fs.readFileSync(keypairPath, "utf8")) + JSON.parse(fs.readFileSync(keypairPath, "utf8")), ); - const keypair = await createKeyPairFromBytes(secretKeyArray); - const PROGRAM_ID = await getAddressFromPublicKey(keypair.publicKey) - - // Connections - const connection = await Connection.create( - process.env.PROVIDER_ENDPOINT || "https://api.devnet.solana.com", - process.env.WS_ENDPOINT || "wss://api.devnet.solana.com" - ) - const ephemeralConnection = await Connection.create( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || "https://devnet-as.magicblock.app", - process.env.EPHEMERAL_WS_ENDPOINT || "wss://devnet-as.magicblock.app" - ) + let keypair; + let PROGRAM_ID: Address; - console.log("Base Layer RPC:", connection.clusterUrlHttp, "| Websocket:", connection.clusterUrlWs); - console.log("ER RPC:", ephemeralConnection.clusterUrlHttp, "| Websocket:", ephemeralConnection.clusterUrlWs); - // Prepare user - const userKeypair = await initializeSolSignerKeypair(); - const userPubkey = await getAddressFromPublicKey(userKeypair.publicKey) + let userSigner: KeyPairSigner; + let userPubkey: Address; // Get PDA const addressEncoder = getAddressEncoder(); - const [counterPda, bump] = await getProgramDerivedAddress({ - programAddress: PROGRAM_ID, - seeds: [ - Buffer.from("counter"), - addressEncoder.encode(userPubkey) - ], - }); - const bumpBytes = Buffer.from([bump]); - console.log("Progam ID:", PROGRAM_ID); - console.log("Counter PDA:", counterPda); + let counterPda: Address; + let bump: number; + let bumpBytes: Buffer; // Ensure test wallet has SOL beforeAll(async () => { - await airdropSolIfNeeded( - connection.clusterUrlHttp, - connection.clusterUrlWs, - userPubkey, - 2 + keypair = await createKeyPairFromBytes(secretKeyArray); + PROGRAM_ID = await getAddressFromPublicKey(keypair.publicKey); + svm.addProgram( + PROGRAM_ID, + fs.readFileSync("target/deploy/pinocchio_counter.so"), ); - }, TEST_TIMEOUT); - - it( - "Initialize counter on Solana", - async () => { - const start = Date.now(); - - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER}, - { address: counterPda, role: AccountRole.WRITABLE }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.InitializeCounter, "hex"), - bumpBytes, - ]); - const initializeIx : Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - let transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - tx => setTransactionMessageFeePayer(userPubkey, tx), - tx => appendTransactionMessageInstructions([initializeIx], tx) - ); - // Send and confirm transaction - const txHash = await connection.sendAndConfirmTransaction(transactionMessage, [userKeypair], { commitment: "confirmed", skipPreflight: true }) - - console.log(`${Date.now() - start}ms (Base Layer) Initialize txHash: ${txHash}`); - - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT - ); - - it( - "Increase counter on Solana", - async () => { - const start = Date.now(); - - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER}, - { address: counterPda, role: AccountRole.WRITABLE }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - bumpBytes, - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1) - ), - ]); - const increaseCounterIx : Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - tx => setTransactionMessageFeePayer(userPubkey, tx), - tx => appendTransactionMessageInstructions([increaseCounterIx], tx) - ); + userSigner = await createKeyPairSignerFromPrivateKeyBytes( + Uint8Array.from( + new Array(32).fill(0).map((_) => Math.floor(Math.random() * 256)), + ), + ); + userPubkey = userSigner.address; - // Send and confirm transaction - const txHash = await connection.sendAndConfirmTransaction(transactionMessage, [userKeypair], { commitment: "confirmed", skipPreflight: true }) + [counterPda, bump] = await getProgramDerivedAddress({ + programAddress: PROGRAM_ID, + seeds: [Buffer.from("counter"), addressEncoder.encode(userPubkey)], + }); + bumpBytes = Buffer.from([bump]); - console.log(`${Date.now() - start}ms (Base Layer) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT - ); + console.log("Progam ID:", PROGRAM_ID); + console.log("Counter PDA:", counterPda); - it( - "Delegate counter to ER", - async () => { - const start = Date.now(); + svm.airdrop(userPubkey, BigInt(2 * LAMPORTS_PER_SOL)); + }); - // Validator identity for delegation: env override wins; otherwise default by network. - const isLocal = connection.clusterUrlHttp.includes("localhost") || connection.clusterUrlHttp.includes("127.0.0.1"); - const validatorAddress = address( - process.env.VALIDATOR || - (isLocal ? "mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev" : "MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57") - ); - const remainingAccounts = [ - { address: validatorAddress, role: AccountRole.READONLY } - ]; + it("Initialize counter on Solana", async () => { + // Prepare transaction + const accounts = [ + { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, + { address: counterPda, role: AccountRole.WRITABLE }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ]; + const serializedInstructionData = Buffer.concat([ + Buffer.from(CounterInstruction.InitializeCounter, "hex"), + bumpBytes, + ]); + const initializeIx: Instruction = { + accounts, + programAddress: PROGRAM_ID, + data: serializedInstructionData, + }; + const transactionMessage = pipe( + createTransactionMessage({ version: 0 }), + (tx) => appendTransactionMessageInstructions([initializeIx], tx), + ); - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER}, - { address: counterPda, role: AccountRole.WRITABLE }, - { address: PROGRAM_ID, role: AccountRole.READONLY }, - { - address: await delegateBufferPdaFromDelegatedAccountAndOwnerProgram(counterPda, PROGRAM_ID), - role: AccountRole.WRITABLE - }, - { - address: await delegationRecordPdaFromDelegatedAccount(counterPda), - role: AccountRole.WRITABLE - }, - { - address: await delegationMetadataPdaFromDelegatedAccount(counterPda), - role: AccountRole.WRITABLE - }, - { address: DELEGATION_PROGRAM_ID, role: AccountRole.READONLY }, - { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, - ...remainingAccounts, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.Delegate, "hex"), - bumpBytes, - ]); - const delegateIx : Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - tx => setTransactionMessageFeePayer(userPubkey, tx), - tx => appendTransactionMessageInstructions([delegateIx], tx) - ); + // Send and confirm transaction + const res = svm.sendTransaction( + await transactionFromKitTransactionMessage(transactionMessage, { + payer: userSigner, + recentBlockhash: svm.latestBlockhash(), + }), + { + target: "base", + }, + ); + if (res instanceof FailedTransactionMetadata) { + throw new Error(`Initialize failed: ${res}`); + } + }); - // Send and confirm transaction - const txHash = await connection.sendAndConfirmTransaction(transactionMessage, [userKeypair], { commitment: "confirmed", skipPreflight: true }) + it("Increase counter on Solana", async () => { + // Prepare transaction + const accounts = [ + { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, + { address: counterPda, role: AccountRole.WRITABLE }, + ]; + const serializedInstructionData = Buffer.concat([ + Buffer.from(CounterInstruction.IncreaseCounter, "hex"), + bumpBytes, + borsh.serialize( + IncreaseCounterPayload.schema, + new IncreaseCounterPayload(1), + ), + ]); + const increaseCounterIx: Instruction = { + accounts, + programAddress: PROGRAM_ID, + data: serializedInstructionData, + }; + const transactionMessage = pipe( + createTransactionMessage({ version: 0 }), + (tx) => appendTransactionMessageInstructions([increaseCounterIx], tx), + ); - console.log(`${Date.now() - start}ms (Base Layer) Delegate txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT - ); + // Send and confirm transaction + const res = svm.sendTransaction( + await transactionFromKitTransactionMessage(transactionMessage, { + payer: userSigner, + recentBlockhash: svm.latestBlockhash(), + }), + { + target: "base", + }, + ); + if (res instanceof FailedTransactionMetadata) { + throw new Error(`Increase counter failed: ${res}`); + } + }); - it( - "Increase counter on ER", - async () => { - const start = Date.now(); - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER}, - { address: counterPda, role: AccountRole.WRITABLE }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - bumpBytes, - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1) + it("Delegate counter to ER", async () => { + const validatorAddress = address(svm.validatorIdentity().toString()); + const remainingAccounts = [ + { address: validatorAddress, role: AccountRole.READONLY }, + ]; + + // Prepare transaction + const accounts = [ + { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, + { address: counterPda, role: AccountRole.WRITABLE }, + { address: PROGRAM_ID, role: AccountRole.READONLY }, + { + address: await delegateBufferPdaFromDelegatedAccountAndOwnerProgram( + counterPda, + PROGRAM_ID, ), - ]); - const increaseCounterIx : Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - tx => setTransactionMessageFeePayer(userPubkey, tx), - tx => appendTransactionMessageInstructions([increaseCounterIx], tx) - ); - - // Send and confirm transaction - const txHash = await ephemeralConnection.sendAndConfirmTransaction(transactionMessage, [userKeypair], { commitment: "confirmed", skipPreflight: true }) - - console.log(`${Date.now() - start}ms (ER) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT - ); - it( - "Commit changes from ER back to Solana", - async () => { - const start = Date.now(); - - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER}, - { address: counterPda, role: AccountRole.WRITABLE }, - { address: address(MAGIC_PROGRAM_ID.toString()), role: AccountRole.READONLY}, - { address: address(MAGIC_CONTEXT_ID.toString()), role: AccountRole.WRITABLE} - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.Commit, - "hex" - ); - const commitIx : Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - tx => setTransactionMessageFeePayer(userPubkey, tx), - tx => appendTransactionMessageInstructions([commitIx], tx) - ); - - // Send and confirm transaction - const txHash = await ephemeralConnection.sendAndConfirmTransaction(transactionMessage, [userKeypair], { commitment: "confirmed", skipPreflight: true }) - + role: AccountRole.WRITABLE, + }, + { + address: await delegationRecordPdaFromDelegatedAccount(counterPda), + role: AccountRole.WRITABLE, + }, + { + address: await delegationMetadataPdaFromDelegatedAccount(counterPda), + role: AccountRole.WRITABLE, + }, + { address: DELEGATION_PROGRAM_ID, role: AccountRole.READONLY }, + { address: SYSTEM_PROGRAM_ADDRESS, role: AccountRole.READONLY }, + ...remainingAccounts, + ]; + const serializedInstructionData = Buffer.concat([ + Buffer.from(CounterInstruction.Delegate, "hex"), + bumpBytes, + ]); + const delegateIx: Instruction = { + accounts, + programAddress: PROGRAM_ID, + data: serializedInstructionData, + }; + const transactionMessage = pipe( + createTransactionMessage({ version: 0 }), + (tx) => appendTransactionMessageInstructions([delegateIx], tx), + ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Commit txHash: ${txHash}`); + // Send and confirm transaction + const res = svm.sendTransaction( + await transactionFromKitTransactionMessage(transactionMessage, { + payer: userSigner, + recentBlockhash: svm.latestBlockhash(), + }), + { + target: "base", + }, + ); + if (res instanceof FailedTransactionMetadata) { + throw new Error(`Delegate failed: ${res}`); + } + }); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT - ); - it( - "Increase counter on ER (2)", - async () => { - const start = Date.now(); - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER}, - { address: counterPda, role: AccountRole.WRITABLE }, - ]; - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, "hex"), - bumpBytes, - borsh.serialize( - IncreaseCounterPayload.schema, - new IncreaseCounterPayload(1) - ), - ]); - const increaseCounterIx : Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - tx => setTransactionMessageFeePayer(userPubkey, tx), - tx => appendTransactionMessageInstructions([increaseCounterIx], tx) - ); + it("Increase counter on ER", async () => { + const accounts = [ + { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, + { address: counterPda, role: AccountRole.WRITABLE }, + ]; + const serializedInstructionData = Buffer.concat([ + Buffer.from(CounterInstruction.IncreaseCounter, "hex"), + bumpBytes, + borsh.serialize( + IncreaseCounterPayload.schema, + new IncreaseCounterPayload(1), + ), + ]); + const increaseCounterIx: Instruction = { + accounts, + programAddress: PROGRAM_ID, + data: serializedInstructionData, + }; + const transactionMessage = pipe( + createTransactionMessage({ version: 0 }), + (tx) => appendTransactionMessageInstructions([increaseCounterIx], tx), + ); - // Send and confirm transaction - const txHash = await ephemeralConnection.sendAndConfirmTransaction(transactionMessage, [userKeypair], { commitment: "confirmed", skipPreflight: true }) + // Send and confirm transaction + const res = svm.sendTransaction( + await transactionFromKitTransactionMessage(transactionMessage, { + payer: userSigner, + recentBlockhash: svm.latestBlockhashFor({ target: "ephemeral" }), + }), + { + target: "ephemeral", + }, + ); + if (res instanceof FailedTransactionMetadata) { + throw new Error(`Increase counter failed: ${res}`); + } + }); - console.log(`${Date.now() - start}ms (ER) Increment txHash: ${txHash}`); + it("Commit changes from ER back to Solana", async () => { + // Prepare transaction + const accounts = [ + { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, + { address: counterPda, role: AccountRole.WRITABLE }, + { + address: address(MAGIC_PROGRAM_ID.toString()), + role: AccountRole.READONLY, + }, + { + address: address(MAGIC_CONTEXT_ID.toString()), + role: AccountRole.WRITABLE, + }, + ]; + const serializedInstructionData = Buffer.from( + CounterInstruction.Commit, + "hex", + ); + const commitIx: Instruction = { + accounts, + programAddress: PROGRAM_ID, + data: serializedInstructionData, + }; + const transactionMessage = pipe( + createTransactionMessage({ version: 0 }), + (tx) => appendTransactionMessageInstructions([commitIx], tx), + ); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT - ); - it( - "Undelegate counter from ER", - async () => { - const start = Date.now(); + // Send and confirm transaction + const res = svm.sendTransaction( + await transactionFromKitTransactionMessage(transactionMessage, { + payer: userSigner, + recentBlockhash: svm.latestBlockhashFor({ target: "ephemeral" }), + }), + { + target: "ephemeral", + }, + ); + if (res instanceof FailedTransactionMetadata) { + throw new Error(`Commit failed: ${res}`); + } + }); - // Prepare transaction - const accounts = [ - { address: userPubkey, role: AccountRole.WRITABLE_SIGNER}, - { address: counterPda, role: AccountRole.WRITABLE }, - { address: address(MAGIC_PROGRAM_ID.toString()), role: AccountRole.READONLY}, - { address: address(MAGIC_CONTEXT_ID.toString()), role: AccountRole.WRITABLE} - ]; - const serializedInstructionData = Buffer.from( - CounterInstruction.CommitAndUndelegate, - "hex" - ); - const undelegateIx : Instruction = { - accounts, - programAddress: PROGRAM_ID, - data: serializedInstructionData, - }; - const transactionMessage = pipe( - createTransactionMessage({ version: 0 }), - tx => setTransactionMessageFeePayer(userPubkey, tx), - tx => appendTransactionMessageInstructions([undelegateIx], tx) - ); + it("Increase counter on ER (2)", async () => { + const accounts = [ + { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, + { address: counterPda, role: AccountRole.WRITABLE }, + ]; + const serializedInstructionData = Buffer.concat([ + Buffer.from(CounterInstruction.IncreaseCounter, "hex"), + bumpBytes, + borsh.serialize( + IncreaseCounterPayload.schema, + new IncreaseCounterPayload(1), + ), + ]); + const increaseCounterIx: Instruction = { + accounts, + programAddress: PROGRAM_ID, + data: serializedInstructionData, + }; + const transactionMessage = pipe( + createTransactionMessage({ version: 0 }), + (tx) => appendTransactionMessageInstructions([increaseCounterIx], tx), + ); - // Send and confirm transaction - const txHash = await ephemeralConnection.sendAndConfirmTransaction(transactionMessage, [userKeypair], { commitment: "confirmed", skipPreflight: true }) + // Send and confirm transaction + svm.expireBlockhashFor({ target: "ephemeral" }); + const res = svm.sendTransaction( + await transactionFromKitTransactionMessage(transactionMessage, { + payer: userSigner, + recentBlockhash: svm.latestBlockhashFor({ target: "ephemeral" }), + }), + { + target: "ephemeral", + }, + ); + if (res instanceof FailedTransactionMetadata) { + throw new Error(`Increase counter failed: ${res}`); + } + }); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Undelegate txHash: ${txHash}`); + it("Undelegate counter from ER", async () => { + // Prepare transaction + const accounts = [ + { address: userPubkey, role: AccountRole.WRITABLE_SIGNER }, + { address: counterPda, role: AccountRole.WRITABLE }, + { + address: address(MAGIC_PROGRAM_ID.toString()), + role: AccountRole.READONLY, + }, + { + address: address(MAGIC_CONTEXT_ID.toString()), + role: AccountRole.WRITABLE, + }, + ]; + const serializedInstructionData = Buffer.from( + CounterInstruction.CommitAndUndelegate, + "hex", + ); + const undelegateIx: Instruction = { + accounts, + programAddress: PROGRAM_ID, + data: serializedInstructionData, + }; + const transactionMessage = pipe( + createTransactionMessage({ version: 0 }), + (tx) => appendTransactionMessageInstructions([undelegateIx], tx), + ); - expect(txHash).toBeDefined(); - }, - TEST_TIMEOUT - ); + // Send and confirm transaction + const res = svm.sendTransaction( + await transactionFromKitTransactionMessage(transactionMessage, { + payer: userSigner, + recentBlockhash: svm.latestBlockhashFor({ target: "ephemeral" }), + }), + { + target: "ephemeral", + }, + ); + if (res instanceof FailedTransactionMetadata) { + throw new Error(`Undelegate failed: ${res}`); + } + }); }); diff --git a/pinocchio-counter/tests/web3js/initializeKeypair.ts b/pinocchio-counter/tests/web3js/initializeKeypair.ts deleted file mode 100644 index f72fd17c..00000000 --- a/pinocchio-counter/tests/web3js/initializeKeypair.ts +++ /dev/null @@ -1,41 +0,0 @@ -import * as web3 from '@solana/web3.js' -import * as fs from 'fs' - -import dotenv from 'dotenv' -dotenv.config() - -// Initialize Keypair for SOL -export function initializeSolSignerKeypair(): web3.Keypair { - - if (!process.env.PRIVATE_KEY) { - const signer = web3.Keypair.generate() - // Append the new key-value pair to the contents of the .env file - console.log(`New SOL Public Key: ${signer.publicKey}`) - fs.writeFileSync('.env', `PRIVATE_KEY=[${signer.secretKey.toString()}]\n`) - return signer - - } - - const secret = JSON.parse(process.env.PRIVATE_KEY ?? "") as number[] - const secretKey = Uint8Array.from(secret) - const keypairFromSecretKey = web3.Keypair.fromSecretKey(secretKey) - console.log(`\rCurrent SOL Public Key: ${keypairFromSecretKey.publicKey}`) - - return keypairFromSecretKey - -} - -export async function airdropSolIfNeeded(connection: web3.Connection, pubkey: web3.PublicKey, amount: number, threshold: number) { - - if (connection.rpcEndpoint.includes('dev') || connection.rpcEndpoint.includes('test') || connection.rpcEndpoint.includes('local') || connection.rpcEndpoint.includes('http://')) { - const balance = await connection.getBalance(pubkey) - console.log('Current balance is', balance / web3.LAMPORTS_PER_SOL, ' SOL','\n') - if (balance < threshold * web3.LAMPORTS_PER_SOL) { - console.log(`Selected cluster: ${connection.rpcEndpoint}`) - console.log(`Airdropping ${amount} SOL...`) - await connection.requestAirdrop(pubkey, amount * web3.LAMPORTS_PER_SOL ) - console.log(`\rAirdrop of ${amount} SOL was successful.`) - } - } - -} diff --git a/pinocchio-counter/tests/web3js/pinocchio-counter.test.ts b/pinocchio-counter/tests/web3js/pinocchio-counter.test.ts index c2c49791..6004f104 100644 --- a/pinocchio-counter/tests/web3js/pinocchio-counter.test.ts +++ b/pinocchio-counter/tests/web3js/pinocchio-counter.test.ts @@ -1,470 +1,456 @@ -import { - Keypair, - PublicKey, - SystemProgram, - Transaction, - TransactionInstruction, - Connection, - sendAndConfirmTransaction +import { + Keypair, + LAMPORTS_PER_SOL, + PublicKey, + SystemProgram, + Transaction, + TransactionInstruction, } from "@solana/web3.js"; -import { initializeSolSignerKeypair, airdropSolIfNeeded } from "./initializeKeypair"; import * as borsh from "borsh"; import * as fs from "fs"; import { CounterInstruction, IncreaseCounterPayload } from "./schema"; -import { - DELEGATION_PROGRAM_ID, - delegationRecordPdaFromDelegatedAccount, - delegationMetadataPdaFromDelegatedAccount, - delegateBufferPdaFromDelegatedAccountAndOwnerProgram, - MAGIC_CONTEXT_ID, - MAGIC_PROGRAM_ID, - GetCommitmentSignature +import { + DELEGATION_PROGRAM_ID, + delegationRecordPdaFromDelegatedAccount, + delegationMetadataPdaFromDelegatedAccount, + delegateBufferPdaFromDelegatedAccountAndOwnerProgram, + MAGIC_CONTEXT_ID, + MAGIC_PROGRAM_ID, } from "@magicblock-labs/ephemeral-rollups-sdk"; -import { describe, it, beforeAll, expect } from "vitest"; +import { describe, it, beforeAll } from "vitest"; -import dotenv from 'dotenv' -dotenv.config() +import dotenv from "dotenv"; +import { FailedTransactionMetadata, MagicSVM } from "@magicblock-labs/magicsvm"; +import { + addressFromWeb3PublicKey, + signerFromWeb3Keypair, + transactionFromWeb3Transaction, +} from "test-utils"; +dotenv.config(); +describe("basic-test", () => { + const svm = new MagicSVM(); + // Get programId from target folder + const keypairPath = "target/deploy/pinocchio_counter-keypair.json"; + const secretKeyArray = Uint8Array.from( + JSON.parse(fs.readFileSync(keypairPath, "utf8")), + ); + const keypair = Keypair.fromSecretKey(secretKeyArray); + let PROGRAM_ID: PublicKey; -describe("basic-test", async () => { - const TEST_TIMEOUT = 60_000; - console.log("pinocchio-counter.ts") + // Create user keypair and airdrop SOL if needed + const userKeypair = Keypair.generate(); + const userSigner = signerFromWeb3Keypair(userKeypair); - // Get programId from target folder - const keypairPath = "target/deploy/pinocchio_counter-keypair.json"; - const secretKeyArray = Uint8Array.from(JSON.parse(fs.readFileSync(keypairPath, "utf8"))); - const keypair = Keypair.fromSecretKey(secretKeyArray); - const PROGRAM_ID = keypair.publicKey; - - // Set up a connection to blockchain cluster - const connectionBaseLayer = new Connection( - process.env.PROVIDER_ENDPOINT || "https://api.devnet.solana.com", - {wsEndpoint:process.env.WS_ENDPOINT || "wss://api.devnet.solana.com"} - ); - const connectionEphemeralRollup = new Connection( - process.env.EPHEMERAL_PROVIDER_ENDPOINT || "https://devnet-as.magicblock.app/", - {wsEndpoint: process.env.EPHEMERAL_WS_ENDPOINT || "wss://devnet-as.magicblock.app/"} - ); - console.log("Base Layer Connection: ", connectionBaseLayer.rpcEndpoint); - console.log("Ephemeral Rollup Connection: ", connectionEphemeralRollup.rpcEndpoint); + let counterPda: PublicKey; + let bump: number; + let bumpBytes: Buffer; - - // Create user keypair and airdrop SOL if needed - const userKeypair = initializeSolSignerKeypair(); - - // Run this once before all tests - beforeAll( async () => { - await airdropSolIfNeeded(connectionBaseLayer, userKeypair.publicKey, 2, 0.05); - }, TEST_TIMEOUT); + // Run this once before all tests + beforeAll(async () => { + PROGRAM_ID = keypair.publicKey; // Get pda of counter_account - const [counterPda, bump] = PublicKey.findProgramAddressSync( - [Buffer.from("counter"), userKeypair.publicKey.toBuffer()], - PROGRAM_ID + [counterPda, bump] = PublicKey.findProgramAddressSync( + [Buffer.from("counter"), userKeypair.publicKey.toBuffer()], + PROGRAM_ID, ); - const bumpBytes = Buffer.from([bump]); - console.log("Program ID: ", PROGRAM_ID.toString()) - console.log("Counter PDA: ", counterPda.toString()) - - it("Initialize counter on Solana", async () => { - const start = Date.now(); - - // 1: InitializeCounter - // Create, send and confirm transaction - const tx = new Transaction(); - - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // System Program - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - } - ] - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.InitializeCounter, 'hex'), - bumpBytes, - ]) - const initializeIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData - }); - tx.add(initializeIx); - try { - const txHash = await sendAndConfirmTransaction(connectionBaseLayer, tx, [userKeypair], - { - skipPreflight: true, - commitment: "confirmed" - } - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Initialize txHash: ${txHash}`); - expect(txHash).toBeDefined(); - } catch (error: any) { - console.error("Initialize error:", error); - throw error; - } - - }, TEST_TIMEOUT); - - it("Increase counter on Solana", async () => { - const start = Date.now(); - - // 1: IncreaseCounter - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - } - ] - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, 'hex'), - bumpBytes, - borsh.serialize(IncreaseCounterPayload.schema, new IncreaseCounterPayload(1)) - ]) - const increaseCounterIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData - }); - tx.add(increaseCounterIx); - const txHash = await sendAndConfirmTransaction(connectionBaseLayer, tx, [userKeypair], - { - skipPreflight: true, - commitment: "confirmed" - } - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - - }, TEST_TIMEOUT); - - it("Delegate counter to ER", async function () { - const start = Date.now(); - - // Validator identity for delegation: env override wins; otherwise default by network. - const isLocal = - connectionEphemeralRollup.rpcEndpoint.includes("localhost") || - connectionEphemeralRollup.rpcEndpoint.includes("127.0.0.1"); - const validatorPubkey = new PublicKey( - process.env.VALIDATOR || - (isLocal ? "mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev" : "MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57") - ); - const remainingAccounts = [ - { pubkey: validatorPubkey, isSigner: false, isWritable: false }, - ]; - - // 2: Delegate - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // Owner Program - { - pubkey: PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // Delegation Buffer - { - pubkey: delegateBufferPdaFromDelegatedAccountAndOwnerProgram(counterPda, PROGRAM_ID), - isSigner: false, - isWritable: true, - }, - // Delegation Record - { - pubkey: delegationRecordPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - // Delegation Metadata - { - pubkey: delegationMetadataPdaFromDelegatedAccount(counterPda), - isSigner: false, - isWritable: true, - }, - // Delegation Program - { - pubkey: DELEGATION_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // System Program - { - pubkey: SystemProgram.programId, - isSigner: false, - isWritable: false, - }, - // ER Validator - ...remainingAccounts - ] - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.Delegate, 'hex'), - bumpBytes, - ]) - const delegateIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData - }); - tx.add(delegateIx); - const txHash = await sendAndConfirmTransaction(connectionBaseLayer, tx, [userKeypair], - { - skipPreflight: true, - commitment: "confirmed" - } - ); - const duration = Date.now() - start; - console.log(`${duration}ms (Base Layer) Delegate txHash: ${txHash}`); - expect(txHash).toBeDefined(); - - }, TEST_TIMEOUT); - - it("Increase counter on ER (1)", async () => { - const start = Date.now(); - - // 1: IncreaseCounter - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - } - ] - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, 'hex'), - bumpBytes, - borsh.serialize(IncreaseCounterPayload.schema, new IncreaseCounterPayload(1)) - ]) - const increaseCounterIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData - }); - tx.add(increaseCounterIx); - const txHash = await sendAndConfirmTransaction(connectionEphemeralRollup, tx, [userKeypair], - { - skipPreflight: true, - commitment: "confirmed" - } - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - - }, TEST_TIMEOUT); - - it("Commit counter state on ER to Solana", async () => { - const start = Date.now(); - - // 3: Commit - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // Magic Program - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // Magic Context - { - pubkey: MAGIC_CONTEXT_ID, - isSigner: false, - isWritable: true, - } - ] - const serializedInstructionData = Buffer.from(CounterInstruction.Commit, 'hex') - const commitIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData - }); - tx.add(commitIx); - const txHash = await sendAndConfirmTransaction(connectionEphemeralRollup, tx, [userKeypair], - { - skipPreflight: true, - commitment: "confirmed" - } - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Commit txHash: ${txHash}`); - - // Get the commitment signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - // tx, - connectionEphemeralRollup - ); - const commitDuration = Date.now() - comfirmCommitStart; - console.log(`${commitDuration}ms (Base Layer) Commit txHash: ${txCommitSgn}`); - expect(txHash).toBeDefined(); - - }, TEST_TIMEOUT); + bumpBytes = Buffer.from([bump]); + console.log("Program ID: ", PROGRAM_ID.toString()); + console.log("Counter PDA: ", counterPda.toString()); - it("Increase counter on ER (2)", async () => { - - const start = Date.now(); - - // 1: IncreaseCounter - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - } - ] - const serializedInstructionData = Buffer.concat([ - Buffer.from(CounterInstruction.IncreaseCounter, 'hex'), - bumpBytes, - borsh.serialize(IncreaseCounterPayload.schema, new IncreaseCounterPayload(1)) - ]) - const initializeIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData - }); - tx.add(initializeIx); - const txHash = await sendAndConfirmTransaction(connectionEphemeralRollup, tx, [userKeypair], - { - skipPreflight: true, - commitment: "confirmed" - } - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Increment txHash: ${txHash}`); - expect(txHash).toBeDefined(); - - }, TEST_TIMEOUT); - - it("Commit and undelegate counter on ER to Solana", async function () { - - const start = Date.now(); - - // 3: CommitAndUndelegate - // Create, send and confirm transaction - const tx = new Transaction(); - const keys = [ - // Initializer - { - pubkey: userKeypair.publicKey, - isSigner: true, - isWritable: true, - }, - // Counter Account - { - pubkey: counterPda, - isSigner: false, - isWritable: true, - }, - // Magic Program - { - pubkey: MAGIC_PROGRAM_ID, - isSigner: false, - isWritable: false, - }, - // Magic Context - { - pubkey: MAGIC_CONTEXT_ID, - isSigner: false, - isWritable: true, - } - ] - const serializedInstructionData = Buffer.from(CounterInstruction.CommitAndUndelegate, 'hex') - const undelegateIx = new TransactionInstruction({ - keys: keys, - programId: PROGRAM_ID, - data: serializedInstructionData - }); - tx.add(undelegateIx); - const txHash = await sendAndConfirmTransaction(connectionEphemeralRollup, tx, [userKeypair], - { - skipPreflight: true, - commitment: "confirmed" - } - ); - const duration = Date.now() - start; - console.log(`${duration}ms (ER) Undelegate txHash: ${txHash}`); - - // Get the commitment signature on the base layer - const comfirmCommitStart = Date.now(); - // Await for the commitment on the base layer - const txCommitSgn = await GetCommitmentSignature( - txHash, - connectionEphemeralRollup - ); - const commitDuration = Date.now() - comfirmCommitStart; - console.log(`${commitDuration}ms (Base Layer) Undelegate txHash: ${txCommitSgn}`); - expect(txHash).toBeDefined(); + svm.addProgram( + addressFromWeb3PublicKey(PROGRAM_ID), + fs.readFileSync("target/deploy/pinocchio_counter.so"), + ); - }, TEST_TIMEOUT); + svm.airdrop(userSigner.address, BigInt(2 * LAMPORTS_PER_SOL)); + }); + + it("Initialize counter on Solana", async () => { + // 1: InitializeCounter + // Create, send and confirm transaction + const tx = new Transaction(); + + const keys = [ + // Initializer + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + // Counter Account + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + // System Program + { + pubkey: SystemProgram.programId, + isSigner: false, + isWritable: false, + }, + ]; + const serializedInstructionData = Buffer.concat([ + Buffer.from(CounterInstruction.InitializeCounter, "hex"), + bumpBytes, + ]); + const initializeIx = new TransactionInstruction({ + keys: keys, + programId: PROGRAM_ID, + data: serializedInstructionData, + }); + tx.add(initializeIx); + + const res = svm.sendTransaction( + await transactionFromWeb3Transaction(tx, { + payer: userSigner, + recentBlockhash: svm.latestBlockhash(), + }), + { + target: "base", + }, + ); + if (res instanceof FailedTransactionMetadata) { + throw new Error(`Initialize failed: ${res}`); + } + }); + + it("Increase counter on Solana", async () => { + // 1: IncreaseCounter + // Create, send and confirm transaction + const tx = new Transaction(); + const keys = [ + // Initializer + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + // Counter Account + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + ]; + const serializedInstructionData = Buffer.concat([ + Buffer.from(CounterInstruction.IncreaseCounter, "hex"), + bumpBytes, + borsh.serialize( + IncreaseCounterPayload.schema, + new IncreaseCounterPayload(1), + ), + ]); + const increaseCounterIx = new TransactionInstruction({ + keys: keys, + programId: PROGRAM_ID, + data: serializedInstructionData, + }); + tx.add(increaseCounterIx); + const res = svm.sendTransaction( + await transactionFromWeb3Transaction(tx, { + payer: userSigner, + recentBlockhash: svm.latestBlockhash(), + }), + { + target: "base", + }, + ); + if (res instanceof FailedTransactionMetadata) { + throw new Error(`Increase counter failed: ${res}`); + } + }); + + it("Delegate counter to ER", async function () { + const validatorPubkey = new PublicKey(svm.validatorIdentity().toString()); + const remainingAccounts = [ + { pubkey: validatorPubkey, isSigner: false, isWritable: false }, + ]; + + // 2: Delegate + // Create, send and confirm transaction + const tx = new Transaction(); + const keys = [ + // Initializer + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + // Counter Account + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + // Owner Program + { + pubkey: PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + // Delegation Buffer + { + pubkey: delegateBufferPdaFromDelegatedAccountAndOwnerProgram( + counterPda, + PROGRAM_ID, + ), + isSigner: false, + isWritable: true, + }, + // Delegation Record + { + pubkey: delegationRecordPdaFromDelegatedAccount(counterPda), + isSigner: false, + isWritable: true, + }, + // Delegation Metadata + { + pubkey: delegationMetadataPdaFromDelegatedAccount(counterPda), + isSigner: false, + isWritable: true, + }, + // Delegation Program + { + pubkey: DELEGATION_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + // System Program + { + pubkey: SystemProgram.programId, + isSigner: false, + isWritable: false, + }, + // ER Validator + ...remainingAccounts, + ]; + const serializedInstructionData = Buffer.concat([ + Buffer.from(CounterInstruction.Delegate, "hex"), + bumpBytes, + ]); + const delegateIx = new TransactionInstruction({ + keys: keys, + programId: PROGRAM_ID, + data: serializedInstructionData, + }); + tx.add(delegateIx); + const res = svm.sendTransaction( + await transactionFromWeb3Transaction(tx, { + payer: userSigner, + recentBlockhash: svm.latestBlockhash(), + }), + { + target: "base", + }, + ); + if (res instanceof FailedTransactionMetadata) { + throw new Error(`Delegate failed: ${res}`); + } + }); + + it("Increase counter on ER (1)", async () => { + // 1: IncreaseCounter + // Create, send and confirm transaction + const tx = new Transaction(); + const keys = [ + // Initializer + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + // Counter Account + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + ]; + const serializedInstructionData = Buffer.concat([ + Buffer.from(CounterInstruction.IncreaseCounter, "hex"), + bumpBytes, + borsh.serialize( + IncreaseCounterPayload.schema, + new IncreaseCounterPayload(1), + ), + ]); + const increaseCounterIx = new TransactionInstruction({ + keys: keys, + programId: PROGRAM_ID, + data: serializedInstructionData, + }); + tx.add(increaseCounterIx); + const res = svm.sendTransaction( + await transactionFromWeb3Transaction(tx, { + payer: userSigner, + recentBlockhash: svm.latestBlockhashFor({ target: "ephemeral" }), + }), + { + target: "ephemeral", + }, + ); + if (res instanceof FailedTransactionMetadata) { + throw new Error(`Increase counter failed: ${res}`); + } + }); + + it("Commit counter state on ER to Solana", async () => { + // 3: Commit + // Create, send and confirm transaction + const tx = new Transaction(); + const keys = [ + // Initializer + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + // Counter Account + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + // Magic Program + { + pubkey: MAGIC_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + // Magic Context + { + pubkey: MAGIC_CONTEXT_ID, + isSigner: false, + isWritable: true, + }, + ]; + const serializedInstructionData = Buffer.from( + CounterInstruction.Commit, + "hex", + ); + const commitIx = new TransactionInstruction({ + keys: keys, + programId: PROGRAM_ID, + data: serializedInstructionData, + }); + tx.add(commitIx); + const res = svm.sendTransaction( + await transactionFromWeb3Transaction(tx, { + payer: signerFromWeb3Keypair(userKeypair), + recentBlockhash: svm.latestBlockhashFor({ target: "ephemeral" }), + }), + { + target: "ephemeral", + }, + ); + if (res instanceof FailedTransactionMetadata) { + throw new Error(`Commit failed: ${res}`); + } + }); + + it("Increase counter on ER (2)", async () => { + // 1: IncreaseCounter + // Create, send and confirm transaction + const tx = new Transaction(); + const keys = [ + // Initializer + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + // Counter Account + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + ]; + const serializedInstructionData = Buffer.concat([ + Buffer.from(CounterInstruction.IncreaseCounter, "hex"), + bumpBytes, + borsh.serialize( + IncreaseCounterPayload.schema, + new IncreaseCounterPayload(1), + ), + ]); + const initializeIx = new TransactionInstruction({ + keys: keys, + programId: PROGRAM_ID, + data: serializedInstructionData, + }); + tx.add(initializeIx); + svm.expireBlockhashFor({ target: "ephemeral" }); + const res = svm.sendTransaction( + await transactionFromWeb3Transaction(tx, { + payer: userSigner, + recentBlockhash: svm.latestBlockhashFor({ target: "ephemeral" }), + }), + { + target: "ephemeral", + }, + ); + if (res instanceof FailedTransactionMetadata) { + throw new Error(`Increase counter failed: ${res}`); + } + }); + + it("Commit and undelegate counter on ER to Solana", async function () { + // 3: CommitAndUndelegate + // Create, send and confirm transaction + const tx = new Transaction(); + const keys = [ + // Initializer + { + pubkey: userKeypair.publicKey, + isSigner: true, + isWritable: true, + }, + // Counter Account + { + pubkey: counterPda, + isSigner: false, + isWritable: true, + }, + // Magic Program + { + pubkey: MAGIC_PROGRAM_ID, + isSigner: false, + isWritable: false, + }, + // Magic Context + { + pubkey: MAGIC_CONTEXT_ID, + isSigner: false, + isWritable: true, + }, + ]; + const serializedInstructionData = Buffer.from( + CounterInstruction.CommitAndUndelegate, + "hex", + ); + const undelegateIx = new TransactionInstruction({ + keys: keys, + programId: PROGRAM_ID, + data: serializedInstructionData, + }); + tx.add(undelegateIx); + const res = svm.sendTransaction( + await transactionFromWeb3Transaction(tx, { + payer: userSigner, + recentBlockhash: svm.latestBlockhashFor({ target: "ephemeral" }), + }), + { + target: "ephemeral", + }, + ); + if (res instanceof FailedTransactionMetadata) { + throw new Error(`Undelegate failed: ${res}`); + } + }); }); diff --git a/pinocchio-counter/yarn.lock b/pinocchio-counter/yarn.lock index 613a587a..0d933029 100644 --- a/pinocchio-counter/yarn.lock +++ b/pinocchio-counter/yarn.lock @@ -7,6 +7,38 @@ resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz" integrity sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA== +"@coral-xyz/anchor-errors@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.31.1.tgz#d635cbac2533973ae6bfb5d3ba1de89ce5aece2d" + integrity sha512-NhNEku4F3zzUSBtrYz84FzYWm48+9OvmT1Hhnwr6GnPQry2dsEqH/ti/7ASjjpoFTWRnPXrjAIT1qM6Isop+LQ== + +"@coral-xyz/anchor@0.32.1": + version "0.32.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.32.1.tgz#a07440d9d267840f4f99f1493bd8ce7d7f128e57" + integrity sha512-zAyxFtfeje2FbMA1wzgcdVs7Hng/MijPKpRijoySPCicnvcTQs/+dnPZ/cR+LcXM9v9UYSyW81uRNYZtN5G4yg== + dependencies: + "@coral-xyz/anchor-errors" "^0.31.1" + "@coral-xyz/borsh" "^0.31.1" + "@noble/hashes" "^1.3.1" + "@solana/web3.js" "^1.69.0" + bn.js "^5.1.2" + bs58 "^4.0.1" + buffer-layout "^1.2.2" + camelcase "^6.3.0" + cross-fetch "^3.1.5" + eventemitter3 "^4.0.7" + pako "^2.0.3" + superstruct "^0.15.4" + toml "^3.0.0" + +"@coral-xyz/borsh@^0.31.1": + version "0.31.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.31.1.tgz#5328e1e0921b75d7f4a62dd3f61885a938bc7241" + integrity sha512-9N8AU9F0ubriKfNE3g1WF0/4dtlGXoBN/hd1PvbNBamBNwRgHxH4P+o3Zt7rSEloW1HUs6LfZEchlx9fW7POYw== + dependencies: + bn.js "^5.1.2" + buffer-layout "^1.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" @@ -184,6 +216,51 @@ tweetnacl "^1.0.3" typescript "^5.3.0" +"@magicblock-labs/magicsvm-darwin-arm64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-arm64/-/magicsvm-darwin-arm64-0.1.1.tgz#c95ff3722730b001e537d6083db366bab7ac2f50" + integrity sha512-bTNHYRtI4TZN9xvQ78Yzi8HKUDN3m1VsJ4TyAM+HqQdxder/a1L59XvlyfpR19E1UMvwGUQCjTiyG8tAOejKfQ== + +"@magicblock-labs/magicsvm-darwin-x64@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-darwin-x64/-/magicsvm-darwin-x64-0.1.1.tgz#681a77d422422056df0ef239c56de481673362f0" + integrity sha512-Hd/ciw44daYyyjKRDNs2GX5wgZldgUEYGPfUYP1odOgcRS+gaqw4wC/HhwG6awi3jcWtUnHOTeJuv1P9J6zG0w== + +"@magicblock-labs/magicsvm-linux-arm64-gnu@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-gnu/-/magicsvm-linux-arm64-gnu-0.1.1.tgz#69b7301513a5dc965d885d0825d2e08d16f24c62" + integrity sha512-uB1RAx5Vn2rBQ+sZArGX2Lr0edjtVINfXUKU91+bZoCwhOMLmTxBh/C2PhPgko0xSkvga22G6euiOBL7ZZccxw== + +"@magicblock-labs/magicsvm-linux-arm64-musl@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-arm64-musl/-/magicsvm-linux-arm64-musl-0.1.1.tgz#b3e8db3429fb909735acb2c25ac1c062f6585af9" + integrity sha512-xnik1ovoZa7WQQxbtM0qyIOiked5CPS+21WI9FfSHlNwFvr/cnjXkGB5oLF2TJvexbIEOsnviDVMlXpaXAIi5Q== + +"@magicblock-labs/magicsvm-linux-x64-gnu@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-gnu/-/magicsvm-linux-x64-gnu-0.1.1.tgz#369303ef622ea242aded11a803ecbecb726340cd" + integrity sha512-zGYKpcSHix4gNTDLp6G3viazrTt1ZjPqh+8zPmu4NAlNELvRSg8Hr089w8RaMLUuYXei6LzGcpGY/xMrkelCHQ== + +"@magicblock-labs/magicsvm-linux-x64-musl@0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm-linux-x64-musl/-/magicsvm-linux-x64-musl-0.1.1.tgz#34db0e287364997af5c6358f7505a20e4f6c09b9" + integrity sha512-NSg5eZx5JO5LUx2dHygCJbP///v4e1pjjeCMqjKUKDjnMlbtL8oX48laB4/a4kRqUAyrh0bcuhl/UM4htMWqtA== + +"@magicblock-labs/magicsvm@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@magicblock-labs/magicsvm/-/magicsvm-0.1.1.tgz#995732d8668fafc15b778e2ac230615516f13101" + integrity sha512-MJbyUHkPmZgYRLTCMJJaErxqM/ZstudVua7RTMeKXHUtmlBcTSkjua+6sJsgqNAuQJI4QdRiDyeerVOHbFQlww== + dependencies: + "@solana/web3.js" "3.0.0-rc.1" + litesvm "1.1.0" + optionalDependencies: + "@magicblock-labs/magicsvm-darwin-arm64" "0.1.1" + "@magicblock-labs/magicsvm-darwin-x64" "0.1.1" + "@magicblock-labs/magicsvm-linux-arm64-gnu" "0.1.1" + "@magicblock-labs/magicsvm-linux-arm64-musl" "0.1.1" + "@magicblock-labs/magicsvm-linux-x64-gnu" "0.1.1" + "@magicblock-labs/magicsvm-linux-x64-musl" "0.1.1" + "@noble/curves@^1.4.2": version "1.9.7" resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz" @@ -191,7 +268,7 @@ dependencies: "@noble/hashes" "1.8.0" -"@noble/hashes@1.8.0", "@noble/hashes@^1.4.0": +"@noble/hashes@1.8.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0": version "1.8.0" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz" integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A== @@ -366,16 +443,43 @@ resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== +"@solana-program/address-lookup-table@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@solana-program/address-lookup-table/-/address-lookup-table-0.11.0.tgz#90f9c290b13c51be98b39597e0e502f31415fbf0" + integrity sha512-loC6VTEhmhYSq2ElZrv+V9uHp/Te6A7rllLIArk9c3A5+5V7sRhVsxZvsPGcv/WMXLgqmXR+Vl7WF7QSV3tXNQ== + +"@solana-program/compute-budget@^0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@solana-program/compute-budget/-/compute-budget-0.15.0.tgz#b6e2d1d1314afe6b4af116c0e54eddfd9f5bd54b" + integrity sha512-toejNdIkzpUTqLSIzP0Nofr/EFel8QpPWuTtIKzfCcjn+mXpkThHxPJaNesk251rSTiWaxDZ3WxG7RxYwTWTqA== + +"@solana-program/stake@^0.6.1": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@solana-program/stake/-/stake-0.6.1.tgz#a05369615b91188c84cabb85c1a5b5710cccdce6" + integrity sha512-Jgo6hNnByGH7Nch+MrybYselbGLTtaq+/sUnMpf0DY7KtujM8lWmZYLg+eUaea9pyW47b6LVS3WXXE9vMdWraQ== + "@solana-program/system@^0.10.0": version "0.10.0" resolved "https://registry.npmjs.org/@solana-program/system/-/system-0.10.0.tgz" integrity sha512-Go+LOEZmqmNlfr+Gjy5ZWAdY5HbYzk2RBewD9QinEU/bBSzpFfzqDRT55JjFRBGJUvMgf3C2vfXEGT4i8DSI4g== +"@solana-program/system@^0.12.0": + version "0.12.2" + resolved "https://registry.yarnpkg.com/@solana-program/system/-/system-0.12.2.tgz#bd5d77350e4576a193324045283a7091155ef830" + integrity sha512-MaBeOxlvTruQhA7UYkOb3hVTEHPPagOtd+PvTm6a8rGgvEAP0kD4BbC37NceOaR4ABNqdaCmD5OMVRKgrE6KAg== + "@solana-program/system@^0.9.0": version "0.9.1" resolved "https://registry.npmjs.org/@solana-program/system/-/system-0.9.1.tgz" integrity sha512-2N30CgYJw0qX8jKU8vW808yLmx5oRoDSM+FC6tqhsLQiph7agK9eRXJlnrq6OUfTAZd5yCYQHQvGtx0S8I9SAA== +"@solana-program/token@^0.13.0": + version "0.13.0" + resolved "https://registry.yarnpkg.com/@solana-program/token/-/token-0.13.0.tgz#6ef44f5fdc9cc4f087fcda3a001da8fe033ab678" + integrity sha512-/Apjrd5lwOJGrPB0J5Rv7EBeclvyEBQPAGA85Scm7wBH+GpkbdLDM9uK3TNg8jjFKyWQYai/JtPHbrx7VgFLSg== + dependencies: + "@solana-program/system" "^0.12.0" + "@solana/accounts@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/accounts/-/accounts-4.0.0.tgz" @@ -400,6 +504,18 @@ "@solana/rpc-spec" "5.4.0" "@solana/rpc-types" "5.4.0" +"@solana/accounts@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/accounts/-/accounts-6.9.0.tgz#82abef4a6b60afc8c336d0881872236324d1d488" + integrity sha512-g36AJreJrgf9AAjOfbdFHEFUTymBgzbWHoEDElZ+fDKvqBINDiUVKzDApwc7C7kGPMFqQBaoEHnQRxf2IqfKZQ== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/rpc-spec" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/addresses@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/addresses/-/addresses-4.0.0.tgz" @@ -422,6 +538,17 @@ "@solana/errors" "5.4.0" "@solana/nominal-types" "5.4.0" +"@solana/addresses@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/addresses/-/addresses-6.9.0.tgz#8c6f61e8725e6fbc6395edb64761d5534654d298" + integrity sha512-tWnG2L6lo/ZhcMT019F3myDsH87MM8EZbTO0cgwgvVPlEdIGblROFF3tGVrb7FVCOlbPI0ONCFyPbnrmR58LsA== + dependencies: + "@solana/assertions" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/nominal-types" "6.9.0" + "@solana/assertions@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/assertions/-/assertions-4.0.0.tgz" @@ -436,6 +563,13 @@ dependencies: "@solana/errors" "5.4.0" +"@solana/assertions@6.9.0", "@solana/assertions@^6.8.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/assertions/-/assertions-6.9.0.tgz#48236eb42c346612d237d43a925c6b4f981f26e3" + integrity sha512-FjWWD6e0in+HFsHMvU2zKCbyPfKtDW6iGXZZ9+Qg1QUYpO1AEObsya3F7hb9RkZKUueK4WwWAQnIuvEUp3A1uA== + dependencies: + "@solana/errors" "6.9.0" + "@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz" @@ -464,6 +598,13 @@ dependencies: "@solana/errors" "5.4.0" +"@solana/codecs-core@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-6.9.0.tgz#78bbb68107082b576526ed2d6492188b66d9e5ba" + integrity sha512-F2BmLecG/1nTtnjyD509NsEc254pxJKa2bpvotymv1lL1WfEn3zchcZ9SMIiLyL4G6J8b9F3OKIq2YSZho2AOQ== + dependencies: + "@solana/errors" "6.9.0" + "@solana/codecs-data-structures@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-4.0.0.tgz" @@ -482,6 +623,15 @@ "@solana/codecs-numbers" "5.4.0" "@solana/errors" "5.4.0" +"@solana/codecs-data-structures@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-6.9.0.tgz#8d04fd375bca5701fab0e2efd6f0455a0728cc41" + integrity sha512-f7GYtiHafvJDhqiwzUUSr/6AYSK4DCw6quPmA80NZGtkNiFa+g6LoJy2wbC0wp2dxvCwNpxf6x3ILCYRutAvvg== + dependencies: + "@solana/codecs-core" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/codecs-numbers@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-4.0.0.tgz" @@ -498,6 +648,14 @@ "@solana/codecs-core" "5.4.0" "@solana/errors" "5.4.0" +"@solana/codecs-numbers@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-6.9.0.tgz#b1847005fda2974aad7b7b1bcc212e9f1039b647" + integrity sha512-XMI0FOHV2h7yPAllxWCX8z+J1msidNjXzN1mRjH5KR6C+vfzyKa2xWHve0bNSV/bjVAhqqhc7dQCpBKuF4+ScQ== + dependencies: + "@solana/codecs-core" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/codecs-numbers@^2.1.0": version "2.3.0" resolved "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz" @@ -524,6 +682,15 @@ "@solana/codecs-numbers" "5.4.0" "@solana/errors" "5.4.0" +"@solana/codecs-strings@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-6.9.0.tgz#76329d3776296b474c4b7838681acb72b2cc03fe" + integrity sha512-PTqYQxMsmdfEEq29bV1AnALD4FjFEsSxOj1fYNqooOSTEQEpUoYEQtsd55/kBsnIKltXbvYwXYXBusm19n1sQA== + dependencies: + "@solana/codecs-core" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/codecs@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/codecs/-/codecs-4.0.0.tgz" @@ -546,6 +713,18 @@ "@solana/codecs-strings" "5.4.0" "@solana/options" "5.4.0" +"@solana/codecs@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-6.9.0.tgz#d62f524a71b48dc9e912492bc3cca17797f3eb98" + integrity sha512-oWOybKa1PTGI1D/FyrvGKralADM1jmVZC2AtgEo+4JTKG0+i1p9ZbwNY2UcJqdYsDMDaGHAx0LMAid9LDCxXTQ== + dependencies: + "@solana/codecs-core" "6.9.0" + "@solana/codecs-data-structures" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/fixed-points" "6.9.0" + "@solana/options" "6.9.0" + "@solana/errors@2.3.0": version "2.3.0" resolved "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz" @@ -570,6 +749,14 @@ chalk "5.6.2" commander "14.0.2" +"@solana/errors@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-6.9.0.tgz#9652690e89e9572a0b27bb18950a7a48136cb7e2" + integrity sha512-7i+b07KMnkbHvFlz7uWade3jvyc22UmVm8o9taxPK8YV3JNM/NkS8oQFvMac2MIaLPAlEs7I8MHyVLUal1yY4g== + dependencies: + chalk "5.6.2" + commander "14.0.3" + "@solana/fast-stable-stringify@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/fast-stable-stringify/-/fast-stable-stringify-4.0.0.tgz" @@ -580,6 +767,19 @@ resolved "https://registry.npmjs.org/@solana/fast-stable-stringify/-/fast-stable-stringify-5.4.0.tgz" integrity sha512-KB7PUL7yalPvbWCezzyUDVRDp39eHLPH7OJ6S8VFT8YNIFUANwwj5ctui50Fim76kvSYDdYJOclXV45O2gfQ8Q== +"@solana/fast-stable-stringify@6.9.0", "@solana/fast-stable-stringify@^6.8.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/fast-stable-stringify/-/fast-stable-stringify-6.9.0.tgz#d21d3f505c1f849277ed1e40998e16456e4acd98" + integrity sha512-l14zGVsURbT5Aox/kLFQywqV4VaE9/j3h2EvCu9oULVPMwzQB6yezJb1/KyiDwhm/RscooPd0gFQFIKEGQbayw== + +"@solana/fixed-points@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/fixed-points/-/fixed-points-6.9.0.tgz#9db86eeb54cb14d1a45d8b512d4ce982fccdc90d" + integrity sha512-0K7mbYC4jdAZFlXqXjpNanmEyZxk7K9NtXDLc1zuhGuxwH8J9guvohwdw2V7TQ9bfjCYsprY3Tp2kUVQpECGmA== + dependencies: + "@solana/codecs-core" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/functional@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/functional/-/functional-4.0.0.tgz" @@ -590,6 +790,11 @@ resolved "https://registry.npmjs.org/@solana/functional/-/functional-5.4.0.tgz" integrity sha512-32ghHO0bg6GgX/7++0/7Lps6RgeXD2gKF1okiuyEGuVfKENIapgaQdcGhUwb3q6D6fv6MRAVn/Yve4jopGVNMQ== +"@solana/functional@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/functional/-/functional-6.9.0.tgz#305408d892dd7ff0d575b29519fee8a3246a683c" + integrity sha512-sgNHOaIjETZZuziZdlwPsU5EjBVj5M0dUbwrSQTTNZe0SxX3pQ1QFVcs5KyvdS7AQcpBVdLjx4CfQjdKXk52GA== + "@solana/instruction-plans@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/instruction-plans/-/instruction-plans-4.0.0.tgz" @@ -613,6 +818,18 @@ "@solana/transaction-messages" "5.4.0" "@solana/transactions" "5.4.0" +"@solana/instruction-plans@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/instruction-plans/-/instruction-plans-6.9.0.tgz#79203fad8acc25fd02e61b324fa6764a30589d34" + integrity sha512-SxTSOetEKD+WPzvDuYRsP1+KkwUp8KqL1n7oFx9ThxjyfEY0ly0i9KdbvX5yYVDOA2TSwrltgdu14y/Pf6y3Cg== + dependencies: + "@solana/errors" "6.9.0" + "@solana/instructions" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/promises" "6.9.0" + "@solana/transaction-messages" "6.9.0" + "@solana/transactions" "6.9.0" + "@solana/instructions@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/instructions/-/instructions-4.0.0.tgz" @@ -629,6 +846,14 @@ "@solana/codecs-core" "5.4.0" "@solana/errors" "5.4.0" +"@solana/instructions@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/instructions/-/instructions-6.9.0.tgz#555594e9115f85c377450ecd6c5a209668263054" + integrity sha512-LZfJx3bGdUSbGaswoOEPHygticqkCg3TusRczPJXyCmKhoQzPCcGQQ99qMzP7Wg8pEV5tWA5t7tycf8E237ydg== + dependencies: + "@solana/codecs-core" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/keys@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/keys/-/keys-4.0.0.tgz" @@ -651,6 +876,18 @@ "@solana/errors" "5.4.0" "@solana/nominal-types" "5.4.0" +"@solana/keys@6.9.0", "@solana/keys@^6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/keys/-/keys-6.9.0.tgz#7e6b1fa17d5f93e9df6324c67bd79134ba5d4dc1" + integrity sha512-1g2QARiqSjNqT0EIqLDLQ5vRm7hCsbqgFwFAp5GsMV/8BTYT8s1Ct2wLHDZiJ4eAX6beTHVf8LbOBfVejtn3oQ== + dependencies: + "@solana/assertions" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/nominal-types" "6.9.0" + "@solana/promises" "6.9.0" + "@solana/kit@^4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/kit/-/kit-4.0.0.tgz" @@ -704,6 +941,37 @@ "@solana/transaction-messages" "5.4.0" "@solana/transactions" "5.4.0" +"@solana/kit@^6.8.0", "@solana/kit@^6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/kit/-/kit-6.9.0.tgz#1aa99d8fc3507f185d6233be9051eff172770dba" + integrity sha512-k7BRz7Akfv8wiRtlCR/xUyDLfuMfYMelMR1+AC5KgwaRRJReDF0BucMLNN1In7WoI+KuWwr1OKv4na/oKpyeAQ== + dependencies: + "@solana/accounts" "6.9.0" + "@solana/addresses" "6.9.0" + "@solana/codecs" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/functional" "6.9.0" + "@solana/instruction-plans" "6.9.0" + "@solana/instructions" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/offchain-messages" "6.9.0" + "@solana/plugin-core" "6.9.0" + "@solana/plugin-interfaces" "6.9.0" + "@solana/program-client-core" "6.9.0" + "@solana/programs" "6.9.0" + "@solana/rpc" "6.9.0" + "@solana/rpc-api" "6.9.0" + "@solana/rpc-parsed-types" "6.9.0" + "@solana/rpc-spec-types" "6.9.0" + "@solana/rpc-subscriptions" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/signers" "6.9.0" + "@solana/subscribable" "6.9.0" + "@solana/sysvars" "6.9.0" + "@solana/transaction-confirmation" "6.9.0" + "@solana/transaction-messages" "6.9.0" + "@solana/transactions" "6.9.0" + "@solana/nominal-types@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/nominal-types/-/nominal-types-4.0.0.tgz" @@ -714,6 +982,11 @@ resolved "https://registry.npmjs.org/@solana/nominal-types/-/nominal-types-5.4.0.tgz" integrity sha512-h4dTRQwTerzksE5B1WmObN6TvLo8dYUd7kpUUynGd8WJjK0zz3zkDhq0MkA3aF6A1C2C82BSGqSsN9EN0E6Exg== +"@solana/nominal-types@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/nominal-types/-/nominal-types-6.9.0.tgz#88f4fc7f20b5c41abc77deb93a076b6e2db99021" + integrity sha512-ouhrnY7a6nsLXRGcariwcmHDdXroCNqOuzwtdjKt2c8e8Drwao9yxPH2VoViNgpq8IGNJeQMEI1TVnoJZRn0gw== + "@solana/offchain-messages@5.4.0": version "5.4.0" resolved "https://registry.npmjs.org/@solana/offchain-messages/-/offchain-messages-5.4.0.tgz" @@ -728,6 +1001,20 @@ "@solana/keys" "5.4.0" "@solana/nominal-types" "5.4.0" +"@solana/offchain-messages@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/offchain-messages/-/offchain-messages-6.9.0.tgz#6f85619fac4a210b549613ab6d73f5445b087dc7" + integrity sha512-qK3tqRPb+E0kmTz5qFXZbEdF4pyzfOWRZjyVESHVGemDDeGzZ1SV3zAxcA6HBCnv4wCBnlyaDPw8t+5sryNMAw== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-data-structures" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/nominal-types" "6.9.0" + "@solana/options@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/options/-/options-4.0.0.tgz" @@ -750,11 +1037,55 @@ "@solana/codecs-strings" "5.4.0" "@solana/errors" "5.4.0" +"@solana/options@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-6.9.0.tgz#1f5df9cb4610cf1bf7a99a811101000dadaa44a2" + integrity sha512-H5ZRWNzzLMwHU/fRU9aVx+3TaMN4gDNCUYxsZxq0h7mqiwxFy6mpy95xPsfdldthCHDYtYnUTxe2sBatGbNHig== + dependencies: + "@solana/codecs-core" "6.9.0" + "@solana/codecs-data-structures" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/plugin-core@5.4.0": version "5.4.0" resolved "https://registry.npmjs.org/@solana/plugin-core/-/plugin-core-5.4.0.tgz" integrity sha512-e1aLGLldW7C5113qTOjFYSGq95a4QC9TWb77iq+8l6h085DcNj+195r4E2zKaINrevQjQTwvxo00oUyHP7hSJA== +"@solana/plugin-core@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-core/-/plugin-core-6.9.0.tgz#ab9343204146703e394a63ab9c358e2b653a6b47" + integrity sha512-KslLSnzY8zbGZibEBVMVUm2ZS8T2xf+cut7F65VjWPoWNAxU+p7933wsMz/az6CF7b65RI7iU3HhCr5/5QF50w== + +"@solana/plugin-interfaces@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/plugin-interfaces/-/plugin-interfaces-6.9.0.tgz#7d96977ed6708ba319d48e9cc1eeb8d22419cbd8" + integrity sha512-Qj4sk9thkM1UgnFXvWIoezd/CbqpX/2jigLBDsMB5Ed/gmFlkBSTL127LFDSY3OtzBpXl4hROs+Zqv+5xqtguA== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/instruction-plans" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/rpc-spec" "6.9.0" + "@solana/rpc-subscriptions-spec" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/signers" "6.9.0" + +"@solana/program-client-core@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/program-client-core/-/program-client-core-6.9.0.tgz#02bc7bfc619e38162610dc18785d73e7e4d599e7" + integrity sha512-+iUnsddhs72QoBJoUO+/yHUXoBvYWa1sGCBRJk35zeg8j7ZXEwRkk6eX0VOrUPxhEpQbYJsIOCrIYApNIt8RFw== + dependencies: + "@solana/accounts" "6.9.0" + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/instruction-plans" "6.9.0" + "@solana/instructions" "6.9.0" + "@solana/plugin-interfaces" "6.9.0" + "@solana/rpc-api" "6.9.0" + "@solana/signers" "6.9.0" + "@solana/programs@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/programs/-/programs-4.0.0.tgz" @@ -771,6 +1102,14 @@ "@solana/addresses" "5.4.0" "@solana/errors" "5.4.0" +"@solana/programs@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/programs/-/programs-6.9.0.tgz#17c0b9c1a5ef0bb513d77f1efe2d201845f45a7c" + integrity sha512-L9LAnQtfFFcCDLcbbnxhUtgAmu/kS4aRmrVncdnX5CFyQshlpo0/Qhrq3UA7vnhute4gjYV4pFT+64onH5qGEQ== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/promises@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/promises/-/promises-4.0.0.tgz" @@ -781,6 +1120,11 @@ resolved "https://registry.npmjs.org/@solana/promises/-/promises-5.4.0.tgz" integrity sha512-23mfgNBbuP6Q+4vsixGy+GkyZ7wBLrxTBNXqrG/XWrJhjuuSkjEUGaK4Fx5o7LIrBi6KGqPknKxmTlvqnJhy2Q== +"@solana/promises@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/promises/-/promises-6.9.0.tgz#8e78ee54a285a24ca455f84cb14494ef49b3f856" + integrity sha512-227PlXRi6KZX4ODYTkJitr9InSa79NTquI72slay4gzxO9VmMepgvYdMAX6kawdN5pt+VzaklKhNhWXk50Pi9g== + "@solana/rpc-api@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-api/-/rpc-api-4.0.0.tgz" @@ -815,6 +1159,23 @@ "@solana/transaction-messages" "5.4.0" "@solana/transactions" "5.4.0" +"@solana/rpc-api@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-api/-/rpc-api-6.9.0.tgz#54ea5efa5d7b4d79a8790e2e48b5baa96de5da08" + integrity sha512-3KhXS6A1ie6GqTywW/KEMSXJ1VJEU66fxjhuiiqPILuJstP7kex3ycr3H6DirKydUsy6gaKaPN43rE+LfyS7OA== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/rpc-parsed-types" "6.9.0" + "@solana/rpc-spec" "6.9.0" + "@solana/rpc-transformers" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/transaction-messages" "6.9.0" + "@solana/transactions" "6.9.0" + "@solana/rpc-parsed-types@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-parsed-types/-/rpc-parsed-types-4.0.0.tgz" @@ -825,6 +1186,11 @@ resolved "https://registry.npmjs.org/@solana/rpc-parsed-types/-/rpc-parsed-types-5.4.0.tgz" integrity sha512-IRQuSzx+Sj1A3XGiIzguNZlMjMMybXTTjV/RnTwBgnJQPd/H4us4pfPD94r+/yolWDVfGjJRm04hnKVMjJU8Rg== +"@solana/rpc-parsed-types@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-parsed-types/-/rpc-parsed-types-6.9.0.tgz#84288f351fd5d26d2761eb2da98acf61ce57c752" + integrity sha512-6ThH8izY+DWDyrVOOlS40vTcFjwjCinjfqnId7zhRk8OxhkfHQ/iEj+OnGwD4Yhe8pGdVa7GNVYlrQgQgzQ3eQ== + "@solana/rpc-spec-types@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-spec-types/-/rpc-spec-types-4.0.0.tgz" @@ -835,6 +1201,11 @@ resolved "https://registry.npmjs.org/@solana/rpc-spec-types/-/rpc-spec-types-5.4.0.tgz" integrity sha512-JU9hC5/iyJx30ym17gpoXDtT9rCbO6hLpB6UDhSFFoNeirxtTVb4OdnKtsjJDfXAiXsynJRsZRwfj3vGxRLgQw== +"@solana/rpc-spec-types@6.9.0", "@solana/rpc-spec-types@^6.8.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec-types/-/rpc-spec-types-6.9.0.tgz#a6c88e9a8ef04b8c3b48c450b200defaf50b7031" + integrity sha512-A4fY1JRrcKqX3EfttO4Q8L97nGPqdjfekAV0eDyxN5nu9ngf5p7GKenkl7AYDoHLNr6ZX/C96cRADxXjsRJ0iA== + "@solana/rpc-spec@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-spec/-/rpc-spec-4.0.0.tgz" @@ -851,6 +1222,14 @@ "@solana/errors" "5.4.0" "@solana/rpc-spec-types" "5.4.0" +"@solana/rpc-spec@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-spec/-/rpc-spec-6.9.0.tgz#8f21e023ec5fdf162e77fa3ecff00c1072d7aa0e" + integrity sha512-3yHRoChc0IpsJbUq0/94l+ar3t9U3Ax58W0HON7eyYe7zFP10UAxpkHn7DPch9DeALyuGph8kVnvl+kXRgJlGg== + dependencies: + "@solana/errors" "6.9.0" + "@solana/rpc-spec-types" "6.9.0" + "@solana/rpc-subscriptions-api@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-4.0.0.tgz" @@ -877,6 +1256,19 @@ "@solana/transaction-messages" "5.4.0" "@solana/transactions" "5.4.0" +"@solana/rpc-subscriptions-api@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-6.9.0.tgz#f63111f92f96ed98fd0c58be4cad94cf7a781b53" + integrity sha512-UA/rPQeNx6zQMUFcS8PPPuB4vzUOtSzIY/igMH0DRoP020NyES2GguIb7Zo7sqDNi4n0gkQRhoW4dPVotcNKdA== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/rpc-subscriptions-spec" "6.9.0" + "@solana/rpc-transformers" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/transaction-messages" "6.9.0" + "@solana/transactions" "6.9.0" + "@solana/rpc-subscriptions-channel-websocket@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-4.0.0.tgz" @@ -898,6 +1290,17 @@ "@solana/subscribable" "5.4.0" ws "^8.19.0" +"@solana/rpc-subscriptions-channel-websocket@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-6.9.0.tgz#c3646d93f65098bc832e0a9f58c03e8f7423ccf7" + integrity sha512-kT8Yne9HjJD2gooaOFNSyKrvaIfOy2GR0Ymv8OfecBCwFStdz+SPo5eYXq8ZWoZbr5E/MMpHgqsHBanqa2Ffyg== + dependencies: + "@solana/errors" "6.9.0" + "@solana/functional" "6.9.0" + "@solana/rpc-subscriptions-spec" "6.9.0" + "@solana/subscribable" "6.9.0" + ws "^8.19.0" + "@solana/rpc-subscriptions-spec@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-4.0.0.tgz" @@ -918,6 +1321,16 @@ "@solana/rpc-spec-types" "5.4.0" "@solana/subscribable" "5.4.0" +"@solana/rpc-subscriptions-spec@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-6.9.0.tgz#2790efd94e784f704d5a6e58b838f2f6a0627286" + integrity sha512-DbaG67s99vRZQxFMK80UQ7DEKkRJK6JEZeYg/U5UttD6n7ax/vct7qopxGnrt4RCkaaac2fU8Sr+fcnvWQweUg== + dependencies: + "@solana/errors" "6.9.0" + "@solana/promises" "6.9.0" + "@solana/rpc-spec-types" "6.9.0" + "@solana/subscribable" "6.9.0" + "@solana/rpc-subscriptions@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-subscriptions/-/rpc-subscriptions-4.0.0.tgz" @@ -952,6 +1365,23 @@ "@solana/rpc-types" "5.4.0" "@solana/subscribable" "5.4.0" +"@solana/rpc-subscriptions@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-subscriptions/-/rpc-subscriptions-6.9.0.tgz#857f0ace838e14cef7bf782860c5fab4fbf5de61" + integrity sha512-IMctZQaMxzvRACQ6ooW98lP+7tVoUJnRgOZtkAdzgBizldQAYPIKd3MulP0jbQPCMfdPsa2Hs0NBcUwfgonq3w== + dependencies: + "@solana/errors" "6.9.0" + "@solana/fast-stable-stringify" "6.9.0" + "@solana/functional" "6.9.0" + "@solana/promises" "6.9.0" + "@solana/rpc-spec-types" "6.9.0" + "@solana/rpc-subscriptions-api" "6.9.0" + "@solana/rpc-subscriptions-channel-websocket" "6.9.0" + "@solana/rpc-subscriptions-spec" "6.9.0" + "@solana/rpc-transformers" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/subscribable" "6.9.0" + "@solana/rpc-transformers@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-transformers/-/rpc-transformers-4.0.0.tgz" @@ -974,6 +1404,17 @@ "@solana/rpc-spec-types" "5.4.0" "@solana/rpc-types" "5.4.0" +"@solana/rpc-transformers@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transformers/-/rpc-transformers-6.9.0.tgz#ddcbad4b8504b5c3a14c3fdde31053cb95749bbe" + integrity sha512-dg4LK2wEBpaY+KRk/SJIkYvrvjdsc1AwD4bkmGY4Fp7EwVlvwBQShAQn78Qi4IP0WQ/0n9ncFyUxgcB1Y01ZuQ== + dependencies: + "@solana/errors" "6.9.0" + "@solana/functional" "6.9.0" + "@solana/nominal-types" "6.9.0" + "@solana/rpc-spec-types" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/rpc-transport-http@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-transport-http/-/rpc-transport-http-4.0.0.tgz" @@ -994,6 +1435,16 @@ "@solana/rpc-spec-types" "5.4.0" undici-types "^7.18.2" +"@solana/rpc-transport-http@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-transport-http/-/rpc-transport-http-6.9.0.tgz#e5d1559df421835d33f14bf4156020a634344d9c" + integrity sha512-4gy30fWJcS6jrcXCoP/optFpGJ/gD9xdkE8wDbe1Ys/Y+e4XjyBt45xtTnbdmMdukvdRX+oXS3zgUIYoagpNzQ== + dependencies: + "@solana/errors" "6.9.0" + "@solana/rpc-spec" "6.9.0" + "@solana/rpc-spec-types" "6.9.0" + undici-types "^8.2.0" + "@solana/rpc-types@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc-types/-/rpc-types-4.0.0.tgz" @@ -1018,6 +1469,19 @@ "@solana/errors" "5.4.0" "@solana/nominal-types" "5.4.0" +"@solana/rpc-types@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc-types/-/rpc-types-6.9.0.tgz#73e6d48cbdbeadcd0af9106ddd00922f57c1ab87" + integrity sha512-iFhPzZK3qiQ1lhfNTNBTI7BIs5PfWZSgRLD3enKm8ZAQggzvUklfO3KPh47jVsc/Jsr1UGPH8M3o3m17qjO1Cg== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/fixed-points" "6.9.0" + "@solana/nominal-types" "6.9.0" + "@solana/rpc@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/rpc/-/rpc-4.0.0.tgz" @@ -1048,6 +1512,21 @@ "@solana/rpc-transport-http" "5.4.0" "@solana/rpc-types" "5.4.0" +"@solana/rpc@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/rpc/-/rpc-6.9.0.tgz#ba008e7b1f894b3d94ea76c54be12eb09c58e788" + integrity sha512-ny1Kt20+oq3xZErNA56+Magmb2JKYfQgHwZTsBmHKVl/9mBpv1y1+ygV+KNiiX/wWXWstLbdIo1jgPwZPbU2Vg== + dependencies: + "@solana/errors" "6.9.0" + "@solana/fast-stable-stringify" "6.9.0" + "@solana/functional" "6.9.0" + "@solana/rpc-api" "6.9.0" + "@solana/rpc-spec" "6.9.0" + "@solana/rpc-spec-types" "6.9.0" + "@solana/rpc-transformers" "6.9.0" + "@solana/rpc-transport-http" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/signers@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/signers/-/signers-4.0.0.tgz" @@ -1077,6 +1556,21 @@ "@solana/transaction-messages" "5.4.0" "@solana/transactions" "5.4.0" +"@solana/signers@6.9.0", "@solana/signers@^6.8.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/signers/-/signers-6.9.0.tgz#c3f7a7415ef9615e45b2d3010543b914bc7c12b4" + integrity sha512-x7WyoRm9IORMqeSqNivZgyY+RERPkmqWxpINPD13kUH+oaZzonORIgxk2Lz+u5iPRXiJPkdRPrQ4FoFWv8i6kQ== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/instructions" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/nominal-types" "6.9.0" + "@solana/offchain-messages" "6.9.0" + "@solana/transaction-messages" "6.9.0" + "@solana/transactions" "6.9.0" + "@solana/subscribable@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/subscribable/-/subscribable-4.0.0.tgz" @@ -1091,6 +1585,13 @@ dependencies: "@solana/errors" "5.4.0" +"@solana/subscribable@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/subscribable/-/subscribable-6.9.0.tgz#781c9c94ce00b18ed104b07091dfe7d506cdae42" + integrity sha512-YV0/BrJNfepf10CTfLwD7kRY1kkELDHd+BbHJZhBeiuiXTY3xQTvvx1RFs3NtfFCcTHG25Uh8NpRacQJnxSSIQ== + dependencies: + "@solana/errors" "6.9.0" + "@solana/sysvars@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/sysvars/-/sysvars-4.0.0.tgz" @@ -1111,6 +1612,18 @@ "@solana/errors" "5.4.0" "@solana/rpc-types" "5.4.0" +"@solana/sysvars@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/sysvars/-/sysvars-6.9.0.tgz#5a5941245a14a1cbe231b0be07c93743f5bcae66" + integrity sha512-e0e+QKr/th9t/O2N1oUoJmcodLghzAtWKUlGb1zyYub0/WJrPImnKqJqp/gDP4tK98mJxopPMcprCeHk4B+TQg== + dependencies: + "@solana/accounts" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-data-structures" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/transaction-confirmation@4.0.0", "@solana/transaction-confirmation@^4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/transaction-confirmation/-/transaction-confirmation-4.0.0.tgz" @@ -1143,6 +1656,22 @@ "@solana/transaction-messages" "5.4.0" "@solana/transactions" "5.4.0" +"@solana/transaction-confirmation@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-confirmation/-/transaction-confirmation-6.9.0.tgz#17bac847e9f79a7aaf4638f8988257a7a55cdc47" + integrity sha512-fzYCOih7hhtBzzNSkAnxMjeFeQ8U7e27k9i0RsgQc3/e3OCynF5HoIVNhhqZbwfIBKiaD4ginJR6slRnfqO32Q== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/promises" "6.9.0" + "@solana/rpc" "6.9.0" + "@solana/rpc-subscriptions" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/transaction-messages" "6.9.0" + "@solana/transactions" "6.9.0" + "@solana/transaction-messages@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/transaction-messages/-/transaction-messages-4.0.0.tgz" @@ -1173,6 +1702,21 @@ "@solana/nominal-types" "5.4.0" "@solana/rpc-types" "5.4.0" +"@solana/transaction-messages@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/transaction-messages/-/transaction-messages-6.9.0.tgz#8977ee3b6fea1d011d78a34d3b3867838f4fd485" + integrity sha512-OWpryt0w6SHlwHx12Vd1wvx2QwSGBXAIUEHTCtkctcM3AaZRy5cIl7CAq9iD5PgahUsaOyRLBV0zlCJcC2JrJA== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-data-structures" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/functional" "6.9.0" + "@solana/instructions" "6.9.0" + "@solana/nominal-types" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/transactions@4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/@solana/transactions/-/transactions-4.0.0.tgz" @@ -1209,7 +1753,42 @@ "@solana/rpc-types" "5.4.0" "@solana/transaction-messages" "5.4.0" -"@solana/web3.js@^1.93.0", "@solana/web3.js@^1.98.0": +"@solana/transactions@6.9.0": + version "6.9.0" + resolved "https://registry.yarnpkg.com/@solana/transactions/-/transactions-6.9.0.tgz#5161cad07765392feaff780833820c15056c4ca8" + integrity sha512-uKPzLwHbjwChfVl82he17ntkh02PfgnMMhN7uOAC+VbkIt1O+EEw8sX87gi6kdG/EV+QBDQXm9PLAo5W0tYylw== + dependencies: + "@solana/addresses" "6.9.0" + "@solana/codecs-core" "6.9.0" + "@solana/codecs-data-structures" "6.9.0" + "@solana/codecs-numbers" "6.9.0" + "@solana/codecs-strings" "6.9.0" + "@solana/errors" "6.9.0" + "@solana/functional" "6.9.0" + "@solana/instructions" "6.9.0" + "@solana/keys" "6.9.0" + "@solana/nominal-types" "6.9.0" + "@solana/rpc-types" "6.9.0" + "@solana/transaction-messages" "6.9.0" + +"@solana/web3.js@3.0.0-rc.1", "@solana/web3.js@^3.0.0-rc.1": + version "3.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-3.0.0-rc.1.tgz#90147c6f0b164a402d148d852ebeb01b7424c74a" + integrity sha512-bTP4hm6HRSd4Nqa2XoHDYLA1p0J4iPbPEXwMMTrYaRoj+ksIm9QyCEJotzTtGgM/iebTButc+QLSugQbwenWRg== + dependencies: + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana-program/address-lookup-table" "^0.11.0" + "@solana-program/compute-budget" "^0.15.0" + "@solana-program/stake" "^0.6.1" + "@solana-program/system" "^0.12.0" + "@solana/assertions" "^6.8.0" + "@solana/fast-stable-stringify" "^6.8.0" + "@solana/kit" "^6.8.0" + "@solana/rpc-spec-types" "^6.8.0" + "@solana/signers" "^6.8.0" + +"@solana/web3.js@^1.69.0", "@solana/web3.js@^1.93.0", "@solana/web3.js@^1.98.0": version "1.98.4" resolved "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.98.4.tgz" integrity sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw== @@ -1428,16 +2007,16 @@ bn.js@^4.0.0, bn.js@^4.11.9: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.3.tgz#2cc2c679188eb35b006f2d0d4710bed8437a769e" integrity sha512-fGTi3gxV/23FTYdAoUtLYp6qySe2KE3teyZitipKNRuVYcBkoP/bB3guXN/XVKUe9mxCHXnc9C4ocyz8OmgN0g== +bn.js@^5.1.2, bn.js@^5.2.2: + version "5.2.3" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" + integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== + bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.2" resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz" integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== -bn.js@^5.2.2: - version "5.2.3" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.3.tgz#16a9e409616b23fef3ccbedb8d42f13bff80295e" - integrity sha512-EAcmnPkxpntVL+DS7bO1zhcZNvCkxqtkd0ZY53h06GNQ3DEkkGZ/gKgmDv6DdZQGj9BgfSPKtJJ7Dp1GPP8f7w== - borsh@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz" @@ -1466,6 +2045,11 @@ bs58@^6.0.0: dependencies: base-x "^5.0.0" +buffer-layout@^1.2.0, buffer-layout@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" + integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== + buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: version "6.0.3" resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" @@ -1486,6 +2070,11 @@ cac@^6.7.14: resolved "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz" integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== +camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + chai@^4.3.10: version "4.5.0" resolved "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz" @@ -1521,6 +2110,11 @@ commander@14.0.2, commander@^14.0.0: resolved "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz" integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== +commander@14.0.3: + version "14.0.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-14.0.3.tgz#425d79b48f9af82fcd9e4fc1ea8af6c5ec07bbc2" + integrity sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw== + commander@^2.20.3: version "2.20.3" resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz" @@ -1536,6 +2130,13 @@ create-require@^1.1.0: resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cross-fetch@^3.1.5: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.2.0.tgz#34e9192f53bc757d6614304d9e5e6fb4edb782e3" + integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== + dependencies: + node-fetch "^2.7.0" + debug@^4.3.4: version "4.4.3" resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz" @@ -1624,6 +2225,11 @@ esbuild@^0.21.3: "@esbuild/win32-ia32" "0.21.5" "@esbuild/win32-x64" "0.21.5" +eventemitter3@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + eventemitter3@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz" @@ -1711,6 +2317,52 @@ json-stringify-safe@^5.0.1: resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== +litesvm-darwin-arm64@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/litesvm-darwin-arm64/-/litesvm-darwin-arm64-1.1.0.tgz#28e0bbc6f4076cf4d2181d48abb718e911887102" + integrity sha512-SjcivEOOjBk65U6TgIeMJ7CCnHNKQXHx0qf6K6GIFZC1aHTg7ePrEi+WhAQD6VUBMdDHIMCVKC/uXnXPi6EKIw== + +litesvm-darwin-x64@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/litesvm-darwin-x64/-/litesvm-darwin-x64-1.1.0.tgz#69740b0aecbb062d0c745fab2173686f463423f0" + integrity sha512-hTs+eZ9sHVZXhjggpnn/8A/E+Nt/E6Gf8E2ejdWWL9bBQKmq1Y0VcrDpORbIvqqRpTLHXqbxCuH1wQB2C8frJg== + +litesvm-linux-arm64-gnu@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/litesvm-linux-arm64-gnu/-/litesvm-linux-arm64-gnu-1.1.0.tgz#b02cdbc2bee8899d9a0c64b098815fb90aa3aaf7" + integrity sha512-6EjJ6+E+1SUXdJmCyeyhvlKhNncccqQNH241+P8d4E72rE3zuFxeCtLHhusCQk2p/Xau3dBI0qTLogZ1F1IGSA== + +litesvm-linux-arm64-musl@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/litesvm-linux-arm64-musl/-/litesvm-linux-arm64-musl-1.1.0.tgz#4a853aba08fc77d41bcf9f1869a15c183a586e18" + integrity sha512-mNuBOfX6GnDFT2i/kYPWud7eZGe57dDP0u4lwiSTQPRE0BxQbGZT2aEwX8LTwbonhbc6HSt50LamaZZzK4h4ig== + +litesvm-linux-x64-gnu@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/litesvm-linux-x64-gnu/-/litesvm-linux-x64-gnu-1.1.0.tgz#369ab59d9eb552a575b4365a8b75db2db52ce19e" + integrity sha512-Ot8RgUVlMKzKJi2nVDxaHVo0hjB5vtYTomYNIf26mIA32DOy0+dQfwOqUhynhvvSMxN3VFec3r/OtCnk6lRBrw== + +litesvm-linux-x64-musl@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/litesvm-linux-x64-musl/-/litesvm-linux-x64-musl-1.1.0.tgz#d25c25b85440ba817e46ffa19b0e3ce029f85f9a" + integrity sha512-6kmneOIsTBSActELRTwxIYVJOVaLm3P6uwlmkqc9BUtDAQ7bRdRmwREWSbM8XxKBGw2LjiUfgRJ5WJGYo8fUFg== + +litesvm@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/litesvm/-/litesvm-1.1.0.tgz#2f3eefa2e5f061fd4e24c6a391a12cea9b25d723" + integrity sha512-UOlMIEst50gSUyPnC2pGjGLygH8iC/GOqnNXQIHc8iGwD76m44ReeA/0h0vu/AIieZ2zG5/ERLxFV0kdNxkNsA== + dependencies: + "@solana-program/system" "^0.12.0" + "@solana-program/token" "^0.13.0" + "@solana/kit" "^6.9.0" + optionalDependencies: + litesvm-darwin-arm64 "1.1.0" + litesvm-darwin-x64 "1.1.0" + litesvm-linux-arm64-gnu "1.1.0" + litesvm-linux-arm64-musl "1.1.0" + litesvm-linux-x64-gnu "1.1.0" + litesvm-linux-x64-musl "1.1.0" + local-pkg@^0.4.3: version "0.4.3" resolved "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz" @@ -1784,6 +2436,11 @@ p-limit@^4.0.0: dependencies: yocto-queue "^1.0.0" +pako@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== + pathe@^1.1.1: version "1.1.2" resolved "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz" @@ -1947,11 +2604,20 @@ strip-literal@^1.0.1: dependencies: acorn "^8.10.0" +superstruct@^0.15.4: + version "0.15.5" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" + integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== + superstruct@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/superstruct/-/superstruct-2.0.2.tgz" integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== +"test-utils@link:../test-utils": + version "0.0.0" + uid "" + text-encoding-utf-8@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz" @@ -1972,6 +2638,11 @@ tinyspy@^2.1.1: resolved "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz" integrity sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A== +toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + tr46@~0.0.3: version "0.0.3" resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" @@ -2026,6 +2697,11 @@ undici-types@^7.16.0, undici-types@^7.18.2: resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz" integrity sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w== +undici-types@^8.2.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-8.3.0.tgz#44e9fc9f3244648cdea35e4f9bb2d681e9410809" + integrity sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ== + undici-types@~6.21.0: version "6.21.0" resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz" diff --git a/test-locally.sh b/test-locally.sh index ccd90435..61b57ec7 100755 --- a/test-locally.sh +++ b/test-locally.sh @@ -285,10 +285,69 @@ run_test() { fi echo "========================================" echo "" + + if [ "$test_failed" = true ]; then + echo "Stopping after first failure." + exit 1 + fi +} + +run_magicsvm_test() { + local test_name="$1 (MagicSVM)" + local test_path=$2 + local init_command=$3 + local test_log="/tmp/test_${1}.log" + + if [ -n "$TEST_FILTER" ] && [[ "$test_name" != *"$TEST_FILTER"* ]]; then + return + fi + + ((TEST_COUNT++)) + + echo "" + echo "========================================" + echo "Testing: $TEST_COUNT. $test_name" + echo "========================================" + echo "Runtime: MagicSVM" + echo "" + + ( cd "$test_path" && FORCE_COLOR=1 CARGO_TERM_COLOR=always NO_COLOR= eval "$init_command" && yarn test ) > "$test_log" 2>&1 + local test_exit_code=$? + + local test_failed=false + if [ $test_exit_code -ne 0 ] || grep -q "[0-9] failing\|error\[\|could not compile" "$test_log"; then + test_failed=true + fi + + if [ "$test_failed" = true ]; then + cat "$test_log" + FAILED_TESTS+=("$test_name") + FAILED_TESTS_NAMES+=("$test_name") + FAILED_TESTS_ERRORS+=("(exit code $test_exit_code — see $test_log for full output)") + else + echo " ✓ Testing" + PASSED_TESTS+=("$test_name") + fi + + echo "" + if [ "$test_failed" = true ]; then + echo "Result: ✗ FAILED" + else + echo "Result: ✓ PASSED" + fi + echo "========================================" + echo "" + + if [ "$test_failed" = true ]; then + echo "Stopping after first failure." + exit 1 + fi } # Cleanup function cleanup() { + local exit_code=$? + # Disable trap to prevent recursion trap - EXIT INT TERM @@ -328,12 +387,18 @@ cleanup() { echo "✗ Failed to stop" fi - exit 0 + exit $exit_code } # Set up trap to catch INT (Ctrl+C), TERM, and EXIT trap cleanup EXIT INT TERM +echo "Installing dependencies..." +if ! (cd test-utils && yarn install); then + echo "ERROR: failed to install dependencies in test-utils" + exit 1 +fi + echo "Starting validators..." # Configure Solana @@ -370,19 +435,30 @@ if [ -z "$EPHEMERAL_VALIDATOR_BIN" ]; then fi echo " Binary: $EPHEMERAL_VALIDATOR_BIN" echo " Version: $("$EPHEMERAL_VALIDATOR_BIN" --version 2>&1 | head -1 || echo unknown)" -RUST_LOG=info "$EPHEMERAL_VALIDATOR_BIN" \ - --lifecycle ephemeral \ - --remotes http://localhost:8899 \ - --listen 127.0.0.1:7799 > ./ephemeral-validator.log 2>&1 < /dev/null & +RUST_LOG=info EPHEMERAL_VALIDATOR_BIN="$EPHEMERAL_VALIDATOR_BIN" python3 -c ' +import os +import pty +import sys + +binary = os.environ["EPHEMERAL_VALIDATOR_BIN"] +status = pty.spawn([ + binary, + "--lifecycle", "ephemeral", + "--remotes", "http://127.0.0.1:8899", + "--remotes", "ws://127.0.0.1:8900", + "-l", "127.0.0.1:7799", + "--reset", +]) +sys.exit(os.WEXITSTATUS(status) if os.WIFEXITED(status) else 128 + os.WTERMSIG(status)) +' > ./ephemeral-validator.log 2>&1 < /dev/null & EPHEMERAL_PID=$! # Wait for ephemeral-validator RPC to come up — without this, fast tests fire # their first ER call before the server is listening and hit "fetch failed". -# Using bash's /dev/tcp (no external process; doesn't touch tty). echo "Waiting for ephemeral-validator..." for i in {1..60}; do - if (echo > /dev/tcp/127.0.0.1/7799) 2>/dev/null; then + if curl -s --max-time 1 http://127.0.0.1:7799/health >/dev/null 2>&1; then sleep 1 # let the RPC handler finish wiring up after the socket binds break fi @@ -454,6 +530,12 @@ export ROUTER_ENDPOINT=$EPHEMERAL_PROVIDER_ENDPOINT export ROUTER_WS_ENDPOINT=$EPHEMERAL_WS_ENDPOINT export VALIDATOR=mAGicPQYBMvcYveUZA5F5UNNwyHvfYh5xkLS2Fr1mev +# ------------------------------------------------------------ +# MagicSVM tests +# ------------------------------------------------------------ +run_magicsvm_test "dummy-token-transfer" "dummy-token-transfer" "yarn install" +run_magicsvm_test "pinocchio-counter" "pinocchio-counter" "cargo build-sbf && yarn install" + # anchor-counter has 3 test files: public-counter (local), private-counter (TEE), advanced-magic (router). # Locally we run only public-counter.ts. The other two run from the TEE/devnet block below. run_test "anchor-counter" "cd anchor-counter && anchor build && anchor deploy --provider.cluster localnet && yarn install && npx ts-mocha -p ./tsconfig.json -t 1000000 tests/public-counter.ts && cd .." @@ -464,10 +546,6 @@ run_test "anchor-counter" "cd anchor-counter && anchor build && anchor deploy -- # re-set ANCHOR_PROVIDER_URL to devnet, overriding our local export. run_test "crank-counter" "cd crank-counter && anchor build && anchor deploy --provider.cluster localnet && yarn install && npx ts-mocha -p ./tsconfig.json -t 1000000 'tests/**/*.ts' && cd .." -# dummy-token-transfer + magic-actions: have router-based tests (devnet-router) plus -# local *-local.ts variants. We run only the local variants here. -run_test "dummy-token-transfer" "cd dummy-token-transfer && anchor build && anchor deploy --provider.cluster localnet && yarn install && npx ts-mocha -p ./tsconfig.json -t 1000000 tests/dummy-transfer-local.ts && cd .." - # ephemeral-account-chats: bypass `anchor test` — Anchor.toml has cluster=devnet so # anchor would re-set ANCHOR_PROVIDER_URL to devnet, overriding our local export. run_test "ephemeral-account-chats" "cd ephemeral-account-chats && anchor build && anchor deploy --provider.cluster localnet && yarn install && npx ts-mocha -p ./tsconfig.json -t 1000000 'tests/**/*.ts' && cd .." @@ -476,9 +554,7 @@ run_test "magic-actions" "cd magic-actions && anchor build && anchor deploy --pr run_test "oncurve-delegation" "cd oncurve-delegation && yarn install && yarn test && yarn test-web3js && cd .." -run_test "pinocchio-counter" "cd pinocchio-counter && cargo build-sbf && solana program deploy --program-id target/deploy/pinocchio_counter-keypair.json target/deploy/pinocchio_counter.so && yarn install && yarn test && cd .." - -run_test "pinocchio-private-counter" "cd pinocchio-private-counter && cargo build-sbf && solana program deploy --program-id target/deploy/pinocchio_private_counter-keypair.json target/deploy/pinocchio_private_counter.so && yarn install && yarn test && cd .." +run_test "pinocchio-secret-counter" "cd pinocchio-secret-counter && cargo build-sbf && solana program deploy --program-id target/deploy/pinocchio_secret_counter-keypair.json target/deploy/pinocchio_secret_counter.so && yarn install && yarn test; cd .." # rewards-delegated-vrf: bypass `anchor test` — Anchor.toml has cluster=devnet so anchor # would re-set ANCHOR_PROVIDER_URL to devnet, overriding our local export. diff --git a/test-utils/.yarnrc.yml b/test-utils/.yarnrc.yml new file mode 100644 index 00000000..3186f3f0 --- /dev/null +++ b/test-utils/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: node-modules diff --git a/test-utils/README.md b/test-utils/README.md new file mode 100644 index 00000000..1aabf638 --- /dev/null +++ b/test-utils/README.md @@ -0,0 +1 @@ +# test-utils diff --git a/test-utils/package.json b/test-utils/package.json new file mode 100644 index 00000000..2f682079 --- /dev/null +++ b/test-utils/package.json @@ -0,0 +1,15 @@ +{ + "name": "test-utils", + "version": "0.1.0", + "main": "src/index.ts", + "types": "src/index.ts", + "dependencies": { + "@coral-xyz/anchor": "0.32.1", + "@magicblock-labs/magicsvm": "^0.1.1", + "@solana/keys": "^6.9.0", + "@solana/kit": "^6.9.0", + "@solana/web3.js": "^3.0.0-rc.1", + "tweetnacl": "^1.0.3" + }, + "packageManager": "yarn@4.9.1" +} diff --git a/test-utils/src/index.ts b/test-utils/src/index.ts new file mode 100644 index 00000000..2b285a78 --- /dev/null +++ b/test-utils/src/index.ts @@ -0,0 +1,114 @@ +import type { web3 } from "@coral-xyz/anchor"; +import { + AccountMeta, + Address, + Blockhash, + Signer, + Transaction, + TransactionInstruction, +} from "@solana/web3.js"; +import { type SignatureBytes } from "@solana/keys"; +import nacl from "tweetnacl"; +import { AccountRole, TransactionMessage } from "@solana/kit"; + +export type MagicSvmTransactionOptions = { + recentBlockhash: Blockhash; + payer: Signer; + signers?: Signer[]; +}; + +export function addressFromWeb3PublicKey(publicKey: web3.PublicKey): Address { + return new Address(publicKey.toBuffer()); +} + +export function signerFromWeb3Keypair(keypair: web3.Keypair): Signer { + const signerAddress = addressFromWeb3PublicKey(keypair.publicKey); + + return { + address: signerAddress.toBase58(), + signTransactions: async (transactions) => { + return transactions.map((tx) => ({ + [signerAddress.toBase58() as string]: nacl.sign.detached( + new Uint8Array(tx.messageBytes), + keypair.secretKey, + ) as SignatureBytes, + })); + }, + }; +} + +export function accountMetaFromWeb3AccountMeta( + account: web3.AccountMeta, +): AccountMeta { + return { + pubkey: new Address(account.pubkey.toBuffer()), + isSigner: account.isSigner, + isWritable: account.isWritable, + }; +} + +export function instructionFromWeb3Instruction( + instruction: web3.TransactionInstruction, +): TransactionInstruction { + return new TransactionInstruction({ + programId: new Address(instruction.programId.toBuffer()), + keys: instruction.keys.map(accountMetaFromWeb3AccountMeta), + data: instruction.data, + }); +} + +export async function transactionFromWeb3Transaction( + tx: web3.Transaction, + options: MagicSvmTransactionOptions, +): Promise { + const transaction = new Transaction(); + + for (const instruction of tx.instructions) { + transaction.add(instructionFromWeb3Instruction(instruction)); + } + + transaction.feePayer = new Address(options.payer.address); + transaction.recentBlockhash = options.recentBlockhash; + transaction.lastValidBlockHeight = 0n; + + for (const signer of options.signers ?? []) { + await transaction.partialSign(signer); + } + await transaction.partialSign(options.payer); + + return transaction; +} + +export async function transactionFromKitTransactionMessage( + msg: TransactionMessage, + options: MagicSvmTransactionOptions, +): Promise { + const transaction = new Transaction(); + + for (const instruction of msg.instructions) { + transaction.add({ + programId: new Address(instruction.programAddress), + keys: (instruction.accounts || []).map((account) => ({ + pubkey: new Address(account.address), + isSigner: + account.role === AccountRole.READONLY_SIGNER || + account.role === AccountRole.WRITABLE_SIGNER, + isWritable: + account.role === AccountRole.WRITABLE || + account.role === AccountRole.WRITABLE_SIGNER, + })), + data: new Uint8Array(instruction.data || []), + }); + } + + transaction.feePayer = new Address(options.payer.address); + transaction.recentBlockhash = options.recentBlockhash; + transaction.lastValidBlockHeight = 0n; + + for (const signer of options.signers ?? []) { + await transaction.partialSign(signer); + } + await transaction.partialSign(options.payer); + + return transaction; +} diff --git a/test-utils/yarn.lock b/test-utils/yarn.lock new file mode 100644 index 00000000..be99c8e5 --- /dev/null +++ b/test-utils/yarn.lock @@ -0,0 +1,1800 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10c0 + +"@babel/runtime@npm:^7.25.0": + version: 7.29.7 + resolution: "@babel/runtime@npm:7.29.7" + checksum: 10c0/ca11572f7146b21e0bde6a9ed4bb6a89eafbee5f0944c7eb54d0d8a2dac962c33638a1d611e14faa71dfbb92b4b5f9236232208568a6b7d5c6f3f39ddb91771e + languageName: node + linkType: hard + +"@coral-xyz/anchor-errors@npm:^0.31.1": + version: 0.31.1 + resolution: "@coral-xyz/anchor-errors@npm:0.31.1" + checksum: 10c0/d359d6244a89bcfb606e6d31d545c3be8e32dccd47b78dac6ec0091a51b2eb6c78aad9601f39db2659d8e66db8fffc36477247d58d570bc9d866e7ec3e40b5b2 + languageName: node + linkType: hard + +"@coral-xyz/anchor@npm:0.32.1": + version: 0.32.1 + resolution: "@coral-xyz/anchor@npm:0.32.1" + dependencies: + "@coral-xyz/anchor-errors": "npm:^0.31.1" + "@coral-xyz/borsh": "npm:^0.31.1" + "@noble/hashes": "npm:^1.3.1" + "@solana/web3.js": "npm:^1.69.0" + bn.js: "npm:^5.1.2" + bs58: "npm:^4.0.1" + buffer-layout: "npm:^1.2.2" + camelcase: "npm:^6.3.0" + cross-fetch: "npm:^3.1.5" + eventemitter3: "npm:^4.0.7" + pako: "npm:^2.0.3" + superstruct: "npm:^0.15.4" + toml: "npm:^3.0.0" + checksum: 10c0/669b6f54efb0a5a96dad9e055d30b3b803f691b1b058379efefb87c11f97a9d369d513b2f200082c0b55b4cb31540dc5404e244c6f23f0a14b6d2ad2e18f08b7 + languageName: node + linkType: hard + +"@coral-xyz/borsh@npm:^0.31.1": + version: 0.31.1 + resolution: "@coral-xyz/borsh@npm:0.31.1" + dependencies: + bn.js: "npm:^5.1.2" + buffer-layout: "npm:^1.2.0" + peerDependencies: + "@solana/web3.js": ^1.69.0 + checksum: 10c0/3d6d40a1476df5eb0635d8687a640de89fd7e7ffd135f733907f13ff2569a2a07f65f64768d632fb45ed55006d9c9ee94e40fd775813a9cf1211fefa567f98dd + languageName: node + linkType: hard + +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: "npm:^7.0.4" + checksum: 10c0/c25b6dc1598790d5b55c0947a9b7d111cfa92594db5296c3b907e2f533c033666f692a3939eadac17b1c7c40d362d0b0635dc874cbfe3e70db7c2b07cc97a5d2 + languageName: node + linkType: hard + +"@magicblock-labs/magicsvm-darwin-arm64@npm:0.1.1": + version: 0.1.1 + resolution: "@magicblock-labs/magicsvm-darwin-arm64@npm:0.1.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@magicblock-labs/magicsvm-darwin-x64@npm:0.1.1": + version: 0.1.1 + resolution: "@magicblock-labs/magicsvm-darwin-x64@npm:0.1.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@magicblock-labs/magicsvm-linux-arm64-gnu@npm:0.1.1": + version: 0.1.1 + resolution: "@magicblock-labs/magicsvm-linux-arm64-gnu@npm:0.1.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@magicblock-labs/magicsvm-linux-arm64-musl@npm:0.1.1": + version: 0.1.1 + resolution: "@magicblock-labs/magicsvm-linux-arm64-musl@npm:0.1.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@magicblock-labs/magicsvm-linux-x64-gnu@npm:0.1.1": + version: 0.1.1 + resolution: "@magicblock-labs/magicsvm-linux-x64-gnu@npm:0.1.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@magicblock-labs/magicsvm-linux-x64-musl@npm:0.1.1": + version: 0.1.1 + resolution: "@magicblock-labs/magicsvm-linux-x64-musl@npm:0.1.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@magicblock-labs/magicsvm@npm:^0.1.1": + version: 0.1.1 + resolution: "@magicblock-labs/magicsvm@npm:0.1.1" + dependencies: + "@magicblock-labs/magicsvm-darwin-arm64": "npm:0.1.1" + "@magicblock-labs/magicsvm-darwin-x64": "npm:0.1.1" + "@magicblock-labs/magicsvm-linux-arm64-gnu": "npm:0.1.1" + "@magicblock-labs/magicsvm-linux-arm64-musl": "npm:0.1.1" + "@magicblock-labs/magicsvm-linux-x64-gnu": "npm:0.1.1" + "@magicblock-labs/magicsvm-linux-x64-musl": "npm:0.1.1" + "@solana/web3.js": "npm:3.0.0-rc.1" + litesvm: "npm:1.1.0" + dependenciesMeta: + "@magicblock-labs/magicsvm-darwin-arm64": + optional: true + "@magicblock-labs/magicsvm-darwin-x64": + optional: true + "@magicblock-labs/magicsvm-linux-arm64-gnu": + optional: true + "@magicblock-labs/magicsvm-linux-arm64-musl": + optional: true + "@magicblock-labs/magicsvm-linux-x64-gnu": + optional: true + "@magicblock-labs/magicsvm-linux-x64-musl": + optional: true + checksum: 10c0/2d0f3ed640882cbe7f44a8fc29662cacbe11563b921831a8d875d68df784b52702932ead17bf099464b81d46a6f138fd160e80d8fa73986ebb4aa3b570a5b519 + languageName: node + linkType: hard + +"@noble/curves@npm:^1.4.2": + version: 1.9.7 + resolution: "@noble/curves@npm:1.9.7" + dependencies: + "@noble/hashes": "npm:1.8.0" + checksum: 10c0/150014751ebe8ca06a8654ca2525108452ea9ee0be23430332769f06808cddabfe84f248b6dbf836916bc869c27c2092957eec62c7506d68a1ed0a624017c2a3 + languageName: node + linkType: hard + +"@noble/hashes@npm:1.8.0, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.4.0": + version: 1.8.0 + resolution: "@noble/hashes@npm:1.8.0" + checksum: 10c0/06a0b52c81a6fa7f04d67762e08b2c476a00285858150caeaaff4037356dd5e119f45b2a530f638b77a5eeca013168ec1b655db41bae3236cb2e9d511484fc77 + languageName: node + linkType: hard + +"@solana-program/address-lookup-table@npm:^0.11.0": + version: 0.11.0 + resolution: "@solana-program/address-lookup-table@npm:0.11.0" + peerDependencies: + "@solana/kit": ^6.0 + checksum: 10c0/28271e452a9e6caa1cb5ad0365cf7f4a193920fd3fd3f5261fa655fb84e7b6a3d911e602125ad5718cdb4a8d6980e09d54f9f97016423b9d13051c3dde332cac + languageName: node + linkType: hard + +"@solana-program/compute-budget@npm:^0.15.0": + version: 0.15.0 + resolution: "@solana-program/compute-budget@npm:0.15.0" + peerDependencies: + "@solana/kit": ^6.3.0 + checksum: 10c0/b2c29063932dee2f5da77d63ab7db95834a0c6fc6ff79f99951093accebdd942d14a6db5bd97412a0e8b58f8b4e0ed20c084e60389ce6751da39afdd651a9d2b + languageName: node + linkType: hard + +"@solana-program/stake@npm:^0.6.1": + version: 0.6.1 + resolution: "@solana-program/stake@npm:0.6.1" + peerDependencies: + "@solana/kit": ^6.0 + checksum: 10c0/8f4fa7e54f2509ee968c11057f001f1123e1a94b6820f9a9d1ba2894db4352e3078f3321d0ea95365c093546e4989197e0daff80a7a4ba4d193a2f5a4124863e + languageName: node + linkType: hard + +"@solana-program/system@npm:^0.12.0": + version: 0.12.2 + resolution: "@solana-program/system@npm:0.12.2" + peerDependencies: + "@solana/kit": ^6.4.0 + checksum: 10c0/cb57baf73d2b6c56ed5c43cf08839afbd37e1bbeef1df2c7af33d0d6e413db62e5bb825db749ca3ef4486a3f60195b3ae3e9298232774fea4fd5514374bff292 + languageName: node + linkType: hard + +"@solana-program/token@npm:^0.13.0": + version: 0.13.0 + resolution: "@solana-program/token@npm:0.13.0" + dependencies: + "@solana-program/system": "npm:^0.12.0" + peerDependencies: + "@solana/kit": ^6.5.0 + checksum: 10c0/8b95921bf60b11002d1e22714017d41db25afc88be1fd700d18f8a8bec7fee6488c48d0c7102ca07fe71509adaf5d3bdebb25aa885596dbab7e9512d02353e56 + languageName: node + linkType: hard + +"@solana/accounts@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/accounts@npm:6.9.0" + dependencies: + "@solana/addresses": "npm:6.9.0" + "@solana/codecs-core": "npm:6.9.0" + "@solana/codecs-strings": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + "@solana/rpc-spec": "npm:6.9.0" + "@solana/rpc-types": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/e6cb58b97105ca85622df8bdb9de257a50197c6bfaae4aedbe84c6cd1f4db9f2e9d51df81cf63f36bf12819aa6d1a6cc6ba059dc64d9b45b632bc89c507255f1 + languageName: node + linkType: hard + +"@solana/addresses@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/addresses@npm:6.9.0" + dependencies: + "@solana/assertions": "npm:6.9.0" + "@solana/codecs-core": "npm:6.9.0" + "@solana/codecs-strings": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + "@solana/nominal-types": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/d7e493f5397b4ddd5a6fd9b66063208399874542dcd4dbf793aa0de80941dbf773a1812f211daa999efb6d86dc0da911a732576cf4d95c8fae91a78d935fe148 + languageName: node + linkType: hard + +"@solana/assertions@npm:6.9.0, @solana/assertions@npm:^6.8.0": + version: 6.9.0 + resolution: "@solana/assertions@npm:6.9.0" + dependencies: + "@solana/errors": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/7c2fecbc48a6c6d9171ec3ba8d5aa18eda6eae8a13c3952933c46b5f51bc59fb681bf79105ff6ae52e8a318da36b78893efbed0795233830113620ec342a0beb + languageName: node + linkType: hard + +"@solana/buffer-layout@npm:^4.0.1": + version: 4.0.1 + resolution: "@solana/buffer-layout@npm:4.0.1" + dependencies: + buffer: "npm:~6.0.3" + checksum: 10c0/6535f3908cf6dfc405b665795f0c2eaa0482a8c6b1811403945cf7b450e7eb7b40acce3e8af046f2fcc3eea1a15e61d48c418315d813bee4b720d56b00053305 + languageName: node + linkType: hard + +"@solana/codecs-core@npm:2.3.0": + version: 2.3.0 + resolution: "@solana/codecs-core@npm:2.3.0" + dependencies: + "@solana/errors": "npm:2.3.0" + peerDependencies: + typescript: ">=5.3.3" + checksum: 10c0/efef080b94fe572bcfeac9f1c0b222700203bd2b45c9590e77445b35335d0ed2582d1cc4e533003d2090c385c06eb93dfa05388f9766182aa60ce85eacfd8042 + languageName: node + linkType: hard + +"@solana/codecs-core@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/codecs-core@npm:6.9.0" + dependencies: + "@solana/errors": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/9d1c90f67087b3ac1ffe6bce7ce7996394a0847259b0586023866e7cc44907aebe184a637a30cede5473eda57fbc6663b47b863c7825f01553bda64eac978fdc + languageName: node + linkType: hard + +"@solana/codecs-data-structures@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/codecs-data-structures@npm:6.9.0" + dependencies: + "@solana/codecs-core": "npm:6.9.0" + "@solana/codecs-numbers": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/7389142b0954edf5b1feb6a8a4af69527eb64f49e755eeb2dd869ef92b0faecc3341089a663f35a5aa823356a78e0daf6dd51d62196f5e6fce07f45db96f7f23 + languageName: node + linkType: hard + +"@solana/codecs-numbers@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/codecs-numbers@npm:6.9.0" + dependencies: + "@solana/codecs-core": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/7e574975d6aef6b478418607ac14f324004e0158fe46b6b399380718021c05bc618aa4bfd61aef4755ab122106da65fca6a63a7942b9dff9973f5ea66469e431 + languageName: node + linkType: hard + +"@solana/codecs-numbers@npm:^2.1.0": + version: 2.3.0 + resolution: "@solana/codecs-numbers@npm:2.3.0" + dependencies: + "@solana/codecs-core": "npm:2.3.0" + "@solana/errors": "npm:2.3.0" + peerDependencies: + typescript: ">=5.3.3" + checksum: 10c0/0780d60771e451cfe22ea614315fed2f37507aa62f83cddb900186f88d4d4532eea298d74796d1dbc8c34321a570b5d9ada25e8f4a5aeadd57aa4e688b4465f5 + languageName: node + linkType: hard + +"@solana/codecs-strings@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/codecs-strings@npm:6.9.0" + dependencies: + "@solana/codecs-core": "npm:6.9.0" + "@solana/codecs-numbers": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + peerDependencies: + fastestsmallesttextencoderdecoder: ^1.0.22 + typescript: ">=5.4.0" + peerDependenciesMeta: + fastestsmallesttextencoderdecoder: + optional: true + typescript: + optional: true + checksum: 10c0/72f882762f793f2f69d8778e3f6de12c35a97de5d5740a6c9dde0a8df43e6c4ea3deba7f4aaaba1a13f61aad824ff365ec9316c77ad0c36ce6eb69d5665b5cb8 + languageName: node + linkType: hard + +"@solana/codecs@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/codecs@npm:6.9.0" + dependencies: + "@solana/codecs-core": "npm:6.9.0" + "@solana/codecs-data-structures": "npm:6.9.0" + "@solana/codecs-numbers": "npm:6.9.0" + "@solana/codecs-strings": "npm:6.9.0" + "@solana/fixed-points": "npm:6.9.0" + "@solana/options": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/62cdc3773a4f808020060f14f821c2cd8ef29cbcc8802a353d61e239bc4b902dfa697f94da3a56c3ac6c0f36880ee169fdb85338ca1aa66a9de5e35de83f82c2 + languageName: node + linkType: hard + +"@solana/errors@npm:2.3.0": + version: 2.3.0 + resolution: "@solana/errors@npm:2.3.0" + dependencies: + chalk: "npm:^5.4.1" + commander: "npm:^14.0.0" + peerDependencies: + typescript: ">=5.3.3" + bin: + errors: bin/cli.mjs + checksum: 10c0/55bef8828b4a6bb5222d3dbfe27162684906ba90753126b9cfd1e8e39c6c29209c0f4f331cfb1d3d1cf43fd456022af92337b4234a145d8de292588197c12c71 + languageName: node + linkType: hard + +"@solana/errors@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/errors@npm:6.9.0" + dependencies: + chalk: "npm:5.6.2" + commander: "npm:14.0.3" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + bin: + errors: bin/cli.mjs + checksum: 10c0/a0277d8f70dec085f33ccc6c9e611225c6847d3234ab30f540bbc3bc05d423ae6a6a5471a4ae3d77f2f36b7489c66dee5cb9ab09507878a8fddacebb00532299 + languageName: node + linkType: hard + +"@solana/fast-stable-stringify@npm:6.9.0, @solana/fast-stable-stringify@npm:^6.8.0": + version: 6.9.0 + resolution: "@solana/fast-stable-stringify@npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/229176dbe3d03dcddc62ad22dc66109562eab3aa769810ee60203dc868a6636577ffa9bbbadcfbb0a4e51549af4bb6e35200d1c29152802e8bc91c583ed1be4b + languageName: node + linkType: hard + +"@solana/fixed-points@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/fixed-points@npm:6.9.0" + dependencies: + "@solana/codecs-core": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/ec5a0b693fbc89e913af5ba82dcb135fd1ed897a2755e0c62eda3eb7aa9763ccc7fe95c34a9b43f21bcf5aff175885d78351b6d37bd1664f7e19d03f95c1a9f2 + languageName: node + linkType: hard + +"@solana/functional@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/functional@npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/21a72cbb820b4183f67cfacfba8c172009869abcb6667bf43af994cc69922b2a133747ec7e4e66493ad7e1226cfab8dab45b3cb43a97dedca4bd3d9692569fa7 + languageName: node + linkType: hard + +"@solana/instruction-plans@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/instruction-plans@npm:6.9.0" + dependencies: + "@solana/errors": "npm:6.9.0" + "@solana/instructions": "npm:6.9.0" + "@solana/keys": "npm:6.9.0" + "@solana/promises": "npm:6.9.0" + "@solana/transaction-messages": "npm:6.9.0" + "@solana/transactions": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/569ef7efde18c46a3461b06410d7c9922b5f432b18874b5d6e0f3a8ebd04f3efb7cde9b3631ea116373a3eb50f2bd219911fccba7006037d3eca6684b4c5a506 + languageName: node + linkType: hard + +"@solana/instructions@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/instructions@npm:6.9.0" + dependencies: + "@solana/codecs-core": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/06b2a0ae6ad917a2fdfa8ff95eaf976f480c2d19fcb942005bed5e7c25916d498d76260e4cd09d4d0375675c1867f1510fb6579d78902eb03d3b87887c00cca8 + languageName: node + linkType: hard + +"@solana/keys@npm:6.9.0, @solana/keys@npm:^6.9.0": + version: 6.9.0 + resolution: "@solana/keys@npm:6.9.0" + dependencies: + "@solana/assertions": "npm:6.9.0" + "@solana/codecs-core": "npm:6.9.0" + "@solana/codecs-strings": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + "@solana/nominal-types": "npm:6.9.0" + "@solana/promises": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/5558fce85f3aef195feb9e56dca6795ef6a8090e35e7b62fa197d6d2588fb0be14740ae88527d13a314fed06c1adf3a7c5966fccfd32fe4e0a6deb2ffef48099 + languageName: node + linkType: hard + +"@solana/kit@npm:^6.8.0, @solana/kit@npm:^6.9.0": + version: 6.9.0 + resolution: "@solana/kit@npm:6.9.0" + dependencies: + "@solana/accounts": "npm:6.9.0" + "@solana/addresses": "npm:6.9.0" + "@solana/codecs": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + "@solana/functional": "npm:6.9.0" + "@solana/instruction-plans": "npm:6.9.0" + "@solana/instructions": "npm:6.9.0" + "@solana/keys": "npm:6.9.0" + "@solana/offchain-messages": "npm:6.9.0" + "@solana/plugin-core": "npm:6.9.0" + "@solana/plugin-interfaces": "npm:6.9.0" + "@solana/program-client-core": "npm:6.9.0" + "@solana/programs": "npm:6.9.0" + "@solana/rpc": "npm:6.9.0" + "@solana/rpc-api": "npm:6.9.0" + "@solana/rpc-parsed-types": "npm:6.9.0" + "@solana/rpc-spec-types": "npm:6.9.0" + "@solana/rpc-subscriptions": "npm:6.9.0" + "@solana/rpc-types": "npm:6.9.0" + "@solana/signers": "npm:6.9.0" + "@solana/subscribable": "npm:6.9.0" + "@solana/sysvars": "npm:6.9.0" + "@solana/transaction-confirmation": "npm:6.9.0" + "@solana/transaction-messages": "npm:6.9.0" + "@solana/transactions": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/36b7b932fc40b45457cf352513416cdf0bb8f9c394aaedb00e488d6220504065f5d02a161a5b483eb71c47f11fe76be1f215c884cee46ef1e454d6a266cb6b6b + languageName: node + linkType: hard + +"@solana/nominal-types@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/nominal-types@npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/518e47473767c622387b891b8a30f57a1a75cfcb7047c187a2e7c4a1bc295ceb1c3c9a41b29970ca54f4593126bfa7734110003142051b1de3c14993ae46e315 + languageName: node + linkType: hard + +"@solana/offchain-messages@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/offchain-messages@npm:6.9.0" + dependencies: + "@solana/addresses": "npm:6.9.0" + "@solana/codecs-core": "npm:6.9.0" + "@solana/codecs-data-structures": "npm:6.9.0" + "@solana/codecs-numbers": "npm:6.9.0" + "@solana/codecs-strings": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + "@solana/keys": "npm:6.9.0" + "@solana/nominal-types": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/b647aaeff50067eea5dcfeb16190344b09145c05aebaf70a5ea9c89d2c51cbca13dee07224a370a81a5afa82c7b07c0d3500ab8c4c1d0938570ad08ee0acdd9c + languageName: node + linkType: hard + +"@solana/options@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/options@npm:6.9.0" + dependencies: + "@solana/codecs-core": "npm:6.9.0" + "@solana/codecs-data-structures": "npm:6.9.0" + "@solana/codecs-numbers": "npm:6.9.0" + "@solana/codecs-strings": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/097ada8f8addfbbd4f3c646a2b8a962d7bd963d6fbed2cc684e6a106d8c2fd2c10f2bfd1f1a89058188d0beec94c52525ed028858e0846bf398680f9fe7899b4 + languageName: node + linkType: hard + +"@solana/plugin-core@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/plugin-core@npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/6dba11307524e0a1838dfc89a7776d5c997216abdcbb78a76e3dd10884f9f17e774942b2c49ac0494c7e64421fc698ef160c36d5f5c646460fad5f42daa172c9 + languageName: node + linkType: hard + +"@solana/plugin-interfaces@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/plugin-interfaces@npm:6.9.0" + dependencies: + "@solana/addresses": "npm:6.9.0" + "@solana/instruction-plans": "npm:6.9.0" + "@solana/keys": "npm:6.9.0" + "@solana/rpc-spec": "npm:6.9.0" + "@solana/rpc-subscriptions-spec": "npm:6.9.0" + "@solana/rpc-types": "npm:6.9.0" + "@solana/signers": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/cbf74098412a184b2ad23076eac5e508feed117e0dc4435692f9c630386c1adbafc6be0d201b3a5c5fb0766931eb0d67e8572c4c0382bcf19cfb89aa6881b782 + languageName: node + linkType: hard + +"@solana/program-client-core@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/program-client-core@npm:6.9.0" + dependencies: + "@solana/accounts": "npm:6.9.0" + "@solana/addresses": "npm:6.9.0" + "@solana/codecs-core": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + "@solana/instruction-plans": "npm:6.9.0" + "@solana/instructions": "npm:6.9.0" + "@solana/plugin-interfaces": "npm:6.9.0" + "@solana/rpc-api": "npm:6.9.0" + "@solana/signers": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/304ca469a9e2e87e01312febd70eaae9c2e8c4d5afa689b12a04062c33c805d8fa136e4ecc068ed1b86e811f8e99cc12f82085ad9ad0fc7bfef438fc3a51fac0 + languageName: node + linkType: hard + +"@solana/programs@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/programs@npm:6.9.0" + dependencies: + "@solana/addresses": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/155c24be0bb5cb37651defeaf7a6fbc9ab831227d58514a67797d97c9dad1d6b37bfbcb6f211a8c3d4b249d70bd0525be19f532a314033505216506e24604af9 + languageName: node + linkType: hard + +"@solana/promises@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/promises@npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/0da4ffd2e63cc773cdc10d4cef1267ea37b2191bfcc2f4fb93282a7ed5af174f73ed65047a322ff7a1b6713eccd16e360bb777d273a7af5ab44af580c5cd7f59 + languageName: node + linkType: hard + +"@solana/rpc-api@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/rpc-api@npm:6.9.0" + dependencies: + "@solana/addresses": "npm:6.9.0" + "@solana/codecs-core": "npm:6.9.0" + "@solana/codecs-strings": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + "@solana/keys": "npm:6.9.0" + "@solana/rpc-parsed-types": "npm:6.9.0" + "@solana/rpc-spec": "npm:6.9.0" + "@solana/rpc-transformers": "npm:6.9.0" + "@solana/rpc-types": "npm:6.9.0" + "@solana/transaction-messages": "npm:6.9.0" + "@solana/transactions": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/daadd86d97134b54efa5fbd89ee57d96fde8932af9affddf9b463f56bf9bff8c501ad00a6544fe745dacc89bb06765317a4898af695e5df42095ed209e7a92bd + languageName: node + linkType: hard + +"@solana/rpc-parsed-types@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/rpc-parsed-types@npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/4e28953ae776d7a9ef09ca2cbab30e3a015e693f4137e30cad926e652f2d60e2e07587056d9a421e9b46d4f2327cc49c4fba19dedf11f4cf61c4b7c2d58d8267 + languageName: node + linkType: hard + +"@solana/rpc-spec-types@npm:6.9.0, @solana/rpc-spec-types@npm:^6.8.0": + version: 6.9.0 + resolution: "@solana/rpc-spec-types@npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/5e733eae11f99ca7494f7cf046b171f5d8c1117a6621c75605c5e414c271624eb1ac13e7811906e2646963b5c467d218099ee1d837cc077c666a274f919d4220 + languageName: node + linkType: hard + +"@solana/rpc-spec@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/rpc-spec@npm:6.9.0" + dependencies: + "@solana/errors": "npm:6.9.0" + "@solana/rpc-spec-types": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/6d6a440d024b1bfe9e6e2e70945a09218e3aaaa70ebffe5f4f87e84d45604031f7eaa21e6fef41c552dc77be8e5ab3a76200920b7bcdc4cf4d7a76872b242e39 + languageName: node + linkType: hard + +"@solana/rpc-subscriptions-api@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/rpc-subscriptions-api@npm:6.9.0" + dependencies: + "@solana/addresses": "npm:6.9.0" + "@solana/keys": "npm:6.9.0" + "@solana/rpc-subscriptions-spec": "npm:6.9.0" + "@solana/rpc-transformers": "npm:6.9.0" + "@solana/rpc-types": "npm:6.9.0" + "@solana/transaction-messages": "npm:6.9.0" + "@solana/transactions": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/fd4e405a36df4c501bdaa5318ad2ef91a554d4e67d0d107d9999310cc776f8a7c655dabc9627f8b747de6a276323a2cb739aefe976e16e1fa463477d239424d3 + languageName: node + linkType: hard + +"@solana/rpc-subscriptions-channel-websocket@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/rpc-subscriptions-channel-websocket@npm:6.9.0" + dependencies: + "@solana/errors": "npm:6.9.0" + "@solana/functional": "npm:6.9.0" + "@solana/rpc-subscriptions-spec": "npm:6.9.0" + "@solana/subscribable": "npm:6.9.0" + ws: "npm:^8.19.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/b3658999ea15efa7f3a8c3f4cc7d79f7557936f3f3e8191bb0fa0b2227c31ae57d976577732306a950866edfb122f9a27eff8d48e9d9f4d40c3a1fffef1e9c3d + languageName: node + linkType: hard + +"@solana/rpc-subscriptions-spec@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/rpc-subscriptions-spec@npm:6.9.0" + dependencies: + "@solana/errors": "npm:6.9.0" + "@solana/promises": "npm:6.9.0" + "@solana/rpc-spec-types": "npm:6.9.0" + "@solana/subscribable": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/da264d158c25ab56a831f58af62651ed44f2325c44b7cfdf4ddcced22b76c03d5843f0cb15b337eacdd2bc8cd0888f1299a72db50b15c8835f615fb7afeb6d03 + languageName: node + linkType: hard + +"@solana/rpc-subscriptions@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/rpc-subscriptions@npm:6.9.0" + dependencies: + "@solana/errors": "npm:6.9.0" + "@solana/fast-stable-stringify": "npm:6.9.0" + "@solana/functional": "npm:6.9.0" + "@solana/promises": "npm:6.9.0" + "@solana/rpc-spec-types": "npm:6.9.0" + "@solana/rpc-subscriptions-api": "npm:6.9.0" + "@solana/rpc-subscriptions-channel-websocket": "npm:6.9.0" + "@solana/rpc-subscriptions-spec": "npm:6.9.0" + "@solana/rpc-transformers": "npm:6.9.0" + "@solana/rpc-types": "npm:6.9.0" + "@solana/subscribable": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/ce57f26860848957d0756d9ec22b26660d37229cb5f2170db8bb889e4bea4b30c65bed4e6b3bfff3e6e282bf7094bf01158295e94b2af86ec6e4fa9b3da49da3 + languageName: node + linkType: hard + +"@solana/rpc-transformers@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/rpc-transformers@npm:6.9.0" + dependencies: + "@solana/errors": "npm:6.9.0" + "@solana/functional": "npm:6.9.0" + "@solana/nominal-types": "npm:6.9.0" + "@solana/rpc-spec-types": "npm:6.9.0" + "@solana/rpc-types": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/65053fa3d687754d2f5951234b5f1735c86e5f8daf167b3877f580345cc9dca0b8eaafbe99e65e9abda98c0c90a08740065a093ce6244402d6c5fceaf9588d73 + languageName: node + linkType: hard + +"@solana/rpc-transport-http@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/rpc-transport-http@npm:6.9.0" + dependencies: + "@solana/errors": "npm:6.9.0" + "@solana/rpc-spec": "npm:6.9.0" + "@solana/rpc-spec-types": "npm:6.9.0" + undici-types: "npm:^8.2.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/9582182632f4858d59413ec61b8debf977b2f44ab6a7ce192ca6991f4b565151ae098e312d8ac8dfb734204ccbe53ecbfee07a667471faca3b02f802206dad03 + languageName: node + linkType: hard + +"@solana/rpc-types@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/rpc-types@npm:6.9.0" + dependencies: + "@solana/addresses": "npm:6.9.0" + "@solana/codecs-core": "npm:6.9.0" + "@solana/codecs-numbers": "npm:6.9.0" + "@solana/codecs-strings": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + "@solana/fixed-points": "npm:6.9.0" + "@solana/nominal-types": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/4af132234a554f71024b1949f3e8d5f011072a3c92363acd5bc64cfb9996648828c7df7dd858b228f7061f65a92f4c262a5d359b5fa3e13002456357c7d28d1a + languageName: node + linkType: hard + +"@solana/rpc@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/rpc@npm:6.9.0" + dependencies: + "@solana/errors": "npm:6.9.0" + "@solana/fast-stable-stringify": "npm:6.9.0" + "@solana/functional": "npm:6.9.0" + "@solana/rpc-api": "npm:6.9.0" + "@solana/rpc-spec": "npm:6.9.0" + "@solana/rpc-spec-types": "npm:6.9.0" + "@solana/rpc-transformers": "npm:6.9.0" + "@solana/rpc-transport-http": "npm:6.9.0" + "@solana/rpc-types": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/db9bb34756532f1aed652b6916c58892089a53dcb2e79dacdc7c492e441a93c9be5d6c4fbdabb55d88d3bf851dfed381447fd0982b92ed683e626b2c494af38d + languageName: node + linkType: hard + +"@solana/signers@npm:6.9.0, @solana/signers@npm:^6.8.0": + version: 6.9.0 + resolution: "@solana/signers@npm:6.9.0" + dependencies: + "@solana/addresses": "npm:6.9.0" + "@solana/codecs-core": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + "@solana/instructions": "npm:6.9.0" + "@solana/keys": "npm:6.9.0" + "@solana/nominal-types": "npm:6.9.0" + "@solana/offchain-messages": "npm:6.9.0" + "@solana/transaction-messages": "npm:6.9.0" + "@solana/transactions": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/1405693cbfc2079ac1f683ab1479f80844e44548017d49748d171eb6e6cdd89d1c849afbdfd7d7d9244c971c614cc31556e918b58ca2b29717663f4389f09fb6 + languageName: node + linkType: hard + +"@solana/subscribable@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/subscribable@npm:6.9.0" + dependencies: + "@solana/errors": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/68b786a8d8139809a516a14a9d59ba51f09481dc6cd3cac412feba7a54154669d0bf7650c843cb238d4baa4195b1d5f37ecaede3ac882eadf18c86e8d5fcdd5f + languageName: node + linkType: hard + +"@solana/sysvars@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/sysvars@npm:6.9.0" + dependencies: + "@solana/accounts": "npm:6.9.0" + "@solana/codecs-core": "npm:6.9.0" + "@solana/codecs-data-structures": "npm:6.9.0" + "@solana/codecs-numbers": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + "@solana/rpc-types": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/f732dd9c315ff56ef40f32c1701813a317ddc3579ba9392a69db185314a7fcccd911bba303ce81739fc0e528dbb47223b07eb0af6e8b1ca611a47438995925cc + languageName: node + linkType: hard + +"@solana/transaction-confirmation@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/transaction-confirmation@npm:6.9.0" + dependencies: + "@solana/addresses": "npm:6.9.0" + "@solana/codecs-strings": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + "@solana/keys": "npm:6.9.0" + "@solana/promises": "npm:6.9.0" + "@solana/rpc": "npm:6.9.0" + "@solana/rpc-subscriptions": "npm:6.9.0" + "@solana/rpc-types": "npm:6.9.0" + "@solana/transaction-messages": "npm:6.9.0" + "@solana/transactions": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/59e99fc0d5333c02938a87372ae1f1fc3584858561f57bf9de48735ae889647bce79bc90b44c6c2abbf6ec0a7edd1b98d762d194917b733471537fd445f3d6e0 + languageName: node + linkType: hard + +"@solana/transaction-messages@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/transaction-messages@npm:6.9.0" + dependencies: + "@solana/addresses": "npm:6.9.0" + "@solana/codecs-core": "npm:6.9.0" + "@solana/codecs-data-structures": "npm:6.9.0" + "@solana/codecs-numbers": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + "@solana/functional": "npm:6.9.0" + "@solana/instructions": "npm:6.9.0" + "@solana/nominal-types": "npm:6.9.0" + "@solana/rpc-types": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/16c8e8e82e6e5e48d36233afcd6394764938c5cc00da3d5d3098c378a226653bb04c0b3c6e25999856925e184172a58ad3f16b4206156884a9f975c72f0c4ea9 + languageName: node + linkType: hard + +"@solana/transactions@npm:6.9.0": + version: 6.9.0 + resolution: "@solana/transactions@npm:6.9.0" + dependencies: + "@solana/addresses": "npm:6.9.0" + "@solana/codecs-core": "npm:6.9.0" + "@solana/codecs-data-structures": "npm:6.9.0" + "@solana/codecs-numbers": "npm:6.9.0" + "@solana/codecs-strings": "npm:6.9.0" + "@solana/errors": "npm:6.9.0" + "@solana/functional": "npm:6.9.0" + "@solana/instructions": "npm:6.9.0" + "@solana/keys": "npm:6.9.0" + "@solana/nominal-types": "npm:6.9.0" + "@solana/rpc-types": "npm:6.9.0" + "@solana/transaction-messages": "npm:6.9.0" + peerDependencies: + typescript: ">=5.4.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/0b95263a86d457c2fc0e1d7ecfa7f144ecf4a36d7ccba67cd8741b73b0e61611cbee590276388d7957f2c637c827241bf98153ff84a18813ffa83113d29fc33f + languageName: node + linkType: hard + +"@solana/web3.js@npm:3.0.0-rc.1, @solana/web3.js@npm:^3.0.0-rc.1": + version: 3.0.0-rc.1 + resolution: "@solana/web3.js@npm:3.0.0-rc.1" + dependencies: + "@noble/curves": "npm:^1.4.2" + "@noble/hashes": "npm:^1.4.0" + "@solana-program/address-lookup-table": "npm:^0.11.0" + "@solana-program/compute-budget": "npm:^0.15.0" + "@solana-program/stake": "npm:^0.6.1" + "@solana-program/system": "npm:^0.12.0" + "@solana/assertions": "npm:^6.8.0" + "@solana/fast-stable-stringify": "npm:^6.8.0" + "@solana/kit": "npm:^6.8.0" + "@solana/rpc-spec-types": "npm:^6.8.0" + "@solana/signers": "npm:^6.8.0" + checksum: 10c0/a504adca1feca5b321e2d3f15bfb727a8f444e892792c692950d09e66a94e97dc203f85105d69b4b6b51727a04e61c8c5410512d099c254fa32d33ea9642eaac + languageName: node + linkType: hard + +"@solana/web3.js@npm:^1.69.0": + version: 1.98.4 + resolution: "@solana/web3.js@npm:1.98.4" + dependencies: + "@babel/runtime": "npm:^7.25.0" + "@noble/curves": "npm:^1.4.2" + "@noble/hashes": "npm:^1.4.0" + "@solana/buffer-layout": "npm:^4.0.1" + "@solana/codecs-numbers": "npm:^2.1.0" + agentkeepalive: "npm:^4.5.0" + bn.js: "npm:^5.2.1" + borsh: "npm:^0.7.0" + bs58: "npm:^4.0.1" + buffer: "npm:6.0.3" + fast-stable-stringify: "npm:^1.0.0" + jayson: "npm:^4.1.1" + node-fetch: "npm:^2.7.0" + rpc-websockets: "npm:^9.0.2" + superstruct: "npm:^2.0.2" + checksum: 10c0/73bf7b6b5b65c7f264587182bbfd65327775b4f3e4831750de6356f58858e57d49213098eec671650940bb7a9bbaa1f352e0710c4075f126d903d72ddddcbdbc + languageName: node + linkType: hard + +"@swc/helpers@npm:^0.5.11": + version: 0.5.23 + resolution: "@swc/helpers@npm:0.5.23" + dependencies: + tslib: "npm:^2.8.0" + checksum: 10c0/02da7b4df465693933ecd4851cc193ec729c309939c8a84eccae5ec0010aafc3894e713b8ef8d13a6ba401759f0e900c88e2dcfef5872c27bb91e70f73275cce + languageName: node + linkType: hard + +"@types/connect@npm:^3.4.33": + version: 3.4.38 + resolution: "@types/connect@npm:3.4.38" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/2e1cdba2c410f25649e77856505cd60223250fa12dff7a503e492208dbfdd25f62859918f28aba95315251fd1f5e1ffbfca1e25e73037189ab85dd3f8d0a148c + languageName: node + linkType: hard + +"@types/node@npm:*": + version: 25.9.1 + resolution: "@types/node@npm:25.9.1" + dependencies: + undici-types: "npm:>=7.24.0 <7.24.7" + checksum: 10c0/9a04682842bebbcf21a1779dfeab9aa733d7bd7bbc0a0edb641ab3a9a3d43eac543225acf669c334f458f1956443ebc072bc3c72840c543b8b356cab5c82d456 + languageName: node + linkType: hard + +"@types/node@npm:^12.12.54": + version: 12.20.55 + resolution: "@types/node@npm:12.20.55" + checksum: 10c0/3b190bb0410047d489c49bbaab592d2e6630de6a50f00ba3d7d513d59401d279972a8f5a598b5bb8ddc1702f8a2f4ec57a65d93852f9c329639738e7053637d1 + languageName: node + linkType: hard + +"@types/uuid@npm:^10.0.0": + version: 10.0.0 + resolution: "@types/uuid@npm:10.0.0" + checksum: 10c0/9a1404bf287164481cb9b97f6bb638f78f955be57c40c6513b7655160beb29df6f84c915aaf4089a1559c216557dc4d2f79b48d978742d3ae10b937420ddac60 + languageName: node + linkType: hard + +"@types/ws@npm:^7.4.4": + version: 7.4.7 + resolution: "@types/ws@npm:7.4.7" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/f1f53febd8623a85cef2652949acd19d83967e350ea15a851593e3033501750a1e04f418552e487db90a3d48611a1cff3ffcf139b94190c10f2fd1e1dc95ff10 + languageName: node + linkType: hard + +"@types/ws@npm:^8.2.2": + version: 8.18.1 + resolution: "@types/ws@npm:8.18.1" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/61aff1129143fcc4312f083bc9e9e168aa3026b7dd6e70796276dcfb2c8211c4292603f9c4864fae702f2ed86e4abd4d38aa421831c2fd7f856c931a481afbab + languageName: node + linkType: hard + +"abbrev@npm:^4.0.0": + version: 4.0.0 + resolution: "abbrev@npm:4.0.0" + checksum: 10c0/b4cc16935235e80702fc90192e349e32f8ef0ed151ef506aa78c81a7c455ec18375c4125414b99f84b2e055199d66383e787675f0bcd87da7a4dbd59f9eac1d5 + languageName: node + linkType: hard + +"agentkeepalive@npm:^4.5.0": + version: 4.6.0 + resolution: "agentkeepalive@npm:4.6.0" + dependencies: + humanize-ms: "npm:^1.2.1" + checksum: 10c0/235c182432f75046835b05f239708107138a40103deee23b6a08caee5136873709155753b394ec212e49e60e94a378189562cb01347765515cff61b692c69187 + languageName: node + linkType: hard + +"base-x@npm:^3.0.2": + version: 3.0.11 + resolution: "base-x@npm:3.0.11" + dependencies: + safe-buffer: "npm:^5.0.1" + checksum: 10c0/4c5b8cd9cef285973b0460934be4fc890eedfd22a8aca527fac3527f041c5d1c912f7b9a6816f19e43e69dc7c29a5deabfa326bd3d6a57ee46af0ad46e3991d5 + languageName: node + linkType: hard + +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf + languageName: node + linkType: hard + +"bn.js@npm:^5.1.2, bn.js@npm:^5.2.0, bn.js@npm:^5.2.1": + version: 5.2.3 + resolution: "bn.js@npm:5.2.3" + checksum: 10c0/eef19cb9cf5e91e91e3e0f036b799ce6c72f79463c3934d62991c3dcdb58f6c94dc3d806495d9b0bf31cd121870ed79bb2115cea71b56c03e794fb71485031fa + languageName: node + linkType: hard + +"borsh@npm:^0.7.0": + version: 0.7.0 + resolution: "borsh@npm:0.7.0" + dependencies: + bn.js: "npm:^5.2.0" + bs58: "npm:^4.0.0" + text-encoding-utf-8: "npm:^1.0.2" + checksum: 10c0/513b3e51823d2bf5be77cec27742419d2b0427504825dd7ceb00dedb820f246a4762f04b83d5e3aa39c8e075b3cbaeb7ca3c90bd1cbeecccb4a510575be8c581 + languageName: node + linkType: hard + +"bs58@npm:^4.0.0, bs58@npm:^4.0.1": + version: 4.0.1 + resolution: "bs58@npm:4.0.1" + dependencies: + base-x: "npm:^3.0.2" + checksum: 10c0/613a1b1441e754279a0e3f44d1faeb8c8e838feef81e550efe174ff021dd2e08a4c9ae5805b52dfdde79f97b5c0918c78dd24a0eb726c4a94365f0984a0ffc65 + languageName: node + linkType: hard + +"buffer-layout@npm:^1.2.0, buffer-layout@npm:^1.2.2": + version: 1.2.2 + resolution: "buffer-layout@npm:1.2.2" + checksum: 10c0/d90d1f622f592553555dd290d0e6dd0bababb2566655d0728812b2667af5a23d795929c38c25f5065252024fa29d75ea54eeb6f469d69814f4ebf614c6672acf + languageName: node + linkType: hard + +"buffer@npm:6.0.3, buffer@npm:^6.0.3, buffer@npm:~6.0.3": + version: 6.0.3 + resolution: "buffer@npm:6.0.3" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.2.1" + checksum: 10c0/2a905fbbcde73cc5d8bd18d1caa23715d5f83a5935867c2329f0ac06104204ba7947be098fe1317fbd8830e26090ff8e764f08cd14fefc977bb248c3487bcbd0 + languageName: node + linkType: hard + +"bufferutil@npm:^4.0.1": + version: 4.1.0 + resolution: "bufferutil@npm:4.1.0" + dependencies: + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.3.0" + checksum: 10c0/12d63bbc80a3b6525bc62a28387fca0a5aed09e41b74375c500e60721b6a1ab2960b82e48f1773eddea2b14e490f129214b8b57bd6e1a5078b6235857d658508 + languageName: node + linkType: hard + +"camelcase@npm:^6.3.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 10c0/0d701658219bd3116d12da3eab31acddb3f9440790c0792e0d398f0a520a6a4058018e546862b6fba89d7ae990efaeb97da71e1913e9ebf5a8b5621a3d55c710 + languageName: node + linkType: hard + +"chalk@npm:5.6.2, chalk@npm:^5.4.1": + version: 5.6.2 + resolution: "chalk@npm:5.6.2" + checksum: 10c0/99a4b0f0e7991796b1e7e3f52dceb9137cae2a9dfc8fc0784a550dc4c558e15ab32ed70b14b21b52beb2679b4892b41a0aa44249bcb996f01e125d58477c6976 + languageName: node + linkType: hard + +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: 10c0/43925b87700f7e3893296c8e9c56cc58f926411cce3a6e5898136daaf08f08b9a8eb76d37d3267e707d0dcc17aed2e2ebdf5848c0c3ce95cf910a919935c1b10 + languageName: node + linkType: hard + +"commander@npm:14.0.3, commander@npm:^14.0.0": + version: 14.0.3 + resolution: "commander@npm:14.0.3" + checksum: 10c0/755652564bbf56ff2ff083313912b326450d3f8d8c85f4b71416539c9a05c3c67dbd206821ca72635bf6b160e2afdefcb458e86b317827d5cb333b69ce7f1a24 + languageName: node + linkType: hard + +"commander@npm:^2.20.3": + version: 2.20.3 + resolution: "commander@npm:2.20.3" + checksum: 10c0/74c781a5248c2402a0a3e966a0a2bba3c054aad144f5c023364be83265e796b20565aa9feff624132ff629aa64e16999fa40a743c10c12f7c61e96a794b99288 + languageName: node + linkType: hard + +"cross-fetch@npm:^3.1.5": + version: 3.2.0 + resolution: "cross-fetch@npm:3.2.0" + dependencies: + node-fetch: "npm:^2.7.0" + checksum: 10c0/d8596adf0269130098a676f6739a0922f3cc7b71cc89729925411ebe851a87026171c82ea89154c4811c9867c01c44793205a52e618ce2684650218c7fbeeb9f + languageName: node + linkType: hard + +"delay@npm:^5.0.0": + version: 5.0.0 + resolution: "delay@npm:5.0.0" + checksum: 10c0/01cdc4cd0cd35fb622518a3df848e67e09763a38e7cdada2232b6fda9ddda72eddcf74f0e24211200fbe718434f2335f2a2633875a6c96037fefa6de42896ad7 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 + languageName: node + linkType: hard + +"es6-promise@npm:^4.0.3": + version: 4.2.8 + resolution: "es6-promise@npm:4.2.8" + checksum: 10c0/2373d9c5e9a93bdd9f9ed32ff5cb6dd3dd785368d1c21e9bbbfd07d16345b3774ae260f2bd24c8f836a6903f432b4151e7816a7fa8891ccb4e1a55a028ec42c3 + languageName: node + linkType: hard + +"es6-promisify@npm:^5.0.0": + version: 5.0.0 + resolution: "es6-promisify@npm:5.0.0" + dependencies: + es6-promise: "npm:^4.0.3" + checksum: 10c0/23284c6a733cbf7842ec98f41eac742c9f288a78753c4fe46652bae826446ced7615b9e8a5c5f121a08812b1cd478ea58630f3e1c3d70835bd5dcd69c7cd75c9 + languageName: node + linkType: hard + +"eventemitter3@npm:^4.0.7": + version: 4.0.7 + resolution: "eventemitter3@npm:4.0.7" + checksum: 10c0/5f6d97cbcbac47be798e6355e3a7639a84ee1f7d9b199a07017f1d2f1e2fe236004d14fa5dfaeba661f94ea57805385e326236a6debbc7145c8877fbc0297c6b + languageName: node + linkType: hard + +"eventemitter3@npm:^5.0.1": + version: 5.0.4 + resolution: "eventemitter3@npm:5.0.4" + checksum: 10c0/575b8cac8d709e1473da46f8f15ef311b57ff7609445a7c71af5cd42598583eee6f098fa7a593e30f27e94b8865642baa0689e8fa97c016f742abdb3b1bf6d9a + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.3 + resolution: "exponential-backoff@npm:3.1.3" + checksum: 10c0/77e3ae682b7b1f4972f563c6dbcd2b0d54ac679e62d5d32f3e5085feba20483cf28bd505543f520e287a56d4d55a28d7874299941faf637e779a1aa5994d1267 + languageName: node + linkType: hard + +"eyes@npm:^0.1.8": + version: 0.1.8 + resolution: "eyes@npm:0.1.8" + checksum: 10c0/4c79a9cbf45746d8c9f48cc957e35ad8ea336add1c7b8d5a0e002efc791a7a62b27b2188184ef1a1eea7bc3cd06b161791421e0e6c5fe78309705a162c53eea8 + languageName: node + linkType: hard + +"fast-stable-stringify@npm:^1.0.0": + version: 1.0.0 + resolution: "fast-stable-stringify@npm:1.0.0" + checksum: 10c0/1d773440c7a9615950577665074746c2e92edafceefa789616ecb6166229e0ccc6dae206ca9b9f7da0d274ba5779162aab2d07940a0f6e52a41a4e555392eb3b + languageName: node + linkType: hard + +"fdir@npm:^6.5.0": + version: 6.5.0 + resolution: "fdir@npm:6.5.0" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 10c0/e345083c4306b3aed6cb8ec551e26c36bab5c511e99ea4576a16750ddc8d3240e63826cc624f5ae17ad4dc82e68a253213b60d556c11bfad064b7607847ed07f + languageName: node + linkType: hard + +"graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 + languageName: node + linkType: hard + +"humanize-ms@npm:^1.2.1": + version: 1.2.1 + resolution: "humanize-ms@npm:1.2.1" + dependencies: + ms: "npm:^2.0.0" + checksum: 10c0/f34a2c20161d02303c2807badec2f3b49cbfbbb409abd4f95a07377ae01cfe6b59e3d15ac609cffcd8f2521f0eb37b7e1091acf65da99aa2a4f1ad63c21e7e7a + languageName: node + linkType: hard + +"ieee754@npm:^1.2.1": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb + languageName: node + linkType: hard + +"isexe@npm:^4.0.0": + version: 4.0.0 + resolution: "isexe@npm:4.0.0" + checksum: 10c0/5884815115bceac452877659a9c7726382531592f43dc29e5d48b7c4100661aed54018cb90bd36cb2eaeba521092570769167acbb95c18d39afdccbcca06c5ce + languageName: node + linkType: hard + +"isomorphic-ws@npm:^4.0.1": + version: 4.0.1 + resolution: "isomorphic-ws@npm:4.0.1" + peerDependencies: + ws: "*" + checksum: 10c0/7cb90dc2f0eb409825558982fb15d7c1d757a88595efbab879592f9d2b63820d6bbfb5571ab8abe36c715946e165a413a99f6aafd9f40ab1f514d73487bc9996 + languageName: node + linkType: hard + +"jayson@npm:^4.1.1": + version: 4.3.0 + resolution: "jayson@npm:4.3.0" + dependencies: + "@types/connect": "npm:^3.4.33" + "@types/node": "npm:^12.12.54" + "@types/ws": "npm:^7.4.4" + commander: "npm:^2.20.3" + delay: "npm:^5.0.0" + es6-promisify: "npm:^5.0.0" + eyes: "npm:^0.1.8" + isomorphic-ws: "npm:^4.0.1" + json-stringify-safe: "npm:^5.0.1" + stream-json: "npm:^1.9.1" + uuid: "npm:^8.3.2" + ws: "npm:^7.5.10" + bin: + jayson: bin/jayson.js + checksum: 10c0/d3d1ee1bd9d8b57eb6c13da83965e6052b030b24ee9ee6b8763ea33e986d7f161428bda8a3f5e4b30e0194867fe48ef0652db521363ccc6227b89d7998f0dbda + languageName: node + linkType: hard + +"json-stringify-safe@npm:^5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 + languageName: node + linkType: hard + +"litesvm-darwin-arm64@npm:1.1.0": + version: 1.1.0 + resolution: "litesvm-darwin-arm64@npm:1.1.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"litesvm-darwin-x64@npm:1.1.0": + version: 1.1.0 + resolution: "litesvm-darwin-x64@npm:1.1.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"litesvm-linux-arm64-gnu@npm:1.1.0": + version: 1.1.0 + resolution: "litesvm-linux-arm64-gnu@npm:1.1.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"litesvm-linux-arm64-musl@npm:1.1.0": + version: 1.1.0 + resolution: "litesvm-linux-arm64-musl@npm:1.1.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"litesvm-linux-x64-gnu@npm:1.1.0": + version: 1.1.0 + resolution: "litesvm-linux-x64-gnu@npm:1.1.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"litesvm-linux-x64-musl@npm:1.1.0": + version: 1.1.0 + resolution: "litesvm-linux-x64-musl@npm:1.1.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"litesvm@npm:1.1.0": + version: 1.1.0 + resolution: "litesvm@npm:1.1.0" + dependencies: + "@solana-program/system": "npm:^0.12.0" + "@solana-program/token": "npm:^0.13.0" + "@solana/kit": "npm:^6.9.0" + litesvm-darwin-arm64: "npm:1.1.0" + litesvm-darwin-x64: "npm:1.1.0" + litesvm-linux-arm64-gnu: "npm:1.1.0" + litesvm-linux-arm64-musl: "npm:1.1.0" + litesvm-linux-x64-gnu: "npm:1.1.0" + litesvm-linux-x64-musl: "npm:1.1.0" + dependenciesMeta: + litesvm-darwin-arm64: + optional: true + litesvm-darwin-x64: + optional: true + litesvm-linux-arm64-gnu: + optional: true + litesvm-linux-arm64-musl: + optional: true + litesvm-linux-x64-gnu: + optional: true + litesvm-linux-x64-musl: + optional: true + checksum: 10c0/94052d9c7439e920486d0a90b82113793ce6f3c2b65ddf2dbc6ebc53e5e542aa9f1377b6302bc25bb29c918055e5e93b5a9353d508d562ebd7fafceb9e06775e + languageName: node + linkType: hard + +"minipass@npm:^7.0.4, minipass@npm:^7.1.2": + version: 7.1.3 + resolution: "minipass@npm:7.1.3" + checksum: 10c0/539da88daca16533211ea5a9ee98dc62ff5742f531f54640dd34429e621955e91cc280a91a776026264b7f9f6735947629f920944e9c1558369e8bf22eb33fbb + languageName: node + linkType: hard + +"minizlib@npm:^3.1.0": + version: 3.1.0 + resolution: "minizlib@npm:3.1.0" + dependencies: + minipass: "npm:^7.1.2" + checksum: 10c0/5aad75ab0090b8266069c9aabe582c021ae53eb33c6c691054a13a45db3b4f91a7fb1bd79151e6b4e9e9a86727b522527c0a06ec7d45206b745d54cd3097bcec + languageName: node + linkType: hard + +"ms@npm:^2.0.0": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 + languageName: node + linkType: hard + +"node-fetch@npm:^2.7.0": + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" + dependencies: + whatwg-url: "npm:^5.0.0" + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 10c0/b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8 + languageName: node + linkType: hard + +"node-gyp-build@npm:^4.3.0": + version: 4.8.4 + resolution: "node-gyp-build@npm:4.8.4" + bin: + node-gyp-build: bin.js + node-gyp-build-optional: optional.js + node-gyp-build-test: build-test.js + checksum: 10c0/444e189907ece2081fe60e75368784f7782cfddb554b60123743dfb89509df89f1f29c03bbfa16b3a3e0be3f48799a4783f487da6203245fa5bed239ba7407e1 + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 12.3.0 + resolution: "node-gyp@npm:12.3.0" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + graceful-fs: "npm:^4.2.6" + nopt: "npm:^9.0.0" + proc-log: "npm:^6.0.0" + semver: "npm:^7.3.5" + tar: "npm:^7.5.4" + tinyglobby: "npm:^0.2.12" + undici: "npm:^6.25.0" + which: "npm:^6.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10c0/9d9032b405cbe42f72a105259d9eb679376470c102df4a2dbaa51e07d59bf741dcffb85897087ea9d8318b9cabb824a8978af51508ae142f0239ae1e6a3c2329 + languageName: node + linkType: hard + +"nopt@npm:^9.0.0": + version: 9.0.0 + resolution: "nopt@npm:9.0.0" + dependencies: + abbrev: "npm:^4.0.0" + bin: + nopt: bin/nopt.js + checksum: 10c0/1822eb6f9b020ef6f7a7516d7b64a8036e09666ea55ac40416c36e4b2b343122c3cff0e2f085675f53de1d2db99a2a89a60ccea1d120bcd6a5347bf6ceb4a7fd + languageName: node + linkType: hard + +"pako@npm:^2.0.3": + version: 2.1.0 + resolution: "pako@npm:2.1.0" + checksum: 10c0/8e8646581410654b50eb22a5dfd71159cae98145bd5086c9a7a816ec0370b5f72b4648d08674624b3870a521e6a3daffd6c2f7bc00fdefc7063c9d8232ff5116 + languageName: node + linkType: hard + +"picomatch@npm:^4.0.4": + version: 4.0.4 + resolution: "picomatch@npm:4.0.4" + checksum: 10c0/e2c6023372cc7b5764719a5ffb9da0f8e781212fa7ca4bd0562db929df8e117460f00dff3cb7509dacfc06b86de924b247f504d0ce1806a37fac4633081466b0 + languageName: node + linkType: hard + +"proc-log@npm:^6.0.0": + version: 6.1.0 + resolution: "proc-log@npm:6.1.0" + checksum: 10c0/4f178d4062733ead9d71a9b1ab24ebcecdfe2250916a5b1555f04fe2eda972a0ec76fbaa8df1ad9c02707add6749219d118a4fc46dc56bdfe4dde4b47d80bb82 + languageName: node + linkType: hard + +"rpc-websockets@npm:^9.0.2": + version: 9.3.9 + resolution: "rpc-websockets@npm:9.3.9" + dependencies: + "@swc/helpers": "npm:^0.5.11" + "@types/uuid": "npm:^10.0.0" + "@types/ws": "npm:^8.2.2" + buffer: "npm:^6.0.3" + bufferutil: "npm:^4.0.1" + eventemitter3: "npm:^5.0.1" + utf-8-validate: "npm:^6.0.0" + uuid: "npm:^14.0.0" + ws: "npm:^8.5.0" + dependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/080015638cef0a4d5ea6d941bea12e52447b867ee5a07939a4d856609d05de84a6b5c01c7c3555b86e85780a361f800eadc1a014929fa48f18f0fecda8096d75 + languageName: node + linkType: hard + +"safe-buffer@npm:^5.0.1": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 + languageName: node + linkType: hard + +"semver@npm:^7.3.5": + version: 7.8.1 + resolution: "semver@npm:7.8.1" + bin: + semver: bin/semver.js + checksum: 10c0/92d6871d6347e1f99d0ba396a70f2545ccf2a032cda3d378fa0699edf7506b5c6d266aed55c8b88e72bd91a30d2351e4f39db479375374430fcdc4b58f4e3c1a + languageName: node + linkType: hard + +"stream-chain@npm:^2.2.5": + version: 2.2.5 + resolution: "stream-chain@npm:2.2.5" + checksum: 10c0/c512f50190d7c92d688fa64e7af540c51b661f9c2b775fc72bca38ea9bca515c64c22c2197b1be463741daacbaaa2dde8a8ea24ebda46f08391224f15249121a + languageName: node + linkType: hard + +"stream-json@npm:^1.9.1": + version: 1.9.1 + resolution: "stream-json@npm:1.9.1" + dependencies: + stream-chain: "npm:^2.2.5" + checksum: 10c0/0521e5cb3fb6b0e2561d715975e891bd81fa77d0239c8d0b1756846392bc3c7cdd7f1ddb0fe7ed77e6fdef58daab9e665d3b39f7d677bd0859e65a2bff59b92c + languageName: node + linkType: hard + +"superstruct@npm:^0.15.4": + version: 0.15.5 + resolution: "superstruct@npm:0.15.5" + checksum: 10c0/73ae2043443dcc7868da6e8b4e4895410c79a88e021b514c665161199675ee920d5eadd85bb9dee5a9f515817e62f4b65a67ccb82d29f73259d012afcbcd3ce4 + languageName: node + linkType: hard + +"superstruct@npm:^2.0.2": + version: 2.0.2 + resolution: "superstruct@npm:2.0.2" + checksum: 10c0/c6853db5240b4920f47b3c864dd1e23ede6819ea399ad29a65387d746374f6958c5f1c5b7e5bb152d9db117a74973e5005056d9bb83c24e26f18ec6bfae4a718 + languageName: node + linkType: hard + +"tar@npm:^7.5.4": + version: 7.5.16 + resolution: "tar@npm:7.5.16" + dependencies: + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.1.0" + yallist: "npm:^5.0.0" + checksum: 10c0/4f37f3c4bd2ca2755fd736a5df1d573c1a868ec1b1e893346aeafa95ac510f9e2fd1469420bd866cc7904799e5bd4ac62b5d4f03fe27747d6e1e373b44505c5c + languageName: node + linkType: hard + +"test-utils@workspace:.": + version: 0.0.0-use.local + resolution: "test-utils@workspace:." + dependencies: + "@coral-xyz/anchor": "npm:0.32.1" + "@magicblock-labs/magicsvm": "npm:^0.1.1" + "@solana/keys": "npm:^6.9.0" + "@solana/kit": "npm:^6.9.0" + "@solana/web3.js": "npm:^3.0.0-rc.1" + tweetnacl: "npm:^1.0.3" + languageName: unknown + linkType: soft + +"text-encoding-utf-8@npm:^1.0.2": + version: 1.0.2 + resolution: "text-encoding-utf-8@npm:1.0.2" + checksum: 10c0/87a64b394c850e8387c2ca7fc6929a26ce97fb598f1c55cd0fdaec4b8e2c3ed6770f65b2f3309c9175ef64ac5e403c8e48b53ceeb86d2897940c5e19cc00bb99 + languageName: node + linkType: hard + +"tinyglobby@npm:^0.2.12": + version: 0.2.17 + resolution: "tinyglobby@npm:0.2.17" + dependencies: + fdir: "npm:^6.5.0" + picomatch: "npm:^4.0.4" + checksum: 10c0/7f7bb0f197c88bc4b20c231e0deca4240ca3bf313a88f5a7fee93a872b84966a4d50220947c0455ad07a60b3b360961c5b7fd979222aeb716a9f99b412002e4c + languageName: node + linkType: hard + +"toml@npm:^3.0.0": + version: 3.0.0 + resolution: "toml@npm:3.0.0" + checksum: 10c0/8d7ed3e700ca602e5419fca343e1c595eb7aa177745141f0761a5b20874b58ee5c878cd045c408da9d130cb2b611c639912210ba96ce2f78e443569aa8060c18 + languageName: node + linkType: hard + +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11 + languageName: node + linkType: hard + +"tslib@npm:^2.8.0": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 + languageName: node + linkType: hard + +"tweetnacl@npm:^1.0.3": + version: 1.0.3 + resolution: "tweetnacl@npm:1.0.3" + checksum: 10c0/069d9df51e8ad4a89fbe6f9806c68e06c65be3c7d42f0701cc43dba5f0d6064686b238bbff206c5addef8854e3ce00c643bff59432ea2f2c639feab0ee1a93f9 + languageName: node + linkType: hard + +"undici-types@npm:>=7.24.0 <7.24.7": + version: 7.24.6 + resolution: "undici-types@npm:7.24.6" + checksum: 10c0/d9cd8befb643ac904615c280a095ba4240531f6bb4a5e75a22a7483630ca8d3f1016d2ab6ace6ceda1f63b3a2db2fe037fafe121d6917a0187573aa548ff78ca + languageName: node + linkType: hard + +"undici-types@npm:^8.2.0": + version: 8.3.0 + resolution: "undici-types@npm:8.3.0" + checksum: 10c0/c8aa7e2fbebfce519654dafadc0ece59be888d2ccaf180fb4495da875e7b536d2456345c384069c7e6f3e9c9ab7435f074957da306f142343eee86ff8048855a + languageName: node + linkType: hard + +"undici@npm:^6.25.0": + version: 6.26.0 + resolution: "undici@npm:6.26.0" + checksum: 10c0/cf2b4caf58c33d6582970991290cc7a6486d6e738845f25dcdd16952d708ec844815c6d30362919764fcaf30f719891289341f1ada496f003ce2700310453a47 + languageName: node + linkType: hard + +"utf-8-validate@npm:^6.0.0": + version: 6.0.6 + resolution: "utf-8-validate@npm:6.0.6" + dependencies: + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.3.0" + checksum: 10c0/88c3581c43b9f824f0939b0da0ecf0cf092ff944ace7be517a5459bc18fe1884fc4acda3502ed369b4ce44baf40590a8f1e820c43a425df0758f2ba76b055f77 + languageName: node + linkType: hard + +"uuid@npm:^14.0.0": + version: 14.0.0 + resolution: "uuid@npm:14.0.0" + bin: + uuid: dist-node/bin/uuid + checksum: 10c0/a57ae7794c45005c1a9208989196c5baf79a7679c30f43c1bee9033a2c4d113a2cea216fa6fcc9663b08b0d55635df1a7c6eb7e7f3d21c3e50688c698fa39a50 + languageName: node + linkType: hard + +"uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 10c0/bcbb807a917d374a49f475fae2e87fdca7da5e5530820ef53f65ba1d12131bd81a92ecf259cc7ce317cbe0f289e7d79fdfebcef9bfa3087c8c8a2fa304c9be54 + languageName: node + linkType: hard + +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db + languageName: node + linkType: hard + +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: "npm:~0.0.3" + webidl-conversions: "npm:^3.0.0" + checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5 + languageName: node + linkType: hard + +"which@npm:^6.0.0": + version: 6.0.1 + resolution: "which@npm:6.0.1" + dependencies: + isexe: "npm:^4.0.0" + bin: + node-which: bin/which.js + checksum: 10c0/7e710e54ea36d2d6183bee2f9caa27a3b47b9baf8dee55a199b736fcf85eab3b9df7556fca3d02b50af7f3dfba5ea3a45644189836df06267df457e354da66d5 + languageName: node + linkType: hard + +"ws@npm:^7.5.10": + version: 7.5.11 + resolution: "ws@npm:7.5.11" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/7972670b676fb1ccba73b0899ca3c2e04e8c2075629c2614cced7f556536f96a672bbf4619fc5a06c8b8720bb839a47ca88c69c95dc14c9c61a99fbecba1c866 + languageName: node + linkType: hard + +"ws@npm:^8.19.0, ws@npm:^8.5.0": + version: 8.21.0 + resolution: "ws@npm:8.21.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/ef4a243476283fc49bc7550966c4af4aa0eef56273837211e700de3b664e08604a760cdddcb5ba43c049140e74ccfec5b0ee0bb439e08c2adf9138902fdde5f9 + languageName: node + linkType: hard + +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: 10c0/a499c81ce6d4a1d260d4ea0f6d49ab4da09681e32c3f0472dee16667ed69d01dae63a3b81745a24bd78476ec4fcf856114cb4896ace738e01da34b2c42235416 + languageName: node + linkType: hard