@coinbase/cdp-sdk 1.33.0 → 1.34.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 (130) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/_cjs/accounts/evm/toEvmServerAccount.js +1 -1
  3. package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -1
  4. package/_cjs/accounts/evm/toEvmSmartAccount.js +1 -1
  5. package/_cjs/accounts/evm/toEvmSmartAccount.js.map +1 -1
  6. package/_cjs/accounts/evm/toNetworkScopedEvmServerAccount.js +2 -2
  7. package/_cjs/accounts/evm/toNetworkScopedEvmServerAccount.js.map +1 -1
  8. package/_cjs/accounts/evm/toNetworkScopedEvmSmartAccount.js +2 -2
  9. package/_cjs/accounts/evm/toNetworkScopedEvmSmartAccount.js.map +1 -1
  10. package/_cjs/actions/evm/listSpendPermissions.js +19 -1
  11. package/_cjs/actions/evm/listSpendPermissions.js.map +1 -1
  12. package/_cjs/actions/evm/spend-permissions/resolveSpendPermission.js +64 -0
  13. package/_cjs/actions/evm/spend-permissions/resolveSpendPermission.js.map +1 -0
  14. package/_cjs/client/evm/evm.js +12 -11
  15. package/_cjs/client/evm/evm.js.map +1 -1
  16. package/_cjs/index.js.map +1 -1
  17. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +45 -2
  18. package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
  19. package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js +79 -20
  20. package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js.map +1 -1
  21. package/_cjs/openapi-client/generated/evm-token-balances/evm-token-balances.js +1 -2
  22. package/_cjs/openapi-client/generated/evm-token-balances/evm-token-balances.js.map +1 -1
  23. package/_cjs/openapi-client/generated/index.msw.js +1 -0
  24. package/_cjs/openapi-client/generated/index.msw.js.map +1 -1
  25. package/_cjs/openapi-client/generated/onchain-data/onchain-data.js +63 -0
  26. package/_cjs/openapi-client/generated/onchain-data/onchain-data.js.map +1 -0
  27. package/_cjs/openapi-client/generated/onchain-data/onchain-data.msw.js +139 -0
  28. package/_cjs/openapi-client/generated/onchain-data/onchain-data.msw.js.map +1 -0
  29. package/_cjs/openapi-client/generated/policy-engine/policy-engine.msw.js +48 -4
  30. package/_cjs/openapi-client/generated/policy-engine/policy-engine.msw.js.map +1 -1
  31. package/_cjs/openapi-client/index.js +1 -0
  32. package/_cjs/openapi-client/index.js.map +1 -1
  33. package/_cjs/spend-permissions/utils.js +26 -0
  34. package/_cjs/spend-permissions/utils.js.map +1 -0
  35. package/_cjs/version.js +1 -1
  36. package/_esm/accounts/evm/toEvmServerAccount.js +1 -1
  37. package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -1
  38. package/_esm/accounts/evm/toEvmSmartAccount.js +1 -1
  39. package/_esm/accounts/evm/toEvmSmartAccount.js.map +1 -1
  40. package/_esm/accounts/evm/toNetworkScopedEvmServerAccount.js +2 -2
  41. package/_esm/accounts/evm/toNetworkScopedEvmServerAccount.js.map +1 -1
  42. package/_esm/accounts/evm/toNetworkScopedEvmSmartAccount.js +2 -2
  43. package/_esm/accounts/evm/toNetworkScopedEvmSmartAccount.js.map +1 -1
  44. package/_esm/actions/evm/listSpendPermissions.js +19 -1
  45. package/_esm/actions/evm/listSpendPermissions.js.map +1 -1
  46. package/_esm/actions/evm/spend-permissions/resolveSpendPermission.js +61 -0
  47. package/_esm/actions/evm/spend-permissions/resolveSpendPermission.js.map +1 -0
  48. package/_esm/client/evm/evm.js +13 -12
  49. package/_esm/client/evm/evm.js.map +1 -1
  50. package/_esm/index.js.map +1 -1
  51. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +43 -0
  52. package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
  53. package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js +79 -20
  54. package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js.map +1 -1
  55. package/_esm/openapi-client/generated/evm-token-balances/evm-token-balances.js +1 -2
  56. package/_esm/openapi-client/generated/evm-token-balances/evm-token-balances.js.map +1 -1
  57. package/_esm/openapi-client/generated/index.msw.js +1 -0
  58. package/_esm/openapi-client/generated/index.msw.js.map +1 -1
  59. package/_esm/openapi-client/generated/onchain-data/onchain-data.js +57 -0
  60. package/_esm/openapi-client/generated/onchain-data/onchain-data.js.map +1 -0
  61. package/_esm/openapi-client/generated/onchain-data/onchain-data.msw.js +129 -0
  62. package/_esm/openapi-client/generated/onchain-data/onchain-data.msw.js.map +1 -0
  63. package/_esm/openapi-client/generated/policy-engine/policy-engine.msw.js +48 -4
  64. package/_esm/openapi-client/generated/policy-engine/policy-engine.msw.js.map +1 -1
  65. package/_esm/openapi-client/index.js +1 -0
  66. package/_esm/openapi-client/index.js.map +1 -1
  67. package/_esm/spend-permissions/utils.js +23 -0
  68. package/_esm/spend-permissions/utils.js.map +1 -0
  69. package/_esm/version.js +1 -1
  70. package/_types/accounts/evm/toEvmServerAccount.d.ts.map +1 -1
  71. package/_types/accounts/evm/toNetworkScopedEvmSmartAccount.d.ts.map +1 -1
  72. package/_types/accounts/evm/types.d.ts +5 -5
  73. package/_types/accounts/evm/types.d.ts.map +1 -1
  74. package/_types/actions/evm/listSpendPermissions.d.ts +10 -2
  75. package/_types/actions/evm/listSpendPermissions.d.ts.map +1 -1
  76. package/_types/actions/evm/spend-permissions/resolveSpendPermission.d.ts +12 -0
  77. package/_types/actions/evm/spend-permissions/resolveSpendPermission.d.ts.map +1 -0
  78. package/_types/actions/evm/spend-permissions/types.d.ts +3 -2
  79. package/_types/actions/evm/spend-permissions/types.d.ts.map +1 -1
  80. package/_types/actions/evm/types.d.ts +4 -8
  81. package/_types/actions/evm/types.d.ts.map +1 -1
  82. package/_types/client/evm/evm.d.ts +3 -2
  83. package/_types/client/evm/evm.d.ts.map +1 -1
  84. package/_types/client/evm/evm.types.d.ts +7 -44
  85. package/_types/client/evm/evm.types.d.ts.map +1 -1
  86. package/_types/index.d.ts +2 -1
  87. package/_types/index.d.ts.map +1 -1
  88. package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts +167 -20
  89. package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts.map +1 -1
  90. package/_types/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.d.ts.map +1 -1
  91. package/_types/openapi-client/generated/evm-token-balances/evm-token-balances.d.ts +1 -2
  92. package/_types/openapi-client/generated/evm-token-balances/evm-token-balances.d.ts.map +1 -1
  93. package/_types/openapi-client/generated/index.msw.d.ts +1 -0
  94. package/_types/openapi-client/generated/index.msw.d.ts.map +1 -1
  95. package/_types/openapi-client/generated/onchain-data/onchain-data.d.ts +59 -0
  96. package/_types/openapi-client/generated/onchain-data/onchain-data.d.ts.map +1 -0
  97. package/_types/openapi-client/generated/onchain-data/onchain-data.msw.d.ts +10 -0
  98. package/_types/openapi-client/generated/onchain-data/onchain-data.msw.d.ts.map +1 -0
  99. package/_types/openapi-client/generated/policy-engine/policy-engine.msw.d.ts.map +1 -1
  100. package/_types/openapi-client/index.d.ts +1 -0
  101. package/_types/openapi-client/index.d.ts.map +1 -1
  102. package/_types/spend-permissions/types.d.ts +40 -5
  103. package/_types/spend-permissions/types.d.ts.map +1 -1
  104. package/_types/spend-permissions/utils.d.ts +12 -0
  105. package/_types/spend-permissions/utils.d.ts.map +1 -0
  106. package/_types/version.d.ts +1 -1
  107. package/accounts/evm/toEvmServerAccount.ts +1 -3
  108. package/accounts/evm/toEvmSmartAccount.ts +1 -1
  109. package/accounts/evm/toNetworkScopedEvmServerAccount.ts +4 -4
  110. package/accounts/evm/toNetworkScopedEvmSmartAccount.ts +4 -4
  111. package/accounts/evm/types.ts +5 -5
  112. package/actions/evm/listSpendPermissions.ts +42 -3
  113. package/actions/evm/spend-permissions/resolveSpendPermission.ts +85 -0
  114. package/actions/evm/spend-permissions/types.ts +3 -2
  115. package/actions/evm/types.ts +4 -12
  116. package/client/evm/evm.ts +25 -16
  117. package/client/evm/evm.types.ts +6 -48
  118. package/index.ts +2 -1
  119. package/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.ts +185 -20
  120. package/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.ts +79 -20
  121. package/openapi-client/generated/evm-token-balances/evm-token-balances.ts +1 -2
  122. package/openapi-client/generated/index.msw.ts +1 -0
  123. package/openapi-client/generated/onchain-data/onchain-data.msw.ts +185 -0
  124. package/openapi-client/generated/onchain-data/onchain-data.ts +103 -0
  125. package/openapi-client/generated/policy-engine/policy-engine.msw.ts +48 -4
  126. package/openapi-client/index.ts +1 -0
  127. package/package.json +1 -1
  128. package/spend-permissions/types.ts +46 -16
  129. package/spend-permissions/utils.ts +35 -0
  130. package/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../openapi-client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../openapi-client/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { SpendPermissionNetwork } from "../openapi-client/index.js";
