@swapkit/wallets 3.0.0-beta.1 → 3.0.0-beta.11
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-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.js +1 -1
- package/dist/src/coinbase/index.js +1 -1
- package/dist/src/ctrl/index.js +1 -1
- package/dist/src/evm-extensions/index.js +1 -1
- package/dist/src/exodus/index.js +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/keepkey/index.cjs +2 -2
- package/dist/src/keepkey/index.cjs.map +4 -4
- package/dist/src/keepkey/index.js +2 -2
- package/dist/src/keepkey/index.js.map +4 -4
- package/dist/src/keepkey-bex/index.js +1 -1
- package/dist/src/keystore/index.cjs +2 -2
- package/dist/src/keystore/index.cjs.map +3 -3
- package/dist/src/keystore/index.js +2 -2
- package/dist/src/keystore/index.js.map +3 -3
- package/dist/src/ledger/index.cjs +3 -3
- package/dist/src/ledger/index.cjs.map +7 -7
- package/dist/src/ledger/index.js +3 -3
- package/dist/src/ledger/index.js.map +7 -7
- package/dist/src/okx/index.js +1 -1
- package/dist/src/onekey/index.js +1 -1
- package/dist/src/phantom/index.js +1 -1
- package/dist/src/polkadotjs/index.js +1 -1
- package/dist/src/radix/index.js +1 -1
- package/dist/src/talisman/index.js +1 -1
- package/dist/src/trezor/index.cjs +2 -2
- package/dist/src/trezor/index.cjs.map +3 -3
- package/dist/src/trezor/index.js +2 -2
- package/dist/src/trezor/index.js.map +3 -3
- package/dist/src/walletconnect/index.cjs +2 -2
- package/dist/src/walletconnect/index.cjs.map +3 -3
- package/dist/src/walletconnect/index.js +2 -2
- package/dist/src/walletconnect/index.js.map +3 -3
- package/package.json +4 -6
- package/src/keepkey/chains/mayachain.ts +1 -1
- package/src/keepkey/chains/thorchain.ts +1 -1
- package/src/keystore/helpers.ts +2 -4
- package/src/ledger/clients/cosmos.ts +2 -2
- package/src/ledger/clients/utxo.ts +2 -2
- package/src/ledger/helpers/getLedgerTransport.ts +3 -3
- package/src/ledger/index.ts +1 -1
- package/src/ledger/interfaces/CosmosLedgerInterface.ts +1 -1
- package/src/trezor/evmSigner.ts +3 -3
- package/src/trezor/index.ts +3 -3
- package/src/walletconnect/index.ts +2 -2
- package/dist/chunk-bhfpfqc3.js +0 -3
- package/dist/chunk-bhfpfqc3.js.map +0 -10
- package/dist/chunk-q81hzyra.js +0 -3
- package/dist/chunk-q81hzyra.js.map +0 -10
- /package/dist/{chunk-czhtd6cy.js → chunk-9cnrfb9p.js} +0 -0
- /package/dist/{chunk-czhtd6cy.js.map → chunk-9cnrfb9p.js.map} +0 -0
- /package/dist/{chunk-qadd75nn.js → chunk-bw2b8py6.js} +0 -0
- /package/dist/{chunk-qadd75nn.js.map → chunk-bw2b8py6.js.map} +0 -0
package/src/trezor/index.ts
CHANGED
|
@@ -68,7 +68,7 @@ async function getTrezorWallet<T extends Chain>({
|
|
|
68
68
|
const coin = chain.toLowerCase();
|
|
69
69
|
|
|
70
70
|
const getAddress = async (path: DerivationPathArray = derivationPath) => {
|
|
71
|
-
const
|
|
71
|
+
const TrezorConnect = (await import("@trezor/connect-web")).default;
|
|
72
72
|
const { success, payload } = await TrezorConnect.getAddress({
|
|
73
73
|
path: derivationPathToString(path),
|
|
74
74
|
coin,
|
|
@@ -95,7 +95,7 @@ async function getTrezorWallet<T extends Chain>({
|
|
|
95
95
|
const address = await getAddress();
|
|
96
96
|
|
|
97
97
|
const signTransaction = async (psbt: Psbt, inputs: UTXOType[], memo = "") => {
|
|
98
|
-
const
|
|
98
|
+
const TrezorConnect = (await import("@trezor/connect-web")).default;
|
|
99
99
|
const address_n = derivationPath.map((pathElement, index) =>
|
|
100
100
|
index < 3 ? ((pathElement as number) | 0x80000000) >>> 0 : (pathElement as number),
|
|
101
101
|
);
|
|
@@ -229,7 +229,7 @@ export const trezorWallet = createWallet({
|
|
|
229
229
|
});
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
-
const
|
|
232
|
+
const TrezorConnect = (await import("@trezor/connect-web")).default;
|
|
233
233
|
const { success } = await TrezorConnect.getDeviceState();
|
|
234
234
|
|
|
235
235
|
if (!success) {
|
|
@@ -121,8 +121,8 @@ async function getToolbox<T extends (typeof WC_SUPPORTED_CHAINS)[number]>({
|
|
|
121
121
|
case Chain.THORChain: {
|
|
122
122
|
const { SignMode } = await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js");
|
|
123
123
|
const { TxRaw } = await import("cosmjs-types/cosmos/tx/v1beta1/tx.js");
|
|
124
|
-
const { encodePubkey, makeAuthInfoBytes } = await import("@cosmjs/proto-signing");
|
|
125
|
-
const { makeSignDoc } = await import("@cosmjs/amino");
|
|
124
|
+
const { encodePubkey, makeAuthInfoBytes } = (await import("@cosmjs/proto-signing")).default;
|
|
125
|
+
const { makeSignDoc } = (await import("@cosmjs/amino")).default;
|
|
126
126
|
const {
|
|
127
127
|
getCosmosToolbox,
|
|
128
128
|
buildAminoMsg,
|
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-q81hzyra.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{c as M,d as Q}from"./chunk-p1kdg37m.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=5C76B7C3B8034EA464756E2164756E21
|
|
@@ -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": "5C76B7C3B8034EA464756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|