@subwallet/extension-base 1.1.35-beta.2 → 1.1.36-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 +12 -0
- package/background/KoniTypes.js +3 -0
- package/cjs/background/KoniTypes.js +3 -0
- package/cjs/koni/api/nft/config.js +11 -6
- package/cjs/koni/api/nft/index.js +4 -2
- package/cjs/koni/api/nft/transfer.js +7 -19
- package/cjs/koni/api/nft/unique_network_nft/index.js +154 -0
- package/cjs/koni/api/staking/bonding/utils.js +44 -0
- package/cjs/koni/api/tokens/evm/transfer.js +35 -19
- package/cjs/koni/api/yield/helper/utils.js +6 -3
- package/cjs/koni/background/handlers/Extension.js +20 -12
- package/cjs/koni/background/handlers/State.js +15 -5
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/index.js +1 -1
- package/cjs/services/chain-service/constants.js +1 -1
- package/cjs/services/chain-service/index.js +3 -5
- package/cjs/services/earning-service/handlers/liquid-staking/base.js +2 -1
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +2 -1
- package/cjs/services/earning-service/handlers/liquid-staking/index.js +7 -0
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +2 -2
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +10 -2
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +10 -2
- package/cjs/services/earning-service/handlers/special.js +7 -3
- package/cjs/services/earning-service/service.js +38 -14
- package/cjs/services/notification-service/NotificationService.js +7 -4
- package/cjs/services/request-service/handler/EvmRequestHandler.js +46 -29
- package/cjs/services/transaction-service/constants.js +1 -1
- package/cjs/services/transaction-service/index.js +44 -15
- package/cjs/signers/web3/QrSigner.js +2 -0
- package/cjs/types/yield/actions/join/step.js +1 -0
- package/cjs/utils/eth/mergeTransactionAndSignature.js +25 -10
- package/cjs/utils/eth.js +60 -2
- package/cjs/utils/number.js +5 -1
- package/koni/api/nft/config.d.ts +3 -2
- package/koni/api/nft/config.js +8 -3
- package/koni/api/nft/index.js +3 -2
- package/koni/api/nft/transfer.d.ts +0 -1
- package/koni/api/nft/transfer.js +7 -18
- package/koni/api/nft/unique_network_nft/index.d.ts +9 -0
- package/koni/api/nft/unique_network_nft/index.js +146 -0
- package/koni/api/staking/bonding/utils.d.ts +5 -0
- package/koni/api/staking/bonding/utils.js +40 -0
- package/koni/api/tokens/evm/transfer.js +36 -21
- package/koni/api/yield/helper/utils.d.ts +1 -1
- package/koni/api/yield/helper/utils.js +5 -3
- package/koni/background/handlers/Extension.js +21 -13
- package/koni/background/handlers/State.js +16 -6
- package/package.json +21 -12
- package/packageInfo.js +1 -1
- package/services/balance-service/index.js +1 -1
- package/services/chain-service/constants.js +1 -1
- package/services/chain-service/index.js +4 -6
- package/services/earning-service/handlers/liquid-staking/base.d.ts +1 -1
- package/services/earning-service/handlers/liquid-staking/base.js +2 -1
- package/services/earning-service/handlers/liquid-staking/bifrost-manta.d.ts +37 -0
- package/services/earning-service/handlers/liquid-staking/bifrost-manta.js +132 -0
- package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +3 -3
- package/services/earning-service/handlers/liquid-staking/bifrost.js +2 -1
- package/services/earning-service/handlers/liquid-staking/index.d.ts +1 -0
- package/services/earning-service/handlers/liquid-staking/index.js +1 -0
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +2 -2
- package/services/earning-service/handlers/native-staking/relay-chain.js +11 -3
- package/services/earning-service/handlers/nomination-pool/index.js +11 -3
- package/services/earning-service/handlers/special.js +7 -3
- package/services/earning-service/service.d.ts +4 -2
- package/services/earning-service/service.js +40 -16
- package/services/notification-service/NotificationService.js +7 -4
- package/services/request-service/handler/EvmRequestHandler.d.ts +2 -2
- package/services/request-service/handler/EvmRequestHandler.js +46 -29
- package/services/transaction-service/constants.js +1 -1
- package/services/transaction-service/index.js +45 -16
- package/services/transaction-service/types.d.ts +2 -2
- package/signers/types.d.ts +2 -0
- package/signers/web3/QrSigner.js +2 -0
- package/types/yield/actions/join/step.d.ts +1 -0
- package/types/yield/actions/join/step.js +1 -0
- package/utils/eth/mergeTransactionAndSignature.js +25 -10
- package/utils/eth.d.ts +14 -0
- package/utils/eth.js +57 -0
- package/utils/number.d.ts +2 -0
- package/utils/number.js +2 -0
- package/cjs/koni/api/dotsama/balance.js +0 -464
- package/cjs/services/migration-service/scripts/MigrateEthProvider.js +0 -17
- package/cjs/services/migration-service/scripts/MigratePioneerProvider.js +0 -17
- package/cjs/services/migration-service/scripts/MigrateProvider.js +0 -29
- package/cjs/services/storage-service/index.js +0 -241
- package/cjs/types.js +0 -1
- package/cjs/utils/address.js +0 -34
- package/cjs/utils/keyring.js +0 -57
|
@@ -371,16 +371,19 @@ export declare enum ExtrinsicType {
|
|
|
371
371
|
MINT_SDOT = "earn.mint_sdot",
|
|
372
372
|
MINT_QDOT = "earn.mint_qdot",
|
|
373
373
|
MINT_STDOT = "earn.mint_stdot",
|
|
374
|
+
MINT_VMANTA = "earn.mint_vmanta",
|
|
374
375
|
REDEEM_QDOT = "earn.redeem_qdot",
|
|
375
376
|
REDEEM_VDOT = "earn.redeem_vdot",
|
|
376
377
|
REDEEM_LDOT = "earn.redeem_ldot",
|
|
377
378
|
REDEEM_SDOT = "earn.redeem_sdot",
|
|
378
379
|
REDEEM_STDOT = "earn.redeem_stdot",
|
|
380
|
+
REDEEM_VMANTA = "earn.redeem_vmanta",
|
|
379
381
|
UNSTAKE_QDOT = "earn.unstake_qdot",
|
|
380
382
|
UNSTAKE_VDOT = "earn.unstake_vdot",
|
|
381
383
|
UNSTAKE_LDOT = "earn.unstake_ldot",
|
|
382
384
|
UNSTAKE_SDOT = "earn.unstake_sdot",
|
|
383
385
|
UNSTAKE_STDOT = "earn.unstake_stdot",
|
|
386
|
+
UNSTAKE_VMANTA = "earn.unstake_vmanta",
|
|
384
387
|
TOKEN_APPROVE = "evm.token_approve",
|
|
385
388
|
EVM_EXECUTE = "evm.execute",
|
|
386
389
|
UNKNOWN = "unknown"
|
|
@@ -407,16 +410,19 @@ export interface ExtrinsicDataTypeMap {
|
|
|
407
410
|
[ExtrinsicType.MINT_QDOT]: SubmitYieldStepData;
|
|
408
411
|
[ExtrinsicType.MINT_STDOT]: SubmitYieldStepData;
|
|
409
412
|
[ExtrinsicType.MINT_STDOT]: SubmitYieldStepData;
|
|
413
|
+
[ExtrinsicType.MINT_VMANTA]: SubmitYieldStepData;
|
|
410
414
|
[ExtrinsicType.UNSTAKE_VDOT]: RequestYieldLeave;
|
|
411
415
|
[ExtrinsicType.UNSTAKE_QDOT]: RequestYieldLeave;
|
|
412
416
|
[ExtrinsicType.UNSTAKE_LDOT]: RequestYieldLeave;
|
|
413
417
|
[ExtrinsicType.UNSTAKE_SDOT]: RequestYieldLeave;
|
|
414
418
|
[ExtrinsicType.UNSTAKE_STDOT]: RequestYieldLeave;
|
|
419
|
+
[ExtrinsicType.UNSTAKE_VMANTA]: RequestYieldLeave;
|
|
415
420
|
[ExtrinsicType.REDEEM_VDOT]: RequestYieldLeave;
|
|
416
421
|
[ExtrinsicType.REDEEM_QDOT]: RequestYieldLeave;
|
|
417
422
|
[ExtrinsicType.REDEEM_LDOT]: RequestYieldLeave;
|
|
418
423
|
[ExtrinsicType.REDEEM_SDOT]: RequestYieldLeave;
|
|
419
424
|
[ExtrinsicType.REDEEM_STDOT]: RequestYieldLeave;
|
|
425
|
+
[ExtrinsicType.REDEEM_VMANTA]: RequestYieldLeave;
|
|
420
426
|
[ExtrinsicType.TOKEN_APPROVE]: TokenApproveData;
|
|
421
427
|
[ExtrinsicType.EVM_EXECUTE]: TransactionConfig;
|
|
422
428
|
[ExtrinsicType.CROWDLOAN]: any;
|
|
@@ -455,6 +461,9 @@ export interface BasicTokenInfo {
|
|
|
455
461
|
export interface AmountData extends BasicTokenInfo {
|
|
456
462
|
value: string;
|
|
457
463
|
}
|
|
464
|
+
export interface FeeData extends AmountData {
|
|
465
|
+
tooHigh?: boolean;
|
|
466
|
+
}
|
|
458
467
|
export interface AmountDataWithId extends AmountData {
|
|
459
468
|
id: string;
|
|
460
469
|
}
|
|
@@ -470,16 +479,19 @@ export declare type TransactionAdditionalInfo = {
|
|
|
470
479
|
[ExtrinsicType.TRANSFER_XCM]: XCMTransactionAdditionalInfo;
|
|
471
480
|
[ExtrinsicType.SEND_NFT]: NFTTransactionAdditionalInfo;
|
|
472
481
|
[ExtrinsicType.MINT_VDOT]: Pick<SubmitYieldStepData, 'derivativeTokenSlug' | 'exchangeRate' | 'slug'>;
|
|
482
|
+
[ExtrinsicType.MINT_VMANTA]: Pick<SubmitYieldStepData, 'derivativeTokenSlug' | 'exchangeRate' | 'slug'>;
|
|
473
483
|
[ExtrinsicType.MINT_QDOT]: Pick<SubmitYieldStepData, 'derivativeTokenSlug' | 'exchangeRate' | 'slug'>;
|
|
474
484
|
[ExtrinsicType.MINT_SDOT]: Pick<SubmitYieldStepData, 'derivativeTokenSlug' | 'exchangeRate' | 'slug'>;
|
|
475
485
|
[ExtrinsicType.MINT_LDOT]: Pick<SubmitYieldStepData, 'derivativeTokenSlug' | 'exchangeRate' | 'slug'>;
|
|
476
486
|
[ExtrinsicType.MINT_STDOT]: Pick<SubmitYieldStepData, 'derivativeTokenSlug' | 'exchangeRate' | 'slug'>;
|
|
477
487
|
[ExtrinsicType.REDEEM_VDOT]: LeavePoolAdditionalData;
|
|
488
|
+
[ExtrinsicType.REDEEM_VMANTA]: LeavePoolAdditionalData;
|
|
478
489
|
[ExtrinsicType.REDEEM_QDOT]: LeavePoolAdditionalData;
|
|
479
490
|
[ExtrinsicType.REDEEM_SDOT]: LeavePoolAdditionalData;
|
|
480
491
|
[ExtrinsicType.REDEEM_LDOT]: LeavePoolAdditionalData;
|
|
481
492
|
[ExtrinsicType.REDEEM_STDOT]: LeavePoolAdditionalData;
|
|
482
493
|
[ExtrinsicType.UNSTAKE_VDOT]: LeavePoolAdditionalData;
|
|
494
|
+
[ExtrinsicType.UNSTAKE_VMANTA]: LeavePoolAdditionalData;
|
|
483
495
|
[ExtrinsicType.UNSTAKE_QDOT]: LeavePoolAdditionalData;
|
|
484
496
|
[ExtrinsicType.UNSTAKE_SDOT]: LeavePoolAdditionalData;
|
|
485
497
|
[ExtrinsicType.UNSTAKE_LDOT]: LeavePoolAdditionalData;
|
package/background/KoniTypes.js
CHANGED
|
@@ -81,16 +81,19 @@ export let ExtrinsicType;
|
|
|
81
81
|
ExtrinsicType["MINT_SDOT"] = "earn.mint_sdot";
|
|
82
82
|
ExtrinsicType["MINT_QDOT"] = "earn.mint_qdot";
|
|
83
83
|
ExtrinsicType["MINT_STDOT"] = "earn.mint_stdot";
|
|
84
|
+
ExtrinsicType["MINT_VMANTA"] = "earn.mint_vmanta";
|
|
84
85
|
ExtrinsicType["REDEEM_QDOT"] = "earn.redeem_qdot";
|
|
85
86
|
ExtrinsicType["REDEEM_VDOT"] = "earn.redeem_vdot";
|
|
86
87
|
ExtrinsicType["REDEEM_LDOT"] = "earn.redeem_ldot";
|
|
87
88
|
ExtrinsicType["REDEEM_SDOT"] = "earn.redeem_sdot";
|
|
88
89
|
ExtrinsicType["REDEEM_STDOT"] = "earn.redeem_stdot";
|
|
90
|
+
ExtrinsicType["REDEEM_VMANTA"] = "earn.redeem_vmanta";
|
|
89
91
|
ExtrinsicType["UNSTAKE_QDOT"] = "earn.unstake_qdot";
|
|
90
92
|
ExtrinsicType["UNSTAKE_VDOT"] = "earn.unstake_vdot";
|
|
91
93
|
ExtrinsicType["UNSTAKE_LDOT"] = "earn.unstake_ldot";
|
|
92
94
|
ExtrinsicType["UNSTAKE_SDOT"] = "earn.unstake_sdot";
|
|
93
95
|
ExtrinsicType["UNSTAKE_STDOT"] = "earn.unstake_stdot";
|
|
96
|
+
ExtrinsicType["UNSTAKE_VMANTA"] = "earn.unstake_vmanta";
|
|
94
97
|
ExtrinsicType["TOKEN_APPROVE"] = "evm.token_approve";
|
|
95
98
|
ExtrinsicType["EVM_EXECUTE"] = "evm.execute";
|
|
96
99
|
ExtrinsicType["UNKNOWN"] = "unknown";
|
|
@@ -95,16 +95,19 @@ exports.ExtrinsicType = ExtrinsicType;
|
|
|
95
95
|
ExtrinsicType["MINT_SDOT"] = "earn.mint_sdot";
|
|
96
96
|
ExtrinsicType["MINT_QDOT"] = "earn.mint_qdot";
|
|
97
97
|
ExtrinsicType["MINT_STDOT"] = "earn.mint_stdot";
|
|
98
|
+
ExtrinsicType["MINT_VMANTA"] = "earn.mint_vmanta";
|
|
98
99
|
ExtrinsicType["REDEEM_QDOT"] = "earn.redeem_qdot";
|
|
99
100
|
ExtrinsicType["REDEEM_VDOT"] = "earn.redeem_vdot";
|
|
100
101
|
ExtrinsicType["REDEEM_LDOT"] = "earn.redeem_ldot";
|
|
101
102
|
ExtrinsicType["REDEEM_SDOT"] = "earn.redeem_sdot";
|
|
102
103
|
ExtrinsicType["REDEEM_STDOT"] = "earn.redeem_stdot";
|
|
104
|
+
ExtrinsicType["REDEEM_VMANTA"] = "earn.redeem_vmanta";
|
|
103
105
|
ExtrinsicType["UNSTAKE_QDOT"] = "earn.unstake_qdot";
|
|
104
106
|
ExtrinsicType["UNSTAKE_VDOT"] = "earn.unstake_vdot";
|
|
105
107
|
ExtrinsicType["UNSTAKE_LDOT"] = "earn.unstake_ldot";
|
|
106
108
|
ExtrinsicType["UNSTAKE_SDOT"] = "earn.unstake_sdot";
|
|
107
109
|
ExtrinsicType["UNSTAKE_STDOT"] = "earn.unstake_stdot";
|
|
110
|
+
ExtrinsicType["UNSTAKE_VMANTA"] = "earn.unstake_vmanta";
|
|
108
111
|
ExtrinsicType["TOKEN_APPROVE"] = "evm.token_approve";
|
|
109
112
|
ExtrinsicType["EVM_EXECUTE"] = "evm.execute";
|
|
110
113
|
ExtrinsicType["UNKNOWN"] = "unknown";
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.W3S_IPFS = exports.VARA_SCAN_ENDPOINT = exports.UNIQUE_SCAN_ENDPOINT = exports.UNIQUE_IPFS_GATEWAY = exports.TRANSFER_CHAIN_ID = exports.SUPPORTED_TRANSFER_SUBSTRATE_CHAIN_NAME = exports.SUPPORTED_TRANSFER_EVM_CHAIN_NAME = exports.SUPPORTED_TRANSFER_EVM_CHAIN = exports.SUPPORTED_NFT_NETWORKS = exports.SUBWALLET_IPFS = exports.SINGULAR_V2_ENDPOINT = exports.SINGULAR_V2_COLLECTION_ENDPOINT = exports.SINGULAR_V1_ENDPOINT = exports.SINGULAR_V1_COLLECTION_ENDPOINT = exports.RMRK_PINATA_SERVER = exports.QUARTZ_SCAN_ENDPOINT = exports.PINATA_IPFS_GATEWAY = exports.NFT_STORAGE_GATEWAY = exports.KANARIA_EXTERNAL_SERVER = exports.KANARIA_ENDPOINT = exports.IPFS_W3S_LINK = exports.IPFS_IO = exports.IPFS_GATEWAY_4EVERLAND = exports.IPFS_FLEEK = exports.IPFS_ETH_ARAGON = exports.IPFS2_RMRK = exports.GATEWAY_IPFS_IO = exports.DWEB_LINK = exports.CLOUDFLARE_PINATA_SERVER = exports.CF_IPFS_GATEWAY = exports.BIT_COUNTRY_THUMBNAIL_RESOLVER = exports.BIT_COUNTRY_LAND_ESTATE_METADATA_API = exports.BIT_COUNTRY_IPFS_SERVER = void 0;
|
|
7
|
+
exports.W3S_IPFS = exports.VARA_SCAN_ENDPOINT = exports.UNIQUE_SCAN_ENDPOINT = exports.UNIQUE_IPFS_GATEWAY = exports.TRANSFER_CHAIN_ID = exports.SUPPORTED_TRANSFER_SUBSTRATE_CHAIN_NAME = exports.SUPPORTED_TRANSFER_EVM_CHAIN_NAME = exports.SUPPORTED_TRANSFER_EVM_CHAIN = exports.SUPPORTED_NFT_NETWORKS = exports.SUBWALLET_IPFS = exports.SINGULAR_V2_ENDPOINT = exports.SINGULAR_V2_COLLECTION_ENDPOINT = exports.SINGULAR_V1_ENDPOINT = exports.SINGULAR_V1_COLLECTION_ENDPOINT = exports.RMRK_PINATA_SERVER = exports.QUARTZ_SCAN_ENDPOINT = exports.PINATA_IPFS_GATEWAY = exports.OPAL_SCAN_ENDPOINT = exports.NFT_STORAGE_GATEWAY = exports.KANARIA_EXTERNAL_SERVER = exports.KANARIA_ENDPOINT = exports.IPFS_W3S_LINK = exports.IPFS_IO = exports.IPFS_GATEWAY_4EVERLAND = exports.IPFS_FLEEK = exports.IPFS_ETH_ARAGON = exports.IPFS2_RMRK = exports.GATEWAY_IPFS_IO = exports.DWEB_LINK = exports.CLOUDFLARE_PINATA_SERVER = exports.CF_IPFS_GATEWAY = exports.BIT_COUNTRY_THUMBNAIL_RESOLVER = exports.BIT_COUNTRY_LAND_ESTATE_METADATA_API = exports.BIT_COUNTRY_IPFS_SERVER = void 0;
|
|
8
8
|
exports.getRandomIpfsGateway = getRandomIpfsGateway;
|
|
9
9
|
var _storage = require("@subwallet/extension-base/storage");
|
|
10
10
|
var _utils = require("@subwallet/extension-base/utils");
|
|
@@ -41,15 +41,20 @@ const CF_IPFS_GATEWAY = 'https://cf-ipfs.com/ipfs/';
|
|
|
41
41
|
// XOrigin
|
|
42
42
|
exports.CF_IPFS_GATEWAY = CF_IPFS_GATEWAY;
|
|
43
43
|
const PINATA_IPFS_GATEWAY = 'https://gateway.pinata.cloud/ipfs/';
|
|
44
|
+
|
|
45
|
+
// deprecated
|
|
46
|
+
// export const UNIQUE_SCAN_ENDPOINT = 'https://explorer-api.unique.network/v1/graphql';
|
|
47
|
+
// export const QUARTZ_SCAN_ENDPOINT = 'https://hasura-quartz.unique.network/v1/graphql';
|
|
44
48
|
exports.PINATA_IPFS_GATEWAY = PINATA_IPFS_GATEWAY;
|
|
45
|
-
const
|
|
49
|
+
const VARA_SCAN_ENDPOINT = 'https://nft-explorer.vara-network.io/graphql';
|
|
50
|
+
exports.VARA_SCAN_ENDPOINT = VARA_SCAN_ENDPOINT;
|
|
51
|
+
const UNIQUE_SCAN_ENDPOINT = 'https://api-unique.uniquescan.io/v1/graphql';
|
|
46
52
|
exports.UNIQUE_SCAN_ENDPOINT = UNIQUE_SCAN_ENDPOINT;
|
|
47
|
-
const QUARTZ_SCAN_ENDPOINT = 'https://
|
|
53
|
+
const QUARTZ_SCAN_ENDPOINT = 'https://api-quartz.uniquescan.io/v1/graphql';
|
|
48
54
|
exports.QUARTZ_SCAN_ENDPOINT = QUARTZ_SCAN_ENDPOINT;
|
|
49
|
-
const
|
|
50
|
-
|
|
55
|
+
const OPAL_SCAN_ENDPOINT = 'https://api-opal.uniquescan.io/v1/graphql';
|
|
51
56
|
// GATEWAY
|
|
52
|
-
exports.
|
|
57
|
+
exports.OPAL_SCAN_ENDPOINT = OPAL_SCAN_ENDPOINT;
|
|
53
58
|
const UNIQUE_IPFS_GATEWAY = 'https://ipfs.unique.network/ipfs/';
|
|
54
59
|
|
|
55
60
|
// XOrigin
|
|
@@ -12,7 +12,7 @@ var _karura_nft = require("@subwallet/extension-base/koni/api/nft/karura_nft");
|
|
|
12
12
|
var _ordinal_nft = _interopRequireDefault(require("@subwallet/extension-base/koni/api/nft/ordinal_nft"));
|
|
13
13
|
var _rmrk_nft = require("@subwallet/extension-base/koni/api/nft/rmrk_nft");
|
|
14
14
|
var _statemine_nft = _interopRequireDefault(require("@subwallet/extension-base/koni/api/nft/statemine_nft"));
|
|
15
|
-
var
|
|
15
|
+
var _unique_network_nft = require("@subwallet/extension-base/koni/api/nft/unique_network_nft");
|
|
16
16
|
var _vara_nft = require("@subwallet/extension-base/koni/api/nft/vara_nft");
|
|
17
17
|
var _wasm_nft = require("@subwallet/extension-base/koni/api/nft/wasm_nft");
|
|
18
18
|
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
@@ -22,6 +22,8 @@ var _statemint_nft = _interopRequireDefault(require("./statemint_nft"));
|
|
|
22
22
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
23
23
|
// SPDX-License-Identifier: Apache-2.0
|
|
24
24
|
|
|
25
|
+
// import UniqueNftApi from '@subwallet/extension-base/koni/api/nft/unique_nft';
|
|
26
|
+
|
|
25
27
|
function createSubstrateNftApi(chain, substrateApi, addresses) {
|
|
26
28
|
const [substrateAddresses] = (0, _utils2.categoryAddresses)(addresses);
|
|
27
29
|
if (_constants._NFT_CHAIN_GROUP.acala.includes(chain)) {
|
|
@@ -35,7 +37,7 @@ function createSubstrateNftApi(chain, substrateApi, addresses) {
|
|
|
35
37
|
} else if (_constants._NFT_CHAIN_GROUP.statemint.includes(chain)) {
|
|
36
38
|
return new _statemint_nft.default(substrateApi, substrateAddresses, chain);
|
|
37
39
|
} else if (_constants._NFT_CHAIN_GROUP.unique_network.includes(chain)) {
|
|
38
|
-
return new
|
|
40
|
+
return new _unique_network_nft.UniqueNftApi(chain, substrateAddresses);
|
|
39
41
|
} else if (_constants._NFT_CHAIN_GROUP.bitcountry.includes(chain)) {
|
|
40
42
|
return new _bit.BitCountryNftApi(substrateApi, substrateAddresses, chain);
|
|
41
43
|
} else if (_constants._NFT_CHAIN_GROUP.vara.includes(chain)) {
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.acalaGetExtrinsic = acalaGetExtrinsic;
|
|
7
7
|
exports.getNftTransferExtrinsic = getNftTransferExtrinsic;
|
|
8
8
|
exports.isRecipientSelf = isRecipientSelf;
|
|
9
|
-
exports.quartzGetExtrinsic = quartzGetExtrinsic;
|
|
10
9
|
exports.rmrkGetExtrinsic = rmrkGetExtrinsic;
|
|
11
10
|
exports.statemineGetExtrinsic = statemineGetExtrinsic;
|
|
12
11
|
exports.statemintGetExtrinsic = statemintGetExtrinsic;
|
|
@@ -43,18 +42,6 @@ function rmrkGetExtrinsic(substrateApi, senderAddress, recipientAddress, params)
|
|
|
43
42
|
}
|
|
44
43
|
}
|
|
45
44
|
function uniqueGetExtrinsic(substrateApi, senderAddress, recipientAddress, params) {
|
|
46
|
-
try {
|
|
47
|
-
const itemId = params.itemId;
|
|
48
|
-
const collectionId = params.collectionId;
|
|
49
|
-
return substrateApi.api.tx.nft.transfer({
|
|
50
|
-
Substrate: recipientAddress
|
|
51
|
-
}, collectionId, itemId, 1);
|
|
52
|
-
} catch (e) {
|
|
53
|
-
console.error(e);
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
function quartzGetExtrinsic(substrateApi, senderAddress, recipientAddress, params) {
|
|
58
45
|
try {
|
|
59
46
|
const itemId = params.itemId;
|
|
60
47
|
const collectionId = params.collectionId;
|
|
@@ -94,12 +81,13 @@ function getNftTransferExtrinsic(networkKey, substrateApi, senderAddress, recipi
|
|
|
94
81
|
return acalaGetExtrinsic(substrateApi, senderAddress, recipientAddress, params);
|
|
95
82
|
case _config.SUPPORTED_TRANSFER_SUBSTRATE_CHAIN_NAME.kusama:
|
|
96
83
|
return rmrkGetExtrinsic(substrateApi, senderAddress, recipientAddress, params);
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
84
|
+
// temporary prevent send nfts on Unique network-based chains
|
|
85
|
+
// case SUPPORTED_TRANSFER_SUBSTRATE_CHAIN_NAME.uniqueNft:
|
|
86
|
+
// return uniqueGetExtrinsic(substrateApi, senderAddress, recipientAddress, params);
|
|
87
|
+
// case SUPPORTED_TRANSFER_SUBSTRATE_CHAIN_NAME.quartz:
|
|
88
|
+
// return uniqueGetExtrinsic(substrateApi, senderAddress, recipientAddress, params);
|
|
89
|
+
// case SUPPORTED_TRANSFER_SUBSTRATE_CHAIN_NAME.opal:
|
|
90
|
+
// return uniqueGetExtrinsic(substrateApi, senderAddress, recipientAddress, params);
|
|
103
91
|
case _config.SUPPORTED_TRANSFER_SUBSTRATE_CHAIN_NAME.statemine:
|
|
104
92
|
return statemineGetExtrinsic(substrateApi, senderAddress, recipientAddress, params);
|
|
105
93
|
case _config.SUPPORTED_TRANSFER_SUBSTRATE_CHAIN_NAME.statemint:
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.UniqueNftApi = void 0;
|
|
8
|
+
var _config = require("@subwallet/extension-base/koni/api/nft/config");
|
|
9
|
+
var _nft = require("@subwallet/extension-base/koni/api/nft/nft");
|
|
10
|
+
var _crossFetch = _interopRequireDefault(require("cross-fetch"));
|
|
11
|
+
var _utilCrypto = require("@polkadot/util-crypto");
|
|
12
|
+
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
13
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
14
|
+
|
|
15
|
+
class UniqueNftApi extends _nft.BaseNftApi {
|
|
16
|
+
constructor(chain, addresses) {
|
|
17
|
+
super(chain, undefined, addresses);
|
|
18
|
+
}
|
|
19
|
+
handleProperties(nft) {
|
|
20
|
+
const propertiesMap = {};
|
|
21
|
+
const attRecord = nft.attributes;
|
|
22
|
+
if (attRecord) {
|
|
23
|
+
for (const item in attRecord) {
|
|
24
|
+
if (attRecord[item].name._.toLowerCase() === 'traits') {
|
|
25
|
+
const traits = [];
|
|
26
|
+
const traitValues = attRecord[item].value;
|
|
27
|
+
for (const trait in traitValues) {
|
|
28
|
+
traits.push(traitValues[trait]._);
|
|
29
|
+
}
|
|
30
|
+
propertiesMap.traits = {
|
|
31
|
+
value: traits
|
|
32
|
+
};
|
|
33
|
+
} else {
|
|
34
|
+
propertiesMap[attRecord[item].name._] = {
|
|
35
|
+
value: attRecord[item].value._
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return propertiesMap;
|
|
41
|
+
}
|
|
42
|
+
static parseNftRequest(uniqueAddress) {
|
|
43
|
+
return {
|
|
44
|
+
query: `
|
|
45
|
+
query {
|
|
46
|
+
tokens(
|
|
47
|
+
limit: 99999
|
|
48
|
+
offset: 0
|
|
49
|
+
where: { owner: { _eq: "${uniqueAddress}" }, burned: { _eq: "false" }})
|
|
50
|
+
{
|
|
51
|
+
data {
|
|
52
|
+
collection_id
|
|
53
|
+
collection_name
|
|
54
|
+
collection_description
|
|
55
|
+
collection_cover
|
|
56
|
+
token_id
|
|
57
|
+
token_name
|
|
58
|
+
image
|
|
59
|
+
attributes
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
`
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
async getNftByAccount(address) {
|
|
67
|
+
var _result$data, _result$data$tokens;
|
|
68
|
+
let endpoint = '';
|
|
69
|
+
let uniqueAddress = '';
|
|
70
|
+
|
|
71
|
+
// Use exactly endpoint for each network
|
|
72
|
+
if (['unique_network'].includes(this.chain)) {
|
|
73
|
+
endpoint = _config.UNIQUE_SCAN_ENDPOINT;
|
|
74
|
+
uniqueAddress = (0, _utilCrypto.encodeAddress)((0, _utilCrypto.decodeAddress)(address), 7391);
|
|
75
|
+
// Unique network prefix: 7391
|
|
76
|
+
} else if (['quartz'].includes(this.chain)) {
|
|
77
|
+
endpoint = _config.QUARTZ_SCAN_ENDPOINT;
|
|
78
|
+
uniqueAddress = (0, _utilCrypto.encodeAddress)((0, _utilCrypto.decodeAddress)(address), 255);
|
|
79
|
+
// Quartz prefix: 255
|
|
80
|
+
} else if (['opal'].includes(this.chain)) {
|
|
81
|
+
endpoint = _config.OPAL_SCAN_ENDPOINT;
|
|
82
|
+
uniqueAddress = address;
|
|
83
|
+
// Opal address: Normal address
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const resp = await (0, _crossFetch.default)(endpoint, {
|
|
87
|
+
method: 'post',
|
|
88
|
+
headers: {
|
|
89
|
+
'Content-Type': 'application/json'
|
|
90
|
+
},
|
|
91
|
+
body: JSON.stringify(UniqueNftApi.parseNftRequest(uniqueAddress))
|
|
92
|
+
});
|
|
93
|
+
const result = await resp.json();
|
|
94
|
+
|
|
95
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
96
|
+
return result === null || result === void 0 ? void 0 : (_result$data = result.data) === null || _result$data === void 0 ? void 0 : (_result$data$tokens = _result$data.tokens) === null || _result$data$tokens === void 0 ? void 0 : _result$data$tokens.data;
|
|
97
|
+
}
|
|
98
|
+
async handleNfts(params) {
|
|
99
|
+
try {
|
|
100
|
+
await Promise.all(this.addresses.map(async address => {
|
|
101
|
+
const nfts = await this.getNftByAccount(address);
|
|
102
|
+
if (nfts) {
|
|
103
|
+
const collectionMap = {};
|
|
104
|
+
for (const nft of nfts) {
|
|
105
|
+
var _nft$image;
|
|
106
|
+
// Handle case rendering image on Quartz Network (Temporary solution)
|
|
107
|
+
if (this.chain === 'quartz' && nft.collection_id.toString() === '141') {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Handle properties
|
|
112
|
+
const propertiesMap = this.handleProperties(nft);
|
|
113
|
+
|
|
114
|
+
// Update Nft information
|
|
115
|
+
const parsedNft = {
|
|
116
|
+
id: nft.token_id.toString(),
|
|
117
|
+
chain: this.chain,
|
|
118
|
+
owner: address,
|
|
119
|
+
name: nft.token_name,
|
|
120
|
+
image: this.parseUrl((_nft$image = nft.image) === null || _nft$image === void 0 ? void 0 : _nft$image.fullUrl),
|
|
121
|
+
description: nft.collection_description,
|
|
122
|
+
collectionId: nft.collection_id.toString(),
|
|
123
|
+
properties: propertiesMap
|
|
124
|
+
};
|
|
125
|
+
params.updateItem(this.chain, parsedNft, address);
|
|
126
|
+
|
|
127
|
+
// Update Collection information
|
|
128
|
+
if (!collectionMap[nft.collection_id.toString()]) {
|
|
129
|
+
const parsedCollection = {
|
|
130
|
+
collectionId: nft.collection_id.toString(),
|
|
131
|
+
chain: this.chain,
|
|
132
|
+
collectionName: nft.collection_name,
|
|
133
|
+
image: this.parseUrl(nft.collection_cover)
|
|
134
|
+
};
|
|
135
|
+
collectionMap[nft.collection_id.toString()] = parsedCollection;
|
|
136
|
+
params.updateCollection(this.chain, parsedCollection);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}));
|
|
141
|
+
} catch (e) {
|
|
142
|
+
console.error(`Failed to fetch ${this.chain} nft`, e);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
async fetchNfts(params) {
|
|
146
|
+
try {
|
|
147
|
+
await this.handleNfts(params);
|
|
148
|
+
} catch (e) {
|
|
149
|
+
return 0;
|
|
150
|
+
}
|
|
151
|
+
return 1;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.UniqueNftApi = UniqueNftApi;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
@@ -8,9 +9,11 @@ exports.calcInflationRewardCurve = calcInflationRewardCurve;
|
|
|
8
9
|
exports.calcInflationUniformEraPayout = calcInflationUniformEraPayout;
|
|
9
10
|
exports.calculateAlephZeroValidatorReturn = calculateAlephZeroValidatorReturn;
|
|
10
11
|
exports.calculateChainStakedReturn = calculateChainStakedReturn;
|
|
12
|
+
exports.calculateChainStakedReturnV2 = calculateChainStakedReturnV2;
|
|
11
13
|
exports.calculateInflation = calculateInflation;
|
|
12
14
|
exports.calculateTernoaValidatorReturn = calculateTernoaValidatorReturn;
|
|
13
15
|
exports.calculateValidatorStakedReturn = calculateValidatorStakedReturn;
|
|
16
|
+
exports.getAvgValidatorEraReward = getAvgValidatorEraReward;
|
|
14
17
|
exports.getBondedValidators = getBondedValidators;
|
|
15
18
|
exports.getCommission = getCommission;
|
|
16
19
|
exports.getEarningStatusByNominations = getEarningStatusByNominations;
|
|
@@ -20,6 +23,7 @@ exports.getMinStakeErrorMessage = exports.getMaxValidatorErrorMessage = void 0;
|
|
|
20
23
|
exports.getParaCurrentInflation = getParaCurrentInflation;
|
|
21
24
|
exports.getStakingAvailableActionsByChain = getStakingAvailableActionsByChain;
|
|
22
25
|
exports.getStakingAvailableActionsByNominator = getStakingAvailableActionsByNominator;
|
|
26
|
+
exports.getSupportedDaysByHistoryDepth = getSupportedDaysByHistoryDepth;
|
|
23
27
|
exports.getValidatorLabel = getValidatorLabel;
|
|
24
28
|
exports.getWithdrawalInfo = getWithdrawalInfo;
|
|
25
29
|
exports.getYieldAvailableActionsByPosition = getYieldAvailableActionsByPosition;
|
|
@@ -37,6 +41,7 @@ var _constants2 = require("@subwallet/extension-base/services/earning-service/co
|
|
|
37
41
|
var _types = require("@subwallet/extension-base/types");
|
|
38
42
|
var _utils2 = require("@subwallet/extension-base/utils");
|
|
39
43
|
var _number = require("@subwallet/extension-base/utils/number");
|
|
44
|
+
var _bignumber = _interopRequireDefault(require("bignumber.js"));
|
|
40
45
|
var _i18next = require("i18next");
|
|
41
46
|
var _util = require("@polkadot/util");
|
|
42
47
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
@@ -102,6 +107,24 @@ function calculateChainStakedReturn(inflation, totalEraStake, totalIssuance, net
|
|
|
102
107
|
|
|
103
108
|
return stakedReturn;
|
|
104
109
|
}
|
|
110
|
+
function calculateChainStakedReturnV2(chainInfo, totalIssuance, erasPerDay, lastTotalStaked, validatorEraReward, isCompound) {
|
|
111
|
+
const DAYS_PER_YEAR = 365;
|
|
112
|
+
// @ts-ignore
|
|
113
|
+
const DECIMAL = chainInfo.substrateInfo.decimals;
|
|
114
|
+
const lastTotalStakedUnit = new _bignumber.default(lastTotalStaked).dividedBy(new _bignumber.default(10 ** DECIMAL));
|
|
115
|
+
const totalIssuanceUnit = new _bignumber.default(totalIssuance).dividedBy(new _bignumber.default(10 ** DECIMAL));
|
|
116
|
+
const supplyStaked = lastTotalStakedUnit.dividedBy(totalIssuanceUnit);
|
|
117
|
+
const dayRewardRate = validatorEraReward.multipliedBy(erasPerDay).dividedBy(totalIssuance).multipliedBy(100);
|
|
118
|
+
let inflationToStakers = new _bignumber.default(0);
|
|
119
|
+
if (!isCompound) {
|
|
120
|
+
inflationToStakers = dayRewardRate.multipliedBy(DAYS_PER_YEAR);
|
|
121
|
+
} else {
|
|
122
|
+
const multiplier = dayRewardRate.dividedBy(100).plus(1).exponentiatedBy(365);
|
|
123
|
+
inflationToStakers = new _bignumber.default(100).multipliedBy(multiplier).minus(100);
|
|
124
|
+
}
|
|
125
|
+
const averageRewardRate = inflationToStakers.dividedBy(supplyStaked);
|
|
126
|
+
return averageRewardRate.toNumber();
|
|
127
|
+
}
|
|
105
128
|
function calculateAlephZeroValidatorReturn(chainStakedReturn, commission) {
|
|
106
129
|
return chainStakedReturn * (100 - commission) / 100;
|
|
107
130
|
}
|
|
@@ -343,6 +366,27 @@ function getValidatorLabel(chain) {
|
|
|
343
366
|
}
|
|
344
367
|
return 'Collator';
|
|
345
368
|
}
|
|
369
|
+
function getAvgValidatorEraReward(supportedDays, eraRewardHistory) {
|
|
370
|
+
let sumEraReward = new _bignumber.default(0);
|
|
371
|
+
let failEra = 0;
|
|
372
|
+
for (const _item of eraRewardHistory) {
|
|
373
|
+
const item = _item.toString();
|
|
374
|
+
if (!item) {
|
|
375
|
+
failEra += 1;
|
|
376
|
+
} else {
|
|
377
|
+
const eraReward = new _bignumber.default(item);
|
|
378
|
+
sumEraReward = sumEraReward.plus(eraReward);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
return sumEraReward.dividedBy(new _bignumber.default(supportedDays - failEra));
|
|
382
|
+
}
|
|
383
|
+
function getSupportedDaysByHistoryDepth(erasPerDay, maxSupportedEras) {
|
|
384
|
+
if (maxSupportedEras / erasPerDay > 30) {
|
|
385
|
+
return 30;
|
|
386
|
+
} else {
|
|
387
|
+
return 15;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
346
390
|
const getMinStakeErrorMessage = (chainInfo, bnMinStake) => {
|
|
347
391
|
const tokenInfo = (0, _utils._getChainNativeTokenBasicInfo)(chainInfo);
|
|
348
392
|
const number = (0, _number.formatNumber)(bnMinStake.toString(), tokenInfo.decimals || 0, _number.balanceFormatter);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
@@ -12,6 +13,7 @@ var _web = require("@subwallet/extension-base/koni/api/tokens/evm/web3");
|
|
|
12
13
|
var _constants = require("@subwallet/extension-base/services/chain-service/constants");
|
|
13
14
|
var _helper = require("@subwallet/extension-base/services/chain-service/helper");
|
|
14
15
|
var _eth = require("@subwallet/extension-base/utils/eth");
|
|
16
|
+
var _bignumber = _interopRequireDefault(require("bignumber.js"));
|
|
15
17
|
var _util = require("@polkadot/util");
|
|
16
18
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
17
19
|
// SPDX-License-Identifier: Apache-2.0
|
|
@@ -45,20 +47,29 @@ const handleTransferBalanceResult = _ref => {
|
|
|
45
47
|
};
|
|
46
48
|
exports.handleTransferBalanceResult = handleTransferBalanceResult;
|
|
47
49
|
async function getEVMTransactionObject(chainInfo, from, to, value, transferAll, evmApiMap) {
|
|
50
|
+
var _priority$maxFeePerGa, _priority$maxPriority;
|
|
48
51
|
const networkKey = chainInfo.slug;
|
|
49
52
|
const web3Api = evmApiMap[networkKey];
|
|
50
|
-
const
|
|
51
|
-
const gasPrice = (0, _eth.recalculateGasPrice)(_price, chainInfo.slug);
|
|
53
|
+
const priority = await (0, _eth.calculateGasFeeParams)(web3Api, networkKey);
|
|
52
54
|
const transactionObject = {
|
|
53
|
-
gasPrice: gasPrice,
|
|
54
55
|
to: to,
|
|
55
56
|
value: value,
|
|
56
|
-
from: from
|
|
57
|
+
from: from,
|
|
58
|
+
gasPrice: priority.gasPrice,
|
|
59
|
+
maxFeePerGas: (_priority$maxFeePerGa = priority.maxFeePerGas) === null || _priority$maxFeePerGa === void 0 ? void 0 : _priority$maxFeePerGa.toString(),
|
|
60
|
+
maxPriorityFeePerGas: (_priority$maxPriority = priority.maxPriorityFeePerGas) === null || _priority$maxPriority === void 0 ? void 0 : _priority$maxPriority.toString()
|
|
57
61
|
};
|
|
58
62
|
const gasLimit = await web3Api.api.eth.estimateGas(transactionObject);
|
|
59
63
|
transactionObject.gas = gasLimit;
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
let estimateFee;
|
|
65
|
+
if (priority.baseGasFee) {
|
|
66
|
+
const priorityFee = priority.baseGasFee.plus(priority.maxPriorityFeePerGas);
|
|
67
|
+
const maxFee = priority.maxFeePerGas.gte(priorityFee) ? priority.maxFeePerGas : priorityFee;
|
|
68
|
+
estimateFee = maxFee.multipliedBy(gasLimit);
|
|
69
|
+
} else {
|
|
70
|
+
estimateFee = new _bignumber.default(priority.gasPrice).multipliedBy(gasLimit);
|
|
71
|
+
}
|
|
72
|
+
transactionObject.value = transferAll ? new _bignumber.default(value).minus(estimateFee).toString() : value;
|
|
62
73
|
if (_constants.EVM_REFORMAT_DECIMALS.acala.includes(networkKey)) {
|
|
63
74
|
const numberReplace = 18 - 12;
|
|
64
75
|
transactionObject.value = transactionObject.value.substring(0, transactionObject.value.length - 6) + new Array(numberReplace).fill('0').join('');
|
|
@@ -66,53 +77,58 @@ async function getEVMTransactionObject(chainInfo, from, to, value, transferAll,
|
|
|
66
77
|
return [transactionObject, transactionObject.value.toString()];
|
|
67
78
|
}
|
|
68
79
|
async function getERC20TransactionObject(assetAddress, chainInfo, from, to, value, transferAll, evmApiMap) {
|
|
80
|
+
var _priority$maxFeePerGa2, _priority$maxPriority2;
|
|
69
81
|
const networkKey = chainInfo.slug;
|
|
70
82
|
const evmApi = evmApiMap[networkKey];
|
|
71
83
|
const erc20Contract = (0, _web.getERC20Contract)(networkKey, assetAddress, evmApiMap);
|
|
72
|
-
let freeAmount = new
|
|
84
|
+
let freeAmount = new _bignumber.default(0);
|
|
73
85
|
let transferValue = value;
|
|
74
86
|
if (transferAll) {
|
|
75
87
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
76
88
|
const bal = await erc20Contract.methods.balanceOf(from).call();
|
|
77
|
-
freeAmount = new
|
|
78
|
-
transferValue = freeAmount.
|
|
89
|
+
freeAmount = new _bignumber.default(bal || '0');
|
|
90
|
+
transferValue = freeAmount.toFixed(0) || '0';
|
|
79
91
|
}
|
|
80
92
|
function generateTransferData(to, transferValue) {
|
|
81
93
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
82
94
|
return erc20Contract.methods.transfer(to, transferValue).encodeABI();
|
|
83
95
|
}
|
|
84
96
|
const transferData = generateTransferData(to, transferValue);
|
|
85
|
-
const [gasLimit,
|
|
97
|
+
const [gasLimit, priority] = await Promise.all([
|
|
86
98
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
87
99
|
erc20Contract.methods.transfer(to, transferValue).estimateGas({
|
|
88
100
|
from
|
|
89
|
-
}),
|
|
90
|
-
const gasPrice = (0, _eth.recalculateGasPrice)(_price, chainInfo.slug);
|
|
101
|
+
}), (0, _eth.calculateGasFeeParams)(evmApi, networkKey)]);
|
|
91
102
|
const transactionObject = {
|
|
92
|
-
gasPrice: gasPrice,
|
|
93
103
|
gas: gasLimit,
|
|
94
104
|
from,
|
|
105
|
+
value: '0',
|
|
95
106
|
to: assetAddress,
|
|
96
|
-
data: transferData
|
|
107
|
+
data: transferData,
|
|
108
|
+
gasPrice: priority.gasPrice,
|
|
109
|
+
maxFeePerGas: (_priority$maxFeePerGa2 = priority.maxFeePerGas) === null || _priority$maxFeePerGa2 === void 0 ? void 0 : _priority$maxFeePerGa2.toString(),
|
|
110
|
+
maxPriorityFeePerGas: (_priority$maxPriority2 = priority.maxPriorityFeePerGas) === null || _priority$maxPriority2 === void 0 ? void 0 : _priority$maxPriority2.toString()
|
|
97
111
|
};
|
|
98
112
|
if (transferAll) {
|
|
99
|
-
transferValue =
|
|
113
|
+
transferValue = freeAmount.toFixed(0);
|
|
100
114
|
transactionObject.data = generateTransferData(to, transferValue);
|
|
101
115
|
}
|
|
102
116
|
return [transactionObject, transferValue];
|
|
103
117
|
}
|
|
104
118
|
async function getERC721Transaction(web3Api, chain, contractAddress, senderAddress, recipientAddress, tokenId) {
|
|
119
|
+
var _priority$maxFeePerGa3, _priority$maxPriority3;
|
|
105
120
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
106
121
|
const contract = new web3Api.api.eth.Contract(_helper._ERC721_ABI, contractAddress);
|
|
107
|
-
const [gasLimit,
|
|
122
|
+
const [gasLimit, priority] = await Promise.all([
|
|
108
123
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
|
|
109
124
|
contract.methods.safeTransferFrom(senderAddress, recipientAddress, tokenId).estimateGas({
|
|
110
125
|
from: senderAddress
|
|
111
|
-
}),
|
|
112
|
-
const gasPrice = (0, _eth.recalculateGasPrice)(_price, chain);
|
|
126
|
+
}), (0, _eth.calculateGasFeeParams)(web3Api, chain)]);
|
|
113
127
|
return {
|
|
114
128
|
from: senderAddress,
|
|
115
|
-
gasPrice,
|
|
129
|
+
gasPrice: priority.gasPrice,
|
|
130
|
+
maxFeePerGas: (_priority$maxFeePerGa3 = priority.maxFeePerGas) === null || _priority$maxFeePerGa3 === void 0 ? void 0 : _priority$maxFeePerGa3.toString(),
|
|
131
|
+
maxPriorityFeePerGas: (_priority$maxPriority3 = priority.maxPriorityFeePerGas) === null || _priority$maxPriority3 === void 0 ? void 0 : _priority$maxPriority3.toString(),
|
|
116
132
|
gas: gasLimit,
|
|
117
133
|
to: contractAddress,
|
|
118
134
|
value: '0x00',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
@@ -10,6 +11,8 @@ exports.syntheticSelectedValidators = void 0;
|
|
|
10
11
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
11
12
|
var _utils = require("@subwallet/extension-base/services/chain-service/utils");
|
|
12
13
|
var _types = require("@subwallet/extension-base/types");
|
|
14
|
+
var _utils2 = require("@subwallet/extension-base/utils");
|
|
15
|
+
var _bignumber = _interopRequireDefault(require("bignumber.js"));
|
|
13
16
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
14
17
|
// SPDX-License-Identifier: Apache-2.0
|
|
15
18
|
|
|
@@ -40,7 +43,7 @@ function convertDerivativeToOriginToken(amount, poolInfo, derivativeTokenInfo, o
|
|
|
40
43
|
const derivativeDecimals = (0, _utils._getAssetDecimals)(derivativeTokenInfo);
|
|
41
44
|
const originDecimals = (0, _utils._getAssetDecimals)(originTokenInfo);
|
|
42
45
|
const exchangeRate = ((_poolInfo$statistic = poolInfo.statistic) === null || _poolInfo$statistic === void 0 ? void 0 : (_poolInfo$statistic$a = _poolInfo$statistic.assetEarning) === null || _poolInfo$statistic$a === void 0 ? void 0 : _poolInfo$statistic$a[0].exchangeRate) || 1;
|
|
43
|
-
const formattedAmount =
|
|
44
|
-
const minAmount = formattedAmount
|
|
45
|
-
return
|
|
46
|
+
const formattedAmount = new _bignumber.default(amount).dividedBy(_utils2.BN_TEN.pow(derivativeDecimals)); // TODO: decimals
|
|
47
|
+
const minAmount = formattedAmount.multipliedBy(exchangeRate);
|
|
48
|
+
return minAmount.multipliedBy(_utils2.BN_TEN.pow(originDecimals)).toFixed(0);
|
|
46
49
|
}
|