1
2
  import type { Address, Hex } from "../types/misc.js";
2
3
  /**
3
4
  * A spend permission structure that defines authorization for spending tokens
@@ -22,9 +23,43 @@ export type SpendPermission = {
22
23
  /** Additional data for the permission */
23
24
  extraData: Hex;
24
25
  };
25
- /**
26
- * Networks that the SpendPermissionManager contract supports.
27
- * From https://github.com/coinbase/spend-permissions/blob/main/README.md#deployments
28
- */
29
- export type SpendPermissionNetworks = "base" | "base-sepolia" | "ethereum" | "ethereum-sepolia" | "optimism" | "optimism-sepolia" | "arbitrum" | "avalanche" | "binance" | "polygon" | "zora";
26
+ export type SpendPermissionInput = Omit<SpendPermission, "token" | "salt" | "extraData" | "period" | "start" | "end"> & {
27
+ token: "eth" | "usdc" | Address;
28
+ salt?: bigint;
29
+ extraData?: Hex;
30
+ period?: number;
31
+ periodInDays?: number;
32
+ start?: Date;
33
+ end?: Date;
34
+ };
35
+ export interface CreateSpendPermissionOptions {
36
+ /** The spend permission. */
37
+ spendPermission: SpendPermissionInput;
38
+ /** The network. */
39
+ network: SpendPermissionNetwork;
40
+ /** The paymaster URL. */
41
+ paymasterUrl?: string;
42
+ /** The idempotency key. */
43
+ idempotencyKey?: string;
44
+ }
45
+ export interface ListSpendPermissionsOptions {
46
+ /** The address of the smart account. */
47
+ address: Address;
48
+ /** The page size to paginate through the spend permissions. */
49
+ pageSize?: number;
50
+ /** The page token to paginate through the spend permissions. */
51
+ pageToken?: string;
52
+ }
53
+ export interface RevokeSpendPermissionOptions {
54
+ /** The address of the smart account. */
55
+ address: Address;
56
+ /** The hash of the spend permission to revoke. */
57
+ permissionHash: Hex;
58
+ /** The network. */
59
+ network: SpendPermissionNetwork;
60
+ /** The paymaster URL. */
61
+ paymasterUrl?: string;
62
+ /** The idempotency key. */
63
+ idempotencyKey?: string;
64
+ }
30
65
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../spend-permissions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAC;IACjB,0FAA0F;IAC1F,KAAK,EAAE,OAAO,CAAC;IACf,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,SAAS,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAC/B,MAAM,GACN,cAAc,GACd,UAAU,GACV,kBAAkB,GAClB,UAAU,GACV,kBAAkB,GAClB,UAAU,GACV,WAAW,GACX,SAAS,GACT,SAAS,GACT,MAAM,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../spend-permissions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAC;IACjB,0FAA0F;IAC1F,KAAK,EAAE,OAAO,CAAC;IACf,sFAAsF;IACtF,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,SAAS,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,eAAe,EACf,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAC5D,GAAG;IACF,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,WAAW,4BAA4B;IAC3C,4BAA4B;IAC5B,eAAe,EAAE,oBAAoB,CAAC;IACtC,mBAAmB;IACnB,OAAO,EAAE,sBAAsB,CAAC;IAChC,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,2BAA2B;IAC1C,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,wCAAwC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,kDAAkD;IAClD,cAAc,EAAE,GAAG,CAAC;IACpB,mBAAmB;IACnB,OAAO,EAAE,sBAAsB,CAAC;IAChC,yBAAyB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,12 @@
1
+ import type { SpendPermissionNetwork } from "../openapi-client/index.js";
2
+ import type { Address } from "../types/misc.js";
3
+ /**
4
+ * Resolve the address of a token for a given network.
5
+ *
6
+ * @param token - The token symbol or contract address.
7
+ * @param network - The network to get the address for.
8
+ *
9
+ * @returns The address of the token.
10
+ */
11
+ export declare function resolveTokenAddress(token: "eth" | "usdc" | Address, network: SpendPermissionNetwork): Address;
12
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../spend-permissions/utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,EAC/B,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAgBT"}
@@ -1,2 +1,2 @@
1
- export declare const version = "1.33.0";
1
+ export declare const version = "1.34.0";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -258,9 +258,7 @@ export function toEvmServerAccount(
258
258
  taker: this.address, // Always use account's address as taker
259
259
  });
