@coinbase/cdp-sdk 1.15.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.
Files changed (77) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +82 -20
  3. package/_cjs/accounts/evm/toEvmServerAccount.js +13 -7
  4. package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -1
  5. package/_cjs/accounts/evm/toEvmSmartAccount.js +18 -0
  6. package/_cjs/accounts/evm/toEvmSmartAccount.js.map +1 -1
  7. package/_cjs/actions/evm/signAndWrapTypedDataForSmartAccount.js +186 -0
  8. package/_cjs/actions/evm/signAndWrapTypedDataForSmartAccount.js.map +1 -0
  9. package/_cjs/actions/evm/swap/createSwapQuote.js +26 -8
  10. package/_cjs/actions/evm/swap/createSwapQuote.js.map +1 -1
  11. package/_cjs/actions/evm/swap/getSwapPrice.js +3 -2
  12. package/_cjs/actions/evm/swap/getSwapPrice.js.map +1 -1
  13. package/_cjs/actions/evm/swap/sendSwapOperation.js +153 -0
  14. package/_cjs/actions/evm/swap/sendSwapOperation.js.map +1 -0
  15. package/_cjs/actions/evm/swap/sendSwapTransaction.js +16 -2
  16. package/_cjs/actions/evm/swap/sendSwapTransaction.js.map +1 -1
  17. package/_cjs/client/evm/evm.js +13 -6
  18. package/_cjs/client/evm/evm.js.map +1 -1
  19. package/_cjs/utils/uuidV4.js +26 -0
  20. package/_cjs/utils/uuidV4.js.map +1 -0
  21. package/_cjs/version.js +1 -1
  22. package/_esm/accounts/evm/toEvmServerAccount.js +14 -8
  23. package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -1
  24. package/_esm/accounts/evm/toEvmSmartAccount.js +18 -0
  25. package/_esm/accounts/evm/toEvmSmartAccount.js.map +1 -1
  26. package/_esm/actions/evm/signAndWrapTypedDataForSmartAccount.js +181 -0
  27. package/_esm/actions/evm/signAndWrapTypedDataForSmartAccount.js.map +1 -0
  28. package/_esm/actions/evm/swap/createSwapQuote.js +26 -8
  29. package/_esm/actions/evm/swap/createSwapQuote.js.map +1 -1
  30. package/_esm/actions/evm/swap/getSwapPrice.js +3 -2
  31. package/_esm/actions/evm/swap/getSwapPrice.js.map +1 -1
  32. package/_esm/actions/evm/swap/sendSwapOperation.js +150 -0
  33. package/_esm/actions/evm/swap/sendSwapOperation.js.map +1 -0
  34. package/_esm/actions/evm/swap/sendSwapTransaction.js +16 -2
  35. package/_esm/actions/evm/swap/sendSwapTransaction.js.map +1 -1
  36. package/_esm/client/evm/evm.js +14 -7
  37. package/_esm/client/evm/evm.js.map +1 -1
  38. package/_esm/utils/uuidV4.js +23 -0
  39. package/_esm/utils/uuidV4.js.map +1 -0
  40. package/_esm/version.js +1 -1
  41. package/_types/accounts/evm/toEvmServerAccount.d.ts.map +1 -1
  42. package/_types/accounts/evm/toEvmSmartAccount.d.ts.map +1 -1
  43. package/_types/accounts/evm/types.d.ts +4 -4
  44. package/_types/accounts/evm/types.d.ts.map +1 -1
  45. package/_types/actions/evm/signAndWrapTypedDataForSmartAccount.d.ts +133 -0
  46. package/_types/actions/evm/signAndWrapTypedDataForSmartAccount.d.ts.map +1 -0
  47. package/_types/actions/evm/swap/createSwapQuote.d.ts.map +1 -1
  48. package/_types/actions/evm/swap/getSwapPrice.d.ts +2 -1
  49. package/_types/actions/evm/swap/getSwapPrice.d.ts.map +1 -1
  50. package/_types/actions/evm/swap/sendSwapOperation.d.ts +64 -0
  51. package/_types/actions/evm/swap/sendSwapOperation.d.ts.map +1 -0
  52. package/_types/actions/evm/swap/sendSwapTransaction.d.ts.map +1 -1
  53. package/_types/actions/evm/swap/types.d.ts +131 -5
  54. package/_types/actions/evm/swap/types.d.ts.map +1 -1
  55. package/_types/actions/evm/types.d.ts +112 -21
  56. package/_types/actions/evm/types.d.ts.map +1 -1
  57. package/_types/client/evm/evm.d.ts.map +1 -1
  58. package/_types/client/evm/evm.types.d.ts +32 -6
  59. package/_types/client/evm/evm.types.d.ts.map +1 -1
  60. package/_types/utils/uuidV4.d.ts +10 -0
  61. package/_types/utils/uuidV4.d.ts.map +1 -0
  62. package/_types/version.d.ts +1 -1
  63. package/accounts/evm/toEvmServerAccount.ts +33 -15
  64. package/accounts/evm/toEvmSmartAccount.ts +25 -0
  65. package/accounts/evm/types.ts +14 -6
  66. package/actions/evm/signAndWrapTypedDataForSmartAccount.ts +246 -0
  67. package/actions/evm/swap/createSwapQuote.ts +42 -17
  68. package/actions/evm/swap/getSwapPrice.ts +15 -11
  69. package/actions/evm/swap/sendSwapOperation.ts +182 -0
  70. package/actions/evm/swap/sendSwapTransaction.ts +18 -2
  71. package/actions/evm/swap/types.ts +154 -5
  72. package/actions/evm/types.ts +123 -21
  73. package/client/evm/evm.ts +19 -8
  74. package/client/evm/evm.types.ts +33 -6
  75. package/package.json +1 -1
  76. package/utils/uuidV4.ts +23 -0
  77. package/version.ts +1 -1
