@ledgerhq/coin-sui 0.2.0-nightly.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +23 -0
- package/.turbo/turbo-build.log +4 -0
- package/.unimportedrc.json +19 -0
- package/CHANGELOG.md +16 -0
- package/LICENSE.txt +21 -0
- package/jest.config.js +9 -0
- package/jest.integ.config.js +7 -0
- package/lib/api/chain/index.d.ts +16 -0
- package/lib/api/chain/index.d.ts.map +1 -0
- package/lib/api/chain/index.js +3 -0
- package/lib/api/chain/index.js.map +1 -0
- package/lib/bridge/bridge.integration.test.d.ts +4 -0
- package/lib/bridge/bridge.integration.test.d.ts.map +1 -0
- package/lib/bridge/bridge.integration.test.js +136 -0
- package/lib/bridge/bridge.integration.test.js.map +1 -0
- package/lib/bridge/broadcast.d.ts +12 -0
- package/lib/bridge/broadcast.d.ts.map +1 -0
- package/lib/bridge/broadcast.js +20 -0
- package/lib/bridge/broadcast.js.map +1 -0
- package/lib/bridge/broadcast.test.d.ts +2 -0
- package/lib/bridge/broadcast.test.d.ts.map +1 -0
- package/lib/bridge/broadcast.test.js +48 -0
- package/lib/bridge/broadcast.test.js.map +1 -0
- package/lib/bridge/buildOptimisticOperation.d.ts +4 -0
- package/lib/bridge/buildOptimisticOperation.d.ts.map +1 -0
- package/lib/bridge/buildOptimisticOperation.js +76 -0
- package/lib/bridge/buildOptimisticOperation.js.map +1 -0
- package/lib/bridge/buildOptimisticOperation.test.d.ts +2 -0
- package/lib/bridge/buildOptimisticOperation.test.d.ts.map +1 -0
- package/lib/bridge/buildOptimisticOperation.test.js +52 -0
- package/lib/bridge/buildOptimisticOperation.test.js.map +1 -0
- package/lib/bridge/buildTransaction.d.ts +9 -0
- package/lib/bridge/buildTransaction.d.ts.map +1 -0
- package/lib/bridge/buildTransaction.js +19 -0
- package/lib/bridge/buildTransaction.js.map +1 -0
- package/lib/bridge/buildTransaction.test.d.ts +2 -0
- package/lib/bridge/buildTransaction.test.d.ts.map +1 -0
- package/lib/bridge/buildTransaction.test.js +17 -0
- package/lib/bridge/buildTransaction.test.js.map +1 -0
- package/lib/bridge/createTransaction.d.ts +10 -0
- package/lib/bridge/createTransaction.d.ts.map +1 -0
- package/lib/bridge/createTransaction.js +24 -0
- package/lib/bridge/createTransaction.js.map +1 -0
- package/lib/bridge/estimateMaxSpendable.d.ts +14 -0
- package/lib/bridge/estimateMaxSpendable.d.ts.map +1 -0
- package/lib/bridge/estimateMaxSpendable.js +44 -0
- package/lib/bridge/estimateMaxSpendable.js.map +1 -0
- package/lib/bridge/estimateMaxSpendable.test.d.ts +2 -0
- package/lib/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
- package/lib/bridge/estimateMaxSpendable.test.js +25 -0
- package/lib/bridge/estimateMaxSpendable.test.js.map +1 -0
- package/lib/bridge/formatters.d.ts +10 -0
- package/lib/bridge/formatters.d.ts.map +1 -0
- package/lib/bridge/formatters.js +24 -0
- package/lib/bridge/formatters.js.map +1 -0
- package/lib/bridge/formatters.test.d.ts +2 -0
- package/lib/bridge/formatters.test.d.ts.map +1 -0
- package/lib/bridge/formatters.test.js +18 -0
- package/lib/bridge/formatters.test.js.map +1 -0
- package/lib/bridge/getFeesForTransaction.d.ts +15 -0
- package/lib/bridge/getFeesForTransaction.d.ts.map +1 -0
- package/lib/bridge/getFeesForTransaction.js +32 -0
- package/lib/bridge/getFeesForTransaction.js.map +1 -0
- package/lib/bridge/getFeesForTransaction.test.d.ts +2 -0
- package/lib/bridge/getFeesForTransaction.test.d.ts.map +1 -0
- package/lib/bridge/getFeesForTransaction.test.js +35 -0
- package/lib/bridge/getFeesForTransaction.test.js.map +1 -0
- package/lib/bridge/getTransactionStatus.d.ts +12 -0
- package/lib/bridge/getTransactionStatus.d.ts.map +1 -0
- package/lib/bridge/getTransactionStatus.js +59 -0
- package/lib/bridge/getTransactionStatus.js.map +1 -0
- package/lib/bridge/getTransactionStatus.test.d.ts +2 -0
- package/lib/bridge/getTransactionStatus.test.d.ts.map +1 -0
- package/lib/bridge/getTransactionStatus.test.js +48 -0
- package/lib/bridge/getTransactionStatus.test.js.map +1 -0
- package/lib/bridge/index.d.ts +10 -0
- package/lib/bridge/index.d.ts.map +1 -0
- package/lib/bridge/index.js +63 -0
- package/lib/bridge/index.js.map +1 -0
- package/lib/bridge/preload.d.ts +11 -0
- package/lib/bridge/preload.d.ts.map +1 -0
- package/lib/bridge/preload.js +41 -0
- package/lib/bridge/preload.js.map +1 -0
- package/lib/bridge/prepareTransaction.d.ts +13 -0
- package/lib/bridge/prepareTransaction.d.ts.map +1 -0
- package/lib/bridge/prepareTransaction.js +43 -0
- package/lib/bridge/prepareTransaction.js.map +1 -0
- package/lib/bridge/prepareTransaction.test.d.ts +2 -0
- package/lib/bridge/prepareTransaction.test.d.ts.map +1 -0
- package/lib/bridge/prepareTransaction.test.js +45 -0
- package/lib/bridge/prepareTransaction.test.js.map +1 -0
- package/lib/bridge/serialization.d.ts +7 -0
- package/lib/bridge/serialization.d.ts.map +1 -0
- package/lib/bridge/serialization.js +27 -0
- package/lib/bridge/serialization.js.map +1 -0
- package/lib/bridge/serialization.test.d.ts +2 -0
- package/lib/bridge/serialization.test.d.ts.map +1 -0
- package/lib/bridge/serialization.test.js +131 -0
- package/lib/bridge/serialization.test.js.map +1 -0
- package/lib/bridge/signOperation.d.ts +9 -0
- package/lib/bridge/signOperation.d.ts.map +1 -0
- package/lib/bridge/signOperation.js +72 -0
- package/lib/bridge/signOperation.js.map +1 -0
- package/lib/bridge/signOperation.test.d.ts +2 -0
- package/lib/bridge/signOperation.test.d.ts.map +1 -0
- package/lib/bridge/signOperation.test.js +76 -0
- package/lib/bridge/signOperation.test.js.map +1 -0
- package/lib/bridge/synchronisation.d.ts +21 -0
- package/lib/bridge/synchronisation.d.ts.map +1 -0
- package/lib/bridge/synchronisation.js +65 -0
- package/lib/bridge/synchronisation.js.map +1 -0
- package/lib/bridge/synchronisation.test.d.ts +2 -0
- package/lib/bridge/synchronisation.test.d.ts.map +1 -0
- package/lib/bridge/synchronisation.test.js +118 -0
- package/lib/bridge/synchronisation.test.js.map +1 -0
- package/lib/bridge/transaction.d.ts +15 -0
- package/lib/bridge/transaction.d.ts.map +1 -0
- package/lib/bridge/transaction.js +55 -0
- package/lib/bridge/transaction.js.map +1 -0
- package/lib/bridge/transaction.test.d.ts +2 -0
- package/lib/bridge/transaction.test.d.ts.map +1 -0
- package/lib/bridge/transaction.test.js +65 -0
- package/lib/bridge/transaction.test.js.map +1 -0
- package/lib/bridge/utils.d.ts +27 -0
- package/lib/bridge/utils.d.ts.map +1 -0
- package/lib/bridge/utils.js +57 -0
- package/lib/bridge/utils.js.map +1 -0
- package/lib/config.d.ts +15 -0
- package/lib/config.d.ts.map +1 -0
- package/lib/config.js +9 -0
- package/lib/config.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +21 -0
- package/lib/index.js.map +1 -0
- package/lib/logic/broadcast.d.ts +9 -0
- package/lib/logic/broadcast.d.ts.map +1 -0
- package/lib/logic/broadcast.js +26 -0
- package/lib/logic/broadcast.js.map +1 -0
- package/lib/logic/craftTransaction.d.ts +17 -0
- package/lib/logic/craftTransaction.d.ts.map +1 -0
- package/lib/logic/craftTransaction.js +22 -0
- package/lib/logic/craftTransaction.js.map +1 -0
- package/lib/logic/estimateFees.d.ts +10 -0
- package/lib/logic/estimateFees.d.ts.map +1 -0
- package/lib/logic/estimateFees.js +20 -0
- package/lib/logic/estimateFees.js.map +1 -0
- package/lib/logic/index.d.ts +4 -0
- package/lib/logic/index.d.ts.map +1 -0
- package/lib/logic/index.js +10 -0
- package/lib/logic/index.js.map +1 -0
- package/lib/network/index.d.ts +18 -0
- package/lib/network/index.d.ts.map +1 -0
- package/lib/network/index.js +17 -0
- package/lib/network/index.js.map +1 -0
- package/lib/network/sdk.d.ts +61 -0
- package/lib/network/sdk.d.ts.map +1 -0
- package/lib/network/sdk.integration.test.d.ts +2 -0
- package/lib/network/sdk.integration.test.d.ts.map +1 -0
- package/lib/network/sdk.integration.test.js +70 -0
- package/lib/network/sdk.integration.test.js.map +1 -0
- package/lib/network/sdk.js +205 -0
- package/lib/network/sdk.js.map +1 -0
- package/lib/network/sdk.test.d.ts +2 -0
- package/lib/network/sdk.test.d.ts.map +1 -0
- package/lib/network/sdk.test.js +166 -0
- package/lib/network/sdk.test.js.map +1 -0
- package/lib/signer/getAddress.d.ts +6 -0
- package/lib/signer/getAddress.d.ts.map +1 -0
- package/lib/signer/getAddress.js +20 -0
- package/lib/signer/getAddress.js.map +1 -0
- package/lib/signer/getAddress.test.d.ts +2 -0
- package/lib/signer/getAddress.test.d.ts.map +1 -0
- package/lib/signer/getAddress.test.js +106 -0
- package/lib/signer/getAddress.test.js.map +1 -0
- package/lib/signer/index.d.ts +6 -0
- package/lib/signer/index.d.ts.map +1 -0
- package/lib/signer/index.js +11 -0
- package/lib/signer/index.js.map +1 -0
- package/lib/test/cli.d.ts +16 -0
- package/lib/test/cli.d.ts.map +1 -0
- package/lib/test/cli.js +16 -0
- package/lib/test/cli.js.map +1 -0
- package/lib/types/bridge.d.ts +72 -0
- package/lib/types/bridge.d.ts.map +1 -0
- package/lib/types/bridge.fixture.d.ts +30 -0
- package/lib/types/bridge.fixture.d.ts.map +1 -0
- package/lib/types/bridge.fixture.js +86 -0
- package/lib/types/bridge.fixture.js.map +1 -0
- package/lib/types/bridge.js +3 -0
- package/lib/types/bridge.js.map +1 -0
- package/lib/types/index.d.ts +4 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +20 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/model.d.ts +6 -0
- package/lib/types/model.d.ts.map +1 -0
- package/lib/types/model.js +3 -0
- package/lib/types/model.js.map +1 -0
- package/lib/types/signer.d.ts +13 -0
- package/lib/types/signer.d.ts.map +1 -0
- package/lib/types/signer.js +3 -0
- package/lib/types/signer.js.map +1 -0
- package/lib/utils.d.ts +7 -0
- package/lib/utils.d.ts.map +1 -0
- package/lib/utils.js +13 -0
- package/lib/utils.js.map +1 -0
- package/lib-es/api/chain/index.d.ts +16 -0
- package/lib-es/api/chain/index.d.ts.map +1 -0
- package/lib-es/api/chain/index.js +2 -0
- package/lib-es/api/chain/index.js.map +1 -0
- package/lib-es/bridge/bridge.integration.test.d.ts +4 -0
- package/lib-es/bridge/bridge.integration.test.d.ts.map +1 -0
- package/lib-es/bridge/bridge.integration.test.js +130 -0
- package/lib-es/bridge/bridge.integration.test.js.map +1 -0
- package/lib-es/bridge/broadcast.d.ts +12 -0
- package/lib-es/bridge/broadcast.d.ts.map +1 -0
- package/lib-es/bridge/broadcast.js +16 -0
- package/lib-es/bridge/broadcast.js.map +1 -0
- package/lib-es/bridge/broadcast.test.d.ts +2 -0
- package/lib-es/bridge/broadcast.test.d.ts.map +1 -0
- package/lib-es/bridge/broadcast.test.js +46 -0
- package/lib-es/bridge/broadcast.test.js.map +1 -0
- package/lib-es/bridge/buildOptimisticOperation.d.ts +4 -0
- package/lib-es/bridge/buildOptimisticOperation.d.ts.map +1 -0
- package/lib-es/bridge/buildOptimisticOperation.js +69 -0
- package/lib-es/bridge/buildOptimisticOperation.js.map +1 -0
- package/lib-es/bridge/buildOptimisticOperation.test.d.ts +2 -0
- package/lib-es/bridge/buildOptimisticOperation.test.d.ts.map +1 -0
- package/lib-es/bridge/buildOptimisticOperation.test.js +47 -0
- package/lib-es/bridge/buildOptimisticOperation.test.js.map +1 -0
- package/lib-es/bridge/buildTransaction.d.ts +9 -0
- package/lib-es/bridge/buildTransaction.d.ts.map +1 -0
- package/lib-es/bridge/buildTransaction.js +11 -0
- package/lib-es/bridge/buildTransaction.js.map +1 -0
- package/lib-es/bridge/buildTransaction.test.d.ts +2 -0
- package/lib-es/bridge/buildTransaction.test.d.ts.map +1 -0
- package/lib-es/bridge/buildTransaction.test.js +15 -0
- package/lib-es/bridge/buildTransaction.test.js.map +1 -0
- package/lib-es/bridge/createTransaction.d.ts +10 -0
- package/lib-es/bridge/createTransaction.d.ts.map +1 -0
- package/lib-es/bridge/createTransaction.js +20 -0
- package/lib-es/bridge/createTransaction.js.map +1 -0
- package/lib-es/bridge/estimateMaxSpendable.d.ts +14 -0
- package/lib-es/bridge/estimateMaxSpendable.d.ts.map +1 -0
- package/lib-es/bridge/estimateMaxSpendable.js +37 -0
- package/lib-es/bridge/estimateMaxSpendable.js.map +1 -0
- package/lib-es/bridge/estimateMaxSpendable.test.d.ts +2 -0
- package/lib-es/bridge/estimateMaxSpendable.test.d.ts.map +1 -0
- package/lib-es/bridge/estimateMaxSpendable.test.js +23 -0
- package/lib-es/bridge/estimateMaxSpendable.test.js.map +1 -0
- package/lib-es/bridge/formatters.d.ts +10 -0
- package/lib-es/bridge/formatters.d.ts.map +1 -0
- package/lib-es/bridge/formatters.js +19 -0
- package/lib-es/bridge/formatters.js.map +1 -0
- package/lib-es/bridge/formatters.test.d.ts +2 -0
- package/lib-es/bridge/formatters.test.d.ts.map +1 -0
- package/lib-es/bridge/formatters.test.js +16 -0
- package/lib-es/bridge/formatters.test.js.map +1 -0
- package/lib-es/bridge/getFeesForTransaction.d.ts +15 -0
- package/lib-es/bridge/getFeesForTransaction.d.ts.map +1 -0
- package/lib-es/bridge/getFeesForTransaction.js +29 -0
- package/lib-es/bridge/getFeesForTransaction.js.map +1 -0
- package/lib-es/bridge/getFeesForTransaction.test.d.ts +2 -0
- package/lib-es/bridge/getFeesForTransaction.test.d.ts.map +1 -0
- package/lib-es/bridge/getFeesForTransaction.test.js +30 -0
- package/lib-es/bridge/getFeesForTransaction.test.js.map +1 -0
- package/lib-es/bridge/getTransactionStatus.d.ts +12 -0
- package/lib-es/bridge/getTransactionStatus.d.ts.map +1 -0
- package/lib-es/bridge/getTransactionStatus.js +55 -0
- package/lib-es/bridge/getTransactionStatus.js.map +1 -0
- package/lib-es/bridge/getTransactionStatus.test.d.ts +2 -0
- package/lib-es/bridge/getTransactionStatus.test.d.ts.map +1 -0
- package/lib-es/bridge/getTransactionStatus.test.js +43 -0
- package/lib-es/bridge/getTransactionStatus.test.js.map +1 -0
- package/lib-es/bridge/index.d.ts +10 -0
- package/lib-es/bridge/index.d.ts.map +1 -0
- package/lib-es/bridge/index.js +56 -0
- package/lib-es/bridge/index.js.map +1 -0
- package/lib-es/bridge/preload.d.ts +11 -0
- package/lib-es/bridge/preload.d.ts.map +1 -0
- package/lib-es/bridge/preload.js +32 -0
- package/lib-es/bridge/preload.js.map +1 -0
- package/lib-es/bridge/prepareTransaction.d.ts +13 -0
- package/lib-es/bridge/prepareTransaction.d.ts.map +1 -0
- package/lib-es/bridge/prepareTransaction.js +36 -0
- package/lib-es/bridge/prepareTransaction.js.map +1 -0
- package/lib-es/bridge/prepareTransaction.test.d.ts +2 -0
- package/lib-es/bridge/prepareTransaction.test.d.ts.map +1 -0
- package/lib-es/bridge/prepareTransaction.test.js +40 -0
- package/lib-es/bridge/prepareTransaction.test.js.map +1 -0
- package/lib-es/bridge/serialization.d.ts +7 -0
- package/lib-es/bridge/serialization.d.ts.map +1 -0
- package/lib-es/bridge/serialization.js +20 -0
- package/lib-es/bridge/serialization.js.map +1 -0
- package/lib-es/bridge/serialization.test.d.ts +2 -0
- package/lib-es/bridge/serialization.test.d.ts.map +1 -0
- package/lib-es/bridge/serialization.test.js +126 -0
- package/lib-es/bridge/serialization.test.js.map +1 -0
- package/lib-es/bridge/signOperation.d.ts +9 -0
- package/lib-es/bridge/signOperation.d.ts.map +1 -0
- package/lib-es/bridge/signOperation.js +68 -0
- package/lib-es/bridge/signOperation.js.map +1 -0
- package/lib-es/bridge/signOperation.test.d.ts +2 -0
- package/lib-es/bridge/signOperation.test.d.ts.map +1 -0
- package/lib-es/bridge/signOperation.test.js +71 -0
- package/lib-es/bridge/signOperation.test.js.map +1 -0
- package/lib-es/bridge/synchronisation.d.ts +21 -0
- package/lib-es/bridge/synchronisation.d.ts.map +1 -0
- package/lib-es/bridge/synchronisation.js +61 -0
- package/lib-es/bridge/synchronisation.js.map +1 -0
- package/lib-es/bridge/synchronisation.test.d.ts +2 -0
- package/lib-es/bridge/synchronisation.test.d.ts.map +1 -0
- package/lib-es/bridge/synchronisation.test.js +113 -0
- package/lib-es/bridge/synchronisation.test.js.map +1 -0
- package/lib-es/bridge/transaction.d.ts +15 -0
- package/lib-es/bridge/transaction.d.ts.map +1 -0
- package/lib-es/bridge/transaction.js +49 -0
- package/lib-es/bridge/transaction.js.map +1 -0
- package/lib-es/bridge/transaction.test.d.ts +2 -0
- package/lib-es/bridge/transaction.test.d.ts.map +1 -0
- package/lib-es/bridge/transaction.test.js +63 -0
- package/lib-es/bridge/transaction.test.js.map +1 -0
- package/lib-es/bridge/utils.d.ts +27 -0
- package/lib-es/bridge/utils.d.ts.map +1 -0
- package/lib-es/bridge/utils.js +51 -0
- package/lib-es/bridge/utils.js.map +1 -0
- package/lib-es/config.d.ts +15 -0
- package/lib-es/config.d.ts.map +1 -0
- package/lib-es/config.js +4 -0
- package/lib-es/config.js.map +1 -0
- package/lib-es/index.d.ts +3 -0
- package/lib-es/index.d.ts.map +1 -0
- package/lib-es/index.js +3 -0
- package/lib-es/index.js.map +1 -0
- package/lib-es/logic/broadcast.d.ts +9 -0
- package/lib-es/logic/broadcast.d.ts.map +1 -0
- package/lib-es/logic/broadcast.js +19 -0
- package/lib-es/logic/broadcast.js.map +1 -0
- package/lib-es/logic/craftTransaction.d.ts +17 -0
- package/lib-es/logic/craftTransaction.d.ts.map +1 -0
- package/lib-es/logic/craftTransaction.js +15 -0
- package/lib-es/logic/craftTransaction.js.map +1 -0
- package/lib-es/logic/estimateFees.d.ts +10 -0
- package/lib-es/logic/estimateFees.d.ts.map +1 -0
- package/lib-es/logic/estimateFees.js +13 -0
- package/lib-es/logic/estimateFees.js.map +1 -0
- package/lib-es/logic/index.d.ts +4 -0
- package/lib-es/logic/index.d.ts.map +1 -0
- package/lib-es/logic/index.js +4 -0
- package/lib-es/logic/index.js.map +1 -0
- package/lib-es/network/index.d.ts +18 -0
- package/lib-es/network/index.d.ts.map +1 -0
- package/lib-es/network/index.js +10 -0
- package/lib-es/network/index.js.map +1 -0
- package/lib-es/network/sdk.d.ts +61 -0
- package/lib-es/network/sdk.d.ts.map +1 -0
- package/lib-es/network/sdk.integration.test.d.ts +2 -0
- package/lib-es/network/sdk.integration.test.d.ts.map +1 -0
- package/lib-es/network/sdk.integration.test.js +65 -0
- package/lib-es/network/sdk.integration.test.js.map +1 -0
- package/lib-es/network/sdk.js +189 -0
- package/lib-es/network/sdk.js.map +1 -0
- package/lib-es/network/sdk.test.d.ts +2 -0
- package/lib-es/network/sdk.test.d.ts.map +1 -0
- package/lib-es/network/sdk.test.js +164 -0
- package/lib-es/network/sdk.test.js.map +1 -0
- package/lib-es/signer/getAddress.d.ts +6 -0
- package/lib-es/signer/getAddress.d.ts.map +1 -0
- package/lib-es/signer/getAddress.js +18 -0
- package/lib-es/signer/getAddress.js.map +1 -0
- package/lib-es/signer/getAddress.test.d.ts +2 -0
- package/lib-es/signer/getAddress.test.d.ts.map +1 -0
- package/lib-es/signer/getAddress.test.js +101 -0
- package/lib-es/signer/getAddress.test.js.map +1 -0
- package/lib-es/signer/index.d.ts +6 -0
- package/lib-es/signer/index.d.ts.map +1 -0
- package/lib-es/signer/index.js +6 -0
- package/lib-es/signer/index.js.map +1 -0
- package/lib-es/test/cli.d.ts +16 -0
- package/lib-es/test/cli.d.ts.map +1 -0
- package/lib-es/test/cli.js +13 -0
- package/lib-es/test/cli.js.map +1 -0
- package/lib-es/types/bridge.d.ts +72 -0
- package/lib-es/types/bridge.d.ts.map +1 -0
- package/lib-es/types/bridge.fixture.d.ts +30 -0
- package/lib-es/types/bridge.fixture.d.ts.map +1 -0
- package/lib-es/types/bridge.fixture.js +80 -0
- package/lib-es/types/bridge.fixture.js.map +1 -0
- package/lib-es/types/bridge.js +2 -0
- package/lib-es/types/bridge.js.map +1 -0
- package/lib-es/types/index.d.ts +4 -0
- package/lib-es/types/index.d.ts.map +1 -0
- package/lib-es/types/index.js +4 -0
- package/lib-es/types/index.js.map +1 -0
- package/lib-es/types/model.d.ts +6 -0
- package/lib-es/types/model.d.ts.map +1 -0
- package/lib-es/types/model.js +2 -0
- package/lib-es/types/model.js.map +1 -0
- package/lib-es/types/signer.d.ts +13 -0
- package/lib-es/types/signer.d.ts.map +1 -0
- package/lib-es/types/signer.js +2 -0
- package/lib-es/types/signer.js.map +1 -0
- package/lib-es/utils.d.ts +7 -0
- package/lib-es/utils.d.ts.map +1 -0
- package/lib-es/utils.js +9 -0
- package/lib-es/utils.js.map +1 -0
- package/package.json +152 -0
- package/src/api/chain/index.ts +17 -0
- package/src/bridge/bridge.integration.test.ts +140 -0
- package/src/bridge/broadcast.test.ts +52 -0
- package/src/bridge/broadcast.ts +21 -0
- package/src/bridge/buildOptimisticOperation.test.ts +53 -0
- package/src/bridge/buildOptimisticOperation.ts +105 -0
- package/src/bridge/buildTransaction.test.ts +17 -0
- package/src/bridge/buildTransaction.ts +14 -0
- package/src/bridge/createTransaction.ts +23 -0
- package/src/bridge/estimateMaxSpendable.test.ts +27 -0
- package/src/bridge/estimateMaxSpendable.ts +46 -0
- package/src/bridge/formatters.test.ts +17 -0
- package/src/bridge/formatters.ts +26 -0
- package/src/bridge/getFeesForTransaction.test.ts +36 -0
- package/src/bridge/getFeesForTransaction.ts +37 -0
- package/src/bridge/getTransactionStatus.test.ts +57 -0
- package/src/bridge/getTransactionStatus.ts +73 -0
- package/src/bridge/index.ts +77 -0
- package/src/bridge/preload.ts +46 -0
- package/src/bridge/prepareTransaction.test.ts +47 -0
- package/src/bridge/prepareTransaction.ts +44 -0
- package/src/bridge/serialization.test.ts +135 -0
- package/src/bridge/serialization.ts +24 -0
- package/src/bridge/signOperation.test.ts +80 -0
- package/src/bridge/signOperation.ts +101 -0
- package/src/bridge/synchronisation.test.ts +140 -0
- package/src/bridge/synchronisation.ts +75 -0
- package/src/bridge/transaction.test.ts +73 -0
- package/src/bridge/transaction.ts +61 -0
- package/src/bridge/utils.ts +69 -0
- package/src/config.ts +19 -0
- package/src/index.ts +3 -0
- package/src/logic/broadcast.ts +19 -0
- package/src/logic/craftTransaction.ts +28 -0
- package/src/logic/estimateFees.ts +14 -0
- package/src/logic/index.ts +3 -0
- package/src/network/index.ts +17 -0
- package/src/network/sdk.integration.test.ts +75 -0
- package/src/network/sdk.test.ts +203 -0
- package/src/network/sdk.ts +262 -0
- package/src/signer/getAddress.test.ts +119 -0
- package/src/signer/getAddress.ts +26 -0
- package/src/signer/index.ts +7 -0
- package/src/test/cli.ts +21 -0
- package/src/types/bridge.fixture.ts +84 -0
- package/src/types/bridge.ts +95 -0
- package/src/types/index.ts +3 -0
- package/src/types/model.ts +7 -0
- package/src/types/signer.ts +12 -0
- package/src/utils.ts +8 -0
- package/tsconfig.json +14 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { BigNumber } from "bignumber.js";
|
|
2
|
+
import type { TransactionCommon, TransactionCommonRaw, TransactionStatusCommon, TransactionStatusCommonRaw, Operation, OperationRaw } from "@ledgerhq/types-live";
|
|
3
|
+
import type { Account, AccountRaw } from "@ledgerhq/types-live";
|
|
4
|
+
/**
|
|
5
|
+
* Sui account resources
|
|
6
|
+
*/
|
|
7
|
+
export type SuiResources = object;
|
|
8
|
+
/**
|
|
9
|
+
* Sui account resources from raw JSON
|
|
10
|
+
*/
|
|
11
|
+
export type SuiResourcesRaw = object;
|
|
12
|
+
/**
|
|
13
|
+
* Sui transaction
|
|
14
|
+
*/
|
|
15
|
+
export type Transaction = TransactionCommon & {
|
|
16
|
+
mode: string;
|
|
17
|
+
family: "sui";
|
|
18
|
+
amount: BigNumber | null;
|
|
19
|
+
fees?: BigNumber | null;
|
|
20
|
+
errors: Record<string, Error>;
|
|
21
|
+
skipVerify?: boolean;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Sui transaction from a raw JSON
|
|
25
|
+
*/
|
|
26
|
+
export type TransactionRaw = TransactionCommonRaw & {
|
|
27
|
+
family: "sui";
|
|
28
|
+
mode: string;
|
|
29
|
+
fees?: string;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Sui currency data that will be preloaded.
|
|
33
|
+
* You can for instance add a list of validators for Proof-of-Stake blockchains,
|
|
34
|
+
* or any volatile data that could not be set as constants in the code (staking progress, fee estimation variables, etc.)
|
|
35
|
+
*/
|
|
36
|
+
export type SuiPreloadData = object;
|
|
37
|
+
export type SuiAccount = Account & {
|
|
38
|
+
suiResources?: SuiResources;
|
|
39
|
+
};
|
|
40
|
+
export type SuiAccountRaw = AccountRaw & {
|
|
41
|
+
suiResources?: SuiResourcesRaw;
|
|
42
|
+
};
|
|
43
|
+
export type TransactionStatus = TransactionStatusCommon;
|
|
44
|
+
export type TransactionStatusRaw = TransactionStatusCommonRaw;
|
|
45
|
+
export type SuiOperation = Operation<SuiOperationExtra>;
|
|
46
|
+
export type SuiOperationRaw = OperationRaw<SuiOperationExtraRaw>;
|
|
47
|
+
export type SuiOperationExtra = {
|
|
48
|
+
transferAmount?: BigNumber;
|
|
49
|
+
};
|
|
50
|
+
export type SuiOperationExtraRaw = Record<string, string>;
|
|
51
|
+
export type SuiSignedOperation = {
|
|
52
|
+
operation: SuiOperation;
|
|
53
|
+
signature: string;
|
|
54
|
+
rawData: {
|
|
55
|
+
unsigned: string;
|
|
56
|
+
serializedSignature: string;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
export type TransferCommand = {
|
|
60
|
+
kind: "transfer";
|
|
61
|
+
sender: string;
|
|
62
|
+
recipient: string;
|
|
63
|
+
amount: number;
|
|
64
|
+
};
|
|
65
|
+
export type Command = TransferCommand;
|
|
66
|
+
export type CommandDescriptor = {
|
|
67
|
+
command: Command;
|
|
68
|
+
fee: number;
|
|
69
|
+
warnings: Record<string, Error>;
|
|
70
|
+
errors: Record<string, Error>;
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=bridge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/types/bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,SAAS,EACT,YAAY,EACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;CAEtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG;IAClD,MAAM,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CAEf,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG;IAEjC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG;IACvC,YAAY,CAAC,EAAE,eAAe,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,uBAAuB,CAAC;AACxD,MAAM,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;AACxD,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;AAEjE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,CAAC,EAAE,SAAS,CAAC;CAC5B,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE1D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,YAAY,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,eAAe,CAAC;AAEtC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC/B,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { BigNumber } from "bignumber.js";
|
|
2
|
+
import { SuiAccount } from "./bridge";
|
|
3
|
+
export declare const createFixtureAccount: (overrides?: {}) => SuiAccount;
|
|
4
|
+
export declare const createFixtureTransaction: (overrides?: {}) => {
|
|
5
|
+
family: "sui";
|
|
6
|
+
mode: string;
|
|
7
|
+
amount: BigNumber;
|
|
8
|
+
recipient: string;
|
|
9
|
+
useAllAmount: boolean;
|
|
10
|
+
fees: BigNumber;
|
|
11
|
+
errors: {};
|
|
12
|
+
skipVerify: boolean;
|
|
13
|
+
};
|
|
14
|
+
export declare const createFixtureOperation: (overrides?: {}) => {
|
|
15
|
+
hash: string;
|
|
16
|
+
fee: BigNumber;
|
|
17
|
+
blockHash: null;
|
|
18
|
+
blockHeight: null;
|
|
19
|
+
extra: {
|
|
20
|
+
transferAmount: BigNumber;
|
|
21
|
+
};
|
|
22
|
+
id: string;
|
|
23
|
+
type: "OUT";
|
|
24
|
+
value: BigNumber;
|
|
25
|
+
senders: string[];
|
|
26
|
+
recipients: string[];
|
|
27
|
+
accountId: string;
|
|
28
|
+
date: Date;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=bridge.fixture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.fixture.d.ts","sourceRoot":"","sources":["../../src/types/bridge.fixture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,eAAO,MAAM,oBAAoB,gCAoDf,CAAC;AAEnB,eAAO,MAAM,wBAAwB;;;;;;;;;CAUnC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;CAcjC,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { BigNumber } from "bignumber.js";
|
|
2
|
+
export const createFixtureAccount = (overrides = {}) => ({
|
|
3
|
+
type: "Account",
|
|
4
|
+
id: "js:2:sui:0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0:sui",
|
|
5
|
+
used: true,
|
|
6
|
+
seedIdentifier: "99807c4b6e1b8b25120f633f5f7816a393e4d3e7f84bdf24bd8afe725911be91",
|
|
7
|
+
derivationMode: "sui",
|
|
8
|
+
index: 0,
|
|
9
|
+
freshAddress: "0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0",
|
|
10
|
+
freshAddressPath: "44'/784'/0'/0'/0'",
|
|
11
|
+
blockHeight: 10,
|
|
12
|
+
creationDate: new Date(),
|
|
13
|
+
balance: BigNumber(17997970360),
|
|
14
|
+
spendableBalance: BigNumber(17997970360),
|
|
15
|
+
operations: [],
|
|
16
|
+
operationsCount: 2,
|
|
17
|
+
pendingOperations: [],
|
|
18
|
+
currency: {
|
|
19
|
+
type: "CryptoCurrency",
|
|
20
|
+
id: "sui",
|
|
21
|
+
coinType: 784,
|
|
22
|
+
name: "Sui",
|
|
23
|
+
managerAppName: "Sui",
|
|
24
|
+
ticker: "SUI",
|
|
25
|
+
scheme: "sui",
|
|
26
|
+
color: "#000",
|
|
27
|
+
family: "sui",
|
|
28
|
+
units: [{ name: "Sui", code: "SUI", magnitude: 9 }],
|
|
29
|
+
explorerViews: [
|
|
30
|
+
{
|
|
31
|
+
tx: "https://suiscan.xyz/mainnet/tx/$hash",
|
|
32
|
+
address: "https://suiscan.xyz/mainnet/account/$address",
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
tx: "https://suivision.xyz/txblock/$hash",
|
|
36
|
+
address: "https://suivision.xyz/account/$address",
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
},
|
|
40
|
+
lastSyncDate: new Date(),
|
|
41
|
+
swapHistory: [],
|
|
42
|
+
balanceHistoryCache: {
|
|
43
|
+
HOUR: {
|
|
44
|
+
balances: [0],
|
|
45
|
+
latestDate: new Date().getMilliseconds(),
|
|
46
|
+
},
|
|
47
|
+
DAY: { balances: [0], latestDate: new Date().getMilliseconds() },
|
|
48
|
+
WEEK: { balances: [0], latestDate: new Date().getMilliseconds() },
|
|
49
|
+
},
|
|
50
|
+
subAccounts: [],
|
|
51
|
+
suiResources: { nonce: 0 },
|
|
52
|
+
...overrides,
|
|
53
|
+
});
|
|
54
|
+
export const createFixtureTransaction = (overrides = {}) => ({
|
|
55
|
+
family: "sui",
|
|
56
|
+
mode: "send",
|
|
57
|
+
amount: BigNumber(3000000000),
|
|
58
|
+
recipient: "0x65449f57946938c84c512732f1d69405d1fce417d9c9894696ddf4522f479e24",
|
|
59
|
+
useAllAmount: false,
|
|
60
|
+
fees: BigNumber(3976000),
|
|
61
|
+
errors: {},
|
|
62
|
+
skipVerify: true,
|
|
63
|
+
...overrides,
|
|
64
|
+
});
|
|
65
|
+
export const createFixtureOperation = (overrides = {}) => ({
|
|
66
|
+
hash: "44298e5b1b7d73efc",
|
|
67
|
+
fee: BigNumber(3976000),
|
|
68
|
+
blockHash: null,
|
|
69
|
+
blockHeight: null,
|
|
70
|
+
extra: { transferAmount: BigNumber(1000000000) },
|
|
71
|
+
id: "js:2:sui:0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0:sui--OUT",
|
|
72
|
+
type: "OUT",
|
|
73
|
+
value: BigNumber(1003976000),
|
|
74
|
+
senders: ["0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0"],
|
|
75
|
+
recipients: ["0x65449f57946938c84c512732f1d69405d1fce417d9c9894696ddf4522f479e24"],
|
|
76
|
+
accountId: "js:2:sui:0x6e143fe0a8ca010a86580dafac44298e5b1b7d73efc345356a59a15f0d7824f0:sui",
|
|
77
|
+
date: new Date(),
|
|
78
|
+
...overrides,
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=bridge.fixture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.fixture.js","sourceRoot":"","sources":["../../src/types/bridge.fixture.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/types/bridge.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/types/model.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEzD,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,UAAU,CAAC;CACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/types/model.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Sui from "@ledgerhq/hw-app-sui";
|
|
2
|
+
export type SuiAddress = {
|
|
3
|
+
pubKey: string;
|
|
4
|
+
address: string;
|
|
5
|
+
return_code: number;
|
|
6
|
+
};
|
|
7
|
+
export type SuiSignature = {
|
|
8
|
+
signature: null | string;
|
|
9
|
+
return_code: number;
|
|
10
|
+
};
|
|
11
|
+
export interface SuiSigner extends Sui {
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=signer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/types/signer.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,sBAAsB,CAAC;AAEvC,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AACF,MAAM,WAAW,SAAU,SAAQ,GAAG;CAAG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/types/signer.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensures that the address is in the format `0x...`
|
|
3
|
+
* @param addr The address to ensure the format of
|
|
4
|
+
* @returns The address in the format `0x...`
|
|
5
|
+
*/
|
|
6
|
+
export declare function ensureAddressFormat(addr: string): `0x${string}`;
|
|
7
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAE/D"}
|
package/lib-es/utils.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ensures that the address is in the format `0x...`
|
|
3
|
+
* @param addr The address to ensure the format of
|
|
4
|
+
* @returns The address in the format `0x...`
|
|
5
|
+
*/
|
|
6
|
+
export function ensureAddressFormat(addr) {
|
|
7
|
+
return (addr?.startsWith("0x") ? addr : `0x${addr}`);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAkB,CAAC;AACxE,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ledgerhq/coin-sui",
|
|
3
|
+
"version": "0.2.0-nightly.0",
|
|
4
|
+
"description": "Ledger Sui Coin integration",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"Ledger",
|
|
7
|
+
"LedgerWallet",
|
|
8
|
+
"Sui"
|
|
9
|
+
],
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "https://github.com/LedgerHQ/ledger-live.git"
|
|
13
|
+
},
|
|
14
|
+
"bugs": {
|
|
15
|
+
"url": "https://github.com/LedgerHQ/ledger-live/issues"
|
|
16
|
+
},
|
|
17
|
+
"homepage": "https://github.com/LedgerHQ/ledger-live/tree/develop/libs/coin-modules/coin-sui",
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public"
|
|
20
|
+
},
|
|
21
|
+
"typesVersions": {
|
|
22
|
+
"*": {
|
|
23
|
+
"lib/*": [
|
|
24
|
+
"lib/*"
|
|
25
|
+
],
|
|
26
|
+
"lib-es/*": [
|
|
27
|
+
"lib-es/*"
|
|
28
|
+
],
|
|
29
|
+
"api": [
|
|
30
|
+
"lib/api/index"
|
|
31
|
+
],
|
|
32
|
+
"logic": [
|
|
33
|
+
"lib/logic/index"
|
|
34
|
+
],
|
|
35
|
+
"*": [
|
|
36
|
+
"lib/*",
|
|
37
|
+
"lib/api/*",
|
|
38
|
+
"lib/bridge/*",
|
|
39
|
+
"lib/logic/*",
|
|
40
|
+
"lib/signer/*",
|
|
41
|
+
"lib/test/*",
|
|
42
|
+
"lib/types/*"
|
|
43
|
+
]
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"exports": {
|
|
47
|
+
"./lib/*": "./lib/*.js",
|
|
48
|
+
"./lib-es/*": "./lib-es/*.js",
|
|
49
|
+
"./config": {
|
|
50
|
+
"require": "./lib/config.js",
|
|
51
|
+
"default": "./lib-es/config.js"
|
|
52
|
+
},
|
|
53
|
+
"./api": {
|
|
54
|
+
"require": "./lib/api/index.js",
|
|
55
|
+
"default": "./lib-es/api/index.js"
|
|
56
|
+
},
|
|
57
|
+
"./bridge/bridge.integration.test": {
|
|
58
|
+
"require": "./lib/bridge/bridge.integration.test.js",
|
|
59
|
+
"default": "./lib-es/bridge/bridge.integration.test.js"
|
|
60
|
+
},
|
|
61
|
+
"./formatters": {
|
|
62
|
+
"require": "./lib/bridge/formatters.js",
|
|
63
|
+
"default": "./lib-es/bridge/formatters.js"
|
|
64
|
+
},
|
|
65
|
+
"./logic": {
|
|
66
|
+
"require": "./lib/logic/index.js",
|
|
67
|
+
"default": "./lib-es/logic/index.js"
|
|
68
|
+
},
|
|
69
|
+
"./preload": {
|
|
70
|
+
"require": "./lib/bridge/preload.js",
|
|
71
|
+
"default": "./lib-es/bridge/preload.js"
|
|
72
|
+
},
|
|
73
|
+
"./serialization": {
|
|
74
|
+
"require": "./lib/bridge/serialization.js",
|
|
75
|
+
"default": "./lib-es/bridge/serialization.js"
|
|
76
|
+
},
|
|
77
|
+
"./signer": {
|
|
78
|
+
"require": "./lib/signer/index.js",
|
|
79
|
+
"default": "./lib-es/signer/index.js"
|
|
80
|
+
},
|
|
81
|
+
"./signer/*": {
|
|
82
|
+
"require": "./lib/signer/*.js",
|
|
83
|
+
"default": "./lib-es/signer/*.js"
|
|
84
|
+
},
|
|
85
|
+
"./transaction": {
|
|
86
|
+
"require": "./lib/bridge/transaction.js",
|
|
87
|
+
"default": "./lib-es/bridge/transaction.js"
|
|
88
|
+
},
|
|
89
|
+
"./types": {
|
|
90
|
+
"require": "./lib/types/index.js",
|
|
91
|
+
"default": "./lib-es/types/index.js"
|
|
92
|
+
},
|
|
93
|
+
"./types/*": {
|
|
94
|
+
"require": "./lib/types/*.js",
|
|
95
|
+
"default": "./lib-es/types/*.js"
|
|
96
|
+
},
|
|
97
|
+
"./test/*": {
|
|
98
|
+
"require": "./lib/test/*.js",
|
|
99
|
+
"default": "./lib-es/test/*.js"
|
|
100
|
+
},
|
|
101
|
+
"./utils": {
|
|
102
|
+
"require": "./lib/bridge/utils.js",
|
|
103
|
+
"default": "./lib-es/bridge/utils.js"
|
|
104
|
+
},
|
|
105
|
+
".": {
|
|
106
|
+
"require": "./lib/index.js",
|
|
107
|
+
"default": "./lib-es/index.js"
|
|
108
|
+
},
|
|
109
|
+
"./package.json": "./package.json"
|
|
110
|
+
},
|
|
111
|
+
"license": "Apache-2.0",
|
|
112
|
+
"dependencies": {
|
|
113
|
+
"@mysten/sui": "1.21.1",
|
|
114
|
+
"bignumber.js": "^9.1.2",
|
|
115
|
+
"lodash": "4.17.21",
|
|
116
|
+
"rxjs": "^7.8.1",
|
|
117
|
+
"@ledgerhq/coin-framework": "^2.4.0-nightly.3",
|
|
118
|
+
"@ledgerhq/cryptoassets": "^13.14.0-nightly.1",
|
|
119
|
+
"@ledgerhq/errors": "^6.19.1",
|
|
120
|
+
"@ledgerhq/hw-app-sui": "^1.1.0-nightly.0",
|
|
121
|
+
"@ledgerhq/live-env": "^2.7.0-nightly.0",
|
|
122
|
+
"@ledgerhq/live-network": "^2.0.6-nightly.0",
|
|
123
|
+
"@ledgerhq/logs": "^6.12.0",
|
|
124
|
+
"@ledgerhq/types-cryptoassets": "^7.21.0-nightly.0",
|
|
125
|
+
"@ledgerhq/types-live": "^6.64.0-nightly.1"
|
|
126
|
+
},
|
|
127
|
+
"devDependencies": {
|
|
128
|
+
"@faker-js/faker": "^8.4.1",
|
|
129
|
+
"@types/invariant": "^2.2.2",
|
|
130
|
+
"@types/jest": "^29.5.10",
|
|
131
|
+
"@types/lodash": "^4.14.191",
|
|
132
|
+
"jest": "^29.7.0",
|
|
133
|
+
"ts-jest": "^29.1.1"
|
|
134
|
+
},
|
|
135
|
+
"scripts": {
|
|
136
|
+
"clean": "rimraf lib lib-es",
|
|
137
|
+
"build": "tsc --outDir lib --module commonjs --moduleResolution node10 && tsc -m ES6 --outDir lib-es",
|
|
138
|
+
"coverage": "jest --coverage --testPathIgnorePatterns='/bridge.integration.test.ts|node_modules|lib-es|lib/' --passWithNoTests && mv coverage/coverage-final.json coverage/coverage-sui.json",
|
|
139
|
+
"prewatch": "pnpm build",
|
|
140
|
+
"watch": "tsc --watch",
|
|
141
|
+
"watch:es": "tsc --watch -m ES6 --outDir lib-es",
|
|
142
|
+
"doc": "documentation readme src/** --section=API --pe ts --re ts --re d.ts",
|
|
143
|
+
"lint": "eslint ./src --no-error-on-unmatched-pattern --ext .ts,.tsx --cache",
|
|
144
|
+
"lint:fix": "pnpm lint --fix",
|
|
145
|
+
"test": "jest",
|
|
146
|
+
"test-integ": "jest --config=jest.integ.config.js",
|
|
147
|
+
"typecheck": "tsc --noEmit",
|
|
148
|
+
"unimported": "unimported",
|
|
149
|
+
"coin-tester:build": "make build -f src/test/coin-tester/Makefile",
|
|
150
|
+
"coin-tester": "DOTENV_CONFIG_PATH=src/test/coin-tester/.env pnpm jest --runTestsByPath src/test/coin-tester/*.test.ts --forceExit --runInBand"
|
|
151
|
+
}
|
|
152
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Transaction } from "@mysten/sui/transactions";
|
|
2
|
+
import type { TransactionStatusCommon } from "@ledgerhq/types-live";
|
|
3
|
+
import type { AccountInfoResponse } from "../../types";
|
|
4
|
+
|
|
5
|
+
export type Config = {
|
|
6
|
+
readonly endpoint: string;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export type ChainAPI = Readonly<{
|
|
10
|
+
getBalance: (address: string) => Promise<number>;
|
|
11
|
+
getLatestBlockhash: () => Promise<string>;
|
|
12
|
+
getFeeForMessage: (message: Transaction) => Promise<number | null>;
|
|
13
|
+
getAccountInfo: (address: string) => Promise<AccountInfoResponse>;
|
|
14
|
+
sendRawTransaction: (transaction: Transaction) => Promise<string>;
|
|
15
|
+
getTransactionStatus: (signature: string) => Promise<TransactionStatusCommon>;
|
|
16
|
+
config: Config;
|
|
17
|
+
}>;
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { AccountRaw, CurrenciesData, DatasetTest } from "@ledgerhq/types-live";
|
|
2
|
+
import { Transaction } from "../types";
|
|
3
|
+
import {
|
|
4
|
+
NotEnoughBalance,
|
|
5
|
+
RecipientRequired,
|
|
6
|
+
InvalidAddressBecauseDestinationIsAlsoSource,
|
|
7
|
+
AmountRequired,
|
|
8
|
+
} from "@ledgerhq/errors";
|
|
9
|
+
import BigNumber from "bignumber.js";
|
|
10
|
+
import { fromTransactionRaw } from "./transaction";
|
|
11
|
+
|
|
12
|
+
const OWNER = "0xba7080172a6d957b9ed2e3eb643529860be963cf4af896fb84f1cde00f46b561";
|
|
13
|
+
const RECIPIENT = "0x117527fdcf2f5f6e82fa499c0398def2643550d63f7e8311245d75f4635f0435";
|
|
14
|
+
const DEFAULT_AMOUNT = "10";
|
|
15
|
+
|
|
16
|
+
const suiAccount1: AccountRaw = {
|
|
17
|
+
id: `js:2:sui:${OWNER}:`,
|
|
18
|
+
seedIdentifier: OWNER,
|
|
19
|
+
name: `Sui ${OWNER}`,
|
|
20
|
+
derivationMode: "",
|
|
21
|
+
index: 0,
|
|
22
|
+
freshAddress: OWNER,
|
|
23
|
+
freshAddressPath: "44'/784'/0'/0'/0'",
|
|
24
|
+
pendingOperations: [],
|
|
25
|
+
operations: [],
|
|
26
|
+
currencyId: "sui",
|
|
27
|
+
balance: "0",
|
|
28
|
+
blockHeight: 0,
|
|
29
|
+
lastSyncDate: "",
|
|
30
|
+
xpub: "",
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
const sui: CurrenciesData<Transaction> = {
|
|
34
|
+
scanAccounts: [
|
|
35
|
+
{
|
|
36
|
+
name: "sui seed 1",
|
|
37
|
+
apdus: `
|
|
38
|
+
=> 0002000021001b7cf66fe039a16326933b3fe94627a7ddc4d18539b925bdb80f9294f88df4af
|
|
39
|
+
<= 021b7cf66fe039a16326933b3fe94627a7ddc4d18539b925bdb80f9294f88df4af9000
|
|
40
|
+
=> 000200003a010000000000000000000000000000000000000000000000000000000000000000062c0000801003008000000080000000800000008000000080
|
|
41
|
+
<= 0120e5fb8c817b97e9e9aec677b9e822e8a60c7471624f36b701c94560b88195a8e720eba97be74a8e66a2a423d18d4d73b6866503c406b376fb49f6bf0aacb6d508279000
|
|
42
|
+
=> 0002000021007cfea3aa1e07cc4b500c237a8bf8dcb31d5cb855f29dfdeb92f9e4df9493a6cd
|
|
43
|
+
<= 027cfea3aa1e07cc4b500c237a8bf8dcb31d5cb855f29dfdeb92f9e4df9493a6cd9000
|
|
44
|
+
=> 0002000036010000000000000000000000000000000000000000000000000000000000000000052c00008010030080000000800000008000000080
|
|
45
|
+
<= 0120e95d14c7b906d66090556e0fce65ed3b71167b37e0c19136857d35b44f082ba720117527fdcf2f5f6e82fa499c0398def2643550d63f7e8311245d75f4635f04359000
|
|
46
|
+
`,
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
accounts: [
|
|
50
|
+
{
|
|
51
|
+
raw: suiAccount1,
|
|
52
|
+
transactions: [
|
|
53
|
+
{
|
|
54
|
+
name: "recipient and sender must not be the same",
|
|
55
|
+
transaction: fromTransactionRaw({
|
|
56
|
+
family: "sui",
|
|
57
|
+
recipient: OWNER,
|
|
58
|
+
amount: DEFAULT_AMOUNT,
|
|
59
|
+
mode: "send",
|
|
60
|
+
}),
|
|
61
|
+
expectedStatus: {
|
|
62
|
+
amount: new BigNumber(DEFAULT_AMOUNT),
|
|
63
|
+
errors: { recipient: new InvalidAddressBecauseDestinationIsAlsoSource() },
|
|
64
|
+
warnings: {},
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
name: "send tx",
|
|
69
|
+
transaction: fromTransactionRaw({
|
|
70
|
+
amount: "2000000",
|
|
71
|
+
recipient: RECIPIENT,
|
|
72
|
+
useAllAmount: false,
|
|
73
|
+
family: "sui",
|
|
74
|
+
mode: "send",
|
|
75
|
+
fees: "0",
|
|
76
|
+
}),
|
|
77
|
+
expectedStatus: {
|
|
78
|
+
errors: {},
|
|
79
|
+
warnings: {},
|
|
80
|
+
estimatedFees: BigNumber("0"),
|
|
81
|
+
amount: BigNumber("2000000"),
|
|
82
|
+
totalSpent: BigNumber("2000000"),
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: "not enough balance",
|
|
87
|
+
transaction: fromTransactionRaw({
|
|
88
|
+
family: "sui",
|
|
89
|
+
recipient: RECIPIENT,
|
|
90
|
+
amount: "10000000000000000000",
|
|
91
|
+
mode: "send",
|
|
92
|
+
}),
|
|
93
|
+
expectedStatus: {
|
|
94
|
+
errors: {
|
|
95
|
+
amount: new NotEnoughBalance(),
|
|
96
|
+
},
|
|
97
|
+
warnings: {},
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: "recipient is required",
|
|
102
|
+
transaction: fromTransactionRaw({
|
|
103
|
+
family: "sui",
|
|
104
|
+
recipient: "",
|
|
105
|
+
amount: "1000000",
|
|
106
|
+
mode: "send",
|
|
107
|
+
}),
|
|
108
|
+
expectedStatus: {
|
|
109
|
+
errors: {
|
|
110
|
+
recipient: new RecipientRequired(),
|
|
111
|
+
},
|
|
112
|
+
warnings: {},
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
name: "amount is required",
|
|
117
|
+
transaction: fromTransactionRaw({
|
|
118
|
+
family: "sui",
|
|
119
|
+
recipient: RECIPIENT,
|
|
120
|
+
amount: "0",
|
|
121
|
+
mode: "send",
|
|
122
|
+
}),
|
|
123
|
+
expectedStatus: {
|
|
124
|
+
errors: {
|
|
125
|
+
amount: new AmountRequired(),
|
|
126
|
+
},
|
|
127
|
+
warnings: {},
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
export const dataset: DatasetTest<Transaction> = {
|
|
136
|
+
implementations: ["js"],
|
|
137
|
+
currencies: {
|
|
138
|
+
sui,
|
|
139
|
+
},
|
|
140
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { createFixtureOperation } from "../types/bridge.fixture";
|
|
2
|
+
import { broadcast } from "./broadcast";
|
|
3
|
+
|
|
4
|
+
const executeTransactionBlock = jest.fn();
|
|
5
|
+
|
|
6
|
+
jest.mock("../network", () => {
|
|
7
|
+
return {
|
|
8
|
+
executeTransactionBlock: (arg: any) => executeTransactionBlock(arg),
|
|
9
|
+
};
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
describe("broadcast", () => {
|
|
13
|
+
it("calls explorer for broadcast operation", async () => {
|
|
14
|
+
// WHEN
|
|
15
|
+
await broadcast({
|
|
16
|
+
account: {} as any,
|
|
17
|
+
signedOperation: {
|
|
18
|
+
signature: "SIGNATURE",
|
|
19
|
+
operation: createFixtureOperation(),
|
|
20
|
+
rawData: {
|
|
21
|
+
serializedSignature: new Uint8Array(64).fill(0x42),
|
|
22
|
+
unsigned: Buffer.from(new Uint8Array(64).fill(0x42)).toString("base64"),
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
// THEN
|
|
28
|
+
expect(executeTransactionBlock).toHaveBeenCalledTimes(1);
|
|
29
|
+
expect(executeTransactionBlock.mock.lastCall[0]).toHaveProperty("signature");
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it("updates the signed operation", async () => {
|
|
33
|
+
// GIVEN
|
|
34
|
+
const operation = createFixtureOperation();
|
|
35
|
+
|
|
36
|
+
// WHEN
|
|
37
|
+
const result = await broadcast({
|
|
38
|
+
account: {} as any,
|
|
39
|
+
signedOperation: {
|
|
40
|
+
signature: "SIGNATURE",
|
|
41
|
+
operation,
|
|
42
|
+
rawData: {
|
|
43
|
+
serializedSignature: new Uint8Array(64).fill(0x42),
|
|
44
|
+
unsigned: Buffer.from(new Uint8Array(64).fill(0x42)).toString("base64"),
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
// THEN
|
|
50
|
+
expect(result.hash).not.toEqual(operation.hash);
|
|
51
|
+
});
|
|
52
|
+
});
|