From d842fbad6ab89bf29272145701ad026da641a2d7 Mon Sep 17 00:00:00 2001 From: Darun Seethammagari Date: Tue, 11 Mar 2025 12:26:38 -0700 Subject: [PATCH 1/3] Update sui to use turbo --- pnpm-lock.yaml | 392 ++---------------- target_chains/sui/cli/README.md | 15 +- target_chains/sui/cli/turbo.json | 10 + target_chains/sui/sdk/js/README.md | 15 +- target_chains/sui/sdk/js/package.json | 2 +- .../sui/sdk/js/src/examples/SuiRelay.ts | 7 +- target_chains/sui/sdk/js/turbo.json | 11 + 7 files changed, 72 insertions(+), 380 deletions(-) create mode 100644 target_chains/sui/cli/turbo.json create mode 100644 target_chains/sui/sdk/js/turbo.json diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ef7f63f130..76fb928703 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -749,7 +749,7 @@ importers: version: 2.8.8 ts-jest: specifier: ^29.1.1 - version: 29.2.4(@babel/core@7.25.8)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.8))(jest@29.7.0(@types/node@22.8.2)(ts-node@10.9.2(@types/node@22.8.2)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.4(@babel/core@7.25.8)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.8))(esbuild@0.22.0)(jest@29.7.0(@types/node@22.8.2)(ts-node@10.9.2(@types/node@22.8.2)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: ^10.9.1 version: 10.9.2(@types/node@22.8.2)(typescript@5.5.4) @@ -2610,7 +2610,7 @@ importers: dependencies: '@certusone/wormhole-sdk': specifier: ^0.9.12 - version: 0.9.24(bufferutil@4.0.8)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@6.0.4) + version: 0.9.24(bufferutil@4.0.8)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@5.0.10) '@mysten/sui': specifier: ^1.3.0 version: 1.3.0(svelte@4.2.18)(typescript@5.5.4) @@ -2619,7 +2619,7 @@ importers: version: link:../../../contract_manager '@pythnetwork/price-service-client': specifier: ^1.4.0 - version: 1.9.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + version: 1.9.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) '@pythnetwork/price-service-sdk': specifier: ^1.2.0 version: 1.7.1 @@ -22590,41 +22590,6 @@ snapshots: - subscriptions-transport-ws - utf-8-validate - '@certusone/wormhole-sdk@0.9.24(bufferutil@4.0.8)(encoding@0.1.13)(google-protobuf@3.21.4)(utf-8-validate@6.0.4)': - dependencies: - '@certusone/wormhole-sdk-proto-web': 0.0.6(google-protobuf@3.21.4) - '@certusone/wormhole-sdk-wasm': 0.0.1 - '@coral-xyz/borsh': 0.2.6(@solana/web3.js@1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4)) - '@mysten/sui.js': 0.32.2(bufferutil@4.0.8)(utf-8-validate@6.0.4) - '@project-serum/anchor': 0.25.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4) - '@solana/spl-token': 0.3.7(@solana/web3.js@1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4) - '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4) - '@terra-money/terra.js': 3.1.9 - '@xpla/xpla.js': 0.2.3 - algosdk: 2.7.0 - aptos: 1.5.0 - axios: 0.24.0 - bech32: 2.0.0 - binary-parser: 2.2.1 - bs58: 4.0.1 - elliptic: 6.5.6 - js-base64: 3.7.5 - near-api-js: 1.1.0(encoding@0.1.13) - optionalDependencies: - '@injectivelabs/networks': 1.10.12(google-protobuf@3.21.4) - '@injectivelabs/sdk-ts': 1.10.72(bufferutil@4.0.8)(utf-8-validate@6.0.4) - '@injectivelabs/utils': 1.10.12(google-protobuf@3.21.4) - transitivePeerDependencies: - - bufferutil - - debug - - encoding - - google-protobuf - - graphql-ws - - react - - react-dom - - subscriptions-transport-ws - - utf-8-validate - '@chain-registry/types@0.28.1': {} '@chain-registry/types@0.43.10': {} @@ -22771,12 +22736,6 @@ snapshots: bn.js: 5.2.1 buffer-layout: 1.2.2 - '@coral-xyz/borsh@0.2.6(@solana/web3.js@1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4))': - dependencies: - '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4) - bn.js: 5.2.1 - buffer-layout: 1.2.2 - '@coral-xyz/borsh@0.27.0(@solana/web3.js@1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))': dependencies: '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -22950,17 +22909,6 @@ snapshots: - bufferutil - utf-8-validate - '@cosmjs/socket@0.30.1(bufferutil@4.0.8)(utf-8-validate@6.0.4)': - dependencies: - '@cosmjs/stream': 0.30.1 - isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.4)) - ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.4) - xstream: 11.14.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - optional: true - '@cosmjs/socket@0.32.3(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: '@cosmjs/stream': 0.32.3 @@ -23010,26 +22958,6 @@ snapshots: - debug - utf-8-validate - '@cosmjs/stargate@0.30.1(bufferutil@4.0.8)(utf-8-validate@6.0.4)': - dependencies: - '@confio/ics23': 0.6.8 - '@cosmjs/amino': 0.30.1 - '@cosmjs/encoding': 0.30.1 - '@cosmjs/math': 0.30.1 - '@cosmjs/proto-signing': 0.30.1 - '@cosmjs/stream': 0.30.1 - '@cosmjs/tendermint-rpc': 0.30.1(bufferutil@4.0.8)(utf-8-validate@6.0.4) - '@cosmjs/utils': 0.30.1 - cosmjs-types: 0.7.2 - long: 4.0.0 - protobufjs: 6.11.4 - xstream: 11.14.0 - transitivePeerDependencies: - - bufferutil - - debug - - utf-8-validate - optional: true - '@cosmjs/stargate@0.32.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: '@confio/ics23': 0.6.8 @@ -23107,24 +23035,6 @@ snapshots: - debug - utf-8-validate - '@cosmjs/tendermint-rpc@0.30.1(bufferutil@4.0.8)(utf-8-validate@6.0.4)': - dependencies: - '@cosmjs/crypto': 0.30.1 - '@cosmjs/encoding': 0.30.1 - '@cosmjs/json-rpc': 0.30.1 - '@cosmjs/math': 0.30.1 - '@cosmjs/socket': 0.30.1(bufferutil@4.0.8)(utf-8-validate@6.0.4) - '@cosmjs/stream': 0.30.1 - '@cosmjs/utils': 0.30.1 - axios: 0.21.4(debug@4.3.7) - readonly-date: 1.0.0 - xstream: 11.14.0 - transitivePeerDependencies: - - bufferutil - - debug - - utf-8-validate - optional: true - '@cosmjs/tendermint-rpc@0.32.2(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: '@cosmjs/crypto': 0.32.3 @@ -23448,7 +23358,7 @@ snapshots: prettier: 3.3.3 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - ts-jest: 29.2.4(@babel/core@7.25.8)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.8))(jest@29.7.0(@types/node@22.8.2)(ts-node@10.9.2(@types/node@22.8.2)(typescript@5.5.4)))(typescript@5.5.4) + ts-jest: 29.2.4(@babel/core@7.25.8)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.8))(esbuild@0.22.0)(jest@29.7.0(@types/node@22.8.2)(ts-node@10.9.2(@types/node@22.8.2)(typescript@5.5.4)))(typescript@5.5.4) typescript: 5.5.4 transitivePeerDependencies: - '@babel/core' @@ -24095,33 +24005,6 @@ snapshots: - bufferutil - utf-8-validate - '@ethersproject/providers@5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)': - dependencies: - '@ethersproject/abstract-provider': 5.7.0 - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/address': 5.7.0 - '@ethersproject/base64': 5.7.0 - '@ethersproject/basex': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/hash': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/networks': 5.7.1 - '@ethersproject/properties': 5.7.0 - '@ethersproject/random': 5.7.0 - '@ethersproject/rlp': 5.7.0 - '@ethersproject/sha2': 5.7.0 - '@ethersproject/strings': 5.7.0 - '@ethersproject/transactions': 5.7.0 - '@ethersproject/web': 5.7.1 - bech32: 1.1.4 - ws: 7.4.6(bufferutil@4.0.8)(utf-8-validate@6.0.4) - transitivePeerDependencies: - - bufferutil - - utf-8-validate - optional: true - '@ethersproject/random@5.7.0': dependencies: '@ethersproject/bytes': 5.7.0 @@ -25083,54 +24966,6 @@ snapshots: - subscriptions-transport-ws - utf-8-validate - '@injectivelabs/sdk-ts@1.10.72(bufferutil@4.0.8)(utf-8-validate@6.0.4)': - dependencies: - '@apollo/client': 3.7.13(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@cosmjs/amino': 0.30.1 - '@cosmjs/proto-signing': 0.30.1 - '@cosmjs/stargate': 0.30.1(bufferutil@4.0.8)(utf-8-validate@6.0.4) - '@ethersproject/bytes': 5.7.0 - '@injectivelabs/core-proto-ts': 0.0.14 - '@injectivelabs/exceptions': 1.14.6(google-protobuf@3.21.4) - '@injectivelabs/grpc-web': 0.0.1(google-protobuf@3.21.4) - '@injectivelabs/grpc-web-node-http-transport': 0.0.2(@injectivelabs/grpc-web@0.0.1(google-protobuf@3.21.4)) - '@injectivelabs/grpc-web-react-native-transport': 0.0.2(@injectivelabs/grpc-web@0.0.1(google-protobuf@3.21.4)) - '@injectivelabs/indexer-proto-ts': 1.10.8-rc.4 - '@injectivelabs/mito-proto-ts': 1.0.9 - '@injectivelabs/networks': 1.14.6(google-protobuf@3.21.4) - '@injectivelabs/test-utils': 1.14.4 - '@injectivelabs/token-metadata': 1.10.42(google-protobuf@3.21.4) - '@injectivelabs/ts-types': 1.14.6 - '@injectivelabs/utils': 1.14.6(google-protobuf@3.21.4) - '@metamask/eth-sig-util': 4.0.1 - axios: 0.27.2 - bech32: 2.0.0 - bip39: 3.0.4 - cosmjs-types: 0.7.2 - eth-crypto: 2.6.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) - ethereumjs-util: 7.1.5 - ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.4) - google-protobuf: 3.21.4 - graphql: 16.9.0 - http-status-codes: 2.2.0 - js-sha3: 0.8.0 - jscrypto: 1.0.3 - keccak256: 1.0.6 - link-module-alias: 1.2.0 - rxjs: 7.8.1 - secp256k1: 4.0.3 - shx: 0.3.4 - snakecase-keys: 5.4.5 - transitivePeerDependencies: - - bufferutil - - debug - - graphql-ws - - react - - react-dom - - subscriptions-transport-ws - - utf-8-validate - optional: true - '@injectivelabs/sdk-ts@1.14.7(bufferutil@4.0.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(utf-8-validate@5.0.10)': dependencies: '@apollo/client': 3.7.13(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -26592,22 +26427,6 @@ snapshots: - bufferutil - utf-8-validate - '@mysten/sui.js@0.32.2(bufferutil@4.0.8)(utf-8-validate@6.0.4)': - dependencies: - '@mysten/bcs': 0.7.1 - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 - '@scure/bip32': 1.6.2 - '@scure/bip39': 1.5.4 - '@suchipi/femver': 1.0.0 - jayson: 4.1.1(bufferutil@4.0.8)(utf-8-validate@6.0.4) - rpc-websockets: 7.5.1 - superstruct: 1.0.4 - tweetnacl: 1.0.3 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - '@mysten/sui@1.3.0(svelte@4.2.18)(typescript@5.5.4)': dependencies: '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) @@ -27568,28 +27387,6 @@ snapshots: - encoding - utf-8-validate - '@project-serum/anchor@0.25.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4)': - dependencies: - '@project-serum/borsh': 0.2.5(@solana/web3.js@1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4)) - '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4) - base64-js: 1.5.1 - bn.js: 5.2.1 - bs58: 4.0.1 - buffer-layout: 1.2.2 - camelcase: 5.3.1 - cross-fetch: 3.1.8(encoding@0.1.13) - crypto-hash: 1.3.0 - eventemitter3: 4.0.7 - js-sha256: 0.9.0 - pako: 2.1.0 - snake-case: 3.0.4 - superstruct: 0.15.5 - toml: 3.0.0 - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - '@project-serum/borsh@0.2.5(@solana/web3.js@1.92.3(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3))': dependencies: '@solana/web3.js': 1.92.3(bufferutil@4.0.7)(encoding@0.1.13)(utf-8-validate@6.0.3) @@ -27602,12 +27399,6 @@ snapshots: bn.js: 5.2.1 buffer-layout: 1.2.2 - '@project-serum/borsh@0.2.5(@solana/web3.js@1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4))': - dependencies: - '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4) - bn.js: 5.2.1 - buffer-layout: 1.2.2 - '@project-serum/sol-wallet-adapter@0.2.6(@solana/web3.js@1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))': dependencies: '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -27678,15 +27469,15 @@ snapshots: transitivePeerDependencies: - axios - '@pythnetwork/price-service-client@1.9.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)': + '@pythnetwork/price-service-client@1.9.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)': dependencies: '@pythnetwork/price-service-sdk': 1.7.1 '@types/ws': 8.5.13 axios: 1.7.7(debug@4.3.7) axios-retry: 3.9.1 - isomorphic-ws: 4.0.1(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)) + isomorphic-ws: 4.0.1(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)) ts-log: 2.2.7 - ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4) + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) transitivePeerDependencies: - bufferutil - debug @@ -30117,17 +29908,6 @@ snapshots: - encoding - utf-8-validate - '@solana/buffer-layout-utils@0.2.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4)': - dependencies: - '@solana/buffer-layout': 4.0.1 - '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4) - bigint-buffer: 1.1.5 - bignumber.js: 9.1.2 - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - '@solana/buffer-layout@4.0.1': dependencies: buffer: 6.0.3 @@ -30227,17 +30007,6 @@ snapshots: - encoding - utf-8-validate - '@solana/spl-token@0.3.7(@solana/web3.js@1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4))(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4)': - dependencies: - '@solana/buffer-layout': 4.0.1 - '@solana/buffer-layout-utils': 0.2.0(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4) - '@solana/web3.js': 1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4) - buffer: 6.0.3 - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - '@solana/spl-token@0.4.6(@solana/web3.js@1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(utf-8-validate@5.0.10)': dependencies: '@solana/buffer-layout': 4.0.1 @@ -30845,28 +30614,6 @@ snapshots: - encoding - utf-8-validate - '@solana/web3.js@1.92.3(bufferutil@4.0.8)(encoding@0.1.13)(utf-8-validate@6.0.4)': - dependencies: - '@babel/runtime': 7.25.7 - '@noble/curves': 1.8.1 - '@noble/hashes': 1.7.1 - '@solana/buffer-layout': 4.0.1 - agentkeepalive: 4.5.0 - bigint-buffer: 1.1.5 - 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(bufferutil@4.0.8)(utf-8-validate@6.0.4) - node-fetch: 2.7.0(encoding@0.1.13) - rpc-websockets: 8.0.1 - superstruct: 1.0.4 - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - '@solana/web3.js@1.92.3(encoding@0.1.13)': dependencies: '@babel/runtime': 7.25.7 @@ -30880,7 +30627,7 @@ snapshots: bs58: 4.0.1 buffer: 6.0.3 fast-stable-stringify: 1.0.0 - jayson: 4.1.1(bufferutil@4.0.8)(utf-8-validate@6.0.4) + jayson: 4.1.1(bufferutil@4.0.7)(utf-8-validate@6.0.3) node-fetch: 2.7.0(encoding@0.1.13) rpc-websockets: 8.0.1 superstruct: 1.0.4 @@ -38697,20 +38444,6 @@ snapshots: - bufferutil - utf-8-validate - eth-crypto@2.6.0(bufferutil@4.0.8)(utf-8-validate@6.0.4): - dependencies: - '@babel/runtime': 7.20.13 - '@ethereumjs/tx': 3.5.2 - '@types/bn.js': 5.1.1 - eccrypto: 1.1.6(patch_hash=rjcfmtfgn3z72mudpdif5oxmye) - ethereumjs-util: 7.1.5 - ethers: 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.4) - secp256k1: 5.0.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - optional: true - eth-ens-namehash@2.0.8: dependencies: idna-uts46-hx: 2.3.1 @@ -39029,43 +38762,6 @@ snapshots: - bufferutil - utf-8-validate - ethers@5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.4): - dependencies: - '@ethersproject/abi': 5.7.0 - '@ethersproject/abstract-provider': 5.7.0 - '@ethersproject/abstract-signer': 5.7.0 - '@ethersproject/address': 5.7.0 - '@ethersproject/base64': 5.7.0 - '@ethersproject/basex': 5.7.0 - '@ethersproject/bignumber': 5.7.0 - '@ethersproject/bytes': 5.7.0 - '@ethersproject/constants': 5.7.0 - '@ethersproject/contracts': 5.7.0 - '@ethersproject/hash': 5.7.0 - '@ethersproject/hdnode': 5.7.0 - '@ethersproject/json-wallets': 5.7.0 - '@ethersproject/keccak256': 5.7.0 - '@ethersproject/logger': 5.7.0 - '@ethersproject/networks': 5.7.1 - '@ethersproject/pbkdf2': 5.7.0 - '@ethersproject/properties': 5.7.0 - '@ethersproject/providers': 5.7.2(bufferutil@4.0.8)(utf-8-validate@6.0.4) - '@ethersproject/random': 5.7.0 - '@ethersproject/rlp': 5.7.0 - '@ethersproject/sha2': 5.7.0 - '@ethersproject/signing-key': 5.7.0 - '@ethersproject/solidity': 5.7.0 - '@ethersproject/strings': 5.7.0 - '@ethersproject/transactions': 5.7.0 - '@ethersproject/units': 5.7.0 - '@ethersproject/wallet': 5.7.0 - '@ethersproject/web': 5.7.1 - '@ethersproject/wordlists': 5.7.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - optional: true - ethers@6.13.4(bufferutil@4.0.7)(utf-8-validate@6.0.3): dependencies: '@adraffy/ens-normalize': 1.10.1 @@ -41031,9 +40727,9 @@ snapshots: dependencies: ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@5.0.10) - isomorphic-ws@4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.4)): + isomorphic-ws@4.0.1(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10)): dependencies: - ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.4) + ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) isomorphic-ws@4.0.1(ws@8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)): dependencies: @@ -41183,24 +40879,6 @@ snapshots: - bufferutil - utf-8-validate - jayson@4.1.1(bufferutil@4.0.8)(utf-8-validate@6.0.4): - dependencies: - '@types/connect': 3.4.38 - '@types/node': 12.20.55 - '@types/ws': 7.4.7 - JSONStream: 1.3.5 - commander: 2.20.3 - delay: 5.0.0 - es6-promisify: 5.0.0 - eyes: 0.1.8 - isomorphic-ws: 4.0.1(ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.4)) - json-stringify-safe: 5.0.1 - uuid: 8.3.2 - ws: 7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.4) - transitivePeerDependencies: - - bufferutil - - utf-8-validate - jest-changed-files@29.7.0: dependencies: execa: 5.1.1 @@ -48590,6 +48268,26 @@ snapshots: dependencies: tslib: 2.8.0 + ts-jest@29.2.4(@babel/core@7.25.8)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.8))(esbuild@0.22.0)(jest@29.7.0(@types/node@22.8.2)(ts-node@10.9.2(@types/node@22.8.2)(typescript@5.5.4)))(typescript@5.5.4): + dependencies: + bs-logger: 0.2.6 + ejs: 3.1.10 + fast-json-stable-stringify: 2.1.0 + jest: 29.7.0(@types/node@22.8.2)(ts-node@10.9.2(@types/node@22.8.2)(typescript@5.5.4)) + jest-util: 29.7.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.6.3 + typescript: 5.5.4 + yargs-parser: 21.1.1 + optionalDependencies: + '@babel/core': 7.25.8 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.25.8) + esbuild: 0.22.0 + ts-jest@29.2.4(@babel/core@7.25.8)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.8))(esbuild@0.22.0)(jest@29.7.0(@types/node@22.8.2)(ts-node@10.9.2(@types/node@22.8.2)(typescript@5.6.3)))(typescript@5.5.4): dependencies: bs-logger: 0.2.6 @@ -48743,25 +48441,6 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.8) - ts-jest@29.2.4(@babel/core@7.25.8)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.8))(jest@29.7.0(@types/node@22.8.2)(ts-node@10.9.2(@types/node@22.8.2)(typescript@5.5.4)))(typescript@5.5.4): - dependencies: - bs-logger: 0.2.6 - ejs: 3.1.10 - fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.8.2)(ts-node@10.9.2(@types/node@22.8.2)(typescript@5.5.4)) - jest-util: 29.7.0 - json5: 2.2.3 - lodash.memoize: 4.1.2 - make-error: 1.3.6 - semver: 7.6.3 - typescript: 5.5.4 - yargs-parser: 21.1.1 - optionalDependencies: - '@babel/core': 7.25.8 - '@jest/transform': 29.7.0 - '@jest/types': 29.6.3 - babel-jest: 29.7.0(@babel/core@7.25.8) - ts-log@2.2.7: {} ts-mixer@6.0.4: {} @@ -50912,12 +50591,6 @@ snapshots: bufferutil: 4.0.8 utf-8-validate: 5.0.10 - ws@7.4.6(bufferutil@4.0.8)(utf-8-validate@6.0.4): - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 6.0.4 - optional: true - ws@7.5.10(bufferutil@4.0.7)(utf-8-validate@6.0.3): optionalDependencies: bufferutil: 4.0.7 @@ -50928,11 +50601,6 @@ snapshots: bufferutil: 4.0.8 utf-8-validate: 5.0.10 - ws@7.5.10(bufferutil@4.0.8)(utf-8-validate@6.0.4): - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 6.0.4 - ws@8.11.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): optionalDependencies: bufferutil: 4.0.8 diff --git a/target_chains/sui/cli/README.md b/target_chains/sui/cli/README.md index cf4a0275a6..59729fa7f6 100644 --- a/target_chains/sui/cli/README.md +++ b/target_chains/sui/cli/README.md @@ -5,10 +5,13 @@ Install move cli according to this [doc](../contracts/README.md) # Deploying from scratch Configure the `Move.toml` file accordingly. The wormhole address should be specified based on the target chain in the `Move.toml` and the pyth address should be `0x0`. + +Run the following commands from the root of crosschain to ensure dependencies are correctly installed and built. You can install dependencies in root using `pnpm install`. + We can deploy the pyth oracle and initialize it with the following command: ```bash -npm run cli -- deploy --private-key --chain [sui_mainnet|sui_testnet] +pnpm turbo --filter @pythnetwork/pyth-sui-cli run cli -- deploy --private-key --chain [sui_mainnet|sui_testnet] ``` You can then add your sui contract configs to the contract manager store. @@ -16,7 +19,7 @@ You can then add your sui contract configs to the contract manager store. You can also manually create all the price feeds available at the moment to make it easier for devs to test the oracle. ```bash -npm run cli -- create-all --private-key --contract +pnpm turbo --filter @pythnetwork/pyth-sui-cli run cli -- create-all --private-key --contract ``` # Updating price feeds: @@ -24,11 +27,11 @@ npm run cli -- create-all --private-key --contract You can use the `create` and `update-feeds` commands to create and update price feeds respectively. ```bash -npm run cli -- create --feed-id --private-key --contract +pnpm turbo --filter @pythnetwork/pyth-sui-cli run cli -- create --feed-id --private-key --contract ``` ```bash -npm run cli -- update-feeds --feed-id --private-key --contract +pnpm turbo --filter @pythnetwork/pyth-sui-cli run cli -- update-feeds --feed-id --private-key --contract ``` # Upgrade process: @@ -49,7 +52,7 @@ The following steps are needed to upgrade our sui contracts: Run the following command to generate the new hash, make sure the contract addresses are identical to the deployed ones: ```bash -npm run cli -- generate-digest +pnpm turbo --filter @pythnetwork/pyth-sui-cli run cli -- generate-digest ``` ## Upgrading the contract @@ -57,7 +60,7 @@ npm run cli -- generate-digest To upgrade the contract after the governance vaa was executed run: ```bash -npm run cli -- upgrade --private-key --contract --vaa +pnpm turbo --filter @pythnetwork/pyth-sui-cli run cli -- upgrade --private-key --contract --vaa ``` The upgrade procedure consists of 2 transactions. The first one is to upgrade the contract (sui level) and the second one is to run the `migrate` function and upgrade the version (package level). diff --git a/target_chains/sui/cli/turbo.json b/target_chains/sui/cli/turbo.json new file mode 100644 index 0000000000..2f4c9f1cea --- /dev/null +++ b/target_chains/sui/cli/turbo.json @@ -0,0 +1,10 @@ +{ + "$schema": "https://turbo.build/schema.json", + "extends": ["//"], + "tasks": { + "cli": { + "dependsOn": ["^build"], + "cache": false + } + } +} diff --git a/target_chains/sui/sdk/js/README.md b/target_chains/sui/sdk/js/README.md index d39cd67b8f..8ad7dee1ef 100644 --- a/target_chains/sui/sdk/js/README.md +++ b/target_chains/sui/sdk/js/README.md @@ -4,16 +4,11 @@ ## Installation -### npm +### pnpm ``` -$ npm install --save @pythnetwork/pyth-sui-js -``` - -### Yarn - -``` -$ yarn add @pythnetwork/pyth-sui-js +cd to crosschain root +$ pnpm install ``` ## Quickstart @@ -103,11 +98,11 @@ Now in your contract you can consume the price by calling `pyth::get_price` or o 1. Fetches update data from Hermes for the given price feeds. 2. Calls the Pyth Sui contract with the update data. -You can run this example with `npm run example-relay`. A full command that updates prices on Sui testnet looks like: +You can run this example with `pnpm turbo --filter @pythnetwork/pyth-sui-js run example-relay` from the root of crosschain. Turbo will automatically build any detected dependencies including local ones, and filter is needed to tell it which sub-package to use (Such as this one). A full command that updates prices on Sui testnet looks like: ```bash export SUI_KEY=YOUR_PRIV_KEY; -npm run example-relay -- --feed-id "5a035d5440f5c163069af66062bac6c79377bf88396fa27e6067bfca8096d280" \ +pnpm turbo --filter @pythnetwork/pyth-sui-js run example-relay -- --feed-id "5a035d5440f5c163069af66062bac6c79377bf88396fa27e6067bfca8096d280" \ --price-service "https://hermes-beta.pyth.network" \ --full-node "https://fullnode.testnet.sui.io:443" \ --pyth-state-id "0xd3e79c2c083b934e78b3bd58a490ec6b092561954da6e7322e1e2b3c8abfddc0" \ diff --git a/target_chains/sui/sdk/js/package.json b/target_chains/sui/sdk/js/package.json index d7674a5121..c4bd6de07a 100644 --- a/target_chains/sui/sdk/js/package.json +++ b/target_chains/sui/sdk/js/package.json @@ -21,7 +21,7 @@ }, "scripts": { "build": "tsc", - "example-relay": "pnpm run build && node lib/examples/SuiRelay.js", + "example-relay": "node lib/examples/SuiRelay.js", "format": "prettier --write \"src/**/*.ts\"", "test:lint": "eslint src/ --max-warnings 0", "prepublishOnly": "pnpm run build && pnpm test:lint", diff --git a/target_chains/sui/sdk/js/src/examples/SuiRelay.ts b/target_chains/sui/sdk/js/src/examples/SuiRelay.ts index cb40f4b1e5..9c23003fbb 100644 --- a/target_chains/sui/sdk/js/src/examples/SuiRelay.ts +++ b/target_chains/sui/sdk/js/src/examples/SuiRelay.ts @@ -12,6 +12,7 @@ const argvPromise = yargs(hideBin(process.argv)) .option("feed-id", { description: "Price feed ids to update without the leading 0x (e.g f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b). Can be provided multiple times for multiple feed updates", + string: true, type: "array", demandOption: true, }) @@ -49,7 +50,8 @@ async function run() { // Fetch the latest price feed update data from the Price Service const connection = new SuiPriceServiceConnection(argv["hermes"]); - const feeds = argv["feed-id"] as string[]; + const feeds = argv["feed-id"]; + if (!Array.isArray(feeds)) { throw new Error("Not a valid input!"); } const provider = getProvider(argv["full-node"]); const wormholeStateId = argv["wormhole-state-id"]; @@ -59,6 +61,9 @@ async function run() { const newFeeds = []; const existingFeeds = []; for (const feed of feeds) { + if (typeof feed !== "string") { + throw new Error(`Not a valid string input ${feed}`); + } if ((await client.getPriceFeedObjectId(feed)) == undefined) { newFeeds.push(feed); } else { diff --git a/target_chains/sui/sdk/js/turbo.json b/target_chains/sui/sdk/js/turbo.json new file mode 100644 index 0000000000..f151f8fa86 --- /dev/null +++ b/target_chains/sui/sdk/js/turbo.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://turbo.build/schema.json", + "extends": ["//"], + "tasks": { + "example-relay": { + "dependsOn": ["build"], + "cache": false, + "env": ["SUI_KEY"] + } + } +} From b5d66d682e92c26955832041382c8243bdeef351 Mon Sep 17 00:00:00 2001 From: Darun Seethammagari Date: Tue, 11 Mar 2025 12:36:05 -0700 Subject: [PATCH 2/3] Add to README about private key --- target_chains/sui/cli/README.md | 2 ++ target_chains/sui/sdk/js/README.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/target_chains/sui/cli/README.md b/target_chains/sui/cli/README.md index 59729fa7f6..28a6d300cc 100644 --- a/target_chains/sui/cli/README.md +++ b/target_chains/sui/cli/README.md @@ -6,6 +6,8 @@ Install move cli according to this [doc](../contracts/README.md) Configure the `Move.toml` file accordingly. The wormhole address should be specified based on the target chain in the `Move.toml` and the pyth address should be `0x0`. +In order to run the commands, a SUI private key is needed. Often, the private key takes the form of "suiprivkey...". The example expects the key in the form of hex. You can use `sui keytool convert` to get the hex version fo the key, to be used below. + Run the following commands from the root of crosschain to ensure dependencies are correctly installed and built. You can install dependencies in root using `pnpm install`. We can deploy the pyth oracle and initialize it with the following command: diff --git a/target_chains/sui/sdk/js/README.md b/target_chains/sui/sdk/js/README.md index 8ad7dee1ef..bbfbf8f68e 100644 --- a/target_chains/sui/sdk/js/README.md +++ b/target_chains/sui/sdk/js/README.md @@ -98,6 +98,8 @@ Now in your contract you can consume the price by calling `pyth::get_price` or o 1. Fetches update data from Hermes for the given price feeds. 2. Calls the Pyth Sui contract with the update data. +In order to run the commands, a SUI private key is needed. The commands expects the key to be in the form of hex. You can use `sui keytool convert` to get the hex version of the key, to be used below, if your private key is in the form "suiprivkey...". + You can run this example with `pnpm turbo --filter @pythnetwork/pyth-sui-js run example-relay` from the root of crosschain. Turbo will automatically build any detected dependencies including local ones, and filter is needed to tell it which sub-package to use (Such as this one). A full command that updates prices on Sui testnet looks like: ```bash From 7d2b5491f2a947b1d1f4df42fb5195428300b603 Mon Sep 17 00:00:00 2001 From: Darun Seethammagari Date: Wed, 12 Mar 2025 08:48:09 -0700 Subject: [PATCH 3/3] precommit --- target_chains/sui/sdk/js/src/examples/SuiRelay.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target_chains/sui/sdk/js/src/examples/SuiRelay.ts b/target_chains/sui/sdk/js/src/examples/SuiRelay.ts index 9c23003fbb..0275ed9f24 100644 --- a/target_chains/sui/sdk/js/src/examples/SuiRelay.ts +++ b/target_chains/sui/sdk/js/src/examples/SuiRelay.ts @@ -51,7 +51,9 @@ async function run() { // Fetch the latest price feed update data from the Price Service const connection = new SuiPriceServiceConnection(argv["hermes"]); const feeds = argv["feed-id"]; - if (!Array.isArray(feeds)) { throw new Error("Not a valid input!"); } + if (!Array.isArray(feeds)) { + throw new Error("Not a valid input!"); + } const provider = getProvider(argv["full-node"]); const wormholeStateId = argv["wormhole-state-id"];