@@ -1,3 +1,4 @@
1
+ import { sendSwapOperation } from "./sendSwapOperation.js";
1
2
  import { sendSwapTransaction } from "./sendSwapTransaction.js";
2
3
  /**
3
4
  * Creates a quote for a swap between two tokens on an EVM network.
@@ -35,7 +36,7 @@ export async function createSwapQuote(client, options) {
35
36
  signerAddress: options.signerAddress,
36
37
  gasPrice: options.gasPrice?.toString(),
37
38
  slippageBps: options.slippageBps,
38
- });
39
+ }, options.idempotencyKey);
39
40
  // Check if liquidity is unavailable
40
41
  if (!response.liquidityAvailable) {
41
42
  // Return the SwapUnavailableResult
@@ -109,13 +110,30 @@ export async function createSwapQuote(client, options) {
109
110
  : undefined,
110
111
  // Add the execute method
111
112
  execute: async (executeOptions = {}) => {
112
- const { transactionHash } = await sendSwapTransaction(client, {
113
- address: options.signerAddress || taker, // Use signerAddress for smart accounts, taker for EOAs
114
- network: result.network,
115
- swapQuote: result,
116
- idempotencyKey: executeOptions.idempotencyKey,
117
- });
118
- return { transactionHash };
113
+ if (options.smartAccount) {
114
+ // Smart account execution - use sendSwapOperation
115
+ const userOpResult = await sendSwapOperation(client, {
116
+ smartAccount: options.smartAccount,
117
+ network: result.network,
118
+ swapQuote: result,
119
+ idempotencyKey: executeOptions.idempotencyKey,
120
+ });
121
+ return {
122
+ userOpHash: userOpResult.userOpHash,
123
+ smartAccountAddress: userOpResult.smartAccountAddress,
124
+ status: userOpResult.status,
125
+ };
126
+ }
127
+ else {
128
+ // EOA execution - use sendSwapTransaction
129
+ const { transactionHash } = await sendSwapTransaction(client, {
130
+ address: taker,
131
+ network: result.network,
132
+ swapQuote: result,
133
+ idempotencyKey: executeOptions.idempotencyKey,
134
+ });
135
+ return { transactionHash };
136
+ }
119
137
  },
120
138
  };
121
139
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"createSwapQuote.js","sourceRoot":"","sources":["../../../../actions/evm/swap/createSwapQuote.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createSwapQuote.js","sourceRoot":"","sources":["../../../../actions/evm/swap/createSwapQuote.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,8 @@
13
13
  * toToken: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC
14
14
  * fromToken: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", // WETH
15
15
  * fromAmount: BigInt("1000000000000000000"), // 1 WETH in wei
16
- * taker: "0x1234567890123456789012345678901234567890"
16
+ * taker: "0x1234567890123456789012345678901234567890",
17
+ * idempotencyKey: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" // Optional: for request deduplication
17
18
  * });
18
19
  * ```
19
20
  */
@@ -28,7 +29,7 @@ export async function getSwapPrice(client, options) {
28
29
  signerAddress: options.signerAddress,
29
30
  gasPrice: options.gasPrice?.toString(),
30
31
  slippageBps: options.slippageBps,
31
- });
32
+ }, options.idempotencyKey);
32
33
  // Check if liquidity is unavailable
