diff --git a/clients/js/package-lock.json b/clients/js/package-lock.json index 6b8efea85..8d55e2e69 100644 --- a/clients/js/package-lock.json +++ b/clients/js/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "dependencies": { "@celo-tools/celo-ethers-wrapper": "^0.1.0", - "@certusone/wormhole-sdk": "^0.8.0", + "@certusone/wormhole-sdk": "^0.9.2", "@cosmjs/encoding": "^0.26.2", "@injectivelabs/networks": "^1.0.35", "@injectivelabs/sdk-ts": "^1.0.199", @@ -524,29 +524,32 @@ } }, "node_modules/@certusone/wormhole-sdk": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.8.0.tgz", - "integrity": "sha512-0TMtLLXSbBgN2QdZASZNb8aDm6I1vawI7MLiIcgcuaEm/Ip8/mf6jWOMoptCyneNCFGuxQ8XIP43oReK6b4dyA==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.9.2.tgz", + "integrity": "sha512-Ffpn4ialdgpN/0q+IyduKlhecrwysRh/kGkpLPn+ox0QF1i8Q5cByWLwhoGY+kNONTEcHhwkUEhFdrMrMR7PRw==", "dependencies": { - "@certusone/wormhole-sdk-proto-web": "^0.0.5", + "@certusone/wormhole-sdk-proto-web": "0.0.6", "@certusone/wormhole-sdk-wasm": "^0.0.1", - "@injectivelabs/sdk-ts": "^1.0.75", - "@solana/spl-token": "^0.1.8", - "@solana/web3.js": "^1.24.0", + "@injectivelabs/sdk-ts": "^1.0.211", + "@project-serum/anchor": "^0.25.0", + "@solana/spl-token": "^0.3.5", + "@solana/web3.js": "^1.66.2", "@terra-money/terra.js": "^3.1.3", "@xpla/xpla.js": "^0.2.1", "algosdk": "^1.15.0", "aptos": "^1.3.16", "axios": "^0.24.0", "bech32": "^2.0.0", + "binary-parser": "^2.2.1", + "elliptic": "^6.5.4", "js-base64": "^3.6.1", "near-api-js": "^1.0.0" } }, "node_modules/@certusone/wormhole-sdk-proto-web": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.5.tgz", - "integrity": "sha512-shZo7FG2Idu2RCTBU4f4KXQpzmSgb4ymtstTQrCDmIG0NPhGfraDMjESqMHtPd+aCcLrEnq/k2JBIeUKb0ThvQ==", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.6.tgz", + "integrity": "sha512-LTyjsrWryefx5WmkoBP6FQ2EjLxhMExAGxLkloHUhufVQZdrbGh0htBBUviP+HaDSJBCMPMtulNFwkBJV6muqQ==", "dependencies": { "@improbable-eng/grpc-web": "^0.15.0", "protobufjs": "^7.0.0", @@ -565,9 +568,9 @@ } }, "node_modules/@certusone/wormhole-sdk-proto-web/node_modules/long": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz", - "integrity": "sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", + "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" }, "node_modules/@certusone/wormhole-sdk-proto-web/node_modules/protobufjs": { "version": "7.1.2", @@ -611,16 +614,6 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "node_modules/@certusone/wormhole-sdk/node_modules/borsh": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", - "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", - "dependencies": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" - } - }, "node_modules/@certusone/wormhole-sdk/node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -2039,13 +2032,13 @@ } }, "node_modules/@injectivelabs/exceptions": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.0.24.tgz", - "integrity": "sha512-OF3riPMOmItbhjk0S5GOXEm312ZF5C06060C8dPKIoQGkHwC25q/lAMVugzECPmm5oXRNEzKdzxXadCRi2YxFQ==", + "version": "1.0.27", + "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.0.27.tgz", + "integrity": "sha512-0IAQRMGI0v2CxEO6F7DlTDKjIiXxgEu7S12RWtTwNLLIM7XsoM8QaU4iW3J9yVdoZ3fR1PtSJP29HjXCF7kk2Q==", "hasInstallScript": true, "dependencies": { "@improbable-eng/grpc-web": "^0.15.0", - "@injectivelabs/ts-types": "^1.0.13", + "@injectivelabs/ts-types": "^1.0.16", "http-status-codes": "^2.2.0", "link-module-alias": "^1.2.0", "shx": "^0.3.2" @@ -2063,30 +2056,30 @@ } }, "node_modules/@injectivelabs/indexer-api": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-api/-/indexer-api-1.0.28.tgz", - "integrity": "sha512-gurL0Ow3kk7bcvTW7a3xaKRKnl/vjSzi4jjjtg1xj/wzISOJKBLQ/OJpbn90k/BbAcSEVLjwIqIiNgwNEIfPzw==", + "version": "1.0.31", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-api/-/indexer-api-1.0.31.tgz", + "integrity": "sha512-OtUiAsj41fIOfLQFQTAUBG/vJj5eKwzPNcUjCLBoiYZmGSwaWXVe9aTqtlbIP0Z+vmKreI1v6cwacNaxZnACVw==", "dependencies": { "@improbable-eng/grpc-web": "^0.14.0", "google-protobuf": "^3.14.0" } }, "node_modules/@injectivelabs/networks": { - "version": "1.0.35", - "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.0.35.tgz", - "integrity": "sha512-TgnwsMomzmm9MDaYwYsPNzn7TAiHYGdTjKHV/2i+8lf9p6SXsJSpRJm1rto9+iCSn6wxB9+n5GgTMOmiUmWnnA==", + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.0.39.tgz", + "integrity": "sha512-vRm/br12A4jwm8+0P7aMxNUMgCI6M0Ywi7ov7KMQKm55AE8AfKvxhe9ENUkp5iI2mV2cyTRLA5eu6WMQn4nYjw==", "hasInstallScript": true, "dependencies": { - "@injectivelabs/exceptions": "^1.0.24", - "@injectivelabs/utils": "^1.0.30", + "@injectivelabs/exceptions": "^1.0.27", + "@injectivelabs/utils": "^1.0.33", "link-module-alias": "^1.2.0", "shx": "^0.3.2" } }, "node_modules/@injectivelabs/sdk-ts": { - "version": "1.0.199", - "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.0.199.tgz", - "integrity": "sha512-v0IqqV9gEasKsmPESR1nwUJZTiE7fAtVeBFuUy2GOjv3AT8W6+87zLAB36OWepeM/pcvzAQCSDqNsih05UoryQ==", + "version": "1.0.214", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.0.214.tgz", + "integrity": "sha512-rJkJF7FP1Sc9H4aBt+PXTzcKlZMcI0Efzl9jcPf8EMBLJjPGsBt1TP633o9nj6cOp7CZrD8x13AxEdB0IUzgDw==", "hasInstallScript": true, "dependencies": { "@apollo/client": "^3.5.8", @@ -2098,12 +2091,12 @@ "@improbable-eng/grpc-web-node-http-transport": "^0.15.0", "@improbable-eng/grpc-web-react-native-transport": "^0.15.0", "@injectivelabs/chain-api": "1.8.2-no-tse", - "@injectivelabs/exceptions": "^1.0.24", - "@injectivelabs/indexer-api": "1.0.28", - "@injectivelabs/networks": "^1.0.35", - "@injectivelabs/token-metadata": "^1.0.49", - "@injectivelabs/ts-types": "^1.0.13", - "@injectivelabs/utils": "^1.0.30", + "@injectivelabs/exceptions": "^1.0.27", + "@injectivelabs/indexer-api": "1.0.31", + "@injectivelabs/networks": "^1.0.39", + "@injectivelabs/token-metadata": "^1.0.53", + "@injectivelabs/ts-types": "^1.0.16", + "@injectivelabs/utils": "^1.0.33", "@metamask/eth-sig-util": "^4.0.1", "@types/google-protobuf": "^3.15.5", "axios": "^0.27.2", @@ -2668,13 +2661,13 @@ } }, "node_modules/@injectivelabs/token-metadata": { - "version": "1.0.49", - "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.0.49.tgz", - "integrity": "sha512-g99PTbW6zKOlMvcxYem6ubPoRXSvlPJrzs9vhlm4Dhm6TwF77mGgkpUOioLUOlDpzGwgMueQdxqdO/ITQBv1Zg==", + "version": "1.0.53", + "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.0.53.tgz", + "integrity": "sha512-pv4FHjyYhuHxAuiCxTvAfVt8utJxlQIWQdhwsenSdFyY5lU6Hbp/hh1CYZQbUoEswuQiJI4xLzO09lG9m+9plA==", "hasInstallScript": true, "dependencies": { - "@injectivelabs/networks": "^1.0.35", - "@injectivelabs/ts-types": "^1.0.13", + "@injectivelabs/networks": "^1.0.39", + "@injectivelabs/ts-types": "^1.0.16", "@types/lodash.values": "^4.3.6", "copyfiles": "^2.4.1", "jsonschema": "^1.4.0", @@ -2685,9 +2678,9 @@ } }, "node_modules/@injectivelabs/ts-types": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.0.13.tgz", - "integrity": "sha512-qBJchLmXHvefuA7Yh6iyHbfPFDP9ldCAWfgHMW095BI+iycNxHRQSpf1VctkARv/pqhLlsEvDDlHA8MnfQ51kQ==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.0.16.tgz", + "integrity": "sha512-hoHqr4DeUGUt7Ljh7V6+2twW9Lb6YvORzOXO+vbWFwMamlY8FxxM1C4CPFR5qcx44QFRd6EHVK1NzBay6+4UBQ==", "hasInstallScript": true, "dependencies": { "link-module-alias": "^1.2.0", @@ -2747,13 +2740,13 @@ } }, "node_modules/@injectivelabs/utils": { - "version": "1.0.30", - "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.0.30.tgz", - "integrity": "sha512-x8JA7JZCObcG5XDaA6U7OvvKbK4e9rPcAu3Cox0c1JA5kZKa2G963OzZkBaocLYVObTB5FXzyJgAz77J2j/9Zg==", + "version": "1.0.33", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.0.33.tgz", + "integrity": "sha512-GDhtu3Vc0ZXRMQ8cUuImPiUMmQJwyLONDYs7VW/Ln262wHNvbImeuGGeJ+HQjON7feRfA0xXCqv2ZISdfVBIIg==", "hasInstallScript": true, "dependencies": { - "@injectivelabs/exceptions": "^1.0.24", - "@injectivelabs/ts-types": "^1.0.13", + "@injectivelabs/exceptions": "^1.0.27", + "@injectivelabs/ts-types": "^1.0.16", "axios": "^0.21.1", "bignumber.js": "^9.0.1", "link-module-alias": "^1.2.0", @@ -2870,6 +2863,17 @@ "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==", "dev": true }, + "node_modules/@noble/ed25519": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.1.tgz", + "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, "node_modules/@noble/hashes": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", @@ -2885,7 +2889,6 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz", "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==", - "dev": true, "funding": [ { "type": "individual", @@ -2893,6 +2896,59 @@ } ] }, + "node_modules/@project-serum/anchor": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", + "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", + "dependencies": { + "@project-serum/borsh": "^0.2.5", + "@solana/web3.js": "^1.36.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^5.3.1", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "engines": { + "node": ">=11" + } + }, + "node_modules/@project-serum/anchor/node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/@project-serum/anchor/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==" + }, + "node_modules/@project-serum/borsh": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", + "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.2.0" + } + }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -2991,8 +3047,9 @@ } }, "node_modules/@solana/buffer-layout": { - "version": "3.0.0", - "license": "MIT", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz", + "integrity": "sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ==", "dependencies": { "buffer": "~6.0.3" }, @@ -3000,8 +3057,24 @@ "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==", + "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/buffer-layout/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", @@ -3016,26 +3089,25 @@ "url": "https://feross.org/support" } ], - "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, "node_modules/@solana/spl-token": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.1.8.tgz", - "integrity": "sha512-LZmYCKcPQDtJgecvWOgT/cnoIQPWjdH+QVyzPcFvyDUiT0DiRjZaam4aqNUyvchLFhzgunv3d9xOoyE34ofdoQ==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.6.tgz", + "integrity": "sha512-P9pTXjDIRvVbjr3J0mCnSamYqLnICeds7IoH1/Ro2R9OBuOHdp5pqKZoscfZ3UYrgnCWUc1bc9M2m/YPHjw+1g==", "dependencies": { - "@babel/runtime": "^7.10.5", - "@solana/web3.js": "^1.21.0", - "bn.js": "^5.1.0", - "buffer": "6.0.3", - "buffer-layout": "^1.2.0", - "dotenv": "10.0.0" + "@solana/buffer-layout": "^4.0.0", + "@solana/buffer-layout-utils": "^0.2.0", + "buffer": "^6.0.3" }, "engines": { - "node": ">= 10" + "node": ">=16" + }, + "peerDependencies": { + "@solana/web3.js": "^1.47.4" } }, "node_modules/@solana/spl-token/node_modules/buffer": { @@ -3062,37 +3134,30 @@ } }, "node_modules/@solana/web3.js": { - "version": "1.34.0", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.34.0.tgz", - "integrity": "sha512-6QvqN2DqEELvuV+5yUQM8P9fRiSG+6SzQ58HjumJqODu14r7eu5HXVWEymvKAvMLGME+0TmAdJHjw9xD5NgUWA==", + "version": "1.66.2", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.66.2.tgz", + "integrity": "sha512-RyaHMR2jGmaesnYP045VLeBGfR/gAW3cvZHzMFGg7bkO+WOYOYp1nEllf0/la4U4qsYGKCsO9eEevR5fhHiVHg==", "dependencies": { "@babel/runtime": "^7.12.5", - "@ethersproject/sha2": "^5.5.0", - "@solana/buffer-layout": "^3.0.0", + "@noble/ed25519": "^1.7.0", + "@noble/hashes": "^1.1.2", + "@noble/secp256k1": "^1.6.3", + "@solana/buffer-layout": "^4.0.0", + "bigint-buffer": "^1.1.5", "bn.js": "^5.0.0", - "borsh": "^0.4.0", + "borsh": "^0.7.0", "bs58": "^4.0.1", "buffer": "6.0.1", - "cross-fetch": "^3.1.4", + "fast-stable-stringify": "^1.0.0", "jayson": "^3.4.4", - "js-sha3": "^0.8.0", - "rpc-websockets": "^7.4.2", - "secp256k1": "^4.0.2", - "superstruct": "^0.14.2", - "tweetnacl": "^1.0.0" + "node-fetch": "2", + "rpc-websockets": "^7.5.0", + "superstruct": "^0.14.2" }, "engines": { "node": ">=12.20.0" } }, - "node_modules/@solana/web3.js/node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dependencies": { - "node-fetch": "2.6.7" - } - }, "node_modules/@terra-money/legacy.proto": { "name": "@terra-money/terra.proto", "version": "0.1.7", @@ -3818,6 +3883,18 @@ "node": ">=0.6" } }, + "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==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.3.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/bignumber.js": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", @@ -3827,9 +3904,9 @@ } }, "node_modules/binary-parser": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.0.2.tgz", - "integrity": "sha512-F2JeaLmExQ0vOEbS5ERzkxePKWTPqJPV6Z04/owaXMQLlW1Kt9v2gUz3SocR40JQGtrUeZu3j6prZDeuEG8Dng==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", + "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==", "engines": { "node": ">=12" } @@ -3908,22 +3985,15 @@ "license": "MIT" }, "node_modules/borsh": { - "version": "0.4.0", - "license": "Apache-2.0", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", "dependencies": { - "@types/bn.js": "^4.11.5", - "bn.js": "^5.0.0", + "bn.js": "^5.2.0", "bs58": "^4.0.0", "text-encoding-utf-8": "^1.0.2" } }, - "node_modules/borsh/node_modules/@types/bn.js": { - "version": "4.11.6", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -4066,6 +4136,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001425", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001425.tgz", @@ -4369,6 +4447,17 @@ "sha3": "^2.1.1" } }, + "node_modules/crypto-hash": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", + "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -6354,6 +6443,11 @@ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz", "integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==" }, + "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==" + }, "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", @@ -7507,16 +7601,6 @@ "tweetnacl": "^1.0.1" } }, - "node_modules/near-api-js/node_modules/borsh": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", - "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", - "dependencies": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" - } - }, "node_modules/near-api-js/node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -7703,6 +7787,11 @@ "node": ">=8" } }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, "node_modules/parse-headers": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", @@ -8574,6 +8663,11 @@ "node": ">=0.6" } }, + "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==" + }, "node_modules/tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -9410,21 +9504,24 @@ "requires": {} }, "@certusone/wormhole-sdk": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.8.0.tgz", - "integrity": "sha512-0TMtLLXSbBgN2QdZASZNb8aDm6I1vawI7MLiIcgcuaEm/Ip8/mf6jWOMoptCyneNCFGuxQ8XIP43oReK6b4dyA==", + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.9.2.tgz", + "integrity": "sha512-Ffpn4ialdgpN/0q+IyduKlhecrwysRh/kGkpLPn+ox0QF1i8Q5cByWLwhoGY+kNONTEcHhwkUEhFdrMrMR7PRw==", "requires": { - "@certusone/wormhole-sdk-proto-web": "^0.0.5", + "@certusone/wormhole-sdk-proto-web": "0.0.6", "@certusone/wormhole-sdk-wasm": "^0.0.1", - "@injectivelabs/sdk-ts": "^1.0.75", - "@solana/spl-token": "^0.1.8", - "@solana/web3.js": "^1.24.0", + "@injectivelabs/sdk-ts": "^1.0.211", + "@project-serum/anchor": "^0.25.0", + "@solana/spl-token": "^0.3.5", + "@solana/web3.js": "^1.66.2", "@terra-money/terra.js": "^3.1.3", "@xpla/xpla.js": "^0.2.1", "algosdk": "^1.15.0", "aptos": "^1.3.16", "axios": "^0.24.0", "bech32": "^2.0.0", + "binary-parser": "^2.2.1", + "elliptic": "^6.5.4", "js-base64": "^3.6.1", "near-api-js": "^1.0.0" }, @@ -9439,16 +9536,6 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" }, - "borsh": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", - "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", - "requires": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" - } - }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -9475,9 +9562,9 @@ } }, "@certusone/wormhole-sdk-proto-web": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.5.tgz", - "integrity": "sha512-shZo7FG2Idu2RCTBU4f4KXQpzmSgb4ymtstTQrCDmIG0NPhGfraDMjESqMHtPd+aCcLrEnq/k2JBIeUKb0ThvQ==", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.6.tgz", + "integrity": "sha512-LTyjsrWryefx5WmkoBP6FQ2EjLxhMExAGxLkloHUhufVQZdrbGh0htBBUviP+HaDSJBCMPMtulNFwkBJV6muqQ==", "requires": { "@improbable-eng/grpc-web": "^0.15.0", "protobufjs": "^7.0.0", @@ -9493,9 +9580,9 @@ } }, "long": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.0.tgz", - "integrity": "sha512-9RTUNjK60eJbx3uz+TEGF7fUr29ZDxR5QzXcyDpeSfeH28S9ycINflOgOlppit5U+4kNTe83KQnMEerw7GmE8w==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz", + "integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==" }, "protobufjs": { "version": "7.1.2", @@ -10423,12 +10510,12 @@ } }, "@injectivelabs/exceptions": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.0.24.tgz", - "integrity": "sha512-OF3riPMOmItbhjk0S5GOXEm312ZF5C06060C8dPKIoQGkHwC25q/lAMVugzECPmm5oXRNEzKdzxXadCRi2YxFQ==", + "version": "1.0.27", + "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.0.27.tgz", + "integrity": "sha512-0IAQRMGI0v2CxEO6F7DlTDKjIiXxgEu7S12RWtTwNLLIM7XsoM8QaU4iW3J9yVdoZ3fR1PtSJP29HjXCF7kk2Q==", "requires": { "@improbable-eng/grpc-web": "^0.15.0", - "@injectivelabs/ts-types": "^1.0.13", + "@injectivelabs/ts-types": "^1.0.16", "http-status-codes": "^2.2.0", "link-module-alias": "^1.2.0", "shx": "^0.3.2" @@ -10445,29 +10532,29 @@ } }, "@injectivelabs/indexer-api": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-api/-/indexer-api-1.0.28.tgz", - "integrity": "sha512-gurL0Ow3kk7bcvTW7a3xaKRKnl/vjSzi4jjjtg1xj/wzISOJKBLQ/OJpbn90k/BbAcSEVLjwIqIiNgwNEIfPzw==", + "version": "1.0.31", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-api/-/indexer-api-1.0.31.tgz", + "integrity": "sha512-OtUiAsj41fIOfLQFQTAUBG/vJj5eKwzPNcUjCLBoiYZmGSwaWXVe9aTqtlbIP0Z+vmKreI1v6cwacNaxZnACVw==", "requires": { "@improbable-eng/grpc-web": "^0.14.0", "google-protobuf": "^3.14.0" } }, "@injectivelabs/networks": { - "version": "1.0.35", - "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.0.35.tgz", - "integrity": "sha512-TgnwsMomzmm9MDaYwYsPNzn7TAiHYGdTjKHV/2i+8lf9p6SXsJSpRJm1rto9+iCSn6wxB9+n5GgTMOmiUmWnnA==", + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.0.39.tgz", + "integrity": "sha512-vRm/br12A4jwm8+0P7aMxNUMgCI6M0Ywi7ov7KMQKm55AE8AfKvxhe9ENUkp5iI2mV2cyTRLA5eu6WMQn4nYjw==", "requires": { - "@injectivelabs/exceptions": "^1.0.24", - "@injectivelabs/utils": "^1.0.30", + "@injectivelabs/exceptions": "^1.0.27", + "@injectivelabs/utils": "^1.0.33", "link-module-alias": "^1.2.0", "shx": "^0.3.2" } }, "@injectivelabs/sdk-ts": { - "version": "1.0.199", - "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.0.199.tgz", - "integrity": "sha512-v0IqqV9gEasKsmPESR1nwUJZTiE7fAtVeBFuUy2GOjv3AT8W6+87zLAB36OWepeM/pcvzAQCSDqNsih05UoryQ==", + "version": "1.0.214", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.0.214.tgz", + "integrity": "sha512-rJkJF7FP1Sc9H4aBt+PXTzcKlZMcI0Efzl9jcPf8EMBLJjPGsBt1TP633o9nj6cOp7CZrD8x13AxEdB0IUzgDw==", "requires": { "@apollo/client": "^3.5.8", "@cosmjs/amino": "^0.29.0", @@ -10478,12 +10565,12 @@ "@improbable-eng/grpc-web-node-http-transport": "^0.15.0", "@improbable-eng/grpc-web-react-native-transport": "^0.15.0", "@injectivelabs/chain-api": "1.8.2-no-tse", - "@injectivelabs/exceptions": "^1.0.24", - "@injectivelabs/indexer-api": "1.0.28", - "@injectivelabs/networks": "^1.0.35", - "@injectivelabs/token-metadata": "^1.0.49", - "@injectivelabs/ts-types": "^1.0.13", - "@injectivelabs/utils": "^1.0.30", + "@injectivelabs/exceptions": "^1.0.27", + "@injectivelabs/indexer-api": "1.0.31", + "@injectivelabs/networks": "^1.0.39", + "@injectivelabs/token-metadata": "^1.0.53", + "@injectivelabs/ts-types": "^1.0.16", + "@injectivelabs/utils": "^1.0.33", "@metamask/eth-sig-util": "^4.0.1", "@types/google-protobuf": "^3.15.5", "axios": "^0.27.2", @@ -10881,12 +10968,12 @@ } }, "@injectivelabs/token-metadata": { - "version": "1.0.49", - "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.0.49.tgz", - "integrity": "sha512-g99PTbW6zKOlMvcxYem6ubPoRXSvlPJrzs9vhlm4Dhm6TwF77mGgkpUOioLUOlDpzGwgMueQdxqdO/ITQBv1Zg==", + "version": "1.0.53", + "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.0.53.tgz", + "integrity": "sha512-pv4FHjyYhuHxAuiCxTvAfVt8utJxlQIWQdhwsenSdFyY5lU6Hbp/hh1CYZQbUoEswuQiJI4xLzO09lG9m+9plA==", "requires": { - "@injectivelabs/networks": "^1.0.35", - "@injectivelabs/ts-types": "^1.0.13", + "@injectivelabs/networks": "^1.0.39", + "@injectivelabs/ts-types": "^1.0.16", "@types/lodash.values": "^4.3.6", "copyfiles": "^2.4.1", "jsonschema": "^1.4.0", @@ -10897,9 +10984,9 @@ } }, "@injectivelabs/ts-types": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.0.13.tgz", - "integrity": "sha512-qBJchLmXHvefuA7Yh6iyHbfPFDP9ldCAWfgHMW095BI+iycNxHRQSpf1VctkARv/pqhLlsEvDDlHA8MnfQ51kQ==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.0.16.tgz", + "integrity": "sha512-hoHqr4DeUGUt7Ljh7V6+2twW9Lb6YvORzOXO+vbWFwMamlY8FxxM1C4CPFR5qcx44QFRd6EHVK1NzBay6+4UBQ==", "requires": { "link-module-alias": "^1.2.0", "shx": "^0.3.2" @@ -10955,12 +11042,12 @@ } }, "@injectivelabs/utils": { - "version": "1.0.30", - "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.0.30.tgz", - "integrity": "sha512-x8JA7JZCObcG5XDaA6U7OvvKbK4e9rPcAu3Cox0c1JA5kZKa2G963OzZkBaocLYVObTB5FXzyJgAz77J2j/9Zg==", + "version": "1.0.33", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.0.33.tgz", + "integrity": "sha512-GDhtu3Vc0ZXRMQ8cUuImPiUMmQJwyLONDYs7VW/Ln262wHNvbImeuGGeJ+HQjON7feRfA0xXCqv2ZISdfVBIIg==", "requires": { - "@injectivelabs/exceptions": "^1.0.24", - "@injectivelabs/ts-types": "^1.0.13", + "@injectivelabs/exceptions": "^1.0.27", + "@injectivelabs/ts-types": "^1.0.16", "axios": "^0.21.1", "bignumber.js": "^9.0.1", "link-module-alias": "^1.2.0", @@ -11069,6 +11156,11 @@ "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==", "dev": true }, + "@noble/ed25519": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.1.tgz", + "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==" + }, "@noble/hashes": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", @@ -11077,8 +11169,53 @@ "@noble/secp256k1": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz", - "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==", - "dev": true + "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==" + }, + "@project-serum/anchor": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", + "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", + "requires": { + "@project-serum/borsh": "^0.2.5", + "@solana/web3.js": "^1.36.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^5.3.1", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "dependencies": { + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "requires": { + "node-fetch": "2.6.7" + } + }, + "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==" + } + } + }, + "@project-serum/borsh": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", + "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + } }, "@protobufjs/aspromise": { "version": "1.1.2", @@ -11160,13 +11297,17 @@ } }, "@solana/buffer-layout": { - "version": "3.0.0", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz", + "integrity": "sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ==", "requires": { "buffer": "~6.0.3" }, "dependencies": { "buffer": { "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "requires": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -11174,17 +11315,25 @@ } } }, - "@solana/spl-token": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.1.8.tgz", - "integrity": "sha512-LZmYCKcPQDtJgecvWOgT/cnoIQPWjdH+QVyzPcFvyDUiT0DiRjZaam4aqNUyvchLFhzgunv3d9xOoyE34ofdoQ==", + "@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==", "requires": { - "@babel/runtime": "^7.10.5", - "@solana/web3.js": "^1.21.0", - "bn.js": "^5.1.0", - "buffer": "6.0.3", - "buffer-layout": "^1.2.0", - "dotenv": "10.0.0" + "@solana/buffer-layout": "^4.0.0", + "@solana/web3.js": "^1.32.0", + "bigint-buffer": "^1.1.5", + "bignumber.js": "^9.0.1" + } + }, + "@solana/spl-token": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.6.tgz", + "integrity": "sha512-P9pTXjDIRvVbjr3J0mCnSamYqLnICeds7IoH1/Ro2R9OBuOHdp5pqKZoscfZ3UYrgnCWUc1bc9M2m/YPHjw+1g==", + "requires": { + "@solana/buffer-layout": "^4.0.0", + "@solana/buffer-layout-utils": "^0.2.0", + "buffer": "^6.0.3" }, "dependencies": { "buffer": { @@ -11199,34 +11348,25 @@ } }, "@solana/web3.js": { - "version": "1.34.0", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.34.0.tgz", - "integrity": "sha512-6QvqN2DqEELvuV+5yUQM8P9fRiSG+6SzQ58HjumJqODu14r7eu5HXVWEymvKAvMLGME+0TmAdJHjw9xD5NgUWA==", + "version": "1.66.2", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.66.2.tgz", + "integrity": "sha512-RyaHMR2jGmaesnYP045VLeBGfR/gAW3cvZHzMFGg7bkO+WOYOYp1nEllf0/la4U4qsYGKCsO9eEevR5fhHiVHg==", "requires": { "@babel/runtime": "^7.12.5", - "@ethersproject/sha2": "^5.5.0", - "@solana/buffer-layout": "^3.0.0", + "@noble/ed25519": "^1.7.0", + "@noble/hashes": "^1.1.2", + "@noble/secp256k1": "^1.6.3", + "@solana/buffer-layout": "^4.0.0", + "bigint-buffer": "^1.1.5", "bn.js": "^5.0.0", - "borsh": "^0.4.0", + "borsh": "^0.7.0", "bs58": "^4.0.1", "buffer": "6.0.1", - "cross-fetch": "^3.1.4", + "fast-stable-stringify": "^1.0.0", "jayson": "^3.4.4", - "js-sha3": "^0.8.0", - "rpc-websockets": "^7.4.2", - "secp256k1": "^4.0.2", - "superstruct": "^0.14.2", - "tweetnacl": "^1.0.0" - }, - "dependencies": { - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" - } - } + "node-fetch": "2", + "rpc-websockets": "^7.5.0", + "superstruct": "^0.14.2" } }, "@terra-money/legacy.proto": { @@ -11850,15 +11990,23 @@ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" }, + "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==", + "requires": { + "bindings": "^1.3.0" + } + }, "bignumber.js": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" }, "binary-parser": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.0.2.tgz", - "integrity": "sha512-F2JeaLmExQ0vOEbS5ERzkxePKWTPqJPV6Z04/owaXMQLlW1Kt9v2gUz3SocR40JQGtrUeZu3j6prZDeuEG8Dng==" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", + "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==" }, "bindings": { "version": "1.5.0", @@ -11934,20 +12082,13 @@ "version": "5.2.0" }, "borsh": { - "version": "0.4.0", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", "requires": { - "@types/bn.js": "^4.11.5", - "bn.js": "^5.0.0", + "bn.js": "^5.2.0", "bs58": "^4.0.0", "text-encoding-utf-8": "^1.0.2" - }, - "dependencies": { - "@types/bn.js": { - "version": "4.11.6", - "requires": { - "@types/node": "*" - } - } } }, "brace-expansion": { @@ -12044,6 +12185,11 @@ "get-intrinsic": "^1.0.2" } }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, "caniuse-lite": { "version": "1.0.30001425", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001425.tgz", @@ -12305,6 +12451,11 @@ "sha3": "^2.1.1" } }, + "crypto-hash": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", + "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==" + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -13733,6 +13884,11 @@ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz", "integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==" }, + "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==" + }, "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", @@ -14663,16 +14819,6 @@ "tweetnacl": "^1.0.1" }, "dependencies": { - "borsh": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", - "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", - "requires": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" - } - }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -14831,6 +14977,11 @@ } } }, + "pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, "parse-headers": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz", @@ -15496,6 +15647,11 @@ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" }, + "toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" + }, "tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", diff --git a/clients/js/package.json b/clients/js/package.json index 5fcdbfb08..0a5ff8b98 100644 --- a/clients/js/package.json +++ b/clients/js/package.json @@ -3,7 +3,7 @@ "version": "0.0.1", "dependencies": { "@celo-tools/celo-ethers-wrapper": "^0.1.0", - "@certusone/wormhole-sdk": "^0.8.0", + "@certusone/wormhole-sdk": "^0.9.2", "@cosmjs/encoding": "^0.26.2", "@injectivelabs/networks": "^1.0.35", "@injectivelabs/sdk-ts": "^1.0.199", diff --git a/clients/js/solana.ts b/clients/js/solana.ts index 29ccf541d..8a9223636 100644 --- a/clients/js/solana.ts +++ b/clients/js/solana.ts @@ -1,10 +1,28 @@ -import * as web3s from '@solana/web3.js' +import * as web3s from "@solana/web3.js"; import { NETWORKS } from "./networks"; import { impossible, Payload, VAA } from "./vaa"; import base58 from "bs58"; -import { CHAINS, CONTRACTS, SolanaChainName } from '@certusone/wormhole-sdk/lib/cjs/utils/consts'; -import { importCoreWasm, importNftWasm, importTokenWasm } from '@certusone/wormhole-sdk/lib/cjs/solana/wasm'; -import { ixFromRust, postVaaSolanaWithRetry } from '@certusone/wormhole-sdk/lib/cjs/solana'; +import { postVaaSolanaWithRetry } from "@certusone/wormhole-sdk/lib/cjs/solana"; +import { + CHAINS, + CONTRACTS, + SolanaChainName, +} from "@certusone/wormhole-sdk/lib/cjs/utils/consts"; +import { + createUpgradeContractInstruction as createWormholeUpgradeContractInstruction, + createUpgradeGuardianSetInstruction, +} from "@certusone/wormhole-sdk/lib/cjs/solana/wormhole"; +import { + createCompleteTransferNativeInstruction, + createCompleteTransferWrappedInstruction, + createCreateWrappedInstruction, + createRegisterChainInstruction as createTokenBridgeRegisterChainInstruction, + createUpgradeContractInstruction as createTokenBridgeUpgradeContractInstruction, +} from "@certusone/wormhole-sdk/lib/cjs/solana/tokenBridge"; +import { + createRegisterChainInstruction as createNFTBridgeRegisterChainInstruction, + createUpgradeContractInstruction as createNFTBridgeUpgradeContractInstruction, +} from "@certusone/wormhole-sdk/lib/cjs/solana/nftBridge"; export async function execute_solana( v: VAA, @@ -12,118 +30,165 @@ export async function execute_solana( network: "MAINNET" | "TESTNET" | "DEVNET", chain: SolanaChainName ) { - let ix: web3s.TransactionInstruction - let connection = setupConnection(NETWORKS[network][chain].rpc) - let bridge_id = new web3s.PublicKey(CONTRACTS[network][chain].core) - let token_bridge_id = CONTRACTS[network][chain].token_bridge && new web3s.PublicKey(CONTRACTS[network][chain].token_bridge) - let nft_bridge_id = CONTRACTS[network][chain].nft_bridge && new web3s.PublicKey(CONTRACTS[network][chain].nft_bridge) + let ix: web3s.TransactionInstruction; + const connection = setupConnection(NETWORKS[network][chain].rpc); + const bridgeId = new web3s.PublicKey(CONTRACTS[network][chain].core); + const tokenBridgeId = + CONTRACTS[network][chain].token_bridge && + new web3s.PublicKey(CONTRACTS[network][chain].token_bridge); + const nftBridgeId = + CONTRACTS[network][chain].nft_bridge && + new web3s.PublicKey(CONTRACTS[network][chain].nft_bridge); - let from = web3s.Keypair.fromSecretKey(base58.decode(NETWORKS[network][chain].key)) + const from = web3s.Keypair.fromSecretKey( + base58.decode(NETWORKS[network][chain].key) + ); switch (v.payload.module) { case "Core": - if (bridge_id === undefined) { - throw Error("core bridge contract is undefined") + if (bridgeId === undefined) { + throw Error("core bridge contract is undefined"); } - const bridge = await importCoreWasm() switch (v.payload.type) { case "GuardianSetUpgrade": - console.log("Submitting new guardian set") - ix = bridge.update_guardian_set_ix(bridge_id.toString(), from.publicKey.toString(), vaa); - break + console.log("Submitting new guardian set"); + ix = createUpgradeGuardianSetInstruction( + bridgeId, + from.publicKey, + vaa + ); + break; case "ContractUpgrade": - console.log("Upgrading core contract") - ix = bridge.upgrade_contract_ix(bridge_id.toString(), from.publicKey.toString(), from.publicKey.toString(), vaa); - break + console.log("Upgrading core contract"); + ix = createWormholeUpgradeContractInstruction( + bridgeId, + from.publicKey, + vaa + ); + break; default: - ix = impossible(v.payload) + ix = impossible(v.payload); } - break + break; case "NFTBridge": - if (nft_bridge_id === undefined) { - throw Error("nft bridge contract is undefined") + if (nftBridgeId === undefined) { + throw Error("nft bridge contract is undefined"); } - const nft_bridge = await importNftWasm() switch (v.payload.type) { case "ContractUpgrade": - console.log("Upgrading contract") - ix = nft_bridge.upgrade_contract_ix(nft_bridge_id.toString(), bridge_id.toString(), from.publicKey.toString(), from.publicKey.toString(), vaa); - break + console.log("Upgrading contract"); + ix = createNFTBridgeUpgradeContractInstruction( + nftBridgeId, + bridgeId, + from.publicKey, + vaa + ); + break; case "RegisterChain": - console.log("Registering chain") - ix = nft_bridge.register_chain_ix(nft_bridge_id.toString(), bridge_id.toString(), from.publicKey.toString(), vaa); - break + console.log("Registering chain"); + ix = createNFTBridgeRegisterChainInstruction( + nftBridgeId, + bridgeId, + from.publicKey, + vaa + ); + break; case "Transfer": - throw Error("Can't redeem NFTs from CLI") + throw Error("Can't redeem NFTs from CLI"); // TODO: what's the authority account? just bail for now default: - ix = impossible(v.payload) + ix = impossible(v.payload); } - break + break; case "TokenBridge": - if (token_bridge_id === undefined) { - throw Error("token bridge contract is undefined") + if (tokenBridgeId === undefined) { + throw Error("token bridge contract is undefined"); } - const token_bridge = await importTokenWasm() const payload = v.payload; switch (payload.type) { case "ContractUpgrade": - console.log("Upgrading contract") - ix = token_bridge.upgrade_contract_ix(token_bridge_id.toString(), bridge_id.toString(), from.publicKey.toString(), from.publicKey.toString(), vaa) - break + console.log("Upgrading contract"); + ix = createTokenBridgeUpgradeContractInstruction( + tokenBridgeId, + bridgeId, + from.publicKey, + vaa + ); + break; case "RegisterChain": - console.log("Registering chain") - ix = token_bridge.register_chain_ix(token_bridge_id.toString(), bridge_id.toString(), from.publicKey.toString(), vaa) - break + console.log("Registering chain"); + ix = createTokenBridgeRegisterChainInstruction( + tokenBridgeId, + bridgeId, + from.publicKey, + vaa + ); + break; case "Transfer": - console.log("Completing transfer") + console.log("Completing transfer"); if (payload.tokenChain === CHAINS[chain]) { - ix = token_bridge.complete_transfer_native_ix(token_bridge_id.toString(), bridge_id.toString(), from.publicKey.toString(), vaa) + ix = createCompleteTransferNativeInstruction( + tokenBridgeId, + bridgeId, + from.publicKey, + vaa + ); } else { - ix = token_bridge.complete_transfer_wrapped_ix(token_bridge_id.toString(), bridge_id.toString(), from.publicKey.toString(), vaa) + ix = createCompleteTransferWrappedInstruction( + tokenBridgeId, + bridgeId, + from.publicKey, + vaa + ); } - break + break; case "AttestMeta": - console.log("Creating wrapped token") - ix = token_bridge.create_wrapped_ix(token_bridge_id.toString(), bridge_id.toString(), from.publicKey.toString(), vaa) - break + console.log("Creating wrapped token"); + ix = createCreateWrappedInstruction( + tokenBridgeId, + bridgeId, + from.publicKey, + vaa + ); + break; case "TransferWithPayload": - throw Error("Can't complete payload 3 transfer from CLI") + throw Error("Can't complete payload 3 transfer from CLI"); default: - impossible(payload) - break - + impossible(payload); + break; } - break + break; default: - ix = impossible(v.payload) + ix = impossible(v.payload); } // First upload the VAA - await postVaaSolanaWithRetry(connection, + await postVaaSolanaWithRetry( + connection, async (tx) => { - tx.partialSign(from) - return tx + tx.partialSign(from); + return tx; }, - bridge_id.toString(), from.publicKey.toString(), vaa, 5) + bridgeId, + from.publicKey, + vaa, + 5 + ); // Then do the actual thing - let transaction = new web3s.Transaction().add(ixFromRust(ix)) + const transaction = new web3s.Transaction().add(ix); - let signature = await web3s.sendAndConfirmTransaction( + const signature = await web3s.sendAndConfirmTransaction( connection, transaction, [from], { - skipPreflight: true + skipPreflight: true, } - ) - console.log('SIGNATURE', signature) + ); + console.log("SIGNATURE", signature); } function setupConnection(rpc: string): web3s.Connection { - return new web3s.Connection( - rpc, - 'confirmed', - ) + return new web3s.Connection(rpc, "confirmed"); }