@subwallet/extension-base 1.3.31-1 → 1.3.32-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 +70 -3
- package/background/KoniTypes.js +14 -0
- package/background/errors/CardanoProviderError.d.ts +6 -0
- package/background/errors/CardanoProviderError.js +61 -0
- package/background/types.d.ts +2 -2
- package/cjs/background/KoniTypes.js +16 -1
- package/cjs/background/errors/CardanoProviderError.js +67 -0
- package/cjs/constants/index.js +4 -1
- package/cjs/core/logic-validation/request.js +50 -3
- package/cjs/koni/api/contract-handler/evm/web3.js +21 -0
- package/cjs/koni/api/staking/bonding/utils.js +24 -3
- package/cjs/koni/background/handlers/Extension.js +115 -107
- package/cjs/koni/background/handlers/State.js +228 -5
- package/cjs/koni/background/handlers/Tabs.js +277 -55
- package/cjs/packageInfo.js +1 -1
- package/cjs/page/cardano/cips/cip30.js +63 -0
- package/cjs/page/cardano/cips/index.js +20 -0
- package/cjs/page/cardano/index.js +41 -0
- package/cjs/page/{SubWalleEvmProvider.js → evm/index.js} +2 -2
- package/cjs/page/index.js +9 -4
- package/cjs/services/balance-service/transfer/xcm/acrossBridge/index.js +6 -2
- package/cjs/services/balance-service/transfer/xcm/index.js +2 -0
- package/cjs/services/chain-service/handler/CardanoApi.js +33 -0
- package/cjs/services/chain-service/index.js +31 -0
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +3 -3
- package/cjs/services/earning-service/handlers/native-staking/dtao.js +2 -2
- package/cjs/services/earning-service/handlers/native-staking/mythos.js +42 -8
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +1 -1
- package/cjs/services/earning-service/handlers/native-staking/tao.js +13 -13
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +1 -1
- package/cjs/services/migration-service/scripts/MigrateAuthUrls.js +1 -1
- package/cjs/services/request-service/constants.js +3 -1
- package/cjs/services/request-service/handler/AuthRequestHandler.js +38 -5
- package/cjs/services/request-service/handler/CardanoRequestHandler.js +45 -3
- package/cjs/services/request-service/helper/index.js +419 -1
- package/cjs/services/swap-service/handler/asset-hub/handler.js +1 -1
- package/cjs/services/swap-service/handler/base-handler.js +81 -21
- package/cjs/services/swap-service/handler/hydradx-handler.js +1 -1
- package/cjs/services/swap-service/handler/uniswap-handler.js +274 -45
- package/cjs/services/swap-service/index.js +33 -11
- package/cjs/services/swap-service/utils.js +15 -2
- package/cjs/utils/auth.js +2 -1
- package/cjs/utils/cardano.js +20 -0
- package/cjs/utils/index.js +4 -4
- package/constants/index.d.ts +1 -0
- package/constants/index.js +1 -0
- package/core/logic-validation/request.d.ts +6 -2
- package/core/logic-validation/request.js +51 -5
- package/koni/api/contract-handler/evm/web3.d.ts +2 -0
- package/koni/api/contract-handler/evm/web3.js +19 -0
- package/koni/api/staking/bonding/utils.d.ts +2 -1
- package/koni/api/staking/bonding/utils.js +23 -3
- package/koni/background/handlers/Extension.js +7 -2
- package/koni/background/handlers/State.d.ts +6 -1
- package/koni/background/handlers/State.js +223 -4
- package/koni/background/handlers/Tabs.d.ts +11 -1
- package/koni/background/handlers/Tabs.js +242 -19
- package/package.json +62 -42
- package/packageInfo.js +1 -1
- package/page/cardano/cips/cip30.d.ts +22 -0
- package/page/cardano/cips/cip30.js +55 -0
- package/page/cardano/cips/index.d.ts +3 -0
- package/page/cardano/cips/index.js +7 -0
- package/page/cardano/index.d.ts +13 -0
- package/page/cardano/index.js +34 -0
- package/page/{SubWalleEvmProvider.d.ts → evm/index.d.ts} +3 -2
- package/page/{SubWalleEvmProvider.js → evm/index.js} +1 -1
- package/page/index.d.ts +3 -2
- package/page/index.js +6 -2
- package/page/{Accounts.d.ts → substrate/Accounts.d.ts} +1 -1
- package/page/{Metadata.d.ts → substrate/Metadata.d.ts} +1 -1
- package/page/{PostMessageProvider.d.ts → substrate/PostMessageProvider.d.ts} +1 -1
- package/page/{Signer.d.ts → substrate/Signer.d.ts} +1 -1
- package/page/{Injected.d.ts → substrate/index.d.ts} +1 -1
- package/services/balance-service/helpers/subscribe/cardano/types.d.ts +14 -0
- package/services/balance-service/transfer/xcm/acrossBridge/index.d.ts +4 -0
- package/services/balance-service/transfer/xcm/acrossBridge/index.js +4 -1
- package/services/balance-service/transfer/xcm/index.js +2 -0
- package/services/chain-service/handler/CardanoApi.d.ts +3 -1
- package/services/chain-service/handler/CardanoApi.js +33 -0
- package/services/chain-service/index.d.ts +5 -1
- package/services/chain-service/index.js +32 -1
- package/services/chain-service/utils/patch.js +1 -1
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +3 -3
- package/services/earning-service/handlers/native-staking/dtao.js +2 -2
- package/services/earning-service/handlers/native-staking/mythos.js +42 -8
- package/services/earning-service/handlers/native-staking/relay-chain.js +1 -1
- package/services/earning-service/handlers/native-staking/tao.js +14 -14
- package/services/earning-service/handlers/nomination-pool/index.js +1 -1
- package/services/migration-service/scripts/MigrateAuthUrls.js +1 -1
- package/services/request-service/constants.js +3 -1
- package/services/request-service/handler/AuthRequestHandler.js +40 -7
- package/services/request-service/handler/CardanoRequestHandler.d.ts +2 -0
- package/services/request-service/handler/CardanoRequestHandler.js +45 -3
- package/services/request-service/helper/index.d.ts +54 -0
- package/services/request-service/helper/index.js +406 -1
- package/services/request-service/types.d.ts +3 -1
- package/services/swap-service/handler/asset-hub/handler.js +1 -1
- package/services/swap-service/handler/base-handler.d.ts +3 -1
- package/services/swap-service/handler/base-handler.js +82 -22
- package/services/swap-service/handler/hydradx-handler.js +1 -1
- package/services/swap-service/handler/uniswap-handler.d.ts +5 -0
- package/services/swap-service/handler/uniswap-handler.js +275 -46
- package/services/swap-service/index.js +34 -12
- package/services/swap-service/utils.d.ts +3 -2
- package/services/swap-service/utils.js +13 -1
- package/types/swap/index.d.ts +1 -0
- package/types/transaction/process.d.ts +2 -0
- package/utils/auth.js +3 -2
- package/utils/cardano.d.ts +2 -0
- package/utils/cardano.js +12 -0
- package/utils/index.d.ts +1 -1
- package/utils/index.js +1 -1
- package/cjs/utils/canDerive.js +0 -12
- package/utils/canDerive.d.ts +0 -2
- package/utils/canDerive.js +0 -6
- /package/cjs/page/{Accounts.js → substrate/Accounts.js} +0 -0
- /package/cjs/page/{Metadata.js → substrate/Metadata.js} +0 -0
- /package/cjs/page/{PostMessageProvider.js → substrate/PostMessageProvider.js} +0 -0
- /package/cjs/page/{Signer.js → substrate/Signer.js} +0 -0
- /package/cjs/page/{Injected.js → substrate/index.js} +0 -0
- /package/page/{Accounts.js → substrate/Accounts.js} +0 -0
- /package/page/{Metadata.js → substrate/Metadata.js} +0 -0
- /package/page/{PostMessageProvider.js → substrate/PostMessageProvider.js} +0 -0
- /package/page/{Signer.js → substrate/Signer.js} +0 -0
- /package/page/{Injected.js → substrate/index.js} +0 -0
|
@@ -4,6 +4,7 @@ import { Resolver } from '@subwallet/extension-base/background/handlers/State';
|
|
|
4
4
|
import { AccountAuthType, AuthorizeRequest, ConfirmationRequestBase, RequestAccountList, RequestAccountSubscribe, RequestAccountUnsubscribe, RequestAuthorizeCancel, RequestAuthorizeReject, RequestAuthorizeSubscribe, RequestAuthorizeTab, RequestCurrentAccountAddress, ResponseAuthorizeList } from '@subwallet/extension-base/background/types';
|
|
5
5
|
import { AppConfig, BrowserConfig, OSConfig } from '@subwallet/extension-base/constants';
|
|
6
6
|
import { RequestOptimalTransferProcess } from '@subwallet/extension-base/services/balance-service/helpers';
|
|
7
|
+
import { CardanoBalanceItem } from '@subwallet/extension-base/services/balance-service/helpers/subscribe/cardano/types';
|
|
7
8
|
import { CardanoTransactionConfig } from '@subwallet/extension-base/services/balance-service/transfer/cardano-transfer';
|
|
8
9
|
import { TonTransactionConfig } from '@subwallet/extension-base/services/balance-service/transfer/ton-transfer';
|
|
9
10
|
import { _CHAIN_VALIDATION_ERROR } from '@subwallet/extension-base/services/chain-service/handler/types';
|
|
@@ -848,7 +849,7 @@ export interface TonSignRequest {
|
|
|
848
849
|
canSign: boolean;
|
|
849
850
|
}
|
|
850
851
|
export interface CardanoSignRequest {
|
|
851
|
-
|
|
852
|
+
address: string;
|
|
852
853
|
hashPayload: string;
|
|
853
854
|
canSign: boolean;
|
|
854
855
|
}
|
|
@@ -870,7 +871,7 @@ export interface TonSignatureRequest extends TonSignRequest {
|
|
|
870
871
|
}
|
|
871
872
|
export interface CardanoSignatureRequest extends CardanoSignRequest {
|
|
872
873
|
id: string;
|
|
873
|
-
|
|
874
|
+
errors?: ErrorValidation[];
|
|
874
875
|
payload: unknown;
|
|
875
876
|
}
|
|
876
877
|
export interface EvmSendTransactionRequest extends TransactionConfig, EvmSignRequest {
|
|
@@ -879,8 +880,64 @@ export interface EvmSendTransactionRequest extends TransactionConfig, EvmSignReq
|
|
|
879
880
|
isToContract: boolean;
|
|
880
881
|
errors?: ErrorValidation[];
|
|
881
882
|
}
|
|
883
|
+
export declare enum CardanoProviderErrorType {
|
|
884
|
+
INVALID_REQUEST = "INVALID_REQUEST",
|
|
885
|
+
REFUSED_REQUEST = "REFUSED_REQUEST",
|
|
886
|
+
ACCOUNT_CHANGED = "ACCOUNT_CHANGED",
|
|
887
|
+
INTERNAL_ERROR = "INTERNAL_ERROR",
|
|
888
|
+
PROOF_GENERATION_FAILED = "PROOF_GENERATION_FAILED",
|
|
889
|
+
ADDRESS_SIGN_NOT_PK = "ADDRESS_SIGN_NOT_PK",
|
|
890
|
+
SIGN_DATA_DECLINED = "SIGN_DATA_DECLINED",
|
|
891
|
+
SUBMIT_TRANSACTION_REFUSED = "SUBMIT_TRANSACTION_REFUSED",
|
|
892
|
+
SUBMIT_TRANSACTION_FAILURE = "SUBMIT_TRANSACTION_FAILURE",
|
|
893
|
+
SIGN_TRANSACTION_DECLINED = "SIGN_TRANSACTION_DECLINED"
|
|
894
|
+
}
|
|
895
|
+
export declare type Cbor = string;
|
|
896
|
+
export declare type CardanoPaginate = {
|
|
897
|
+
page: number;
|
|
898
|
+
limit: number;
|
|
899
|
+
};
|
|
900
|
+
export interface RequestCardanoGetUtxos {
|
|
901
|
+
amount?: Cbor;
|
|
902
|
+
paginate?: CardanoPaginate;
|
|
903
|
+
}
|
|
904
|
+
export interface RequestCardanoGetCollateral {
|
|
905
|
+
amount: Cbor;
|
|
906
|
+
}
|
|
907
|
+
export interface RequestCardanoSignData {
|
|
908
|
+
address: string;
|
|
909
|
+
payload: string;
|
|
910
|
+
}
|
|
911
|
+
export interface ResponseCardanoSignData {
|
|
912
|
+
signature: Cbor;
|
|
913
|
+
key: Cbor;
|
|
914
|
+
}
|
|
915
|
+
export interface RequestCardanoSignTransaction {
|
|
916
|
+
tx: Cbor;
|
|
917
|
+
partialSign: boolean;
|
|
918
|
+
}
|
|
919
|
+
export interface AddressCardanoTransactionBalance {
|
|
920
|
+
values: CardanoBalanceItem[];
|
|
921
|
+
isOwner?: boolean;
|
|
922
|
+
isRecipient?: boolean;
|
|
923
|
+
}
|
|
924
|
+
export declare type CardanoKeyType = 'stake' | 'payment';
|
|
925
|
+
export interface CardanoTransactionDappConfig {
|
|
926
|
+
txInputs: Record<string, AddressCardanoTransactionBalance>;
|
|
927
|
+
txOutputs: Record<string, AddressCardanoTransactionBalance>;
|
|
928
|
+
networkKey: string;
|
|
929
|
+
from: string;
|
|
930
|
+
addressRequireKeyTypes: CardanoKeyType[];
|
|
931
|
+
value: CardanoBalanceItem[];
|
|
932
|
+
estimateCardanoFee: string;
|
|
933
|
+
cardanoPayload: string;
|
|
934
|
+
errors?: ErrorValidation[];
|
|
935
|
+
id: string;
|
|
936
|
+
}
|
|
937
|
+
export declare type ResponseCardanoSignTransaction = Cbor;
|
|
882
938
|
export declare type TonSendTransactionRequest = TonTransactionConfig;
|
|
883
939
|
export declare type CardanoSendTransactionRequest = CardanoTransactionConfig;
|
|
940
|
+
export declare type CardanoSignTransactionRequest = CardanoTransactionDappConfig;
|
|
884
941
|
export declare type EvmWatchTransactionRequest = EvmSendTransactionRequest;
|
|
885
942
|
export declare type TonWatchTransactionRequest = TonSendTransactionRequest;
|
|
886
943
|
export declare type CardanoWatchTransactionRequest = CardanoSendTransactionRequest;
|
|
@@ -941,8 +998,9 @@ export interface ConfirmationDefinitionsTon {
|
|
|
941
998
|
tonWatchTransactionRequest: [ConfirmationsQueueItem<TonWatchTransactionRequest>, ConfirmationResult<string>];
|
|
942
999
|
}
|
|
943
1000
|
export interface ConfirmationDefinitionsCardano {
|
|
944
|
-
cardanoSignatureRequest: [ConfirmationsQueueItem<CardanoSignatureRequest>, ConfirmationResult<
|
|
1001
|
+
cardanoSignatureRequest: [ConfirmationsQueueItem<CardanoSignatureRequest>, ConfirmationResult<ResponseCardanoSignData>];
|
|
945
1002
|
cardanoSendTransactionRequest: [ConfirmationsQueueItem<CardanoSendTransactionRequest>, ConfirmationResult<string>];
|
|
1003
|
+
cardanoSignTransactionRequest: [ConfirmationsQueueItem<CardanoSignTransactionRequest>, ConfirmationResult<string>];
|
|
946
1004
|
cardanoWatchTransactionRequest: [ConfirmationsQueueItem<CardanoWatchTransactionRequest>, ConfirmationResult<string>];
|
|
947
1005
|
}
|
|
948
1006
|
export declare type ConfirmationType = keyof ConfirmationDefinitions;
|
|
@@ -1741,6 +1799,15 @@ export interface KoniRequestSignatures {
|
|
|
1741
1799
|
'evm(events.subscribe)': [RequestEvmEvents, boolean, EvmEvent];
|
|
1742
1800
|
'evm(request)': [RequestArguments, unknown];
|
|
1743
1801
|
'evm(provider.send)': [RequestEvmProviderSend, string | number, ResponseEvmProviderSend];
|
|
1802
|
+
'cardano(account.get.address)': [null, string[]];
|
|
1803
|
+
'cardano(account.get.balance)': [null, Cbor];
|
|
1804
|
+
'cardano(account.get.change.address)': [null, string];
|
|
1805
|
+
'cardano(account.get.utxos)': [RequestCardanoGetUtxos, Cbor[] | null];
|
|
1806
|
+
'cardano(account.get.collateral)': [RequestCardanoGetCollateral, Cbor[] | null];
|
|
1807
|
+
'cardano(network.get.current)': [null, number];
|
|
1808
|
+
'cardano(data.sign)': [RequestCardanoSignData, ResponseCardanoSignData];
|
|
1809
|
+
'cardano(transaction.sign)': [RequestCardanoSignTransaction, ResponseCardanoSignTransaction];
|
|
1810
|
+
'cardano(transaction.submit)': [Cbor, string];
|
|
1744
1811
|
'pri(evm.transaction.parse.input)': [RequestParseEvmContractInput, ResponseParseEvmContractInput];
|
|
1745
1812
|
'pri(authorize.subscribe)': [null, AuthUrls, AuthUrls];
|
|
1746
1813
|
'pri(signing.approve.passwordV2)': [RequestSigningApprovePasswordV2, boolean];
|
package/background/KoniTypes.js
CHANGED
|
@@ -185,6 +185,20 @@ export let EvmProviderErrorType;
|
|
|
185
185
|
EvmProviderErrorType["INVALID_PARAMS"] = "INVALID_PARAMS";
|
|
186
186
|
EvmProviderErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
|
|
187
187
|
})(EvmProviderErrorType || (EvmProviderErrorType = {}));
|
|
188
|
+
// Cardano Request Dapp Input
|
|
189
|
+
export let CardanoProviderErrorType;
|
|
190
|
+
(function (CardanoProviderErrorType) {
|
|
191
|
+
CardanoProviderErrorType["INVALID_REQUEST"] = "INVALID_REQUEST";
|
|
192
|
+
CardanoProviderErrorType["REFUSED_REQUEST"] = "REFUSED_REQUEST";
|
|
193
|
+
CardanoProviderErrorType["ACCOUNT_CHANGED"] = "ACCOUNT_CHANGED";
|
|
194
|
+
CardanoProviderErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
|
|
195
|
+
CardanoProviderErrorType["PROOF_GENERATION_FAILED"] = "PROOF_GENERATION_FAILED";
|
|
196
|
+
CardanoProviderErrorType["ADDRESS_SIGN_NOT_PK"] = "ADDRESS_SIGN_NOT_PK";
|
|
197
|
+
CardanoProviderErrorType["SIGN_DATA_DECLINED"] = "SIGN_DATA_DECLINED";
|
|
198
|
+
CardanoProviderErrorType["SUBMIT_TRANSACTION_REFUSED"] = "SUBMIT_TRANSACTION_REFUSED";
|
|
199
|
+
CardanoProviderErrorType["SUBMIT_TRANSACTION_FAILURE"] = "SUBMIT_TRANSACTION_FAILURE";
|
|
200
|
+
CardanoProviderErrorType["SIGN_TRANSACTION_DECLINED"] = "SIGN_TRANSACTION_DECLINED";
|
|
201
|
+
})(CardanoProviderErrorType || (CardanoProviderErrorType = {}));
|
|
188
202
|
export let NotificationType;
|
|
189
203
|
(function (NotificationType) {
|
|
190
204
|
NotificationType["INFO"] = "info";
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SWError } from '@subwallet/extension-base/background/errors/SWError';
|
|
2
|
+
import { CardanoProviderErrorType } from '@subwallet/extension-base/background/KoniTypes';
|
|
3
|
+
export declare class CardanoProviderError extends SWError {
|
|
4
|
+
errorType: CardanoProviderErrorType;
|
|
5
|
+
constructor(errorType: CardanoProviderErrorType, errMessage?: string, data?: unknown, name?: string);
|
|
6
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import { SWError } from '@subwallet/extension-base/background/errors/SWError';
|
|
5
|
+
import { t } from 'i18next';
|
|
6
|
+
|
|
7
|
+
// doc: https://github.com/cardano-foundation/CIPs/blob/master/CIP-0030/README.md#error-types
|
|
8
|
+
|
|
9
|
+
const defaultErrorMap = {
|
|
10
|
+
INVALID_REQUEST: {
|
|
11
|
+
message: 'Invalid request',
|
|
12
|
+
code: -1
|
|
13
|
+
},
|
|
14
|
+
REFUSED_REQUEST: {
|
|
15
|
+
message: 'Request refused',
|
|
16
|
+
code: -3
|
|
17
|
+
},
|
|
18
|
+
ACCOUNT_CHANGED: {
|
|
19
|
+
message: 'Account changed',
|
|
20
|
+
code: -4
|
|
21
|
+
},
|
|
22
|
+
INTERNAL_ERROR: {
|
|
23
|
+
message: 'Internal error',
|
|
24
|
+
code: -2
|
|
25
|
+
},
|
|
26
|
+
PROOF_GENERATION_FAILED: {
|
|
27
|
+
message: 'Proof generation failed',
|
|
28
|
+
code: 1
|
|
29
|
+
},
|
|
30
|
+
ADDRESS_SIGN_NOT_PK: {
|
|
31
|
+
message: 'Address sign not PK',
|
|
32
|
+
code: 2
|
|
33
|
+
},
|
|
34
|
+
SIGN_DATA_DECLINED: {
|
|
35
|
+
message: 'User signing declined',
|
|
36
|
+
code: 3
|
|
37
|
+
},
|
|
38
|
+
SUBMIT_TRANSACTION_REFUSED: {
|
|
39
|
+
message: 'Transaction refused',
|
|
40
|
+
code: 1
|
|
41
|
+
},
|
|
42
|
+
SUBMIT_TRANSACTION_FAILURE: {
|
|
43
|
+
message: 'Transaction failure',
|
|
44
|
+
code: 2
|
|
45
|
+
},
|
|
46
|
+
SIGN_TRANSACTION_DECLINED: {
|
|
47
|
+
message: 'Sign transaction declined',
|
|
48
|
+
code: 2
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
export class CardanoProviderError extends SWError {
|
|
52
|
+
constructor(errorType, errMessage, data, name) {
|
|
53
|
+
const {
|
|
54
|
+
code,
|
|
55
|
+
message
|
|
56
|
+
} = defaultErrorMap[errorType];
|
|
57
|
+
const finalMessage = errMessage || t(message || '') || errorType;
|
|
58
|
+
super(errorType, finalMessage, code, data, name);
|
|
59
|
+
this.errorType = errorType;
|
|
60
|
+
}
|
|
61
|
+
}
|
package/background/types.d.ts
CHANGED
|
@@ -87,7 +87,7 @@ export interface RequestSignatures extends KoniRequestSignatures {
|
|
|
87
87
|
'pub(accounts.list)': [RequestAccountList, InjectedAccount[]];
|
|
88
88
|
'pub(accounts.subscribe)': [RequestAccountSubscribe, boolean, InjectedAccount[]];
|
|
89
89
|
'pub(authorize.tab)': [RequestAuthorizeTab, null];
|
|
90
|
-
'pub(authorize.tabV2)': [RequestAuthorizeTab,
|
|
90
|
+
'pub(authorize.tabV2)': [RequestAuthorizeTab, boolean];
|
|
91
91
|
'pub(bytes.sign)': [SignerPayloadRaw, ResponseSigning];
|
|
92
92
|
'pub(extrinsic.sign)': [SignerPayloadJSON, ResponseSigning];
|
|
93
93
|
'pub(metadata.list)': [null, InjectedMetadataKnown[]];
|
|
@@ -112,7 +112,7 @@ export interface TransportRequestMessage<TMessageType extends MessageTypes> {
|
|
|
112
112
|
origin: 'page' | 'extension' | string;
|
|
113
113
|
request: RequestTypes[TMessageType];
|
|
114
114
|
}
|
|
115
|
-
export declare type AccountAuthType = 'substrate' | 'evm' | 'ton';
|
|
115
|
+
export declare type AccountAuthType = 'substrate' | 'evm' | 'ton' | 'cardano';
|
|
116
116
|
export interface RequestAuthorizeTab {
|
|
117
117
|
origin: string;
|
|
118
118
|
accountAuthTypes?: AccountAuthType[];
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.WalletUnlockType = exports.TransactionDirection = exports.ThemeNames = exports.StakingType = exports.RuntimeEnvironment = exports.RMRK_VER = exports.ProviderErrorType = exports.NotificationType = exports.NETWORK_STATUS = exports.MobileOS = exports.MantaPayEnableMessage = exports.ExtrinsicType = exports.ExtrinsicStatus = exports.ExternalRequestPromiseStatus = exports.EvmProviderErrorType = exports.CrowdloanParaState = exports.ContractType = exports.ChainType = exports.CampaignDataType = exports.BalanceErrorType = exports.AssetHubNftType = exports.AccountExternalErrorCode = exports.APIItemState = void 0;
|
|
6
|
+
exports.WalletUnlockType = exports.TransactionDirection = exports.ThemeNames = exports.StakingType = exports.RuntimeEnvironment = exports.RMRK_VER = exports.ProviderErrorType = exports.NotificationType = exports.NETWORK_STATUS = exports.MobileOS = exports.MantaPayEnableMessage = exports.ExtrinsicType = exports.ExtrinsicStatus = exports.ExternalRequestPromiseStatus = exports.EvmProviderErrorType = exports.CrowdloanParaState = exports.ContractType = exports.ChainType = exports.CardanoProviderErrorType = exports.CampaignDataType = exports.BalanceErrorType = exports.AssetHubNftType = exports.AccountExternalErrorCode = exports.APIItemState = void 0;
|
|
7
7
|
// Copyright 2019-2022 @polkadot/extension-koni authors & contributors
|
|
8
8
|
// SPDX-License-Identifier: Apache-2.0
|
|
9
9
|
let RuntimeEnvironment;
|
|
@@ -199,6 +199,21 @@ exports.EvmProviderErrorType = EvmProviderErrorType;
|
|
|
199
199
|
EvmProviderErrorType["INVALID_PARAMS"] = "INVALID_PARAMS";
|
|
200
200
|
EvmProviderErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
|
|
201
201
|
})(EvmProviderErrorType || (exports.EvmProviderErrorType = EvmProviderErrorType = {}));
|
|
202
|
+
// Cardano Request Dapp Input
|
|
203
|
+
let CardanoProviderErrorType;
|
|
204
|
+
exports.CardanoProviderErrorType = CardanoProviderErrorType;
|
|
205
|
+
(function (CardanoProviderErrorType) {
|
|
206
|
+
CardanoProviderErrorType["INVALID_REQUEST"] = "INVALID_REQUEST";
|
|
207
|
+
CardanoProviderErrorType["REFUSED_REQUEST"] = "REFUSED_REQUEST";
|
|
208
|
+
CardanoProviderErrorType["ACCOUNT_CHANGED"] = "ACCOUNT_CHANGED";
|
|
209
|
+
CardanoProviderErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
|
|
210
|
+
CardanoProviderErrorType["PROOF_GENERATION_FAILED"] = "PROOF_GENERATION_FAILED";
|
|
211
|
+
CardanoProviderErrorType["ADDRESS_SIGN_NOT_PK"] = "ADDRESS_SIGN_NOT_PK";
|
|
212
|
+
CardanoProviderErrorType["SIGN_DATA_DECLINED"] = "SIGN_DATA_DECLINED";
|
|
213
|
+
CardanoProviderErrorType["SUBMIT_TRANSACTION_REFUSED"] = "SUBMIT_TRANSACTION_REFUSED";
|
|
214
|
+
CardanoProviderErrorType["SUBMIT_TRANSACTION_FAILURE"] = "SUBMIT_TRANSACTION_FAILURE";
|
|
215
|
+
CardanoProviderErrorType["SIGN_TRANSACTION_DECLINED"] = "SIGN_TRANSACTION_DECLINED";
|
|
216
|
+
})(CardanoProviderErrorType || (exports.CardanoProviderErrorType = CardanoProviderErrorType = {}));
|
|
202
217
|
let NotificationType;
|
|
203
218
|
exports.NotificationType = NotificationType;
|
|
204
219
|
(function (NotificationType) {
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CardanoProviderError = void 0;
|
|
7
|
+
var _SWError = require("@subwallet/extension-base/background/errors/SWError");
|
|
8
|
+
var _i18next = require("i18next");
|
|
9
|
+
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
10
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
11
|
+
|
|
12
|
+
// doc: https://github.com/cardano-foundation/CIPs/blob/master/CIP-0030/README.md#error-types
|
|
13
|
+
|
|
14
|
+
const defaultErrorMap = {
|
|
15
|
+
INVALID_REQUEST: {
|
|
16
|
+
message: 'Invalid request',
|
|
17
|
+
code: -1
|
|
18
|
+
},
|
|
19
|
+
REFUSED_REQUEST: {
|
|
20
|
+
message: 'Request refused',
|
|
21
|
+
code: -3
|
|
22
|
+
},
|
|
23
|
+
ACCOUNT_CHANGED: {
|
|
24
|
+
message: 'Account changed',
|
|
25
|
+
code: -4
|
|
26
|
+
},
|
|
27
|
+
INTERNAL_ERROR: {
|
|
28
|
+
message: 'Internal error',
|
|
29
|
+
code: -2
|
|
30
|
+
},
|
|
31
|
+
PROOF_GENERATION_FAILED: {
|
|
32
|
+
message: 'Proof generation failed',
|
|
33
|
+
code: 1
|
|
34
|
+
},
|
|
35
|
+
ADDRESS_SIGN_NOT_PK: {
|
|
36
|
+
message: 'Address sign not PK',
|
|
37
|
+
code: 2
|
|
38
|
+
},
|
|
39
|
+
SIGN_DATA_DECLINED: {
|
|
40
|
+
message: 'User signing declined',
|
|
41
|
+
code: 3
|
|
42
|
+
},
|
|
43
|
+
SUBMIT_TRANSACTION_REFUSED: {
|
|
44
|
+
message: 'Transaction refused',
|
|
45
|
+
code: 1
|
|
46
|
+
},
|
|
47
|
+
SUBMIT_TRANSACTION_FAILURE: {
|
|
48
|
+
message: 'Transaction failure',
|
|
49
|
+
code: 2
|
|
50
|
+
},
|
|
51
|
+
SIGN_TRANSACTION_DECLINED: {
|
|
52
|
+
message: 'Sign transaction declined',
|
|
53
|
+
code: 2
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
class CardanoProviderError extends _SWError.SWError {
|
|
57
|
+
constructor(errorType, errMessage, data, name) {
|
|
58
|
+
const {
|
|
59
|
+
code,
|
|
60
|
+
message
|
|
61
|
+
} = defaultErrorMap[errorType];
|
|
62
|
+
const finalMessage = errMessage || (0, _i18next.t)(message || '') || errorType;
|
|
63
|
+
super(errorType, finalMessage, code, data, name);
|
|
64
|
+
this.errorType = errorType;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.CardanoProviderError = CardanoProviderError;
|
package/cjs/constants/index.js
CHANGED
|
@@ -36,6 +36,7 @@ var _exportNames = {
|
|
|
36
36
|
XCM_MIN_AMOUNT_RATIO: true,
|
|
37
37
|
XCM_FEE_RATIO: true,
|
|
38
38
|
GAS_PRICE_RATIO: true,
|
|
39
|
+
MAX_COLLATERAL_AMOUNT: true,
|
|
39
40
|
NETWORK_MULTI_GAS_FEE: true,
|
|
40
41
|
ORDINAL_COLLECTION: true,
|
|
41
42
|
ORDINAL_METHODS: true,
|
|
@@ -44,7 +45,7 @@ var _exportNames = {
|
|
|
44
45
|
getSupportTokenPayFeeChain: true,
|
|
45
46
|
isChainSupportTokenPayFee: true
|
|
46
47
|
};
|
|
47
|
-
exports.isChainSupportTokenPayFee = exports.getSupportTokenPayFeeChain = exports._SUPPORT_TOKEN_PAY_FEE_GROUP = exports.XCM_MIN_AMOUNT_RATIO = exports.XCM_FEE_RATIO = exports.SUB_TOKEN_REFRESH_BALANCE_INTERVAL = exports.PERMISSIONS_TO_REVOKE = exports.ORDINAL_METHODS = exports.ORDINAL_COLLECTION = exports.NETWORK_MULTI_GAS_FEE = exports.MANTA_PAY_BALANCE_INTERVAL = exports.IGNORE_QR_SIGNER = exports.IGNORE_GET_SUBSTRATE_FEATURES_LIST = exports.GAS_PRICE_RATIO = exports.CRON_SYNC_MANTA_PAY = exports.CRON_REFRESH_STAKING_REWARD_INTERVAL = exports.CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL = exports.CRON_REFRESH_PRICE_INTERVAL = exports.CRON_REFRESH_NFT_INTERVAL = exports.CRON_REFRESH_MKT_CAMPAIGN_INTERVAL = exports.CRON_REFRESH_HISTORY_INTERVAL = exports.CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL = exports.CRON_REFRESH_CHAIN_STAKING_METADATA = exports.CRON_REFRESH_CHAIN_NOMINATOR_METADATA = exports.CRON_RECOVER_HISTORY_INTERVAL = exports.CRON_LISTEN_AVAIL_BRIDGE_CLAIM = exports.CRON_GET_API_MAP_STATUS = exports.CRON_AUTO_RECOVER_WEB3_INTERVAL = exports.CRON_AUTO_RECOVER_DOTSAMA_INTERVAL = exports.BITTENSOR_REFRESH_STAKE_INFO = exports.BITTENSOR_REFRESH_STAKE_APY = exports.BASE_SECOND_INTERVAL = exports.BASE_MINUTE_INTERVAL = exports.ASTAR_REFRESH_BALANCE_INTERVAL = exports.ALL_NETWORK_KEY = exports.ALL_GENESIS_HASH = exports.ALL_ACCOUNT_KEY = exports.ALL_ACCOUNT_AUTH_TYPES = exports.ACALA_REFRESH_CROWDLOAN_INTERVAL = void 0;
|
|
48
|
+
exports.isChainSupportTokenPayFee = exports.getSupportTokenPayFeeChain = exports._SUPPORT_TOKEN_PAY_FEE_GROUP = exports.XCM_MIN_AMOUNT_RATIO = exports.XCM_FEE_RATIO = exports.SUB_TOKEN_REFRESH_BALANCE_INTERVAL = exports.PERMISSIONS_TO_REVOKE = exports.ORDINAL_METHODS = exports.ORDINAL_COLLECTION = exports.NETWORK_MULTI_GAS_FEE = exports.MAX_COLLATERAL_AMOUNT = exports.MANTA_PAY_BALANCE_INTERVAL = exports.IGNORE_QR_SIGNER = exports.IGNORE_GET_SUBSTRATE_FEATURES_LIST = exports.GAS_PRICE_RATIO = exports.CRON_SYNC_MANTA_PAY = exports.CRON_REFRESH_STAKING_REWARD_INTERVAL = exports.CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL = exports.CRON_REFRESH_PRICE_INTERVAL = exports.CRON_REFRESH_NFT_INTERVAL = exports.CRON_REFRESH_MKT_CAMPAIGN_INTERVAL = exports.CRON_REFRESH_HISTORY_INTERVAL = exports.CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL = exports.CRON_REFRESH_CHAIN_STAKING_METADATA = exports.CRON_REFRESH_CHAIN_NOMINATOR_METADATA = exports.CRON_RECOVER_HISTORY_INTERVAL = exports.CRON_LISTEN_AVAIL_BRIDGE_CLAIM = exports.CRON_GET_API_MAP_STATUS = exports.CRON_AUTO_RECOVER_WEB3_INTERVAL = exports.CRON_AUTO_RECOVER_DOTSAMA_INTERVAL = exports.BITTENSOR_REFRESH_STAKE_INFO = exports.BITTENSOR_REFRESH_STAKE_APY = exports.BASE_SECOND_INTERVAL = exports.BASE_MINUTE_INTERVAL = exports.ASTAR_REFRESH_BALANCE_INTERVAL = exports.ALL_NETWORK_KEY = exports.ALL_GENESIS_HASH = exports.ALL_ACCOUNT_KEY = exports.ALL_ACCOUNT_AUTH_TYPES = exports.ACALA_REFRESH_CROWDLOAN_INTERVAL = void 0;
|
|
48
49
|
var _blockedActions = require("./blocked-actions");
|
|
49
50
|
Object.keys(_blockedActions).forEach(function (key) {
|
|
50
51
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -184,6 +185,8 @@ const XCM_FEE_RATIO = 2;
|
|
|
184
185
|
exports.XCM_FEE_RATIO = XCM_FEE_RATIO;
|
|
185
186
|
const GAS_PRICE_RATIO = 1 + 2 / 100;
|
|
186
187
|
exports.GAS_PRICE_RATIO = GAS_PRICE_RATIO;
|
|
188
|
+
const MAX_COLLATERAL_AMOUNT = '5000000';
|
|
189
|
+
exports.MAX_COLLATERAL_AMOUNT = MAX_COLLATERAL_AMOUNT;
|
|
187
190
|
const NETWORK_MULTI_GAS_FEE = ['*'];
|
|
188
191
|
exports.NETWORK_MULTI_GAS_FEE = NETWORK_MULTI_GAS_FEE;
|
|
189
192
|
const ORDINAL_COLLECTION = '__Ordinal__';
|
|
@@ -13,10 +13,12 @@ exports.validateTypedSignMessageDataV1 = validateTypedSignMessageDataV1;
|
|
|
13
13
|
exports.validateTypedSignMessageDataV3V4 = validateTypedSignMessageDataV3V4;
|
|
14
14
|
exports.validationAuthMiddleware = validationAuthMiddleware;
|
|
15
15
|
exports.validationAuthWCMiddleware = validationAuthWCMiddleware;
|
|
16
|
+
exports.validationCardanoSignDataMiddleware = validationCardanoSignDataMiddleware;
|
|
16
17
|
exports.validationConnectMiddleware = validationConnectMiddleware;
|
|
17
18
|
exports.validationEvmDataTransactionMiddleware = validationEvmDataTransactionMiddleware;
|
|
18
19
|
exports.validationEvmSignMessageMiddleware = validationEvmSignMessageMiddleware;
|
|
19
20
|
var _ethSigUtil = require("@metamask/eth-sig-util");
|
|
21
|
+
var _CardanoProviderError = require("@subwallet/extension-base/background/errors/CardanoProviderError");
|
|
20
22
|
var _EvmProviderError = require("@subwallet/extension-base/background/errors/EvmProviderError");
|
|
21
23
|
var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
|
|
22
24
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
@@ -186,7 +188,8 @@ async function validationConnectMiddleware(koni, url, payload) {
|
|
|
186
188
|
address,
|
|
187
189
|
authInfo,
|
|
188
190
|
errors,
|
|
189
|
-
networkKey
|
|
191
|
+
networkKey,
|
|
192
|
+
type
|
|
190
193
|
} = {
|
|
191
194
|
...payload
|
|
192
195
|
};
|
|
@@ -198,8 +201,8 @@ async function validationConnectMiddleware(koni, url, payload) {
|
|
|
198
201
|
console.error(error);
|
|
199
202
|
errors.push(error);
|
|
200
203
|
};
|
|
201
|
-
if (authInfo !== null && authInfo !== void 0 && authInfo.
|
|
202
|
-
currentChain = authInfo === null || authInfo === void 0 ? void 0 : authInfo.
|
|
204
|
+
if (authInfo !== null && authInfo !== void 0 && authInfo.currentNetworkMap[type]) {
|
|
205
|
+
currentChain = authInfo === null || authInfo === void 0 ? void 0 : authInfo.currentNetworkMap[type];
|
|
203
206
|
}
|
|
204
207
|
if (authInfo !== null && authInfo !== void 0 && authInfo.isAllowed) {
|
|
205
208
|
autoActiveChain = true;
|
|
@@ -561,6 +564,50 @@ function validationAuthWCMiddleware(koni, url, payload, topic) {
|
|
|
561
564
|
});
|
|
562
565
|
return promise;
|
|
563
566
|
}
|
|
567
|
+
async function validationCardanoSignDataMiddleware(koni, url, payload_) {
|
|
568
|
+
const {
|
|
569
|
+
address,
|
|
570
|
+
errors,
|
|
571
|
+
pair: pair_
|
|
572
|
+
} = payload_;
|
|
573
|
+
const payload = payload_.payloadAfterValidated;
|
|
574
|
+
const {
|
|
575
|
+
promise,
|
|
576
|
+
resolve
|
|
577
|
+
} = (0, _utils.createPromiseHandler)();
|
|
578
|
+
let canSign = false;
|
|
579
|
+
const handleError = message_ => {
|
|
580
|
+
payload_.errorPosition = 'ui';
|
|
581
|
+
payload_.confirmationType = 'cardanoSignatureRequest';
|
|
582
|
+
const [message, name] = convertErrorMessage(message_);
|
|
583
|
+
const error = new _CardanoProviderError.CardanoProviderError(_KoniTypes.CardanoProviderErrorType.INVALID_REQUEST, message, undefined, name);
|
|
584
|
+
console.error(error);
|
|
585
|
+
errors.push(error);
|
|
586
|
+
};
|
|
587
|
+
if (address === '' || !payload) {
|
|
588
|
+
handleError('Not found address or payload to sign');
|
|
589
|
+
}
|
|
590
|
+
if (!(0, _keyring.isCardanoAddress)(address)) {
|
|
591
|
+
handleError('Not found cardano address');
|
|
592
|
+
}
|
|
593
|
+
const pair = pair_ || _uiKeyring.keyring.getPair(address);
|
|
594
|
+
if (!(pair !== null && pair !== void 0 && pair.meta.isExtneral)) {
|
|
595
|
+
canSign = true;
|
|
596
|
+
}
|
|
597
|
+
const payloadAfterValidated = {
|
|
598
|
+
address,
|
|
599
|
+
payload: payload,
|
|
600
|
+
hashPayload: payload,
|
|
601
|
+
canSign: canSign,
|
|
602
|
+
id: ''
|
|
603
|
+
};
|
|
604
|
+
resolve({
|
|
605
|
+
...payload_,
|
|
606
|
+
errors,
|
|
607
|
+
payloadAfterValidated
|
|
608
|
+
});
|
|
609
|
+
return promise;
|
|
610
|
+
}
|
|
564
611
|
function convertErrorMessage(message_, name) {
|
|
565
612
|
const message = message_.toLowerCase();
|
|
566
613
|
|
|
@@ -1,8 +1,10 @@
|
|
|
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
|
});
|
|
7
|
+
exports.estimateTxFee = estimateTxFee;
|
|
6
8
|
exports.getERC20Allowance = getERC20Allowance;
|
|
7
9
|
exports.getERC20Contract = void 0;
|
|
8
10
|
exports.getERC20SpendingApprovalTx = getERC20SpendingApprovalTx;
|
|
@@ -10,6 +12,7 @@ exports.getWeb3Contract = getWeb3Contract;
|
|
|
10
12
|
var _utils = require("@subwallet/extension-base/koni/api/contract-handler/utils");
|
|
11
13
|
var _utils2 = require("@subwallet/extension-base/services/fee-service/utils");
|
|
12
14
|
var _utils3 = 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
|
|
|
@@ -55,4 +58,22 @@ async function getERC20SpendingApprovalTx(spender, owner, contractAddress, evmAp
|
|
|
55
58
|
gasPrice: priority.gasPrice,
|
|
56
59
|
...feeCombine
|
|
57
60
|
};
|
|
61
|
+
}
|
|
62
|
+
async function estimateTxFee(tx, evmApi, feeInfo) {
|
|
63
|
+
const gasLimit = tx.gas || (await evmApi.api.eth.estimateGas(tx));
|
|
64
|
+
const feeCombine = (0, _utils3.combineEthFee)(feeInfo);
|
|
65
|
+
let estimatedFee;
|
|
66
|
+
if (tx.maxFeePerGas) {
|
|
67
|
+
estimatedFee = (0, _bignumber.default)(tx.maxFeePerGas.toString()).multipliedBy(gasLimit).toFixed(0);
|
|
68
|
+
} else if (tx.gasPrice) {
|
|
69
|
+
estimatedFee = (0, _bignumber.default)(tx.gasPrice.toString()).multipliedBy(gasLimit).toFixed(0);
|
|
70
|
+
} else {
|
|
71
|
+
if (feeCombine.maxFeePerGas) {
|
|
72
|
+
estimatedFee = (0, _bignumber.default)(feeCombine.maxFeePerGas).multipliedBy(gasLimit).toFixed(0);
|
|
73
|
+
} else if (feeCombine.gasPrice) {
|
|
74
|
+
estimatedFee = (0, _bignumber.default)(feeCombine.gasPrice).multipliedBy(gasLimit).toFixed(0);
|
|
75
|
+
}
|
|
76
|
+
estimatedFee = '0';
|
|
77
|
+
}
|
|
78
|
+
return estimatedFee;
|
|
58
79
|
}
|
|
@@ -8,6 +8,7 @@ exports.YieldAction = exports.StakingAction = exports.PalletParachainStakingRequ
|
|
|
8
8
|
exports.calcInflationRewardCurve = calcInflationRewardCurve;
|
|
9
9
|
exports.calcInflationUniformEraPayout = calcInflationUniformEraPayout;
|
|
10
10
|
exports.calculateAlephZeroValidatorReturn = calculateAlephZeroValidatorReturn;
|
|
11
|
+
exports.calculateAnalogChainStakedReturn = calculateAnalogChainStakedReturn;
|
|
11
12
|
exports.calculateChainStakedReturn = calculateChainStakedReturn;
|
|
12
13
|
exports.calculateChainStakedReturnV2 = calculateChainStakedReturnV2;
|
|
13
14
|
exports.calculateInflation = calculateInflation;
|
|
@@ -113,10 +114,9 @@ function calculateChainStakedReturn(inflation, totalEraStake, totalIssuance, net
|
|
|
113
114
|
|
|
114
115
|
return stakedReturn;
|
|
115
116
|
}
|
|
116
|
-
function calculateChainStakedReturnV2(chainInfo, totalIssuance, erasPerDay, lastTotalStaked, validatorEraReward, inflation, isCompound) {
|
|
117
|
+
async function calculateChainStakedReturnV2(chainInfo, totalIssuance, erasPerDay, lastTotalStaked, validatorEraReward, inflation, isCompound) {
|
|
117
118
|
if (chainInfo.slug === 'analog_timechain') {
|
|
118
|
-
|
|
119
|
-
return 55;
|
|
119
|
+
return await calculateAnalogChainStakedReturn();
|
|
120
120
|
}
|
|
121
121
|
const DAYS_PER_YEAR = 365;
|
|
122
122
|
const {
|
|
@@ -145,6 +145,27 @@ function calculateTernoaValidatorReturn(rewardPerValidator, validatorStake, comm
|
|
|
145
145
|
const stakeRatio = rewardForNominators / validatorStake;
|
|
146
146
|
return stakeRatio * 365 * 100;
|
|
147
147
|
}
|
|
148
|
+
async function calculateAnalogChainStakedReturn() {
|
|
149
|
+
const url = 'https://explorer-api.analog.one/api/nominations?projection=apy,rewardsClaimed,eraEndsTime';
|
|
150
|
+
try {
|
|
151
|
+
var _apyInfo$data;
|
|
152
|
+
const response = await fetch(url, {
|
|
153
|
+
method: 'GET',
|
|
154
|
+
headers: {
|
|
155
|
+
'Content-Type': 'application/json'
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
if (!response.ok) {
|
|
159
|
+
const errorText = await response.text();
|
|
160
|
+
throw new Error(`API error: ${response.status} - ${errorText}`);
|
|
161
|
+
}
|
|
162
|
+
const apyInfo = await response.json();
|
|
163
|
+
return apyInfo === null || apyInfo === void 0 ? void 0 : (_apyInfo$data = apyInfo.data) === null || _apyInfo$data === void 0 ? void 0 : _apyInfo$data.apy;
|
|
164
|
+
} catch (e) {
|
|
165
|
+
console.error('Fetch error:', e);
|
|
166
|
+
return undefined;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
148
169
|
function calculateValidatorStakedReturn(chainStakedReturn, totalValidatorStake, avgStake, commission) {
|
|
149
170
|
const bnAdjusted = avgStake.mul(_util.BN_HUNDRED).div(totalValidatorStake);
|
|
150
171
|
const adjusted = bnAdjusted.toNumber() * chainStakedReturn;
|