@ledgerhq/live-common 21.21.4 → 21.24.0-beta.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/lib/account/formatters.d.ts.map +1 -1
- package/lib/account/formatters.js +1 -0
- package/lib/account/formatters.js.map +1 -1
- package/lib/account/support.d.ts.map +1 -1
- package/lib/account/support.js +1 -0
- package/lib/account/support.js.map +1 -1
- package/lib/apps/polyfill.d.ts.map +1 -1
- package/lib/apps/polyfill.js +1 -0
- package/lib/apps/polyfill.js.map +1 -1
- package/lib/bot/engine.js +1 -1
- package/lib/bot/engine.js.map +1 -1
- package/lib/bot/specs.d.ts +1 -0
- package/lib/bot/specs.d.ts.map +1 -1
- package/lib/bot/specs.js +3 -1
- package/lib/bot/specs.js.map +1 -1
- package/lib/data/icons/react/index.d.ts +1 -0
- package/lib/data/icons/react/index.d.ts.map +1 -1
- package/lib/data/icons/react/index.js +4 -2
- package/lib/data/icons/react/index.js.map +1 -1
- package/lib/data/icons/react/sol.js +4 -2
- package/lib/data/icons/react/sol.js.map +1 -1
- package/lib/data/icons/react/ssv.d.ts +8 -0
- package/lib/data/icons/react/ssv.d.ts.map +1 -0
- package/lib/data/icons/react/ssv.js +31 -0
- package/lib/data/icons/react/ssv.js.map +1 -0
- package/lib/data/icons/reactNative/index.d.ts +1 -0
- package/lib/data/icons/reactNative/index.d.ts.map +1 -1
- package/lib/data/icons/reactNative/index.js +4 -2
- package/lib/data/icons/reactNative/index.js.map +1 -1
- package/lib/data/icons/reactNative/sol.js +4 -2
- package/lib/data/icons/reactNative/sol.js.map +1 -1
- package/lib/data/icons/reactNative/ssv.d.ts +8 -0
- package/lib/data/icons/reactNative/ssv.d.ts.map +1 -0
- package/lib/data/icons/reactNative/ssv.js +32 -0
- package/lib/data/icons/reactNative/ssv.js.map +1 -0
- package/lib/derivation.d.ts.map +1 -1
- package/lib/derivation.js +0 -3
- package/lib/derivation.js.map +1 -1
- package/lib/env.d.ts +10 -10
- package/lib/env.d.ts.map +1 -1
- package/lib/env.js +6 -6
- package/lib/env.js.map +1 -1
- package/lib/env.react.d.ts +1 -1
- package/lib/env.react.d.ts.map +1 -1
- package/lib/families/algorand/account.d.ts.map +1 -1
- package/lib/families/algorand/account.js +0 -4
- package/lib/families/algorand/account.js.map +1 -1
- package/lib/families/algorand/api/algodv2.d.ts +5 -0
- package/lib/families/algorand/api/algodv2.d.ts.map +1 -0
- package/lib/families/algorand/api/algodv2.js +118 -0
- package/lib/families/algorand/api/algodv2.js.map +1 -0
- package/lib/families/algorand/api/algodv2.types.d.ts +24 -0
- package/lib/families/algorand/api/algodv2.types.d.ts.map +1 -0
- package/lib/families/algorand/api/algodv2.types.js +3 -0
- package/lib/families/algorand/api/algodv2.types.js.map +1 -0
- package/lib/families/algorand/api/index.d.ts +5 -0
- package/lib/families/algorand/api/index.d.ts.map +1 -0
- package/lib/families/algorand/api/index.js +17 -0
- package/lib/families/algorand/api/index.js.map +1 -0
- package/lib/families/algorand/api/indexer.d.ts +3 -0
- package/lib/families/algorand/api/indexer.d.ts.map +1 -0
- package/lib/families/algorand/api/indexer.js +134 -0
- package/lib/families/algorand/api/indexer.js.map +1 -0
- package/lib/families/algorand/api/indexer.types.d.ts +35 -0
- package/lib/families/algorand/api/indexer.types.d.ts.map +1 -0
- package/lib/families/algorand/api/indexer.types.js +10 -0
- package/lib/families/algorand/api/indexer.types.js.map +1 -0
- package/lib/families/algorand/bridge/js.d.ts +8 -0
- package/lib/families/algorand/bridge/js.d.ts.map +1 -0
- package/lib/families/algorand/bridge/js.js +85 -0
- package/lib/families/algorand/bridge/js.js.map +1 -0
- package/lib/families/algorand/bridge/libcore.d.ts +3 -3
- package/lib/families/algorand/bridge/libcore.d.ts.map +1 -1
- package/lib/families/algorand/bridge/libcore.js.map +1 -1
- package/lib/families/algorand/bridge/mock.d.ts +2 -2
- package/lib/families/algorand/bridge/mock.d.ts.map +1 -1
- package/lib/families/algorand/bridge/mock.js.map +1 -1
- package/lib/families/algorand/buildTransaction.d.ts +8 -0
- package/lib/families/algorand/buildTransaction.d.ts.map +1 -0
- package/lib/families/algorand/buildTransaction.js +101 -0
- package/lib/families/algorand/buildTransaction.js.map +1 -0
- package/lib/families/algorand/cli-transaction.js +1 -1
- package/lib/families/algorand/cli-transaction.js.map +1 -1
- package/lib/families/algorand/deviceTransactionConfig.d.ts +2 -2
- package/lib/families/algorand/deviceTransactionConfig.d.ts.map +1 -1
- package/lib/families/algorand/deviceTransactionConfig.js +0 -13
- package/lib/families/algorand/deviceTransactionConfig.js.map +1 -1
- package/lib/families/algorand/hw-getAddress.d.ts.map +1 -1
- package/lib/families/algorand/hw-getAddress.js +2 -24
- package/lib/families/algorand/hw-getAddress.js.map +1 -1
- package/lib/families/algorand/js-broadcast.d.ts +9 -0
- package/lib/families/algorand/js-broadcast.d.ts.map +1 -0
- package/lib/families/algorand/js-broadcast.js +63 -0
- package/lib/families/algorand/js-broadcast.js.map +1 -0
- package/lib/families/algorand/js-estimateMaxSpendable.d.ts +9 -0
- package/lib/families/algorand/js-estimateMaxSpendable.d.ts.map +1 -0
- package/lib/families/algorand/js-estimateMaxSpendable.js +89 -0
- package/lib/families/algorand/js-estimateMaxSpendable.js.map +1 -0
- package/lib/families/algorand/js-getFeesForTransaction.d.ts +5 -0
- package/lib/families/algorand/js-getFeesForTransaction.d.ts.map +1 -0
- package/lib/families/algorand/js-getFeesForTransaction.js +69 -0
- package/lib/families/algorand/js-getFeesForTransaction.js.map +1 -0
- package/lib/families/algorand/js-getTransactionStatus.d.ts +11 -0
- package/lib/families/algorand/js-getTransactionStatus.d.ts.map +1 -0
- package/lib/families/algorand/js-getTransactionStatus.js +201 -0
- package/lib/families/algorand/js-getTransactionStatus.js.map +1 -0
- package/lib/families/algorand/js-prepareTransaction.d.ts +5 -0
- package/lib/families/algorand/js-prepareTransaction.d.ts.map +1 -0
- package/lib/families/algorand/js-prepareTransaction.js +101 -0
- package/lib/families/algorand/js-prepareTransaction.js.map +1 -0
- package/lib/families/algorand/js-signOperation.d.ts +10 -0
- package/lib/families/algorand/js-signOperation.d.ts.map +1 -0
- package/lib/families/algorand/js-signOperation.js +164 -0
- package/lib/families/algorand/js-signOperation.js.map +1 -0
- package/lib/families/algorand/js-synchronization.d.ts +10 -0
- package/lib/families/algorand/js-synchronization.d.ts.map +1 -0
- package/lib/families/algorand/js-synchronization.js +411 -0
- package/lib/families/algorand/js-synchronization.js.map +1 -0
- package/lib/families/algorand/libcore-buildTransaction.d.ts +2 -2
- package/lib/families/algorand/libcore-buildTransaction.d.ts.map +1 -1
- package/lib/families/algorand/libcore-getFeesForTransaction.d.ts +4 -4
- package/lib/families/algorand/libcore-getFeesForTransaction.d.ts.map +1 -1
- package/lib/families/algorand/libcore-getFeesForTransaction.js +2 -2
- package/lib/families/algorand/libcore-getFeesForTransaction.js.map +1 -1
- package/lib/families/algorand/libcore-postBuildAccount.d.ts.map +1 -1
- package/lib/families/algorand/libcore-postBuildAccount.js +5 -11
- package/lib/families/algorand/libcore-postBuildAccount.js.map +1 -1
- package/lib/families/algorand/libcore-signOperation.d.ts +2 -2
- package/lib/families/algorand/libcore-signOperation.d.ts.map +1 -1
- package/lib/families/algorand/libcore-signOperation.js.map +1 -1
- package/lib/families/algorand/logic.d.ts +10 -0
- package/lib/families/algorand/logic.d.ts.map +1 -1
- package/lib/families/algorand/logic.js +79 -1
- package/lib/families/algorand/logic.js.map +1 -1
- package/lib/families/algorand/mock.d.ts.map +1 -1
- package/lib/families/algorand/mock.js +4 -11
- package/lib/families/algorand/mock.js.map +1 -1
- package/lib/families/algorand/serialization.js +4 -4
- package/lib/families/algorand/serialization.js.map +1 -1
- package/lib/families/algorand/specs.d.ts +2 -2
- package/lib/families/algorand/specs.d.ts.map +1 -1
- package/lib/families/algorand/specs.js +8 -16
- package/lib/families/algorand/specs.js.map +1 -1
- package/lib/families/algorand/speculos-deviceActions.d.ts +2 -2
- package/lib/families/algorand/speculos-deviceActions.d.ts.map +1 -1
- package/lib/families/algorand/speculos-deviceActions.js +4 -0
- package/lib/families/algorand/speculos-deviceActions.js.map +1 -1
- package/lib/families/algorand/test-dataset.d.ts +2 -2
- package/lib/families/algorand/test-dataset.d.ts.map +1 -1
- package/lib/families/algorand/test-dataset.js +1 -2
- package/lib/families/algorand/test-dataset.js.map +1 -1
- package/lib/families/algorand/tokens.d.ts.map +1 -1
- package/lib/families/algorand/tokens.js.map +1 -1
- package/lib/families/algorand/transaction.d.ts +5 -5
- package/lib/families/algorand/transaction.d.ts.map +1 -1
- package/lib/families/algorand/transaction.js.map +1 -1
- package/lib/families/algorand/types.d.ts +7 -5
- package/lib/families/algorand/types.d.ts.map +1 -1
- package/lib/families/algorand/types.js.map +1 -1
- package/lib/families/bitcoin/js-prepareTransaction.d.ts.map +1 -1
- package/lib/families/bitcoin/js-prepareTransaction.js +3 -2
- package/lib/families/bitcoin/js-prepareTransaction.js.map +1 -1
- package/lib/families/bitcoin/js-synchronisation.d.ts.map +1 -1
- package/lib/families/bitcoin/js-synchronisation.js +13 -14
- package/lib/families/bitcoin/js-synchronisation.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/base.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/base.js +30 -22
- package/lib/families/bitcoin/wallet-btc/crypto/base.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/bip32.d.ts +11 -0
- package/lib/families/bitcoin/wallet-btc/crypto/bip32.d.ts.map +1 -0
- package/lib/families/bitcoin/wallet-btc/crypto/bip32.js +32 -0
- package/lib/families/bitcoin/wallet-btc/crypto/bip32.js.map +1 -0
- package/lib/families/bitcoin/wallet-btc/crypto/decred.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/crypto/decred.js +3 -115
- package/lib/families/bitcoin/wallet-btc/crypto/decred.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/storage/index.d.ts +24 -8
- package/lib/families/bitcoin/wallet-btc/storage/index.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/storage/index.js +114 -128
- package/lib/families/bitcoin/wallet-btc/storage/index.js.map +1 -1
- package/lib/families/bitcoin/wallet-btc/storage/types.d.ts +8 -7
- package/lib/families/bitcoin/wallet-btc/storage/types.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/xpub.d.ts.map +1 -1
- package/lib/families/bitcoin/wallet-btc/xpub.js +42 -63
- package/lib/families/bitcoin/wallet-btc/xpub.js.map +1 -1
- package/lib/families/tezos/bridge/js.d.ts.map +1 -1
- package/lib/families/tezos/bridge/js.js +90 -50
- package/lib/families/tezos/bridge/js.js.map +1 -1
- package/lib/families/tezos/bridge/libcore.d.ts.map +1 -1
- package/lib/families/tezos/bridge/libcore.js +2 -1
- package/lib/families/tezos/bridge/libcore.js.map +1 -1
- package/lib/families/tezos/bridge/mock.d.ts.map +1 -1
- package/lib/families/tezos/bridge/mock.js +2 -1
- package/lib/families/tezos/bridge/mock.js.map +1 -1
- package/lib/families/tezos/signOperation.d.ts.map +1 -1
- package/lib/families/tezos/signOperation.js +37 -19
- package/lib/families/tezos/signOperation.js.map +1 -1
- package/lib/families/tezos/specs.d.ts.map +1 -1
- package/lib/families/tezos/specs.js +8 -4
- package/lib/families/tezos/specs.js.map +1 -1
- package/lib/families/tezos/speculos-deviceActions.js +6 -7
- package/lib/families/tezos/speculos-deviceActions.js.map +1 -1
- package/lib/families/tezos/synchronisation.d.ts.map +1 -1
- package/lib/families/tezos/synchronisation.js +8 -5
- package/lib/families/tezos/synchronisation.js.map +1 -1
- package/lib/families/tezos/synchronisation.test.d.ts.map +1 -1
- package/lib/families/tezos/synchronisation.test.js +0 -3
- package/lib/families/tezos/synchronisation.test.js.map +1 -1
- package/lib/families/tezos/test-dataset.d.ts +2 -2
- package/lib/families/tezos/test-dataset.d.ts.map +1 -1
- package/lib/families/tezos/test-dataset.js +45 -319
- package/lib/families/tezos/test-dataset.js.map +1 -1
- package/lib/families/tezos/transaction.d.ts +2 -2
- package/lib/families/tezos/transaction.d.ts.map +1 -1
- package/lib/families/tezos/transaction.js +4 -4
- package/lib/families/tezos/transaction.js.map +1 -1
- package/lib/families/tezos/types.d.ts +2 -0
- package/lib/families/tezos/types.d.ts.map +1 -1
- package/lib/families/tezos/types.js.map +1 -1
- package/lib/generated/bridge/js.d.ts +4 -0
- package/lib/generated/bridge/js.d.ts.map +1 -1
- package/lib/generated/bridge/js.js +26 -24
- package/lib/generated/bridge/js.js.map +1 -1
- package/lib/generated/bridge/libcore.d.ts +1 -1
- package/lib/generated/bridge/mock.d.ts +1 -1
- package/lib/generated/specs.d.ts +1 -1
- package/lib/generated/speculos-deviceActions.d.ts +1 -1
- package/lib/generated/test-dataset.d.ts +1 -1
- package/lib/generated/transaction.d.ts +4 -4
- package/lib/libcore/buildAccount/index.d.ts.map +1 -1
- package/lib/libcore/buildAccount/index.js +0 -1
- package/lib/libcore/buildAccount/index.js.map +1 -1
- package/lib/mock/account.js +21 -21
- package/lib/mock/account.js.map +1 -1
- package/lib/types/operation.d.ts +1 -1
- package/lib/types/operation.d.ts.map +1 -1
- package/package.json +10 -9
- package/src/__tests__/__snapshots__/all.libcore.ts.snap +0 -107
- package/src/account/formatters.ts +1 -0
- package/src/account/support.ts +1 -0
- package/src/apps/polyfill.ts +1 -0
- package/src/bot/engine.ts +1 -1
- package/src/bot/specs.ts +7 -1
- package/src/data/icons/react/index.tsx +1 -0
- package/src/data/icons/react/sol.tsx +1 -1
- package/src/data/icons/react/ssv.tsx +12 -0
- package/src/data/icons/reactNative/index.tsx +1 -0
- package/src/data/icons/reactNative/sol.tsx +1 -1
- package/src/data/icons/reactNative/ssv.tsx +13 -0
- package/src/data/icons/svg/SOL.svg +1 -3
- package/src/data/icons/svg/SSV.svg +4 -0
- package/src/derivation.ts +0 -2
- package/src/env.ts +6 -6
- package/src/families/algorand/account.ts +0 -9
- package/src/families/algorand/api/algodv2.ts +68 -0
- package/src/families/algorand/api/algodv2.types.ts +27 -0
- package/src/families/algorand/api/index.ts +4 -0
- package/src/families/algorand/api/indexer.ts +99 -0
- package/src/families/algorand/api/indexer.types.ts +41 -0
- package/src/families/algorand/bridge/js.ts +46 -0
- package/src/families/algorand/bridge/libcore.ts +4 -4
- package/src/families/algorand/bridge/mock.ts +3 -3
- package/src/families/algorand/buildTransaction.ts +100 -0
- package/src/families/algorand/cli-transaction.ts +1 -1
- package/src/families/algorand/deviceTransactionConfig.ts +2 -16
- package/src/families/algorand/hw-getAddress.ts +1 -10
- package/src/families/algorand/js-broadcast.ts +17 -0
- package/src/families/algorand/js-estimateMaxSpendable.ts +51 -0
- package/src/families/algorand/js-getFeesForTransaction.ts +25 -0
- package/src/families/algorand/js-getTransactionStatus.ts +178 -0
- package/src/families/algorand/js-prepareTransaction.ts +42 -0
- package/src/families/algorand/js-signOperation.ts +145 -0
- package/src/families/algorand/js-synchronization.ts +433 -0
- package/src/families/algorand/libcore-buildTransaction.ts +2 -2
- package/src/families/algorand/libcore-getFeesForTransaction.ts +4 -4
- package/src/families/algorand/libcore-postBuildAccount.ts +2 -7
- package/src/families/algorand/libcore-signOperation.ts +2 -2
- package/src/families/algorand/logic.ts +47 -0
- package/src/families/algorand/mock.ts +2 -12
- package/src/families/algorand/serialization.ts +4 -4
- package/src/families/algorand/specs.ts +16 -22
- package/src/families/algorand/speculos-deviceActions.ts +87 -82
- package/src/families/algorand/test-dataset.ts +5 -6
- package/src/families/algorand/tokens.ts +1 -0
- package/src/families/algorand/transaction.ts +13 -4
- package/src/families/algorand/types.ts +10 -5
- package/src/families/bitcoin/js-prepareTransaction.ts +3 -2
- package/src/families/bitcoin/js-synchronisation.ts +17 -15
- package/src/families/bitcoin/wallet-btc/crypto/base.ts +33 -21
- package/src/families/bitcoin/wallet-btc/crypto/bip32.ts +36 -0
- package/src/families/bitcoin/wallet-btc/crypto/decred.ts +3 -155
- package/src/families/bitcoin/wallet-btc/storage/index.ts +23 -11
- package/src/families/bitcoin/wallet-btc/storage/types.ts +8 -10
- package/src/families/bitcoin/wallet-btc/xpub.ts +14 -10
- package/src/families/tezos/bridge/js.ts +77 -36
- package/src/families/tezos/bridge/libcore.ts +1 -0
- package/src/families/tezos/bridge/mock.ts +1 -0
- package/src/families/tezos/signOperation.ts +31 -8
- package/src/families/tezos/specs.ts +16 -5
- package/src/families/tezos/speculos-deviceActions.ts +5 -5
- package/src/families/tezos/synchronisation.test.ts +0 -3
- package/src/families/tezos/synchronisation.ts +7 -4
- package/src/families/tezos/test-dataset.ts +33 -363
- package/src/families/tezos/transaction.ts +7 -1
- package/src/families/tezos/types.ts +2 -0
- package/src/generated/bridge/js.ts +3 -0
- package/src/libcore/buildAccount/index.ts +1 -2
- package/src/mock/account.ts +27 -27
- package/src/types/operation.ts +9 -4
|
@@ -5566,16 +5566,6 @@ Array [
|
|
|
5566
5566
|
"operator": undefined,
|
|
5567
5567
|
"recipients": Array [
|
|
5568
5568
|
"3P4ZNTpZH81H8z5rzsZPYRAHdbCeepy24S",
|
|
5569
|
-
"39dN3Yh3JoKKYHBE125V3oseNxqEazrZNT",
|
|
5570
|
-
"361eHKcTxvCRyFntqULCU3T3uq5BB5F7SA",
|
|
5571
|
-
"36GF7JNYDG5YxK3tVcsF1rvxLEGZfoCVqJ",
|
|
5572
|
-
"3P8dNFWTbcK9k3qFaTqjLB3ApiRLjXueRs",
|
|
5573
|
-
"1JA74bnt3rhkH1ZbzVaxHiKz4CNqUqqBsc",
|
|
5574
|
-
"16cb8FaMs1vge2fAsg8CuSE5SEnmDqzynt",
|
|
5575
|
-
"19VZfg47ADTauA6cktMuQNiDkbHGLuRDYE",
|
|
5576
|
-
"19FBokKEYLSthbk9Tg6A9JGcD3p7Ygx889",
|
|
5577
|
-
"16GCAeS8oZ1oRQLdz29ckQfjMp6Qa7mPVY",
|
|
5578
|
-
"3GEzxpE35ajZThSpMBu8LLEB3S8QkLRYiF",
|
|
5579
5569
|
],
|
|
5580
5570
|
"senders": Array [
|
|
5581
5571
|
"1GHiAwwxX5RR6MFTtDnD1e9Q2DssDut7Bh",
|
|
@@ -8169,103 +8159,7 @@ Array [
|
|
|
8169
8159
|
"id": "js:2:bitcoin:xpub6CKb86o7RHSD1tDBFKwPgEZ5Q83gnRPG7Bs5HzBRUxcm4dvLEPnSTWP8C7c4P71GgMCk1Fw6xS6Ki4XC6bGAQcxE8gc9KJHXzQnErDtwTa6:segwit-efe8d2fd21349d7b2827b058c3d863538eae1ad2685516d6bdb6b80fca85af30-IN",
|
|
8170
8160
|
"operator": undefined,
|
|
8171
8161
|
"recipients": Array [
|
|
8172
|
-
"3Jc2AiR82JJdZ91CpcJH9TQMPm2NFstFp1",
|
|
8173
|
-
"bc1qaq0sdjddu666zm9rr58l2nx008nf002am9qx83",
|
|
8174
|
-
"bc1qdpvgd8rdc9gmtmcqupdahaxxlfkahprkte6kn0",
|
|
8175
|
-
"bc1qvy650pv32mlwlggl45n7sphsrwsk7u3vkcjg7s",
|
|
8176
|
-
"3FGHK3ZPfFSD5Jffx5ZCMUegFJdMEZp6F6",
|
|
8177
|
-
"1E8JvjXBV7rg1GErmWKt9ZuyeLCcYc9hyi",
|
|
8178
|
-
"38SHEZQAAsBpMDEDS5GuRu7edvjxXAt2hk",
|
|
8179
|
-
"1EgWPd5VA57zY3VyZ7XHJHNTyj7nHpvmia",
|
|
8180
|
-
"bc1qh8z7hauj8kyacw0zngtuxpsnt4vmte6ld75gdu",
|
|
8181
|
-
"3A5PCMt2e6QNqd2dHNjBqPZLaDuVDgWSzV",
|
|
8182
|
-
"3NieCQwhFb99b4Le1JhDB8r7LLyRVMHyhG",
|
|
8183
|
-
"3QkKLy6rGQtAMjJuRdKijhCVjusDcqY66d",
|
|
8184
|
-
"3F2Fi6HwLad68oi4QGYpFbDNDjiHoa2crf",
|
|
8185
|
-
"bc1q4yu4sx8swc6tgps9lvud78jfz87jpw24e0upjr",
|
|
8186
|
-
"36vbV47FkSUpeGPasDhB36CbrbfbC4ca7Q",
|
|
8187
|
-
"3KAq1EcHmb54qTKAQpyy7o1sheAStq8ddf",
|
|
8188
|
-
"bc1q935erkg0xkfmlazexzkkq24z84d9nu86edfn7y",
|
|
8189
|
-
"3ExsrSjXcSYhfaABAx3SnqvTtF7o9dng7p",
|
|
8190
|
-
"3F17UvsvDDazG8F795P6QjTTGFXsFZahRH",
|
|
8191
|
-
"3PRwk5nfYPWSsbr8LcNtj33qYtcGFrTHPw",
|
|
8192
|
-
"39zHVK98pRiZW17HhgbBgbe7g9DoDv1C9H",
|
|
8193
|
-
"bc1qduaughynrt4rrr3xdu4sszxdpn8ur7n5hg2n0z",
|
|
8194
|
-
"3QvTF3fzJtBieb3spx2KaGZKe5QkqCzgDP",
|
|
8195
|
-
"3ELrydVs6B4zhDQiLEWAKDyN7pt6K4GM1F",
|
|
8196
|
-
"38XFHuFfWhg77n59xwhwLbgtretho2WUZG",
|
|
8197
|
-
"35odLH5jc89dneJGxr5s4vrprqL5EBysqF",
|
|
8198
|
-
"39XvDCp5eTEfbyUVTmqzAYJ66xPhgWtjEw",
|
|
8199
|
-
"373ZFgRmpXTbimg7xK3iLDXMCEKCGwu7BY",
|
|
8200
|
-
"3AUAKeFfwkz7gLRasvEfjrZd5pPiKZNSzA",
|
|
8201
|
-
"33uoRcKdtVKUQjNhE74f2BQwqPWgKpc8VJ",
|
|
8202
8162
|
"3G4ViRo3PUMH6G61S8gBvaABAAgHD5a7ZM",
|
|
8203
|
-
"33iik7ZT9i1KfGtQ62ex1bwxuESAYTFjpe",
|
|
8204
|
-
"3GhTQ42UamN8Br56pskasZdmSNFo5NkwF8",
|
|
8205
|
-
"3GhXBXYNxJjGLsesSvorWQTJiGr5twkrn4",
|
|
8206
|
-
"bc1qhnx0w2jx2kgclvl2k70gph3vjvzgxyd7q0g8k4",
|
|
8207
|
-
"bc1q38f2339wtahx3lcylpudnfcv3yyk836r0pdr40",
|
|
8208
|
-
"3PNjvVmptgCNrhGMDrU6XWW1Y1Bcee6oT2",
|
|
8209
|
-
"3CDg7eYgptT8v3jccFFpZEGZRNZTJW2VNA",
|
|
8210
|
-
"38xoEaT1NR178iqXQwwguVzob9YzbFbRvG",
|
|
8211
|
-
"3PzfoNsoJPefhpLtgdhdV5rnU4wmp5SkoL",
|
|
8212
|
-
"bc1qmfnly0eawda5r24acldj0zlvd574qwdgf94jwe",
|
|
8213
|
-
"3H3r5DCUdLRPnYETg9SQtag3Gz94hYqvF8",
|
|
8214
|
-
"3J6oUiNhkxM3Lz1TZ1sCjjw6GCT6cCi5we",
|
|
8215
|
-
"bc1qrwjxw7hhv728a7hukwy4lgarypju623ldl3f05",
|
|
8216
|
-
"3E1CQMn3aC6oP7k5LYcXZ96QnmeRL7WgUb",
|
|
8217
|
-
"3JKPxCdSbSKkz4jsL2f6qXFNwLsH1uez2q",
|
|
8218
|
-
"bc1q3953pvmdtacclgvxpl6aqa8r6p4xyqhr8gsdgk",
|
|
8219
|
-
"3MgkgeUf1YmZ9HLLUEYMJ2hm3cQ3CKBYmJ",
|
|
8220
|
-
"bc1qkypmfj9jr7v7e95t6khw853rtfp62sk8s0qjef",
|
|
8221
|
-
"354B8dgNGeKFqDZJcpVX4C6WUu2s3hRF7H",
|
|
8222
|
-
"35bxt1NyamKCRhGJRLaBw61oKXkGpMnWuF",
|
|
8223
|
-
"13pgMz1vDjAArY26id2jjpBTdHLo2DTXgz",
|
|
8224
|
-
"3A76vCh5a4MA1eVZumTNm3bKmSo5fBGGPT",
|
|
8225
|
-
"37QCGyCmp849Av4HSrByATrJQLs4VJNt5C",
|
|
8226
|
-
"34TgtAXt1DUKJG2YAqKp1nt5zUsR4uYN4w",
|
|
8227
|
-
"bc1q55vkq2weafgqwzwdvel46hj6xgsfnz8vzz68gp",
|
|
8228
|
-
"3MXmnuhoixnCrET7QTZ21z857t8s2qWkHh",
|
|
8229
|
-
"bc1q042sm59em2z2ruprynymp5mgf888pvdnza74wm",
|
|
8230
|
-
"1N86q7JYb6HxM1TjrK4gha9aQNVge2TTnR",
|
|
8231
|
-
"3LoDZAghtN2QeMf4xgCQTDgo9ibnUPHUkY",
|
|
8232
|
-
"33byPkR5v5G94yBKCHS4c7RXXCX3Nvi7N6",
|
|
8233
|
-
"3Ho6Y8bt1g1BopzjcGTLMQ7DtxZuZpuPcw",
|
|
8234
|
-
"bc1q83sf9uvjmr92mwy3y5j9rxmd2q7h28hshn2ejq",
|
|
8235
|
-
"3D3pY5YjYXsijimv3G1H5bVnpNqL5Fod7n",
|
|
8236
|
-
"3HZbWxTC3MihJb8LryiiWetdhg7WHBwDZY",
|
|
8237
|
-
"1M9ciK5F9mWjoXgNdYf9eLi4PhXwkSm4ht",
|
|
8238
|
-
"bc1qcrtxgwt92zr4xr5g3h78adz4xn492y93703kn2",
|
|
8239
|
-
"39ZWjHTrNgfmYCsqGsPxmNmTV97Uigy22k",
|
|
8240
|
-
"3MavZxQSTH6JAGybD7Ca5ZFbYF6Ph59g5u",
|
|
8241
|
-
"33xeESivakwS6rMoZvtmwi4RDDmZ7YqYML",
|
|
8242
|
-
"3Pp7C6F5VHdJDMdQfpnvTEzMVsmafVJpxX",
|
|
8243
|
-
"3AZK7qSKAwx7Rnbf22TDGJdEWsRGf7RXpk",
|
|
8244
|
-
"bc1q0kg67ap0syeyy3k0gseucz29y7kxq8clf79egy",
|
|
8245
|
-
"3MHj8t455ZYovDribvzAjvUERKWPwJvMJu",
|
|
8246
|
-
"37GS3GGFrtzS5nZNMh9Fd1i2Gzn2ra5TeM",
|
|
8247
|
-
"bc1qsr7ea4tl2csdcga00jzx3yj8pt60gx3r7mhhzp",
|
|
8248
|
-
"bc1qxnxuerl0pm35d9wxuvh4a2ujg6f4au9zexg2xv",
|
|
8249
|
-
"3QmSEZsiZafsUSGXNafNcwmtrgYzHhbYi3",
|
|
8250
|
-
"3CjLiSWHJs4VuXneSxE51fSkTFr8rHKHWf",
|
|
8251
|
-
"36aAMuCVkQ9EZQ6vW17kbpAKn38FmZxF8g",
|
|
8252
|
-
"bc1qze42xwwxmn7rumaj3wjhykwhpaazzexfr27k2t",
|
|
8253
|
-
"1FcmjYLAjaYofoWzADoDyfu52af2Jne5jd",
|
|
8254
|
-
"34YSKaSekucu4gR4kcVJCKF2aYnuapcy2g",
|
|
8255
|
-
"3Qs9Td6w3UUMHaYwJjVSDfrTSq8bqqj7EA",
|
|
8256
|
-
"32dCda5w5HRmvYHBoVNZUvCgPmwcCv8MQc",
|
|
8257
|
-
"3Di64LBBeBp328J5wVyeuMYDevD653xiTE",
|
|
8258
|
-
"38NXg2iAQUQD29UeckCQLDabsH8f13BY2d",
|
|
8259
|
-
"18gCFC3FShPo5Vw51zxQ6rqwREriHDZtLF",
|
|
8260
|
-
"39V2KVFz7i9JCa63oSpa7TYZtLr7WGXCDT",
|
|
8261
|
-
"3JyahsGAmMb3uNcyJdRkzhx5Jxa6xcVe4X",
|
|
8262
|
-
"3MS3C44UtBwtTN7f59kRX6oaUWisTDdj9y",
|
|
8263
|
-
"3JLm7gMtkpPDuCxfiFxXu6C6tiQFdNSJTz",
|
|
8264
|
-
"bc1q56e64r7hpuhma4nkapesy43pyf9u9rzf2nr78z",
|
|
8265
|
-
"3EKy9DZMoATcSvWvpF2PawjbhLeaiWPf9R",
|
|
8266
|
-
"bc1qk7c904l8tklxyr2n6xx0tnx0sqg3ze3yvn9a8u",
|
|
8267
|
-
"bc1qskeepvre8zut4ja3p3eyfq7p68u29ywuvjv0ls",
|
|
8268
|
-
"3Jzuj9ZfahdFFMuCDi8EXikZSc6aBjqrRp",
|
|
8269
8163
|
],
|
|
8270
8164
|
"senders": Array [
|
|
8271
8165
|
"32U9FSutLUAJ2XvpArnRYYwCQ9dCdxNbEQ",
|
|
@@ -14785,7 +14679,6 @@ Array [
|
|
|
14785
14679
|
"operator": undefined,
|
|
14786
14680
|
"recipients": Array [
|
|
14787
14681
|
"DPjGymoyCoctCcSmBtL6NtAFUW9mURi5ZA",
|
|
14788
|
-
"DPo316Hrotqkhz9xELTxLSAXd3MvTzKsJk",
|
|
14789
14682
|
],
|
|
14790
14683
|
"senders": Array [
|
|
14791
14684
|
"D9GqmkGCpgtnXP7xMD78v9xfqeDkqBZBMT",
|
package/src/account/support.ts
CHANGED
package/src/apps/polyfill.ts
CHANGED
|
@@ -52,6 +52,7 @@ export const whitelistDependencies = ["Decred", "Decred Testnet"];
|
|
|
52
52
|
["RocketPool", "Ethereum"],
|
|
53
53
|
["POAP", "Ethereum"],
|
|
54
54
|
["OlympusDAO", "Ethereum"],
|
|
55
|
+
["Rarible", "Ethereum"],
|
|
55
56
|
].forEach(([name, dep]) => declareDep(name, dep));
|
|
56
57
|
export const getDependencies = (appName: string): string[] =>
|
|
57
58
|
directDep[appName] || [];
|
package/src/bot/engine.ts
CHANGED
|
@@ -678,7 +678,7 @@ function transactionTest<T>({
|
|
|
678
678
|
const dt = Date.now().valueOf() - operation.date.valueOf();
|
|
679
679
|
invariant(dt > 0, "operation.date must not be in in future");
|
|
680
680
|
expect(dt).toBeLessThan(timingThreshold);
|
|
681
|
-
invariant(!operation.hasFailed, "operation
|
|
681
|
+
invariant(!operation.hasFailed, "operation has failed");
|
|
682
682
|
const { blockAvgTime } = account.currency;
|
|
683
683
|
|
|
684
684
|
if (blockAvgTime && account.blockHeight) {
|
package/src/bot/specs.ts
CHANGED
|
@@ -6,6 +6,9 @@ import sample from "lodash/sample";
|
|
|
6
6
|
import { isAccountEmpty } from "../account";
|
|
7
7
|
import type { DeviceAction, DeviceActionArg } from "./types";
|
|
8
8
|
import type { Account, Transaction } from "../types";
|
|
9
|
+
|
|
10
|
+
const stepValueTransformDefault = (s) => s.trim();
|
|
11
|
+
|
|
9
12
|
// TODO should weight the choice to favorize accounts with small amounts
|
|
10
13
|
export function pickSiblings(siblings: Account[], maxAccount = 5): Account {
|
|
11
14
|
const withoutEmpties = siblings.filter((a) => a.used);
|
|
@@ -37,6 +40,7 @@ type State<T extends Transaction> = {
|
|
|
37
40
|
};
|
|
38
41
|
type Step<T extends Transaction> = {
|
|
39
42
|
title: string;
|
|
43
|
+
stepValueTransform?: (string) => string;
|
|
40
44
|
expectedValue?: (
|
|
41
45
|
arg0: DeviceActionArg<T, State<T>>,
|
|
42
46
|
acc: Array<{
|
|
@@ -79,10 +83,12 @@ export function deviceActionFlow<T extends Transaction>(
|
|
|
79
83
|
// there were accumulated text and we are on new step, we need to release it and compare to expected
|
|
80
84
|
if (currentStep && currentStep.expectedValue) {
|
|
81
85
|
const { expectedValue, ignoreAssertionFailure } = currentStep;
|
|
86
|
+
const stepValueTransform =
|
|
87
|
+
currentStep.stepValueTransform || stepValueTransformDefault;
|
|
82
88
|
|
|
83
89
|
if (!ignoreAssertionFailure) {
|
|
84
90
|
expect({
|
|
85
|
-
[stepTitle]: stepValue
|
|
91
|
+
[stepTitle]: stepValueTransform(stepValue),
|
|
86
92
|
}).toMatchObject({
|
|
87
93
|
[stepTitle]: expectedValue(arg, acc).trim(),
|
|
88
94
|
});
|
|
@@ -352,6 +352,7 @@ export { default as sol } from "./sol";
|
|
|
352
352
|
export { default as spank } from "./spank";
|
|
353
353
|
export { default as sphtx } from "./sphtx";
|
|
354
354
|
export { default as srn } from "./srn";
|
|
355
|
+
export { default as ssv } from "./ssv";
|
|
355
356
|
export { default as stak } from "./stak";
|
|
356
357
|
export { default as start } from "./start";
|
|
357
358
|
export { default as steem } from "./steem";
|
|
@@ -6,7 +6,7 @@ interface Props {
|
|
|
6
6
|
};
|
|
7
7
|
|
|
8
8
|
function sol({size, color = "currentColor"}: Props) {
|
|
9
|
-
return <svg width={size} height={size} viewBox="0 0 24 24"
|
|
9
|
+
return <svg width={size} height={size} viewBox="0 0 24 24"><path d="M2.41,7.77H18.09a.51.51,0,0,0,.37-.16l3.43-3.67a.4.4,0,0,0-.3-.67H5.91a.51.51,0,0,0-.37.16L2.11,7.1A.4.4,0,0,0,2.41,7.77Z" /><path d="M2.41,20.77H18.09a.51.51,0,0,0,.37-.16l3.43-3.67a.4.4,0,0,0-.3-.67H5.91a.51.51,0,0,0-.37.16L2.11,20.1A.4.4,0,0,0,2.41,20.77Z" /><path d="M21.59,14.27H5.91a.51.51,0,0,1-.37-.16L2.11,10.44a.4.4,0,0,1,.3-.67H18.09a.51.51,0,0,1,.37.16l3.43,3.67A.4.4,0,0,1,21.59,14.27Z" /></svg>;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
export default sol;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
interface Props {
|
|
4
|
+
size: number;
|
|
5
|
+
color?: string;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
function ssv({size, color = "currentColor"}: Props) {
|
|
9
|
+
return <svg width={size} height={size} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path opacity={0.62} d="M177.641 404.919L242.226 325.315C248.972 316.999 261.661 316.999 268.407 325.315L332.991 404.919C338.013 411.108 338.013 419.97 332.991 426.16L268.407 505.764C261.661 514.079 248.972 514.079 242.226 505.764L177.641 426.16C172.62 419.97 172.62 411.108 177.641 404.919Z" fill={color} /><path fillRule="evenodd" clipRule="evenodd" d="M242.226 6.23638L177.641 85.8404C172.62 92.0303 172.62 100.892 177.641 107.082L242.226 186.686C248.972 195.001 261.661 195.001 268.407 186.686L332.991 107.082C338.013 100.892 338.013 92.0303 332.991 85.8404L268.407 6.23639C261.661 -2.07879 248.972 -2.0788 242.226 6.23638ZM76.7665 210.257L141.351 130.653C148.097 122.338 160.786 122.338 167.532 130.653L232.116 210.257C237.138 216.447 237.138 225.308 232.116 231.498L167.532 311.102C160.786 319.417 148.097 319.417 141.351 311.102L76.7665 231.498C71.7445 225.308 71.7445 216.447 76.7665 210.257ZM278.579 210.257L343.163 130.653C349.91 122.338 362.598 122.338 369.344 130.653L433.929 210.257C438.951 216.447 438.951 225.308 433.929 231.498L369.344 311.102C362.598 319.417 349.91 319.417 343.163 311.102L278.579 231.498C273.557 225.308 273.557 216.447 278.579 210.257Z" fill={color} /></svg>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export default ssv;
|
|
@@ -352,6 +352,7 @@ export { default as sol } from "./sol";
|
|
|
352
352
|
export { default as spank } from "./spank";
|
|
353
353
|
export { default as sphtx } from "./sphtx";
|
|
354
354
|
export { default as srn } from "./srn";
|
|
355
|
+
export { default as ssv } from "./ssv";
|
|
355
356
|
export { default as stak } from "./stak";
|
|
356
357
|
export { default as start } from "./start";
|
|
357
358
|
export { default as steem } from "./steem";
|
|
@@ -7,7 +7,7 @@ interface Props {
|
|
|
7
7
|
};
|
|
8
8
|
|
|
9
9
|
function sol({ size, color }: Props) {
|
|
10
|
-
return <Svg width={size} height={size} viewBox="0 0 24 24"
|
|
10
|
+
return <Svg width={size} height={size} viewBox="0 0 24 24"><Path d="M2.41,7.77H18.09a.51.51,0,0,0,.37-.16l3.43-3.67a.4.4,0,0,0-.3-.67H5.91a.51.51,0,0,0-.37.16L2.11,7.1A.4.4,0,0,0,2.41,7.77Z" /><Path d="M2.41,20.77H18.09a.51.51,0,0,0,.37-.16l3.43-3.67a.4.4,0,0,0-.3-.67H5.91a.51.51,0,0,0-.37.16L2.11,20.1A.4.4,0,0,0,2.41,20.77Z" /><Path d="M21.59,14.27H5.91a.51.51,0,0,1-.37-.16L2.11,10.44a.4.4,0,0,1,.3-.67H18.09a.51.51,0,0,1,.37.16l3.43,3.67A.4.4,0,0,1,21.59,14.27Z" /></Svg>;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
export default sol;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import Svg, { Path } from "react-native-svg";
|
|
4
|
+
interface Props {
|
|
5
|
+
size: number;
|
|
6
|
+
color: string;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
function ssv({ size, color }: Props) {
|
|
10
|
+
return <Svg width={size} height={size} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><Path opacity={0.62} d="M177.641 404.919L242.226 325.315C248.972 316.999 261.661 316.999 268.407 325.315L332.991 404.919C338.013 411.108 338.013 419.97 332.991 426.16L268.407 505.764C261.661 514.079 248.972 514.079 242.226 505.764L177.641 426.16C172.62 419.97 172.62 411.108 177.641 404.919Z" fill={color} /><Path fillRule="evenodd" clipRule="evenodd" d="M242.226 6.23638L177.641 85.8404C172.62 92.0303 172.62 100.892 177.641 107.082L242.226 186.686C248.972 195.001 261.661 195.001 268.407 186.686L332.991 107.082C338.013 100.892 338.013 92.0303 332.991 85.8404L268.407 6.23639C261.661 -2.07879 248.972 -2.0788 242.226 6.23638ZM76.7665 210.257L141.351 130.653C148.097 122.338 160.786 122.338 167.532 130.653L232.116 210.257C237.138 216.447 237.138 225.308 232.116 231.498L167.532 311.102C160.786 319.417 148.097 319.417 141.351 311.102L76.7665 231.498C71.7445 225.308 71.7445 216.447 76.7665 210.257ZM278.579 210.257L343.163 130.653C349.91 122.338 362.598 122.338 369.344 130.653L433.929 210.257C438.951 216.447 438.951 225.308 433.929 231.498L369.344 311.102C362.598 319.417 349.91 319.417 343.163 311.102L278.579 231.498C273.557 225.308 273.557 216.447 278.579 210.257Z" fill={color} /></Svg>;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export default ssv;
|
|
@@ -1,3 +1 @@
|
|
|
1
|
-
<svg width="24" height="24" viewBox="0 0 24 24"
|
|
2
|
-
<path d="M9.925 18.687a.59.59 0 01.415-.17h14.366a.29.29 0 01.207.497l-2.838 2.815a.59.59 0 01-.415.171H7.294a.291.291 0 01-.207-.498l2.838-2.815zm0-10.517A.59.59 0 0110.34 8h14.366c.261 0 .392.314.207.498l-2.838 2.815a.59.59 0 01-.415.17H7.294a.291.291 0 01-.207-.497L9.925 8.17zm12.15 5.225a.59.59 0 00-.415-.17H7.294a.291.291 0 00-.207.498l2.838 2.815c.11.109.26.17.415.17h14.366a.291.291 0 00.207-.498l-2.838-2.815z" fill="#FFF" fill-rule="nonzero"/>
|
|
3
|
-
</svg>
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24"><path d="M2.41,7.77H18.09a.51.51,0,0,0,.37-.16l3.43-3.67a.4.4,0,0,0-.3-.67H5.91a.51.51,0,0,0-.37.16L2.11,7.1A.4.4,0,0,0,2.41,7.77Z"/><path d="M2.41,20.77H18.09a.51.51,0,0,0,.37-.16l3.43-3.67a.4.4,0,0,0-.3-.67H5.91a.51.51,0,0,0-.37.16L2.11,20.1A.4.4,0,0,0,2.41,20.77Z"/><path d="M21.59,14.27H5.91a.51.51,0,0,1-.37-.16L2.11,10.44a.4.4,0,0,1,.3-.67H18.09a.51.51,0,0,1,.37.16l3.43,3.67A.4.4,0,0,1,21.59,14.27Z"/></svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path opacity="0.62" d="M177.641 404.919L242.226 325.315C248.972 316.999 261.661 316.999 268.407 325.315L332.991 404.919C338.013 411.108 338.013 419.97 332.991 426.16L268.407 505.764C261.661 514.079 248.972 514.079 242.226 505.764L177.641 426.16C172.62 419.97 172.62 411.108 177.641 404.919Z" fill="#1BA5F8"/>
|
|
3
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M242.226 6.23638L177.641 85.8404C172.62 92.0303 172.62 100.892 177.641 107.082L242.226 186.686C248.972 195.001 261.661 195.001 268.407 186.686L332.991 107.082C338.013 100.892 338.013 92.0303 332.991 85.8404L268.407 6.23639C261.661 -2.07879 248.972 -2.0788 242.226 6.23638ZM76.7665 210.257L141.351 130.653C148.097 122.338 160.786 122.338 167.532 130.653L232.116 210.257C237.138 216.447 237.138 225.308 232.116 231.498L167.532 311.102C160.786 319.417 148.097 319.417 141.351 311.102L76.7665 231.498C71.7445 225.308 71.7445 216.447 76.7665 210.257ZM278.579 210.257L343.163 130.653C349.91 122.338 362.598 122.338 369.344 130.653L433.929 210.257C438.951 216.447 438.951 225.308 433.929 231.498L369.344 311.102C362.598 319.417 349.91 319.417 343.163 311.102L278.579 231.498C273.557 225.308 273.557 216.447 278.579 210.257Z" fill="#1BA5F8"/>
|
|
4
|
+
</svg>
|
package/src/derivation.ts
CHANGED
|
@@ -59,8 +59,6 @@ const extraConfigPerCurrency: Record<string, LibcoreConfig> = {
|
|
|
59
59
|
algorand: {
|
|
60
60
|
BLOCKCHAIN_EXPLORER_API_ENDPOINT: () =>
|
|
61
61
|
getEnv("API_ALGORAND_BLOCKCHAIN_EXPLORER_API_ENDPOINT"),
|
|
62
|
-
BLOCKCHAIN_EXPLORER_API_KEY: () =>
|
|
63
|
-
getEnv("API_ALGORAND_BLOCKCHAIN_EXPLORER_API_KEY"),
|
|
64
62
|
},
|
|
65
63
|
};
|
|
66
64
|
const modes = Object.freeze({
|
package/src/env.ts
CHANGED
|
@@ -40,11 +40,6 @@ const envDefinitions = {
|
|
|
40
40
|
parser: stringParser,
|
|
41
41
|
desc: "Node API endpoint for algorand",
|
|
42
42
|
},
|
|
43
|
-
API_ALGORAND_BLOCKCHAIN_EXPLORER_API_KEY: {
|
|
44
|
-
def: "",
|
|
45
|
-
parser: stringParser,
|
|
46
|
-
desc: "Node API key for algorand",
|
|
47
|
-
},
|
|
48
43
|
API_COSMOS_BLOCKCHAIN_EXPLORER_API_ENDPOINT: {
|
|
49
44
|
def: "https://cosmoshub4.coin.ledger.com/",
|
|
50
45
|
parser: stringParser,
|
|
@@ -111,7 +106,7 @@ const envDefinitions = {
|
|
|
111
106
|
desc: "Ledger explorer API for tezos",
|
|
112
107
|
},
|
|
113
108
|
API_TEZOS_TZKT_API: {
|
|
114
|
-
def: "
|
|
109
|
+
def: "https://xtz-tzkt-explorer.api.live.ledger.com",
|
|
115
110
|
parser: stringParser,
|
|
116
111
|
desc: "tzkt.io explorer",
|
|
117
112
|
},
|
|
@@ -511,6 +506,11 @@ const envDefinitions = {
|
|
|
511
506
|
parser: boolParser,
|
|
512
507
|
desc: "enable visibility of debug apps and tools in Platform Catalog",
|
|
513
508
|
},
|
|
509
|
+
PLATFORM_EXPERIMENTAL_APPS: {
|
|
510
|
+
def: false,
|
|
511
|
+
parser: boolParser,
|
|
512
|
+
desc: "enable visibility of experimental apps and tools in Platform Catalog",
|
|
513
|
+
},
|
|
514
514
|
PLATFORM_MANIFEST_API_URL: {
|
|
515
515
|
def: "https://cdn.live.ledger.com/platform/apps/v1/data.json",
|
|
516
516
|
parser: stringParser,
|
|
@@ -46,15 +46,6 @@ function formatAccountSpecifics(account: Account): string {
|
|
|
46
46
|
) + " rewards. ";
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
if ((algorandResources as AlgorandResources).rewardsAccumulated.gt(0)) {
|
|
50
|
-
str +=
|
|
51
|
-
formatCurrencyUnit(
|
|
52
|
-
unit,
|
|
53
|
-
(algorandResources as AlgorandResources).rewardsAccumulated,
|
|
54
|
-
formatConfig
|
|
55
|
-
) + " rewardsAccumulated. ";
|
|
56
|
-
}
|
|
57
|
-
|
|
58
49
|
return str;
|
|
59
50
|
}
|
|
60
51
|
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { BigNumber } from "bignumber.js";
|
|
2
|
+
import { getEnv } from "../../../env";
|
|
3
|
+
import network from "../../../network";
|
|
4
|
+
import {
|
|
5
|
+
AlgoAccount,
|
|
6
|
+
AlgoAsset,
|
|
7
|
+
AlgoTransactionParams,
|
|
8
|
+
AlgoTransactionBroadcastResponse,
|
|
9
|
+
} from "./algodv2.types";
|
|
10
|
+
|
|
11
|
+
const BASE_URL = getEnv("API_ALGORAND_BLOCKCHAIN_EXPLORER_API_ENDPOINT");
|
|
12
|
+
const NODE_URL = `${BASE_URL}/ps2/v2`;
|
|
13
|
+
|
|
14
|
+
const fullUrl = (route: string): string => `${NODE_URL}${route}`;
|
|
15
|
+
|
|
16
|
+
export const getAccount = async (address: string): Promise<AlgoAccount> => {
|
|
17
|
+
const { data } = await network({
|
|
18
|
+
method: "GET",
|
|
19
|
+
url: fullUrl(`/accounts/${address}`),
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const assets: AlgoAsset[] = data.assets
|
|
23
|
+
? data.assets.map((a): AlgoAsset => {
|
|
24
|
+
return {
|
|
25
|
+
assetId: a["asset-id"].toString(),
|
|
26
|
+
balance: new BigNumber(a.amount),
|
|
27
|
+
};
|
|
28
|
+
})
|
|
29
|
+
: [];
|
|
30
|
+
|
|
31
|
+
return {
|
|
32
|
+
round: data.round,
|
|
33
|
+
address: data.address,
|
|
34
|
+
balance: new BigNumber(data.amount),
|
|
35
|
+
pendingRewards: new BigNumber(data["pending-rewards"]),
|
|
36
|
+
assets,
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// TODO Cache
|
|
41
|
+
export const getTransactionParams =
|
|
42
|
+
async (): Promise<AlgoTransactionParams> => {
|
|
43
|
+
const { data } = await network({
|
|
44
|
+
method: "GET",
|
|
45
|
+
url: fullUrl(`/transactions/params`),
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
return {
|
|
49
|
+
fee: data["fee"],
|
|
50
|
+
minFee: data["min-fee"],
|
|
51
|
+
firstRound: data["first-round"] ?? 0,
|
|
52
|
+
lastRound: data["last-round"],
|
|
53
|
+
genesisID: data["genesis-id"],
|
|
54
|
+
genesisHash: data["genesis-hash"],
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const broadcastTransaction = async (
|
|
59
|
+
payload: string
|
|
60
|
+
): Promise<string> => {
|
|
61
|
+
const { data }: { data: AlgoTransactionBroadcastResponse } = await network({
|
|
62
|
+
method: "POST",
|
|
63
|
+
url: fullUrl(`/transactions`),
|
|
64
|
+
data: payload,
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
return data.txId;
|
|
68
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { BigNumber } from "bignumber.js";
|
|
2
|
+
|
|
3
|
+
export interface AlgoAccount {
|
|
4
|
+
round: number;
|
|
5
|
+
address: string;
|
|
6
|
+
balance: BigNumber;
|
|
7
|
+
pendingRewards: BigNumber;
|
|
8
|
+
assets: AlgoAsset[];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface AlgoAsset {
|
|
12
|
+
assetId: string;
|
|
13
|
+
balance: BigNumber;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface AlgoTransactionParams {
|
|
17
|
+
fee: number;
|
|
18
|
+
minFee: number;
|
|
19
|
+
firstRound: number;
|
|
20
|
+
lastRound: number;
|
|
21
|
+
genesisHash: string;
|
|
22
|
+
genesisID: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface AlgoTransactionBroadcastResponse {
|
|
26
|
+
txId: string;
|
|
27
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { BigNumber } from "bignumber.js";
|
|
2
|
+
import { getEnv } from "../../../env";
|
|
3
|
+
import network from "../../../network";
|
|
4
|
+
import {
|
|
5
|
+
AlgoTransaction,
|
|
6
|
+
AlgoTransactionDetails,
|
|
7
|
+
AlgoPaymentInfo,
|
|
8
|
+
AlgoAssetTransferInfo,
|
|
9
|
+
} from "./indexer.types";
|
|
10
|
+
|
|
11
|
+
const LIMIT = 100; // Max nb of transactions per request
|
|
12
|
+
|
|
13
|
+
const BASE_URL = getEnv("API_ALGORAND_BLOCKCHAIN_EXPLORER_API_ENDPOINT");
|
|
14
|
+
const INDEXER_URL = `${BASE_URL}/idx2/v2`;
|
|
15
|
+
|
|
16
|
+
const fullUrl = (route: string): string =>
|
|
17
|
+
`${INDEXER_URL}${route}?limit=${LIMIT}`;
|
|
18
|
+
|
|
19
|
+
export const getAccountTransactions = async (
|
|
20
|
+
address: string,
|
|
21
|
+
startAt?: number
|
|
22
|
+
): Promise<AlgoTransaction[]> => {
|
|
23
|
+
const url = fullUrl(`/accounts/${address}/transactions`);
|
|
24
|
+
|
|
25
|
+
let nextToken: string | undefined;
|
|
26
|
+
let newRawTxs: any[] = [];
|
|
27
|
+
const mergedTxs: AlgoTransaction[] = [];
|
|
28
|
+
do {
|
|
29
|
+
let nextUrl: string = url;
|
|
30
|
+
if (startAt) {
|
|
31
|
+
nextUrl = nextUrl.concat(`&min-round=${startAt}`);
|
|
32
|
+
}
|
|
33
|
+
if (nextToken) {
|
|
34
|
+
nextUrl = nextUrl.concat(`&next=${nextToken}`);
|
|
35
|
+
}
|
|
36
|
+
const { data }: { data: { transactions: any[] } } = await network({
|
|
37
|
+
method: "GET",
|
|
38
|
+
url: nextUrl,
|
|
39
|
+
});
|
|
40
|
+
nextToken = data["next-token"];
|
|
41
|
+
newRawTxs = data.transactions;
|
|
42
|
+
newRawTxs.map(parseRawTransaction).forEach((tx) => mergedTxs.push(tx));
|
|
43
|
+
} while (newRawTxs.length >= LIMIT);
|
|
44
|
+
|
|
45
|
+
return mergedTxs;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
const parseRawTransaction = (tx: any): AlgoTransaction => {
|
|
49
|
+
let details: AlgoTransactionDetails | undefined = undefined;
|
|
50
|
+
if (tx["tx-type"] === "pay") {
|
|
51
|
+
const info = tx["payment-transaction"];
|
|
52
|
+
const paymentInfo: AlgoPaymentInfo = {
|
|
53
|
+
amount: new BigNumber(info.amount),
|
|
54
|
+
recipientAddress: info.receiver,
|
|
55
|
+
closeAmount:
|
|
56
|
+
info["close-amount"] === undefined
|
|
57
|
+
? undefined
|
|
58
|
+
: new BigNumber(info["close-amount"]),
|
|
59
|
+
closeToAddress: info["close-remainder-to"],
|
|
60
|
+
};
|
|
61
|
+
details = paymentInfo;
|
|
62
|
+
} else if (tx["tx-type"] === "axfer") {
|
|
63
|
+
const info = tx["asset-transfer-transaction"];
|
|
64
|
+
const assetTransferInfo: AlgoAssetTransferInfo = {
|
|
65
|
+
assetAmount: new BigNumber(info.amount),
|
|
66
|
+
assetId: info["asset-id"],
|
|
67
|
+
assetRecipientAddress: info.receiver,
|
|
68
|
+
assetSenderAddress: info.sender,
|
|
69
|
+
assetCloseAmount:
|
|
70
|
+
info["close-amount"] === undefined
|
|
71
|
+
? undefined
|
|
72
|
+
: new BigNumber(info["close-amount"]),
|
|
73
|
+
assetCloseToAddress: tx["close-to"],
|
|
74
|
+
};
|
|
75
|
+
details = assetTransferInfo;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return {
|
|
79
|
+
id: tx.id,
|
|
80
|
+
timestamp: tx["round-time"],
|
|
81
|
+
round: tx["confirmed-round"],
|
|
82
|
+
senderAddress: tx.sender,
|
|
83
|
+
senderRewards: new BigNumber(tx["sender-rewards"]),
|
|
84
|
+
recipientRewards: new BigNumber(tx["receiver-rewards"]),
|
|
85
|
+
closeRewards:
|
|
86
|
+
tx["close-rewards"] === undefined
|
|
87
|
+
? undefined
|
|
88
|
+
: new BigNumber(tx["close-rewards"]),
|
|
89
|
+
closeAmount:
|
|
90
|
+
tx["closing-amount"] === undefined
|
|
91
|
+
? undefined
|
|
92
|
+
: new BigNumber(tx["closing-amount"]),
|
|
93
|
+
fee: new BigNumber(tx.fee),
|
|
94
|
+
note: tx.note,
|
|
95
|
+
|
|
96
|
+
type: tx["tx-type"],
|
|
97
|
+
details,
|
|
98
|
+
};
|
|
99
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BigNumber } from "bignumber.js";
|
|
2
|
+
|
|
3
|
+
export type AlgoTransactionDetails = AlgoPaymentInfo | AlgoAssetTransferInfo;
|
|
4
|
+
|
|
5
|
+
// Define only types we explicitely support
|
|
6
|
+
export enum AlgoTransactionType {
|
|
7
|
+
PAYMENT = "pay",
|
|
8
|
+
ASSET_TRANSFER = "axfer",
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface AlgoTransaction {
|
|
12
|
+
id: string;
|
|
13
|
+
timestamp: string; // 'round-time': 1597933539,
|
|
14
|
+
round: number; // 'confirmed-round': 8575676,
|
|
15
|
+
senderAddress: string; // sender: 'RGX5XA7DWZOZ5SLG4WQSNIFKIG4CNX4VOH23YCEX56523DQEAL3QL56XZM',
|
|
16
|
+
senderRewards: BigNumber; // 'sender-rewards': 0,
|
|
17
|
+
recipientRewards: BigNumber; //'receiver-rewards': 0,
|
|
18
|
+
closeRewards?: BigNumber; // 'close-rewards': 0,
|
|
19
|
+
closeAmount?: BigNumber; //'closing-amount': 0,
|
|
20
|
+
fee: BigNumber;
|
|
21
|
+
note: string;
|
|
22
|
+
|
|
23
|
+
type: string; // 'tx-type': 'pay'
|
|
24
|
+
details?: AlgoTransactionDetails;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface AlgoPaymentInfo {
|
|
28
|
+
amount: BigNumber;
|
|
29
|
+
recipientAddress: string; // receiver
|
|
30
|
+
closeAmount?: BigNumber; // close-amount
|
|
31
|
+
closeToAddress?: string; // close-remainder-to
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface AlgoAssetTransferInfo {
|
|
35
|
+
assetId: string; // asset-id
|
|
36
|
+
assetAmount: BigNumber; // amount
|
|
37
|
+
assetRecipientAddress: string; // receiver
|
|
38
|
+
assetSenderAddress?: string; // sender
|
|
39
|
+
assetCloseAmount?: BigNumber; // close-amount
|
|
40
|
+
assetCloseToAddress?: string; // close-to
|
|
41
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { AccountBridge, CurrencyBridge } from "../../../types";
|
|
2
|
+
import { makeAccountBridgeReceive } from "../../../bridge/jsHelpers";
|
|
3
|
+
|
|
4
|
+
import type { AlgorandTransaction } from "../types";
|
|
5
|
+
import { sync, scanAccounts } from "../js-synchronization";
|
|
6
|
+
import {
|
|
7
|
+
createTransaction,
|
|
8
|
+
prepareTransaction,
|
|
9
|
+
} from "../js-prepareTransaction";
|
|
10
|
+
import { estimateMaxSpendable } from "../js-estimateMaxSpendable";
|
|
11
|
+
import { getTransactionStatus } from "../js-getTransactionStatus";
|
|
12
|
+
import { signOperation } from "../js-signOperation";
|
|
13
|
+
import { broadcast } from "../js-broadcast";
|
|
14
|
+
|
|
15
|
+
const receive = makeAccountBridgeReceive();
|
|
16
|
+
|
|
17
|
+
const updateTransaction = (t, patch) => {
|
|
18
|
+
return { ...t, ...patch };
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const preload = async () => Promise.resolve({});
|
|
22
|
+
|
|
23
|
+
const hydrate = () => {};
|
|
24
|
+
|
|
25
|
+
const currencyBridge: CurrencyBridge = {
|
|
26
|
+
preload,
|
|
27
|
+
hydrate,
|
|
28
|
+
scanAccounts,
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const accountBridge: AccountBridge<AlgorandTransaction> = {
|
|
32
|
+
createTransaction,
|
|
33
|
+
updateTransaction,
|
|
34
|
+
prepareTransaction,
|
|
35
|
+
getTransactionStatus,
|
|
36
|
+
sync,
|
|
37
|
+
receive,
|
|
38
|
+
signOperation,
|
|
39
|
+
broadcast,
|
|
40
|
+
estimateMaxSpendable,
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export default {
|
|
44
|
+
currencyBridge,
|
|
45
|
+
accountBridge,
|
|
46
|
+
};
|