33
34
  if (!response.liquidityAvailable) {
34
35
  // Return the SwapUnavailableResult
@@ -1 +1 @@
1
- {"version":3,"file":"getSwapPrice.js","sourceRoot":"","sources":["../../../../actions/evm/swap/getSwapPrice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getSwapPrice.js","sourceRoot":"","sources":["../../../../actions/evm/swap/getSwapPrice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,150 @@
1
+ import { concat, numberToHex, size } from "viem";
2
+ import { createSwapQuote } from "./createSwapQuote.js";
3
+ import { createDeterministicUuidV4 } from "../../../utils/uuidV4.js";
4
+ import { sendUserOperation } from "../sendUserOperation.js";
5
+ import { signAndWrapTypedDataForSmartAccount } from "../signAndWrapTypedDataForSmartAccount.js";
6
+ /**
7
+ * Sends a swap operation to the blockchain via a smart account user operation.
8
+ * Handles any permit2 signatures required for the swap.
9
+ *
10
+ * If you encounter token allowance issues, you'll need to perform a token approval transaction first to allow
11
+ * the Permit2 contract to spend the appropriate amount of your fromToken.
12
+ * See examples for code on handling token approvals.
13
+ *
14
+ * @param {CdpOpenApiClientType} client - The client to use for sending the swap operation.
15
+ * @param {SendSwapOperationOptions} options - The options for the swap submission.
16
+ *
17
+ * @returns {Promise<SendSwapOperationResult>} A promise that resolves to the user operation result.
18
+ *
19
+ * @throws {Error} If liquidity is not available for the swap.
20
+ * @throws {Error} If there are insufficient token allowances. In this case, you need to approve the
21
+ * Permit2 contract to spend your tokens before attempting the swap. The error message
22
+ * will include the current allowance and the spender address that needs approval.
23
+ * @throws {Error} If no transaction data is found in the swap result.
24
+ *
25
+ * @example **Sending a swap with pre-created swap quote object**
26
+ * ```ts
27
+ * // First create a swap quote
28
+ * const swapQuote = await cdp.evm.createSwapQuote({
29
+ * network: "base",
30
+ * toToken: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC
31
+ * fromToken: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", // WETH
32
+ * fromAmount: BigInt("1000000000000000000"), // 1 WETH in wei
33
+ * taker: smartAccount.address
34
+ * });
35
+ *
36
+ * // Check if liquidity is available
37
+ * if (!swapQuote.liquidityAvailable) {
38
+ * console.error("Insufficient liquidity for swap");
39
+ * return;
40
+ * }
41
+ *
42
+ * // Send the swap operation
43
+ * const result = await sendSwapOperation(client, {
44
+ * smartAccount: smartAccount,
45
+ * swapQuote: swapQuote
46
+ * });
47
+ *
48
+ * console.log(`Swap operation sent with user op hash: ${result.userOpHash}`);
49
+ * ```
50
+ *
51
+ * @example **Sending a swap with inline options (all-in-one)**
52
+ * ```ts
53
+ * // Send swap operation in one call
54
+ * const result = await sendSwapOperation(client, {
55
+ * smartAccount: smartAccount,
56
+ * network: "base",
57
+ * toToken: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC
58
+ * fromToken: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", // WETH
59
+ * fromAmount: BigInt("1000000000000000000"), // 1 WETH in wei
60
+ * taker: smartAccount.address
61
+ * });
62
+ *
63
+ * console.log(`Swap operation sent with user op hash: ${result.userOpHash}`);
64
+ * ```
65
+ */
66
+ export async function sendSwapOperation(client, options) {
67
+ const { smartAccount, paymasterUrl, idempotencyKey } = options;
68
+ let swapResult;
69
+ // Determine if we need to create the swap quote or use the provided one
70
+ if ("swapQuote" in options) {
71
+ // Use the provided swap quote
72
+ swapResult = options.swapQuote;
73
+ }
74
+ else {
75
+ // Create the swap quote using the provided options (inline options)
76
+ /**
77
+ * Deterministically derive a new idempotency key from the provided idempotency key for swap quote creation to avoid key reuse.
78
+ */
79
+ const swapQuoteIdempotencyKey = idempotencyKey
80
+ ? createDeterministicUuidV4(idempotencyKey, "createSwapQuote")
81
+ : undefined;
82
+ swapResult = await createSwapQuote(client, {
83
+ network: options.network,
84
+ toToken: options.toToken,
85
+ fromToken: options.fromToken,
86
+ fromAmount: options.fromAmount,
87
+ taker: options.taker,
88
+ signerAddress: options.signerAddress,
89
+ gasPrice: options.gasPrice,
90
+ slippageBps: options.slippageBps,
91
+ idempotencyKey: swapQuoteIdempotencyKey,
92
+ });
93
+ }
94
+ // Check if liquidity is available
95
+ if (!swapResult.liquidityAvailable) {
96
+ throw new Error("Insufficient liquidity for swap");
97
+ }
98
+ // At this point, we know that swapResult is CreateSwapQuoteResult
99
+ const swap = swapResult;
100
+ // Check for allowance issues
101
+ if (swap.issues?.allowance) {
102
+ const { currentAllowance, spender } = swap.issues.allowance;
103
+ throw new Error(`Insufficient token allowance for swap. Current allowance: ${currentAllowance}. ` +
104
+ `Please approve the Permit2 contract (${spender}) to spend your tokens.`);
105
+ }
106
+ // If the transaction doesn't exist, throw an error
107
+ if (!swap.transaction) {
108
+ throw new Error("No transaction data found in the swap");
109
+ }
110
+ // Get the transaction data and modify it if needed for Permit2
111
+ let txData = swap.transaction.data;
112
+ if (swap.permit2?.eip712) {
113
+ // Create the permit2 idempotency key
114
+ const permit2IdempotencyKey = idempotencyKey
115
+ ? createDeterministicUuidV4(idempotencyKey, "permit2")
116
+ : undefined;
117
+ // Sign and wrap the permit2 typed data according to the Coinbase Smart Wallet contract requirements for EIP-712 signatures
118
+ const { signature: wrappedSignature } = await signAndWrapTypedDataForSmartAccount(client, {
119
+ smartAccount,
120
+ chainId: BigInt(swap.permit2.eip712.domain.chainId || 1),
121
+ typedData: swap.permit2.eip712,
122
+ ownerIndex: 0n,
123
+ idempotencyKey: permit2IdempotencyKey,
124
+ });
125
+ // Calculate the Permit2 signature length as a 32-byte hex value
126
+ const permit2SignatureLengthInHex = numberToHex(size(wrappedSignature), {
127
+ signed: false,
128
+ size: 32,
129
+ });
130
+ // Append the Permit2 signature length and signature to the transaction data
131
+ txData = concat([txData, permit2SignatureLengthInHex, wrappedSignature]);
132
+ }
133
+ // Send the swap as a user operation
134
+ const result = await sendUserOperation(client, {
135
+ smartAccount: smartAccount,
136
+ network: swap.network,
137
+ paymasterUrl,
138
+ idempotencyKey,
139
+ calls: [
140
+ {
141
+ to: swap.transaction.to,
142
+ data: txData,
143
+ // Only include value if it exists
144
+ ...(swap.transaction.value ? { value: BigInt(swap.transaction.value) } : {}),
145
+ },
146
+ ],
147
+ });
148
+ return result;
149
+ }
150
+ //# 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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"}
@@ -1,5 +1,6 @@
1
1
  import { concat, numberToHex, size } from "viem";
2
2
  import { createSwapQuote } from "./createSwapQuote.js";
3
+ import { createDeterministicUuidV4 } from "../../../utils/uuidV4.js";
3
4
  import { sendTransaction } from "../sendTransaction.js";
4
5
  /**
5
6
  * Sends a swap transaction to the blockchain.
@@ -71,6 +72,12 @@ export async function sendSwapTransaction(client, options) {
71
72
  }
72
73
  else {
73
74
  // Create the swap quote using the provided options (InlineSendSwapTransactionOptions)
75
+ /**
76
+ * Deterministically derive a new idempotency key from the provided idempotency key for swap quote creation to avoid key reuse.
77
+ */
78
+ const swapQuoteIdempotencyKey = idempotencyKey
79
+ ? createDeterministicUuidV4(idempotencyKey, "createSwapQuote")
80
+ : undefined;
74
81
  swapResult = await createSwapQuote(client, {
75
82
  network: options.network,
76
83
  toToken: options.toToken,
@@ -80,6 +87,7 @@ export async function sendSwapTransaction(client, options) {
80
87
  signerAddress: options.signerAddress,
81
88
  gasPrice: options.gasPrice,
82
89
  slippageBps: options.slippageBps,
90
+ idempotencyKey: swapQuoteIdempotencyKey,
83
91
  });
84
92
  }
85
93
  // Check if liquidity is available
@@ -101,13 +109,19 @@ export async function sendSwapTransaction(client, options) {
101
109
  // Get the transaction data and modify it if needed for Permit2
102
110
  let txData = swap.transaction.data;
103
111
  if (swap.permit2?.eip712) {
104
- // Sign the Permit2 EIP-712 message
112
+ /**
113
+ * Sign the Permit2 EIP-712 message.
114
+ * Deterministically derive a new idempotency key from the provided idempotency key for permit2 signing to avoid key reuse.
115
+ */
116
+ const permit2IdempotencyKey = idempotencyKey
117
+ ? createDeterministicUuidV4(idempotencyKey, "permit2")
118
+ : undefined;
105
119
  const signature = await client.signEvmTypedData(address, {
106
120
  domain: swap.permit2.eip712.domain,
107
121
  types: swap.permit2.eip712.types,
108
122
  primaryType: swap.permit2.eip712.primaryType,
109
123
  message: swap.permit2.eip712.message,
110
- }, idempotencyKey);
124
+ }, permit2IdempotencyKey);
111
125
  // Calculate the signature length as a 32-byte hex value
112
126
  const signatureLengthInHex = numberToHex(size(signature.signature), {
113
127
  signed: false,
@@ -1 +1 @@
1
- {"version":3,"file":"sendSwapTransaction.js","sourceRoot":"","sources":["../../../../actions/evm/swap/sendSwapTransaction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sendSwapTransaction.js","sourceRoot":"","sources":["../../../../actions/evm/swap/sendSwapTransaction.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { constants, publicEncrypt } from "crypto";
2
+ import { getTypesForEIP712Domain } from "viem";
2
3
  import { ImportEvmAccountPublicRSAKey } from "./constants.js";
3
4
  import { toEvmServerAccount } from "../../accounts/evm/toEvmServerAccount.js";
4
5
  import { toEvmSmartAccount } from "../../accounts/evm/toEvmSmartAccount.js";
@@ -12,7 +13,7 @@ import { getSwapPrice } from "../../actions/evm/swap/getSwapPrice.js";
12
13
  import { waitForUserOperation, } from "../../actions/evm/waitForUserOperation.js";
13
14
  import { Analytics } from "../../analytics.js";
14
15
  import { APIError } from "../../openapi-client/errors.js";
15
- import { CdpOpenApiClient } from "../../openapi-client/index.js";
16
+ import { CdpOpenApiClient, } from "../../openapi-client/index.js";
16
17
  import { decryptWithPrivateKey, generateExportEncryptionKeyPair } from "../../utils/export.js";
17
18
  /**
18
19
  * The namespace containing all EVM methods.
@@ -838,12 +839,18 @@ export class EvmClient {
838
839
  * ```
839
840
  */
840
841
  async signTypedData(options) {
841
- const signature = await CdpOpenApiClient.signEvmTypedData(options.address, {
842
- domain: options.domain,
843
- types: options.types,
844
- primaryType: options.primaryType,
845
- message: options.message,
846
- }, options.idempotencyKey);
842
+ const { domain, message, primaryType } = options;
843
+ const types = {
844
+ EIP712Domain: getTypesForEIP712Domain({ domain }),
845
+ ...options.types,
846
+ };
847
+ const openApiMessage = {
848
+ domain,
849
+ types,
850
+ primaryType,
851
+ message,
852
+ };
853
+ const signature = await CdpOpenApiClient.signEvmTypedData(options.address, openApiMessage, options.idempotencyKey);
847
854
  return {
848
855
  signature: signature.signature,
849
856
  };
@@ -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":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAElD,OAAO,EAAgB,uBAAuB,EAAE,MAAM,MAAM,CAAC;AAE7D,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAiC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EACL,iBAAiB,GAGlB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,aAAa,GAGd,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EACL,iBAAiB,GAGlB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EACL,oBAAoB,GAErB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EACL,gBAAgB,GAEjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,qBAAqB,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AAO/F;;GAEG;AACH,MAAM,OAAO,SAAS;IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,KAAK,CAAC,aAAa,CAAC,UAAsC,EAAE;QAC1D,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CAC5D;YACE,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,MAAM,OAAO,GAAG,kBAAkB,CAAC,gBAAgB,EAAE;YACnD,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QAEH,SAAS,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;QAEtD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyCG;IACH,KAAK,CAAC,aAAa,CAAC,OAAmC;QACrD,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,4BAA4B,CAAC;QAExF,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC;YACvD,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAEvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YAE1D,MAAM,mBAAmB,GAAG,aAAa,CACvC;gBACE,GAAG,EAAE,mBAAmB;gBACxB,OAAO,EAAE,SAAS,CAAC,sBAAsB;gBACzC,QAAQ,EAAE,QAAQ;aACnB,EACD,eAAe,CAChB,CAAC;YAEF,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CAC5D;gBACE,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,mBAAmB,EAAE,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAC5D,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;YAEF,MAAM,OAAO,GAAG,kBAAkB,CAAC,gBAAgB,EAAE;gBACnD,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC;YAEH,SAAS,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;YAEtD,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;gBAC9B,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,aAAa,CAAC,OAAmC;QACrD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,+BAA+B,EAAE,CAAC;QAE1E,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;YAChD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,gBAAgB,CAAC,gBAAgB,CACtC,OAAO,CAAC,OAAO,EACf;oBACE,mBAAmB,EAAE,SAAS;iBAC/B,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;YACJ,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,gBAAgB,CAAC,sBAAsB,CAC5C,OAAO,CAAC,IAAI,EACZ;oBACE,mBAAmB,EAAE,SAAS;iBAC/B,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;YACJ,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,qBAAqB,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,KAAK,CAAC,kBAAkB,CAAC,OAAkC;QACzD,MAAM,mBAAmB,GAAG,MAAM,gBAAgB,CAAC,qBAAqB,CACtE;YACE,MAAM,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAC/B,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,MAAM,YAAY,GAAG,iBAAiB,CAAC,gBAAgB,EAAE;YACvD,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,SAAS,CAAC,kCAAkC,CAAC,YAAY,CAAC,CAAC;QAE3D,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,UAAU,CAAC,OAAgC;QAC/C,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,EAAE;YACjC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACzD,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,OAAO,gBAAgB,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,OAAO,GAAG,kBAAkB,CAAC,gBAAgB,EAAE;YACnD,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QAEH,SAAS,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;QAEtD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,eAAe,CAAC,OAA+B;QACnD,MAAM,mBAAmB,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;YAC5C,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9D,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,OAAO,gBAAgB,CAAC,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjE,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,YAAY,GAAG,iBAAiB,CAAC,gBAAgB,EAAE;YACvD,YAAY,EAAE,mBAAmB;YACjC,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;QAEH,SAAS,CAAC,kCAAkC,CAAC,YAAY,CAAC,CAAC;QAE3D,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,kBAAkB,CAAC,OAAwC;QAC/D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC/C,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4DAA4D;YAC5D,MAAM,mBAAmB,GAAG,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,CAAC;YAClF,IAAI,mBAAmB,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBAClD,OAAO,OAAO,CAAC;gBACjB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,kEAAkE;oBAClE,MAAM,uBAAuB,GAAG,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,CAAC;oBACtF,IAAI,uBAAuB,EAAE,CAAC;wBAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;wBAC/C,OAAO,OAAO,CAAC;oBACjB,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,KAAK,CAAC,uBAAuB,CAAC,OAAuC;QACnE,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACpD,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,4DAA4D;YAC5D,MAAM,mBAAmB,GAAG,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,CAAC;YAClF,IAAI,mBAAmB,EAAE,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;oBACvD,OAAO,OAAO,CAAC;gBACjB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,kEAAkE;oBAClE,MAAM,uBAAuB,GAAG,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,UAAU,KAAK,GAAG,CAAC;oBACtF,IAAI,uBAAuB,EAAE,CAAC;wBAC5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;wBACpD,OAAO,OAAO,CAAC;oBACjB,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,YAAY,CAChB,OAA4B;QAE5B,OAAO,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACH,KAAK,CAAC,eAAe,CACnB,OAA+B;QAE/B,OAAO,eAAe,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAAgC;QACrD,OAAO,gBAAgB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,YAAY,CAAC,UAAqC,EAAE;QACxD,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,eAAe,CAAC;YACzD,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBAC3C,MAAM,UAAU,GAAG,kBAAkB,CAAC,gBAAgB,EAAE;oBACtD,OAAO;iBACR,CAAC,CAAC;gBAEH,SAAS,CAAC,kCAAkC,CAAC,UAAU,CAAC,CAAC;gBAEzD,OAAO,UAAU,CAAC;YACpB,CAAC,CAAC;YACF,aAAa,EAAE,WAAW,CAAC,aAAa;SACzC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAAiC;QACvD,OAAO,iBAAiB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,KAAK,CAAC,iBAAiB,CAAC,UAAoC,EAAE;QAC5D,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,oBAAoB,CAAC;YAChE,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC/C,OAAO,EAAE,OAAO,CAAC,OAAkB;gBACnC,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAY,CAAC;gBACtC,IAAI,EAAE,WAAW;aAClB,CAAC,CAAC;YACH,aAAa,EAAE,aAAa,CAAC,aAAa;SAC3C,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,KAAK,CAAC,oBAAoB,CAAC,OAAoC;QAC7D,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,oBAAoB,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE;YACvF,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAChC,EAAE,EAAE,IAAI,CAAC,EAAa;gBACtB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC5B,IAAI,EAAE,IAAI,CAAC,IAAW;aACvB,CAAC,CAAC;YACH,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,MAAM,CAAC,UAAiB;YACpC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC/B,EAAE,EAAE,IAAI,CAAC,EAAa;gBACtB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;gBACzB,IAAI,EAAE,IAAI,CAAC,IAAW;aACvB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,KAAK,CAAC,aAAa,CAAC,OAA6B;QAC/C,OAAO,aAAa,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CG;IACH,KAAK,CAAC,eAAe,CAAC,OAA+B;QACnD,OAAO,eAAe,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,KAAK,CAAC,iBAAiB,CACrB,OAA4C;QAE5C,OAAO,iBAAiB,CAAC,gBAAgB,EAAE;YACzC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAwB;QACrC,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAClD,OAAO,CAAC,OAAO,EACf;YACE,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,SAAgB;SACtC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,KAAK,CAAC,WAAW,CAAC,OAA2B;QAC3C,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,cAAc,CACrD,OAAO,CAAC,OAAO,EACf;YACE,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,SAAgB;SACtC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4CG;IACH,KAAK,CAAC,aAAa,CAAC,OAA6B;QAC/C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QACjD,MAAM,KAAK,GAAG;YACZ,YAAY,EAAE,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;YACjD,GAAG,OAAO,CAAC,KAAK;SACjB,CAAC;QAEF,MAAM,cAAc,GAAyB;YAC3C,MAAM;YACN,KAAK;YACL,WAAW;YACX,OAAO;SACR,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CACvD,OAAO,CAAC,OAAO,EACf,cAAc,EACd,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,SAAgB;SACtC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,KAAK,CAAC,eAAe,CAAC,OAA+B;QACnD,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,kBAAkB,CACzD,OAAO,CAAC,OAAO,EACf;YACE,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,EACD,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,iBAAwB;SAC9C,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACH,KAAK,CAAC,aAAa,CAAC,OAAgC;QAClD,MAAM,cAAc,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CAC5D,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,cAAc,CACvB,CAAC;QAEF,MAAM,OAAO,GAAG,kBAAkB,CAAC,gBAAgB,EAAE;YACnD,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QAEH,SAAS,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;QAEtD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,KAAK,CAAC,oBAAoB,CACxB,OAAoC;QAEpC,OAAO,oBAAoB,CAAC,gBAAgB,EAAE;YAC5C,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ import { createHash } from "crypto";
2
+ /**
3
+ * Deterministically generates a UUIDv4 from a given input string.
4
+ * This is necessary when we need to generate downstream idempotency keys for operations that have multiple calls.
5
+ *
6
+ * @param input - The input string to derive from
7
+ * @param salt - Optional salt to append to the input (defaults to "salt")
8
+ * @returns A UUIDv4 formatted string
9
+ */
10
+ export function createDeterministicUuidV4(input, salt = "salt") {
11
+ const hash = createHash("sha256")
12
+ .update(input + "-" + salt)
13
+ .digest("hex");
14
+ // Format as UUIDv4: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
15
+ return [
16
+ hash.slice(0, 8),
17
+ hash.slice(8, 12),
18
+ "4" + hash.slice(13, 16), // Version 4
19
+ ((parseInt(hash.slice(16, 17), 16) & 0x3) | 0x8).toString(16) + hash.slice(17, 20), // Variant bits
20
+ hash.slice(20, 32),
21
+ ].join("-");
22
+ }
23
+ //# sourceMappingURL=uuidV4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uuidV4.js","sourceRoot":"","sources":["../../utils/uuidV4.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAa,EAAE,IAAI,GAAG,MAAM;IACpE,MAAM,IAAI,GAAG,UAAU,CAAC,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/_esm/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const version = "1.15.0";
1
+ export const version = "1.16.0";
2
2
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toEvmServerAccount.d.ts","sourceRoot":"","sources":["../../../accounts/evm/toEvmServerAccount.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAWnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGtF;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,kDAAkD;IAClD,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,yBAAyB,GACjC,gBAAgB,CA8FlB"}
1
+ {"version":3,"file":"toEvmServerAccount.d.ts","sourceRoot":"","sources":["../../../accounts/evm/toEvmServerAccount.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAWnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGtF;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,kDAAkD;IAClD,OAAO,EAAE,UAAU,CAAC;CACrB,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,yBAAyB,GACjC,gBAAgB,CAyGlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"toEvmSmartAccount.d.ts","sourceRoot":"","sources":["../../../accounts/evm/toEvmSmartAccount.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,IAAI,oBAAoB,EACxC,MAAM,+BAA+B,CAAC;AAGvC;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,wCAAwC;IACxC,YAAY,EAAE,oBAAoB,CAAC;IACnC,sCAAsC;IACtC,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,wBAAwB,GAChC,eAAe,CAqEjB"}
1
+ {"version":3,"file":"toEvmSmartAccount.d.ts","sourceRoot":"","sources":["../../../accounts/evm/toEvmSmartAccount.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAO9D,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,IAAI,oBAAoB,EACxC,MAAM,+BAA+B,CAAC;AAGvC;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,wCAAwC;IACxC,YAAY,EAAE,oBAAoB,CAAC;IACnC,sCAAsC;IACtC,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,wBAAwB,GAChC,eAAe,CAsFjB"}
@@ -1,7 +1,7 @@
1
- import { SignableMessage, TransactionSerializable } from "viem";
2
- import { Prettify } from "../../types/utils.js";
3
1
  import type { AccountActions, SmartAccountActions } from "../../actions/evm/types.js";
4
- import type { Address, EIP712Message, Hash, Hex } from "../../types/misc.js";
2
+ import type { Address, Hash, Hex } from "../../types/misc.js";
3
+ import type { Prettify } from "../../types/utils.js";
4
+ import type { SignableMessage, TransactionSerializable, TypedData, TypedDataDefinition } from "viem";
5
5
  /**
6
6
  * Base type for any Ethereum account with signing capabilities.
7
7
  * For example, this could be an EVM ServerAccount, or a viem LocalAccount.
@@ -20,7 +20,7 @@ export type EvmAccount = {
20
20
  /** Signs a transaction and returns the signed transaction as a hex string. */
21
21
  signTransaction: (transaction: TransactionSerializable) => Promise<Hex>;
22
22
  /** Signs a typed data and returns the signature as a hex string. */
23
- signTypedData: (message: EIP712Message) => Promise<Hex>;
23
+ signTypedData: <const typedData extends TypedData | Record<string, unknown>, primaryType extends keyof typedData | "EIP712Domain" = keyof typedData>(parameters: TypedDataDefinition<typedData, primaryType>) => Promise<Hex>;
24
24
  /** A list of Policy ID's that apply to the account. */
25
25
  policies?: string[];
26
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../accounts/evm/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,MAAM,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,sEAAsE;IACtE,IAAI,EAAE,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,iEAAiE;IACjE,WAAW,EAAE,CAAC,UAAU,EAAE;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACxE,8EAA8E;IAC9E,eAAe,EAAE,CAAC,WAAW,EAAE,uBAAuB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACxE,oEAAoE;IACpE,aAAa,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACxD,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CACrC,UAAU,GACR,cAAc,GAAG;IACf,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,IAAI,EAAE,YAAY,CAAC;CACpB,CACJ,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,CACpC;IACE,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uKAAuK;IACvK,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,6CAA6C;IAC7C,IAAI,EAAE,WAAW,CAAC;CACnB,GAAG,mBAAmB,CACxB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../accounts/evm/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,SAAS,EACT,mBAAmB,EACpB,MAAM,MAAM,CAAC;AAEd;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,sEAAsE;IACtE,IAAI,EAAE,CAAC,UAAU,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,iEAAiE;IACjE,WAAW,EAAE,CAAC,UAAU,EAAE;QAAE,OAAO,EAAE,eAAe,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACxE,8EAA8E;IAC9E,eAAe,EAAE,CAAC,WAAW,EAAE,uBAAuB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACxE,oEAAoE;IACpE,aAAa,EAAE,CACb,KAAK,CAAC,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3D,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,GAAG,MAAM,SAAS,EAEtE,UAAU,EAAE,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,KACpD,OAAO,CAAC,GAAG,CAAC,CAAC;IAClB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CACrC,UAAU,GACR,cAAc,GAAG;IACf,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,IAAI,EAAE,YAAY,CAAC;CACpB,CACJ,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,CACpC;IACE,mCAAmC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uKAAuK;IACvK,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,6CAA6C;IAC7C,IAAI,EAAE,WAAW,CAAC;CACnB,GAAG,mBAAmB,CACxB,CAAC"}
@@ -0,0 +1,133 @@
1
+ import type { EvmSmartAccount } from "../../accounts/evm/types.js";
2
+ import type { CdpOpenApiClientType, EIP712Message as OpenApiEIP712Message } from "../../openapi-client/index.js";
3
+ import type { EIP712Message, Hex } from "../../types/misc.js";
4
+ /**
5
+ * Options for signing and wrapping EIP-712 typed data with a smart account.
6
+ */
7
+ export interface SignAndWrapTypedDataForSmartAccountOptions {
8
+ /** The smart account to sign with. */
9
+ smartAccount: EvmSmartAccount;
10
+ /** The chain ID for the signature (used for replay protection). */
11
+ chainId: bigint;
12
+ /** The EIP-712 typed data message to sign. */
13
+ typedData: EIP712Message;
14
+ /** The index of the owner to sign with (defaults to 0). */
15
+ ownerIndex?: bigint;
16
+ /** Optional idempotency key for the signing request. */
17
+ idempotencyKey?: string;
18
+ }
19
+ /**
20
+ * Result of signing and wrapping typed data for a smart account.
21
+ */
22
+ export interface SignAndWrapTypedDataForSmartAccountResult {
23
+ /** The signature ready for smart contract use. */
24
+ signature: Hex;
25
+ }
26
+ /**
27
+ * Signs and wraps an EIP-712 message for a smart account using the required Coinbase Smart Wallet signature format.
28
+ *
29
+ * **Important: Coinbase Smart Wallet Contract Requirements**
30
+ *
31
+ * Due to the Coinbase Smart Wallet contract implementation (ERC-1271), CDP Smart Wallets have
32
+ * specific requirements for EIP-712 message signing:
33
+ *
34
+ * 1. **Replay-Safe Hashing**: All typed messages must be wrapped in a replay-safe hash that
35
+ * includes the chain ID and smart account address. This prevents the same signature from
36
+ * being valid across different chains or accounts.
37
+ *
38
+ * 2. **Signature Wrapping**: The resulting signature must be wrapped in a `SignatureWrapper`
39
+ * struct that identifies which owner signed and contains the signature data in the format
40
+ * expected by the smart contract's `isValidSignature()` method.
41
+ *
42
+ * This function handles both requirements automatically, making it safe and convenient for
43
+ * developers to sign EIP-712 messages with CDP Smart Wallets.
44
+ *
45
+ * @param {CdpOpenApiClientType} client - The CDP API client
46
+ * @param {SignAndWrapTypedDataForSmartAccountOptions} options - Parameters for signing and wrapping the EIP-712 message.
47
+ * @returns A promise that resolves to the signature that can be used with smart contracts.
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * const result = await signAndWrapTypedDataForSmartAccount(client, {
52
+ * smartAccount: smartAccount,
53
+ * chainId: 1n,
54
+ * typedData: {
55
+ * domain: {
56
+ * name: "Permit2",
57
+ * chainId: 1,
58
+ * verifyingContract: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
59
+ * },
60
+ * types: {
61
+ * EIP712Domain: [
62
+ * { name: "name", type: "string" },
63
+ * { name: "chainId", type: "uint256" },
64
+ * { name: "verifyingContract", type: "address" },
65
+ * ],
66
+ * PermitTransferFrom: [
67
+ * { name: "permitted", type: "TokenPermissions" },
68
+ * { name: "spender", type: "address" },
69
+ * { name: "nonce", type: "uint256" },
70
+ * { name: "deadline", type: "uint256" },
71
+ * ],
72
+ * TokenPermissions: [
73
+ * { name: "token", type: "address" },
74
+ * { name: "amount", type: "uint256" },
75
+ * ],
76
+ * },
77
+ * primaryType: "PermitTransferFrom",
78
+ * message: {
79
+ * permitted: {
80
+ * token: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
81
+ * amount: "1000000",
82
+ * },
83
+ * spender: "0xFfFfFfFFfFFfFFfFFfFFFFFffFFFffffFfFFFfFf",
84
+ * nonce: "0",
85
+ * deadline: "1717123200",
86
+ * },
87
+ * },
88
+ * });
89
+ *
90
+ * // Use result.signature for smart contract calls
91
+ * console.log(`Signature: ${result.signature}`);
92
+ * ```
93
+ */
94
+ export declare function signAndWrapTypedDataForSmartAccount(client: CdpOpenApiClientType, options: SignAndWrapTypedDataForSmartAccountOptions): Promise<SignAndWrapTypedDataForSmartAccountResult>;
95
+ /**
96
+ * Creates a replay-safe EIP-712 typed data structure by wrapping the original typed data with
97
+ * chain ID and smart account address.
98
+ *
99
+ * **Coinbase Smart Wallet Requirement**: Due to the Coinbase Smart Wallet contract's ERC-1271
100
+ * implementation, all EIP-712 messages must be wrapped in a replay-safe hash before signing.
101
+ * This prevents signature replay attacks across different chains or smart account addresses.
102
+ *
103
+ * The smart contract's `isValidSignature()` method expects signatures to be validated against
104
+ * this replay-safe hash, not the original message hash.
105
+ *
106
+ * @param params - The replay-safe hash parameters
107
+ * @param params.typedData - The original EIP-712 typed data to make replay-safe
108
+ * @param params.chainId - The chain ID for replay protection
109
+ * @param params.smartAccountAddress - The smart account address for additional context
110
+ * @returns The EIP-712 typed data structure for the replay-safe hash
111
+ */
112
+ export declare function createReplaySafeTypedData({ typedData, chainId, smartAccountAddress, }: {
113
+ typedData: EIP712Message;
114
+ chainId: bigint;
115
+ smartAccountAddress: Hex;
116
+ }): OpenApiEIP712Message;
117
+ /**
118
+ * Builds a signature wrapper for Coinbase Smart Wallets by decomposing a hex signature
119
+ * into r, s, v components and encoding them in the format expected by the smart contract.
120
+ *
121
+ * All signatures on Coinbase Smart Wallets must be wrapped in this format to identify
122
+ * which owner signed and provide the signature data.
123
+ *
124
+ * @param params - The signature parameters
125
+ * @param params.signatureHex - The hex signature to wrap (65 bytes: r + s + v)
126
+ * @param params.ownerIndex - The index of the owner that signed (from MultiOwnable.ownerAtIndex)
127
+ * @returns The encoded signature wrapper in the format expected by the smart contract
128
+ */
129
+ export declare function createSmartAccountSignatureWrapper({ signatureHex, ownerIndex, }: {
130
+ signatureHex: Hex;
131
+ ownerIndex: bigint;
132
+ }): Hex;
133
+ //# sourceMappingURL=signAndWrapTypedDataForSmartAccount.d.ts.map