@subwallet/extension-base 1.3.31-1 → 1.3.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 +94 -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/environment.js +4 -2
- 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 +141 -107
- package/cjs/koni/background/handlers/State.js +232 -6
- 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/price-service/coingecko.js +22 -3
- package/cjs/services/price-service/index.js +75 -2
- 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 +16 -4
- package/cjs/utils/price.js +28 -0
- package/constants/environment.d.ts +1 -0
- package/constants/environment.js +2 -1
- 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.d.ts +2 -0
- package/koni/background/handlers/Extension.js +32 -2
- package/koni/background/handlers/State.d.ts +6 -1
- package/koni/background/handlers/State.js +228 -6
- package/koni/background/handlers/Tabs.d.ts +11 -1
- package/koni/background/handlers/Tabs.js +242 -19
- package/package.json +67 -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/price-service/coingecko.d.ts +2 -1
- package/services/price-service/coingecko.js +19 -1
- package/services/price-service/index.d.ts +11 -1
- package/services/price-service/index.js +78 -5
- 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 +2 -1
- package/utils/index.js +2 -1
- package/utils/price.d.ts +3 -0
- package/utils/price.js +20 -0
- 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';
|
|
@@ -141,6 +142,19 @@ export interface PriceJson {
|
|
|
141
142
|
exchangeRateMap: Record<string, ExchangeRateJSON>;
|
|
142
143
|
priceMap: Record<string, number>;
|
|
143
144
|
price24hMap: Record<string, number>;
|
|
145
|
+
lastUpdatedMap: Record<string, Date>;
|
|
146
|
+
}
|
|
147
|
+
export interface HistoryTokenPriceJSON {
|
|
148
|
+
history: PriceChartPoint[];
|
|
149
|
+
}
|
|
150
|
+
export interface ResponseSubscribeCurrentTokenPrice {
|
|
151
|
+
id: string;
|
|
152
|
+
price: CurrentTokenPrice;
|
|
153
|
+
}
|
|
154
|
+
export interface CurrentTokenPrice {
|
|
155
|
+
value: number;
|
|
156
|
+
value24h: number;
|
|
157
|
+
time: number;
|
|
144
158
|
}
|
|
145
159
|
export interface ExchangeRateJSON {
|
|
146
160
|
exchange: number;
|
|
@@ -300,6 +314,11 @@ export interface OptionInputAddress {
|
|
|
300
314
|
}
|
|
301
315
|
export declare type LanguageType = 'en' | 'zh' | 'fr' | 'tr' | 'pl' | 'th' | 'ur' | 'vi' | 'ja' | 'ru';
|
|
302
316
|
export declare type CurrencyType = 'USD' | 'BRL' | 'CNY' | 'EUR' | 'GBP' | 'HKD' | 'JPY' | 'RUB' | 'VND';
|
|
317
|
+
export declare type PriceChartTimeframe = '1D' | '1W' | '1M' | '3M' | 'YTD' | '1Y' | 'ALL';
|
|
318
|
+
export interface PriceChartPoint {
|
|
319
|
+
time: number;
|
|
320
|
+
value: number;
|
|
321
|
+
}
|
|
303
322
|
export declare type LanguageOptionType = {
|
|
304
323
|
text: string;
|
|
305
324
|
value: LanguageType;
|
|
@@ -350,6 +369,10 @@ export declare type RequestChangeLanguage = {
|
|
|
350
369
|
export declare type RequestChangePriceCurrency = {
|
|
351
370
|
currency: CurrencyType;
|
|
352
371
|
};
|
|
372
|
+
export declare type RequestGetHistoryTokenPriceData = {
|
|
373
|
+
priceId: string;
|
|
374
|
+
timeframe: PriceChartTimeframe;
|
|
375
|
+
};
|
|
353
376
|
export declare type RequestChangeShowBalance = {
|
|
354
377
|
enable: boolean;
|
|
355
378
|
};
|
|
@@ -848,7 +871,7 @@ export interface TonSignRequest {
|
|
|
848
871
|
canSign: boolean;
|
|
849
872
|
}
|
|
850
873
|
export interface CardanoSignRequest {
|
|
851
|
-
|
|
874
|
+
address: string;
|
|
852
875
|
hashPayload: string;
|
|
853
876
|
canSign: boolean;
|
|
854
877
|
}
|
|
@@ -870,7 +893,7 @@ export interface TonSignatureRequest extends TonSignRequest {
|
|
|
870
893
|
}
|
|
871
894
|
export interface CardanoSignatureRequest extends CardanoSignRequest {
|
|
872
895
|
id: string;
|
|
873
|
-
|
|
896
|
+
errors?: ErrorValidation[];
|
|
874
897
|
payload: unknown;
|
|
875
898
|
}
|
|
876
899
|
export interface EvmSendTransactionRequest extends TransactionConfig, EvmSignRequest {
|
|
@@ -879,8 +902,64 @@ export interface EvmSendTransactionRequest extends TransactionConfig, EvmSignReq
|
|
|
879
902
|
isToContract: boolean;
|
|
880
903
|
errors?: ErrorValidation[];
|
|
881
904
|
}
|
|
905
|
+
export declare enum CardanoProviderErrorType {
|
|
906
|
+
INVALID_REQUEST = "INVALID_REQUEST",
|
|
907
|
+
REFUSED_REQUEST = "REFUSED_REQUEST",
|
|
908
|
+
ACCOUNT_CHANGED = "ACCOUNT_CHANGED",
|
|
909
|
+
INTERNAL_ERROR = "INTERNAL_ERROR",
|
|
910
|
+
PROOF_GENERATION_FAILED = "PROOF_GENERATION_FAILED",
|
|
911
|
+
ADDRESS_SIGN_NOT_PK = "ADDRESS_SIGN_NOT_PK",
|
|
912
|
+
SIGN_DATA_DECLINED = "SIGN_DATA_DECLINED",
|
|
913
|
+
SUBMIT_TRANSACTION_REFUSED = "SUBMIT_TRANSACTION_REFUSED",
|
|
914
|
+
SUBMIT_TRANSACTION_FAILURE = "SUBMIT_TRANSACTION_FAILURE",
|
|
915
|
+
SIGN_TRANSACTION_DECLINED = "SIGN_TRANSACTION_DECLINED"
|
|
916
|
+
}
|
|
917
|
+
export declare type Cbor = string;
|
|
918
|
+
export declare type CardanoPaginate = {
|
|
919
|
+
page: number;
|
|
920
|
+
limit: number;
|
|
921
|
+
};
|
|
922
|
+
export interface RequestCardanoGetUtxos {
|
|
923
|
+
amount?: Cbor;
|
|
924
|
+
paginate?: CardanoPaginate;
|
|
925
|
+
}
|
|
926
|
+
export interface RequestCardanoGetCollateral {
|
|
927
|
+
amount: Cbor;
|
|
928
|
+
}
|
|
929
|
+
export interface RequestCardanoSignData {
|
|
930
|
+
address: string;
|
|
931
|
+
payload: string;
|
|
932
|
+
}
|
|
933
|
+
export interface ResponseCardanoSignData {
|
|
934
|
+
signature: Cbor;
|
|
935
|
+
key: Cbor;
|
|
936
|
+
}
|
|
937
|
+
export interface RequestCardanoSignTransaction {
|
|
938
|
+
tx: Cbor;
|
|
939
|
+
partialSign: boolean;
|
|
940
|
+
}
|
|
941
|
+
export interface AddressCardanoTransactionBalance {
|
|
942
|
+
values: CardanoBalanceItem[];
|
|
943
|
+
isOwner?: boolean;
|
|
944
|
+
isRecipient?: boolean;
|
|
945
|
+
}
|
|
946
|
+
export declare type CardanoKeyType = 'stake' | 'payment';
|
|
947
|
+
export interface CardanoTransactionDappConfig {
|
|
948
|
+
txInputs: Record<string, AddressCardanoTransactionBalance>;
|
|
949
|
+
txOutputs: Record<string, AddressCardanoTransactionBalance>;
|
|
950
|
+
networkKey: string;
|
|
951
|
+
from: string;
|
|
952
|
+
addressRequireKeyTypes: CardanoKeyType[];
|
|
953
|
+
value: CardanoBalanceItem[];
|
|
954
|
+
estimateCardanoFee: string;
|
|
955
|
+
cardanoPayload: string;
|
|
956
|
+
errors?: ErrorValidation[];
|
|
957
|
+
id: string;
|
|
958
|
+
}
|
|
959
|
+
export declare type ResponseCardanoSignTransaction = Cbor;
|
|
882
960
|
export declare type TonSendTransactionRequest = TonTransactionConfig;
|
|
883
961
|
export declare type CardanoSendTransactionRequest = CardanoTransactionConfig;
|
|
962
|
+
export declare type CardanoSignTransactionRequest = CardanoTransactionDappConfig;
|
|
884
963
|
export declare type EvmWatchTransactionRequest = EvmSendTransactionRequest;
|
|
885
964
|
export declare type TonWatchTransactionRequest = TonSendTransactionRequest;
|
|
886
965
|
export declare type CardanoWatchTransactionRequest = CardanoSendTransactionRequest;
|
|
@@ -941,8 +1020,9 @@ export interface ConfirmationDefinitionsTon {
|
|
|
941
1020
|
tonWatchTransactionRequest: [ConfirmationsQueueItem<TonWatchTransactionRequest>, ConfirmationResult<string>];
|
|
942
1021
|
}
|
|
943
1022
|
export interface ConfirmationDefinitionsCardano {
|
|
944
|
-
cardanoSignatureRequest: [ConfirmationsQueueItem<CardanoSignatureRequest>, ConfirmationResult<
|
|
1023
|
+
cardanoSignatureRequest: [ConfirmationsQueueItem<CardanoSignatureRequest>, ConfirmationResult<ResponseCardanoSignData>];
|
|
945
1024
|
cardanoSendTransactionRequest: [ConfirmationsQueueItem<CardanoSendTransactionRequest>, ConfirmationResult<string>];
|
|
1025
|
+
cardanoSignTransactionRequest: [ConfirmationsQueueItem<CardanoSignTransactionRequest>, ConfirmationResult<string>];
|
|
946
1026
|
cardanoWatchTransactionRequest: [ConfirmationsQueueItem<CardanoWatchTransactionRequest>, ConfirmationResult<string>];
|
|
947
1027
|
}
|
|
948
1028
|
export declare type ConfirmationType = keyof ConfirmationDefinitions;
|
|
@@ -1593,6 +1673,8 @@ export interface KoniRequestSignatures {
|
|
|
1593
1673
|
'pri(stakingReward.getSubscription)': [RequestSubscribeStakingReward, StakingRewardJson, StakingRewardJson];
|
|
1594
1674
|
'pri(price.getPrice)': [RequestPrice, PriceJson];
|
|
1595
1675
|
'pri(price.getSubscription)': [RequestSubscribePrice, PriceJson, PriceJson];
|
|
1676
|
+
'pri(price.getHistory)': [RequestGetHistoryTokenPriceData, HistoryTokenPriceJSON];
|
|
1677
|
+
'pri(price.subscribeCurrentTokenPrice)': [string, ResponseSubscribeCurrentTokenPrice, CurrentTokenPrice];
|
|
1596
1678
|
'pri(balance.getBalance)': [RequestBalance, BalanceJson];
|
|
1597
1679
|
'pri(balance.getSubscription)': [RequestSubscribeBalance, BalanceJson, BalanceJson];
|
|
1598
1680
|
'pri(crowdloan.getCrowdloan)': [RequestCrowdloan, CrowdloanJson];
|
|
@@ -1741,6 +1823,15 @@ export interface KoniRequestSignatures {
|
|
|
1741
1823
|
'evm(events.subscribe)': [RequestEvmEvents, boolean, EvmEvent];
|
|
1742
1824
|
'evm(request)': [RequestArguments, unknown];
|
|
1743
1825
|
'evm(provider.send)': [RequestEvmProviderSend, string | number, ResponseEvmProviderSend];
|
|
1826
|
+
'cardano(account.get.address)': [null, string[]];
|
|
1827
|
+
'cardano(account.get.balance)': [null, Cbor];
|
|
1828
|
+
'cardano(account.get.change.address)': [null, string];
|
|
1829
|
+
'cardano(account.get.utxos)': [RequestCardanoGetUtxos, Cbor[] | null];
|
|
1830
|
+
'cardano(account.get.collateral)': [RequestCardanoGetCollateral, Cbor[] | null];
|
|
1831
|
+
'cardano(network.get.current)': [null, number];
|
|
1832
|
+
'cardano(data.sign)': [RequestCardanoSignData, ResponseCardanoSignData];
|
|
1833
|
+
'cardano(transaction.sign)': [RequestCardanoSignTransaction, ResponseCardanoSignTransaction];
|
|
1834
|
+
'cardano(transaction.submit)': [Cbor, string];
|
|
1744
1835
|
'pri(evm.transaction.parse.input)': [RequestParseEvmContractInput, ResponseParseEvmContractInput];
|
|
1745
1836
|
'pri(authorize.subscribe)': [null, AuthUrls, AuthUrls];
|
|
1746
1837
|
'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;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.isProductionMode = exports.BACKEND_API_URL = void 0;
|
|
6
|
+
exports.isProductionMode = exports.BACKEND_PRICE_HISTORY_URL = exports.BACKEND_API_URL = void 0;
|
|
7
7
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
8
8
|
// SPDX-License-Identifier: Apache-2.0
|
|
9
9
|
|
|
@@ -12,4 +12,6 @@ const branchName = process.env.BRANCH_NAME || 'subwallet-dev';
|
|
|
12
12
|
const isProductionMode = PRODUCTION_BRANCHES.indexOf(branchName) > -1;
|
|
13
13
|
exports.isProductionMode = isProductionMode;
|
|
14
14
|
const BACKEND_API_URL = process.env.SUBWALLET_API || (isProductionMode ? 'https://sw-services.subwallet.app/api' : 'https://be-dev.subwallet.app/api');
|
|
15
|
-
exports.BACKEND_API_URL = BACKEND_API_URL;
|
|
15
|
+
exports.BACKEND_API_URL = BACKEND_API_URL;
|
|
16
|
+
const BACKEND_PRICE_HISTORY_URL = process.env.SUBWALLET_PRICE_HISTORY_API || (isProductionMode ? 'https://price-history.subwallet.app/api' : 'https://price-history-dev.subwallet.app/api');
|
|
17
|
+
exports.BACKEND_PRICE_HISTORY_URL = BACKEND_PRICE_HISTORY_URL;
|
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;
|