@subwallet/extension-base 1.2.31-0 → 1.2.33-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/background/KoniTypes.d.ts +78 -227
- package/background/KoniTypes.js +3 -40
- package/background/errors/SWError.d.ts +4 -7
- package/background/errors/SWError.js +4 -0
- package/background/errors/TransactionError.d.ts +2 -2
- package/background/errors/TransactionError.js +2 -4
- package/background/handlers/State.d.ts +0 -12
- package/background/types.d.ts +9 -134
- package/background/warnings/TransactionWarning.d.ts +1 -1
- package/background/warnings/TransactionWarning.js +5 -1
- package/cjs/background/KoniTypes.js +4 -44
- package/cjs/background/errors/SWError.js +4 -0
- package/cjs/background/errors/TransactionError.js +13 -15
- package/cjs/background/warnings/TransactionWarning.js +6 -2
- package/cjs/constants/environment.js +13 -0
- package/cjs/constants/index.js +40 -13
- package/cjs/constants/signing.js +23 -0
- package/cjs/constants/storage.js +4 -2
- package/cjs/core/consts.js +20 -0
- package/cjs/core/logic-validation/recipientAddress.js +106 -0
- package/cjs/core/logic-validation/request.js +11 -19
- package/cjs/core/logic-validation/swap.js +5 -5
- package/cjs/core/logic-validation/transfer.js +83 -42
- package/cjs/core/types.js +26 -0
- package/cjs/core/utils.js +113 -0
- package/cjs/koni/api/dotsama/crowdloan.js +1 -1
- package/cjs/koni/api/nft/index.js +14 -5
- package/cjs/koni/api/staking/bonding/paraChain.js +8 -8
- package/cjs/koni/api/staking/bonding/relayChain.js +9 -9
- package/cjs/koni/api/staking/index.js +4 -1
- package/cjs/koni/background/cron.js +7 -7
- package/cjs/koni/background/handlers/Extension.js +510 -1446
- package/cjs/koni/background/handlers/State.js +61 -238
- package/cjs/koni/background/handlers/Tabs.js +143 -107
- package/cjs/koni/background/subscription.js +5 -5
- package/cjs/packageInfo.js +1 -1
- package/cjs/page/Accounts.js +2 -5
- package/cjs/page/SubWalleEvmProvider.js +1 -1
- package/cjs/page/index.js +2 -1
- package/cjs/services/balance-service/BalanceMapImpl.js +48 -20
- package/cjs/services/balance-service/helpers/subscribe/index.js +27 -15
- package/cjs/services/balance-service/helpers/subscribe/ton/consts.js +40 -0
- package/cjs/services/balance-service/helpers/subscribe/ton/ton.js +120 -0
- package/cjs/services/balance-service/helpers/subscribe/ton/utils.js +181 -0
- package/cjs/services/balance-service/index.js +25 -13
- package/cjs/services/balance-service/transfer/token.js +41 -24
- package/cjs/services/balance-service/transfer/ton-transfer.js +136 -0
- package/cjs/services/buy-service/index.js +5 -1
- package/cjs/services/chain-service/constants.js +1 -1
- package/cjs/services/chain-service/handler/SubstrateApi.js +1 -0
- package/cjs/services/chain-service/handler/TonApi.js +213 -0
- package/cjs/services/chain-service/handler/TonChainHandler.js +81 -0
- package/cjs/services/chain-service/index.js +32 -8
- package/cjs/services/chain-service/utils/index.js +78 -22
- package/cjs/services/earning-service/constants/chains.js +3 -1
- package/cjs/services/earning-service/handlers/base.js +2 -1
- package/cjs/services/earning-service/handlers/lending/base.js +8 -9
- package/cjs/services/earning-service/handlers/lending/interlay.js +1 -1
- package/cjs/services/earning-service/handlers/liquid-staking/base.js +9 -10
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +1 -1
- package/cjs/services/earning-service/handlers/native-staking/amplitude.js +1 -1
- package/cjs/services/earning-service/handlers/native-staking/astar.js +2 -2
- package/cjs/services/earning-service/handlers/native-staking/base-para.js +13 -13
- package/cjs/services/earning-service/handlers/native-staking/base.js +2 -2
- package/cjs/services/earning-service/handlers/native-staking/para-chain.js +2 -2
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +15 -15
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +14 -14
- package/cjs/services/earning-service/handlers/special.js +10 -10
- package/cjs/services/earning-service/service.js +26 -17
- package/cjs/services/history-service/helpers/subscan-extrinsic-parser-helper.js +1 -1
- package/cjs/services/history-service/index.js +29 -11
- package/cjs/services/history-service/subscan-history.js +9 -21
- package/cjs/services/keyring-service/context/account-context.js +259 -0
- package/cjs/services/keyring-service/context/handlers/Base.js +20 -0
- package/cjs/services/keyring-service/context/handlers/Derive.js +377 -0
- package/cjs/services/keyring-service/context/handlers/Inject.js +75 -0
- package/cjs/services/keyring-service/context/handlers/Json.js +348 -0
- package/cjs/services/keyring-service/context/handlers/Ledger.js +165 -0
- package/cjs/services/keyring-service/context/handlers/Mnemonic.js +218 -0
- package/cjs/services/keyring-service/context/handlers/Modify.js +258 -0
- package/cjs/services/keyring-service/context/handlers/Secret.js +310 -0
- package/cjs/services/keyring-service/context/handlers/index.js +82 -0
- package/cjs/services/keyring-service/context/state.js +649 -0
- package/cjs/services/keyring-service/context/stores/AccountProxy.js +32 -0
- package/cjs/services/keyring-service/context/stores/Base.js +37 -0
- package/cjs/services/keyring-service/context/stores/CurrentAccount.js +28 -0
- package/cjs/services/keyring-service/context/stores/ModifyPair.js +19 -0
- package/cjs/services/keyring-service/context/stores/index.js +38 -0
- package/cjs/services/keyring-service/index.js +20 -164
- package/cjs/services/migration-service/scripts/index.js +6 -4
- package/cjs/services/migration-service/scripts/{MigrateLedgerAccountV2.js → keyring/MigrateLedgerAccountV2.js} +1 -1
- package/cjs/services/migration-service/scripts/keyring/MigratePairData.js +28 -0
- package/cjs/services/migration-service/scripts/{MigrateRemoveGenesisHash.js → keyring/MigrateRemoveGenesisHash.js} +1 -1
- package/cjs/services/request-service/constants.js +5 -3
- package/cjs/services/request-service/handler/AuthRequestHandler.js +104 -57
- package/cjs/services/request-service/handler/EvmRequestHandler.js +3 -4
- package/cjs/services/request-service/handler/SubstrateRequestHandler.js +5 -11
- package/cjs/services/request-service/handler/TonRequestHandler.js +175 -0
- package/cjs/services/request-service/index.js +24 -5
- package/cjs/services/swap-service/handler/asset-hub/handler.js +6 -5
- package/cjs/services/swap-service/handler/base-handler.js +8 -8
- package/cjs/services/swap-service/handler/chainflip-handler.js +5 -4
- package/cjs/services/swap-service/handler/hydradx-handler.js +4 -3
- package/cjs/services/swap-service/index.js +4 -4
- package/cjs/services/transaction-service/helpers/index.js +6 -1
- package/cjs/services/transaction-service/index.js +184 -84
- package/cjs/services/wallet-connect-service/handler/PolkadotRequestHandler.js +2 -10
- package/cjs/stores/AccountProxyStore.js +18 -0
- package/cjs/stores/ModifyPairStore.js +18 -0
- package/cjs/stores/index.js +23 -2
- package/cjs/types/account/action/add/index.js +38 -0
- package/cjs/types/account/action/add/json.js +1 -0
- package/cjs/types/account/action/add/mnemonic.js +1 -0
- package/cjs/types/account/action/add/secret.js +1 -0
- package/cjs/types/account/action/derive.js +1 -0
- package/cjs/types/account/action/edit.js +1 -0
- package/cjs/types/account/action/export.js +1 -0
- package/cjs/types/account/action/index.js +71 -0
- package/cjs/types/account/action/subscribe.js +16 -0
- package/cjs/types/account/action/validate.js +1 -0
- package/cjs/types/account/error/common.js +40 -0
- package/cjs/types/account/error/derive.js +55 -0
- package/cjs/types/account/error/index.js +27 -0
- package/cjs/types/account/index.js +38 -0
- package/cjs/types/account/info/current.js +1 -0
- package/cjs/types/account/info/index.js +38 -0
- package/cjs/types/account/info/keyring.js +90 -0
- package/cjs/types/account/info/proxy.js +49 -0
- package/cjs/types/error.js +1 -0
- package/cjs/types/index.js +44 -0
- package/cjs/types/transaction/data.js +1 -0
- package/cjs/types/transaction/error.js +53 -0
- package/cjs/types/transaction/index.js +49 -0
- package/cjs/types/transaction/request.js +1 -0
- package/cjs/types/transaction/warning.js +14 -0
- package/cjs/types/yield/actions/join/validate.js +1 -16
- package/cjs/utils/account/analyze.js +166 -0
- package/cjs/utils/account/common.js +121 -0
- package/cjs/utils/account/derive/index.js +27 -0
- package/cjs/utils/account/derive/info/index.js +27 -0
- package/cjs/utils/account/derive/info/solo.js +246 -0
- package/cjs/utils/account/derive/info/unified.js +112 -0
- package/cjs/utils/account/derive/validate.js +177 -0
- package/cjs/utils/account/index.js +49 -0
- package/cjs/utils/account/transform.js +566 -0
- package/cjs/utils/auth.js +46 -0
- package/cjs/utils/getId.js +8 -1
- package/cjs/utils/index.js +48 -62
- package/constants/environment.d.ts +1 -0
- package/constants/environment.js +6 -0
- package/constants/index.d.ts +5 -1
- package/constants/index.js +5 -2
- package/constants/signing.d.ts +4 -0
- package/constants/signing.js +15 -0
- package/constants/storage.d.ts +1 -0
- package/constants/storage.js +2 -1
- package/core/consts.d.ts +1 -0
- package/core/consts.js +13 -0
- package/core/logic-validation/recipientAddress.d.ts +2 -0
- package/core/logic-validation/recipientAddress.js +100 -0
- package/core/logic-validation/request.js +10 -18
- package/core/logic-validation/swap.js +1 -1
- package/core/logic-validation/transfer.d.ts +3 -2
- package/core/logic-validation/transfer.js +50 -10
- package/core/types.d.ts +26 -0
- package/core/types.js +19 -0
- package/core/utils.d.ts +10 -0
- package/core/utils.js +105 -0
- package/koni/api/dotsama/crowdloan.js +1 -1
- package/koni/api/nft/index.js +14 -5
- package/koni/api/staking/bonding/paraChain.js +2 -2
- package/koni/api/staking/bonding/relayChain.js +2 -2
- package/koni/api/staking/index.js +4 -1
- package/koni/background/cron.js +7 -7
- package/koni/background/handlers/Extension.d.ts +26 -35
- package/koni/background/handlers/Extension.js +337 -1242
- package/koni/background/handlers/State.d.ts +12 -19
- package/koni/background/handlers/State.js +57 -231
- package/koni/background/handlers/Tabs.d.ts +2 -3
- package/koni/background/handlers/Tabs.js +105 -61
- package/koni/background/subscription.js +5 -5
- package/package.json +352 -53
- package/packageInfo.js +1 -1
- package/page/Accounts.js +2 -5
- package/page/SubWalleEvmProvider.js +1 -1
- package/page/index.js +2 -1
- package/services/balance-service/BalanceMapImpl.d.ts +6 -4
- package/services/balance-service/BalanceMapImpl.js +44 -18
- package/services/balance-service/helpers/subscribe/index.d.ts +3 -4
- package/services/balance-service/helpers/subscribe/index.js +29 -17
- package/services/balance-service/helpers/subscribe/ton/consts.d.ts +18 -0
- package/services/balance-service/helpers/subscribe/ton/consts.js +28 -0
- package/services/balance-service/helpers/subscribe/ton/ton.d.ts +3 -0
- package/services/balance-service/helpers/subscribe/ton/ton.js +111 -0
- package/services/balance-service/helpers/subscribe/ton/types.d.ts +26 -0
- package/services/balance-service/helpers/subscribe/ton/utils.d.ts +32 -0
- package/services/balance-service/helpers/subscribe/ton/utils.js +159 -0
- package/services/balance-service/index.js +25 -13
- package/services/balance-service/transfer/token.d.ts +2 -2
- package/services/balance-service/transfer/token.js +18 -1
- package/services/balance-service/transfer/ton-transfer.d.ts +25 -0
- package/services/balance-service/transfer/ton-transfer.js +127 -0
- package/services/buy-service/index.js +5 -1
- package/services/buy-service/types.d.ts +2 -2
- package/services/chain-service/constants.js +1 -1
- package/services/chain-service/handler/SubstrateApi.js +1 -0
- package/services/chain-service/handler/TonApi.d.ts +52 -0
- package/services/chain-service/handler/TonApi.js +204 -0
- package/services/chain-service/handler/TonChainHandler.d.ts +17 -0
- package/services/chain-service/handler/TonChainHandler.js +73 -0
- package/services/chain-service/index.d.ts +5 -1
- package/services/chain-service/index.js +32 -8
- package/services/chain-service/types.d.ts +24 -0
- package/services/chain-service/utils/index.d.ts +10 -2
- package/services/chain-service/utils/index.js +59 -18
- package/services/earning-service/constants/chains.d.ts +1 -0
- package/services/earning-service/constants/chains.js +1 -0
- package/services/earning-service/handlers/base.js +3 -2
- package/services/earning-service/handlers/lending/base.js +1 -2
- package/services/earning-service/handlers/lending/interlay.js +2 -2
- package/services/earning-service/handlers/liquid-staking/base.js +1 -2
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +2 -2
- package/services/earning-service/handlers/native-staking/amplitude.js +2 -2
- package/services/earning-service/handlers/native-staking/astar.js +2 -2
- package/services/earning-service/handlers/native-staking/base-para.js +2 -2
- package/services/earning-service/handlers/native-staking/base.js +2 -2
- package/services/earning-service/handlers/native-staking/para-chain.js +2 -2
- package/services/earning-service/handlers/native-staking/relay-chain.js +2 -2
- package/services/earning-service/handlers/nomination-pool/index.js +2 -2
- package/services/earning-service/handlers/special.js +2 -2
- package/services/earning-service/service.js +18 -9
- package/services/event-service/types.d.ts +3 -1
- package/services/history-service/helpers/subscan-extrinsic-parser-helper.js +1 -1
- package/services/history-service/index.d.ts +4 -1
- package/services/history-service/index.js +29 -11
- package/services/history-service/subscan-history.js +8 -20
- package/services/keyring-service/context/account-context.d.ts +87 -0
- package/services/keyring-service/context/account-context.js +250 -0
- package/services/keyring-service/context/handlers/Base.d.ts +11 -0
- package/services/keyring-service/context/handlers/Base.js +13 -0
- package/services/keyring-service/context/handlers/Derive.d.ts +29 -0
- package/services/keyring-service/context/handlers/Derive.js +365 -0
- package/services/keyring-service/context/handlers/Inject.d.ts +11 -0
- package/services/keyring-service/context/handlers/Inject.js +69 -0
- package/services/keyring-service/context/handlers/Json.d.ts +18 -0
- package/services/keyring-service/context/handlers/Json.js +328 -0
- package/services/keyring-service/context/handlers/Ledger.d.ts +11 -0
- package/services/keyring-service/context/handlers/Ledger.js +158 -0
- package/services/keyring-service/context/handlers/Mnemonic.d.ts +15 -0
- package/services/keyring-service/context/handlers/Mnemonic.js +206 -0
- package/services/keyring-service/context/handlers/Modify.d.ts +16 -0
- package/services/keyring-service/context/handlers/Modify.js +250 -0
- package/services/keyring-service/context/handlers/Secret.d.ts +16 -0
- package/services/keyring-service/context/handlers/Secret.js +299 -0
- package/services/keyring-service/context/handlers/index.d.ts +7 -0
- package/services/keyring-service/context/handlers/index.js +10 -0
- package/services/keyring-service/context/state.d.ts +92 -0
- package/services/keyring-service/context/state.js +629 -0
- package/services/keyring-service/context/stores/AccountProxy.d.ts +13 -0
- package/services/keyring-service/context/stores/AccountProxy.js +25 -0
- package/services/keyring-service/context/stores/Base.d.ts +22 -0
- package/services/keyring-service/context/stores/Base.js +30 -0
- package/services/keyring-service/context/stores/CurrentAccount.d.ts +15 -0
- package/services/keyring-service/context/stores/CurrentAccount.js +21 -0
- package/services/keyring-service/context/stores/ModifyPair.d.ts +10 -0
- package/services/keyring-service/context/stores/ModifyPair.js +12 -0
- package/services/keyring-service/context/stores/index.d.ts +3 -0
- package/services/keyring-service/context/stores/index.js +6 -0
- package/services/keyring-service/index.d.ts +10 -22
- package/services/keyring-service/index.js +20 -161
- package/services/migration-service/scripts/index.js +6 -4
- package/services/migration-service/scripts/{MigrateLedgerAccountV2.d.ts → keyring/MigrateLedgerAccountV2.d.ts} +1 -1
- package/services/migration-service/scripts/{MigrateLedgerAccountV2.js → keyring/MigrateLedgerAccountV2.js} +1 -1
- package/services/migration-service/scripts/keyring/MigratePairData.d.ts +4 -0
- package/services/migration-service/scripts/keyring/MigratePairData.js +20 -0
- package/services/migration-service/scripts/{MigrateRemoveGenesisHash.js → keyring/MigrateRemoveGenesisHash.js} +1 -1
- package/services/mkt-campaign-service/types.d.ts +4 -0
- package/services/request-service/constants.d.ts +1 -1
- package/services/request-service/constants.js +2 -1
- package/services/request-service/handler/AuthRequestHandler.d.ts +1 -0
- package/services/request-service/handler/AuthRequestHandler.js +93 -45
- package/services/request-service/handler/EvmRequestHandler.js +3 -4
- package/services/request-service/handler/SubstrateRequestHandler.d.ts +2 -2
- package/services/request-service/handler/SubstrateRequestHandler.js +5 -11
- package/services/request-service/handler/TonRequestHandler.d.ts +17 -0
- package/services/request-service/handler/TonRequestHandler.js +168 -0
- package/services/request-service/index.d.ts +8 -3
- package/services/request-service/index.js +23 -5
- package/services/request-service/types.d.ts +6 -3
- package/services/swap-service/handler/asset-hub/handler.d.ts +1 -1
- package/services/swap-service/handler/asset-hub/handler.js +2 -1
- package/services/swap-service/handler/base-handler.js +1 -1
- package/services/swap-service/handler/chainflip-handler.d.ts +1 -1
- package/services/swap-service/handler/chainflip-handler.js +4 -3
- package/services/swap-service/handler/hydradx-handler.d.ts +1 -1
- package/services/swap-service/handler/hydradx-handler.js +2 -1
- package/services/swap-service/index.js +1 -1
- package/services/transaction-service/helpers/index.d.ts +2 -0
- package/services/transaction-service/helpers/index.js +4 -0
- package/services/transaction-service/index.d.ts +1 -0
- package/services/transaction-service/index.js +114 -17
- package/services/transaction-service/types.d.ts +4 -2
- package/services/wallet-connect-service/handler/PolkadotRequestHandler.js +2 -10
- package/stores/AccountProxyStore.d.ts +5 -0
- package/stores/AccountProxyStore.js +10 -0
- package/stores/Authorize.d.ts +1 -1
- package/stores/CurrentAccountStore.d.ts +1 -1
- package/stores/ModifyPairStore.d.ts +5 -0
- package/stores/ModifyPairStore.js +10 -0
- package/stores/index.d.ts +4 -1
- package/stores/index.js +5 -2
- package/types/account/action/add/index.d.ts +3 -0
- package/types/account/action/add/index.js +6 -0
- package/types/account/action/add/json.d.ts +29 -0
- package/types/account/action/add/json.js +1 -0
- package/types/account/action/add/mnemonic.d.ts +77 -0
- package/types/account/action/add/mnemonic.js +1 -0
- package/types/account/action/add/secret.d.ts +55 -0
- package/types/account/action/add/secret.js +1 -0
- package/types/account/action/derive.d.ts +77 -0
- package/types/account/action/derive.js +1 -0
- package/types/account/action/edit.d.ts +31 -0
- package/types/account/action/edit.js +1 -0
- package/types/account/action/export.d.ts +15 -0
- package/types/account/action/export.js +1 -0
- package/types/account/action/index.d.ts +6 -0
- package/types/account/action/index.js +9 -0
- package/types/account/action/subscribe.d.ts +22 -0
- package/types/account/action/subscribe.js +10 -0
- package/types/account/action/validate.d.ts +17 -0
- package/types/account/action/validate.js +1 -0
- package/types/account/error/common.d.ts +10 -0
- package/types/account/error/common.js +33 -0
- package/types/account/error/derive.d.ts +13 -0
- package/types/account/error/derive.js +48 -0
- package/types/account/error/index.d.ts +2 -0
- package/types/account/error/index.js +5 -0
- package/types/account/index.d.ts +3 -0
- package/types/account/index.js +6 -0
- package/types/account/info/current.d.ts +10 -0
- package/types/account/info/current.js +1 -0
- package/types/account/info/index.d.ts +3 -0
- package/types/account/info/index.js +6 -0
- package/types/account/info/keyring.d.ts +161 -0
- package/types/account/info/keyring.js +88 -0
- package/types/account/info/proxy.d.ts +73 -0
- package/types/account/info/proxy.js +46 -0
- package/types/balance/index.d.ts +4 -1
- package/types/buy.d.ts +3 -1
- package/types/error.d.ts +8 -0
- package/types/error.js +1 -0
- package/types/index.d.ts +4 -0
- package/types/index.js +5 -1
- package/types/transaction/data.d.ts +17 -0
- package/types/transaction/data.js +1 -0
- package/types/transaction/error.d.ts +39 -0
- package/types/transaction/error.js +44 -0
- package/types/transaction/index.d.ts +4 -0
- package/types/transaction/index.js +7 -0
- package/types/transaction/request.d.ts +24 -0
- package/types/transaction/request.js +1 -0
- package/types/transaction/warning.d.ts +5 -0
- package/types/transaction/warning.js +8 -0
- package/types/yield/actions/join/submit.d.ts +2 -2
- package/types/yield/actions/join/validate.d.ts +1 -6
- package/types/yield/actions/join/validate.js +1 -10
- package/types/yield/actions/others.d.ts +1 -1
- package/utils/account/analyze.d.ts +4 -0
- package/utils/account/analyze.js +159 -0
- package/utils/account/common.d.ts +16 -0
- package/utils/account/common.js +104 -0
- package/utils/account/derive/index.d.ts +2 -0
- package/utils/account/derive/index.js +5 -0
- package/utils/account/derive/info/index.d.ts +2 -0
- package/utils/account/derive/info/index.js +5 -0
- package/utils/account/derive/info/solo.d.ts +11 -0
- package/utils/account/derive/info/solo.js +230 -0
- package/utils/account/derive/info/unified.d.ts +7 -0
- package/utils/account/derive/info/unified.js +102 -0
- package/utils/account/derive/validate.d.ts +8 -0
- package/utils/account/derive/validate.js +165 -0
- package/utils/account/index.d.ts +4 -0
- package/utils/account/index.js +7 -0
- package/utils/account/transform.d.ts +41 -0
- package/utils/account/transform.js +533 -0
- package/utils/auth.d.ts +2 -0
- package/utils/auth.js +39 -0
- package/utils/canDerive.d.ts +1 -1
- package/utils/eth/mergeTransactionAndSignature.d.ts +1 -1
- package/utils/getId.d.ts +1 -0
- package/utils/getId.js +3 -1
- package/utils/index.d.ts +12 -5
- package/utils/index.js +28 -47
- package/cjs/signers/substrates/KeyringSigner.js +0 -35
- package/cjs/signers/substrates/LedgerSigner.js +0 -44
- package/cjs/signers/substrates/QrSigner.js +0 -63
- package/cjs/signers/types.js +0 -15
- package/cjs/signers/web3/QrSigner.js +0 -67
- package/cjs/utils/account.js +0 -34
- package/signers/substrates/KeyringSigner.d.ts +0 -13
- package/signers/substrates/KeyringSigner.js +0 -27
- package/signers/substrates/LedgerSigner.d.ts +0 -13
- package/signers/substrates/LedgerSigner.js +0 -37
- package/signers/substrates/QrSigner.d.ts +0 -20
- package/signers/substrates/QrSigner.js +0 -55
- package/signers/types.d.ts +0 -34
- package/signers/types.js +0 -9
- package/signers/web3/QrSigner.d.ts +0 -18
- package/signers/web3/QrSigner.js +0 -59
- package/types/transaction.d.ts +0 -3
- package/utils/account.d.ts +0 -5
- package/utils/account.js +0 -24
- /package/cjs/{types/transaction.js → services/balance-service/helpers/subscribe/ton/types.js} +0 -0
- /package/cjs/services/migration-service/scripts/{MigrateLedgerAccount.js → keyring/MigrateLedgerAccount.js} +0 -0
- /package/{types/transaction.js → services/balance-service/helpers/subscribe/ton/types.js} +0 -0
- /package/services/migration-service/scripts/{MigrateLedgerAccount.d.ts → keyring/MigrateLedgerAccount.d.ts} +0 -0
- /package/services/migration-service/scripts/{MigrateLedgerAccount.js → keyring/MigrateLedgerAccount.js} +0 -0
- /package/services/migration-service/scripts/{MigrateRemoveGenesisHash.d.ts → keyring/MigrateRemoveGenesisHash.d.ts} +0 -0
|
@@ -10,15 +10,16 @@ var _TransactionError = require("@subwallet/extension-base/background/errors/Tra
|
|
|
10
10
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
11
11
|
var _constants = require("@subwallet/extension-base/constants");
|
|
12
12
|
var _transfer = require("@subwallet/extension-base/core/logic-validation/transfer");
|
|
13
|
-
var _utils = require("@subwallet/extension-base/services/
|
|
13
|
+
var _utils = require("@subwallet/extension-base/services/balance-service/helpers/subscribe/ton/utils");
|
|
14
|
+
var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
|
|
14
15
|
var _constants2 = require("@subwallet/extension-base/services/request-service/constants");
|
|
15
16
|
var _constants3 = require("@subwallet/extension-base/services/transaction-service/constants");
|
|
16
17
|
var _eventParser = require("@subwallet/extension-base/services/transaction-service/event-parser");
|
|
17
18
|
var _helpers = require("@subwallet/extension-base/services/transaction-service/helpers");
|
|
18
|
-
var
|
|
19
|
+
var _utils3 = require("@subwallet/extension-base/services/transaction-service/utils");
|
|
19
20
|
var _helpers2 = require("@subwallet/extension-base/services/wallet-connect-service/helpers");
|
|
20
21
|
var _types = require("@subwallet/extension-base/types");
|
|
21
|
-
var
|
|
22
|
+
var _utils4 = require("@subwallet/extension-base/utils");
|
|
22
23
|
var _mergeTransactionAndSignature = require("@subwallet/extension-base/utils/eth/mergeTransactionAndSignature");
|
|
23
24
|
var _parseTransaction = require("@subwallet/extension-base/utils/eth/parseTransaction");
|
|
24
25
|
var _number = require("@subwallet/extension-base/utils/number");
|
|
@@ -58,7 +59,7 @@ class TransactionService {
|
|
|
58
59
|
// Check duplicated transaction
|
|
59
60
|
const existed = this.processingTransactions.filter(item => item.address === transaction.address && item.chain === transaction.chain);
|
|
60
61
|
if (existed.length > 0) {
|
|
61
|
-
return [new _TransactionError.TransactionError(
|
|
62
|
+
return [new _TransactionError.TransactionError(_types.BasicTxErrorType.DUPLICATE_TRANSACTION)];
|
|
62
63
|
}
|
|
63
64
|
return [];
|
|
64
65
|
}
|
|
@@ -90,25 +91,33 @@ class TransactionService {
|
|
|
90
91
|
// Check support for transaction
|
|
91
92
|
(0, _transfer.checkSupportForTransaction)(validationResponse, transaction);
|
|
92
93
|
if (!chainInfo) {
|
|
93
|
-
validationResponse.errors.push(new _TransactionError.TransactionError(
|
|
94
|
+
validationResponse.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.INTERNAL_ERROR, (0, _i18next.t)('Cannot find network')));
|
|
94
95
|
}
|
|
95
96
|
const evmApi = this.state.chainService.getEvmApi(chainInfo.slug);
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
const tonApi = this.state.chainService.getTonApi(chainInfo.slug);
|
|
98
|
+
const isNoEvmApi = transaction && !(0, _helpers.isSubstrateTransaction)(transaction) && !(0, _helpers.isTonTransaction)(transaction) && !evmApi; // todo: should split isEvmTx && isNoEvmApi. Because other chains type also has no Evm Api
|
|
99
|
+
const isNoTonApi = transaction && (0, _helpers.isTonTransaction)(transaction) && !tonApi;
|
|
100
|
+
if (isNoEvmApi || isNoTonApi) {
|
|
101
|
+
validationResponse.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.CHAIN_DISCONNECTED, undefined));
|
|
99
102
|
}
|
|
100
103
|
|
|
101
104
|
// Estimate fee for transaction
|
|
102
105
|
validationResponse.estimateFee = await (0, _transfer.estimateFeeForTransaction)(validationResponse, transaction, chainInfo, evmApi);
|
|
106
|
+
const chainInfoMap = this.state.chainService.getChainInfoMap();
|
|
103
107
|
|
|
104
108
|
// Check account signing transaction
|
|
105
|
-
(0, _transfer.checkSigningAccountForTransaction)(validationResponse);
|
|
109
|
+
(0, _transfer.checkSigningAccountForTransaction)(validationResponse, chainInfoMap);
|
|
106
110
|
const nativeTokenInfo = this.state.chainService.getNativeTokenInfo(chain);
|
|
107
111
|
const nativeTokenAvailable = await this.state.balanceService.getTransferableBalance(address, chain, nativeTokenInfo.slug, extrinsicType);
|
|
108
112
|
|
|
109
113
|
// Check available balance against transaction fee
|
|
110
114
|
(0, _transfer.checkBalanceWithTransactionFee)(validationResponse, transactionInput, nativeTokenInfo, nativeTokenAvailable);
|
|
111
115
|
|
|
116
|
+
// Warnings Ton address if bounceable and not active
|
|
117
|
+
// if (transaction && isTonTransaction(transaction) && tonApi) {
|
|
118
|
+
// await checkTonAddressBounceableAndAccountNotActive(tonApi, validationResponse);
|
|
119
|
+
// }
|
|
120
|
+
|
|
112
121
|
// Check additional validations
|
|
113
122
|
additionalValidator && (await additionalValidator(validationResponse));
|
|
114
123
|
return validationResponse;
|
|
@@ -160,8 +169,9 @@ class TransactionService {
|
|
|
160
169
|
}
|
|
161
170
|
async handleTransaction(transaction) {
|
|
162
171
|
const validatedTransaction = await this.validateTransaction(transaction);
|
|
172
|
+
const ignoreWarnings = validatedTransaction.ignoreWarnings || [];
|
|
163
173
|
const stopByErrors = validatedTransaction.errors.length > 0;
|
|
164
|
-
const stopByWarnings = validatedTransaction.warnings.length > 0 &&
|
|
174
|
+
const stopByWarnings = validatedTransaction.warnings.length > 0 && validatedTransaction.warnings.some(warning => !ignoreWarnings.includes(warning.warningType));
|
|
165
175
|
if (stopByErrors || stopByWarnings) {
|
|
166
176
|
// @ts-ignore
|
|
167
177
|
'transaction' in validatedTransaction && delete validatedTransaction.transaction;
|
|
@@ -202,7 +212,7 @@ class TransactionService {
|
|
|
202
212
|
}
|
|
203
213
|
async sendTransaction(transaction) {
|
|
204
214
|
// Send Transaction
|
|
205
|
-
const emitter = await (transaction.chainType === 'substrate' ? this.signAndSendSubstrateTransaction(transaction) : this.signAndSendEvmTransaction(transaction));
|
|
215
|
+
const emitter = await (transaction.chainType === 'substrate' ? this.signAndSendSubstrateTransaction(transaction) : transaction.chainType === 'evm' ? this.signAndSendEvmTransaction(transaction) : this.signAndSendTonTransaction(transaction));
|
|
206
216
|
const {
|
|
207
217
|
eventsHandler
|
|
208
218
|
} = transaction;
|
|
@@ -223,13 +233,13 @@ class TransactionService {
|
|
|
223
233
|
// this.handlePostProcessing(data.id); // might enable this later
|
|
224
234
|
this.onFailed({
|
|
225
235
|
...data,
|
|
226
|
-
errors: [...data.errors, new _TransactionError.TransactionError(
|
|
236
|
+
errors: [...data.errors, new _TransactionError.TransactionError(_types.BasicTxErrorType.INTERNAL_ERROR)]
|
|
227
237
|
});
|
|
228
238
|
});
|
|
229
239
|
emitter.on('timeout', data => {
|
|
230
240
|
this.onTimeOut({
|
|
231
241
|
...data,
|
|
232
|
-
errors: [...data.errors, new _TransactionError.TransactionError(
|
|
242
|
+
errors: [...data.errors, new _TransactionError.TransactionError(_types.BasicTxErrorType.TIMEOUT)]
|
|
233
243
|
});
|
|
234
244
|
});
|
|
235
245
|
|
|
@@ -258,13 +268,13 @@ class TransactionService {
|
|
|
258
268
|
getTransactionLink(id) {
|
|
259
269
|
const transaction = this.getTransaction(id);
|
|
260
270
|
const chainInfo = this.state.chainService.getChainInfoByKey(transaction.chain);
|
|
261
|
-
return (0,
|
|
271
|
+
return (0, _utils3.getExplorerLink)(chainInfo, transaction.extrinsicHash, 'tx');
|
|
262
272
|
}
|
|
263
273
|
transactionToHistories(id, startBlock, nonce, eventLogs) {
|
|
264
274
|
const transaction = this.getTransaction(id);
|
|
265
275
|
const extrinsicType = transaction.extrinsicType;
|
|
266
276
|
const chainInfo = this.state.chainService.getChainInfoByKey(transaction.chain);
|
|
267
|
-
const formattedTransactionAddress = (0,
|
|
277
|
+
const formattedTransactionAddress = (0, _utils4.reformatAddress)(transaction.address);
|
|
268
278
|
const historyItem = {
|
|
269
279
|
origin: 'app',
|
|
270
280
|
chain: transaction.chain,
|
|
@@ -286,7 +296,7 @@ class TransactionService {
|
|
|
286
296
|
nonce: nonce !== null && nonce !== void 0 ? nonce : 0,
|
|
287
297
|
startBlock: startBlock || 0
|
|
288
298
|
};
|
|
289
|
-
const nativeAsset = (0,
|
|
299
|
+
const nativeAsset = (0, _utils2._getChainNativeTokenBasicInfo)(chainInfo);
|
|
290
300
|
const baseNativeAmount = {
|
|
291
301
|
value: '0',
|
|
292
302
|
decimals: nativeAsset.decimals,
|
|
@@ -297,7 +307,7 @@ class TransactionService {
|
|
|
297
307
|
switch (extrinsicType) {
|
|
298
308
|
case _KoniTypes.ExtrinsicType.TRANSFER_BALANCE:
|
|
299
309
|
{
|
|
300
|
-
const inputData = (0,
|
|
310
|
+
const inputData = (0, _utils3.parseTransactionData)(transaction.data);
|
|
301
311
|
historyItem.to = inputData.to;
|
|
302
312
|
const sendingTokenInfo = this.state.chainService.getAssetBySlug(inputData.tokenSlug);
|
|
303
313
|
historyItem.amount = {
|
|
@@ -310,7 +320,7 @@ class TransactionService {
|
|
|
310
320
|
break;
|
|
311
321
|
case _KoniTypes.ExtrinsicType.TRANSFER_TOKEN:
|
|
312
322
|
{
|
|
313
|
-
const inputData = (0,
|
|
323
|
+
const inputData = (0, _utils3.parseTransactionData)(transaction.data);
|
|
314
324
|
historyItem.to = inputData.to;
|
|
315
325
|
const sendingTokenInfo = this.state.chainService.getAssetBySlug(inputData.tokenSlug);
|
|
316
326
|
historyItem.amount = {
|
|
@@ -323,7 +333,7 @@ class TransactionService {
|
|
|
323
333
|
break;
|
|
324
334
|
case _KoniTypes.ExtrinsicType.TRANSFER_XCM:
|
|
325
335
|
{
|
|
326
|
-
const inputData = (0,
|
|
336
|
+
const inputData = (0, _utils3.parseTransactionData)(transaction.data);
|
|
327
337
|
historyItem.to = inputData.to;
|
|
328
338
|
const sendingTokenInfo = this.state.chainService.getAssetBySlug(inputData.tokenSlug);
|
|
329
339
|
historyItem.amount = {
|
|
@@ -343,7 +353,7 @@ class TransactionService {
|
|
|
343
353
|
break;
|
|
344
354
|
case _KoniTypes.ExtrinsicType.SEND_NFT:
|
|
345
355
|
{
|
|
346
|
-
const inputData = (0,
|
|
356
|
+
const inputData = (0, _utils3.parseTransactionData)(transaction.data);
|
|
347
357
|
historyItem.to = inputData.recipientAddress;
|
|
348
358
|
historyItem.amount = {
|
|
349
359
|
decimals: 0,
|
|
@@ -354,7 +364,7 @@ class TransactionService {
|
|
|
354
364
|
break;
|
|
355
365
|
case _KoniTypes.ExtrinsicType.STAKING_BOND:
|
|
356
366
|
{
|
|
357
|
-
const data = (0,
|
|
367
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
358
368
|
historyItem.amount = {
|
|
359
369
|
...baseNativeAmount,
|
|
360
370
|
value: data.amount || '0'
|
|
@@ -363,7 +373,7 @@ class TransactionService {
|
|
|
363
373
|
break;
|
|
364
374
|
case _KoniTypes.ExtrinsicType.STAKING_JOIN_POOL:
|
|
365
375
|
{
|
|
366
|
-
const data = (0,
|
|
376
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
367
377
|
historyItem.amount = {
|
|
368
378
|
...baseNativeAmount,
|
|
369
379
|
value: data.amount || '0'
|
|
@@ -373,11 +383,11 @@ class TransactionService {
|
|
|
373
383
|
break;
|
|
374
384
|
case _KoniTypes.ExtrinsicType.STAKING_UNBOND:
|
|
375
385
|
{
|
|
376
|
-
const data = (0,
|
|
386
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
377
387
|
if (data.isLiquidStaking && data.derivativeTokenInfo && data.exchangeRate && data.inputTokenInfo) {
|
|
378
388
|
historyItem.amount = {
|
|
379
|
-
decimals: (0,
|
|
380
|
-
symbol: (0,
|
|
389
|
+
decimals: (0, _utils2._getAssetDecimals)(data.derivativeTokenInfo),
|
|
390
|
+
symbol: (0, _utils2._getAssetSymbol)(data.derivativeTokenInfo),
|
|
381
391
|
value: data.amount
|
|
382
392
|
};
|
|
383
393
|
historyItem.additionalInfo = {
|
|
@@ -395,7 +405,7 @@ class TransactionService {
|
|
|
395
405
|
break;
|
|
396
406
|
case _KoniTypes.ExtrinsicType.STAKING_LEAVE_POOL:
|
|
397
407
|
{
|
|
398
|
-
const data = (0,
|
|
408
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
399
409
|
historyItem.to = data.address || '';
|
|
400
410
|
historyItem.amount = {
|
|
401
411
|
...baseNativeAmount,
|
|
@@ -405,7 +415,7 @@ class TransactionService {
|
|
|
405
415
|
break;
|
|
406
416
|
case _KoniTypes.ExtrinsicType.STAKING_CLAIM_REWARD:
|
|
407
417
|
{
|
|
408
|
-
const data = (0,
|
|
418
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
409
419
|
historyItem.amount = {
|
|
410
420
|
...baseNativeAmount,
|
|
411
421
|
value: data.unclaimedReward || '0'
|
|
@@ -414,7 +424,7 @@ class TransactionService {
|
|
|
414
424
|
break;
|
|
415
425
|
case _KoniTypes.ExtrinsicType.STAKING_WITHDRAW:
|
|
416
426
|
{
|
|
417
|
-
const data = (0,
|
|
427
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
418
428
|
const slug = data.slug;
|
|
419
429
|
const poolHandler = this.state.earningService.getPoolHandler(slug);
|
|
420
430
|
const amount = {
|
|
@@ -434,7 +444,7 @@ class TransactionService {
|
|
|
434
444
|
}
|
|
435
445
|
case _KoniTypes.ExtrinsicType.STAKING_CANCEL_UNSTAKE:
|
|
436
446
|
{
|
|
437
|
-
const data = (0,
|
|
447
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
438
448
|
historyItem.amount = {
|
|
439
449
|
...baseNativeAmount,
|
|
440
450
|
value: data.selectedUnstaking.claimable || '0'
|
|
@@ -444,7 +454,7 @@ class TransactionService {
|
|
|
444
454
|
case _KoniTypes.ExtrinsicType.EVM_EXECUTE:
|
|
445
455
|
{
|
|
446
456
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
447
|
-
const data = (0,
|
|
457
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
448
458
|
|
|
449
459
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access
|
|
450
460
|
historyItem.to = (data === null || data === void 0 ? void 0 : data.to) || '';
|
|
@@ -459,13 +469,13 @@ class TransactionService {
|
|
|
459
469
|
// eslint-disable-next-line no-fallthrough
|
|
460
470
|
case _KoniTypes.ExtrinsicType.MINT_VDOT:
|
|
461
471
|
{
|
|
462
|
-
const params = (0,
|
|
472
|
+
const params = (0, _utils3.parseTransactionData)(transaction.data);
|
|
463
473
|
const inputTokenInfo = this.state.chainService.getAssetBySlug(params.inputTokenSlug);
|
|
464
474
|
const isFeePaidWithInputAsset = params.feeTokenSlug === params.inputTokenSlug;
|
|
465
475
|
historyItem.amount = {
|
|
466
476
|
value: params.amount,
|
|
467
|
-
symbol: (0,
|
|
468
|
-
decimals: (0,
|
|
477
|
+
symbol: (0, _utils2._getAssetSymbol)(inputTokenInfo),
|
|
478
|
+
decimals: (0, _utils2._getAssetDecimals)(inputTokenInfo)
|
|
469
479
|
};
|
|
470
480
|
const additionalInfo = {
|
|
471
481
|
slug: params.slug,
|
|
@@ -473,7 +483,7 @@ class TransactionService {
|
|
|
473
483
|
exchangeRate: params.exchangeRate
|
|
474
484
|
};
|
|
475
485
|
historyItem.additionalInfo = additionalInfo;
|
|
476
|
-
eventLogs && !(0,
|
|
486
|
+
eventLogs && !(0, _utils2._isChainEvmCompatible)(chainInfo) && (0, _eventParser.parseLiquidStakingEvents)(historyItem, eventLogs, inputTokenInfo, chainInfo, isFeePaidWithInputAsset, extrinsicType);
|
|
477
487
|
break;
|
|
478
488
|
}
|
|
479
489
|
case _KoniTypes.ExtrinsicType.UNSTAKE_QDOT:
|
|
@@ -481,15 +491,15 @@ class TransactionService {
|
|
|
481
491
|
// eslint-disable-next-line no-fallthrough
|
|
482
492
|
case _KoniTypes.ExtrinsicType.REDEEM_QDOT:
|
|
483
493
|
{
|
|
484
|
-
const data = (0,
|
|
494
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
485
495
|
const yieldPoolInfo = data.poolInfo;
|
|
486
496
|
if (yieldPoolInfo.metadata.derivativeAssets) {
|
|
487
497
|
const inputTokenSlug = yieldPoolInfo.metadata.inputAsset;
|
|
488
498
|
const inputTokenInfo = this.state.chainService.getAssetBySlug(inputTokenSlug);
|
|
489
499
|
historyItem.amount = {
|
|
490
500
|
value: data.amount,
|
|
491
|
-
symbol: (0,
|
|
492
|
-
decimals: (0,
|
|
501
|
+
symbol: (0, _utils2._getAssetSymbol)(inputTokenInfo),
|
|
502
|
+
decimals: (0, _utils2._getAssetDecimals)(inputTokenInfo)
|
|
493
503
|
};
|
|
494
504
|
eventLogs && (0, _eventParser.parseLiquidStakingFastUnstakeEvents)(historyItem, eventLogs, chainInfo, extrinsicType);
|
|
495
505
|
const additionalInfo = {
|
|
@@ -520,7 +530,7 @@ class TransactionService {
|
|
|
520
530
|
// eslint-disable-next-line no-fallthrough
|
|
521
531
|
case _KoniTypes.ExtrinsicType.REDEEM_VDOT:
|
|
522
532
|
{
|
|
523
|
-
const data = (0,
|
|
533
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
524
534
|
const yieldPoolInfo = data.poolInfo;
|
|
525
535
|
const minAmountPercents = this.state.earningService.getMinAmountPercent();
|
|
526
536
|
if (yieldPoolInfo.metadata.derivativeAssets) {
|
|
@@ -530,10 +540,10 @@ class TransactionService {
|
|
|
530
540
|
const chainInfo = this.state.chainService.getChainInfoByKey(data.poolInfo.chain);
|
|
531
541
|
historyItem.amount = {
|
|
532
542
|
value: data.amount,
|
|
533
|
-
symbol: (0,
|
|
534
|
-
decimals: (0,
|
|
543
|
+
symbol: (0, _utils2._getAssetSymbol)(derivativeTokenInfo),
|
|
544
|
+
decimals: (0, _utils2._getAssetDecimals)(derivativeTokenInfo)
|
|
535
545
|
};
|
|
536
|
-
eventLogs && !(0,
|
|
546
|
+
eventLogs && !(0, _utils2._isChainEvmCompatible)(chainInfo) && (0, _eventParser.parseLiquidStakingFastUnstakeEvents)(historyItem, eventLogs, chainInfo, extrinsicType);
|
|
537
547
|
const minAmountPercent = minAmountPercents[yieldPoolInfo.slug] || 1;
|
|
538
548
|
const inputTokenSlug = yieldPoolInfo.metadata.inputAsset;
|
|
539
549
|
const inputTokenInfo = this.state.chainService.getAssetBySlug(inputTokenSlug);
|
|
@@ -554,23 +564,23 @@ class TransactionService {
|
|
|
554
564
|
}
|
|
555
565
|
case _KoniTypes.ExtrinsicType.TOKEN_SPENDING_APPROVAL:
|
|
556
566
|
{
|
|
557
|
-
const data = (0,
|
|
567
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data);
|
|
558
568
|
const inputAsset = this.state.chainService.getAssetBySlug(data.contractAddress);
|
|
559
569
|
historyItem.amount = {
|
|
560
570
|
value: '0',
|
|
561
|
-
symbol: (0,
|
|
562
|
-
decimals: (0,
|
|
571
|
+
symbol: (0, _utils2._getAssetSymbol)(inputAsset),
|
|
572
|
+
decimals: (0, _utils2._getAssetDecimals)(inputAsset)
|
|
563
573
|
};
|
|
564
574
|
break;
|
|
565
575
|
}
|
|
566
576
|
case _KoniTypes.ExtrinsicType.SWAP:
|
|
567
577
|
{
|
|
568
|
-
const data = (0,
|
|
578
|
+
const data = (0, _utils3.parseTransactionData)(transaction.data); // TODO: switch by provider
|
|
569
579
|
const inputAsset = this.state.chainService.getAssetBySlug(data.quote.pair.from);
|
|
570
580
|
historyItem.amount = {
|
|
571
581
|
value: data.quote.fromAmount,
|
|
572
|
-
symbol: (0,
|
|
573
|
-
decimals: (0,
|
|
582
|
+
symbol: (0, _utils2._getAssetSymbol)(inputAsset),
|
|
583
|
+
decimals: (0, _utils2._getAssetDecimals)(inputAsset)
|
|
574
584
|
};
|
|
575
585
|
historyItem.additionalInfo = data;
|
|
576
586
|
break;
|
|
@@ -590,7 +600,7 @@ class TransactionService {
|
|
|
590
600
|
switch (extrinsicType) {
|
|
591
601
|
case _KoniTypes.ExtrinsicType.TRANSFER_XCM:
|
|
592
602
|
{
|
|
593
|
-
const inputData = (0,
|
|
603
|
+
const inputData = (0, _utils3.parseTransactionData)(transaction.data);
|
|
594
604
|
receiverHistory.chain = inputData.destinationNetworkKey;
|
|
595
605
|
break;
|
|
596
606
|
}
|
|
@@ -651,7 +661,7 @@ class TransactionService {
|
|
|
651
661
|
// must be done after success/failure to make sure the transaction is finalized
|
|
652
662
|
const transaction = this.getTransaction(id);
|
|
653
663
|
if (transaction.extrinsicType === _KoniTypes.ExtrinsicType.SEND_NFT) {
|
|
654
|
-
const inputData = (0,
|
|
664
|
+
const inputData = (0, _utils3.parseTransactionData)(transaction.data);
|
|
655
665
|
try {
|
|
656
666
|
const sender = _uiKeyring.default.getPair(inputData.senderAddress);
|
|
657
667
|
sender && this.state.dbService.handleNftTransfer(transaction.chain, [sender.address, _constants.ALL_ACCOUNT_KEY], inputData.nftItem).then(() => {
|
|
@@ -672,7 +682,7 @@ class TransactionService {
|
|
|
672
682
|
} else if ([_KoniTypes.ExtrinsicType.STAKING_BOND, _KoniTypes.ExtrinsicType.STAKING_UNBOND, _KoniTypes.ExtrinsicType.STAKING_WITHDRAW, _KoniTypes.ExtrinsicType.STAKING_CANCEL_UNSTAKE, _KoniTypes.ExtrinsicType.STAKING_CLAIM_REWARD, _KoniTypes.ExtrinsicType.STAKING_JOIN_POOL, _KoniTypes.ExtrinsicType.STAKING_POOL_WITHDRAW, _KoniTypes.ExtrinsicType.STAKING_LEAVE_POOL].includes(transaction.extrinsicType)) {
|
|
673
683
|
this.state.eventService.emit('transaction.submitStaking', transaction.chain);
|
|
674
684
|
} else if (transaction.extrinsicType === _KoniTypes.ExtrinsicType.SWAP) {
|
|
675
|
-
const inputData = (0,
|
|
685
|
+
const inputData = (0, _utils3.parseTransactionData)(transaction.data);
|
|
676
686
|
const toAssetSlug = inputData.quote.pair.to;
|
|
677
687
|
|
|
678
688
|
// todo: consider async
|
|
@@ -800,30 +810,30 @@ class TransactionService {
|
|
|
800
810
|
generateHashPayload(chain, transaction) {
|
|
801
811
|
const chainInfo = this.state.chainService.getChainInfoByKey(chain);
|
|
802
812
|
let txObject;
|
|
803
|
-
const max = (0,
|
|
813
|
+
const max = (0, _utils4.anyNumberToBN)(transaction.maxFeePerGas);
|
|
804
814
|
if (max.gt(_number.BN_ZERO)) {
|
|
805
815
|
var _transaction$nonce;
|
|
806
816
|
txObject = {
|
|
807
817
|
nonce: (_transaction$nonce = transaction.nonce) !== null && _transaction$nonce !== void 0 ? _transaction$nonce : 0,
|
|
808
|
-
maxFeePerGas: (0, _ethereumjsUtil.addHexPrefix)((0,
|
|
809
|
-
maxPriorityFeePerGas: (0, _ethereumjsUtil.addHexPrefix)((0,
|
|
810
|
-
gasLimit: (0, _ethereumjsUtil.addHexPrefix)((0,
|
|
818
|
+
maxFeePerGas: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.maxFeePerGas).toString(16)),
|
|
819
|
+
maxPriorityFeePerGas: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.maxPriorityFeePerGas).toString(16)),
|
|
820
|
+
gasLimit: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.gas).toString(16)),
|
|
811
821
|
to: transaction.to,
|
|
812
|
-
value: (0, _ethereumjsUtil.addHexPrefix)((0,
|
|
822
|
+
value: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.value).toString(16)),
|
|
813
823
|
data: transaction.data,
|
|
814
|
-
chainId: (0,
|
|
824
|
+
chainId: (0, _utils2._getEvmChainId)(chainInfo),
|
|
815
825
|
type: 2
|
|
816
826
|
};
|
|
817
827
|
} else {
|
|
818
828
|
var _transaction$nonce2;
|
|
819
829
|
txObject = {
|
|
820
830
|
nonce: (_transaction$nonce2 = transaction.nonce) !== null && _transaction$nonce2 !== void 0 ? _transaction$nonce2 : 0,
|
|
821
|
-
gasPrice: (0, _ethereumjsUtil.addHexPrefix)((0,
|
|
822
|
-
gasLimit: (0, _ethereumjsUtil.addHexPrefix)((0,
|
|
831
|
+
gasPrice: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.gasPrice).toString(16)),
|
|
832
|
+
gasLimit: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.gas).toString(16)),
|
|
823
833
|
to: transaction.to,
|
|
824
|
-
value: (0, _ethereumjsUtil.addHexPrefix)((0,
|
|
834
|
+
value: (0, _ethereumjsUtil.addHexPrefix)((0, _utils4.anyNumberToBN)(transaction.value).toString(16)),
|
|
825
835
|
data: transaction.data,
|
|
826
|
-
chainId: (0,
|
|
836
|
+
chainId: (0, _utils2._getEvmChainId)(chainInfo),
|
|
827
837
|
type: 0
|
|
828
838
|
};
|
|
829
839
|
}
|
|
@@ -843,13 +853,7 @@ class TransactionService {
|
|
|
843
853
|
const chainInfo = this.state.chainService.getChainInfoByKey(chain);
|
|
844
854
|
const hasError = !!(payload.errors && payload.errors.length > 0);
|
|
845
855
|
const accountPair = _uiKeyring.default.getPair(address);
|
|
846
|
-
const account =
|
|
847
|
-
address,
|
|
848
|
-
...accountPair.meta
|
|
849
|
-
};
|
|
850
|
-
if (!payload.account) {
|
|
851
|
-
payload.account = account;
|
|
852
|
-
}
|
|
856
|
+
const account = (0, _utils4.pairToAccount)(accountPair);
|
|
853
857
|
|
|
854
858
|
// Allow sign transaction
|
|
855
859
|
payload.canSign = true;
|
|
@@ -865,6 +869,9 @@ class TransactionService {
|
|
|
865
869
|
payload.parseData = payload.data;
|
|
866
870
|
}
|
|
867
871
|
}
|
|
872
|
+
if (!payload.address) {
|
|
873
|
+
payload.address = address;
|
|
874
|
+
}
|
|
868
875
|
if ('data' in payload && payload.data === undefined) {
|
|
869
876
|
delete payload.data;
|
|
870
877
|
}
|
|
@@ -895,12 +902,12 @@ class TransactionService {
|
|
|
895
902
|
const txObject = {
|
|
896
903
|
nonce: (_payload$nonce = payload.nonce) !== null && _payload$nonce !== void 0 ? _payload$nonce : 0,
|
|
897
904
|
from: payload.from,
|
|
898
|
-
gasPrice: (0,
|
|
899
|
-
maxFeePerGas: (0,
|
|
900
|
-
maxPriorityFeePerGas: (0,
|
|
901
|
-
gasLimit: (0,
|
|
905
|
+
gasPrice: (0, _utils4.anyNumberToBN)(payload.gasPrice).toNumber(),
|
|
906
|
+
maxFeePerGas: (0, _utils4.anyNumberToBN)(payload.maxFeePerGas).toNumber(),
|
|
907
|
+
maxPriorityFeePerGas: (0, _utils4.anyNumberToBN)(payload.maxPriorityFeePerGas).toNumber(),
|
|
908
|
+
gasLimit: (0, _utils4.anyNumberToBN)(payload.gas).toNumber(),
|
|
902
909
|
to: payload.to,
|
|
903
|
-
value: (0,
|
|
910
|
+
value: (0, _utils4.anyNumberToBN)(payload.value).toNumber(),
|
|
904
911
|
data: payload.data,
|
|
905
912
|
chainId: payload.chainId
|
|
906
913
|
};
|
|
@@ -953,7 +960,7 @@ class TransactionService {
|
|
|
953
960
|
const onError = error => {
|
|
954
961
|
if (error) {
|
|
955
962
|
// TODO: Change type and message
|
|
956
|
-
eventData.errors.push(new _TransactionError.TransactionError(
|
|
963
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SEND, error.message));
|
|
957
964
|
emitter.emit('error', eventData);
|
|
958
965
|
onComplete();
|
|
959
966
|
reject(error);
|
|
@@ -966,13 +973,13 @@ class TransactionService {
|
|
|
966
973
|
});
|
|
967
974
|
} else {
|
|
968
975
|
this.removeTransaction(id);
|
|
969
|
-
eventData.errors.push(new _TransactionError.TransactionError(
|
|
976
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.USER_REJECT_REQUEST));
|
|
970
977
|
emitter.emit('error', eventData);
|
|
971
978
|
}
|
|
972
979
|
}).catch(e => {
|
|
973
980
|
this.removeTransaction(id);
|
|
974
981
|
// TODO: Change type
|
|
975
|
-
eventData.errors.push(new _TransactionError.TransactionError(
|
|
982
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SIGN, e.message));
|
|
976
983
|
emitter.emit('error', eventData);
|
|
977
984
|
});
|
|
978
985
|
} else {
|
|
@@ -1017,20 +1024,20 @@ class TransactionService {
|
|
|
1017
1024
|
eventData.blockNumber = rs.blockNumber;
|
|
1018
1025
|
emitter.emit('success', eventData);
|
|
1019
1026
|
}).once('error', e => {
|
|
1020
|
-
eventData.errors.push(new _TransactionError.TransactionError(
|
|
1027
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.SEND_TRANSACTION_FAILED, (0, _i18next.t)(e.message)));
|
|
1021
1028
|
emitter.emit('error', eventData);
|
|
1022
1029
|
}).catch(e => {
|
|
1023
|
-
eventData.errors.push(new _TransactionError.TransactionError(
|
|
1030
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SEND, (0, _i18next.t)(e.message)));
|
|
1024
1031
|
emitter.emit('error', eventData);
|
|
1025
1032
|
});
|
|
1026
1033
|
} else {
|
|
1027
1034
|
this.removeTransaction(id);
|
|
1028
|
-
eventData.errors.push(new _TransactionError.TransactionError(
|
|
1035
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.USER_REJECT_REQUEST));
|
|
1029
1036
|
emitter.emit('error', eventData);
|
|
1030
1037
|
}
|
|
1031
1038
|
}).catch(e => {
|
|
1032
1039
|
this.removeTransaction(id);
|
|
1033
|
-
eventData.errors.push(new _TransactionError.TransactionError(
|
|
1040
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SIGN, (0, _i18next.t)(e.message)));
|
|
1034
1041
|
emitter.emit('error', eventData);
|
|
1035
1042
|
});
|
|
1036
1043
|
}
|
|
@@ -1070,7 +1077,7 @@ class TransactionService {
|
|
|
1070
1077
|
},
|
|
1071
1078
|
withSignedTransaction: true
|
|
1072
1079
|
};
|
|
1073
|
-
if ((0,
|
|
1080
|
+
if ((0, _utils4._isRuntimeUpdated)(signedExtensions)) {
|
|
1074
1081
|
const metadataHash = await this.state.chainService.calculateMetadataHash(chain);
|
|
1075
1082
|
if (metadataHash) {
|
|
1076
1083
|
signerOption.mode = 1;
|
|
@@ -1120,7 +1127,7 @@ class TransactionService {
|
|
|
1120
1127
|
}
|
|
1121
1128
|
} = _ref12;
|
|
1122
1129
|
if (method === 'ExtrinsicFailed') {
|
|
1123
|
-
eventData.errors.push(new _TransactionError.TransactionError(
|
|
1130
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.SEND_TRANSACTION_FAILED, error.toString()));
|
|
1124
1131
|
emitter.emit('error', eventData);
|
|
1125
1132
|
} else if (method === 'ExtrinsicSuccess') {
|
|
1126
1133
|
emitter.emit('success', eventData);
|
|
@@ -1128,12 +1135,105 @@ class TransactionService {
|
|
|
1128
1135
|
});
|
|
1129
1136
|
}
|
|
1130
1137
|
}).catch(e => {
|
|
1131
|
-
eventData.errors.push(new _TransactionError.TransactionError(
|
|
1138
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.SEND_TRANSACTION_FAILED, e.message));
|
|
1139
|
+
emitter.emit('error', eventData);
|
|
1140
|
+
});
|
|
1141
|
+
}).catch(e => {
|
|
1142
|
+
this.removeTransaction(id);
|
|
1143
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SIGN, e.message));
|
|
1144
|
+
emitter.emit('error', eventData);
|
|
1145
|
+
});
|
|
1146
|
+
return emitter;
|
|
1147
|
+
}
|
|
1148
|
+
signAndSendTonTransaction(_ref13) {
|
|
1149
|
+
let {
|
|
1150
|
+
address,
|
|
1151
|
+
chain,
|
|
1152
|
+
extrinsicType,
|
|
1153
|
+
id,
|
|
1154
|
+
transaction,
|
|
1155
|
+
url
|
|
1156
|
+
} = _ref13;
|
|
1157
|
+
const walletContract = _uiKeyring.default.getPair(address).ton.currentContract;
|
|
1158
|
+
const emitter = new _eventemitter.default();
|
|
1159
|
+
const eventData = {
|
|
1160
|
+
id,
|
|
1161
|
+
errors: [],
|
|
1162
|
+
warnings: [],
|
|
1163
|
+
extrinsicHash: id
|
|
1164
|
+
};
|
|
1165
|
+
const payload = transaction;
|
|
1166
|
+
const signer = message => {
|
|
1167
|
+
return new Promise(resolve => {
|
|
1168
|
+
this.state.requestService.addConfirmationTon(id, url || _constants2.EXTENSION_REQUEST_URL, 'tonSendTransactionRequest', {
|
|
1169
|
+
...payload,
|
|
1170
|
+
messagePayload: (0, _utils.cellToBase64Str)(message),
|
|
1171
|
+
messages: []
|
|
1172
|
+
}, {}).then(_ref14 => {
|
|
1173
|
+
let {
|
|
1174
|
+
isApproved,
|
|
1175
|
+
payload
|
|
1176
|
+
} = _ref14;
|
|
1177
|
+
if (!isApproved) {
|
|
1178
|
+
this.removeTransaction(id);
|
|
1179
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.USER_REJECT_REQUEST));
|
|
1180
|
+
emitter.emit('error', eventData);
|
|
1181
|
+
} else {
|
|
1182
|
+
if (!payload) {
|
|
1183
|
+
throw new Error('Bad signature');
|
|
1184
|
+
}
|
|
1185
|
+
resolve(Buffer.from((0, _util.hexToU8a)(payload)));
|
|
1186
|
+
}
|
|
1187
|
+
}).catch(e => {
|
|
1188
|
+
this.removeTransaction(id);
|
|
1189
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SIGN, (0, _i18next.t)(e.message)));
|
|
1190
|
+
emitter.emit('error', eventData);
|
|
1191
|
+
});
|
|
1192
|
+
});
|
|
1193
|
+
};
|
|
1194
|
+
const tonTransactionConfig = transaction;
|
|
1195
|
+
const seqno = tonTransactionConfig.seqno;
|
|
1196
|
+
const messages = tonTransactionConfig.messages;
|
|
1197
|
+
const transferObjectPromise = (0, _utils.getTransferCellPromise)(walletContract, signer, payload, seqno, messages);
|
|
1198
|
+
transferObjectPromise.then(tx => {
|
|
1199
|
+
// Emit signed event
|
|
1200
|
+
emitter.emit('signed', eventData);
|
|
1201
|
+
const boc = (0, _utils.externalMessage)(walletContract, seqno, tx).toBoc().toString('base64');
|
|
1202
|
+
this.handleTransactionTimeout(emitter, eventData);
|
|
1203
|
+
emitter.emit('send', eventData); // This event is needed after sending transaction with queue
|
|
1204
|
+
|
|
1205
|
+
const tonApi = this.state.chainService.getTonApi(chain);
|
|
1206
|
+
tonApi.sendTonTransaction(boc).then(externalMsgHash => {
|
|
1207
|
+
// the externalMsgHash is the hash of first message, not the hash of transaction.
|
|
1208
|
+
if (!externalMsgHash) {
|
|
1209
|
+
return;
|
|
1210
|
+
}
|
|
1211
|
+
tonApi.getStatusByExtMsgHash(externalMsgHash, extrinsicType).then(_ref15 => {
|
|
1212
|
+
let [status, hex] = _ref15;
|
|
1213
|
+
if (status && hex) {
|
|
1214
|
+
eventData.extrinsicHash = hex;
|
|
1215
|
+
emitter.emit('extrinsicHash', eventData);
|
|
1216
|
+
emitter.emit('success', eventData);
|
|
1217
|
+
}
|
|
1218
|
+
if (!status && hex) {
|
|
1219
|
+
eventData.extrinsicHash = hex;
|
|
1220
|
+
emitter.emit('extrinsicHash', eventData);
|
|
1221
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.SEND_TRANSACTION_FAILED));
|
|
1222
|
+
emitter.emit('error', eventData);
|
|
1223
|
+
}
|
|
1224
|
+
}).catch(e => {
|
|
1225
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.SEND_TRANSACTION_FAILED, e.message));
|
|
1226
|
+
emitter.emit('error', eventData);
|
|
1227
|
+
});
|
|
1228
|
+
|
|
1229
|
+
// todo: handle status of externalMsgHash
|
|
1230
|
+
}).catch(e => {
|
|
1231
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.SEND_TRANSACTION_FAILED, e.message));
|
|
1132
1232
|
emitter.emit('error', eventData);
|
|
1133
1233
|
});
|
|
1134
1234
|
}).catch(e => {
|
|
1135
1235
|
this.removeTransaction(id);
|
|
1136
|
-
eventData.errors.push(new _TransactionError.TransactionError(
|
|
1236
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNABLE_TO_SIGN, e.message));
|
|
1137
1237
|
emitter.emit('error', eventData);
|
|
1138
1238
|
});
|
|
1139
1239
|
return emitter;
|
|
@@ -1142,7 +1242,7 @@ class TransactionService {
|
|
|
1142
1242
|
const timeout = setTimeout(() => {
|
|
1143
1243
|
const transaction = this.getTransaction(eventData.id);
|
|
1144
1244
|
if (transaction.status !== _KoniTypes.ExtrinsicStatus.SUCCESS && transaction.status !== _KoniTypes.ExtrinsicStatus.FAIL) {
|
|
1145
|
-
eventData.errors.push(new _TransactionError.TransactionError(
|
|
1245
|
+
eventData.errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.TIMEOUT, (0, _i18next.t)('Transaction timeout')));
|
|
1146
1246
|
emitter.emit('timeout', eventData);
|
|
1147
1247
|
clearTimeout(timeout);
|
|
1148
1248
|
}
|
|
@@ -62,10 +62,7 @@ class PolkadotRequestHandler {
|
|
|
62
62
|
address: address,
|
|
63
63
|
data: param.message,
|
|
64
64
|
type: 'bytes'
|
|
65
|
-
}), {
|
|
66
|
-
address,
|
|
67
|
-
...pair.meta
|
|
68
|
-
}, (0, _helpers.getWCId)(id)).then(async _ref => {
|
|
65
|
+
}), (0, _helpers.getWCId)(id)).then(async _ref => {
|
|
69
66
|
let {
|
|
70
67
|
signature
|
|
71
68
|
} = _ref;
|
|
@@ -81,12 +78,7 @@ class PolkadotRequestHandler {
|
|
|
81
78
|
} else if (method === _types.POLKADOT_SIGNING_METHODS.POLKADOT_SIGN_TRANSACTION) {
|
|
82
79
|
const param = (0, _helpers.parseRequestParams)(request.params);
|
|
83
80
|
(0, _classPrivateFieldLooseBase2.default)(this, _checkAccount)[_checkAccount](param.address, sessionAccounts);
|
|
84
|
-
|
|
85
|
-
const address = pair.address;
|
|
86
|
-
(0, _classPrivateFieldLooseBase2.default)(this, _requestService)[_requestService].sign(url, new _RequestExtrinsicSign.default(param.transactionPayload), {
|
|
87
|
-
address,
|
|
88
|
-
...pair.meta
|
|
89
|
-
}, (0, _helpers.getWCId)(id)).then(async _ref2 => {
|
|
81
|
+
(0, _classPrivateFieldLooseBase2.default)(this, _requestService)[_requestService].sign(url, new _RequestExtrinsicSign.default(param.transactionPayload), (0, _helpers.getWCId)(id)).then(async _ref2 => {
|
|
90
82
|
let {
|
|
91
83
|
signature
|
|
92
84
|
} = _ref2;
|