@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/logic.js
CHANGED
|
@@ -12,11 +12,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.getSyncHash = exports.mergeSubAccounts = exports.getAdditionalLayer2Fees = exports.getEstimatedFees = exports.eip1559TransactionHasFees = exports.legacyTransactionHasFees = void 0;
|
|
15
|
+
exports.isNftTransaction = exports.attachOperations = exports.getSyncHash = exports.mergeSubAccounts = exports.getAdditionalLayer2Fees = exports.getEstimatedFees = exports.eip1559TransactionHasFees = exports.legacyTransactionHasFees = void 0;
|
|
16
16
|
const ethers_1 = require("ethers");
|
|
17
17
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
18
|
+
const support_1 = require("@ledgerhq/coin-framework/nft/support");
|
|
18
19
|
const jsHelpers_1 = require("@ledgerhq/coin-framework/bridge/jsHelpers");
|
|
20
|
+
const operation_1 = require("@ledgerhq/coin-framework/operation");
|
|
19
21
|
const tokens_1 = require("@ledgerhq/cryptoassets/tokens");
|
|
22
|
+
const index_1 = require("@ledgerhq/coin-framework/account/index");
|
|
20
23
|
const rpc_common_1 = require("./api/rpc/rpc.common");
|
|
21
24
|
/**
|
|
22
25
|
* Helper to check if a legacy transaction has the right fee property
|
|
@@ -119,13 +122,106 @@ exports.mergeSubAccounts = mergeSubAccounts;
|
|
|
119
122
|
/**
|
|
120
123
|
* Method creating a hash that will help triggering or not a full synchronization on an account.
|
|
121
124
|
* As of now, it's checking if a token has been added, removed of changed regarding important properties
|
|
125
|
+
* and if the NFTs are activated/supported on this chain
|
|
122
126
|
*/
|
|
123
127
|
const getSyncHash = (currency) => {
|
|
124
128
|
const tokens = (0, tokens_1.listTokensForCryptoCurrency)(currency);
|
|
125
129
|
const basicTokensListString = tokens
|
|
126
130
|
.map(token => token.id + token.contractAddress + token.name + token.ticker + token.delisted)
|
|
127
131
|
.join("");
|
|
128
|
-
|
|
132
|
+
const isNftSupported = (0, support_1.isNFTActive)(currency);
|
|
133
|
+
return ethers_1.ethers.utils.sha256(Buffer.from(basicTokensListString + isNftSupported));
|
|
129
134
|
};
|
|
130
135
|
exports.getSyncHash = getSyncHash;
|
|
136
|
+
/**
|
|
137
|
+
* Helper in charge of linking operations together based on transaction hash.
|
|
138
|
+
* Token operations & NFT operations are the result of a coin operation
|
|
139
|
+
* and if this coin operation is originated by our user we want
|
|
140
|
+
* to link those operations together as main & children ops.
|
|
141
|
+
*
|
|
142
|
+
* A sub operation should always be linked to a coin operation,
|
|
143
|
+
* even if the user isn't at the origin of the sub op.
|
|
144
|
+
* "NONE" coin ops can be added when necessary.
|
|
145
|
+
*
|
|
146
|
+
* ⚠️ If an NFT operation was found without a coin parent op
|
|
147
|
+
* just like if it was not initiated by the synced account
|
|
148
|
+
* and we were to find that coin op during another sync,
|
|
149
|
+
* the NONE operation created would not be removed,
|
|
150
|
+
* creating a duplicate that will cause issues.
|
|
151
|
+
* (Incorrect NFT balance & React key dup)
|
|
152
|
+
*/
|
|
153
|
+
const attachOperations = (_coinOperations, _tokenOperations, _nftOperations) => {
|
|
154
|
+
// Creating deep copies of each Operation[] to prevent mutating the originals
|
|
155
|
+
const coinOperations = _coinOperations.map(op => (Object.assign({}, op)));
|
|
156
|
+
const tokenOperations = _tokenOperations.map(op => (Object.assign({}, op)));
|
|
157
|
+
const nftOperations = _nftOperations.map(op => (Object.assign({}, op)));
|
|
158
|
+
// Helper to create a coin operation with type NONE as a parent of an orphan child operation
|
|
159
|
+
const makeCoinOpForOrphanChildOp = (childOp) => {
|
|
160
|
+
const type = "NONE";
|
|
161
|
+
const { accountId } = (0, index_1.decodeTokenAccountId)(childOp.accountId);
|
|
162
|
+
const id = (0, operation_1.encodeOperationId)(accountId, childOp.hash, type);
|
|
163
|
+
return {
|
|
164
|
+
id,
|
|
165
|
+
hash: childOp.hash,
|
|
166
|
+
type,
|
|
167
|
+
value: new bignumber_js_1.default(0),
|
|
168
|
+
fee: new bignumber_js_1.default(0),
|
|
169
|
+
senders: [],
|
|
170
|
+
recipients: [],
|
|
171
|
+
blockHeight: childOp.blockHeight,
|
|
172
|
+
blockHash: childOp.blockHash,
|
|
173
|
+
transactionSequenceNumber: childOp.transactionSequenceNumber,
|
|
174
|
+
subOperations: [],
|
|
175
|
+
nftOperations: [],
|
|
176
|
+
accountId: "",
|
|
177
|
+
date: childOp.date,
|
|
178
|
+
extra: {},
|
|
179
|
+
};
|
|
180
|
+
};
|
|
181
|
+
// Create a Map of hash => operation
|
|
182
|
+
const coinOperationsByHash = {};
|
|
183
|
+
coinOperations.forEach(op => {
|
|
184
|
+
if (!coinOperationsByHash[op.hash]) {
|
|
185
|
+
coinOperationsByHash[op.hash] = [];
|
|
186
|
+
}
|
|
187
|
+
// Adding arrays just in case but this is defined
|
|
188
|
+
// by the adapters so it should never be needed
|
|
189
|
+
op.subOperations = [];
|
|
190
|
+
op.nftOperations = [];
|
|
191
|
+
coinOperationsByHash[op.hash].push(op);
|
|
192
|
+
});
|
|
193
|
+
// Looping through token operations to potentially copy them as a child operation of a coin operation
|
|
194
|
+
for (const tokenOperation of tokenOperations) {
|
|
195
|
+
let mainOperations = coinOperationsByHash[tokenOperation.hash];
|
|
196
|
+
if (!(mainOperations === null || mainOperations === void 0 ? void 0 : mainOperations.length)) {
|
|
197
|
+
const noneOperation = makeCoinOpForOrphanChildOp(tokenOperation);
|
|
198
|
+
mainOperations = [noneOperation];
|
|
199
|
+
coinOperations.push(noneOperation);
|
|
200
|
+
}
|
|
201
|
+
// Ugly loop in loop but in theory, this can only be a 2 elements array maximum in the case of a self send
|
|
202
|
+
for (const mainOperation of mainOperations) {
|
|
203
|
+
mainOperation.subOperations.push(tokenOperation);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// Looping through nft operations to potentially copy them as a child operation of a coin operation
|
|
207
|
+
for (const nftOperation of nftOperations) {
|
|
208
|
+
let mainOperations = coinOperationsByHash[nftOperation.hash];
|
|
209
|
+
if (!(mainOperations === null || mainOperations === void 0 ? void 0 : mainOperations.length)) {
|
|
210
|
+
const noneOperation = makeCoinOpForOrphanChildOp(nftOperation);
|
|
211
|
+
mainOperations = [noneOperation];
|
|
212
|
+
coinOperations.push(noneOperation);
|
|
213
|
+
}
|
|
214
|
+
// Ugly loop in loop but in theory, this can only be a 2 elements array maximum in the case of a self send
|
|
215
|
+
for (const mainOperation of mainOperations) {
|
|
216
|
+
mainOperation.nftOperations.push(nftOperation);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
return coinOperations;
|
|
220
|
+
};
|
|
221
|
+
exports.attachOperations = attachOperations;
|
|
222
|
+
/**
|
|
223
|
+
* Type guard for NFT transactions
|
|
224
|
+
*/
|
|
225
|
+
const isNftTransaction = (transaction) => ["erc1155", "erc721"].includes(transaction.mode);
|
|
226
|
+
exports.isNftTransaction = isNftTransaction;
|
|
131
227
|
//# sourceMappingURL=logic.js.map
|
package/lib/logic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../src/logic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,mCAAgC;AAChC,gEAAqC;AAErC,yEAAqE;AAErE,0DAA4E;AAC5E,qDAAiE;
|
|
1
|
+
{"version":3,"file":"logic.js","sourceRoot":"","sources":["../src/logic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { CurrencyBridge, NFTCollectionMetadataResponse, NFTMetadataResponse } from "@ledgerhq/types-live";
|
|
2
|
+
type NftResolvers = NonNullable<CurrencyBridge["nftResolvers"]>;
|
|
3
|
+
export declare const nftMetadata: NftResolvers["nftMetadata"];
|
|
4
|
+
export declare const collectionMetadata: NftResolvers["collectionMetadata"];
|
|
5
|
+
declare const _default: {
|
|
6
|
+
nftMetadata: (arg: {
|
|
7
|
+
contract: string;
|
|
8
|
+
tokenId: string;
|
|
9
|
+
currencyId: string;
|
|
10
|
+
metadata?: import("@ledgerhq/types-live").NFTMetadata | undefined;
|
|
11
|
+
}) => Promise<NFTMetadataResponse>;
|
|
12
|
+
collectionMetadata: (arg: {
|
|
13
|
+
contract: string;
|
|
14
|
+
currencyId: string;
|
|
15
|
+
metadata?: import("@ledgerhq/types-live").NFTCollectionMetadata | undefined;
|
|
16
|
+
}) => Promise<NFTCollectionMetadataResponse>;
|
|
17
|
+
};
|
|
18
|
+
export default _default;
|
|
19
|
+
//# sourceMappingURL=nftResolvers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nftResolvers.d.ts","sourceRoot":"","sources":["../src/nftResolvers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,6BAA6B,EAC7B,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAK9B,KAAK,YAAY,GAAG,WAAW,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC;AAEhE,eAAO,MAAM,WAAW,EAAE,YAAY,CAAC,aAAa,CA6BnD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,oBAAoB,CA0BjE,CAAC;;;;;;;;;;;;;;AAEF,wBAAmD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.collectionMetadata = exports.nftMetadata = void 0;
|
|
16
|
+
const support_1 = require("@ledgerhq/coin-framework/nft/support");
|
|
17
|
+
const index_1 = require("@ledgerhq/coin-framework/currencies/index");
|
|
18
|
+
const nft_1 = __importDefault(require("./api/nft"));
|
|
19
|
+
const nftMetadata = ({ contract, tokenId, currencyId, metadata, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
20
|
+
// This is for test/mock purposes
|
|
21
|
+
if (typeof metadata !== "undefined") {
|
|
22
|
+
return {
|
|
23
|
+
status: 200,
|
|
24
|
+
result: Object.assign({ contract,
|
|
25
|
+
tokenId }, metadata),
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const currency = (0, index_1.getCryptoCurrencyById)(currencyId);
|
|
29
|
+
if (!(0, support_1.isNFTActive)(currency)) {
|
|
30
|
+
throw new Error("Ethereum Bridge NFT Resolver: Unsupported currency");
|
|
31
|
+
}
|
|
32
|
+
const response = yield (0, support_1.metadataCallBatcher)(currency, nft_1.default).loadNft({
|
|
33
|
+
contract,
|
|
34
|
+
tokenId,
|
|
35
|
+
});
|
|
36
|
+
return response;
|
|
37
|
+
});
|
|
38
|
+
exports.nftMetadata = nftMetadata;
|
|
39
|
+
const collectionMetadata = ({ contract, currencyId, metadata, }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
40
|
+
// This is for test/mock purposes
|
|
41
|
+
if (typeof metadata !== "undefined") {
|
|
42
|
+
return {
|
|
43
|
+
status: 200,
|
|
44
|
+
result: Object.assign({ contract }, metadata),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const currency = (0, index_1.getCryptoCurrencyById)(currencyId);
|
|
48
|
+
if (!(0, support_1.isNFTActive)(currency)) {
|
|
49
|
+
throw new Error("Ethereum Bridge NFT Resolver: Unsupported currency");
|
|
50
|
+
}
|
|
51
|
+
const response = yield (0, support_1.metadataCallBatcher)(currency, nft_1.default).loadCollection({
|
|
52
|
+
contract,
|
|
53
|
+
});
|
|
54
|
+
return response;
|
|
55
|
+
});
|
|
56
|
+
exports.collectionMetadata = collectionMetadata;
|
|
57
|
+
exports.default = { nftMetadata: exports.nftMetadata, collectionMetadata: exports.collectionMetadata };
|
|
58
|
+
//# sourceMappingURL=nftResolvers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nftResolvers.js","sourceRoot":"","sources":["../src/nftResolvers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAKA,kEAAwF;AACxF,qEAAkF;AAClF,oDAA+B;AAIxB,MAAM,WAAW,GAAgC,CAAO,EAC7D,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,GACT,EAAgC,EAAE;IACjC,iCAAiC;IACjC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;QACnC,OAAO;YACL,MAAM,EAAE,GAAG;YACX,MAAM,kBACJ,QAAQ;gBACR,OAAO,IACJ,QAAQ,CACZ;SACqB,CAAC;KAC1B;IAED,MAAM,QAAQ,GAAG,IAAA,6BAAqB,EAAC,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,IAAA,qBAAW,EAAC,QAAQ,CAAC,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;KACvE;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAmB,EAAC,QAAQ,EAAE,aAAM,CAAC,CAAC,OAAO,CAAC;QACnE,QAAQ;QACR,OAAO;KACR,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAA,CAAC;AA7BW,QAAA,WAAW,eA6BtB;AAEK,MAAM,kBAAkB,GAAuC,CAAO,EAC3E,QAAQ,EACR,UAAU,EACV,QAAQ,GACT,EAA0C,EAAE;IAC3C,iCAAiC;IACjC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;QACnC,OAAO;YACL,MAAM,EAAE,GAAG;YACX,MAAM,kBACJ,QAAQ,IACL,QAAQ,CACZ;SACF,CAAC;KACH;IAED,MAAM,QAAQ,GAAG,IAAA,6BAAqB,EAAC,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC,IAAA,qBAAW,EAAC,QAAQ,CAAC,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;KACvE;IAED,MAAM,QAAQ,GAAG,MAAM,IAAA,6BAAmB,EAAC,QAAQ,EAAE,aAAM,CAAC,CAAC,cAAc,CAAC;QAC1E,QAAQ;KACT,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAA,CAAC;AA1BW,QAAA,kBAAkB,sBA0B7B;AAEF,kBAAe,EAAE,WAAW,EAAX,mBAAW,EAAE,kBAAkB,EAAlB,0BAAkB,EAAE,CAAC"}
|
package/lib/preload.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAM9D,eAAO,MAAM,gBAAgB,EAAE,CAC7B,QAAQ,EAAE,cAAc,KACrB,OAAO,CAAC,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAM9D,eAAO,MAAM,gBAAgB,EAAE,CAC7B,QAAQ,EAAE,cAAc,KACrB,OAAO,CAAC,UAAU,EAAE,CAsBxB,CAAC;AAEF,wBAAsB,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAS7E;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAIpE"}
|
package/lib/preload.js
CHANGED
|
@@ -32,8 +32,7 @@ const fetchERC20Tokens = (currency) => __awaiter(void 0, void 0, void 0, functio
|
|
|
32
32
|
});
|
|
33
33
|
if (dynamicTokens)
|
|
34
34
|
return dynamicTokens;
|
|
35
|
-
|
|
36
|
-
const tokens = index_1.tokens[(ethereumLikeInfo === null || ethereumLikeInfo === void 0 ? void 0 : ethereumLikeInfo.chainId) || ""];
|
|
35
|
+
const tokens = index_1.tokens[ethereumLikeInfo === null || ethereumLikeInfo === void 0 ? void 0 : ethereumLikeInfo.chainId];
|
|
37
36
|
if (tokens)
|
|
38
37
|
return tokens;
|
|
39
38
|
(0, logs_1.log)("warning", `EVM Family: No tokens found in CAL for currency: ${currency.id}`, currency);
|
|
@@ -43,7 +42,12 @@ exports.fetchERC20Tokens = fetchERC20Tokens;
|
|
|
43
42
|
function preload(currency) {
|
|
44
43
|
return __awaiter(this, void 0, void 0, function* () {
|
|
45
44
|
const erc20 = yield (0, exports.fetchERC20Tokens)(currency);
|
|
46
|
-
|
|
45
|
+
// This weird thing is here to help the "clone" currencies like
|
|
46
|
+
// ethereum_as_evm_test_only & polygon_as_evm_test_only
|
|
47
|
+
// to get tokens despite the different currency_id
|
|
48
|
+
// registered in the CAL for those chain ids
|
|
49
|
+
// We should remove this after the merge
|
|
50
|
+
(0, tokens_1.addTokens)(erc20.map(([, ...tokenRest]) => (0, tokens_1.convertERC20)([currency.id, ...tokenRest])));
|
|
47
51
|
return erc20;
|
|
48
52
|
});
|
|
49
53
|
}
|
package/lib/preload.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preload.js","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAqC;AAGrC,0DAAwE;AACxE,iEAAkF;AAClF,6EAAqD;AACrD,iDAA4C;AAErC,MAAM,gBAAgB,GAEA,CAAM,QAAQ,EAAC,EAAE;IAC5C,MAAM,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;IAEtC,MAAM,GAAG,GAAG,GAAG,IAAA,iBAAM,EAAC,sBAAsB,CAAC,QAAQ,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,KAAI,CAAC,aAAa,CAAC;IACjG,MAAM,aAAa,GAAwB,MAAM,IAAA,iBAAO,EAAC;QACvD,MAAM,EAAE,KAAK;QACb,GAAG;KACJ,CAAC;SACC,IAAI,CAAC,CAAC,EAAE,IAAI,EAA0B,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACvE,KAAK,CAAC,CAAC,CAAC,EAAE;QACT,IAAA,UAAG,EAAC,OAAO,EAAE,qDAAqD,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACL,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,
|
|
1
|
+
{"version":3,"file":"preload.js","sourceRoot":"","sources":["../src/preload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAqC;AAGrC,0DAAwE;AACxE,iEAAkF;AAClF,6EAAqD;AACrD,iDAA4C;AAErC,MAAM,gBAAgB,GAEA,CAAM,QAAQ,EAAC,EAAE;IAC5C,MAAM,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;IAEtC,MAAM,GAAG,GAAG,GAAG,IAAA,iBAAM,EAAC,sBAAsB,CAAC,QAAQ,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,KAAI,CAAC,aAAa,CAAC;IACjG,MAAM,aAAa,GAAwB,MAAM,IAAA,iBAAO,EAAC;QACvD,MAAM,EAAE,KAAK;QACb,GAAG;KACJ,CAAC;SACC,IAAI,CAAC,CAAC,EAAE,IAAI,EAA0B,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACvE,KAAK,CAAC,CAAC,CAAC,EAAE;QACT,IAAA,UAAG,EAAC,OAAO,EAAE,qDAAqD,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACL,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IAExC,MAAM,MAAM,GAAG,cAAe,CAC5B,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAuC,CAC1C,CAAC;IAClB,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,IAAA,UAAG,EAAC,SAAS,EAAE,oDAAoD,QAAQ,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5F,OAAO,EAAE,CAAC;AACZ,CAAC,CAAA,CAAC;AAxBW,QAAA,gBAAgB,oBAwB3B;AAEF,SAAsB,OAAO,CAAC,QAAwB;;QACpD,MAAM,KAAK,GAAG,MAAM,IAAA,wBAAgB,EAAC,QAAQ,CAAC,CAAC;QAC/C,+DAA+D;QAC/D,uDAAuD;QACvD,kDAAkD;QAClD,4CAA4C;QAC5C,wCAAwC;QACxC,IAAA,kBAAS,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,IAAA,qBAAY,EAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACtF,OAAO,KAAK,CAAC;IACf,CAAC;CAAA;AATD,0BASC;AAED,SAAgB,OAAO,CAAC,KAAsC;IAC5D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO;IAClC,IAAA,kBAAS,EAAC,KAAK,CAAC,GAAG,CAAC,qBAAY,CAAC,CAAC,CAAC;IACnC,IAAA,UAAG,EAAC,aAAa,EAAE,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAC5D,CAAC;AAJD,0BAIC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Account, TokenAccount } from "@ledgerhq/types-live";
|
|
2
|
-
import { Transaction as EvmTransaction } from "./types";
|
|
2
|
+
import { EvmNftTransaction, Transaction as EvmTransaction } from "./types";
|
|
3
3
|
/**
|
|
4
4
|
* Prepare basic coin transactions or smart contract interactions (other than live ERC20 transfers)
|
|
5
5
|
* Should be used for transactions coming from the wallet API
|
|
@@ -11,6 +11,11 @@ export declare const prepareCoinTransaction: (account: Account, typedTransaction
|
|
|
11
11
|
* Handling addition of ERC20 transfer data and gas limit
|
|
12
12
|
*/
|
|
13
13
|
export declare const prepareTokenTransaction: (account: Account, tokenAccount: TokenAccount, typedTransaction: EvmTransaction) => Promise<EvmTransaction>;
|
|
14
|
+
/**
|
|
15
|
+
* Prepare ERC721/ERC1155 transactions.
|
|
16
|
+
* Handling addition of NFT safeTransferFrom data and gas limit
|
|
17
|
+
*/
|
|
18
|
+
export declare const prepareNftTransaction: (account: Account, typedTransaction: EvmNftTransaction & EvmTransaction) => Promise<EvmTransaction>;
|
|
14
19
|
/**
|
|
15
20
|
* Method called to update a transaction into a state that would make it valid
|
|
16
21
|
* (E.g. Adding fees, add smart contract data, etc...)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareTransaction.d.ts","sourceRoot":"","sources":["../src/prepareTransaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prepareTransaction.d.ts","sourceRoot":"","sources":["../src/prepareTransaction.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC;AAO3E;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,YACxB,OAAO,oBACE,cAAc,KAC/B,QAAQ,cAAc,CAgDxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,YACzB,OAAO,gBACF,YAAY,oBACR,cAAc,KAC/B,QAAQ,cAAc,CAmCxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,YACvB,OAAO,oBACE,iBAAiB,GAAG,cAAc,KACnD,QAAQ,cAAc,CA8CxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,YACpB,OAAO,eACH,cAAc,KAC1B,QAAQ,cAAc,CAoCxB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,YACzB,OAAO,eACH,cAAc,KAC1B,QAAQ,cAAc,CA6BxB,CAAC"}
|
|
@@ -12,13 +12,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.prepareForSignOperation = exports.prepareTransaction = exports.prepareTokenTransaction = exports.prepareCoinTransaction = void 0;
|
|
16
|
-
const
|
|
15
|
+
exports.prepareForSignOperation = exports.prepareTransaction = exports.prepareNftTransaction = exports.prepareTokenTransaction = exports.prepareCoinTransaction = void 0;
|
|
16
|
+
const lodash_1 = require("lodash");
|
|
17
17
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
18
|
-
const
|
|
18
|
+
const index_1 = require("@ledgerhq/coin-framework/account/index");
|
|
19
|
+
const transaction_1 = require("./transaction");
|
|
19
20
|
const getTransactionStatus_1 = require("./getTransactionStatus");
|
|
21
|
+
const nft_1 = require("./api/nft");
|
|
22
|
+
const rpc_1 = require("./api/rpc");
|
|
20
23
|
const logic_1 = require("./logic");
|
|
21
|
-
const transaction_1 = require("./transaction");
|
|
22
24
|
/**
|
|
23
25
|
* Prepare basic coin transactions or smart contract interactions (other than live ERC20 transfers)
|
|
24
26
|
* Should be used for transactions coming from the wallet API
|
|
@@ -60,7 +62,7 @@ const prepareTokenTransaction = (account, tokenAccount, typedTransaction) => __a
|
|
|
60
62
|
const [recipientErrors] = (0, getTransactionStatus_1.validateRecipient)(account, typedTransaction);
|
|
61
63
|
const amount = typedTransaction.useAllAmount ? tokenAccount.balance : typedTransaction.amount;
|
|
62
64
|
const data = !Object.keys(recipientErrors).length
|
|
63
|
-
? (0, transaction_1.getTransactionData)(Object.assign(Object.assign({}, typedTransaction), { amount }))
|
|
65
|
+
? (0, transaction_1.getTransactionData)(account, Object.assign(Object.assign({}, typedTransaction), { amount }))
|
|
64
66
|
: undefined;
|
|
65
67
|
// As we're interacting with a smart contract,
|
|
66
68
|
// it's going to be the real recipient for the tx
|
|
@@ -73,12 +75,46 @@ const prepareTokenTransaction = (account, tokenAccount, typedTransaction) => __a
|
|
|
73
75
|
gasLimit }));
|
|
74
76
|
// Recipient isn't changed here as it would change on the UI end as well
|
|
75
77
|
// The change will be handled by the `prepareForSignOperation` method
|
|
78
|
+
// right before the device signature by the signOperation step
|
|
76
79
|
return Object.assign(Object.assign({}, typedTransaction), { amount,
|
|
77
80
|
data,
|
|
78
81
|
gasLimit,
|
|
79
82
|
additionalFees });
|
|
80
83
|
});
|
|
81
84
|
exports.prepareTokenTransaction = prepareTokenTransaction;
|
|
85
|
+
/**
|
|
86
|
+
* Prepare ERC721/ERC1155 transactions.
|
|
87
|
+
* Handling addition of NFT safeTransferFrom data and gas limit
|
|
88
|
+
*/
|
|
89
|
+
const prepareNftTransaction = (account, typedTransaction) => __awaiter(void 0, void 0, void 0, function* () {
|
|
90
|
+
var _a, _b;
|
|
91
|
+
const { currency } = account;
|
|
92
|
+
const [recipientErrors] = (0, getTransactionStatus_1.validateRecipient)(account, typedTransaction);
|
|
93
|
+
const data = !Object.keys(recipientErrors).length
|
|
94
|
+
? (0, transaction_1.getTransactionData)(account, typedTransaction)
|
|
95
|
+
: undefined;
|
|
96
|
+
// As we're interacting with a smart contract,
|
|
97
|
+
// it's going to be the real recipient for the tx
|
|
98
|
+
const gasLimit = data
|
|
99
|
+
? yield (0, rpc_1.getGasEstimation)(account, Object.assign(Object.assign({}, typedTransaction), { amount: new bignumber_js_1.default(0), recipient: typedTransaction.nft.contract, // recipient is then the nft smart contract
|
|
100
|
+
data })).catch(() => new bignumber_js_1.default(0)) // this catch returning 0 should be handled by the `getTransactionStatus` method
|
|
101
|
+
: new bignumber_js_1.default(0);
|
|
102
|
+
const additionalFees = yield (0, logic_1.getAdditionalLayer2Fees)(account.currency, Object.assign(Object.assign({}, typedTransaction), { amount: new bignumber_js_1.default(0), recipient: typedTransaction.nft.contract, // recipient is then the token smart contract
|
|
103
|
+
data,
|
|
104
|
+
gasLimit }));
|
|
105
|
+
// Providing the collection name to the transaction for the
|
|
106
|
+
// deviceTransactionConfig step (so purely UI)
|
|
107
|
+
const [collectionMetadata] = yield (0, nft_1.getNftCollectionMetadata)([{ contract: typedTransaction.nft.contract }], ((_a = currency === null || currency === void 0 ? void 0 : currency.ethereumLikeInfo) === null || _a === void 0 ? void 0 : _a.chainId) || 0);
|
|
108
|
+
const nft = Object.assign(Object.assign({}, typedTransaction.nft), { collectionName: ((_b = collectionMetadata.result) === null || _b === void 0 ? void 0 : _b.tokenName) || "" });
|
|
109
|
+
// Recipient isn't changed here as it would change on the UI end as well
|
|
110
|
+
// The change will be handled by the `prepareForSignOperation` method
|
|
111
|
+
// right before the device signature by the signOperation step
|
|
112
|
+
return Object.assign(Object.assign({}, typedTransaction), { data,
|
|
113
|
+
gasLimit,
|
|
114
|
+
additionalFees,
|
|
115
|
+
nft });
|
|
116
|
+
});
|
|
117
|
+
exports.prepareNftTransaction = prepareNftTransaction;
|
|
82
118
|
/**
|
|
83
119
|
* Method called to update a transaction into a state that would make it valid
|
|
84
120
|
* (E.g. Adding fees, add smart contract data, etc...)
|
|
@@ -87,26 +123,33 @@ const prepareTransaction = (account, transaction) => __awaiter(void 0, void 0, v
|
|
|
87
123
|
const { currency } = account;
|
|
88
124
|
// Get the current network status fees
|
|
89
125
|
const feeData = yield (() => __awaiter(void 0, void 0, void 0, function* () {
|
|
90
|
-
var
|
|
126
|
+
var _c, _d, _e, _f;
|
|
91
127
|
if (transaction.feesStrategy === "custom") {
|
|
92
128
|
return {
|
|
93
|
-
gasPrice: (
|
|
94
|
-
maxFeePerGas: (
|
|
95
|
-
maxPriorityFeePerGas: (
|
|
129
|
+
gasPrice: (_c = transaction.gasPrice) !== null && _c !== void 0 ? _c : null,
|
|
130
|
+
maxFeePerGas: (_d = transaction.maxFeePerGas) !== null && _d !== void 0 ? _d : null,
|
|
131
|
+
maxPriorityFeePerGas: (_e = transaction.maxPriorityFeePerGas) !== null && _e !== void 0 ? _e : null,
|
|
96
132
|
};
|
|
97
133
|
}
|
|
98
134
|
if (!transaction.feesStrategy) {
|
|
99
135
|
return (0, rpc_1.getFeesEstimation)(currency);
|
|
100
136
|
}
|
|
101
|
-
const gasOption = (
|
|
137
|
+
const gasOption = (_f = transaction.gasOptions) === null || _f === void 0 ? void 0 : _f[transaction.feesStrategy];
|
|
102
138
|
return gasOption !== null && gasOption !== void 0 ? gasOption : (0, rpc_1.getFeesEstimation)(currency);
|
|
103
139
|
}))();
|
|
104
140
|
const subAccount = (0, index_1.findSubAccountById)(account, transaction.subAccountId || "");
|
|
105
|
-
const isTokenTransaction = (subAccount === null || subAccount === void 0 ? void 0 : subAccount.type) === "TokenAccount";
|
|
106
141
|
const typedTransaction = (0, transaction_1.getTypedTransaction)(transaction, feeData);
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
142
|
+
const newTransaction = yield (() => {
|
|
143
|
+
if ((0, logic_1.isNftTransaction)(typedTransaction)) {
|
|
144
|
+
return (0, exports.prepareNftTransaction)(account, typedTransaction);
|
|
145
|
+
}
|
|
146
|
+
const isTokenTransaction = (subAccount === null || subAccount === void 0 ? void 0 : subAccount.type) === "TokenAccount";
|
|
147
|
+
return isTokenTransaction
|
|
148
|
+
? (0, exports.prepareTokenTransaction)(account, subAccount, typedTransaction)
|
|
149
|
+
: (0, exports.prepareCoinTransaction)(account, typedTransaction);
|
|
150
|
+
})();
|
|
151
|
+
// maintaining reference if the transaction hasn't change
|
|
152
|
+
return (0, lodash_1.isEqual)(transaction, newTransaction) ? transaction : newTransaction;
|
|
110
153
|
});
|
|
111
154
|
exports.prepareTransaction = prepareTransaction;
|
|
112
155
|
/**
|
|
@@ -116,13 +159,21 @@ exports.prepareTransaction = prepareTransaction;
|
|
|
116
159
|
* (which would change as well in the UI if it was done before that step)
|
|
117
160
|
*/
|
|
118
161
|
const prepareForSignOperation = (account, transaction) => __awaiter(void 0, void 0, void 0, function* () {
|
|
162
|
+
var _g;
|
|
119
163
|
const nonce = yield (0, rpc_1.getTransactionCount)(account.currency, account.freshAddress);
|
|
120
|
-
|
|
164
|
+
if ((0, logic_1.isNftTransaction)(transaction)) {
|
|
165
|
+
return Object.assign(Object.assign({}, transaction), { amount: new bignumber_js_1.default(0), recipient: transaction.nft.contract, // recipient is then the NFT smart contract
|
|
166
|
+
// data as already been added by the `prepareTokenTransaction` method
|
|
167
|
+
nonce });
|
|
168
|
+
}
|
|
169
|
+
const subAccount = (0, index_1.findSubAccountById)(account, (_g = transaction.subAccountId) !== null && _g !== void 0 ? _g : "");
|
|
121
170
|
const isTokenTransaction = (subAccount === null || subAccount === void 0 ? void 0 : subAccount.type) === "TokenAccount";
|
|
122
|
-
|
|
123
|
-
|
|
171
|
+
if (isTokenTransaction) {
|
|
172
|
+
return Object.assign(Object.assign({}, transaction), { amount: new bignumber_js_1.default(0), recipient: subAccount.token.contractAddress, // recipient is then the token smart contract
|
|
124
173
|
// data as already been added by the `prepareTokenTransaction` method
|
|
125
|
-
nonce })
|
|
174
|
+
nonce });
|
|
175
|
+
}
|
|
176
|
+
return Object.assign(Object.assign({}, transaction), { nonce });
|
|
126
177
|
});
|
|
127
178
|
exports.prepareForSignOperation = prepareForSignOperation;
|
|
128
179
|
//# sourceMappingURL=prepareTransaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../src/prepareTransaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"prepareTransaction.js","sourceRoot":"","sources":["../src/prepareTransaction.ts"],"names":[],"mappings":"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"}
|
package/lib/signOperation.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SignOperationFnSignature } from "@ledgerhq/types-live";
|
|
2
2
|
import { SignerContext } from "@ledgerhq/coin-framework/signer";
|
|
3
|
-
import { Transaction } from "./types";
|
|
4
3
|
import { EvmAddress, EvmSignature, EvmSigner } from "./signer";
|
|
4
|
+
import { Transaction } from "./types";
|
|
5
5
|
/**
|
|
6
6
|
* Transforms the ECDSA signature paremeter v hexadecimal string received
|
|
7
7
|
* from the nano into an EIP155 compatible number.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../src/signOperation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signOperation.d.ts","sourceRoot":"","sources":["../src/signOperation.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EAGzB,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAIhE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,WAAY,MAAM,WAAW,MAAM,KAAG,MAgB7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,kBAEZ,cAAc,SAAS,EAAE,UAAU,GAAG,YAAY,CAAC,KACjE,yBAAyB,WAAW,CA6EnC,CAAC"}
|
package/lib/signOperation.js
CHANGED
|
@@ -11,7 +11,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.buildSignOperation = exports.applyEIP155 = void 0;
|
|
13
13
|
const rxjs_1 = require("rxjs");
|
|
14
|
+
const live_env_1 = require("@ledgerhq/live-env");
|
|
14
15
|
const hw_app_eth_1 = require("@ledgerhq/hw-app-eth");
|
|
16
|
+
const support_1 = require("@ledgerhq/coin-framework/nft/support");
|
|
15
17
|
const buildOptimisticOperation_1 = require("./buildOptimisticOperation");
|
|
16
18
|
const prepareTransaction_1 = require("./prepareTransaction");
|
|
17
19
|
const transaction_1 = require("./transaction");
|
|
@@ -53,23 +55,30 @@ const buildSignOperation = (signerContext) => ({ account, deviceId, transaction,
|
|
|
53
55
|
const resolutionConfig = {
|
|
54
56
|
externalPlugins: true,
|
|
55
57
|
erc20: true,
|
|
58
|
+
nft: (0, support_1.isNFTActive)(account.currency),
|
|
56
59
|
domains: transaction.recipientDomain ? [transaction.recipientDomain] : [],
|
|
57
60
|
};
|
|
61
|
+
const loadConfig = {
|
|
62
|
+
cryptoassetsBaseURL: (0, live_env_1.getEnv)("DYNAMIC_CAL_BASE_URL"),
|
|
63
|
+
nftExplorerBaseURL: (0, live_env_1.getEnv)("NFT_ETH_METADATA_SERVICE") + "/v1/ethereum",
|
|
64
|
+
};
|
|
58
65
|
// Look for resolutions for external plugins and ERC20
|
|
59
|
-
const resolution = yield hw_app_eth_1.ledgerService.resolveTransaction(serializedTxHexString,
|
|
66
|
+
const resolution = yield hw_app_eth_1.ledgerService.resolveTransaction(serializedTxHexString, loadConfig, resolutionConfig);
|
|
60
67
|
o.next({
|
|
61
68
|
type: "device-signature-requested",
|
|
62
69
|
});
|
|
63
|
-
const sig = (yield signerContext(deviceId, signer =>
|
|
64
|
-
|
|
65
|
-
|
|
70
|
+
const sig = (yield signerContext(deviceId, signer => {
|
|
71
|
+
signer.setLoadConfig(loadConfig);
|
|
72
|
+
// Request signature on the nano
|
|
73
|
+
return signer.signTransaction(account.freshAddressPath, serializedTxHexString, resolution);
|
|
74
|
+
}));
|
|
66
75
|
o.next({ type: "device-signature-granted" }); // Signature is done
|
|
67
76
|
const { chainId = 0 } = account.currency.ethereumLikeInfo || {};
|
|
68
77
|
// Create a new serialized tx with the signature now
|
|
69
78
|
const signature = yield (0, transaction_1.getSerializedTransaction)(preparedTransaction, {
|
|
70
79
|
r: "0x" + sig.r,
|
|
71
80
|
s: "0x" + sig.s,
|
|
72
|
-
v: (0, exports.applyEIP155)(sig.v, chainId),
|
|
81
|
+
v: (0, exports.applyEIP155)(typeof sig.v === "number" ? sig.v.toString(16) : sig.v, chainId),
|
|
73
82
|
});
|
|
74
83
|
const operation = (0, buildOptimisticOperation_1.buildOptimisticOperation)(account, Object.assign(Object.assign({}, transaction), { nonce: preparedTransaction.nonce }));
|
|
75
84
|
o.next({
|
|
@@ -82,7 +91,9 @@ const buildSignOperation = (signerContext) => ({ account, deviceId, transaction,
|
|
|
82
91
|
});
|
|
83
92
|
});
|
|
84
93
|
}
|
|
85
|
-
main().then(() => o.complete(),
|
|
94
|
+
main().then(() => o.complete(),
|
|
95
|
+
/* istanbul ignore next: don't test throwing an error */
|
|
96
|
+
e => o.error(e));
|
|
86
97
|
});
|
|
87
98
|
exports.buildSignOperation = buildSignOperation;
|
|
88
99
|
//# sourceMappingURL=signOperation.js.map
|
package/lib/signOperation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../src/signOperation.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"signOperation.js","sourceRoot":"","sources":["../src/signOperation.ts"],"names":[],"mappings":"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"}
|
package/lib/signer.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DomainServiceResolution } from "@ledgerhq/domain-service/types";
|
|
2
|
+
import { EIP712Message } from "@ledgerhq/types-live";
|
|
2
3
|
export type EvmAddress = {
|
|
3
4
|
publicKey: string;
|
|
4
5
|
address: string;
|
|
@@ -6,7 +7,7 @@ export type EvmAddress = {
|
|
|
6
7
|
};
|
|
7
8
|
export type EvmSignature = {
|
|
8
9
|
s: string;
|
|
9
|
-
v: string;
|
|
10
|
+
v: string | number;
|
|
10
11
|
r: string;
|
|
11
12
|
};
|
|
12
13
|
type LedgerEthTransactionResolution = {
|
|
@@ -19,9 +20,31 @@ type LedgerEthTransactionResolution = {
|
|
|
19
20
|
plugin: Array<string>;
|
|
20
21
|
domains: DomainServiceResolution[];
|
|
21
22
|
};
|
|
23
|
+
type LoadConfig = {
|
|
24
|
+
nftExplorerBaseURL?: string | null;
|
|
25
|
+
pluginBaseURL?: string | null;
|
|
26
|
+
extraPlugins?: any | null;
|
|
27
|
+
cryptoassetsBaseURL?: string | null;
|
|
28
|
+
};
|
|
22
29
|
export interface EvmSigner {
|
|
30
|
+
setLoadConfig(loadConfig: LoadConfig): void;
|
|
23
31
|
getAddress(path: string, boolDisplay?: boolean, boolChaincode?: boolean): Promise<EvmAddress>;
|
|
24
32
|
signTransaction(path: string, rawTxHex: string, resolution?: LedgerEthTransactionResolution | null): Promise<EvmSignature>;
|
|
33
|
+
signPersonalMessage(path: string, messageHex: string): Promise<{
|
|
34
|
+
v: number;
|
|
35
|
+
s: string;
|
|
36
|
+
r: string;
|
|
37
|
+
}>;
|
|
38
|
+
signEIP712HashedMessage(path: string, domainSeparatorHex: string, hashStructMessageHex: string): Promise<{
|
|
39
|
+
v: number;
|
|
40
|
+
s: string;
|
|
41
|
+
r: string;
|
|
42
|
+
}>;
|
|
43
|
+
signEIP712Message(path: string, jsonMessage: EIP712Message, fullImplem?: boolean): Promise<{
|
|
44
|
+
v: number;
|
|
45
|
+
s: string;
|
|
46
|
+
r: string;
|
|
47
|
+
}>;
|
|
25
48
|
}
|
|
26
49
|
export {};
|
|
27
50
|
//# sourceMappingURL=signer.d.ts.map
|
package/lib/signer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAGF,KAAK,8BAA8B,GAAG;IAEpC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE3B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEpB,cAAc,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE9D,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAEtB,OAAO,EAAE,uBAAuB,EAAE,CAAC;CACpC,CAAC;AAGF,KAAK,UAAU,GAAG;IAEhB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAInC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAG9B,YAAY,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC5C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9F,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,8BAA8B,GAAG,IAAI,GACjD,OAAO,CAAC,YAAY,CAAC,CAAC;IACzB,mBAAmB,CACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QACT,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC,CAAC;IACH,uBAAuB,CACrB,IAAI,EAAE,MAAM,EACZ,kBAAkB,EAAE,MAAM,EAC1B,oBAAoB,EAAE,MAAM,GAC3B,OAAO,CAAC;QACT,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC,CAAC;IACH,iBAAiB,CACf,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,aAAa,EAC1B,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC;QACT,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;KACX,CAAC,CAAC;CACJ"}
|