@ledgerhq/coin-evm 0.3.0 → 0.4.0-next.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/CHANGELOG.md +31 -0
- package/jest.config.js +4 -0
- package/lib/__tests__/fixtures/common.fixtures.d.ts +9 -0
- package/lib/__tests__/fixtures/common.fixtures.d.ts.map +1 -0
- package/lib/{testUtils.js → __tests__/fixtures/common.fixtures.js} +40 -9
- package/lib/__tests__/fixtures/common.fixtures.js.map +1 -0
- package/lib/__tests__/fixtures/etherscan.fixtures.d.ts +86 -0
- package/lib/__tests__/fixtures/etherscan.fixtures.d.ts.map +1 -0
- package/lib/__tests__/fixtures/etherscan.fixtures.js +267 -0
- package/lib/__tests__/fixtures/etherscan.fixtures.js.map +1 -0
- package/lib/__tests__/fixtures/prepareTransaction.fixtures.d.ts +10 -0
- package/lib/__tests__/fixtures/prepareTransaction.fixtures.d.ts.map +1 -0
- package/lib/__tests__/fixtures/prepareTransaction.fixtures.js +69 -0
- package/lib/__tests__/fixtures/prepareTransaction.fixtures.js.map +1 -0
- package/lib/__tests__/fixtures/synchronization.fixtures.d.ts +44 -0
- package/lib/__tests__/fixtures/synchronization.fixtures.d.ts.map +1 -0
- package/lib/__tests__/fixtures/synchronization.fixtures.js +219 -0
- package/lib/__tests__/fixtures/synchronization.fixtures.js.map +1 -0
- package/lib/__tests__/fixtures/transaction.fixtures.d.ts +47 -0
- package/lib/__tests__/fixtures/transaction.fixtures.d.ts.map +1 -0
- package/lib/__tests__/fixtures/transaction.fixtures.js +182 -0
- package/lib/__tests__/fixtures/transaction.fixtures.js.map +1 -0
- package/lib/__tests__/integration/bridge.integration.test.d.ts +7 -0
- package/lib/__tests__/integration/bridge.integration.test.d.ts.map +1 -0
- package/lib/__tests__/integration/bridge.integration.test.js +74 -0
- package/lib/__tests__/integration/bridge.integration.test.js.map +1 -0
- package/lib/__tests__/unit/adapters.unit.test.d.ts.map +1 -0
- package/lib/__tests__/unit/adapters.unit.test.js +989 -0
- package/lib/__tests__/unit/adapters.unit.test.js.map +1 -0
- package/lib/__tests__/unit/api/explorer/etherscan.unit.test.d.ts +2 -0
- package/lib/__tests__/unit/api/explorer/etherscan.unit.test.d.ts.map +1 -0
- package/lib/__tests__/unit/api/explorer/etherscan.unit.test.js +430 -0
- package/lib/__tests__/unit/api/explorer/etherscan.unit.test.js.map +1 -0
- package/lib/__tests__/unit/api/explorer/index.unit.test.d.ts +2 -0
- package/lib/__tests__/unit/api/explorer/index.unit.test.d.ts.map +1 -0
- package/lib/__tests__/unit/api/explorer/index.unit.test.js +49 -0
- package/lib/__tests__/unit/api/explorer/index.unit.test.js.map +1 -0
- package/lib/__tests__/unit/api/gasTracker/index.unit.test.d.ts +2 -0
- package/lib/__tests__/unit/api/gasTracker/index.unit.test.d.ts.map +1 -0
- package/lib/__tests__/{gasTracker → unit/api/gasTracker}/index.unit.test.js +3 -3
- package/lib/__tests__/unit/api/gasTracker/index.unit.test.js.map +1 -0
- package/lib/__tests__/unit/api/gasTracker/ledger.unit.test.d.ts.map +1 -0
- package/lib/__tests__/{gasTracker → unit/api/gasTracker}/ledger.unit.test.js +2 -2
- package/lib/__tests__/unit/api/gasTracker/ledger.unit.test.js.map +1 -0
- package/lib/__tests__/unit/api/rpc/rpc.unit.test.d.ts.map +1 -0
- package/lib/__tests__/{rpc.unit.test.js → unit/api/rpc/rpc.unit.test.js} +14 -14
- package/lib/__tests__/unit/api/rpc/rpc.unit.test.js.map +1 -0
- package/lib/__tests__/unit/broadcast.unit.test.d.ts.map +1 -0
- package/lib/__tests__/unit/broadcast.unit.test.js +335 -0
- package/lib/__tests__/unit/broadcast.unit.test.js.map +1 -0
- package/lib/__tests__/unit/buildOptimisticOperation.unit.test.d.ts.map +1 -0
- package/lib/__tests__/{buildOptimisticOperation.unit.test.js → unit/buildOptimisticOperation.unit.test.js} +132 -6
- package/lib/__tests__/unit/buildOptimisticOperation.unit.test.js.map +1 -0
- package/lib/__tests__/unit/createTransaction.unit.test.d.ts.map +1 -0
- package/lib/__tests__/{createTransaction.unit.test.js → unit/createTransaction.unit.test.js} +5 -5
- package/lib/__tests__/unit/createTransaction.unit.test.js.map +1 -0
- package/lib/__tests__/unit/deviceTransactionConfig.unit.test.d.ts.map +1 -0
- package/lib/__tests__/{deviceTransactionConfig.unit.test.js → unit/deviceTransactionConfig.unit.test.js} +123 -6
- package/lib/__tests__/unit/deviceTransactionConfig.unit.test.js.map +1 -0
- package/lib/__tests__/unit/estimateMaxSpendable.unit.test.d.ts.map +1 -0
- package/lib/__tests__/{estimateMaxSpendable.unit.test.js → unit/estimateMaxSpendable.unit.test.js} +6 -6
- package/lib/__tests__/unit/estimateMaxSpendable.unit.test.js.map +1 -0
- package/lib/__tests__/unit/getTransactionStatus.unit.test.d.ts.map +1 -0
- package/lib/__tests__/{getTransactionStatus.unit.test.js → unit/getTransactionStatus.unit.test.js} +76 -6
- package/lib/__tests__/unit/getTransactionStatus.unit.test.js.map +1 -0
- package/lib/__tests__/unit/hw-getAddress.unit.test.d.ts.map +1 -0
- package/lib/__tests__/{hw-getAddress.unit.test.js → unit/hw-getAddress.unit.test.js} +5 -1
- package/lib/__tests__/unit/hw-getAddress.unit.test.js.map +1 -0
- package/lib/__tests__/unit/hw-signMessage.unit.test.d.ts +2 -0
- package/lib/__tests__/unit/hw-signMessage.unit.test.d.ts.map +1 -0
- package/lib/__tests__/unit/hw-signMessage.unit.test.js +188 -0
- package/lib/__tests__/unit/hw-signMessage.unit.test.js.map +1 -0
- package/lib/__tests__/unit/logic.unit.test.d.ts.map +1 -0
- package/lib/__tests__/{logic.unit.test.js → unit/logic.unit.test.js} +111 -20
- package/lib/__tests__/unit/logic.unit.test.js.map +1 -0
- package/lib/__tests__/unit/nftResolvers.unit.test.d.ts +2 -0
- package/lib/__tests__/unit/nftResolvers.unit.test.d.ts.map +1 -0
- package/lib/__tests__/unit/nftResolvers.unit.test.js +163 -0
- package/lib/__tests__/unit/nftResolvers.unit.test.js.map +1 -0
- package/lib/__tests__/unit/preload.unit.test.d.ts.map +1 -0
- package/lib/__tests__/{preload.unit.test.js → unit/preload.unit.test.js} +3 -3
- package/lib/__tests__/unit/preload.unit.test.js.map +1 -0
- package/lib/__tests__/unit/prepareTransaction.unit.test.d.ts.map +1 -0
- package/lib/__tests__/unit/prepareTransaction.unit.test.js +300 -0
- package/lib/__tests__/unit/prepareTransaction.unit.test.js.map +1 -0
- package/lib/__tests__/unit/signOperation.unit.test.d.ts.map +1 -0
- package/lib/__tests__/{signOperation.unit.test.js → unit/signOperation.unit.test.js} +14 -17
- package/lib/__tests__/unit/signOperation.unit.test.js.map +1 -0
- package/lib/__tests__/unit/synchronization.unit.test.d.ts.map +1 -0
- package/lib/__tests__/{synchronization.unit.test.js → unit/synchronization.unit.test.js} +139 -231
- package/lib/__tests__/unit/synchronization.unit.test.js.map +1 -0
- package/lib/__tests__/unit/transaction.unit.test.d.ts.map +1 -0
- package/lib/__tests__/{transaction.unit.test.js → unit/transaction.unit.test.js} +48 -80
- package/lib/__tests__/unit/transaction.unit.test.js.map +1 -0
- package/lib/abis/erc1155.abi.json +314 -0
- package/lib/abis/erc721.abi.json +346 -0
- package/lib/adapters.d.ts +18 -7
- package/lib/adapters.d.ts.map +1 -1
- package/lib/adapters.js +131 -46
- package/lib/adapters.js.map +1 -1
- package/lib/api/explorer/etherscan.d.ts +39 -11
- package/lib/api/explorer/etherscan.d.ts.map +1 -1
- package/lib/api/explorer/etherscan.js +151 -9
- package/lib/api/explorer/etherscan.js.map +1 -1
- package/lib/api/explorer/index.d.ts +7 -16
- package/lib/api/explorer/index.d.ts.map +1 -1
- package/lib/api/explorer/index.js.map +1 -1
- package/lib/api/nft/index.d.ts +24 -0
- package/lib/api/nft/index.d.ts.map +1 -0
- package/lib/api/nft/index.js +54 -0
- package/lib/api/nft/index.js.map +1 -0
- package/lib/api/rpc/index.native.d.ts.map +1 -1
- package/lib/api/rpc/index.native.js +1 -0
- package/lib/api/rpc/index.native.js.map +1 -1
- package/lib/api/rpc/rpc.common.d.ts +2 -2
- package/lib/api/rpc/rpc.common.d.ts.map +1 -1
- package/lib/api/rpc/rpc.common.js +3 -3
- package/lib/api/rpc/rpc.common.js.map +1 -1
- package/lib/bridge/js.d.ts +1 -1
- package/lib/bridge/js.d.ts.map +1 -1
- package/lib/bridge/js.js +10 -10
- package/lib/bridge/js.js.map +1 -1
- package/lib/broadcast.d.ts.map +1 -1
- package/lib/broadcast.js +9 -2
- package/lib/broadcast.js.map +1 -1
- package/lib/buildOptimisticOperation.d.ts +5 -1
- package/lib/buildOptimisticOperation.d.ts.map +1 -1
- package/lib/buildOptimisticOperation.js +46 -4
- package/lib/buildOptimisticOperation.js.map +1 -1
- package/lib/cli-transaction.d.ts.map +1 -1
- package/lib/cli-transaction.js +1 -0
- package/lib/cli-transaction.js.map +1 -1
- package/lib/datasets/ethereum1.d.ts.map +1 -1
- package/lib/datasets/ethereum1.js +3 -2
- package/lib/datasets/ethereum1.js.map +1 -1
- package/lib/deviceTransactionConfig.d.ts.map +1 -1
- package/lib/deviceTransactionConfig.js +50 -0
- package/lib/deviceTransactionConfig.js.map +1 -1
- package/lib/errors.d.ts +9 -0
- package/lib/errors.d.ts.map +1 -1
- package/lib/errors.js +7 -1
- package/lib/errors.js.map +1 -1
- package/lib/getTransactionStatus.d.ts +1 -0
- package/lib/getTransactionStatus.d.ts.map +1 -1
- package/lib/getTransactionStatus.js +25 -3
- package/lib/getTransactionStatus.js.map +1 -1
- package/lib/hw-signMessage.d.ts +15 -0
- package/lib/hw-signMessage.d.ts.map +1 -0
- package/lib/hw-signMessage.js +86 -0
- package/lib/hw-signMessage.js.map +1 -0
- package/lib/logic.d.ts +63 -1
- package/lib/logic.d.ts.map +1 -1
- package/lib/logic.js +98 -2
- package/lib/logic.js.map +1 -1
- package/lib/nftResolvers.d.ts +19 -0
- package/lib/nftResolvers.d.ts.map +1 -0
- package/lib/nftResolvers.js +58 -0
- package/lib/nftResolvers.js.map +1 -0
- package/lib/preload.d.ts.map +1 -1
- package/lib/preload.js +7 -3
- package/lib/preload.js.map +1 -1
- package/lib/prepareTransaction.d.ts +6 -1
- package/lib/prepareTransaction.d.ts.map +1 -1
- package/lib/prepareTransaction.js +69 -18
- package/lib/prepareTransaction.js.map +1 -1
- package/lib/signOperation.d.ts +1 -1
- package/lib/signOperation.d.ts.map +1 -1
- package/lib/signOperation.js +17 -6
- package/lib/signOperation.js.map +1 -1
- package/lib/signer.d.ts +24 -1
- package/lib/signer.d.ts.map +1 -1
- package/lib/specs.d.ts +3 -1
- package/lib/specs.d.ts.map +1 -1
- package/lib/specs.js +3 -3
- package/lib/specs.js.map +1 -1
- package/lib/speculos-deviceActions.d.ts.map +1 -1
- package/lib/speculos-deviceActions.js +2 -1
- package/lib/speculos-deviceActions.js.map +1 -1
- package/lib/synchronization.d.ts +7 -2
- package/lib/synchronization.d.ts.map +1 -1
- package/lib/synchronization.js +45 -45
- package/lib/synchronization.js.map +1 -1
- package/lib/transaction.d.ts +3 -4
- package/lib/transaction.d.ts.map +1 -1
- package/lib/transaction.js +58 -12
- package/lib/transaction.js.map +1 -1
- package/lib/types.d.ts +85 -10
- package/lib/types.d.ts.map +1 -1
- package/lib-es/__tests__/fixtures/common.fixtures.d.ts +9 -0
- package/lib-es/__tests__/fixtures/common.fixtures.d.ts.map +1 -0
- package/lib-es/{testUtils.js → __tests__/fixtures/common.fixtures.js} +36 -8
- package/lib-es/__tests__/fixtures/common.fixtures.js.map +1 -0
- package/lib-es/__tests__/fixtures/etherscan.fixtures.d.ts +86 -0
- package/lib-es/__tests__/fixtures/etherscan.fixtures.d.ts.map +1 -0
- package/lib-es/__tests__/fixtures/etherscan.fixtures.js +264 -0
- package/lib-es/__tests__/fixtures/etherscan.fixtures.js.map +1 -0
- package/lib-es/__tests__/fixtures/prepareTransaction.fixtures.d.ts +10 -0
- package/lib-es/__tests__/fixtures/prepareTransaction.fixtures.d.ts.map +1 -0
- package/lib-es/__tests__/fixtures/prepareTransaction.fixtures.js +62 -0
- package/lib-es/__tests__/fixtures/prepareTransaction.fixtures.js.map +1 -0
- package/lib-es/__tests__/fixtures/synchronization.fixtures.d.ts +44 -0
- package/lib-es/__tests__/fixtures/synchronization.fixtures.d.ts.map +1 -0
- package/lib-es/__tests__/fixtures/synchronization.fixtures.js +190 -0
- package/lib-es/__tests__/fixtures/synchronization.fixtures.js.map +1 -0
- package/lib-es/__tests__/fixtures/transaction.fixtures.d.ts +47 -0
- package/lib-es/__tests__/fixtures/transaction.fixtures.d.ts.map +1 -0
- package/lib-es/__tests__/fixtures/transaction.fixtures.js +176 -0
- package/lib-es/__tests__/fixtures/transaction.fixtures.js.map +1 -0
- package/lib-es/__tests__/integration/bridge.integration.test.d.ts +7 -0
- package/lib-es/__tests__/integration/bridge.integration.test.d.ts.map +1 -0
- package/lib-es/__tests__/integration/bridge.integration.test.js +71 -0
- package/lib-es/__tests__/integration/bridge.integration.test.js.map +1 -0
- package/lib-es/__tests__/unit/adapters.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/unit/adapters.unit.test.js +984 -0
- package/lib-es/__tests__/unit/adapters.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/api/explorer/etherscan.unit.test.d.ts +2 -0
- package/lib-es/__tests__/unit/api/explorer/etherscan.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/unit/api/explorer/etherscan.unit.test.js +402 -0
- package/lib-es/__tests__/unit/api/explorer/etherscan.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/api/explorer/index.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/unit/api/explorer/index.unit.test.js +44 -0
- package/lib-es/__tests__/unit/api/explorer/index.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/api/gasTracker/index.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/{gasTracker → unit/api/gasTracker}/index.unit.test.js +3 -3
- package/lib-es/__tests__/unit/api/gasTracker/index.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/api/gasTracker/ledger.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/{gasTracker → unit/api/gasTracker}/ledger.unit.test.js +2 -2
- package/lib-es/__tests__/unit/api/gasTracker/ledger.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/api/rpc/rpc.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/{rpc.unit.test.js → unit/api/rpc/rpc.unit.test.js} +13 -13
- package/lib-es/__tests__/unit/api/rpc/rpc.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/broadcast.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/unit/broadcast.unit.test.js +307 -0
- package/lib-es/__tests__/unit/broadcast.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/buildOptimisticOperation.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/{buildOptimisticOperation.unit.test.js → unit/buildOptimisticOperation.unit.test.js} +130 -4
- package/lib-es/__tests__/unit/buildOptimisticOperation.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/createTransaction.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/{createTransaction.unit.test.js → unit/createTransaction.unit.test.js} +3 -3
- package/lib-es/__tests__/unit/createTransaction.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/deviceTransactionConfig.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/{deviceTransactionConfig.unit.test.js → unit/deviceTransactionConfig.unit.test.js} +121 -4
- package/lib-es/__tests__/unit/deviceTransactionConfig.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/estimateMaxSpendable.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/{estimateMaxSpendable.unit.test.js → unit/estimateMaxSpendable.unit.test.js} +4 -4
- package/lib-es/__tests__/unit/estimateMaxSpendable.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/getTransactionStatus.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/{getTransactionStatus.unit.test.js → unit/getTransactionStatus.unit.test.js} +74 -4
- package/lib-es/__tests__/unit/getTransactionStatus.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/hw-getAddress.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/{hw-getAddress.unit.test.js → unit/hw-getAddress.unit.test.js} +5 -1
- package/lib-es/__tests__/unit/hw-getAddress.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/hw-signMessage.unit.test.d.ts +2 -0
- package/lib-es/__tests__/unit/hw-signMessage.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/unit/hw-signMessage.unit.test.js +186 -0
- package/lib-es/__tests__/unit/hw-signMessage.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/logic.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/{logic.unit.test.js → unit/logic.unit.test.js} +97 -6
- package/lib-es/__tests__/unit/logic.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/nftResolvers.unit.test.d.ts +2 -0
- package/lib-es/__tests__/unit/nftResolvers.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/unit/nftResolvers.unit.test.js +158 -0
- package/lib-es/__tests__/unit/nftResolvers.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/preload.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/{preload.unit.test.js → unit/preload.unit.test.js} +3 -3
- package/lib-es/__tests__/unit/preload.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/prepareTransaction.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/{prepareTransaction.unit.test.js → unit/prepareTransaction.unit.test.js} +134 -82
- package/lib-es/__tests__/unit/prepareTransaction.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/signOperation.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/{signOperation.unit.test.js → unit/signOperation.unit.test.js} +13 -16
- package/lib-es/__tests__/unit/signOperation.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/synchronization.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/{synchronization.unit.test.js → unit/synchronization.unit.test.js} +115 -207
- package/lib-es/__tests__/unit/synchronization.unit.test.js.map +1 -0
- package/lib-es/__tests__/unit/transaction.unit.test.d.ts.map +1 -0
- package/lib-es/__tests__/{transaction.unit.test.js → unit/transaction.unit.test.js} +40 -72
- package/lib-es/__tests__/unit/transaction.unit.test.js.map +1 -0
- package/lib-es/abis/erc1155.abi.json +314 -0
- package/lib-es/abis/erc721.abi.json +346 -0
- package/lib-es/adapters.d.ts +18 -7
- package/lib-es/adapters.d.ts.map +1 -1
- package/lib-es/adapters.js +127 -44
- package/lib-es/adapters.js.map +1 -1
- package/lib-es/api/explorer/etherscan.d.ts +39 -11
- package/lib-es/api/explorer/etherscan.d.ts.map +1 -1
- package/lib-es/api/explorer/etherscan.js +146 -10
- package/lib-es/api/explorer/etherscan.js.map +1 -1
- package/lib-es/api/explorer/index.d.ts +7 -16
- package/lib-es/api/explorer/index.d.ts.map +1 -1
- package/lib-es/api/explorer/index.js.map +1 -1
- package/lib-es/api/nft/index.d.ts +24 -0
- package/lib-es/api/nft/index.d.ts.map +1 -0
- package/lib-es/api/nft/index.js +46 -0
- package/lib-es/api/nft/index.js.map +1 -0
- package/lib-es/api/rpc/index.native.d.ts.map +1 -1
- package/lib-es/api/rpc/index.native.js +1 -0
- package/lib-es/api/rpc/index.native.js.map +1 -1
- package/lib-es/api/rpc/rpc.common.d.ts +2 -2
- package/lib-es/api/rpc/rpc.common.d.ts.map +1 -1
- package/lib-es/api/rpc/rpc.common.js +3 -3
- package/lib-es/api/rpc/rpc.common.js.map +1 -1
- package/lib-es/bridge/js.d.ts +1 -1
- package/lib-es/bridge/js.d.ts.map +1 -1
- package/lib-es/bridge/js.js +10 -10
- package/lib-es/bridge/js.js.map +1 -1
- package/lib-es/broadcast.d.ts.map +1 -1
- package/lib-es/broadcast.js +9 -2
- package/lib-es/broadcast.js.map +1 -1
- package/lib-es/buildOptimisticOperation.d.ts +5 -1
- package/lib-es/buildOptimisticOperation.d.ts.map +1 -1
- package/lib-es/buildOptimisticOperation.js +45 -4
- package/lib-es/buildOptimisticOperation.js.map +1 -1
- package/lib-es/cli-transaction.d.ts.map +1 -1
- package/lib-es/cli-transaction.js +1 -0
- package/lib-es/cli-transaction.js.map +1 -1
- package/lib-es/datasets/ethereum1.d.ts.map +1 -1
- package/lib-es/datasets/ethereum1.js +3 -2
- package/lib-es/datasets/ethereum1.js.map +1 -1
- package/lib-es/deviceTransactionConfig.d.ts.map +1 -1
- package/lib-es/deviceTransactionConfig.js +50 -0
- package/lib-es/deviceTransactionConfig.js.map +1 -1
- package/lib-es/errors.d.ts +9 -0
- package/lib-es/errors.d.ts.map +1 -1
- package/lib-es/errors.js +6 -0
- package/lib-es/errors.js.map +1 -1
- package/lib-es/getTransactionStatus.d.ts +1 -0
- package/lib-es/getTransactionStatus.d.ts.map +1 -1
- package/lib-es/getTransactionStatus.js +23 -2
- package/lib-es/getTransactionStatus.js.map +1 -1
- package/lib-es/hw-signMessage.d.ts +15 -0
- package/lib-es/hw-signMessage.d.ts.map +1 -0
- package/lib-es/hw-signMessage.js +81 -0
- package/lib-es/hw-signMessage.js.map +1 -0
- package/lib-es/logic.d.ts +63 -1
- package/lib-es/logic.d.ts.map +1 -1
- package/lib-es/logic.js +95 -1
- package/lib-es/logic.js.map +1 -1
- package/lib-es/nftResolvers.d.ts +19 -0
- package/lib-es/nftResolvers.d.ts.map +1 -0
- package/lib-es/nftResolvers.js +50 -0
- package/lib-es/nftResolvers.js.map +1 -0
- package/lib-es/preload.d.ts.map +1 -1
- package/lib-es/preload.js +7 -3
- package/lib-es/preload.js.map +1 -1
- package/lib-es/prepareTransaction.d.ts +6 -1
- package/lib-es/prepareTransaction.d.ts.map +1 -1
- package/lib-es/prepareTransaction.js +68 -18
- package/lib-es/prepareTransaction.js.map +1 -1
- package/lib-es/signOperation.d.ts +1 -1
- package/lib-es/signOperation.d.ts.map +1 -1
- package/lib-es/signOperation.js +17 -6
- package/lib-es/signOperation.js.map +1 -1
- package/lib-es/signer.d.ts +24 -1
- package/lib-es/signer.d.ts.map +1 -1
- package/lib-es/specs.d.ts +3 -1
- package/lib-es/specs.d.ts.map +1 -1
- package/lib-es/specs.js +3 -3
- package/lib-es/specs.js.map +1 -1
- package/lib-es/speculos-deviceActions.d.ts.map +1 -1
- package/lib-es/speculos-deviceActions.js +2 -1
- package/lib-es/speculos-deviceActions.js.map +1 -1
- package/lib-es/synchronization.d.ts +7 -2
- package/lib-es/synchronization.d.ts.map +1 -1
- package/lib-es/synchronization.js +46 -46
- package/lib-es/synchronization.js.map +1 -1
- package/lib-es/transaction.d.ts +3 -4
- package/lib-es/transaction.d.ts.map +1 -1
- package/lib-es/transaction.js +58 -12
- package/lib-es/transaction.js.map +1 -1
- package/lib-es/types.d.ts +85 -10
- package/lib-es/types.d.ts.map +1 -1
- package/package.json +13 -12
- package/src/{testUtils.ts → __tests__/fixtures/common.fixtures.ts} +78 -11
- package/src/__tests__/fixtures/etherscan.fixtures.ts +266 -0
- package/src/__tests__/fixtures/prepareTransaction.fixtures.ts +86 -0
- package/src/__tests__/fixtures/synchronization.fixtures.ts +229 -0
- package/src/__tests__/fixtures/transaction.fixtures.ts +229 -0
- package/src/__tests__/integration/bridge.integration.test.ts +74 -0
- package/src/__tests__/unit/adapters.unit.test.ts +1076 -0
- package/src/__tests__/unit/api/explorer/etherscan.unit.test.ts +563 -0
- package/src/__tests__/unit/api/explorer/index.unit.test.ts +36 -0
- package/src/__tests__/{gasTracker → unit/api/gasTracker}/index.unit.test.ts +3 -3
- package/src/__tests__/{gasTracker → unit/api/gasTracker}/ledger.unit.test.ts +3 -3
- package/src/__tests__/{rpc.unit.test.ts → unit/api/rpc/rpc.unit.test.ts} +17 -14
- package/src/__tests__/unit/broadcast.unit.test.ts +332 -0
- package/src/__tests__/{buildOptimisticOperation.unit.test.ts → unit/buildOptimisticOperation.unit.test.ts} +144 -5
- package/src/__tests__/{createTransaction.unit.test.ts → unit/createTransaction.unit.test.ts} +4 -4
- package/src/__tests__/{deviceTransactionConfig.unit.test.ts → unit/deviceTransactionConfig.unit.test.ts} +130 -5
- package/src/__tests__/{estimateMaxSpendable.unit.test.ts → unit/estimateMaxSpendable.unit.test.ts} +5 -5
- package/src/__tests__/{getTransactionStatus.unit.test.ts → unit/getTransactionStatus.unit.test.ts} +121 -5
- package/src/__tests__/{hw-getAddress.unit.test.ts → unit/hw-getAddress.unit.test.ts} +6 -2
- package/src/__tests__/unit/hw-signMessage.unit.test.ts +192 -0
- package/src/__tests__/{logic.unit.test.ts → unit/logic.unit.test.ts} +143 -8
- package/src/__tests__/unit/nftResolvers.unit.test.ts +179 -0
- package/src/__tests__/{preload.unit.test.ts → unit/preload.unit.test.ts} +4 -4
- package/src/__tests__/{prepareTransaction.unit.test.ts → unit/prepareTransaction.unit.test.ts} +284 -109
- package/src/__tests__/{signOperation.unit.test.ts → unit/signOperation.unit.test.ts} +18 -20
- package/src/__tests__/{synchronization.unit.test.ts → unit/synchronization.unit.test.ts} +202 -280
- package/src/__tests__/unit/transaction.unit.test.ts +198 -0
- package/src/abis/erc1155.abi.json +314 -0
- package/src/abis/erc20.abi.json +4 -12
- package/src/abis/erc721.abi.json +346 -0
- package/src/adapters.ts +177 -64
- package/src/api/explorer/etherscan.ts +265 -49
- package/src/api/explorer/index.ts +24 -10
- package/src/api/nft/index.ts +49 -0
- package/src/api/rpc/index.native.ts +2 -0
- package/src/api/rpc/rpc.common.ts +3 -3
- package/src/bridge/js.ts +13 -16
- package/src/broadcast.ts +29 -2
- package/src/buildOptimisticOperation.ts +71 -6
- package/src/cli-transaction.ts +2 -0
- package/src/datasets/ethereum1.ts +4 -2
- package/src/deviceTransactionConfig.ts +65 -0
- package/src/errors.ts +8 -0
- package/src/getTransactionStatus.ts +26 -0
- package/src/hw-signMessage.ts +92 -0
- package/src/logic.ts +118 -2
- package/src/nftResolvers.ts +71 -0
- package/src/preload.ts +9 -3
- package/src/prepareTransaction.ts +102 -24
- package/src/signOperation.ts +21 -8
- package/src/signer.ts +44 -1
- package/src/specs.ts +11 -6
- package/src/speculos-deviceActions.ts +3 -1
- package/src/synchronization.ts +73 -59
- package/src/transaction.ts +68 -15
- package/src/types.ts +108 -10
- package/.eslintrc.js +0 -22
- package/lib/__tests__/adapters.unit.test.d.ts.map +0 -1
- package/lib/__tests__/adapters.unit.test.js +0 -455
- package/lib/__tests__/adapters.unit.test.js.map +0 -1
- package/lib/__tests__/broadcast.unit.test.d.ts.map +0 -1
- package/lib/__tests__/broadcast.unit.test.js +0 -181
- package/lib/__tests__/broadcast.unit.test.js.map +0 -1
- package/lib/__tests__/buildOptimisticOperation.unit.test.d.ts.map +0 -1
- package/lib/__tests__/buildOptimisticOperation.unit.test.js.map +0 -1
- package/lib/__tests__/createTransaction.unit.test.d.ts.map +0 -1
- package/lib/__tests__/createTransaction.unit.test.js.map +0 -1
- package/lib/__tests__/deviceTransactionConfig.unit.test.d.ts.map +0 -1
- package/lib/__tests__/deviceTransactionConfig.unit.test.js.map +0 -1
- package/lib/__tests__/estimateMaxSpendable.unit.test.d.ts.map +0 -1
- package/lib/__tests__/estimateMaxSpendable.unit.test.js.map +0 -1
- package/lib/__tests__/gasTracker/index.unit.test.d.ts.map +0 -1
- package/lib/__tests__/gasTracker/index.unit.test.js.map +0 -1
- package/lib/__tests__/gasTracker/ledger.unit.test.d.ts.map +0 -1
- package/lib/__tests__/gasTracker/ledger.unit.test.js.map +0 -1
- package/lib/__tests__/getTransactionStatus.unit.test.d.ts.map +0 -1
- package/lib/__tests__/getTransactionStatus.unit.test.js.map +0 -1
- package/lib/__tests__/hw-getAddress.unit.test.d.ts.map +0 -1
- package/lib/__tests__/hw-getAddress.unit.test.js.map +0 -1
- package/lib/__tests__/logic.unit.test.d.ts.map +0 -1
- package/lib/__tests__/logic.unit.test.js.map +0 -1
- package/lib/__tests__/preload.unit.test.d.ts.map +0 -1
- package/lib/__tests__/preload.unit.test.js.map +0 -1
- package/lib/__tests__/prepareTransaction.unit.test.d.ts.map +0 -1
- package/lib/__tests__/prepareTransaction.unit.test.js +0 -248
- package/lib/__tests__/prepareTransaction.unit.test.js.map +0 -1
- package/lib/__tests__/rpc.unit.test.d.ts.map +0 -1
- package/lib/__tests__/rpc.unit.test.js.map +0 -1
- package/lib/__tests__/signOperation.unit.test.d.ts.map +0 -1
- package/lib/__tests__/signOperation.unit.test.js.map +0 -1
- package/lib/__tests__/synchronization.unit.test.d.ts.map +0 -1
- package/lib/__tests__/synchronization.unit.test.js.map +0 -1
- package/lib/__tests__/transaction.unit.test.d.ts.map +0 -1
- package/lib/__tests__/transaction.unit.test.js.map +0 -1
- package/lib/bridge.integration.test.d.ts +0 -14
- package/lib/bridge.integration.test.d.ts.map +0 -1
- package/lib/bridge.integration.test.js +0 -85
- package/lib/bridge.integration.test.js.map +0 -1
- package/lib/datasets/ethereum.scanAccounts.1.d.ts +0 -7
- package/lib/datasets/ethereum.scanAccounts.1.d.ts.map +0 -1
- package/lib/datasets/ethereum.scanAccounts.1.js +0 -51
- package/lib/datasets/ethereum.scanAccounts.1.js.map +0 -1
- package/lib/datasets/ethereum2.d.ts +0 -3
- package/lib/datasets/ethereum2.d.ts.map +0 -1
- package/lib/datasets/ethereum2.js +0 -22
- package/lib/datasets/ethereum2.js.map +0 -1
- package/lib/datasets/ethereum_classic.d.ts +0 -5
- package/lib/datasets/ethereum_classic.d.ts.map +0 -1
- package/lib/datasets/ethereum_classic.js +0 -69
- package/lib/datasets/ethereum_classic.js.map +0 -1
- package/lib/testUtils.d.ts +0 -6
- package/lib/testUtils.d.ts.map +0 -1
- package/lib/testUtils.js.map +0 -1
- package/lib-es/__tests__/adapters.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/adapters.unit.test.js +0 -450
- package/lib-es/__tests__/adapters.unit.test.js.map +0 -1
- package/lib-es/__tests__/broadcast.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/broadcast.unit.test.js +0 -153
- package/lib-es/__tests__/broadcast.unit.test.js.map +0 -1
- package/lib-es/__tests__/buildOptimisticOperation.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/buildOptimisticOperation.unit.test.js.map +0 -1
- package/lib-es/__tests__/createTransaction.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/createTransaction.unit.test.js.map +0 -1
- package/lib-es/__tests__/deviceTransactionConfig.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/deviceTransactionConfig.unit.test.js.map +0 -1
- package/lib-es/__tests__/estimateMaxSpendable.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/estimateMaxSpendable.unit.test.js.map +0 -1
- package/lib-es/__tests__/gasTracker/index.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/gasTracker/index.unit.test.js.map +0 -1
- package/lib-es/__tests__/gasTracker/ledger.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/gasTracker/ledger.unit.test.js.map +0 -1
- package/lib-es/__tests__/getTransactionStatus.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/getTransactionStatus.unit.test.js.map +0 -1
- package/lib-es/__tests__/hw-getAddress.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/hw-getAddress.unit.test.js.map +0 -1
- package/lib-es/__tests__/logic.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/logic.unit.test.js.map +0 -1
- package/lib-es/__tests__/preload.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/preload.unit.test.js.map +0 -1
- package/lib-es/__tests__/prepareTransaction.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/prepareTransaction.unit.test.js.map +0 -1
- package/lib-es/__tests__/rpc.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/rpc.unit.test.js.map +0 -1
- package/lib-es/__tests__/signOperation.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/signOperation.unit.test.js.map +0 -1
- package/lib-es/__tests__/synchronization.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/synchronization.unit.test.js.map +0 -1
- package/lib-es/__tests__/transaction.unit.test.d.ts.map +0 -1
- package/lib-es/__tests__/transaction.unit.test.js.map +0 -1
- package/lib-es/bridge.integration.test.d.ts +0 -14
- package/lib-es/bridge.integration.test.d.ts.map +0 -1
- package/lib-es/bridge.integration.test.js +0 -79
- package/lib-es/bridge.integration.test.js.map +0 -1
- package/lib-es/datasets/ethereum.scanAccounts.1.d.ts +0 -7
- package/lib-es/datasets/ethereum.scanAccounts.1.d.ts.map +0 -1
- package/lib-es/datasets/ethereum.scanAccounts.1.js +0 -49
- package/lib-es/datasets/ethereum.scanAccounts.1.js.map +0 -1
- package/lib-es/datasets/ethereum2.d.ts +0 -3
- package/lib-es/datasets/ethereum2.d.ts.map +0 -1
- package/lib-es/datasets/ethereum2.js +0 -19
- package/lib-es/datasets/ethereum2.js.map +0 -1
- package/lib-es/datasets/ethereum_classic.d.ts +0 -5
- package/lib-es/datasets/ethereum_classic.d.ts.map +0 -1
- package/lib-es/datasets/ethereum_classic.js +0 -67
- package/lib-es/datasets/ethereum_classic.js.map +0 -1
- package/lib-es/testUtils.d.ts +0 -6
- package/lib-es/testUtils.d.ts.map +0 -1
- package/lib-es/testUtils.js.map +0 -1
- package/src/__tests__/adapters.unit.test.ts +0 -497
- package/src/__tests__/broadcast.unit.test.ts +0 -163
- package/src/__tests__/transaction.unit.test.ts +0 -188
- package/src/bridge.integration.test.ts +0 -86
- package/src/datasets/ethereum.scanAccounts.1.ts +0 -48
- package/src/datasets/ethereum2.ts +0 -20
- package/src/datasets/ethereum_classic.ts +0 -68
- /package/lib/__tests__/{adapters.unit.test.d.ts → unit/adapters.unit.test.d.ts} +0 -0
- /package/lib/__tests__/{gasTracker → unit/api/gasTracker}/ledger.unit.test.d.ts +0 -0
- /package/lib/__tests__/{rpc.unit.test.d.ts → unit/api/rpc/rpc.unit.test.d.ts} +0 -0
- /package/lib/__tests__/{broadcast.unit.test.d.ts → unit/broadcast.unit.test.d.ts} +0 -0
- /package/lib/__tests__/{buildOptimisticOperation.unit.test.d.ts → unit/buildOptimisticOperation.unit.test.d.ts} +0 -0
- /package/lib/__tests__/{createTransaction.unit.test.d.ts → unit/createTransaction.unit.test.d.ts} +0 -0
- /package/lib/__tests__/{deviceTransactionConfig.unit.test.d.ts → unit/deviceTransactionConfig.unit.test.d.ts} +0 -0
- /package/lib/__tests__/{estimateMaxSpendable.unit.test.d.ts → unit/estimateMaxSpendable.unit.test.d.ts} +0 -0
- /package/lib/__tests__/{getTransactionStatus.unit.test.d.ts → unit/getTransactionStatus.unit.test.d.ts} +0 -0
- /package/lib/__tests__/{hw-getAddress.unit.test.d.ts → unit/hw-getAddress.unit.test.d.ts} +0 -0
- /package/lib/__tests__/{logic.unit.test.d.ts → unit/logic.unit.test.d.ts} +0 -0
- /package/lib/__tests__/{preload.unit.test.d.ts → unit/preload.unit.test.d.ts} +0 -0
- /package/lib/__tests__/{prepareTransaction.unit.test.d.ts → unit/prepareTransaction.unit.test.d.ts} +0 -0
- /package/lib/__tests__/{signOperation.unit.test.d.ts → unit/signOperation.unit.test.d.ts} +0 -0
- /package/lib/__tests__/{synchronization.unit.test.d.ts → unit/synchronization.unit.test.d.ts} +0 -0
- /package/lib/__tests__/{transaction.unit.test.d.ts → unit/transaction.unit.test.d.ts} +0 -0
- /package/lib-es/__tests__/{adapters.unit.test.d.ts → unit/adapters.unit.test.d.ts} +0 -0
- /package/lib-es/__tests__/{gasTracker → unit/api/explorer}/index.unit.test.d.ts +0 -0
- /package/{lib/__tests__ → lib-es/__tests__/unit/api}/gasTracker/index.unit.test.d.ts +0 -0
- /package/lib-es/__tests__/{gasTracker → unit/api/gasTracker}/ledger.unit.test.d.ts +0 -0
- /package/lib-es/__tests__/{rpc.unit.test.d.ts → unit/api/rpc/rpc.unit.test.d.ts} +0 -0
- /package/lib-es/__tests__/{broadcast.unit.test.d.ts → unit/broadcast.unit.test.d.ts} +0 -0
- /package/lib-es/__tests__/{buildOptimisticOperation.unit.test.d.ts → unit/buildOptimisticOperation.unit.test.d.ts} +0 -0
- /package/lib-es/__tests__/{createTransaction.unit.test.d.ts → unit/createTransaction.unit.test.d.ts} +0 -0
- /package/lib-es/__tests__/{deviceTransactionConfig.unit.test.d.ts → unit/deviceTransactionConfig.unit.test.d.ts} +0 -0
- /package/lib-es/__tests__/{estimateMaxSpendable.unit.test.d.ts → unit/estimateMaxSpendable.unit.test.d.ts} +0 -0
- /package/lib-es/__tests__/{getTransactionStatus.unit.test.d.ts → unit/getTransactionStatus.unit.test.d.ts} +0 -0
- /package/lib-es/__tests__/{hw-getAddress.unit.test.d.ts → unit/hw-getAddress.unit.test.d.ts} +0 -0
- /package/lib-es/__tests__/{logic.unit.test.d.ts → unit/logic.unit.test.d.ts} +0 -0
- /package/lib-es/__tests__/{preload.unit.test.d.ts → unit/preload.unit.test.d.ts} +0 -0
- /package/lib-es/__tests__/{prepareTransaction.unit.test.d.ts → unit/prepareTransaction.unit.test.d.ts} +0 -0
- /package/lib-es/__tests__/{signOperation.unit.test.d.ts → unit/signOperation.unit.test.d.ts} +0 -0
- /package/lib-es/__tests__/{synchronization.unit.test.d.ts → unit/synchronization.unit.test.d.ts} +0 -0
- /package/lib-es/__tests__/{transaction.unit.test.d.ts → unit/transaction.unit.test.d.ts} +0 -0
package/lib-es/broadcast.js
CHANGED
|
@@ -7,15 +7,22 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
+
import { encodeERC1155OperationId, encodeERC721OperationId, } from "@ledgerhq/coin-framework/nft/nftOperationId";
|
|
11
|
+
import { encodeNftId } from "@ledgerhq/coin-framework/nft/nftId";
|
|
10
12
|
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
11
13
|
import { broadcastTransaction } from "./api/rpc";
|
|
12
14
|
/**
|
|
13
15
|
* Broadcast a transaction and update the operation linked
|
|
14
16
|
*/
|
|
15
17
|
export const broadcast = ({ account, signedOperation: { signature, operation }, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
16
|
-
var _a;
|
|
18
|
+
var _a, _b;
|
|
17
19
|
const txResponse = yield broadcastTransaction(account.currency, signature);
|
|
18
|
-
return Object.assign(Object.assign({}, operation), { id: encodeOperationId(operation.accountId, txResponse.hash, operation.type), hash: txResponse.hash, blockNumber: txResponse.blockNumber, blockHeight: txResponse.blockNumber, blockHash: txResponse.blockHash, date: new Date(txResponse.timestamp ? txResponse.timestamp * 1000 : Date.now()), subOperations: ((_a = operation.subOperations) === null || _a === void 0 ? void 0 : _a.map(subOp => (Object.assign(Object.assign({}, subOp), { id: encodeOperationId(subOp.accountId, txResponse.hash, subOp.type), hash: txResponse.hash, blockNumber: txResponse.blockNumber, blockHeight: txResponse.blockNumber, blockHash: txResponse.blockHash, date: new Date(txResponse.timestamp ? txResponse.timestamp * 1000 : Date.now()) })))) || []
|
|
20
|
+
return Object.assign(Object.assign({}, operation), { id: encodeOperationId(operation.accountId, txResponse.hash, operation.type), hash: txResponse.hash, blockNumber: txResponse.blockNumber, blockHeight: txResponse.blockNumber, blockHash: txResponse.blockHash, date: new Date(txResponse.timestamp ? txResponse.timestamp * 1000 : Date.now()), subOperations: ((_a = operation.subOperations) === null || _a === void 0 ? void 0 : _a.map(subOp => (Object.assign(Object.assign({}, subOp), { id: encodeOperationId(subOp.accountId, txResponse.hash, subOp.type), hash: txResponse.hash, blockNumber: txResponse.blockNumber, blockHeight: txResponse.blockNumber, blockHash: txResponse.blockHash, date: new Date(txResponse.timestamp ? txResponse.timestamp * 1000 : Date.now()) })))) || [], nftOperations: ((_b = operation.nftOperations) === null || _b === void 0 ? void 0 : _b.map(nftOp => {
|
|
21
|
+
const nftId = encodeNftId(nftOp.accountId, nftOp.contract || "", nftOp.tokenId || "", account.currency.id);
|
|
22
|
+
return Object.assign(Object.assign({}, nftOp), { id: nftOp.standard === "ERC721"
|
|
23
|
+
? encodeERC721OperationId(nftId, txResponse.hash, nftOp.type, 0)
|
|
24
|
+
: encodeERC1155OperationId(nftId, txResponse.hash, nftOp.type, 0), hash: txResponse.hash, blockNumber: txResponse.blockNumber, blockHeight: txResponse.blockNumber, blockHash: txResponse.blockHash, date: new Date(txResponse.timestamp ? txResponse.timestamp * 1000 : Date.now()) });
|
|
25
|
+
})) || [] });
|
|
19
26
|
});
|
|
20
27
|
export default broadcast;
|
|
21
28
|
//# sourceMappingURL=broadcast.js.map
|
package/lib-es/broadcast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../src/broadcast.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAA+C,CAAO,EAC1E,OAAO,EACP,eAAe,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAC1C,EAAE,EAAE;;IACH,MAAM,UAAU,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAE3E,OAAO,gCACF,SAAS,KACZ,EAAE,EAAE,iBAAiB,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAC3E,IAAI,EAAE,UAAU,CAAC,IAAI,EACrB,WAAW,EAAE,UAAU,CAAC,WAAW,EACnC,WAAW,EAAE,UAAU,CAAC,WAAW,EACnC,SAAS,EAAE,UAAU,CAAC,SAAS,EAC/B,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAC/E,aAAa,EACX,CAAA,MAAA,SAAS,CAAC,aAAa,0CAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,iCACjC,KAAK,KACR,EAAE,EAAE,iBAAiB,CAAC,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EACnE,IAAI,EAAE,UAAU,CAAC,IAAI,EACrB,WAAW,EAAE,UAAU,CAAC,WAAW,EACnC,WAAW,EAAE,UAAU,CAAC,WAAW,EACnC,SAAS,EAAE,UAAU,CAAC,SAAS,EAC/B,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAC/E,CAAC,KAAI,EAAE,EACX,aAAa,EACX,CAAA,MAAA,SAAS,CAAC,aAAa,0CAAE,GAAG,CAAC,KAAK,CAAC,EAAE;YACnC,MAAM,KAAK,GAAG,WAAW,CACvB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,QAAQ,IAAI,EAAE,EACpB,KAAK,CAAC,OAAO,IAAI,EAAE,EACnB,OAAO,CAAC,QAAQ,CAAC,EAAE,CACpB,CAAC;YAEF,uCACK,KAAK,KACR,EAAE,EACA,KAAK,CAAC,QAAQ,KAAK,QAAQ;oBACzB,CAAC,CAAC,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBAChE,CAAC,CAAC,wBAAwB,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EACrE,IAAI,EAAE,UAAU,CAAC,IAAI,EACrB,WAAW,EAAE,UAAU,CAAC,WAAW,EACnC,WAAW,EAAE,UAAU,CAAC,WAAW,EACnC,SAAS,EAAE,UAAU,CAAC,SAAS,EAC/B,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAC/E;QACJ,CAAC,CAAC,KAAI,EAAE,GACE,CAAC;AACjB,CAAC,CAAA,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Account, Operation, OperationType, TokenAccount } from "@ledgerhq/types-live";
|
|
2
|
-
import { Transaction as EvmTransaction } from "./types";
|
|
2
|
+
import { EvmNftTransaction, Transaction as EvmTransaction } from "./types";
|
|
3
3
|
/**
|
|
4
4
|
* Build an optimistic operation for the coin of the integration (e.g. Ether for Ethereum)
|
|
5
5
|
*/
|
|
@@ -8,6 +8,10 @@ export declare const buildOptimisticCoinOperation: (account: Account, transactio
|
|
|
8
8
|
* Build an optimistic operation for an ERC20 transaction
|
|
9
9
|
*/
|
|
10
10
|
export declare const buildOptimisticTokenOperation: (account: Account, tokenAccount: TokenAccount, transaction: EvmTransaction) => Operation;
|
|
11
|
+
/**
|
|
12
|
+
* Build an optimistic operation for an ERC721 or ERC1155 transaction
|
|
13
|
+
*/
|
|
14
|
+
export declare const buildOptimisticNftOperation: (account: Account, transaction: EvmNftTransaction & EvmTransaction) => Operation;
|
|
11
15
|
/**
|
|
12
16
|
* Create a temporary operation to use until it's confirmed by the blockchain
|
|
13
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildOptimisticOperation.d.ts","sourceRoot":"","sources":["../src/buildOptimisticOperation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"buildOptimisticOperation.d.ts","sourceRoot":"","sources":["../src/buildOptimisticOperation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQvF,OAAO,EAAE,iBAAiB,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC;AAG3E;;GAEG;AACH,eAAO,MAAM,4BAA4B,YAC9B,OAAO,eACH,cAAc,oBACT,aAAa,KAC9B,SAuBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,6BAA6B,YAC/B,OAAO,gBACF,YAAY,eACb,cAAc,KAC1B,SAsCF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,2BAA2B,YAC7B,OAAO,eACH,iBAAiB,GAAG,cAAc,KAC9C,SAgDF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,YAC1B,OAAO,eACH,cAAc,KAC1B,SAWF,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { findSubAccountById } from "@ledgerhq/coin-framework/account/index";
|
|
2
|
-
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
3
|
-
import BigNumber from "bignumber.js";
|
|
4
1
|
import eip55 from "eip55";
|
|
5
|
-
import
|
|
2
|
+
import BigNumber from "bignumber.js";
|
|
3
|
+
import { encodeERC1155OperationId, encodeERC721OperationId, } from "@ledgerhq/coin-framework/nft/nftOperationId";
|
|
4
|
+
import { encodeNftId } from "@ledgerhq/coin-framework/nft/nftId";
|
|
5
|
+
import { encodeOperationId } from "@ledgerhq/coin-framework/operation";
|
|
6
|
+
import { findSubAccountById } from "@ledgerhq/coin-framework/account/index";
|
|
7
|
+
import { getEstimatedFees, isNftTransaction } from "./logic";
|
|
6
8
|
/**
|
|
7
9
|
* Build an optimistic operation for the coin of the integration (e.g. Ether for Ethereum)
|
|
8
10
|
*/
|
|
@@ -57,10 +59,49 @@ export const buildOptimisticTokenOperation = (account, tokenAccount, transaction
|
|
|
57
59
|
] });
|
|
58
60
|
return operation;
|
|
59
61
|
};
|
|
62
|
+
/**
|
|
63
|
+
* Build an optimistic operation for an ERC721 or ERC1155 transaction
|
|
64
|
+
*/
|
|
65
|
+
export const buildOptimisticNftOperation = (account, transaction) => {
|
|
66
|
+
const type = "NFT_OUT";
|
|
67
|
+
const estimatedFees = getEstimatedFees(transaction);
|
|
68
|
+
const { nft } = transaction;
|
|
69
|
+
const value = nft.quantity;
|
|
70
|
+
const coinOperation = buildOptimisticCoinOperation(account, Object.assign(Object.assign({}, transaction), { recipient: nft.contract, amount: new BigNumber(0) }), "FEES");
|
|
71
|
+
const nftId = encodeNftId(account.id, nft.contract, nft.tokenId, account.currency.id);
|
|
72
|
+
const nftOpId = transaction.mode === "erc721"
|
|
73
|
+
? encodeERC721OperationId(nftId, "", type, 0)
|
|
74
|
+
: encodeERC1155OperationId(nftId, "", type, 0);
|
|
75
|
+
// keys marked with a <-- will be updated by the broadcast method
|
|
76
|
+
const operation = Object.assign(Object.assign({}, coinOperation), { nftOperations: [
|
|
77
|
+
{
|
|
78
|
+
id: nftOpId,
|
|
79
|
+
hash: "",
|
|
80
|
+
type,
|
|
81
|
+
value,
|
|
82
|
+
fee: estimatedFees,
|
|
83
|
+
blockHash: null,
|
|
84
|
+
blockHeight: null,
|
|
85
|
+
senders: [eip55.encode(account.freshAddress)],
|
|
86
|
+
recipients: [eip55.encode(transaction.recipient)],
|
|
87
|
+
accountId: account.id,
|
|
88
|
+
transactionSequenceNumber: transaction.nonce,
|
|
89
|
+
date: new Date(),
|
|
90
|
+
extra: {},
|
|
91
|
+
contract: nft.contract,
|
|
92
|
+
standard: transaction.mode.toUpperCase(),
|
|
93
|
+
tokenId: nft.tokenId,
|
|
94
|
+
},
|
|
95
|
+
] });
|
|
96
|
+
return operation;
|
|
97
|
+
};
|
|
60
98
|
/**
|
|
61
99
|
* Create a temporary operation to use until it's confirmed by the blockchain
|
|
62
100
|
*/
|
|
63
101
|
export const buildOptimisticOperation = (account, transaction) => {
|
|
102
|
+
if (isNftTransaction(transaction)) {
|
|
103
|
+
return buildOptimisticNftOperation(account, transaction);
|
|
104
|
+
}
|
|
64
105
|
const subAccount = findSubAccountById(account, (transaction === null || transaction === void 0 ? void 0 : transaction.subAccountId) || "");
|
|
65
106
|
const isTokenTransaction = (subAccount === null || subAccount === void 0 ? void 0 : subAccount.type) === "TokenAccount";
|
|
66
107
|
return isTokenTransaction
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildOptimisticOperation.js","sourceRoot":"","sources":["../src/buildOptimisticOperation.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"buildOptimisticOperation.js","sourceRoot":"","sources":["../src/buildOptimisticOperation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-transaction.d.ts","sourceRoot":"","sources":["../src/cli-transaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cli-transaction.d.ts","sourceRoot":"","sources":["../src/cli-transaction.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,YAAY,OAEnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-transaction.js","sourceRoot":"","sources":["../src/cli-transaction.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,6DAA6D;AAC7D,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli-transaction.js","sourceRoot":"","sources":["../src/cli-transaction.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAElD,0CAA0C;AAC1C,6DAA6D;AAC7D,MAAM,CAAC,OAAO,UAAU,YAAY;IAClC,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ethereum1.d.ts","sourceRoot":"","sources":["../../src/datasets/ethereum1.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ethereum1.d.ts","sourceRoot":"","sources":["../../src/datasets/ethereum1.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,eAAO,MAAM,SAAS,EAAE,UAiBvB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
/* istanbul ignore file: pure exports, test unecessary */
|
|
1
2
|
export const ethereum1 = {
|
|
2
|
-
id: "js:1:
|
|
3
|
+
id: "js:1:ethereum_as_evm_test_only:0x0E3F0bb9516F01f2C34c25E0957518b8aC9414c5:",
|
|
3
4
|
seedIdentifier: "0x0E3F0bb9516F01f2C34c25E0957518b8aC9414c5",
|
|
4
5
|
name: "Ethereum legacy xpub6Bem...JyAdpYZy",
|
|
5
6
|
derivationMode: "",
|
|
@@ -9,7 +10,7 @@ export const ethereum1 = {
|
|
|
9
10
|
freshAddresses: [],
|
|
10
11
|
pendingOperations: [],
|
|
11
12
|
operations: [],
|
|
12
|
-
currencyId: "
|
|
13
|
+
currencyId: "ethereum_as_evm_test_only",
|
|
13
14
|
unitMagnitude: 18,
|
|
14
15
|
balance: "",
|
|
15
16
|
blockHeight: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ethereum1.js","sourceRoot":"","sources":["../../src/datasets/ethereum1.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ethereum1.js","sourceRoot":"","sources":["../../src/datasets/ethereum1.ts"],"names":[],"mappings":"AAAA,yDAAyD;AAIzD,MAAM,CAAC,MAAM,SAAS,GAAe;IACnC,EAAE,EAAE,4EAA4E;IAChF,cAAc,EAAE,4CAA4C;IAC5D,IAAI,EAAE,qCAAqC;IAC3C,cAAc,EAAE,EAAE;IAClB,KAAK,EAAE,CAAC;IACR,YAAY,EAAE,4CAA4C;IAC1D,gBAAgB,EAAE,gBAAgB;IAClC,cAAc,EAAE,EAAE;IAClB,iBAAiB,EAAE,EAAE;IACrB,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,2BAA2B;IACvC,aAAa,EAAE,EAAE;IACjB,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,CAAC;IACd,YAAY,EAAE,EAAE;IAChB,IAAI,EAAE,EAAE;CACT,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceTransactionConfig.d.ts","sourceRoot":"","sources":["../src/deviceTransactionConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE3E,KAAK,sBAAsB,GAAG,4BAA4B,CAAC;AAE3D;;GAEG;AACH,iBAAS,0BAA0B,CAAC,EAClC,OAAO,EACP,aAAa,EACb,WAAW,GACZ,EAAE;IACD,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,WAAW,EAAE,cAAc,CAAC;IAC5B,MAAM,EAAE,iBAAiB,CAAC;CAC3B,GAAG,KAAK,CAAC,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"deviceTransactionConfig.d.ts","sourceRoot":"","sources":["../src/deviceTransactionConfig.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAC;AAChG,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE3E,KAAK,sBAAsB,GAAG,4BAA4B,CAAC;AAE3D;;GAEG;AACH,iBAAS,0BAA0B,CAAC,EAClC,OAAO,EACP,aAAa,EACb,WAAW,GACZ,EAAE;IACD,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,WAAW,EAAE,cAAc,CAAC;IAC5B,MAAM,EAAE,iBAAiB,CAAC;CAC3B,GAAG,KAAK,CAAC,sBAAsB,CAAC,CAyGhC;AAED,eAAe,0BAA0B,CAAC"}
|
|
@@ -31,6 +31,56 @@ function getDeviceTransactionConfig({ account, parentAccount, transaction, }) {
|
|
|
31
31
|
value: mainAccount.currency.name,
|
|
32
32
|
});
|
|
33
33
|
break;
|
|
34
|
+
case "erc721":
|
|
35
|
+
fields.push({
|
|
36
|
+
type: "text",
|
|
37
|
+
label: "Type",
|
|
38
|
+
value: `NFT Transfer`,
|
|
39
|
+
}, {
|
|
40
|
+
type: "text",
|
|
41
|
+
label: "To",
|
|
42
|
+
value: transaction.recipient,
|
|
43
|
+
}, {
|
|
44
|
+
type: "text",
|
|
45
|
+
label: "Collection Name",
|
|
46
|
+
value: transaction.nft.collectionName,
|
|
47
|
+
}, {
|
|
48
|
+
type: "address",
|
|
49
|
+
label: "NFT Address",
|
|
50
|
+
address: transaction.nft.contract,
|
|
51
|
+
}, {
|
|
52
|
+
type: "text",
|
|
53
|
+
label: "NFT ID",
|
|
54
|
+
value: transaction.nft.tokenId,
|
|
55
|
+
});
|
|
56
|
+
break;
|
|
57
|
+
case "erc1155":
|
|
58
|
+
fields.push({
|
|
59
|
+
type: "text",
|
|
60
|
+
label: "Type",
|
|
61
|
+
value: `NFT Transfer`,
|
|
62
|
+
}, {
|
|
63
|
+
type: "text",
|
|
64
|
+
label: "To",
|
|
65
|
+
value: transaction.recipient,
|
|
66
|
+
}, {
|
|
67
|
+
type: "text",
|
|
68
|
+
label: "Collection Name",
|
|
69
|
+
value: transaction.nft.collectionName,
|
|
70
|
+
}, {
|
|
71
|
+
type: "text",
|
|
72
|
+
label: "Quantity",
|
|
73
|
+
value: transaction.nft.quantity.toFixed(),
|
|
74
|
+
}, {
|
|
75
|
+
type: "address",
|
|
76
|
+
label: "NFT Address",
|
|
77
|
+
address: transaction.nft.contract,
|
|
78
|
+
}, {
|
|
79
|
+
type: "text",
|
|
80
|
+
label: "NFT ID",
|
|
81
|
+
value: transaction.nft.tokenId,
|
|
82
|
+
});
|
|
83
|
+
break;
|
|
34
84
|
}
|
|
35
85
|
fields.push({
|
|
36
86
|
type: "fees",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deviceTransactionConfig.js","sourceRoot":"","sources":["../src/deviceTransactionConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAQtE;;GAEG;AACH,SAAS,0BAA0B,CAAC,EAClC,OAAO,EACP,aAAa,EACb,WAAW,GAMZ;;IACC,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC3D,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;IAC7B,MAAM,MAAM,GAAkC,EAAE,CAAC;IACjD,MAAM,cAAc,GAAG,cAAc,CAAC,MAAA,WAAW,CAAC,eAAe,0CAAE,MAAM,CAAC,CAAC;IAE3E,QAAQ,IAAI,EAAE;QACZ,QAAQ;QACR,KAAK,MAAM;YACT,MAAM,CAAC,IAAI,CACT;gBACE,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;aAChB,EACD,WAAW,CAAC,eAAe,IAAI,cAAc;gBAC3C,CAAC,CAAC;oBACE,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,QAAQ;oBACf,KAAK,EAAE,WAAW,CAAC,eAAe,CAAC,MAAM;iBAC1C;gBACH,CAAC,CAAC;oBACE,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,SAAS;oBAChB,OAAO,EAAE,WAAW,CAAC,SAAS;iBAC/B,EACL;gBACE,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,IAAI;aACjC,CACF,CAAC;YACF,MAAM;KACT;IAED,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,UAAU;KAClB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,eAAe,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"deviceTransactionConfig.js","sourceRoot":"","sources":["../src/deviceTransactionConfig.ts"],"names":[],"mappings":"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"}
|
package/lib-es/errors.d.ts
CHANGED
|
@@ -13,4 +13,13 @@ export declare const NoGasTrackerFound: import("@ledgerhq/errors/lib/helpers").L
|
|
|
13
13
|
export declare const GasTrackerDoesNotSupportEIP1559: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
|
|
14
14
|
[key: string]: unknown;
|
|
15
15
|
}>;
|
|
16
|
+
export declare const NotOwnedNft: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
}>;
|
|
19
|
+
export declare const NotEnoughNftOwned: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
|
|
20
|
+
[key: string]: unknown;
|
|
21
|
+
}>;
|
|
22
|
+
export declare const QuantityNeedsToBePositive: import("@ledgerhq/errors/lib/helpers").LedgerErrorConstructor<{
|
|
23
|
+
[key: string]: unknown;
|
|
24
|
+
}>;
|
|
16
25
|
//# sourceMappingURL=errors.d.ts.map
|
package/lib-es/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB;;EAA8C,CAAC;AAG7E,eAAO,MAAM,kBAAkB;;EAA+C,CAAC;AAC/E,eAAO,MAAM,iBAAiB;;EAA8C,CAAC;AAG7E,eAAO,MAAM,iBAAiB;;EAA8C,CAAC;AAC7E,eAAO,MAAM,+BAA+B;;EAE3C,CAAC;AAGF,eAAO,MAAM,WAAW;;EAAwC,CAAC;AACjE,eAAO,MAAM,iBAAiB;;EAA8C,CAAC;AAC7E,eAAO,MAAM,yBAAyB;;EAAsD,CAAC"}
|
package/lib-es/errors.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { createCustomErrorClass } from "@ledgerhq/errors";
|
|
2
|
+
// Etherscan API
|
|
2
3
|
export const EtherscanAPIError = createCustomErrorClass("EtherscanAPIError");
|
|
4
|
+
// Gas
|
|
3
5
|
export const GasEstimationError = createCustomErrorClass("GasEstimationError");
|
|
4
6
|
export const InsufficientFunds = createCustomErrorClass("InsufficientFunds");
|
|
5
7
|
// GasTracker errors
|
|
6
8
|
export const NoGasTrackerFound = createCustomErrorClass("NoGasTrackerFound");
|
|
7
9
|
export const GasTrackerDoesNotSupportEIP1559 = createCustomErrorClass("GasTrackerDoesNotSupportEIP1559");
|
|
10
|
+
// Nfts
|
|
11
|
+
export const NotOwnedNft = createCustomErrorClass("NotOwnedNft");
|
|
12
|
+
export const NotEnoughNftOwned = createCustomErrorClass("NotEnoughNftOwned");
|
|
13
|
+
export const QuantityNeedsToBePositive = createCustomErrorClass("QuantityNeedsToBePositive");
|
|
8
14
|
//# sourceMappingURL=errors.js.map
|
package/lib-es/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,gBAAgB;AAChB,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;AAE7E,MAAM;AACN,MAAM,CAAC,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;AAC/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;AAE7E,oBAAoB;AACpB,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,+BAA+B,GAAG,sBAAsB,CACnE,iCAAiC,CAClC,CAAC;AAEF,OAAO;AACP,MAAM,CAAC,MAAM,WAAW,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;AACjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;AAC7E,MAAM,CAAC,MAAM,yBAAyB,GAAG,sBAAsB,CAAC,2BAA2B,CAAC,CAAC"}
|
|
@@ -15,6 +15,7 @@ export declare const validateAmount: (account: Account | SubAccount, transaction
|
|
|
15
15
|
* Validate gas properties of a transaction, depending on its type and the account emitter
|
|
16
16
|
*/
|
|
17
17
|
export declare const validateGas: (account: Account, tx: EvmTransaction, gasLimit: BigNumber, estimatedFees: BigNumber) => Array<ValidationIssues>;
|
|
18
|
+
export declare const validateNft: (account: Account, tx: EvmTransaction) => Array<ValidationIssues>;
|
|
18
19
|
/**
|
|
19
20
|
* Validate a transaction and get all possibles errors and warnings about it
|
|
20
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTransactionStatus.d.ts","sourceRoot":"","sources":["../src/getTransactionStatus.ts"],"names":[],"mappings":"AAYA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAG1E,OAAO,EAGL,WAAW,IAAI,cAAc,EAC9B,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"getTransactionStatus.d.ts","sourceRoot":"","sources":["../src/getTransactionStatus.ts"],"names":[],"mappings":"AAYA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAG1E,OAAO,EAGL,WAAW,IAAI,cAAc,EAC9B,MAAM,SAAS,CAAC;AAGjB,KAAK,0BAA0B,GAC3B,WAAW,GACX,UAAU,GACV,UAAU,GACV,QAAQ,GACR,gBAAgB,CAAC;AACrB,KAAK,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC,CAAC;AAK3E;;GAEG;AACH,eAAO,MAAM,iBAAiB,YACnB,OAAO,MACZ,cAAc,KACjB,MAAM,gBAAgB,CA8BxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,YAChB,OAAO,GAAG,UAAU,eAChB,cAAc,cACf,SAAS,KACpB,MAAM,gBAAgB,CAmBxB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,YACb,OAAO,MACZ,cAAc,YACR,SAAS,iBACJ,SAAS,KACvB,MAAM,gBAAgB,CAwBxB,CAAC;AAEF,eAAO,MAAM,WAAW,YAAa,OAAO,MAAM,cAAc,KAAG,MAAM,gBAAgB,CAoBxF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC,sBAAsB,CAuCtF,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -11,6 +11,7 @@ import { NotEnoughGas, FeeNotLoaded, InvalidAddress, ETHAddressNonEIP, Recipient
|
|
|
11
11
|
import { ethers } from "ethers";
|
|
12
12
|
import { findSubAccountById } from "@ledgerhq/coin-framework/account/index";
|
|
13
13
|
import { eip1559TransactionHasFees, getEstimatedFees, legacyTransactionHasFees } from "./logic";
|
|
14
|
+
import { NotEnoughNftOwned, NotOwnedNft, QuantityNeedsToBePositive } from "./errors";
|
|
14
15
|
// This regex will not work with Starknet since addresses are 65 caracters long after the 0x
|
|
15
16
|
const ethAddressRegEx = /^(0x)?[0-9a-fA-F]{40}$/;
|
|
16
17
|
/**
|
|
@@ -95,6 +96,25 @@ export const validateGas = (account, tx, gasLimit, estimatedFees) => {
|
|
|
95
96
|
}
|
|
96
97
|
return [errors, warnings];
|
|
97
98
|
};
|
|
99
|
+
export const validateNft = (account, tx) => {
|
|
100
|
+
var _a;
|
|
101
|
+
if (!tx.nft)
|
|
102
|
+
return [{}, {}];
|
|
103
|
+
const errors = {};
|
|
104
|
+
const warnings = {};
|
|
105
|
+
const quantityIsPositive = tx.nft.quantity.gt(0);
|
|
106
|
+
const nftFromAccount = (_a = account.nfts) === null || _a === void 0 ? void 0 : _a.find(nft => nft.tokenId === tx.nft.tokenId && nft.contract === tx.nft.contract);
|
|
107
|
+
if (!nftFromAccount) {
|
|
108
|
+
errors.amount = new NotOwnedNft();
|
|
109
|
+
}
|
|
110
|
+
else if (!quantityIsPositive) {
|
|
111
|
+
errors.amount = new QuantityNeedsToBePositive();
|
|
112
|
+
}
|
|
113
|
+
else if (nftFromAccount.amount.lt(tx.nft.quantity)) {
|
|
114
|
+
errors.amount = new NotEnoughNftOwned();
|
|
115
|
+
}
|
|
116
|
+
return [errors, warnings];
|
|
117
|
+
};
|
|
98
118
|
/**
|
|
99
119
|
* Validate a transaction and get all possibles errors and warnings about it
|
|
100
120
|
*/
|
|
@@ -111,8 +131,9 @@ export const getTransactionStatus = (account, tx) => __awaiter(void 0, void 0, v
|
|
|
111
131
|
const [amountErr, amountWarn] = validateAmount(subAccount || account, tx, totalSpent);
|
|
112
132
|
// Gas related errors and warnings
|
|
113
133
|
const [gasErr, gasWarn] = validateGas(account, tx, gasLimit, totalFees);
|
|
114
|
-
const
|
|
115
|
-
const
|
|
134
|
+
const [nftErr, nftWarn] = validateNft(account, tx);
|
|
135
|
+
const errors = Object.assign(Object.assign(Object.assign(Object.assign({}, recipientErr), gasErr), amountErr), nftErr);
|
|
136
|
+
const warnings = Object.assign(Object.assign(Object.assign(Object.assign({}, recipientWarn), gasWarn), amountWarn), nftWarn);
|
|
116
137
|
return {
|
|
117
138
|
errors,
|
|
118
139
|
warnings,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../src/getTransactionStatus.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"getTransactionStatus.js","sourceRoot":"","sources":["../src/getTransactionStatus.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { SignerContext } from "@ledgerhq/coin-framework/signer";
|
|
2
|
+
import { Account, AnyMessage, DeviceId, TypedEvmMessage } from "@ledgerhq/types-live";
|
|
3
|
+
import { EvmSignature, EvmSigner } from "./signer";
|
|
4
|
+
export declare const prepareMessageToSign: ({ message }: {
|
|
5
|
+
message: string;
|
|
6
|
+
}) => TypedEvmMessage;
|
|
7
|
+
export declare const signMessage: (signerContext: SignerContext<EvmSigner, EvmSignature>) => (deviceId: DeviceId, account: Account, messageOpts: AnyMessage) => Promise<{
|
|
8
|
+
rsv: {
|
|
9
|
+
r: string;
|
|
10
|
+
s: string;
|
|
11
|
+
v: string | number;
|
|
12
|
+
};
|
|
13
|
+
signature: string;
|
|
14
|
+
}>;
|
|
15
|
+
//# sourceMappingURL=hw-signMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hw-signMessage.d.ts","sourceRoot":"","sources":["../src/hw-signMessage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEnD,eAAO,MAAM,oBAAoB;aAA4B,MAAM;MAAK,eA8BvE,CAAC;AAEF,eAAO,MAAM,WAAW,kBACN,cAAc,SAAS,EAAE,YAAY,CAAC,gBAE1C,QAAQ,WACT,OAAO,eACH,UAAU,KACtB,QAAQ;IACT,GAAG,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAClD,SAAS,EAAE,MAAM,CAAC;CACnB,CA4CA,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
11
|
+
var t = {};
|
|
12
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
13
|
+
t[p] = s[p];
|
|
14
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
15
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
16
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
17
|
+
t[p[i]] = s[p[i]];
|
|
18
|
+
}
|
|
19
|
+
return t;
|
|
20
|
+
};
|
|
21
|
+
import { ethers } from "ethers";
|
|
22
|
+
import { isEIP712Message } from "@ledgerhq/evm-tools/message/EIP712/index";
|
|
23
|
+
export const prepareMessageToSign = ({ message }) => {
|
|
24
|
+
const parsedMessage = (() => {
|
|
25
|
+
try {
|
|
26
|
+
return JSON.parse(message);
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
return message;
|
|
30
|
+
}
|
|
31
|
+
})();
|
|
32
|
+
if (isEIP712Message(parsedMessage)) {
|
|
33
|
+
// With the ethers lib, EIP712Domain type should be removed otherwise
|
|
34
|
+
// you'll end up with a "ambiguous primary types" error
|
|
35
|
+
const _a = parsedMessage.types, { EIP712Domain } = _a, otherTypes = __rest(_a, ["EIP712Domain"]);
|
|
36
|
+
return {
|
|
37
|
+
standard: "EIP712",
|
|
38
|
+
message: parsedMessage,
|
|
39
|
+
domainHash: ethers.utils._TypedDataEncoder.hashDomain(parsedMessage.domain),
|
|
40
|
+
hashStruct: ethers.utils._TypedDataEncoder.hashStruct(parsedMessage.primaryType, otherTypes, parsedMessage.message),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
standard: "EIP191",
|
|
45
|
+
message,
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
export const signMessage = (signerContext) => (deviceId, account, messageOpts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
49
|
+
if (messageOpts.standard === "EIP191") {
|
|
50
|
+
const { r, s, v } = yield signerContext(deviceId, signer => {
|
|
51
|
+
return signer.signPersonalMessage(account.freshAddressPath, Buffer.from(messageOpts.message).toString("hex"));
|
|
52
|
+
});
|
|
53
|
+
const signature = ethers.utils.joinSignature({
|
|
54
|
+
r: `0x${r}`,
|
|
55
|
+
s: `0x${s}`,
|
|
56
|
+
v: typeof v === "string" ? parseInt(v, 16) : v,
|
|
57
|
+
});
|
|
58
|
+
return { rsv: { r, s, v }, signature };
|
|
59
|
+
}
|
|
60
|
+
if (messageOpts.standard === "EIP712") {
|
|
61
|
+
const { r, s, v } = yield signerContext(deviceId, (signer) => __awaiter(void 0, void 0, void 0, function* () {
|
|
62
|
+
try {
|
|
63
|
+
return yield signer.signEIP712Message(account.freshAddressPath, messageOpts.message);
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
if (e instanceof Error && "statusText" in e && e.statusText === "INS_NOT_SUPPORTED") {
|
|
67
|
+
return yield signer.signEIP712HashedMessage(account.freshAddressPath, messageOpts.domainHash, messageOpts.hashStruct);
|
|
68
|
+
}
|
|
69
|
+
throw e;
|
|
70
|
+
}
|
|
71
|
+
}));
|
|
72
|
+
const signature = ethers.utils.joinSignature({
|
|
73
|
+
r: `0x${r}`,
|
|
74
|
+
s: `0x${s}`,
|
|
75
|
+
v: typeof v === "string" ? parseInt(v, 16) : v,
|
|
76
|
+
});
|
|
77
|
+
return { rsv: { r, s, v }, signature };
|
|
78
|
+
}
|
|
79
|
+
throw new Error("Unsupported message standard");
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=hw-signMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hw-signMessage.js","sourceRoot":"","sources":["../src/hw-signMessage.ts"],"names":[],"mappings":"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"}
|
package/lib-es/logic.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import BigNumber from "bignumber.js";
|
|
2
3
|
import { CryptoCurrency } from "@ledgerhq/types-cryptoassets";
|
|
3
|
-
import { Account, SubAccount } from "@ledgerhq/types-live";
|
|
4
|
+
import { Account, SubAccount, Operation } from "@ledgerhq/types-live";
|
|
4
5
|
import { Transaction as EvmTransaction, EvmTransactionEIP1559, EvmTransactionLegacy } from "./types";
|
|
5
6
|
/**
|
|
6
7
|
* Helper to check if a legacy transaction has the right fee property
|
|
@@ -26,6 +27,67 @@ export declare const mergeSubAccounts: (initialAccount: Account | undefined, new
|
|
|
26
27
|
/**
|
|
27
28
|
* Method creating a hash that will help triggering or not a full synchronization on an account.
|
|
28
29
|
* As of now, it's checking if a token has been added, removed of changed regarding important properties
|
|
30
|
+
* and if the NFTs are activated/supported on this chain
|
|
29
31
|
*/
|
|
30
32
|
export declare const getSyncHash: (currency: CryptoCurrency) => string;
|
|
33
|
+
/**
|
|
34
|
+
* Helper in charge of linking operations together based on transaction hash.
|
|
35
|
+
* Token operations & NFT operations are the result of a coin operation
|
|
36
|
+
* and if this coin operation is originated by our user we want
|
|
37
|
+
* to link those operations together as main & children ops.
|
|
38
|
+
*
|
|
39
|
+
* A sub operation should always be linked to a coin operation,
|
|
40
|
+
* even if the user isn't at the origin of the sub op.
|
|
41
|
+
* "NONE" coin ops can be added when necessary.
|
|
42
|
+
*
|
|
43
|
+
* ⚠️ If an NFT operation was found without a coin parent op
|
|
44
|
+
* just like if it was not initiated by the synced account
|
|
45
|
+
* and we were to find that coin op during another sync,
|
|
46
|
+
* the NONE operation created would not be removed,
|
|
47
|
+
* creating a duplicate that will cause issues.
|
|
48
|
+
* (Incorrect NFT balance & React key dup)
|
|
49
|
+
*/
|
|
50
|
+
export declare const attachOperations: (_coinOperations: Operation[], _tokenOperations: Operation[], _nftOperations: Operation[]) => Operation[];
|
|
51
|
+
/**
|
|
52
|
+
* Type guard for NFT transactions
|
|
53
|
+
*/
|
|
54
|
+
export declare const isNftTransaction: (transaction: EvmTransaction) => transaction is (import("@ledgerhq/types-live").TransactionCommon & {
|
|
55
|
+
family: "evm";
|
|
56
|
+
mode: import("./types").EvmTransactionMode;
|
|
57
|
+
nonce: number;
|
|
58
|
+
gasLimit: BigNumber;
|
|
59
|
+
chainId: number;
|
|
60
|
+
data?: Buffer | null | undefined;
|
|
61
|
+
type?: number | undefined;
|
|
62
|
+
additionalFees?: BigNumber | undefined;
|
|
63
|
+
gasOptions?: import("./types").GasOptions | undefined;
|
|
64
|
+
nft?: import("./types").EvmTransactionNftParam | undefined;
|
|
65
|
+
} & {
|
|
66
|
+
mode: "erc721" | "erc1155";
|
|
67
|
+
nft: import("./types").EvmTransactionNftParam;
|
|
68
|
+
} & {
|
|
69
|
+
type?: 0 | 1 | undefined;
|
|
70
|
+
gasPrice: BigNumber;
|
|
71
|
+
maxPriorityFeePerGas?: undefined;
|
|
72
|
+
maxFeePerGas?: undefined;
|
|
73
|
+
}) | (import("@ledgerhq/types-live").TransactionCommon & {
|
|
74
|
+
family: "evm";
|
|
75
|
+
mode: import("./types").EvmTransactionMode;
|
|
76
|
+
nonce: number;
|
|
77
|
+
gasLimit: BigNumber;
|
|
78
|
+
chainId: number;
|
|
79
|
+
data?: Buffer | null | undefined;
|
|
80
|
+
type?: number | undefined;
|
|
81
|
+
additionalFees?: BigNumber | undefined;
|
|
82
|
+
gasOptions?: import("./types").GasOptions | undefined;
|
|
83
|
+
nft?: import("./types").EvmTransactionNftParam | undefined;
|
|
84
|
+
} & {
|
|
85
|
+
mode: "erc721" | "erc1155";
|
|
86
|
+
nft: import("./types").EvmTransactionNftParam;
|
|
87
|
+
} & {
|
|
88
|
+
type: 2;
|
|
89
|
+
gasPrice?: undefined;
|
|
90
|
+
maxPriorityFeePerGas: BigNumber;
|
|
91
|
+
maxFeePerGas: BigNumber;
|
|
92
|
+
});
|
|
31
93
|
//# sourceMappingURL=logic.d.ts.map
|
package/lib-es/logic.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../src/logic.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../src/logic.ts"],"names":[],"mappings":";AACA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKtE,OAAO,EAEL,WAAW,IAAI,cAAc,EAC7B,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,eAAO,MAAM,wBAAwB,OAAQ,oBAAoB,KAAG,OACjB,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,yBAAyB,OAAQ,qBAAqB,KAAG,OACA,CAAC;AAEvE;;GAEG;AACH,eAAO,MAAM,gBAAgB,OAAQ,cAAc,KAAG,SAKrD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,aACxB,cAAc,eACX,cAAc,KAC1B,QAAQ,SAAS,GAAG,SAAS,CAU/B,CAAC;AAcF;;GAEG;AACH,eAAO,MAAM,gBAAgB,mBACX,OAAO,GAAG,SAAS,kBACnB,QAAQ,UAAU,CAAC,EAAE,KACpC,MAAM,QAAQ,UAAU,CAAC,GAAG,UAAU,CAqDxC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,aAAc,cAAc,KAAG,MAQtD,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gBAAgB,oBACV,SAAS,EAAE,oBACV,SAAS,EAAE,kBACb,SAAS,EAAE,KAC1B,SAAS,EA+EX,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,gBACd,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEqB,CAAC"}
|