260
260
  },
261
- async __experimental_useSpendPermission(
262
- options: UseSpendPermissionOptions,
263
- ): Promise<TransactionResult> {
261
+ async useSpendPermission(options: UseSpendPermissionOptions): Promise<TransactionResult> {
264
262
  Analytics.trackAction({
265
263
  action: "use_spend_permission",
266
264
  accountType: "evm_server",
@@ -260,7 +260,7 @@ export function toEvmSmartAccount(
260
260
  });
261
261
  return result.signature;
262
262
  },
263
- async __experimental_useSpendPermission(
263
+ async useSpendPermission(
264
264
  options: UseSpendPermissionOptions,
265
265
  ): Promise<SendUserOperationReturnType> {
266
266
  Analytics.trackAction({
@@ -23,8 +23,8 @@ import type { WaitForFundOperationOptions } from "../../actions/waitForFundOpera
23
23
  import type {
24
24
  ListEvmTokenBalancesNetwork,
25
25
  SendEvmTransactionBodyNetwork,
26
+ SpendPermissionNetwork,
26
27
  } from "../../openapi-client/index.js";
27
- import type { SpendPermissionNetworks } from "../../spend-permissions/types.js";
28
28
  import type { Address, TransactionRequestEIP1559 } from "../../types/misc.js";
29
29
 
30
30
  /**
@@ -258,7 +258,7 @@ export async function toNetworkScopedEvmServerAccount<Network extends string>(
258
258
 
259
259
  if (isMethodSupportedOnNetwork("useSpendPermission", resolvedNetworkName)) {
260
260
  Object.assign(account, {
261
- __experimental_useSpendPermission: async (
261
+ useSpendPermission: async (
262
262
  spendPermissionOptions: Omit<UseSpendPermissionOptions, "network">,
263
263
  ) => {
264
264
  Analytics.trackAction({
@@ -269,9 +269,9 @@ export async function toNetworkScopedEvmServerAccount<Network extends string>(
269
269
  },
270
270
  });
271
271
 
272
- return options.account.__experimental_useSpendPermission({
272
+ return options.account.useSpendPermission({
273
273
  ...spendPermissionOptions,
274
- network: options.network as SpendPermissionNetworks,
274
+ network: options.network as SpendPermissionNetwork,
275
275
  });
276
276
  },
277
277
  });
@@ -39,8 +39,8 @@ import type {
39
39
  CdpOpenApiClientType,
40
40
  EvmUserOperationNetwork,
41
41
  ListEvmTokenBalancesNetwork,
42
+ SpendPermissionNetwork,
42
43
  } from "../../openapi-client/index.js";
43
- import type { SpendPermissionNetworks } from "../../spend-permissions/types.js";
44
44
 
45
45
  /**
46
46
  * Options for converting a pre-existing EvmSmartAccount and owner to a NetworkScopedEvmSmartAccount
@@ -297,7 +297,7 @@ export async function toNetworkScopedEvmSmartAccount<Network extends KnownEvmNet
297
297
 
298
298
  if (isMethodSupportedOnNetwork("useSpendPermission", options.network)) {
299
299
  Object.assign(account, {
300
- __experimental_useSpendPermission: async (
300
+ useSpendPermission: async (
301
301
  spendPermissionOptions: Omit<UseSpendPermissionOptions, "network">,
302
302
  ) => {
303
303
  Analytics.trackAction({
@@ -308,9 +308,9 @@ export async function toNetworkScopedEvmSmartAccount<Network extends KnownEvmNet
308
308
  },
309
309
  });
310
310
 
311
- return options.smartAccount.__experimental_useSpendPermission({
311
+ return options.smartAccount.useSpendPermission({
312
312
  ...spendPermissionOptions,
313
- network: options.network as SpendPermissionNetworks,
313
+ network: options.network as SpendPermissionNetwork,
314
314
  });
315
315
  },
316
316
  });
@@ -40,7 +40,7 @@ import {
40
40
  WaitForFundOperationResult,
41
41
  } from "../../actions/waitForFundOperationReceipt.js";
42
42
  import { GetUserOperationOptions, UserOperation } from "../../client/evm/evm.types.js";
43
- import { SpendPermissionNetworks } from "../../spend-permissions/types.js";
43
+ import { SpendPermissionNetwork } from "../../openapi-client/index.js";
44
44
 
45
45
  import type {
46
46
  SmartAccountTransferOptions,
@@ -246,9 +246,9 @@ export type NetworkSpecificSmartAccountActions<Network extends string> = Prettif
246
246
  }
247
247
  : EmptyObject) &
248
248
  // Conditionally include useSpendPermission
249
- (Network extends SpendPermissionNetworks
249
+ (Network extends SpendPermissionNetwork
250
250
  ? {
251
- __experimental_useSpendPermission: (
251
+ useSpendPermission: (
252
252
  options: Omit<UseSpendPermissionOptions, "network">,
253
253
  ) => Promise<SendUserOperationReturnType>;
254
254
  }
@@ -334,9 +334,9 @@ export type NetworkSpecificAccountActions<Network extends string> = Prettify<
334
334
  }
335
335
  : EmptyObject) &
336
336
  // Conditionally include useSpendPermission
337
- (Network extends SpendPermissionNetworks
337
+ (Network extends SpendPermissionNetwork
338
338
  ? {
339
- __experimental_useSpendPermission: (
339
+ useSpendPermission: (
340
340
  options: Omit<UseSpendPermissionOptions, "network">,
341
341
  ) => Promise<TransactionResult>;
342
342
  }
@@ -1,5 +1,25 @@
1
- import type { ListSpendPermissionsOptions } from "../../client/evm/evm.types.js";
2
- import type { CdpOpenApiClient, ListSpendPermissionsResult } from "../../openapi-client/index.js";
1
+ import type {
2
+ CdpOpenApiClient,
3
+ ListResponse,
4
+ SpendPermissionResponseObject as SpendPermissionResponseObjectApi,
5
+ } from "../../openapi-client/index.js";
6
+ import type {
7
+ ListSpendPermissionsOptions,
8
+ SpendPermission,
9
+ } from "../../spend-permissions/types.js";
10
+ import type { Address, Hex } from "../../types/misc.js";
11
+
12
+ export type SpendPermissionResponseObject = Omit<
13
+ SpendPermissionResponseObjectApi,
14
+ "permission" | "permissionHash"
15
+ > & {
16
+ permissionHash: Hex;
17
+ permission: SpendPermission;
18
+ };
19
+
20
+ export type ListSpendPermissionsResult = ListResponse & {
21
+ spendPermissions: SpendPermissionResponseObject[];
22
+ };
3
23
 
4
24
  /**
5
25
  * Lists the spend permissions for a smart account.
@@ -13,8 +33,27 @@ export async function listSpendPermissions(
13
33
  client: typeof CdpOpenApiClient,
14
34
  options: ListSpendPermissionsOptions,
15
35
  ): Promise<ListSpendPermissionsResult> {
16
- return await client.listSpendPermissions(options.address, {
36
+ const result = await client.listSpendPermissions(options.address, {
17
37
  pageSize: options.pageSize,
18
38
  pageToken: options.pageToken,
19
39
  });
40
+
41
+ return {
42
+ spendPermissions: result.spendPermissions.map(permission => ({
43
+ ...permission,
44
+ permissionHash: permission.permissionHash as Hex,
45
+ permission: {
46
+ ...permission.permission,
47
+ account: permission.permission.account as Address,
48
+ spender: permission.permission.spender as Address,
49
+ token: permission.permission.token as Address,
50
+ allowance: BigInt(permission.permission.allowance),
51
+ period: Number(permission.permission.period),
52
+ start: Number(permission.permission.start),
53
+ end: Number(permission.permission.end),
54
+ salt: BigInt(permission.permission.salt),
55
+ extraData: permission.permission.extraData as Hex,
56
+ },
57
+ })),
58
+ };
20
59
  }
@@ -0,0 +1,85 @@
1
+ import { UserInputValidationError } from "../../../errors.js";
2
+ import { resolveTokenAddress } from "../../../spend-permissions/utils.js";
3
+
4
+ import type { SpendPermissionNetwork } from "../../../openapi-client/index.js";
5
+ import type { SpendPermission, SpendPermissionInput } from "../../../spend-permissions/types.js";
6
+
7
+ /**
8
+ * Generate a random salt using crypto.getRandomValues().
9
+ *
10
+ * @returns A random bigint salt.
11
+ */
12
+ function generateRandomSalt(): bigint {
13
+ const randomBytes = new Uint8Array(32);
14
+ crypto.getRandomValues(randomBytes);
15
+
16
+ // Convert bytes to bigint
17
+ let result = 0n;
18
+ for (let i = 0; i < randomBytes.length; i++) {
19
+ result = (result << 8n) + BigInt(randomBytes[i]);
20
+ }
21
+
22
+ return result;
23
+ }
24
+
25
+ /**
26
+ * Resolve a spend permission input to a spend permission.
27
+ *
28
+ * @param spendPermissionInput - The spend permission input to resolve.
29
+ * @param network - The network to resolve the spend permission for.
30
+ *
31
+ * @returns The resolved spend permission.
32
+ */
33
+ export function resolveSpendPermission(
34
+ spendPermissionInput: SpendPermissionInput,
35
+ network: SpendPermissionNetwork,
36
+ ): SpendPermission {
37
+ // Validate that either period or periodInDays is provided, but not both
38
+ if (
39
+ spendPermissionInput.period !== undefined &&
40
+ spendPermissionInput.periodInDays !== undefined
41
+ ) {
42
+ throw new UserInputValidationError(
43
+ "Cannot specify both 'period' and 'periodInDays'. Please provide only one.",
44
+ );
45
+ }
46
+
47
+ if (
48
+ spendPermissionInput.period === undefined &&
49
+ spendPermissionInput.periodInDays === undefined
50
+ ) {
51
+ throw new UserInputValidationError(
52
+ "Must specify either 'period' (in seconds) or 'periodInDays'.",
53
+ );
54
+ }
55
+
56
+ // Convert periodInDays to period in seconds if provided
57
+ const period = spendPermissionInput.period ?? spendPermissionInput.periodInDays! * 24 * 60 * 60;
58
+
59
+ // Set defaults for start and end
60
+ const now = new Date();
61
+ const startDate = spendPermissionInput.start ?? now;
62
+
63
+ /*
64
+ * For end date default, we need to handle the max uint48 value carefully
65
+ * JavaScript Date max is around year 275760, but uint48 max (281474976710655) is much larger
66
+ * So we'll use the max uint48 value directly for end if no end date is provided
67
+ */
68
+ const endDate = spendPermissionInput.end;
69
+
70
+ // Convert Date objects to seconds since epoch for the contract
71
+ const start = Math.floor(startDate.getTime() / 1000);
72
+ const end = endDate ? Math.floor(endDate.getTime() / 1000) : 281474976710655; // Max uint48 value (never expires)
73
+
74
+ const { periodInDays: _periodInDays, ...inputWithoutPeriodInDays } = spendPermissionInput;
75
+
76
+ return {
77
+ ...inputWithoutPeriodInDays,
78
+ token: resolveTokenAddress(spendPermissionInput.token, network),
79
+ period,
80
+ start,
81
+ end,
82
+ salt: spendPermissionInput.salt ?? generateRandomSalt(),
83
+ extraData: spendPermissionInput.extraData ?? "0x",
84
+ };
85
+ }
@@ -1,4 +1,5 @@
1
- import type { SpendPermission, SpendPermissionNetworks } from "../../../spend-permissions/types.js";
1
+ import type { SpendPermissionNetwork } from "../../../openapi-client/index.js";
2
+ import type { SpendPermission } from "../../../spend-permissions/types.js";
2
3
 
3
4
  /**
4
5
  * Options for using a spend permission
@@ -9,5 +10,5 @@ export type UseSpendPermissionOptions = {
9
10
  /** The amount to spend (must be <= allowance) */
10
11
  value: bigint;
11
12
  /** The network to execute the transaction on */
12
- network: SpendPermissionNetworks;
13
+ network: SpendPermissionNetwork;
13
14
  };
@@ -356,8 +356,6 @@ export type AccountActions = Actions & {
356
356
  swap: (options: AccountSwapOptions) => Promise<AccountSwapResult>;
357
357
 
358
358
  /**
359
- * @deprecated Experimental! This method name will change, and is subject to other breaking changes.
360
- *
361
359
  * Uses a spend permission to execute a transaction.
362
360
  * This allows the account to spend tokens that have been approved via a spend permission.
363
361
  *
@@ -384,16 +382,14 @@ export type AccountActions = Actions & {
384
382
  * extraData: "0x",
385
383
  * };
386
384
  *
387
- * const result = await account.__experimental_useSpendPermission({
385
+ * const result = await account.useSpendPermission({
388
386
  * spendPermission,
389
387
  * value: parseEther("0.001"), // Spend 0.001 ETH
390
388
  * network: "base-sepolia",
391
389
  * });
392
390
  * ```
393
391
  */
394
- __experimental_useSpendPermission: (
395
- options: UseSpendPermissionOptions,
396
- ) => Promise<TransactionResult>;
392
+ useSpendPermission: (options: UseSpendPermissionOptions) => Promise<TransactionResult>;
397
393
  };
398
394
 
399
395
  export type SmartAccountActions = Actions & {
@@ -683,8 +679,6 @@ export type SmartAccountActions = Actions & {
683
679
  ) => Promise<Hex>;
684
680
 
685
681
  /**
686
- * @deprecated Experimental! This method name will change, and is subject to other breaking changes.
687
- *
688
682
  * Uses a spend permission to execute a transaction via user operation.
689
683
  * This allows the smart account to spend tokens that have been approved via a spend permission.
690
684
  *
@@ -711,14 +705,12 @@ export type SmartAccountActions = Actions & {
711
705
  * extraData: "0x",
712
706
  * };
713
707
  *
714
- * const result = await smartAccount.__experimental_useSpendPermission({
708
+ * const result = await smartAccount.useSpendPermission({
715
709
  * spendPermission,
716
710
  * value: parseEther("0.001"), // Spend 0.001 ETH
717
711
  * network: "base-sepolia",
718
712
  * });
719
713
  * ```
720
714
  */
721
- __experimental_useSpendPermission: (
722
- options: UseSpendPermissionOptions,
723
- ) => Promise<SendUserOperationReturnType>;
715
+ useSpendPermission: (options: UseSpendPermissionOptions) => Promise<SendUserOperationReturnType>;
724
716
  };
package/client/evm/evm.ts CHANGED
@@ -5,8 +5,6 @@ import { type Address, getTypesForEIP712Domain } from "viem";
5
5
  import {
6
6
  CreateServerAccountOptions,
7
7
  CreateSmartAccountOptions,
8
- CreateSpendPermissionOptions,
9
- RevokeSpendPermissionOptions,
10
8
  CreateSwapQuoteOptions,
11
9
  CreateSwapQuoteResult,
12
10
  EvmClientInterface,
@@ -23,7 +21,6 @@ import {
23
21
  ListServerAccountsOptions,
24
22
  ListSmartAccountResult,
25
23
  ListSmartAccountsOptions,
26
- ListSpendPermissionsOptions,
27
24
  PrepareUserOperationOptions,
28
25
  ServerAccount,
29
26
  SignatureResult,
@@ -41,7 +38,10 @@ import {
41
38
  import { toEvmServerAccount } from "../../accounts/evm/toEvmServerAccount.js";
42
39
  import { toEvmSmartAccount } from "../../accounts/evm/toEvmSmartAccount.js";
43
40
  import { getUserOperation } from "../../actions/evm/getUserOperation.js";
44
- import { listSpendPermissions } from "../../actions/evm/listSpendPermissions.js";
41
+ import {
42
+ listSpendPermissions,
43
+ ListSpendPermissionsResult,
44
+ } from "../../actions/evm/listSpendPermissions.js";
45
45
  import {
46
46
  listTokenBalances,
47
47
  ListTokenBalancesOptions,
@@ -58,6 +58,7 @@ import {
58
58
  SendUserOperationOptions,
59
59
  SendUserOperationReturnType,
60
60
  } from "../../actions/evm/sendUserOperation.js";
61
+ import { resolveSpendPermission } from "../../actions/evm/spend-permissions/resolveSpendPermission.js";
61
62
  import { createSwapQuote } from "../../actions/evm/swap/createSwapQuote.js";
62
63
  import { getSwapPrice } from "../../actions/evm/swap/getSwapPrice.js";
63
64
  import {
@@ -70,7 +71,6 @@ import { UserInputValidationError } from "../../errors.js";
70
71
  import { APIError } from "../../openapi-client/errors.js";
71
72
  import {
72
73
  CdpOpenApiClient,
73
- ListSpendPermissionsResult,
74
74
  EIP712Message as OpenAPIEIP712Message,
75
75
  } from "../../openapi-client/index.js";
76
76
  import { SPEND_PERMISSION_MANAGER_ADDRESS } from "../../spend-permissions/constants.js";
@@ -81,6 +81,11 @@ import type {
81
81
  SendTransactionOptions,
82
82
  TransactionResult,
83
83
  } from "../../actions/evm/sendTransaction.js";
84
+ import type {
85
+ CreateSpendPermissionOptions,
86
+ ListSpendPermissionsOptions,
87
+ RevokeSpendPermissionOptions,
88
+ } from "../../spend-permissions/types.js";
84
89
 
85
90
  /**
86
91
  * The namespace containing all EVM methods.
@@ -358,18 +363,22 @@ export class EvmClient implements EvmClientInterface {
358
363
  action: "create_spend_permission",
359
364
  });
360
365
 
366
+ const resolvedSpendPermission = resolveSpendPermission(
367
+ options.spendPermission,
368
+ options.network,
369
+ );
370
+
361
371
  const userOperation = await CdpOpenApiClient.createSpendPermission(
362
- options.spendPermission.account,
372
+ resolvedSpendPermission.account,
363
373
  {
364
- account: options.spendPermission.account,
365
- spender: options.spendPermission.spender,
366
- token: options.spendPermission.token,
367
- allowance: options.spendPermission.allowance.toString(),
368
- period: options.spendPermission.period.toString(),
369
- start: options.spendPermission.start.toString(),
370
- end: options.spendPermission.end.toString(),
371
- salt: options.spendPermission.salt.toString(),
372
- extraData: options.spendPermission.extraData,
374
+ spender: resolvedSpendPermission.spender,
375
+ token: resolvedSpendPermission.token,
376
+ allowance: resolvedSpendPermission.allowance.toString(),
377
+ period: resolvedSpendPermission.period.toString(),
378
+ start: resolvedSpendPermission.start.toString(),
379
+ end: resolvedSpendPermission.end.toString(),
380
+ salt: resolvedSpendPermission.salt.toString(),
381
+ extraData: resolvedSpendPermission.extraData,
373
382
  network: options.network,
374
383
  paymasterUrl: options.paymasterUrl,
375
384
  },
@@ -1436,7 +1445,7 @@ export class EvmClient implements EvmClientInterface {
1436
1445
  ): Promise<SmartAccount> {
1437
1446
  const owners = [options.owner.address];
1438
1447
 
1439
- if (options.__experimental_enableSpendPermission) {
1448
+ if (options.enableSpendPermissions) {
1440
1449
  owners.push(SPEND_PERMISSION_MANAGER_ADDRESS);
1441
1450
  }
1442
1451
 
@@ -1,10 +1,9 @@
1
- import { SpendPermission } from "../../spend-permissions/types.js";
2
-
3
1
  import type {
4
2
  EvmAccount as Account,
5
3
  EvmServerAccount as ServerAccount,
6
4
  EvmSmartAccount as SmartAccount,
7
5
  } from "../../accounts/evm/types.js";
6
+ import type { ListSpendPermissionsResult } from "../../actions/evm/listSpendPermissions.js";
8
7
  import type {
9
8
  ListTokenBalancesOptions,
10
9
  ListTokenBalancesResult,
@@ -23,12 +22,12 @@ import type {
23
22
  EvmSwapsNetwork,
24
23
  EvmUserOperationNetwork,
25
24
  EvmUserOperationStatus,
26
- ListSpendPermissionsResult,
27
25
  OpenApiEvmMethods,
28
26
  UpdateEvmAccountBody as UpdateEvmAccount,
29
27
  UpdateEvmSmartAccountBody as UpdateEvmSmartAccount,
30
28
  UserOperationReceipt,
31
29
  } from "../../openapi-client/index.js";
30
+ import type { ListSpendPermissionsOptions } from "../../spend-permissions/types.js";
32
31
  import type { Calls } from "../../types/calls.js";
33
32
  import type { Address, EIP712Message, Hex } from "../../types/misc.js";
34
33
  import type { WaitOptions } from "../../utils/wait.js";
@@ -266,39 +265,6 @@ export interface CreateSwapQuoteResult {
266
265
  execute: (options?: ExecuteSwapQuoteOptions) => Promise<ExecuteSwapQuoteResult>;
267
266
  }
268
267
 
269
- export interface CreateSpendPermissionOptions {
270
- /** The spend permission. */
271
- spendPermission: SpendPermission;
272
- /** The network. */
273
- network: EvmUserOperationNetwork;
274
- /** The paymaster URL. */
275
- paymasterUrl?: string;
276
- /** The idempotency key. */
277
- idempotencyKey?: string;
278
- }
279
-
280
- export interface ListSpendPermissionsOptions {
281
- /** The address of the smart account. */
282
- address: Address;
283
- /** The page size to paginate through the spend permissions. */
284
- pageSize?: number;
285
- /** The page token to paginate through the spend permissions. */
286
- pageToken?: string;
287
- }
288
-
289
- export interface RevokeSpendPermissionOptions {
290
- /** The address of the smart account. */
291
- address: Address;
292
- /** The hash of the spend permission to revoke. */
293
- permissionHash: Hex;
294
- /** The network. */
295
- network: EvmUserOperationNetwork;
296
- /** The paymaster URL. */
297
- paymasterUrl?: string;
298
- /** The idempotency key. */
299
- idempotencyKey?: string;
300
- }
301
-
302
268
  /**
303
269
  * Options for getting a user operation.
304
270
  */
@@ -439,12 +405,8 @@ export interface GetOrCreateSmartAccountOptions {
439
405
  name: string;
440
406
  /** The owner of the account. */
441
407
  owner: Account;
442
- /**
443
- * @deprecated Experimental! This method name will change, and is subject to other breaking changes.
444
- *
445
- * The flag to enable spend permission.
446
- */
447
- __experimental_enableSpendPermission?: boolean;
408
+ /** The flag to enable spend permissions. */
409
+ enableSpendPermissions?: boolean;
448
410
  }
449
411
 
450
412
  /**
@@ -540,12 +502,8 @@ export interface CreateSmartAccountOptions {
540
502
  idempotencyKey?: string;
541
503
  /** The name of the account. */
542
504
  name?: string;
543
- /**
544
- * @deprecated Experimental! This method name will change, and is subject to other breaking changes.
545
- *
546
- * The flag to enable spend permission.
547
- */
548
- __experimental_enableSpendPermission?: boolean;
505
+ /** The flag to enable spend permissions. */
506
+ enableSpendPermissions?: boolean;
549
507
  }
550
508
 
551
509
  /**
package/index.ts CHANGED
@@ -8,7 +8,8 @@ export {
8
8
  type UpdatePolicyBody,
9
9
  } from "./policies/types.js";
10
10
  export { NetworkError } from "./openapi-client/errors.js";
11
- export type { SpendPermission } from "./spend-permissions/types.js";
11
+ export type { SpendPermission, SpendPermissionInput } from "./spend-permissions/types.js";
12
+ export type { SpendPermissionNetwork } from "./openapi-client/index.js";
12
13
  export {
13
14
  SPEND_PERMISSION_MANAGER_ABI as spendPermissionManagerAbi,
14
15
  SPEND_PERMISSION_MANAGER_ADDRESS as spendPermissionManagerAddress,