@swapkit/wallets 3.0.0-beta.0 → 3.0.0-beta.10
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/dist/chunk-0ttw612a.js +4 -0
- package/dist/chunk-0ttw612a.js.map +10 -0
- package/dist/chunk-8pv8t9qa.js +3 -0
- package/dist/chunk-8pv8t9qa.js.map +10 -0
- package/dist/{chunk-5m175wfy.js → chunk-p1kdg37m.js} +2 -2
- package/dist/{chunk-5m175wfy.js.map → chunk-p1kdg37m.js.map} +1 -1
- package/dist/chunk-ta4bdjpy.js +3 -0
- package/dist/chunk-ta4bdjpy.js.map +10 -0
- package/dist/chunk-w07sv0jv.js +3 -0
- package/dist/chunk-w07sv0jv.js.map +10 -0
- package/dist/src/bitget/index.cjs +2 -2
- package/dist/src/bitget/index.cjs.map +5 -5
- package/dist/src/bitget/index.js +2 -2
- package/dist/src/bitget/index.js.map +5 -5
- package/dist/src/coinbase/index.cjs +2 -2
- package/dist/src/coinbase/index.cjs.map +4 -4
- package/dist/src/coinbase/index.js +2 -3
- package/dist/src/coinbase/index.js.map +4 -4
- package/dist/src/ctrl/index.cjs +2 -2
- package/dist/src/ctrl/index.cjs.map +5 -5
- package/dist/src/ctrl/index.js +2 -2
- package/dist/src/ctrl/index.js.map +5 -5
- package/dist/src/evm-extensions/index.cjs +2 -2
- package/dist/src/evm-extensions/index.cjs.map +3 -3
- package/dist/src/evm-extensions/index.js +2 -3
- package/dist/src/evm-extensions/index.js.map +3 -3
- package/dist/src/exodus/index.cjs +2 -2
- package/dist/src/exodus/index.cjs.map +3 -3
- package/dist/src/exodus/index.js +2 -3
- package/dist/src/exodus/index.js.map +3 -3
- package/dist/src/index.cjs +2 -2
- package/dist/src/index.cjs.map +3 -4
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +3 -4
- package/dist/src/keepkey/index.cjs +2 -2
- package/dist/src/keepkey/index.cjs.map +7 -7
- package/dist/src/keepkey/index.js +2 -3
- package/dist/src/keepkey/index.js.map +7 -7
- package/dist/src/keepkey-bex/index.cjs +2 -2
- package/dist/src/keepkey-bex/index.cjs.map +4 -4
- package/dist/src/keepkey-bex/index.js +2 -3
- package/dist/src/keepkey-bex/index.js.map +4 -4
- package/dist/src/keplr/index.cjs +2 -2
- package/dist/src/keplr/index.cjs.map +3 -3
- package/dist/src/keplr/index.js +2 -3
- package/dist/src/keplr/index.js.map +3 -3
- package/dist/src/keystore/index.cjs +2 -2
- package/dist/src/keystore/index.cjs.map +4 -4
- package/dist/src/keystore/index.js +2 -3
- package/dist/src/keystore/index.js.map +4 -4
- package/dist/src/ledger/index.cjs +3 -3
- package/dist/src/ledger/index.cjs.map +11 -11
- package/dist/src/ledger/index.js +3 -4
- package/dist/src/ledger/index.js.map +11 -11
- package/dist/src/okx/index.cjs +2 -2
- package/dist/src/okx/index.cjs.map +4 -4
- package/dist/src/okx/index.js +2 -3
- package/dist/src/okx/index.js.map +4 -4
- package/dist/src/onekey/index.cjs +3 -0
- package/dist/src/onekey/index.cjs.map +10 -0
- package/dist/src/onekey/index.js +3 -0
- package/dist/src/onekey/index.js.map +10 -0
- package/dist/src/phantom/index.cjs +2 -2
- package/dist/src/phantom/index.cjs.map +3 -3
- package/dist/src/phantom/index.js +2 -3
- package/dist/src/phantom/index.js.map +3 -3
- package/dist/src/polkadotjs/index.cjs +2 -2
- package/dist/src/polkadotjs/index.cjs.map +3 -3
- package/dist/src/polkadotjs/index.js +2 -3
- package/dist/src/polkadotjs/index.js.map +3 -3
- package/dist/src/radix/index.cjs +2 -2
- package/dist/src/radix/index.cjs.map +3 -3
- package/dist/src/radix/index.js +2 -3
- package/dist/src/radix/index.js.map +3 -3
- package/dist/src/talisman/index.cjs +2 -2
- package/dist/src/talisman/index.cjs.map +3 -3
- package/dist/src/talisman/index.js +2 -3
- package/dist/src/talisman/index.js.map +3 -3
- package/dist/src/trezor/index.cjs +2 -2
- package/dist/src/trezor/index.cjs.map +3 -3
- package/dist/src/trezor/index.js +2 -3
- package/dist/src/trezor/index.js.map +3 -3
- package/dist/src/walletconnect/index.cjs +2 -2
- package/dist/src/walletconnect/index.cjs.map +5 -5
- package/dist/src/walletconnect/index.js +2 -3
- package/dist/src/walletconnect/index.js.map +5 -5
- package/package.json +29 -26
- package/src/bitget/helpers.ts +33 -93
- package/src/bitget/index.ts +32 -54
- package/src/coinbase/index.ts +2 -2
- package/src/coinbase/signer.ts +46 -42
- package/src/ctrl/index.ts +157 -22
- package/src/ctrl/walletHelpers.ts +45 -94
- package/src/evm-extensions/index.ts +21 -40
- package/src/exodus/index.ts +18 -28
- package/src/index.ts +2 -37
- package/src/keepkey/chains/cosmos.ts +10 -7
- package/src/keepkey/chains/mayachain.ts +25 -25
- package/src/keepkey/chains/thorchain.ts +20 -14
- package/src/keepkey/chains/utxo.ts +36 -48
- package/src/keepkey/index.ts +9 -23
- package/src/keepkey-bex/index.ts +25 -23
- package/src/keepkey-bex/walletHelpers.ts +8 -36
- package/src/keplr/index.ts +6 -53
- package/src/keystore/helpers.ts +33 -56
- package/src/keystore/index.ts +15 -183
- package/src/ledger/clients/cosmos.ts +2 -2
- package/src/ledger/clients/evm.ts +3 -7
- package/src/ledger/clients/thorchain/lib.ts +0 -19
- package/src/ledger/clients/utxo.ts +5 -4
- package/src/ledger/helpers/getLedgerClient.ts +2 -2
- package/src/ledger/helpers/getLedgerTransport.ts +3 -3
- package/src/ledger/index.ts +21 -22
- package/src/ledger/interfaces/CosmosLedgerInterface.ts +1 -1
- package/src/ledger/types.ts +1 -1
- package/src/okx/helpers.ts +23 -33
- package/src/okx/index.ts +4 -47
- package/src/onekey/evmSigner.ts +133 -0
- package/src/onekey/index.ts +213 -0
- package/src/phantom/index.ts +18 -42
- package/src/polkadotjs/index.ts +5 -7
- package/src/radix/index.ts +31 -47
- package/src/talisman/index.ts +15 -32
- package/src/trezor/evmSigner.ts +3 -3
- package/src/trezor/index.ts +49 -48
- package/src/types.ts +199 -0
- package/src/utils.ts +54 -0
- package/src/walletconnect/constants.ts +1 -1
- package/src/walletconnect/helpers.ts +2 -2
- package/src/walletconnect/index.ts +38 -39
- package/dist/chunk-bhfpfqc3.js +0 -3
- package/dist/chunk-bhfpfqc3.js.map +0 -10
- package/dist/chunk-f76hj57k.js +0 -3
- package/dist/chunk-f76hj57k.js.map +0 -10
- package/dist/chunk-ha78se5g.js +0 -4
- package/dist/chunk-ha78se5g.js.map +0 -10
- package/dist/chunk-yvbvzc0q.js +0 -3
- package/dist/chunk-yvbvzc0q.js.map +0 -10
- package/src/bitget/bitgetWallet.ts +0 -32
- package/src/ctrl/ctrlWallet.ts +0 -175
- package/src/helpers.ts +0 -8
- package/src/ledger/ledgerLive.ts +0 -429
|
@@ -2,21 +2,18 @@ import type { StdSignDoc } from "@cosmjs/amino";
|
|
|
2
2
|
import {
|
|
3
3
|
Chain,
|
|
4
4
|
ChainId,
|
|
5
|
+
type GenericTransferParams,
|
|
5
6
|
SKConfig,
|
|
6
7
|
SwapKitError,
|
|
7
8
|
WalletOption,
|
|
8
9
|
createWallet,
|
|
9
10
|
filterSupportedChains,
|
|
10
11
|
} from "@swapkit/helpers";
|
|
11
|
-
import type {
|
|
12
|
-
BaseCosmosToolboxType,
|
|
13
|
-
DepositParam,
|
|
14
|
-
TransferParams,
|
|
15
|
-
} from "@swapkit/toolboxes/cosmos";
|
|
12
|
+
import type { ThorchainDepositParams, createThorchainToolbox } from "@swapkit/toolboxes/cosmos";
|
|
16
13
|
import type { WalletConnectModalSign } from "@walletconnect/modal-sign-html";
|
|
17
14
|
import type { SessionTypes, SignClientTypes } from "@walletconnect/types";
|
|
18
15
|
|
|
19
|
-
import { getWalletSupportedChains } from "../
|
|
16
|
+
import { getWalletSupportedChains } from "../utils";
|
|
20
17
|
import {
|
|
21
18
|
DEFAULT_APP_METADATA,
|
|
22
19
|
DEFAULT_COSMOS_METHODS,
|
|
@@ -76,31 +73,12 @@ export const walletconnectWallet = createWallet({
|
|
|
76
73
|
const address = getAddressByChain(chain, accounts);
|
|
77
74
|
const toolbox = await getToolbox({ session, address, chain, walletconnect });
|
|
78
75
|
|
|
79
|
-
async function getAccount(accountAddress: string) {
|
|
80
|
-
const account = await (toolbox as BaseCosmosToolboxType).getAccount(accountAddress);
|
|
81
|
-
const [{ address, algo, pubkey }] = (await walletconnect?.client.request({
|
|
82
|
-
chainId: THORCHAIN_MAINNET_ID,
|
|
83
|
-
topic: session.topic,
|
|
84
|
-
request: {
|
|
85
|
-
method: DEFAULT_COSMOS_METHODS.COSMOS_GET_ACCOUNTS,
|
|
86
|
-
params: {},
|
|
87
|
-
},
|
|
88
|
-
})) as [{ address: string; algo: string; pubkey: string }];
|
|
89
|
-
|
|
90
|
-
return { ...account, address, pubkey: { type: algo, value: pubkey } };
|
|
91
|
-
}
|
|
92
|
-
|
|
93
76
|
addChain({
|
|
94
77
|
...toolbox,
|
|
95
78
|
address,
|
|
96
|
-
balance: [],
|
|
97
79
|
chain,
|
|
98
80
|
disconnect: walletconnect.disconnect,
|
|
99
81
|
walletType: WalletOption.WALLETCONNECT,
|
|
100
|
-
getAccount:
|
|
101
|
-
chain === Chain.THORChain
|
|
102
|
-
? getAccount
|
|
103
|
-
: (toolbox as BaseCosmosToolboxType).getAccount,
|
|
104
82
|
});
|
|
105
83
|
}),
|
|
106
84
|
);
|
|
@@ -131,22 +109,22 @@ async function getToolbox<T extends (typeof WC_SUPPORTED_CHAINS)[number]>({
|
|
|
131
109
|
case Chain.Ethereum:
|
|
132
110
|
case Chain.Optimism:
|
|
133
111
|
case Chain.Polygon: {
|
|
134
|
-
const { getProvider,
|
|
112
|
+
const { getProvider, getEvmToolbox } = await import("@swapkit/toolboxes/evm");
|
|
135
113
|
|
|
136
|
-
const provider = getProvider(chain);
|
|
114
|
+
const provider = await getProvider(chain);
|
|
137
115
|
const signer = await getEVMSigner({ walletconnect, chain, provider });
|
|
138
|
-
const toolbox =
|
|
116
|
+
const toolbox = await getEvmToolbox(chain, { provider, signer });
|
|
139
117
|
|
|
140
|
-
return toolbox
|
|
118
|
+
return toolbox;
|
|
141
119
|
}
|
|
142
120
|
|
|
143
121
|
case Chain.THORChain: {
|
|
144
122
|
const { SignMode } = await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js");
|
|
145
123
|
const { TxRaw } = await import("cosmjs-types/cosmos/tx/v1beta1/tx.js");
|
|
146
|
-
const { encodePubkey, makeAuthInfoBytes } = await import("@cosmjs/proto-signing");
|
|
147
|
-
const { makeSignDoc } = await import("@cosmjs/amino");
|
|
124
|
+
const { encodePubkey, makeAuthInfoBytes } = (await import("@cosmjs/proto-signing")).default;
|
|
125
|
+
const { makeSignDoc } = (await import("@cosmjs/amino")).default;
|
|
148
126
|
const {
|
|
149
|
-
|
|
127
|
+
getCosmosToolbox,
|
|
150
128
|
buildAminoMsg,
|
|
151
129
|
buildEncodedTxBody,
|
|
152
130
|
createStargateClient,
|
|
@@ -154,7 +132,29 @@ async function getToolbox<T extends (typeof WC_SUPPORTED_CHAINS)[number]>({
|
|
|
154
132
|
getDefaultChainFee,
|
|
155
133
|
parseAminoMessageForDirectSigning,
|
|
156
134
|
} = await import("@swapkit/toolboxes/cosmos");
|
|
157
|
-
const toolbox =
|
|
135
|
+
const toolbox = await getCosmosToolbox(Chain.THORChain);
|
|
136
|
+
|
|
137
|
+
async function getAccount(accountAddress: string) {
|
|
138
|
+
const cosmosToolbox = toolbox;
|
|
139
|
+
const account = await (
|
|
140
|
+
cosmosToolbox as Awaited<ReturnType<typeof createThorchainToolbox>>
|
|
141
|
+
).getAccount(accountAddress);
|
|
142
|
+
|
|
143
|
+
if (chain !== Chain.THORChain) {
|
|
144
|
+
return account;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
const [{ address, algo, pubkey }] = (await walletconnect?.client.request({
|
|
148
|
+
chainId: THORCHAIN_MAINNET_ID,
|
|
149
|
+
topic: session.topic,
|
|
150
|
+
request: {
|
|
151
|
+
method: DEFAULT_COSMOS_METHODS.COSMOS_GET_ACCOUNTS,
|
|
152
|
+
params: {},
|
|
153
|
+
},
|
|
154
|
+
})) as [{ address: string; algo: string; pubkey: string }];
|
|
155
|
+
|
|
156
|
+
return { ...account, address, pubkey: { type: algo, value: pubkey } };
|
|
157
|
+
}
|
|
158
158
|
|
|
159
159
|
const fee = getDefaultChainFee(chain);
|
|
160
160
|
|
|
@@ -172,7 +172,7 @@ async function getToolbox<T extends (typeof WC_SUPPORTED_CHAINS)[number]>({
|
|
|
172
172
|
assetValue,
|
|
173
173
|
memo,
|
|
174
174
|
...rest
|
|
175
|
-
}:
|
|
175
|
+
}: GenericTransferParams | ThorchainDepositParams) {
|
|
176
176
|
const account = await toolbox.getAccount(address);
|
|
177
177
|
if (!account) {
|
|
178
178
|
throw new SwapKitError({ errorKey: "wallet_missing_params", info: { account } });
|
|
@@ -187,9 +187,7 @@ async function getToolbox<T extends (typeof WC_SUPPORTED_CHAINS)[number]>({
|
|
|
187
187
|
|
|
188
188
|
const { accountNumber, sequence = 0 } = account;
|
|
189
189
|
|
|
190
|
-
const msgs = [
|
|
191
|
-
buildAminoMsg({ chain: Chain.THORChain, assetValue, memo, from: address, ...rest }),
|
|
192
|
-
];
|
|
190
|
+
const msgs = [buildAminoMsg({ assetValue, memo, sender: address, ...rest })];
|
|
193
191
|
|
|
194
192
|
const chainId = ChainId.THORChain;
|
|
195
193
|
|
|
@@ -239,8 +237,9 @@ async function getToolbox<T extends (typeof WC_SUPPORTED_CHAINS)[number]>({
|
|
|
239
237
|
|
|
240
238
|
return {
|
|
241
239
|
...toolbox,
|
|
242
|
-
transfer: (params:
|
|
243
|
-
deposit: (params:
|
|
240
|
+
transfer: (params: GenericTransferParams) => thorchainTransfer(params),
|
|
241
|
+
deposit: (params: ThorchainDepositParams) => thorchainTransfer(params),
|
|
242
|
+
getAccount,
|
|
244
243
|
};
|
|
245
244
|
}
|
|
246
245
|
default:
|
package/dist/chunk-bhfpfqc3.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
var j=require("@swapkit/helpers");async function w({chain:A,derivationPath:O,provider:W}){let{AbstractSigner:k,Signature:N}=await import("ethers");class X extends k{address;chain;derivationPath;provider;constructor({chain:q,derivationPath:B,provider:D}){super(D);this.address="",this.chain=q,this.derivationPath=B,this.provider=D}getAddress=async()=>{if(!this.address){let{default:q}=await import("@trezor/connect-web"),B=await q.ethereumGetAddress({path:j.derivationPathToString(this.derivationPath),showOnTrezor:!0});if(!B.success)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{...B,chain:this.chain,derivationPath:this.derivationPath}});this.address=B.payload.address}return this.address};signMessage=async(q)=>{let{default:B}=await import("@trezor/connect-web"),D=await B.ethereumSignMessage({path:j.derivationPathToString(this.derivationPath),message:q});if(!D.success)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...D,message:q,chain:this.chain,derivationPath:this.derivationPath}});return D.payload.signature};signTypedData(){throw new Error("Not implemented")}signTransaction=async({to:q,gasLimit:B,value:D,data:f,nonce:_,maxFeePerGas:R,maxPriorityFeePerGas:U,gasPrice:V})=>{if(!q)throw new j.SwapKitError({errorKey:"wallet_missing_params",info:{to:q}});if(!B)throw new j.SwapKitError({errorKey:"wallet_missing_params",info:{gasLimit:B}});let Q=R&&U;if(Q&&!R)throw new j.SwapKitError({errorKey:"wallet_missing_params",info:{maxFeePerGas:R}});if(Q&&!U)throw new j.SwapKitError({errorKey:"wallet_missing_params",info:{maxPriorityFeePerGas:U}});if(!(Q||V))throw new j.SwapKitError({errorKey:"wallet_missing_params",info:{gasPrice:V}});let{default:H}=await import("@trezor/connect-web"),{toHexString:J}=await import("@swapkit/toolboxes/evm"),{Transaction:I}=await import("ethers"),L=Q?{maxFeePerGas:J(BigInt(R?.toString()||0)),maxPriorityFeePerGas:J(BigInt(U?.toString()||0))}:V&&{gasPrice:J(BigInt(V?.toString()||0))}||{gasPrice:"0x0"},b=J(BigInt(_||await this.provider.getTransactionCount(await this.getAddress(),"pending"))),Y={chainId:Number.parseInt(j.ChainToChainId[this.chain]),to:q.toString(),value:J(BigInt(D?.toString()||0)),gasLimit:J(BigInt(B?.toString()||0)),nonce:b,data:f?.toString()||"0x",...L},{success:C,payload:Z}=await H.ethereumSignTransaction({path:j.derivationPathToString(this.derivationPath),transaction:Y});if(!C)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...Z,chain:this.chain,derivationPath:this.derivationPath}});let{r:K,s:u,v:z}=Z,y=N.from({r:K,s:u,v:new j.SwapKitNumber(BigInt(z)).getBaseValue("number")}),$=I.from({...Y,nonce:Number.parseInt(Y.nonce,16),type:Q?2:0,signature:y}).serialized;if(!$)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:this.chain,derivationPath:this.derivationPath}});return $};connect=(q)=>{if(!q)throw new j.SwapKitError({errorKey:"wallet_provider_not_found",info:{wallet:j.WalletOption.TREZOR,chain:this.chain,derivationPath:this.derivationPath}});return new X({chain:this.chain,derivationPath:this.derivationPath,provider:q})}}return new X({chain:A,derivationPath:O,provider:W})}
|
|
2
|
-
|
|
3
|
-
//# debugId=F889E83D9CD533AF64756E2164756E21
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/trezor/evmSigner.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"import {\n type Chain,\n ChainToChainId,\n type DerivationPathArray,\n SwapKitError,\n SwapKitNumber,\n WalletOption,\n derivationPathToString,\n} from \"@swapkit/helpers\";\nimport type { JsonRpcProvider, Provider, TransactionRequest } from \"ethers\";\n\ntype TrezorEVMSignerParams = {\n chain: Chain;\n derivationPath: DerivationPathArray;\n provider: Provider | JsonRpcProvider;\n};\n\nexport async function getEVMSigner({ chain, derivationPath, provider }: TrezorEVMSignerParams) {\n const { AbstractSigner, Signature } = await import(\"ethers\");\n\n class TrezorSigner extends AbstractSigner {\n address: string;\n chain: Chain;\n derivationPath: DerivationPathArray;\n readonly provider: Provider | JsonRpcProvider;\n\n constructor({ chain, derivationPath, provider }: TrezorEVMSignerParams) {\n super(provider);\n\n this.address = \"\";\n this.chain = chain;\n this.derivationPath = derivationPath;\n this.provider = provider;\n }\n\n getAddress = async () => {\n if (!this.address) {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n\n const result = await TrezorConnect.ethereumGetAddress({\n path: derivationPathToString(this.derivationPath),\n showOnTrezor: true,\n });\n\n if (!result.success) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_get_address\",\n info: { ...result, chain: this.chain, derivationPath: this.derivationPath },\n });\n }\n\n this.address = result.payload.address;\n }\n\n return this.address;\n };\n\n signMessage = async (message: string) => {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n\n const result = await TrezorConnect.ethereumSignMessage({\n path: derivationPathToString(this.derivationPath),\n message,\n });\n\n if (!result.success) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: { ...result, message, chain: this.chain, derivationPath: this.derivationPath },\n });\n }\n\n return result.payload.signature;\n };\n\n signTypedData(): Promise<string> {\n throw new Error(\"Not implemented\");\n }\n\n signTransaction = async ({\n to,\n gasLimit,\n value,\n data,\n nonce,\n maxFeePerGas,\n maxPriorityFeePerGas,\n gasPrice,\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: any: refactor\n }: TransactionRequest) => {\n if (!to) throw new SwapKitError({ errorKey: \"wallet_missing_params\", info: { to } });\n if (!gasLimit)\n throw new SwapKitError({ errorKey: \"wallet_missing_params\", info: { gasLimit } });\n\n const isEIP1559 = maxFeePerGas && maxPriorityFeePerGas;\n\n if (isEIP1559 && !maxFeePerGas) {\n throw new SwapKitError({ errorKey: \"wallet_missing_params\", info: { maxFeePerGas } });\n }\n if (isEIP1559 && !maxPriorityFeePerGas) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { maxPriorityFeePerGas },\n });\n }\n if (!(isEIP1559 || gasPrice)) {\n throw new SwapKitError({ errorKey: \"wallet_missing_params\", info: { gasPrice } });\n }\n\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const { toHexString } = await import(\"@swapkit/toolboxes/evm\");\n const { Transaction } = await import(\"ethers\");\n\n const additionalFields = isEIP1559\n ? {\n maxFeePerGas: toHexString(BigInt(maxFeePerGas?.toString() || 0)),\n maxPriorityFeePerGas: toHexString(BigInt(maxPriorityFeePerGas?.toString() || 0)),\n }\n : (gasPrice && { gasPrice: toHexString(BigInt(gasPrice?.toString() || 0)) }) || {\n gasPrice: \"0x0\",\n };\n\n const hexifiedNonce = toHexString(\n BigInt(\n nonce || (await this.provider.getTransactionCount(await this.getAddress(), \"pending\")),\n ),\n );\n\n const formattedTx = {\n chainId: Number.parseInt(ChainToChainId[this.chain]),\n to: to.toString(),\n value: toHexString(BigInt(value?.toString() || 0)),\n gasLimit: toHexString(BigInt(gasLimit?.toString() || 0)),\n nonce: hexifiedNonce,\n data: data?.toString() || \"0x\",\n ...additionalFields,\n };\n\n const { success, payload } = await TrezorConnect.ethereumSignTransaction({\n path: derivationPathToString(this.derivationPath),\n transaction: formattedTx,\n });\n\n if (!success) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: { ...payload, chain: this.chain, derivationPath: this.derivationPath },\n });\n }\n\n const { r, s, v } = payload;\n\n const signature = Signature.from({\n r,\n s,\n v: new SwapKitNumber(BigInt(v)).getBaseValue(\"number\"),\n });\n\n const serializedTx = Transaction.from({\n ...formattedTx,\n nonce: Number.parseInt(formattedTx.nonce, 16),\n type: isEIP1559 ? 2 : 0,\n signature,\n }).serialized;\n\n if (!serializedTx) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: { chain: this.chain, derivationPath: this.derivationPath },\n });\n }\n\n return serializedTx;\n };\n\n connect = (provider: Provider | null) => {\n if (!provider) {\n throw new SwapKitError({\n errorKey: \"wallet_provider_not_found\",\n info: {\n wallet: WalletOption.TREZOR,\n chain: this.chain,\n derivationPath: this.derivationPath,\n },\n });\n }\n\n return new TrezorSigner({\n chain: this.chain,\n derivationPath: this.derivationPath,\n provider,\n });\n };\n }\n\n return new TrezorSigner({ chain, derivationPath, provider });\n}\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": "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",
|
|
8
|
-
"debugId": "F889E83D9CD533AF64756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
package/dist/chunk-f76hj57k.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{s as M,t as Q}from"./chunk-5m175wfy.js";import{ChainToChainId as G,SwapKitError as B,SwapKitNumber as h,WalletOption as F,derivationPathToString as $}from"@swapkit/helpers";async function l({chain:W,derivationPath:k,provider:N}){let{AbstractSigner:f,Signature:_}=await import("ethers");class Y extends f{address;chain;derivationPath;provider;constructor({chain:j,derivationPath:q,provider:D}){super(D);this.address="",this.chain=j,this.derivationPath=q,this.provider=D}getAddress=async()=>{if(!this.address){let{default:j}=await import("@trezor/connect-web"),q=await j.ethereumGetAddress({path:$(this.derivationPath),showOnTrezor:!0});if(!q.success)throw new B({errorKey:"wallet_trezor_failed_to_get_address",info:{...q,chain:this.chain,derivationPath:this.derivationPath}});this.address=q.payload.address}return this.address};signMessage=async(j)=>{let{default:q}=await import("@trezor/connect-web"),D=await q.ethereumSignMessage({path:$(this.derivationPath),message:j});if(!D.success)throw new B({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...D,message:j,chain:this.chain,derivationPath:this.derivationPath}});return D.payload.signature};signTypedData(){throw new Error("Not implemented")}signTransaction=async({to:j,gasLimit:q,value:D,data:H,nonce:I,maxFeePerGas:U,maxPriorityFeePerGas:V,gasPrice:X})=>{if(!j)throw new B({errorKey:"wallet_missing_params",info:{to:j}});if(!q)throw new B({errorKey:"wallet_missing_params",info:{gasLimit:q}});let R=U&&V;if(R&&!U)throw new B({errorKey:"wallet_missing_params",info:{maxFeePerGas:U}});if(R&&!V)throw new B({errorKey:"wallet_missing_params",info:{maxPriorityFeePerGas:V}});if(!(R||X))throw new B({errorKey:"wallet_missing_params",info:{gasPrice:X}});let{default:L}=await import("@trezor/connect-web"),{toHexString:J}=await import("@swapkit/toolboxes/evm"),{Transaction:b}=await import("ethers"),C=R?{maxFeePerGas:J(BigInt(U?.toString()||0)),maxPriorityFeePerGas:J(BigInt(V?.toString()||0))}:X&&{gasPrice:J(BigInt(X?.toString()||0))}||{gasPrice:"0x0"},K=J(BigInt(I||await this.provider.getTransactionCount(await this.getAddress(),"pending"))),Z={chainId:Number.parseInt(G[this.chain]),to:j.toString(),value:J(BigInt(D?.toString()||0)),gasLimit:J(BigInt(q?.toString()||0)),nonce:K,data:H?.toString()||"0x",...C},{success:u,payload:A}=await L.ethereumSignTransaction({path:$(this.derivationPath),transaction:Z});if(!u)throw new B({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{...A,chain:this.chain,derivationPath:this.derivationPath}});let{r:z,s:y,v:w}=A,E=_.from({r:z,s:y,v:new h(BigInt(w)).getBaseValue("number")}),O=b.from({...Z,nonce:Number.parseInt(Z.nonce,16),type:R?2:0,signature:E}).serialized;if(!O)throw new B({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:this.chain,derivationPath:this.derivationPath}});return O};connect=(j)=>{if(!j)throw new B({errorKey:"wallet_provider_not_found",info:{wallet:F.TREZOR,chain:this.chain,derivationPath:this.derivationPath}});return new Y({chain:this.chain,derivationPath:this.derivationPath,provider:j})}}return new Y({chain:W,derivationPath:k,provider:N})}export{l as getEVMSigner};
|
|
2
|
-
|
|
3
|
-
//# debugId=814607CEF7106DB164756E2164756E21
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/trezor/evmSigner.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"import {\n type Chain,\n ChainToChainId,\n type DerivationPathArray,\n SwapKitError,\n SwapKitNumber,\n WalletOption,\n derivationPathToString,\n} from \"@swapkit/helpers\";\nimport type { JsonRpcProvider, Provider, TransactionRequest } from \"ethers\";\n\ntype TrezorEVMSignerParams = {\n chain: Chain;\n derivationPath: DerivationPathArray;\n provider: Provider | JsonRpcProvider;\n};\n\nexport async function getEVMSigner({ chain, derivationPath, provider }: TrezorEVMSignerParams) {\n const { AbstractSigner, Signature } = await import(\"ethers\");\n\n class TrezorSigner extends AbstractSigner {\n address: string;\n chain: Chain;\n derivationPath: DerivationPathArray;\n readonly provider: Provider | JsonRpcProvider;\n\n constructor({ chain, derivationPath, provider }: TrezorEVMSignerParams) {\n super(provider);\n\n this.address = \"\";\n this.chain = chain;\n this.derivationPath = derivationPath;\n this.provider = provider;\n }\n\n getAddress = async () => {\n if (!this.address) {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n\n const result = await TrezorConnect.ethereumGetAddress({\n path: derivationPathToString(this.derivationPath),\n showOnTrezor: true,\n });\n\n if (!result.success) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_get_address\",\n info: { ...result, chain: this.chain, derivationPath: this.derivationPath },\n });\n }\n\n this.address = result.payload.address;\n }\n\n return this.address;\n };\n\n signMessage = async (message: string) => {\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n\n const result = await TrezorConnect.ethereumSignMessage({\n path: derivationPathToString(this.derivationPath),\n message,\n });\n\n if (!result.success) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: { ...result, message, chain: this.chain, derivationPath: this.derivationPath },\n });\n }\n\n return result.payload.signature;\n };\n\n signTypedData(): Promise<string> {\n throw new Error(\"Not implemented\");\n }\n\n signTransaction = async ({\n to,\n gasLimit,\n value,\n data,\n nonce,\n maxFeePerGas,\n maxPriorityFeePerGas,\n gasPrice,\n // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: any: refactor\n }: TransactionRequest) => {\n if (!to) throw new SwapKitError({ errorKey: \"wallet_missing_params\", info: { to } });\n if (!gasLimit)\n throw new SwapKitError({ errorKey: \"wallet_missing_params\", info: { gasLimit } });\n\n const isEIP1559 = maxFeePerGas && maxPriorityFeePerGas;\n\n if (isEIP1559 && !maxFeePerGas) {\n throw new SwapKitError({ errorKey: \"wallet_missing_params\", info: { maxFeePerGas } });\n }\n if (isEIP1559 && !maxPriorityFeePerGas) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { maxPriorityFeePerGas },\n });\n }\n if (!(isEIP1559 || gasPrice)) {\n throw new SwapKitError({ errorKey: \"wallet_missing_params\", info: { gasPrice } });\n }\n\n const { default: TrezorConnect } = await import(\"@trezor/connect-web\");\n const { toHexString } = await import(\"@swapkit/toolboxes/evm\");\n const { Transaction } = await import(\"ethers\");\n\n const additionalFields = isEIP1559\n ? {\n maxFeePerGas: toHexString(BigInt(maxFeePerGas?.toString() || 0)),\n maxPriorityFeePerGas: toHexString(BigInt(maxPriorityFeePerGas?.toString() || 0)),\n }\n : (gasPrice && { gasPrice: toHexString(BigInt(gasPrice?.toString() || 0)) }) || {\n gasPrice: \"0x0\",\n };\n\n const hexifiedNonce = toHexString(\n BigInt(\n nonce || (await this.provider.getTransactionCount(await this.getAddress(), \"pending\")),\n ),\n );\n\n const formattedTx = {\n chainId: Number.parseInt(ChainToChainId[this.chain]),\n to: to.toString(),\n value: toHexString(BigInt(value?.toString() || 0)),\n gasLimit: toHexString(BigInt(gasLimit?.toString() || 0)),\n nonce: hexifiedNonce,\n data: data?.toString() || \"0x\",\n ...additionalFields,\n };\n\n const { success, payload } = await TrezorConnect.ethereumSignTransaction({\n path: derivationPathToString(this.derivationPath),\n transaction: formattedTx,\n });\n\n if (!success) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: { ...payload, chain: this.chain, derivationPath: this.derivationPath },\n });\n }\n\n const { r, s, v } = payload;\n\n const signature = Signature.from({\n r,\n s,\n v: new SwapKitNumber(BigInt(v)).getBaseValue(\"number\"),\n });\n\n const serializedTx = Transaction.from({\n ...formattedTx,\n nonce: Number.parseInt(formattedTx.nonce, 16),\n type: isEIP1559 ? 2 : 0,\n signature,\n }).serialized;\n\n if (!serializedTx) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: { chain: this.chain, derivationPath: this.derivationPath },\n });\n }\n\n return serializedTx;\n };\n\n connect = (provider: Provider | null) => {\n if (!provider) {\n throw new SwapKitError({\n errorKey: \"wallet_provider_not_found\",\n info: {\n wallet: WalletOption.TREZOR,\n chain: this.chain,\n derivationPath: this.derivationPath,\n },\n });\n }\n\n return new TrezorSigner({\n chain: this.chain,\n derivationPath: this.derivationPath,\n provider,\n });\n };\n }\n\n return new TrezorSigner({ chain, derivationPath, provider });\n}\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": "+CAAA,yBAEE,kBAEA,mBACA,kBACA,4BACA,yBAUF,eAAsB,CAAY,EAAG,QAAO,iBAAgB,YAAmC,CAC7F,IAAQ,iBAAgB,aAAc,KAAa,kBAEnD,MAAM,UAAqB,CAAe,CACxC,QACA,MACA,eACS,SAET,WAAW,EAAG,QAAO,iBAAgB,YAAmC,CACtE,MAAM,CAAQ,EAEd,KAAK,QAAU,GACf,KAAK,MAAQ,EACb,KAAK,eAAiB,EACtB,KAAK,SAAW,EAGlB,WAAa,SAAY,CACvB,IAAK,KAAK,QAAS,CACjB,IAAQ,QAAS,GAAkB,KAAa,+BAE1C,EAAS,MAAM,EAAc,mBAAmB,CACpD,KAAM,EAAuB,KAAK,cAAc,EAChD,aAAc,EAChB,CAAC,EAED,IAAK,EAAO,QACV,MAAM,IAAI,EAAa,CACrB,SAAU,sCACV,KAAM,IAAK,EAAQ,MAAO,KAAK,MAAO,eAAgB,KAAK,cAAe,CAC5E,CAAC,EAGH,KAAK,QAAU,EAAO,QAAQ,QAGhC,OAAO,KAAK,SAGd,YAAc,MAAO,IAAoB,CACvC,IAAQ,QAAS,GAAkB,KAAa,+BAE1C,EAAS,MAAM,EAAc,oBAAoB,CACrD,KAAM,EAAuB,KAAK,cAAc,EAChD,SACF,CAAC,EAED,IAAK,EAAO,QACV,MAAM,IAAI,EAAa,CACrB,SAAU,2CACV,KAAM,IAAK,EAAQ,UAAS,MAAO,KAAK,MAAO,eAAgB,KAAK,cAAe,CACrF,CAAC,EAGH,OAAO,EAAO,QAAQ,WAGxB,aAAa,EAAoB,CAC/B,MAAM,IAAI,MAAM,iBAAiB,EAGnC,gBAAkB,OAChB,KACA,WACA,QACA,OACA,QACA,eACA,uBACA,cAEwB,CACxB,IAAK,EAAI,MAAM,IAAI,EAAa,CAAE,SAAU,wBAAyB,KAAM,CAAE,IAAG,CAAE,CAAC,EACnF,IAAK,EACH,MAAM,IAAI,EAAa,CAAE,SAAU,wBAAyB,KAAM,CAAE,UAAS,CAAE,CAAC,EAElF,IAAM,EAAY,GAAgB,EAElC,GAAI,IAAc,EAChB,MAAM,IAAI,EAAa,CAAE,SAAU,wBAAyB,KAAM,CAAE,cAAa,CAAE,CAAC,EAEtF,GAAI,IAAc,EAChB,MAAM,IAAI,EAAa,CACrB,SAAU,wBACV,KAAM,CAAE,sBAAqB,CAC/B,CAAC,EAEH,KAAM,GAAa,GACjB,MAAM,IAAI,EAAa,CAAE,SAAU,wBAAyB,KAAM,CAAE,UAAS,CAAE,CAAC,EAGlF,IAAQ,QAAS,GAAkB,KAAa,gCACxC,eAAgB,KAAa,mCAC7B,eAAgB,KAAa,kBAE/B,EAAmB,EACrB,CACE,aAAc,EAAY,OAAO,GAAc,SAAS,GAAK,CAAC,CAAC,EAC/D,qBAAsB,EAAY,OAAO,GAAsB,SAAS,GAAK,CAAC,CAAC,CACjF,EACC,GAAY,CAAE,SAAU,EAAY,OAAO,GAAU,SAAS,GAAK,CAAC,CAAC,CAAE,GAAM,CAC5E,SAAU,KACZ,EAEE,EAAgB,EACpB,OACE,GAAU,MAAM,KAAK,SAAS,oBAAoB,MAAM,KAAK,WAAW,EAAG,SAAS,CACtF,CACF,EAEM,EAAc,CAClB,QAAS,OAAO,SAAS,EAAe,KAAK,MAAM,EACnD,GAAI,EAAG,SAAS,EAChB,MAAO,EAAY,OAAO,GAAO,SAAS,GAAK,CAAC,CAAC,EACjD,SAAU,EAAY,OAAO,GAAU,SAAS,GAAK,CAAC,CAAC,EACvD,MAAO,EACP,KAAM,GAAM,SAAS,GAAK,QACvB,CACL,GAEQ,UAAS,WAAY,MAAM,EAAc,wBAAwB,CACvE,KAAM,EAAuB,KAAK,cAAc,EAChD,YAAa,CACf,CAAC,EAED,IAAK,EACH,MAAM,IAAI,EAAa,CACrB,SAAU,2CACV,KAAM,IAAK,EAAS,MAAO,KAAK,MAAO,eAAgB,KAAK,cAAe,CAC7E,CAAC,EAGH,IAAQ,IAAG,IAAG,KAAM,EAEd,EAAY,EAAU,KAAK,CAC/B,IACA,IACA,EAAG,IAAI,EAAc,OAAO,CAAC,CAAC,EAAE,aAAa,QAAQ,CACvD,CAAC,EAEK,EAAe,EAAY,KAAK,IACjC,EACH,MAAO,OAAO,SAAS,EAAY,MAAO,EAAE,EAC5C,KAAM,EAAY,EAAI,EACtB,WACF,CAAC,EAAE,WAEH,IAAK,EACH,MAAM,IAAI,EAAa,CACrB,SAAU,2CACV,KAAM,CAAE,MAAO,KAAK,MAAO,eAAgB,KAAK,cAAe,CACjE,CAAC,EAGH,OAAO,GAGT,QAAU,CAAC,IAA8B,CACvC,IAAK,EACH,MAAM,IAAI,EAAa,CACrB,SAAU,4BACV,KAAM,CACJ,OAAQ,EAAa,OACrB,MAAO,KAAK,MACZ,eAAgB,KAAK,cACvB,CACF,CAAC,EAGH,OAAO,IAAI,EAAa,CACtB,MAAO,KAAK,MACZ,eAAgB,KAAK,eACrB,UACF,CAAC,EAEL,CAEA,OAAO,IAAI,EAAa,CAAE,QAAO,iBAAgB,UAAS,CAAC",
|
|
8
|
-
"debugId": "814607CEF7106DB164756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
package/dist/chunk-ha78se5g.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/helpers.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"import type { createWallet } from \"@swapkit/helpers\";\n\nexport function getWalletSupportedChains<\n T extends ReturnType<typeof createWallet<any, any, any, any>>,\n>(wallet: T): T[keyof T][\"supportedChains\"] {\n const walletName = Object.keys(wallet)?.[0] || \"\";\n return wallet?.[walletName]?.supportedChains || [];\n}\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": "AAEO,SAAS,CAEf,CAAC,EAA0C,CAC1C,IAAM,EAAa,OAAO,KAAK,CAAM,IAAI,IAAM,GAC/C,OAAO,IAAS,IAAa,iBAAmB,CAAC",
|
|
8
|
-
"debugId": "F206E598AB17CDC064756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
package/dist/chunk-yvbvzc0q.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/helpers.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"import type { createWallet } from \"@swapkit/helpers\";\n\nexport function getWalletSupportedChains<\n T extends ReturnType<typeof createWallet<any, any, any, any>>,\n>(wallet: T): T[keyof T][\"supportedChains\"] {\n const walletName = Object.keys(wallet)?.[0] || \"\";\n return wallet?.[walletName]?.supportedChains || [];\n}\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": "+CAEO,SAAS,CAEf,CAAC,EAA0C,CAC1C,IAAM,EAAa,OAAO,KAAK,CAAM,IAAI,IAAM,GAC/C,OAAO,IAAS,IAAa,iBAAmB,CAAC",
|
|
8
|
-
"debugId": "C48D3544860CE65864756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
Chain,
|
|
3
|
-
EVMChains,
|
|
4
|
-
WalletOption,
|
|
5
|
-
createWallet,
|
|
6
|
-
filterSupportedChains,
|
|
7
|
-
} from "@swapkit/helpers";
|
|
8
|
-
|
|
9
|
-
import { getWalletSupportedChains } from "../helpers";
|
|
10
|
-
import { getWalletMethods } from "./helpers";
|
|
11
|
-
|
|
12
|
-
export const bitgetWallet = createWallet({
|
|
13
|
-
name: "connectBitget",
|
|
14
|
-
walletType: WalletOption.BITGET,
|
|
15
|
-
supportedChains: [...EVMChains, Chain.Cosmos, Chain.Bitcoin, Chain.Solana],
|
|
16
|
-
connect: ({ addChain, walletType, supportedChains }) =>
|
|
17
|
-
async function connectBitget(chains: Chain[]) {
|
|
18
|
-
const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });
|
|
19
|
-
|
|
20
|
-
await Promise.all(
|
|
21
|
-
filteredChains.map(async (chain) => {
|
|
22
|
-
const walletMethods = await getWalletMethods(chain);
|
|
23
|
-
|
|
24
|
-
addChain({ ...walletMethods, chain, balance: [], walletType });
|
|
25
|
-
}),
|
|
26
|
-
);
|
|
27
|
-
|
|
28
|
-
return true;
|
|
29
|
-
},
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
export const BITGET_SUPPORTED_CHAINS = getWalletSupportedChains(bitgetWallet);
|
package/src/ctrl/ctrlWallet.ts
DELETED
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type AssetValue,
|
|
3
|
-
Chain,
|
|
4
|
-
ChainToChainId,
|
|
5
|
-
SwapKitError,
|
|
6
|
-
WalletOption,
|
|
7
|
-
createWallet,
|
|
8
|
-
filterSupportedChains,
|
|
9
|
-
} from "@swapkit/helpers";
|
|
10
|
-
import type { NonETHToolbox } from "@swapkit/toolboxes/evm";
|
|
11
|
-
|
|
12
|
-
import { getWalletSupportedChains } from "../helpers";
|
|
13
|
-
import {
|
|
14
|
-
type WalletTxParams,
|
|
15
|
-
getCtrlAddress,
|
|
16
|
-
getCtrlMethods,
|
|
17
|
-
getCtrlProvider,
|
|
18
|
-
solanaTransfer,
|
|
19
|
-
walletTransfer,
|
|
20
|
-
} from "./walletHelpers";
|
|
21
|
-
|
|
22
|
-
export const ctrlWallet = createWallet({
|
|
23
|
-
name: "connectCtrl",
|
|
24
|
-
walletType: WalletOption.CTRL,
|
|
25
|
-
supportedChains: [
|
|
26
|
-
Chain.Arbitrum,
|
|
27
|
-
Chain.Avalanche,
|
|
28
|
-
Chain.Base,
|
|
29
|
-
Chain.BinanceSmartChain,
|
|
30
|
-
Chain.Bitcoin,
|
|
31
|
-
Chain.BitcoinCash,
|
|
32
|
-
Chain.Cosmos,
|
|
33
|
-
Chain.Dogecoin,
|
|
34
|
-
Chain.Ethereum,
|
|
35
|
-
Chain.Kujira,
|
|
36
|
-
Chain.Litecoin,
|
|
37
|
-
Chain.Maya,
|
|
38
|
-
Chain.Optimism,
|
|
39
|
-
Chain.Polygon,
|
|
40
|
-
Chain.Solana,
|
|
41
|
-
Chain.THORChain,
|
|
42
|
-
],
|
|
43
|
-
connect: ({ addChain, walletType, supportedChains }) =>
|
|
44
|
-
async function connectCtrl(chains: Chain[]) {
|
|
45
|
-
const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });
|
|
46
|
-
|
|
47
|
-
const promises = filteredChains.map(async (chain) => {
|
|
48
|
-
const address = await getCtrlAddress(chain);
|
|
49
|
-
const walletMethods = await getWalletMethods(chain);
|
|
50
|
-
|
|
51
|
-
addChain({ ...walletMethods, address, balance: [], chain, walletType });
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
await Promise.all(promises);
|
|
55
|
-
|
|
56
|
-
return true;
|
|
57
|
-
},
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
export const CTRL_SUPPORTED_CHAINS = getWalletSupportedChains(ctrlWallet);
|
|
61
|
-
|
|
62
|
-
async function getWalletMethods(chain: (typeof CTRL_SUPPORTED_CHAINS)[number]) {
|
|
63
|
-
switch (chain) {
|
|
64
|
-
case Chain.Solana: {
|
|
65
|
-
const { SOLToolbox } = await import("@swapkit/toolboxes/solana");
|
|
66
|
-
|
|
67
|
-
const toolbox = SOLToolbox();
|
|
68
|
-
const pubKey = await window.xfi?.solana?.connect();
|
|
69
|
-
|
|
70
|
-
if (!pubKey) {
|
|
71
|
-
throw new SwapKitError("wallet_ctrl_not_found");
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return { ...toolbox, transfer: solanaTransfer(toolbox, pubKey.publicKey) };
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
case Chain.Maya:
|
|
78
|
-
case Chain.THORChain: {
|
|
79
|
-
const { getToolboxByChain, THORCHAIN_GAS_VALUE, MAYA_GAS_VALUE } = await import(
|
|
80
|
-
"@swapkit/toolboxes/cosmos"
|
|
81
|
-
);
|
|
82
|
-
|
|
83
|
-
const gasLimit = chain === Chain.Maya ? MAYA_GAS_VALUE : THORCHAIN_GAS_VALUE;
|
|
84
|
-
const toolbox = getToolboxByChain(chain);
|
|
85
|
-
|
|
86
|
-
return {
|
|
87
|
-
...toolbox(),
|
|
88
|
-
deposit: (tx: WalletTxParams) => walletTransfer({ ...tx, recipient: "" }, "deposit"),
|
|
89
|
-
transfer: (tx: WalletTxParams) => walletTransfer({ ...tx, gasLimit }, "transfer"),
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
case Chain.Cosmos:
|
|
94
|
-
case Chain.Kujira: {
|
|
95
|
-
const { getToolboxByChain } = await import("@swapkit/toolboxes/cosmos");
|
|
96
|
-
|
|
97
|
-
const chainId = ChainToChainId[chain];
|
|
98
|
-
|
|
99
|
-
await window.xfi?.keplr?.enable(chainId);
|
|
100
|
-
// @ts-ignore
|
|
101
|
-
const offlineSigner = window.xfi?.keplr?.getOfflineSignerOnlyAmino(chainId);
|
|
102
|
-
|
|
103
|
-
const toolbox = getToolboxByChain(chain)();
|
|
104
|
-
|
|
105
|
-
const transfer = (params: {
|
|
106
|
-
from: string;
|
|
107
|
-
recipient: string;
|
|
108
|
-
assetValue: AssetValue;
|
|
109
|
-
memo: string;
|
|
110
|
-
}) => toolbox.transfer({ signer: offlineSigner, ...params });
|
|
111
|
-
|
|
112
|
-
return {
|
|
113
|
-
...toolbox,
|
|
114
|
-
|
|
115
|
-
transfer,
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
case Chain.Bitcoin:
|
|
120
|
-
case Chain.BitcoinCash:
|
|
121
|
-
case Chain.Dogecoin:
|
|
122
|
-
case Chain.Litecoin: {
|
|
123
|
-
const { getToolboxByChain } = await import("@swapkit/toolboxes/utxo");
|
|
124
|
-
const toolbox = getToolboxByChain(chain)();
|
|
125
|
-
|
|
126
|
-
return { ...toolbox, transfer: walletTransfer };
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
case Chain.Arbitrum:
|
|
130
|
-
case Chain.Avalanche:
|
|
131
|
-
case Chain.Base:
|
|
132
|
-
case Chain.BinanceSmartChain:
|
|
133
|
-
case Chain.Ethereum:
|
|
134
|
-
case Chain.Optimism:
|
|
135
|
-
case Chain.Polygon: {
|
|
136
|
-
const { prepareNetworkSwitch, switchEVMWalletNetwork } = await import("@swapkit/helpers");
|
|
137
|
-
const { getToolboxByChain } = await import("@swapkit/toolboxes/evm");
|
|
138
|
-
const { BrowserProvider } = await import("ethers");
|
|
139
|
-
const ethereumWindowProvider = getCtrlProvider(chain);
|
|
140
|
-
|
|
141
|
-
if (!ethereumWindowProvider) {
|
|
142
|
-
throw new SwapKitError("wallet_ctrl_not_found");
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
const provider = new BrowserProvider(ethereumWindowProvider, "any");
|
|
146
|
-
const signer = await provider.getSigner();
|
|
147
|
-
const toolbox = getToolboxByChain(chain)({ provider, signer });
|
|
148
|
-
const ctrlMethods = getCtrlMethods(provider);
|
|
149
|
-
|
|
150
|
-
try {
|
|
151
|
-
if (chain !== Chain.Ethereum) {
|
|
152
|
-
const networkParams = (toolbox as NonETHToolbox).getNetworkParams();
|
|
153
|
-
await switchEVMWalletNetwork(provider, chain, networkParams);
|
|
154
|
-
}
|
|
155
|
-
} catch (_error) {
|
|
156
|
-
throw new SwapKitError({
|
|
157
|
-
errorKey: "wallet_failed_to_add_or_switch_network",
|
|
158
|
-
info: { wallet: WalletOption.CTRL, chain },
|
|
159
|
-
});
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
return prepareNetworkSwitch({
|
|
163
|
-
provider: window.xfi?.ethereum,
|
|
164
|
-
chain,
|
|
165
|
-
toolbox: {
|
|
166
|
-
...toolbox,
|
|
167
|
-
...ctrlMethods,
|
|
168
|
-
},
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
default:
|
|
173
|
-
return null;
|
|
174
|
-
}
|
|
175
|
-
}
|
package/src/helpers.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { createWallet } from "@swapkit/helpers";
|
|
2
|
-
|
|
3
|
-
export function getWalletSupportedChains<
|
|
4
|
-
T extends ReturnType<typeof createWallet<any, any, any, any>>,
|
|
5
|
-
>(wallet: T): T[keyof T]["supportedChains"] {
|
|
6
|
-
const walletName = Object.keys(wallet)?.[0] || "";
|
|
7
|
-
return wallet?.[walletName]?.supportedChains || [];
|
|
8
|
-
}
|