@coinbase/cdp-sdk 1.14.0 → 1.16.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/CHANGELOG.md +20 -0
- package/README.md +113 -20
- package/_cjs/accounts/evm/toEvmServerAccount.js +13 -7
- package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -1
- package/_cjs/accounts/evm/toEvmSmartAccount.js +18 -0
- package/_cjs/accounts/evm/toEvmSmartAccount.js.map +1 -1
- package/_cjs/actions/evm/signAndWrapTypedDataForSmartAccount.js +186 -0
- package/_cjs/actions/evm/signAndWrapTypedDataForSmartAccount.js.map +1 -0
- package/_cjs/actions/evm/swap/createSwapQuote.js +26 -8
- package/_cjs/actions/evm/swap/createSwapQuote.js.map +1 -1
- package/_cjs/actions/evm/swap/getSwapPrice.js +3 -2
- package/_cjs/actions/evm/swap/getSwapPrice.js.map +1 -1
- package/_cjs/actions/evm/swap/sendSwapOperation.js +153 -0
- package/_cjs/actions/evm/swap/sendSwapOperation.js.map +1 -0
- package/_cjs/actions/evm/swap/sendSwapTransaction.js +16 -2
- package/_cjs/actions/evm/swap/sendSwapTransaction.js.map +1 -1
- package/_cjs/client/evm/evm.js +56 -6
- package/_cjs/client/evm/evm.js.map +1 -1
- package/_cjs/client/solana/solana.js +43 -0
- package/_cjs/client/solana/solana.js.map +1 -1
- package/_cjs/utils/export.js +84 -0
- package/_cjs/utils/export.js.map +1 -0
- package/_cjs/utils/uuidV4.js +26 -0
- package/_cjs/utils/uuidV4.js.map +1 -0
- package/_cjs/version.js +1 -1
- package/_esm/accounts/evm/toEvmServerAccount.js +14 -8
- package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -1
- package/_esm/accounts/evm/toEvmSmartAccount.js +18 -0
- package/_esm/accounts/evm/toEvmSmartAccount.js.map +1 -1
- package/_esm/actions/evm/signAndWrapTypedDataForSmartAccount.js +181 -0
- package/_esm/actions/evm/signAndWrapTypedDataForSmartAccount.js.map +1 -0
- package/_esm/actions/evm/swap/createSwapQuote.js +26 -8
- package/_esm/actions/evm/swap/createSwapQuote.js.map +1 -1
- package/_esm/actions/evm/swap/getSwapPrice.js +3 -2
- package/_esm/actions/evm/swap/getSwapPrice.js.map +1 -1
- package/_esm/actions/evm/swap/sendSwapOperation.js +150 -0
- package/_esm/actions/evm/swap/sendSwapOperation.js.map +1 -0
- package/_esm/actions/evm/swap/sendSwapTransaction.js +16 -2
- package/_esm/actions/evm/swap/sendSwapTransaction.js.map +1 -1
- package/_esm/client/evm/evm.js +58 -8
- package/_esm/client/evm/evm.js.map +1 -1
- package/_esm/client/solana/solana.js +43 -0
- package/_esm/client/solana/solana.js.map +1 -1
- package/_esm/utils/export.js +75 -0
- package/_esm/utils/export.js.map +1 -0
- package/_esm/utils/uuidV4.js +23 -0
- package/_esm/utils/uuidV4.js.map +1 -0
- package/_esm/version.js +1 -1
- package/_types/accounts/evm/toEvmServerAccount.d.ts.map +1 -1
- package/_types/accounts/evm/toEvmSmartAccount.d.ts.map +1 -1
- package/_types/accounts/evm/types.d.ts +4 -4
- package/_types/accounts/evm/types.d.ts.map +1 -1
- package/_types/actions/evm/signAndWrapTypedDataForSmartAccount.d.ts +133 -0
- package/_types/actions/evm/signAndWrapTypedDataForSmartAccount.d.ts.map +1 -0
- package/_types/actions/evm/swap/createSwapQuote.d.ts.map +1 -1
- package/_types/actions/evm/swap/getSwapPrice.d.ts +2 -1
- package/_types/actions/evm/swap/getSwapPrice.d.ts.map +1 -1
- package/_types/actions/evm/swap/sendSwapOperation.d.ts +64 -0
- package/_types/actions/evm/swap/sendSwapOperation.d.ts.map +1 -0
- package/_types/actions/evm/swap/sendSwapTransaction.d.ts.map +1 -1
- package/_types/actions/evm/swap/types.d.ts +131 -5
- package/_types/actions/evm/swap/types.d.ts.map +1 -1
- package/_types/actions/evm/types.d.ts +112 -21
- package/_types/actions/evm/types.d.ts.map +1 -1
- package/_types/client/cdp.d.ts +1 -2
- package/_types/client/cdp.d.ts.map +1 -1
- package/_types/client/evm/evm.d.ts +29 -3
- package/_types/client/evm/evm.d.ts.map +1 -1
- package/_types/client/evm/evm.types.d.ts +45 -7
- package/_types/client/evm/evm.types.d.ts.map +1 -1
- package/_types/client/solana/solana.d.ts +26 -1
- package/_types/client/solana/solana.d.ts.map +1 -1
- package/_types/client/solana/solana.types.d.ts +12 -0
- package/_types/client/solana/solana.types.d.ts.map +1 -1
- package/_types/utils/export.d.ts +30 -0
- package/_types/utils/export.d.ts.map +1 -0
- package/_types/utils/uuidV4.d.ts +10 -0
- package/_types/utils/uuidV4.d.ts.map +1 -0
- package/_types/version.d.ts +1 -1
- package/accounts/evm/toEvmServerAccount.ts +33 -15
- package/accounts/evm/toEvmSmartAccount.ts +25 -0
- package/accounts/evm/types.ts +14 -6
- package/actions/evm/signAndWrapTypedDataForSmartAccount.ts +246 -0
- package/actions/evm/swap/createSwapQuote.ts +42 -17
- package/actions/evm/swap/getSwapPrice.ts +15 -11
- package/actions/evm/swap/sendSwapOperation.ts +182 -0
- package/actions/evm/swap/sendSwapTransaction.ts +18 -2
- package/actions/evm/swap/types.ts +154 -5
- package/actions/evm/types.ts +123 -21
- package/client/cdp.ts +1 -1
- package/client/evm/evm.ts +101 -33
- package/client/evm/evm.types.ts +48 -6
- package/client/solana/solana.ts +61 -0
- package/client/solana/solana.types.ts +15 -2
- package/package.json +1 -1
- package/utils/export.ts +89 -0
- package/utils/uuidV4.ts +23 -0
- package/version.ts +1 -1
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sendSwapOperation = sendSwapOperation;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const createSwapQuote_js_1 = require("./createSwapQuote.js");
|
|
6
|
+
const uuidV4_js_1 = require("../../../utils/uuidV4.js");
|
|
7
|
+
const sendUserOperation_js_1 = require("../sendUserOperation.js");
|
|
8
|
+
const signAndWrapTypedDataForSmartAccount_js_1 = require("../signAndWrapTypedDataForSmartAccount.js");
|
|
9
|
+
/**
|
|
10
|
+
* Sends a swap operation to the blockchain via a smart account user operation.
|
|
11
|
+
* Handles any permit2 signatures required for the swap.
|
|
12
|
+
*
|
|
13
|
+
* If you encounter token allowance issues, you'll need to perform a token approval transaction first to allow
|
|
14
|
+
* the Permit2 contract to spend the appropriate amount of your fromToken.
|
|
15
|
+
* See examples for code on handling token approvals.
|
|
16
|
+
*
|
|
17
|
+
* @param {CdpOpenApiClientType} client - The client to use for sending the swap operation.
|
|
18
|
+
* @param {SendSwapOperationOptions} options - The options for the swap submission.
|
|
19
|
+
*
|
|
20
|
+
* @returns {Promise<SendSwapOperationResult>} A promise that resolves to the user operation result.
|
|
21
|
+
*
|
|
22
|
+
* @throws {Error} If liquidity is not available for the swap.
|
|
23
|
+
* @throws {Error} If there are insufficient token allowances. In this case, you need to approve the
|
|
24
|
+
* Permit2 contract to spend your tokens before attempting the swap. The error message
|
|
25
|
+
* will include the current allowance and the spender address that needs approval.
|
|
26
|
+
* @throws {Error} If no transaction data is found in the swap result.
|
|
27
|
+
*
|
|
28
|
+
* @example **Sending a swap with pre-created swap quote object**
|
|
29
|
+
* ```ts
|
|
30
|
+
* // First create a swap quote
|
|
31
|
+
* const swapQuote = await cdp.evm.createSwapQuote({
|
|
32
|
+
* network: "base",
|
|
33
|
+
* toToken: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC
|
|
34
|
+
* fromToken: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", // WETH
|
|
35
|
+
* fromAmount: BigInt("1000000000000000000"), // 1 WETH in wei
|
|
36
|
+
* taker: smartAccount.address
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* // Check if liquidity is available
|
|
40
|
+
* if (!swapQuote.liquidityAvailable) {
|
|
41
|
+
* console.error("Insufficient liquidity for swap");
|
|
42
|
+
* return;
|
|
43
|
+
* }
|
|
44
|
+
*
|
|
45
|
+
* // Send the swap operation
|
|
46
|
+
* const result = await sendSwapOperation(client, {
|
|
47
|
+
* smartAccount: smartAccount,
|
|
48
|
+
* swapQuote: swapQuote
|
|
49
|
+
* });
|
|
50
|
+
*
|
|
51
|
+
* console.log(`Swap operation sent with user op hash: ${result.userOpHash}`);
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* @example **Sending a swap with inline options (all-in-one)**
|
|
55
|
+
* ```ts
|
|
56
|
+
* // Send swap operation in one call
|
|
57
|
+
* const result = await sendSwapOperation(client, {
|
|
58
|
+
* smartAccount: smartAccount,
|
|
59
|
+
* network: "base",
|
|
60
|
+
* toToken: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC
|
|
61
|
+
* fromToken: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", // WETH
|
|
62
|
+
* fromAmount: BigInt("1000000000000000000"), // 1 WETH in wei
|
|
63
|
+
* taker: smartAccount.address
|
|
64
|
+
* });
|
|
65
|
+
*
|
|
66
|
+
* console.log(`Swap operation sent with user op hash: ${result.userOpHash}`);
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
async function sendSwapOperation(client, options) {
|
|
70
|
+
const { smartAccount, paymasterUrl, idempotencyKey } = options;
|
|
71
|
+
let swapResult;
|
|
72
|
+
// Determine if we need to create the swap quote or use the provided one
|
|
73
|
+
if ("swapQuote" in options) {
|
|
74
|
+
// Use the provided swap quote
|
|
75
|
+
swapResult = options.swapQuote;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
// Create the swap quote using the provided options (inline options)
|
|
79
|
+
/**
|
|
80
|
+
* Deterministically derive a new idempotency key from the provided idempotency key for swap quote creation to avoid key reuse.
|
|
81
|
+
*/
|
|
82
|
+
const swapQuoteIdempotencyKey = idempotencyKey
|
|
83
|
+
? (0, uuidV4_js_1.createDeterministicUuidV4)(idempotencyKey, "createSwapQuote")
|
|
84
|
+
: undefined;
|
|
85
|
+
swapResult = await (0, createSwapQuote_js_1.createSwapQuote)(client, {
|
|
86
|
+
network: options.network,
|
|
87
|
+
toToken: options.toToken,
|
|
88
|
+
fromToken: options.fromToken,
|
|
89
|
+
fromAmount: options.fromAmount,
|
|
90
|
+
taker: options.taker,
|
|
91
|
+
signerAddress: options.signerAddress,
|
|
92
|
+
gasPrice: options.gasPrice,
|
|
93
|
+
slippageBps: options.slippageBps,
|
|
94
|
+
idempotencyKey: swapQuoteIdempotencyKey,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
// Check if liquidity is available
|
|
98
|
+
if (!swapResult.liquidityAvailable) {
|
|
99
|
+
throw new Error("Insufficient liquidity for swap");
|
|
100
|
+
}
|
|
101
|
+
// At this point, we know that swapResult is CreateSwapQuoteResult
|
|
102
|
+
const swap = swapResult;
|
|
103
|
+
// Check for allowance issues
|
|
104
|
+
if (swap.issues?.allowance) {
|
|
105
|
+
const { currentAllowance, spender } = swap.issues.allowance;
|
|
106
|
+
throw new Error(`Insufficient token allowance for swap. Current allowance: ${currentAllowance}. ` +
|
|
107
|
+
`Please approve the Permit2 contract (${spender}) to spend your tokens.`);
|
|
108
|
+
}
|
|
109
|
+
// If the transaction doesn't exist, throw an error
|
|
110
|
+
if (!swap.transaction) {
|
|
111
|
+
throw new Error("No transaction data found in the swap");
|
|
112
|
+
}
|
|
113
|
+
// Get the transaction data and modify it if needed for Permit2
|
|
114
|
+
let txData = swap.transaction.data;
|
|
115
|
+
if (swap.permit2?.eip712) {
|
|
116
|
+
// Create the permit2 idempotency key
|
|
117
|
+
const permit2IdempotencyKey = idempotencyKey
|
|
118
|
+
? (0, uuidV4_js_1.createDeterministicUuidV4)(idempotencyKey, "permit2")
|
|
119
|
+
: undefined;
|
|
120
|
+
// Sign and wrap the permit2 typed data according to the Coinbase Smart Wallet contract requirements for EIP-712 signatures
|
|
121
|
+
const { signature: wrappedSignature } = await (0, signAndWrapTypedDataForSmartAccount_js_1.signAndWrapTypedDataForSmartAccount)(client, {
|
|
122
|
+
smartAccount,
|
|
123
|
+
chainId: BigInt(swap.permit2.eip712.domain.chainId || 1),
|
|
124
|
+
typedData: swap.permit2.eip712,
|
|
125
|
+
ownerIndex: 0n,
|
|
126
|
+
idempotencyKey: permit2IdempotencyKey,
|
|
127
|
+
});
|
|
128
|
+
// Calculate the Permit2 signature length as a 32-byte hex value
|
|
129
|
+
const permit2SignatureLengthInHex = (0, viem_1.numberToHex)((0, viem_1.size)(wrappedSignature), {
|
|
130
|
+
signed: false,
|
|
131
|
+
size: 32,
|
|
132
|
+
});
|
|
133
|
+
// Append the Permit2 signature length and signature to the transaction data
|
|
134
|
+
txData = (0, viem_1.concat)([txData, permit2SignatureLengthInHex, wrappedSignature]);
|
|
135
|
+
}
|
|
136
|
+
// Send the swap as a user operation
|
|
137
|
+
const result = await (0, sendUserOperation_js_1.sendUserOperation)(client, {
|
|
138
|
+
smartAccount: smartAccount,
|
|
139
|
+
network: swap.network,
|
|
140
|
+
paymasterUrl,
|
|
141
|
+
idempotencyKey,
|
|
142
|
+
calls: [
|
|
143
|
+
{
|
|
144
|
+
to: swap.transaction.to,
|
|
145
|
+
data: txData,
|
|
146
|
+
// Only include value if it exists
|
|
147
|
+
...(swap.transaction.value ? { value: BigInt(swap.transaction.value) } : {}),
|
|
148
|
+
},
|
|
149
|
+
],
|
|
150
|
+
});
|
|
151
|
+
return result;
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=sendSwapOperation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sendSwapOperation.js","sourceRoot":"","sources":["../../../../actions/evm/swap/sendSwapOperation.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.sendSwapTransaction = sendSwapTransaction;
|
|
4
4
|
const viem_1 = require("viem");
|
|
5
5
|
const createSwapQuote_js_1 = require("./createSwapQuote.js");
|
|
6
|
+
const uuidV4_js_1 = require("../../../utils/uuidV4.js");
|
|
6
7
|
const sendTransaction_js_1 = require("../sendTransaction.js");
|
|
7
8
|
/**
|
|
8
9
|
* Sends a swap transaction to the blockchain.
|
|
@@ -74,6 +75,12 @@ async function sendSwapTransaction(client, options) {
|
|
|
74
75
|
}
|
|
75
76
|
else {
|
|
76
77
|
// Create the swap quote using the provided options (InlineSendSwapTransactionOptions)
|
|
78
|
+
/**
|
|
79
|
+
* Deterministically derive a new idempotency key from the provided idempotency key for swap quote creation to avoid key reuse.
|
|
80
|
+
*/
|
|
81
|
+
const swapQuoteIdempotencyKey = idempotencyKey
|
|
82
|
+
? (0, uuidV4_js_1.createDeterministicUuidV4)(idempotencyKey, "createSwapQuote")
|
|
83
|
+
: undefined;
|
|
77
84
|
swapResult = await (0, createSwapQuote_js_1.createSwapQuote)(client, {
|
|
78
85
|
network: options.network,
|
|
79
86
|
toToken: options.toToken,
|
|
@@ -83,6 +90,7 @@ async function sendSwapTransaction(client, options) {
|
|
|
83
90
|
signerAddress: options.signerAddress,
|
|
84
91
|
gasPrice: options.gasPrice,
|
|
85
92
|
slippageBps: options.slippageBps,
|
|
93
|
+
idempotencyKey: swapQuoteIdempotencyKey,
|
|
86
94
|
});
|
|
87
95
|
}
|
|
88
96
|
// Check if liquidity is available
|
|
@@ -104,13 +112,19 @@ async function sendSwapTransaction(client, options) {
|
|
|
104
112
|
// Get the transaction data and modify it if needed for Permit2
|
|
105
113
|
let txData = swap.transaction.data;
|
|
106
114
|
if (swap.permit2?.eip712) {
|
|
107
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Sign the Permit2 EIP-712 message.
|
|
117
|
+
* Deterministically derive a new idempotency key from the provided idempotency key for permit2 signing to avoid key reuse.
|
|
118
|
+
*/
|
|
119
|
+
const permit2IdempotencyKey = idempotencyKey
|
|
120
|
+
? (0, uuidV4_js_1.createDeterministicUuidV4)(idempotencyKey, "permit2")
|
|
121
|
+
: undefined;
|
|
108
122
|
const signature = await client.signEvmTypedData(address, {
|
|
109
123
|
domain: swap.permit2.eip712.domain,
|
|
110
124
|
types: swap.permit2.eip712.types,
|
|
111
125
|
primaryType: swap.permit2.eip712.primaryType,
|
|
112
126
|
message: swap.permit2.eip712.message,
|
|
113
|
-
},
|
|
127
|
+
}, permit2IdempotencyKey);
|
|
114
128
|
// Calculate the signature length as a 32-byte hex value
|
|
115
129
|
const signatureLengthInHex = (0, viem_1.numberToHex)((0, viem_1.size)(signature.signature), {
|
|
116
130
|
signed: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendSwapTransaction.js","sourceRoot":"","sources":["../../../../actions/evm/swap/sendSwapTransaction.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"sendSwapTransaction.js","sourceRoot":"","sources":["../../../../actions/evm/swap/sendSwapTransaction.ts"],"names":[],"mappings":";;AA+EA,kDA6GC;AA5LD,+BAAiD;AAEjD,6DAAuD;AACvD,wDAAqE;AACrE,8DAAwD;AAexD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACI,KAAK,UAAU,mBAAmB,CACvC,MAA4B,EAC5B,OAAmC;IAEnC,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAE5C,IAAI,UAAyD,CAAC;IAE9D,wEAAwE;IACxE,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC;QAC3B,8BAA8B;QAC9B,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,sFAAsF;QACtF;;WAEG;QACH,MAAM,uBAAuB,GAAG,cAAc;YAC5C,CAAC,CAAC,IAAA,qCAAyB,EAAC,cAAc,EAAE,iBAAiB,CAAC;YAC9D,CAAC,CAAC,SAAS,CAAC;QAEd,UAAU,GAAG,MAAM,IAAA,oCAAe,EAAC,MAAM,EAAE;YACzC,OAAO,EAAE,OAAO,CAAC,OAA4C;YAC7D,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,cAAc,EAAE,uBAAuB;SACxC,CAAC,CAAC;IACL,CAAC;IAED,kCAAkC;IAClC,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,kEAAkE;IAClE,MAAM,IAAI,GAAG,UAAmC,CAAC;IAEjD,6BAA6B;IAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;QAC3B,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QAC5D,MAAM,IAAI,KAAK,CACb,6DAA6D,gBAAgB,IAAI;YAC/E,wCAAwC,OAAO,yBAAyB,CAC3E,CAAC;IACJ,CAAC;IAED,mDAAmD;IACnD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,+DAA+D;IAC/D,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAW,CAAC;IAE1C,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QACzB;;;WAGG;QACH,MAAM,qBAAqB,GAAG,cAAc;YAC1C,CAAC,CAAC,IAAA,qCAAyB,EAAC,cAAc,EAAE,SAAS,CAAC;YACtD,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAC7C,OAAO,EACP;YACE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM;YAClC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;YAChC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW;YAC5C,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO;SACrC,EACD,qBAAqB,CACtB,CAAC;QAEF,wDAAwD;QACxD,MAAM,oBAAoB,GAAG,IAAA,kBAAW,EAAC,IAAA,WAAI,EAAC,SAAS,CAAC,SAAgB,CAAC,EAAE;YACzE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QAEH,oEAAoE;QACpE,MAAM,GAAG,IAAA,aAAM,EAAC,CAAC,MAAM,EAAE,oBAAoB,EAAE,SAAS,CAAC,SAAgB,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,8BAA8B;IAC9B,MAAM,WAAW,GAA8B;QAC7C,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,EAAmB;QACxC,IAAI,EAAE,MAAM;QACZ,8CAA8C;QAC9C,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvE,CAAC;IAEF,4EAA4E;IAC5E,MAAM,MAAM,GAAG,MAAM,IAAA,oCAAe,EAAC,MAAM,EAAE;QAC3C,OAAO;QACP,OAAO,EAAE,IAAI,CAAC,OAAwC;QACtD,WAAW;QACX,cAAc;KACf,CAAC,CAAC;IAEH,OAAO;QACL,eAAe,EAAE,MAAM,CAAC,eAAe;KACxC,CAAC;AACJ,CAAC"}
|
package/_cjs/client/evm/evm.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EvmClient = void 0;
|
|
4
4
|
const crypto_1 = require("crypto");
|
|
5
|
+
const viem_1 = require("viem");
|
|
5
6
|
const constants_js_1 = require("./constants.js");
|
|
6
7
|
const toEvmServerAccount_js_1 = require("../../accounts/evm/toEvmServerAccount.js");
|
|
7
8
|
const toEvmSmartAccount_js_1 = require("../../accounts/evm/toEvmSmartAccount.js");
|
|
@@ -16,6 +17,7 @@ const waitForUserOperation_js_1 = require("../../actions/evm/waitForUserOperatio
|
|
|
16
17
|
const analytics_js_1 = require("../../analytics.js");
|
|
17
18
|
const errors_js_1 = require("../../openapi-client/errors.js");
|
|
18
19
|
const index_js_1 = require("../../openapi-client/index.js");
|
|
20
|
+
const export_js_1 = require("../../utils/export.js");
|
|
19
21
|
/**
|
|
20
22
|
* The namespace containing all EVM methods.
|
|
21
23
|
*/
|
|
@@ -139,6 +141,48 @@ class EvmClient {
|
|
|
139
141
|
throw new Error(`Failed to import account: ${String(error)}`);
|
|
140
142
|
}
|
|
141
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Exports a CDP EVM account's private key.
|
|
146
|
+
* It is important to store the private key in a secure place after it's exported.
|
|
147
|
+
*
|
|
148
|
+
* @param {ExportServerAccountOptions} options - Parameters for exporting the account.
|
|
149
|
+
* @param {string} [options.address] - The address of the account to export.
|
|
150
|
+
* @param {string} [options.name] - The name of the account to export.
|
|
151
|
+
* @param {string} [options.idempotencyKey] - An idempotency key.
|
|
152
|
+
*
|
|
153
|
+
* @returns A promise that resolves to the exported account’s 32-byte private key as a hex string, without the "0x" prefix.
|
|
154
|
+
*
|
|
155
|
+
* @example **With an address**
|
|
156
|
+
* ```ts
|
|
157
|
+
* const privateKey = await cdp.evm.exportAccount({
|
|
158
|
+
* address: "0x1234567890123456789012345678901234567890",
|
|
159
|
+
* });
|
|
160
|
+
* ```
|
|
161
|
+
*
|
|
162
|
+
* @example **With a name**
|
|
163
|
+
* ```ts
|
|
164
|
+
* const privateKey = await cdp.evm.exportAccount({
|
|
165
|
+
* name: "MyAccount",
|
|
166
|
+
* });
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
async exportAccount(options) {
|
|
170
|
+
const { publicKey, privateKey } = await (0, export_js_1.generateExportEncryptionKeyPair)();
|
|
171
|
+
const { encryptedPrivateKey } = await (async () => {
|
|
172
|
+
if (options.address) {
|
|
173
|
+
return index_js_1.CdpOpenApiClient.exportEvmAccount(options.address, {
|
|
174
|
+
exportEncryptionKey: publicKey,
|
|
175
|
+
}, options.idempotencyKey);
|
|
176
|
+
}
|
|
177
|
+
if (options.name) {
|
|
178
|
+
return index_js_1.CdpOpenApiClient.exportEvmAccountByName(options.name, {
|
|
179
|
+
exportEncryptionKey: publicKey,
|
|
180
|
+
}, options.idempotencyKey);
|
|
181
|
+
}
|
|
182
|
+
throw new Error("Either address or name must be provided");
|
|
183
|
+
})();
|
|
184
|
+
return (0, export_js_1.decryptWithPrivateKey)(privateKey, encryptedPrivateKey);
|
|
185
|
+
}
|
|
142
186
|
/**
|
|
143
187
|
* Creates a new CDP EVM smart account.
|
|
144
188
|
*
|
|
@@ -798,12 +842,18 @@ class EvmClient {
|
|
|
798
842
|
* ```
|
|
799
843
|
*/
|
|
800
844
|
async signTypedData(options) {
|
|
801
|
-
const
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
845
|
+
const { domain, message, primaryType } = options;
|
|
846
|
+
const types = {
|
|
847
|
+
EIP712Domain: (0, viem_1.getTypesForEIP712Domain)({ domain }),
|
|
848
|
+
...options.types,
|
|
849
|
+
};
|
|
850
|
+
const openApiMessage = {
|
|
851
|
+
domain,
|
|
852
|
+
types,
|
|
853
|
+
primaryType,
|
|
854
|
+
message,
|
|
855
|
+
};
|
|
856
|
+
const signature = await index_js_1.CdpOpenApiClient.signEvmTypedData(options.address, openApiMessage, options.idempotencyKey);
|
|
807
857
|
return {
|
|
808
858
|
signature: signature.signature,
|
|
809
859
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../client/evm/evm.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evm.js","sourceRoot":"","sources":["../../../client/evm/evm.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ const signTransaction_js_1 = require("../../actions/solana/signTransaction.js");
|
|
|
8
8
|
const analytics_js_1 = require("../../analytics.js");
|
|
9
9
|
const errors_js_1 = require("../../openapi-client/errors.js");
|
|
10
10
|
const index_js_1 = require("../../openapi-client/index.js");
|
|
11
|
+
const export_js_1 = require("../../utils/export.js");
|
|
11
12
|
/**
|
|
12
13
|
* The namespace containing all Solana methods.
|
|
13
14
|
*/
|
|
@@ -53,6 +54,48 @@ class SolanaClient {
|
|
|
53
54
|
analytics_js_1.Analytics.wrapObjectMethodsWithErrorTracking(account);
|
|
54
55
|
return account;
|
|
55
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Exports a CDP Solana account's private key.
|
|
59
|
+
* It is important to store the private key in a secure place after it's exported.
|
|
60
|
+
*
|
|
61
|
+
* @param {ExportAccountOptions} options - Parameters for exporting the Solana account.
|
|
62
|
+
* @param {string} [options.address] - The address of the account.
|
|
63
|
+
* @param {string} [options.name] - The name of the account.
|
|
64
|
+
*
|
|
65
|
+
* @returns A promise that resolves to the exported account's full 64-byte private key as a base58 encoded string.
|
|
66
|
+
*
|
|
67
|
+
* @example **With an address**
|
|
68
|
+
* ```ts
|
|
69
|
+
* const privateKey = await cdp.solana.exportAccount({
|
|
70
|
+
* address: "1234567890123456789012345678901234567890",
|
|
71
|
+
* });
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
74
|
+
* @example **With a name**
|
|
75
|
+
* ```ts
|
|
76
|
+
* const privateKey = await cdp.solana.exportAccount({
|
|
77
|
+
* name: "MyAccount",
|
|
78
|
+
* });
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
async exportAccount(options) {
|
|
82
|
+
const { publicKey, privateKey } = await (0, export_js_1.generateExportEncryptionKeyPair)();
|
|
83
|
+
const { encryptedPrivateKey } = await (async () => {
|
|
84
|
+
if (options.address) {
|
|
85
|
+
return index_js_1.CdpOpenApiClient.exportSolanaAccount(options.address, {
|
|
86
|
+
exportEncryptionKey: publicKey,
|
|
87
|
+
}, options.idempotencyKey);
|
|
88
|
+
}
|
|
89
|
+
if (options.name) {
|
|
90
|
+
return index_js_1.CdpOpenApiClient.exportSolanaAccountByName(options.name, {
|
|
91
|
+
exportEncryptionKey: publicKey,
|
|
92
|
+
}, options.idempotencyKey);
|
|
93
|
+
}
|
|
94
|
+
throw new Error("Either address or name must be provided");
|
|
95
|
+
})();
|
|
96
|
+
const decryptedPrivateKey = (0, export_js_1.decryptWithPrivateKey)(privateKey, encryptedPrivateKey);
|
|
97
|
+
return (0, export_js_1.formatSolanaPrivateKey)(decryptedPrivateKey);
|
|
98
|
+
}
|
|
56
99
|
/**
|
|
57
100
|
* Gets a Solana account by its address.
|
|
58
101
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../client/solana/solana.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../client/solana/solana.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.formatSolanaPrivateKey = exports.decryptWithPrivateKey = exports.generateExportEncryptionKeyPair = void 0;
|
|
7
|
+
const crypto_1 = require("crypto");
|
|
8
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
9
|
+
const bs58_1 = __importDefault(require("bs58"));
|
|
10
|
+
/**
|
|
11
|
+
* Generates a new RSA key pair with 4096-bit private key.
|
|
12
|
+
* - Private key in PKCS1 DER format
|
|
13
|
+
* - Public key in PKIX/SPKI DER format
|
|
14
|
+
*
|
|
15
|
+
* @returns A promise that resolves to the generated key pair, or rejects with an error.
|
|
16
|
+
*/
|
|
17
|
+
const generateExportEncryptionKeyPair = async () => {
|
|
18
|
+
return await new Promise((resolve, reject) => {
|
|
19
|
+
(0, crypto_1.generateKeyPair)("rsa", {
|
|
20
|
+
modulusLength: 4096,
|
|
21
|
+
publicKeyEncoding: {
|
|
22
|
+
type: "spki",
|
|
23
|
+
format: "der",
|
|
24
|
+
},
|
|
25
|
+
privateKeyEncoding: {
|
|
26
|
+
type: "pkcs1",
|
|
27
|
+
format: "der",
|
|
28
|
+
},
|
|
29
|
+
}, (err, publicKey, privateKey) => {
|
|
30
|
+
if (err) {
|
|
31
|
+
reject(err);
|
|
32
|
+
}
|
|
33
|
+
resolve({
|
|
34
|
+
publicKey: publicKey.toString("base64"),
|
|
35
|
+
privateKey: privateKey.toString("base64"),
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
exports.generateExportEncryptionKeyPair = generateExportEncryptionKeyPair;
|
|
41
|
+
/**
|
|
42
|
+
* Decrypts a ciphertext using RSA-OAEP-SHA256.
|
|
43
|
+
* - Parses PKCS1 private key
|
|
44
|
+
* - Uses RSA-OAEP-SHA256 for decryption
|
|
45
|
+
* - Returns hex-encoded result
|
|
46
|
+
*
|
|
47
|
+
* @param b64PrivateKey - The base64-encoded private key in PKCS1 DER format.
|
|
48
|
+
* @param b64Cipher - The base64-encoded ciphertext.
|
|
49
|
+
* @returns The decrypted key hex string, or throws an error if decryption fails.
|
|
50
|
+
*/
|
|
51
|
+
const decryptWithPrivateKey = (b64PrivateKey, b64Cipher) => {
|
|
52
|
+
try {
|
|
53
|
+
// Create a private key object from the PKCS1 DER format
|
|
54
|
+
const privateKey = (0, crypto_1.createPrivateKey)({
|
|
55
|
+
key: Buffer.from(b64PrivateKey, "base64"),
|
|
56
|
+
format: "der",
|
|
57
|
+
type: "pkcs1",
|
|
58
|
+
});
|
|
59
|
+
const decryptedBuffer = (0, crypto_1.privateDecrypt)({
|
|
60
|
+
key: privateKey,
|
|
61
|
+
padding: crypto_1.constants.RSA_PKCS1_OAEP_PADDING,
|
|
62
|
+
oaepHash: "sha256",
|
|
63
|
+
}, Buffer.from(b64Cipher, "base64"));
|
|
64
|
+
return decryptedBuffer.toString("hex");
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
throw new Error(`Decryption failed: ${String(error)}`);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
exports.decryptWithPrivateKey = decryptWithPrivateKey;
|
|
71
|
+
/**
|
|
72
|
+
* Format a private key to a base58 string for easy import into Solana wallet apps.
|
|
73
|
+
*
|
|
74
|
+
* @param privateKey - The private key as a hex string
|
|
75
|
+
* @returns The formatted private key as a base58 string
|
|
76
|
+
*/
|
|
77
|
+
const formatSolanaPrivateKey = (privateKey) => {
|
|
78
|
+
const privateKeyBytes = Buffer.from(privateKey, "hex");
|
|
79
|
+
const keypair = web3_js_1.Keypair.fromSeed(privateKeyBytes);
|
|
80
|
+
const fullKey = Buffer.concat([keypair.secretKey.subarray(0, 32), keypair.publicKey.toBytes()]);
|
|
81
|
+
return bs58_1.default.encode(fullKey);
|
|
82
|
+
};
|
|
83
|
+
exports.formatSolanaPrivateKey = formatSolanaPrivateKey;
|
|
84
|
+
//# sourceMappingURL=export.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../utils/export.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAsF;AAEtF,6CAA0C;AAC1C,gDAAwB;AAExB;;;;;;GAMG;AACI,MAAM,+BAA+B,GAAG,KAAK,IAAI,EAAE;IACxD,OAAO,MAAM,IAAI,OAAO,CAGrB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrB,IAAA,wBAAe,EACb,KAAK,EACL;YACE,aAAa,EAAE,IAAI;YACnB,iBAAiB,EAAE;gBACjB,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,KAAK;aACd;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,KAAK;aACd;SACF,EACD,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;YAC7B,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;YACD,OAAO,CAAC;gBACN,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACvC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAC1C,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA7BW,QAAA,+BAA+B,mCA6B1C;AAEF;;;;;;;;;GASG;AACI,MAAM,qBAAqB,GAAG,CAAC,aAAqB,EAAE,SAAiB,EAAU,EAAE;IACxF,IAAI,CAAC;QACH,wDAAwD;QACxD,MAAM,UAAU,GAAG,IAAA,yBAAgB,EAAC;YAClC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;YACzC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,IAAA,uBAAc,EACpC;YACE,GAAG,EAAE,UAAU;YACf,OAAO,EAAE,kBAAS,CAAC,sBAAsB;YACzC,QAAQ,EAAE,QAAQ;SACnB,EACD,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CACjC,CAAC;QAEF,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC,CAAC;AAtBW,QAAA,qBAAqB,yBAsBhC;AAEF;;;;;GAKG;AACI,MAAM,sBAAsB,GAAG,CAAC,UAAkB,EAAU,EAAE;IACnE,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,iBAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAChG,OAAO,cAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC;AALW,QAAA,sBAAsB,0BAKjC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createDeterministicUuidV4 = createDeterministicUuidV4;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
/**
|
|
6
|
+
* Deterministically generates a UUIDv4 from a given input string.
|
|
7
|
+
* This is necessary when we need to generate downstream idempotency keys for operations that have multiple calls.
|
|
8
|
+
*
|
|
9
|
+
* @param input - The input string to derive from
|
|
10
|
+
* @param salt - Optional salt to append to the input (defaults to "salt")
|
|
11
|
+
* @returns A UUIDv4 formatted string
|
|
12
|
+
*/
|
|
13
|
+
function createDeterministicUuidV4(input, salt = "salt") {
|
|
14
|
+
const hash = (0, crypto_1.createHash)("sha256")
|
|
15
|
+
.update(input + "-" + salt)
|
|
16
|
+
.digest("hex");
|
|
17
|
+
// Format as UUIDv4: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
|
18
|
+
return [
|
|
19
|
+
hash.slice(0, 8),
|
|
20
|
+
hash.slice(8, 12),
|
|
21
|
+
"4" + hash.slice(13, 16), // Version 4
|
|
22
|
+
((parseInt(hash.slice(16, 17), 16) & 0x3) | 0x8).toString(16) + hash.slice(17, 20), // Variant bits
|
|
23
|
+
hash.slice(20, 32),
|
|
24
|
+
].join("-");
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=uuidV4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uuidV4.js","sourceRoot":"","sources":["../../utils/uuidV4.ts"],"names":[],"mappings":";;AAUA,8DAYC;AAtBD,mCAAoC;AAEpC;;;;;;;GAOG;AACH,SAAgB,yBAAyB,CAAC,KAAa,EAAE,IAAI,GAAG,MAAM;IACpE,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC;SAC9B,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC;SAC1B,MAAM,CAAC,KAAK,CAAC,CAAC;IACjB,yDAAyD;IACzD,OAAO;QACL,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACjB,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,YAAY;QACtC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,eAAe;QACnG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;KACnB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC"}
|
package/_cjs/version.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getTypesForEIP712Domain, serializeTransaction } from "viem";
|
|
1
|
+
import { getTypesForEIP712Domain, serializeTransaction, } from "viem";
|
|
2
2
|
import { fund } from "../../actions/evm/fund/fund.js";
|
|
3
3
|
import { quoteFund } from "../../actions/evm/fund/quoteFund.js";
|
|
4
4
|
import { waitForFundOperationReceipt, } from "../../actions/evm/fund/waitForFundOperationReceipt.js";
|
|
@@ -39,13 +39,19 @@ export function toEvmServerAccount(apiClient, options) {
|
|
|
39
39
|
});
|
|
40
40
|
return result.signedTransaction;
|
|
41
41
|
},
|
|
42
|
-
async signTypedData(
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
const
|
|
42
|
+
async signTypedData(parameters) {
|
|
43
|
+
const { domain = {}, message, primaryType } = parameters;
|
|
44
|
+
const types = {
|
|
45
|
+
EIP712Domain: getTypesForEIP712Domain({ domain }),
|
|
46
|
+
...parameters.types,
|
|
47
|
+
};
|
|
48
|
+
const openApiMessage = {
|
|
49
|
+
domain: domain,
|
|
50
|
+
types,
|
|
51
|
+
primaryType,
|
|
52
|
+
message,
|
|
53
|
+
};
|
|
54
|
+
const result = await apiClient.signEvmTypedData(options.account.address, openApiMessage);
|
|
49
55
|
return result.signature;
|
|
50
56
|
},
|
|
51
57
|
async transfer(transferArgs) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toEvmServerAccount.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"toEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toEvmServerAccount.ts"],"names":[],"mappings":"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"}
|