@account-kit/wallet-client 0.1.0-alpha.5 → 0.1.0-alpha.7

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 (121) hide show
  1. package/dist/esm/capabilities/eip7702Auth.js +3 -1
  2. package/dist/esm/capabilities/eip7702Auth.js.map +1 -1
  3. package/dist/esm/capabilities/overrides.js +8 -8
  4. package/dist/esm/capabilities/overrides.js.map +1 -1
  5. package/dist/esm/capabilities/permissions/index.d.ts +1 -1
  6. package/dist/esm/capabilities/permissions/index.js +6 -3
  7. package/dist/esm/capabilities/permissions/index.js.map +1 -1
  8. package/dist/esm/client/actions/grantPermissions.d.ts +5 -60
  9. package/dist/esm/client/actions/grantPermissions.js +5 -58
  10. package/dist/esm/client/actions/grantPermissions.js.map +1 -1
  11. package/dist/esm/client/actions/requestAccount.js +5 -2
  12. package/dist/esm/client/actions/requestAccount.js.map +1 -1
  13. package/dist/esm/client/actions/sendPreparedCalls.d.ts +6 -14
  14. package/dist/esm/client/actions/sendPreparedCalls.js +11 -12
  15. package/dist/esm/client/actions/sendPreparedCalls.js.map +1 -1
  16. package/dist/esm/client/actions/signPreparedCalls.d.ts +14 -0
  17. package/dist/esm/client/actions/signPreparedCalls.js +54 -0
  18. package/dist/esm/client/actions/signPreparedCalls.js.map +1 -0
  19. package/dist/esm/client/actions/signSignatureRequest.d.ts +8 -7
  20. package/dist/esm/client/actions/signSignatureRequest.js +69 -31
  21. package/dist/esm/client/actions/signSignatureRequest.js.map +1 -1
  22. package/dist/esm/client/client.e2e-test.js +80 -24
  23. package/dist/esm/client/client.e2e-test.js.map +1 -1
  24. package/dist/esm/client/decorator.d.ts +3 -1
  25. package/dist/esm/client/decorator.js +3 -1
  26. package/dist/esm/client/decorator.js.map +1 -1
  27. package/dist/esm/exports/index.d.ts +2 -1
  28. package/dist/esm/exports/index.js +2 -1
  29. package/dist/esm/exports/index.js.map +1 -1
  30. package/dist/esm/isomorphic/actions/createSession.js +18 -32
  31. package/dist/esm/isomorphic/actions/createSession.js.map +1 -1
  32. package/dist/esm/isomorphic/actions/prepareCalls.js +22 -16
  33. package/dist/esm/isomorphic/actions/prepareCalls.js.map +1 -1
  34. package/dist/esm/isomorphic/actions/sendPreparedCalls.d.ts +3 -3
  35. package/dist/esm/isomorphic/actions/sendPreparedCalls.js +76 -36
  36. package/dist/esm/isomorphic/actions/sendPreparedCalls.js.map +1 -1
  37. package/dist/esm/isomorphic/client.d.ts +139 -13
  38. package/dist/esm/isomorphic/utils/7702.d.ts +4 -3
  39. package/dist/esm/isomorphic/utils/7702.js +14 -6
  40. package/dist/esm/isomorphic/utils/7702.js.map +1 -1
  41. package/dist/esm/isomorphic/utils/decodeSignature.d.ts +3 -0
  42. package/dist/esm/isomorphic/utils/decodeSignature.js +13 -0
  43. package/dist/esm/isomorphic/utils/decodeSignature.js.map +1 -0
  44. package/dist/esm/local/client.js +2 -3
  45. package/dist/esm/local/client.js.map +1 -1
  46. package/dist/esm/remote/client.js +3 -7
  47. package/dist/esm/remote/client.js.map +1 -1
  48. package/dist/esm/rpc/examples.d.ts +3 -3
  49. package/dist/esm/rpc/examples.js +3 -3
  50. package/dist/esm/rpc/examples.js.map +1 -1
  51. package/dist/esm/rpc/request.d.ts +357 -49
  52. package/dist/esm/rpc/request.js +26 -53
  53. package/dist/esm/rpc/request.js.map +1 -1
  54. package/dist/esm/rpc/schema.d.ts +323 -57
  55. package/dist/esm/rpc/schema.js.map +1 -1
  56. package/dist/esm/schemas.d.ts +451 -13
  57. package/dist/esm/schemas.js +165 -52
  58. package/dist/esm/schemas.js.map +1 -1
  59. package/dist/esm/types.d.ts +3 -0
  60. package/dist/esm/types.js.map +1 -1
  61. package/dist/types/capabilities/eip7702Auth.d.ts.map +1 -1
  62. package/dist/types/capabilities/permissions/index.d.ts +1 -1
  63. package/dist/types/capabilities/permissions/index.d.ts.map +1 -1
  64. package/dist/types/client/actions/grantPermissions.d.ts +5 -60
  65. package/dist/types/client/actions/grantPermissions.d.ts.map +1 -1
  66. package/dist/types/client/actions/requestAccount.d.ts.map +1 -1
  67. package/dist/types/client/actions/sendPreparedCalls.d.ts +6 -14
  68. package/dist/types/client/actions/sendPreparedCalls.d.ts.map +1 -1
  69. package/dist/types/client/actions/signPreparedCalls.d.ts +15 -0
  70. package/dist/types/client/actions/signPreparedCalls.d.ts.map +1 -0
  71. package/dist/types/client/actions/signSignatureRequest.d.ts +8 -7
  72. package/dist/types/client/actions/signSignatureRequest.d.ts.map +1 -1
  73. package/dist/types/client/decorator.d.ts +3 -1
  74. package/dist/types/client/decorator.d.ts.map +1 -1
  75. package/dist/types/exports/index.d.ts +2 -1
  76. package/dist/types/exports/index.d.ts.map +1 -1
  77. package/dist/types/isomorphic/actions/createSession.d.ts.map +1 -1
  78. package/dist/types/isomorphic/actions/prepareCalls.d.ts.map +1 -1
  79. package/dist/types/isomorphic/actions/sendPreparedCalls.d.ts +3 -3
  80. package/dist/types/isomorphic/actions/sendPreparedCalls.d.ts.map +1 -1
  81. package/dist/types/isomorphic/client.d.ts +139 -13
  82. package/dist/types/isomorphic/client.d.ts.map +1 -1
  83. package/dist/types/isomorphic/utils/7702.d.ts +4 -3
  84. package/dist/types/isomorphic/utils/7702.d.ts.map +1 -1
  85. package/dist/types/isomorphic/utils/decodeSignature.d.ts +4 -0
  86. package/dist/types/isomorphic/utils/decodeSignature.d.ts.map +1 -0
  87. package/dist/types/remote/client.d.ts.map +1 -1
  88. package/dist/types/rpc/examples.d.ts +3 -3
  89. package/dist/types/rpc/examples.d.ts.map +1 -1
  90. package/dist/types/rpc/request.d.ts +357 -49
  91. package/dist/types/rpc/request.d.ts.map +1 -1
  92. package/dist/types/rpc/schema.d.ts +323 -57
  93. package/dist/types/rpc/schema.d.ts.map +1 -1
  94. package/dist/types/schemas.d.ts +451 -13
  95. package/dist/types/schemas.d.ts.map +1 -1
  96. package/dist/types/types.d.ts +3 -0
  97. package/dist/types/types.d.ts.map +1 -1
  98. package/package.json +5 -5
  99. package/src/capabilities/eip7702Auth.ts +17 -10
  100. package/src/capabilities/overrides.ts +8 -8
  101. package/src/capabilities/permissions/index.ts +8 -3
  102. package/src/client/actions/grantPermissions.ts +5 -60
  103. package/src/client/actions/requestAccount.ts +10 -8
  104. package/src/client/actions/sendPreparedCalls.ts +17 -17
  105. package/src/client/actions/signPreparedCalls.ts +72 -0
  106. package/src/client/actions/signSignatureRequest.ts +50 -46
  107. package/src/client/client.e2e-test.ts +101 -33
  108. package/src/client/decorator.ts +14 -5
  109. package/src/exports/index.ts +2 -1
  110. package/src/isomorphic/actions/createSession.ts +20 -42
  111. package/src/isomorphic/actions/prepareCalls.ts +25 -17
  112. package/src/isomorphic/actions/sendPreparedCalls.ts +104 -54
  113. package/src/isomorphic/utils/7702.ts +18 -8
  114. package/src/isomorphic/utils/decodeSignature.ts +18 -0
  115. package/src/local/client.ts +2 -6
  116. package/src/remote/client.ts +3 -10
  117. package/src/rpc/examples.ts +3 -4
  118. package/src/rpc/request.ts +41 -63
  119. package/src/rpc/schema.ts +2 -2
  120. package/src/schemas.ts +227 -53
  121. package/src/types.ts +4 -0
@@ -1,17 +1,25 @@
1
- import { concatHex, isAddress, } from "viem";
1
+ import { concatHex, numberToHex, isAddress, } from "viem";
2
+ import { PreparedCall_Authorization } from "../../schemas.js";
2
3
  import { InvalidRequestError } from "ox/RpcResponse";
3
- export const createAuthorization = async (client, params) => {
4
+ export const createAuthorizationRequest = async (client, params) => {
4
5
  const expectedCode = concatHex(["0xef0100", params.delegation]);
5
6
  const code = (await client.getCode({ address: params.address })) ?? "0x";
6
7
  if (code.toLowerCase() === expectedCode.toLowerCase()) {
7
8
  return undefined; // Already authorized.
8
9
  }
9
- return {
10
- chainId: client.chain.id,
10
+ const data = {
11
11
  address: params.delegation,
12
- nonce: await client.getTransactionCount({
12
+ nonce: numberToHex(await client.getTransactionCount({
13
13
  address: params.address,
14
- }),
14
+ })),
15
+ };
16
+ return {
17
+ type: "authorization",
18
+ data,
19
+ chainId: numberToHex(client.chain.id),
20
+ signatureRequest: {
21
+ type: "eip7702Auth",
22
+ },
15
23
  };
16
24
  };
17
25
  export const EIP_7702_ACCOUNT_TYPE = ["ModularAccountV2"];
@@ -1 +1 @@
1
- {"version":3,"file":"7702.js","sourceRoot":"","sources":["../../../../src/isomorphic/utils/7702.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EAKT,SAAS,GACV,MAAM,MAAM,CAAC;AAId,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,MAMC,EACD,MAAiD,EACE,EAAE;IACrD,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;IACzE,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC,CAAC,sBAAsB;IAC1C,CAAC;IACD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;QACxB,OAAO,EAAE,MAAM,CAAC,UAAU;QAC1B,KAAK,EAAE,MAAM,MAAM,CAAC,mBAAmB,CAAC;YACtC,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;KACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,kBAAkB,CAAU,CAAC;AAInE,MAAM,qCAAqC,GAAG;IAC5C,gBAAgB,EAAE,4CAA4C;CACF,CAAC;AAE/D,MAAM,8BAA8B,GAGhC,MAAM,CAAC,WAAW,CACpB,MAAM,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;IAC1E,KAAK;IACL,GAAG;CACJ,CAAC,CAC0C,CAAC;AAE/C,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC,MAAM,CACzD,qCAAqC,CACtC,CAAC;AAEF,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,OAAgB,EAAW,EAAE;IAC5E,OAAQ,8BAA4C,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sCAAsC,GAAG,CACpD,OAAgB,EACsB,EAAE;IACxC,OAAO,8BAA8B,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,sCAAsC,GAAG,CAC7C,WAAqC,EACY,EAAE;IACnD,OAAO,qCAAqC,CAAC,WAAW,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,4BAA4B,GAChC,qCAAqC,CAAC,kBAAkB,CAAC,CAAC;AAE5D,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,qBAA2D,EAC3D,EAAE;IACF,OAAO,qBAAqB,KAAK,IAAI;QACnC,CAAC,CAAC,4BAA4B;QAC9B,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,UAAU,CAAC;YAC3C,CAAC,CAAC,qBAAqB,CAAC,UAAU;YAClC,CAAC,CAAC,sCAAsC,CACpC,qBAAqB,CAAC,UAAU,CACjC,CAAC;AACV,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,WAAoB,EACpB,qBAAuE,EACvE,EAAE;IACF,IACE,qBAAqB;QACrB,OAAO,qBAAqB,KAAK,QAAQ;QACzC,SAAS,IAAI,qBAAqB;QAClC,qBAAqB,EAAE,OAAO,KAAK,WAAW,EAC9C,CAAC;QACD,MAAM,IAAI,mBAAmB,CAAC;YAC5B,OAAO,EAAE,+BAA+B,qBAAqB,CAAC,OAAO,8BAA8B,WAAW,GAAG;SAClH,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC","sourcesContent":["import type { SmartAccountClient, SmartContractAccount } from \"@aa-sdk/core\";\nimport {\n concatHex,\n type Authorization,\n type Address,\n type Chain,\n type Transport,\n isAddress,\n} from \"viem\";\nimport type { WalletServerViemRpcSchema } from \"../../rpc/schema.js\";\nimport type { Eip7702AuthCapability } from \"../../capabilities/eip7702Auth.ts\";\nimport type { Static } from \"@sinclair/typebox\";\nimport { InvalidRequestError } from \"ox/RpcResponse\";\n\nexport const createAuthorization = async (\n client: SmartAccountClient<\n Transport,\n Chain,\n SmartContractAccount | undefined,\n Record<string, unknown>,\n WalletServerViemRpcSchema\n >,\n params: { address: Address; delegation: Address },\n): Promise<Authorization<number, false> | undefined> => {\n const expectedCode = concatHex([\"0xef0100\", params.delegation]);\n const code = (await client.getCode({ address: params.address })) ?? \"0x\";\n if (code.toLowerCase() === expectedCode.toLowerCase()) {\n return undefined; // Already authorized.\n }\n return {\n chainId: client.chain.id,\n address: params.delegation,\n nonce: await client.getTransactionCount({\n address: params.address,\n }),\n };\n};\n\nexport const EIP_7702_ACCOUNT_TYPE = [\"ModularAccountV2\"] as const;\n\ntype Supported7702AccountType = (typeof EIP_7702_ACCOUNT_TYPE)[number];\n\nconst Eip7702AccountTypeToDelegationAddress = {\n ModularAccountV2: \"0x69007702764179f14F51cdce752f4f775d74E139\",\n} as const satisfies Record<Supported7702AccountType, Address>;\n\nconst DelegationAddressToAccountType: Record<\n Address,\n Supported7702AccountType\n> = Object.fromEntries(\n Object.entries(Eip7702AccountTypeToDelegationAddress).map(([key, value]) => [\n value,\n key,\n ]),\n) as Record<Address, Supported7702AccountType>;\n\nexport const SUPPORTED_DELEGATION_ADDRESSES = Object.values(\n Eip7702AccountTypeToDelegationAddress,\n);\n\nexport const isSupportedDelegationAddress7702 = (address: Address): boolean => {\n return (SUPPORTED_DELEGATION_ADDRESSES as Address[]).includes(address);\n};\n\nexport const getAccountTypeForDelegationAddress7702 = (\n address: Address,\n): Supported7702AccountType | undefined => {\n return DelegationAddressToAccountType[address];\n};\n\nconst getDelegationAddressForAccountType7702 = (\n accountType: Supported7702AccountType,\n): (typeof SUPPORTED_DELEGATION_ADDRESSES)[number] => {\n return Eip7702AccountTypeToDelegationAddress[accountType];\n};\n\nconst DEFAULT_7702_DELEGATION_ADDR =\n Eip7702AccountTypeToDelegationAddress[\"ModularAccountV2\"];\n\nexport const parseDelegation = (\n eip7702AuthCapability: Static<typeof Eip7702AuthCapability>,\n) => {\n return eip7702AuthCapability === true\n ? DEFAULT_7702_DELEGATION_ADDR\n : isAddress(eip7702AuthCapability.delegation)\n ? eip7702AuthCapability.delegation\n : getDelegationAddressForAccountType7702(\n eip7702AuthCapability.delegation,\n );\n};\n\nexport const assertValid7702AccountAddress = (\n fromAddress: Address,\n eip7702AuthCapability: Static<typeof Eip7702AuthCapability> | undefined,\n) => {\n if (\n eip7702AuthCapability &&\n typeof eip7702AuthCapability === \"object\" &&\n \"account\" in eip7702AuthCapability &&\n eip7702AuthCapability?.account !== fromAddress\n ) {\n throw new InvalidRequestError({\n message: `EIP-7702 delegation account ${eip7702AuthCapability.account} must match 'from' address ${fromAddress}.`,\n });\n }\n};\n"]}
1
+ {"version":3,"file":"7702.js","sourceRoot":"","sources":["../../../../src/isomorphic/utils/7702.ts"],"names":[],"mappings":"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","sourcesContent":["import type { SmartAccountClient, SmartContractAccount } from \"@aa-sdk/core\";\nimport {\n concatHex,\n numberToHex,\n type Address,\n type Chain,\n type Transport,\n isAddress,\n} from \"viem\";\nimport type { WalletServerViemRpcSchema } from \"../../rpc/schema.js\";\nimport { PreparedCall_Authorization } from \"../../schemas.js\";\nimport type { Eip7702AuthCapability } from \"../../capabilities/eip7702Auth.ts\";\nimport type { Static } from \"@sinclair/typebox\";\nimport { InvalidRequestError } from \"ox/RpcResponse\";\n\nexport const createAuthorizationRequest = async (\n client: SmartAccountClient<\n Transport,\n Chain,\n SmartContractAccount | undefined,\n Record<string, unknown>,\n WalletServerViemRpcSchema\n >,\n params: { address: Address; delegation: Address },\n): Promise<Static<typeof PreparedCall_Authorization> | undefined> => {\n const expectedCode = concatHex([\"0xef0100\", params.delegation]);\n const code = (await client.getCode({ address: params.address })) ?? \"0x\";\n if (code.toLowerCase() === expectedCode.toLowerCase()) {\n return undefined; // Already authorized.\n }\n const data = {\n address: params.delegation,\n nonce: numberToHex(\n await client.getTransactionCount({\n address: params.address,\n }),\n ),\n };\n return {\n type: \"authorization\" as const,\n data,\n chainId: numberToHex(client.chain.id),\n signatureRequest: {\n type: \"eip7702Auth\" as const,\n },\n };\n};\n\nexport const EIP_7702_ACCOUNT_TYPE = [\"ModularAccountV2\"] as const;\n\ntype Supported7702AccountType = (typeof EIP_7702_ACCOUNT_TYPE)[number];\n\nconst Eip7702AccountTypeToDelegationAddress = {\n ModularAccountV2: \"0x69007702764179f14F51cdce752f4f775d74E139\",\n} as const satisfies Record<Supported7702AccountType, Address>;\n\nconst DelegationAddressToAccountType: Record<\n Address,\n Supported7702AccountType\n> = Object.fromEntries(\n Object.entries(Eip7702AccountTypeToDelegationAddress).map(([key, value]) => [\n value,\n key,\n ]),\n) as Record<Address, Supported7702AccountType>;\n\nexport const SUPPORTED_DELEGATION_ADDRESSES = Object.values(\n Eip7702AccountTypeToDelegationAddress,\n);\n\nexport const isSupportedDelegationAddress7702 = (address: Address): boolean => {\n return (SUPPORTED_DELEGATION_ADDRESSES as Address[]).includes(address);\n};\n\nexport const getAccountTypeForDelegationAddress7702 = (\n address: Address,\n): Supported7702AccountType | undefined => {\n return DelegationAddressToAccountType[address];\n};\n\nconst getDelegationAddressForAccountType7702 = (\n accountType: Supported7702AccountType,\n): (typeof SUPPORTED_DELEGATION_ADDRESSES)[number] => {\n return Eip7702AccountTypeToDelegationAddress[accountType];\n};\n\nconst DEFAULT_7702_DELEGATION_ADDR =\n Eip7702AccountTypeToDelegationAddress[\"ModularAccountV2\"];\n\nexport const parseDelegation = (\n eip7702AuthCapability: Static<typeof Eip7702AuthCapability>,\n) => {\n return eip7702AuthCapability === true\n ? DEFAULT_7702_DELEGATION_ADDR\n : isAddress(eip7702AuthCapability.delegation)\n ? eip7702AuthCapability.delegation\n : getDelegationAddressForAccountType7702(\n eip7702AuthCapability.delegation,\n );\n};\n\nexport const assertValid7702AccountAddress = (\n fromAddress: Address,\n eip7702AuthCapability: Static<typeof Eip7702AuthCapability> | undefined,\n) => {\n if (\n eip7702AuthCapability &&\n typeof eip7702AuthCapability === \"object\" &&\n \"account\" in eip7702AuthCapability &&\n eip7702AuthCapability?.account !== fromAddress\n ) {\n throw new InvalidRequestError({\n message: `EIP-7702 delegation account ${eip7702AuthCapability.account} must match 'from' address ${fromAddress}.`,\n });\n }\n};\n"]}
@@ -0,0 +1,3 @@
1
+ import type { Static, StaticDecode } from "@sinclair/typebox";
2
+ import { TypeEcdsaSig } from "../../schemas.js";
3
+ export declare const decodeSignature: (signature: Static<typeof TypeEcdsaSig>["signature"]) => StaticDecode<typeof TypeEcdsaSig>["signature"];
@@ -0,0 +1,13 @@
1
+ import { Value } from "@sinclair/typebox/value";
2
+ import { TypeEcdsaSig } from "../../schemas.js";
3
+ import { assertNever } from "../../utils.js";
4
+ export const decodeSignature = (signature) => {
5
+ switch (signature.type) {
6
+ case "ecdsa":
7
+ case "secp256k1":
8
+ return Value.Decode(TypeEcdsaSig, { signature }).signature;
9
+ default:
10
+ return assertNever(signature, "Unexpected signature type");
11
+ }
12
+ };
13
+ //# sourceMappingURL=decodeSignature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decodeSignature.js","sourceRoot":"","sources":["../../../../src/isomorphic/utils/decodeSignature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,SAAmD,EACH,EAAE;IAClD,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,OAAO,CAAC;QACb,KAAK,WAAW;YACd,OAAO,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,SAAS,EAE5C,CAAC,CAAC,SAAS,CAAC;QACf;YACE,OAAO,WAAW,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC","sourcesContent":["import { Value } from \"@sinclair/typebox/value\";\nimport type { Static, StaticDecode } from \"@sinclair/typebox\";\nimport { TypeEcdsaSig } from \"../../schemas.js\";\nimport { assertNever } from \"../../utils.js\";\n\nexport const decodeSignature = (\n signature: Static<typeof TypeEcdsaSig>[\"signature\"],\n): StaticDecode<typeof TypeEcdsaSig>[\"signature\"] => {\n switch (signature.type) {\n case \"ecdsa\":\n case \"secp256k1\":\n return Value.Decode(TypeEcdsaSig, { signature } satisfies Static<\n typeof TypeEcdsaSig\n >).signature;\n default:\n return assertNever(signature, \"Unexpected signature type\");\n }\n};\n"]}
@@ -81,16 +81,15 @@ const innerClientActions = (isomorphicClient) => {
81
81
  return {
82
82
  grantPermissions: async (signer, params) => {
83
83
  const { signatureRequest, fullPreSignatureDeferredActionDigest } = await isomorphicClient.createSession(params);
84
- const { signedAuthorization, signature } = await signSignatureRequest(signer, signatureRequest);
84
+ const signature = await signSignatureRequest(signer, signatureRequest);
85
85
  return {
86
86
  context: encodePermissionsContext({
87
87
  contextVersion: "LOCAL_MODE_DEFERRED_ACTION",
88
88
  deferredAction: buildDeferredActionDigest({
89
89
  fullPreSignatureDeferredActionDigest,
90
- sig: prefixSignatureKeyType(signature, "secp256k1"),
90
+ sig: prefixSignatureKeyType(signature.data, signature.type),
91
91
  }),
92
92
  }),
93
- signedAuthorization,
94
93
  };
95
94
  },
96
95
  };
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/local/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { split } from \"@aa-sdk/core\";\nimport { buildDeferredActionDigest } from \"@account-kit/smart-contracts/experimental\";\nimport { createClient, custom, type Address } from \"viem\";\nimport {\n encodePermissionsContext,\n prefixSignatureKeyType,\n} from \"../capabilities/permissions/mav2.js\";\nimport { signSignatureRequest } from \"../client/actions/signSignatureRequest.js\";\nimport { internalStateDecorator } from \"../internal/decorator.js\";\nimport type { PrepareCallsParams } from \"../isomorphic/actions/prepareCalls.ts\";\nimport {\n createIsomorphicClient,\n type IsomorphicClient,\n} from \"../isomorphic/client.js\";\nimport type {\n CreateInnerClientParams,\n InnerClientActions,\n InnerWalletApiClient,\n} from \"../types.ts\";\nimport { assertNever } from \"../utils.js\";\n\nconst localMethods = [\n \"wallet_prepareCalls\",\n \"wallet_sendPreparedCalls\",\n \"wallet_getCallsStatus\",\n \"wallet_createSession\",\n] as const satisfies string[];\ntype LocalMethod = (typeof localMethods)[number];\n\nexport function createLocalClient<\n TAccount extends Address | undefined = Address | undefined,\n>(params: CreateInnerClientParams<TAccount>): InnerWalletApiClient;\n\nexport function createLocalClient(\n params: CreateInnerClientParams,\n): InnerWalletApiClient {\n const { chain, transport, policyId, account } = params;\n const isomorphicClient = createIsomorphicClient({\n transport,\n chain,\n policyId,\n useErc7677middleware: false,\n });\n\n const clientMap: Record<string, ReturnType<typeof createIsomorphicClient>> = {\n [policyId ?? \"default\"]: isomorphicClient,\n };\n\n const innerTransport = split({\n overrides: [\n {\n methods: localMethods,\n transport: custom(\n {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async request(args: { method: LocalMethod; params: any }) {\n switch (args.method) {\n case \"wallet_prepareCalls\": {\n const params = args.params[0] as PrepareCallsParams;\n const capabilityPolicyId =\n params.capabilities?.paymasterService?.policyId;\n\n if (\n capabilityPolicyId != null &&\n policyId !== capabilityPolicyId &&\n !clientMap[capabilityPolicyId]\n ) {\n clientMap[capabilityPolicyId] = createIsomorphicClient({\n transport,\n chain,\n policyId: capabilityPolicyId,\n });\n }\n\n const client =\n clientMap[capabilityPolicyId ?? policyId ?? \"default\"];\n return client.prepareCalls(params);\n }\n case \"wallet_sendPreparedCalls\":\n return isomorphicClient.sendPreparedCalls(args.params[0]);\n case \"wallet_getCallsStatus\":\n return isomorphicClient.getCallsStatus(args.params[0]);\n case \"wallet_createSession\": {\n return isomorphicClient.createSession(args.params[0]);\n }\n default:\n return assertNever(\n args.method,\n `Unexpected method: ${args.method}`,\n );\n }\n },\n },\n {\n retryCount: 0,\n },\n ),\n },\n ],\n fallback: transport,\n });\n\n return createClient({\n transport: innerTransport,\n chain,\n account,\n })\n .extend(() => ({\n policyId,\n ...innerClientActions(isomorphicClient),\n }))\n .extend(() => ({\n internal: internalStateDecorator(),\n }));\n}\n\nconst innerClientActions = (\n isomorphicClient: IsomorphicClient,\n): InnerClientActions => {\n return {\n grantPermissions: async (signer, params) => {\n const { signatureRequest, fullPreSignatureDeferredActionDigest } =\n await isomorphicClient.createSession(params);\n const { signedAuthorization, signature } = await signSignatureRequest(\n signer,\n signatureRequest,\n );\n return {\n context: encodePermissionsContext({\n contextVersion: \"LOCAL_MODE_DEFERRED_ACTION\",\n deferredAction: buildDeferredActionDigest({\n fullPreSignatureDeferredActionDigest,\n sig: prefixSignatureKeyType(signature, \"secp256k1\"),\n }),\n }),\n signedAuthorization,\n };\n },\n };\n};\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/local/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { split } from \"@aa-sdk/core\";\nimport { buildDeferredActionDigest } from \"@account-kit/smart-contracts/experimental\";\nimport { createClient, custom, type Address } from \"viem\";\nimport {\n encodePermissionsContext,\n prefixSignatureKeyType,\n} from \"../capabilities/permissions/mav2.js\";\nimport { signSignatureRequest } from \"../client/actions/signSignatureRequest.js\";\nimport { internalStateDecorator } from \"../internal/decorator.js\";\nimport type { PrepareCallsParams } from \"../isomorphic/actions/prepareCalls.ts\";\nimport {\n createIsomorphicClient,\n type IsomorphicClient,\n} from \"../isomorphic/client.js\";\nimport type {\n CreateInnerClientParams,\n InnerClientActions,\n InnerWalletApiClient,\n} from \"../types.ts\";\nimport { assertNever } from \"../utils.js\";\n\nconst localMethods = [\n \"wallet_prepareCalls\",\n \"wallet_sendPreparedCalls\",\n \"wallet_getCallsStatus\",\n \"wallet_createSession\",\n] as const satisfies string[];\ntype LocalMethod = (typeof localMethods)[number];\n\nexport function createLocalClient<\n TAccount extends Address | undefined = Address | undefined,\n>(params: CreateInnerClientParams<TAccount>): InnerWalletApiClient;\n\nexport function createLocalClient(\n params: CreateInnerClientParams,\n): InnerWalletApiClient {\n const { chain, transport, policyId, account } = params;\n const isomorphicClient = createIsomorphicClient({\n transport,\n chain,\n policyId,\n useErc7677middleware: false,\n });\n\n const clientMap: Record<string, ReturnType<typeof createIsomorphicClient>> = {\n [policyId ?? \"default\"]: isomorphicClient,\n };\n\n const innerTransport = split({\n overrides: [\n {\n methods: localMethods,\n transport: custom(\n {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async request(args: { method: LocalMethod; params: any }) {\n switch (args.method) {\n case \"wallet_prepareCalls\": {\n const params = args.params[0] as PrepareCallsParams;\n const capabilityPolicyId =\n params.capabilities?.paymasterService?.policyId;\n\n if (\n capabilityPolicyId != null &&\n policyId !== capabilityPolicyId &&\n !clientMap[capabilityPolicyId]\n ) {\n clientMap[capabilityPolicyId] = createIsomorphicClient({\n transport,\n chain,\n policyId: capabilityPolicyId,\n });\n }\n\n const client =\n clientMap[capabilityPolicyId ?? policyId ?? \"default\"];\n return client.prepareCalls(params);\n }\n case \"wallet_sendPreparedCalls\":\n return isomorphicClient.sendPreparedCalls(args.params[0]);\n case \"wallet_getCallsStatus\":\n return isomorphicClient.getCallsStatus(args.params[0]);\n case \"wallet_createSession\": {\n return isomorphicClient.createSession(args.params[0]);\n }\n default:\n return assertNever(\n args.method,\n `Unexpected method: ${args.method}`,\n );\n }\n },\n },\n {\n retryCount: 0,\n },\n ),\n },\n ],\n fallback: transport,\n });\n\n return createClient({\n transport: innerTransport,\n chain,\n account,\n })\n .extend(() => ({\n policyId,\n ...innerClientActions(isomorphicClient),\n }))\n .extend(() => ({\n internal: internalStateDecorator(),\n }));\n}\n\nconst innerClientActions = (\n isomorphicClient: IsomorphicClient,\n): InnerClientActions => {\n return {\n grantPermissions: async (signer, params) => {\n const { signatureRequest, fullPreSignatureDeferredActionDigest } =\n await isomorphicClient.createSession(params);\n const signature = await signSignatureRequest(signer, signatureRequest);\n return {\n context: encodePermissionsContext({\n contextVersion: \"LOCAL_MODE_DEFERRED_ACTION\",\n deferredAction: buildDeferredActionDigest({\n fullPreSignatureDeferredActionDigest,\n sig: prefixSignatureKeyType(signature.data, signature.type),\n }),\n }),\n };\n },\n };\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Provider } from "ox";
2
- import { BaseError, createClient, custom } from "viem";
2
+ import { createClient, custom } from "viem";
3
3
  import { encodePermissionsContext } from "../capabilities/permissions/mav2.js";
4
4
  import { signSignatureRequest } from "../client/actions/signSignatureRequest.js";
5
5
  import { internalStateDecorator } from "../internal/decorator.js";
@@ -27,17 +27,13 @@ const innerClientActions = (apiClient) => {
27
27
  method: "wallet_createSession",
28
28
  params: [params],
29
29
  });
30
- if (signatureRequest.type !== "eth_signTypedData_v4") {
31
- throw new BaseError("Unexpected signature request type");
32
- }
33
- const { signedAuthorization, signature } = await signSignatureRequest(signer, signatureRequest);
30
+ const signature = await signSignatureRequest(signer, signatureRequest);
34
31
  return {
35
32
  context: encodePermissionsContext({
36
33
  contextVersion: "REMOTE_MODE_DEFERRED_ACTION",
37
34
  sessionId,
38
- signature,
35
+ signature: signature.data,
39
36
  }),
40
- signedAuthorization,
41
37
  };
42
38
  },
43
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/remote/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAgB,MAAM,MAAM,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAkBzD,MAAM,UAAU,kBAAkB,CAChC,MAA+B;IAE/B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE7C,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAClB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC,CACvE,IAAI,CACL;QACH,KAAK;QACL,OAAO;KACR,CAAC;SACC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,GAAG,kBAAkB,CAAC,OAAO,CAAC;KAC/B,CAAC,CAAC;SACF,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACb,QAAQ,EAAE,sBAAsB,EAAE;KACnC,CAAC,CAAC,CAAC;IAEN,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,kBAAkB,GAAG,CACzB,SAAmC,EACf,EAAE;IACtB,OAAO;QACL,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACzC,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC;gBAC9D,MAAM,EAAE,sBAAsB;gBAC9B,MAAM,EAAE,CAAC,MAAM,CAAC;aACjB,CAAC,CAAC;YACH,IAAI,gBAAgB,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;gBACrD,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;YAC3D,CAAC;YACD,MAAM,EAAE,mBAAmB,EAAE,SAAS,EAAE,GAAG,MAAM,oBAAoB,CACnE,MAAM,EACN,gBAAgB,CACjB,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,wBAAwB,CAAC;oBAChC,cAAc,EAAE,6BAA6B;oBAC7C,SAAS;oBACT,SAAS;iBACV,CAAC;gBACF,mBAAmB;aACpB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { Provider } from \"ox\";\nimport { BaseError, createClient, custom, type Address } from \"viem\";\nimport { encodePermissionsContext } from \"../capabilities/permissions/mav2.js\";\nimport { signSignatureRequest } from \"../client/actions/signSignatureRequest.js\";\nimport { internalStateDecorator } from \"../internal/decorator.js\";\nimport { WalletServerRpcSchema } from \"../rpc/schema.js\";\nimport type {\n CreateInnerClientParams,\n InnerClientActions,\n InnerWalletApiClient,\n InnerWalletApiClientBase,\n} from \"../types.ts\";\n\n/**\n * This is a low-level client just used to make RPC requests in remote mode\n * This should be wrapped by a higher-level smart account client that provides actions\n * that uses this client under the hood\n * @returns\n */\nexport function createRemoteClient<\n TAccount extends Address | undefined = Address | undefined,\n>(params: CreateInnerClientParams<TAccount>): InnerWalletApiClient;\n\nexport function createRemoteClient(\n params: CreateInnerClientParams,\n): InnerWalletApiClient {\n const { transport, chain, account } = params;\n\n const client = createClient({\n transport: (opts) =>\n custom(Provider.from(transport(opts), { schema: WalletServerRpcSchema }))(\n opts,\n ),\n chain,\n account,\n })\n .extend((_client) => ({\n policyId: params.policyId,\n ...innerClientActions(_client),\n }))\n .extend(() => ({\n internal: internalStateDecorator(),\n }));\n\n return client;\n}\n\nconst innerClientActions = (\n apiClient: InnerWalletApiClientBase,\n): InnerClientActions => {\n return {\n grantPermissions: async (signer, params) => {\n const { sessionId, signatureRequest } = await apiClient.request({\n method: \"wallet_createSession\",\n params: [params],\n });\n if (signatureRequest.type !== \"eth_signTypedData_v4\") {\n throw new BaseError(\"Unexpected signature request type\");\n }\n const { signedAuthorization, signature } = await signSignatureRequest(\n signer,\n signatureRequest,\n );\n return {\n context: encodePermissionsContext({\n contextVersion: \"REMOTE_MODE_DEFERRED_ACTION\",\n sessionId,\n signature,\n }),\n signedAuthorization,\n };\n },\n };\n};\n"]}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/remote/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,EAAgB,MAAM,MAAM,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAkBzD,MAAM,UAAU,kBAAkB,CAChC,MAA+B;IAE/B,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE7C,MAAM,MAAM,GAAG,YAAY,CAAC;QAC1B,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAClB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC,CACvE,IAAI,CACL;QACH,KAAK;QACL,OAAO;KACR,CAAC;SACC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,GAAG,kBAAkB,CAAC,OAAO,CAAC;KAC/B,CAAC,CAAC;SACF,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QACb,QAAQ,EAAE,sBAAsB,EAAE;KACnC,CAAC,CAAC,CAAC;IAEN,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,kBAAkB,GAAG,CACzB,SAAmC,EACf,EAAE;IACtB,OAAO;QACL,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACzC,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC;gBAC9D,MAAM,EAAE,sBAAsB;gBAC9B,MAAM,EAAE,CAAC,MAAM,CAAC;aACjB,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE,wBAAwB,CAAC;oBAChC,cAAc,EAAE,6BAA6B;oBAC7C,SAAS;oBACT,SAAS,EAAE,SAAS,CAAC,IAAI;iBAC1B,CAAC;aACH,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { Provider } from \"ox\";\nimport { createClient, custom, type Address } from \"viem\";\nimport { encodePermissionsContext } from \"../capabilities/permissions/mav2.js\";\nimport { signSignatureRequest } from \"../client/actions/signSignatureRequest.js\";\nimport { internalStateDecorator } from \"../internal/decorator.js\";\nimport { WalletServerRpcSchema } from \"../rpc/schema.js\";\nimport type {\n CreateInnerClientParams,\n InnerClientActions,\n InnerWalletApiClient,\n InnerWalletApiClientBase,\n} from \"../types.ts\";\n\n/**\n * This is a low-level client just used to make RPC requests in remote mode\n * This should be wrapped by a higher-level smart account client that provides actions\n * that uses this client under the hood\n * @returns\n */\nexport function createRemoteClient<\n TAccount extends Address | undefined = Address | undefined,\n>(params: CreateInnerClientParams<TAccount>): InnerWalletApiClient;\n\nexport function createRemoteClient(\n params: CreateInnerClientParams,\n): InnerWalletApiClient {\n const { transport, chain, account } = params;\n\n const client = createClient({\n transport: (opts) =>\n custom(Provider.from(transport(opts), { schema: WalletServerRpcSchema }))(\n opts,\n ),\n chain,\n account,\n })\n .extend((_client) => ({\n policyId: params.policyId,\n ...innerClientActions(_client),\n }))\n .extend(() => ({\n internal: internalStateDecorator(),\n }));\n\n return client;\n}\n\nconst innerClientActions = (\n apiClient: InnerWalletApiClientBase,\n): InnerClientActions => {\n return {\n grantPermissions: async (signer, params) => {\n const { sessionId, signatureRequest } = await apiClient.request({\n method: \"wallet_createSession\",\n params: [params],\n });\n const signature = await signSignatureRequest(signer, signatureRequest);\n return {\n context: encodePermissionsContext({\n contextVersion: \"REMOTE_MODE_DEFERRED_ACTION\",\n sessionId,\n signature: signature.data,\n }),\n };\n },\n };\n};\n"]}
@@ -67,8 +67,8 @@ export declare const Examples: {
67
67
  };
68
68
  readonly chainId: "0x66eee";
69
69
  readonly signature: {
70
- readonly type: "ecdsa";
71
- readonly signature: "0xb1a055089b1ba8387ed435f2bd0afe7ff69f22b928cdfdea1b5323c64d6af387164de3fa6febf031b544de46a84d6fb7f084b9798ddfaba820950c257139a7321b";
70
+ readonly type: "secp256k1";
71
+ readonly data: "0xb1a055089b1ba8387ed435f2bd0afe7ff69f22b928cdfdea1b5323c64d6af387164de3fa6febf031b544de46a84d6fb7f084b9798ddfaba820950c257139a7321b";
72
72
  };
73
73
  }];
74
74
  }];
@@ -150,7 +150,7 @@ export declare const Examples: {
150
150
  readonly permissions: readonly [{
151
151
  readonly type: "root";
152
152
  }];
153
- readonly expiry: 1747969653;
153
+ readonly expirySec: 1747969653;
154
154
  }];
155
155
  }];
156
156
  readonly result: {
@@ -77,8 +77,8 @@ const SendPreparedCalls = [
77
77
  },
78
78
  chainId: "0x66eee",
79
79
  signature: {
80
- type: "ecdsa",
81
- signature: "0xb1a055089b1ba8387ed435f2bd0afe7ff69f22b928cdfdea1b5323c64d6af387164de3fa6febf031b544de46a84d6fb7f084b9798ddfaba820950c257139a7321b",
80
+ type: "secp256k1",
81
+ data: "0xb1a055089b1ba8387ed435f2bd0afe7ff69f22b928cdfdea1b5323c64d6af387164de3fa6febf031b544de46a84d6fb7f084b9798ddfaba820950c257139a7321b",
82
82
  },
83
83
  },
84
84
  ],
@@ -190,7 +190,7 @@ const CreateSession = [
190
190
  type: "root",
191
191
  },
192
192
  ],
193
- expiry: 1747969653,
193
+ expirySec: 1747969653,
194
194
  },
195
195
  ],
196
196
  },
@@ -1 +1 @@
1
- {"version":3,"file":"examples.js","sourceRoot":"","sources":["../../../src/rpc/examples.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG;IACnB;QACE,IAAI,EAAE,6BAA6B;QACnC,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE;oBACL;wBACE,KAAK,EAAE;4BACL;gCACE,EAAE,EAAE,4CAA4C;gCAChD,IAAI,EAAE,IAAI;6BACX;yBACF;wBACD,IAAI,EAAE,4CAA4C;wBAClD,OAAO,EAAE,MAAM;wBACf,YAAY,EAAE;4BACZ,gBAAgB,EAAE;gCAChB,QAAQ,EAAE,sCAAsC;6BACjD;yBACF;qBACF;iBACF;aACF;SACF;QACD,MAAM,EAAE;YACN,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE;gBACL,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE;oBACJ,MAAM,EAAE,4CAA4C;oBACpD,KAAK,EAAE,qBAAqB;oBAC5B,QAAQ,EACN,4cAA4c;oBAC9c,SAAS,EAAE,4CAA4C;oBACvD,aAAa,EACX,8JAA8J;oBAChK,uBAAuB,EAAE,KAAK;oBAC9B,6BAA6B,EAAE,QAAQ;oBACvC,oBAAoB,EAAE,UAAU;oBAChC,YAAY,EAAE,YAAY;oBAC1B,YAAY,EAAE,QAAQ;oBACtB,oBAAoB,EAAE,QAAQ;oBAC9B,kBAAkB,EAAE,SAAS;iBAC9B;gBACD,OAAO,EAAE,SAAS;gBAClB,gBAAgB,EAAE;oBAChB,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE;wBACJ,GAAG,EAAE,oEAAoE;qBAC1E;iBACF;aACF;SACF;KACF;CACO,CAAC;AAEX,MAAM,iBAAiB,GAAG;IACxB;QACE,IAAI,EAAE,kCAAkC;QACxC,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,qBAAqB;wBAC3B,IAAI,EAAE;4BACJ,MAAM,EAAE,4CAA4C;4BACpD,KAAK,EAAE,qBAAqB;4BAC5B,QAAQ,EACN,4cAA4c;4BAC9c,SAAS,EAAE,4CAA4C;4BACvD,aAAa,EACX,8JAA8J;4BAChK,uBAAuB,EAAE,KAAK;4BAC9B,6BAA6B,EAAE,QAAQ;4BACvC,oBAAoB,EAAE,UAAU;4BAChC,YAAY,EAAE,YAAY;4BAC1B,YAAY,EAAE,QAAQ;4BACtB,oBAAoB,EAAE,QAAQ;4BAC9B,kBAAkB,EAAE,SAAS;yBAC9B;wBACD,OAAO,EAAE,SAAS;wBAClB,SAAS,EAAE;4BACT,IAAI,EAAE,OAAO;4BACb,SAAS,EACP,sIAAsI;yBACzI;qBACF;iBACF;aACF;SACF;QACD,MAAM,EAAE;YACN,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE;gBACL,eAAe,EAAE;oBACf,oIAAoI;iBACrI;aACF;SACF;KACF;CACO,CAAC;AAEX,MAAM,cAAc,GAAG;IACrB;QACE,IAAI,EAAE,+BAA+B;QACrC,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE;oBACL;wBACE,aAAa,EAAE,4CAA4C;qBAC5D;iBACF;aACF;SACF;QACD,MAAM,EAAE;YACN,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE;gBACL,cAAc,EAAE,4CAA4C;gBAC5D,EAAE,EAAE,sCAAsC;aAC3C;SACF;KACF;CACO,CAAC;AAEX,MAAM,aAAa,GAAG;IACpB;QACE,IAAI,EAAE,8BAA8B;QACpC,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE;oBACL;wBACE,aAAa,EAAE,4CAA4C;wBAC3D,cAAc,EAAE;4BACd,IAAI,EAAE,MAAM;yBACb;qBACF;iBACF;aACF;SACF;QACD,MAAM,EAAE;YACN,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE;gBACL,cAAc,EAAE,4CAA4C;gBAC5D,EAAE,EAAE,sCAAsC;aAC3C;SACF;KACF;CACO,CAAC;AAEX,MAAM,YAAY,GAAG;IACnB;QACE,IAAI,EAAE,6BAA6B;QACnC,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE;oBACL;wBACE,aAAa,EAAE,4CAA4C;qBAC5D;iBACF;aACF;SACF;QACD,MAAM,EAAE;YACN,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE;gBACL,QAAQ,EAAE;oBACR;wBACE,cAAc,EAAE,4CAA4C;wBAC5D,EAAE,EAAE,sCAAsC;qBAC3C;iBACF;gBACD,IAAI,EAAE;oBACJ,UAAU,EAAE,CAAC;oBACb,KAAK,EAAE,IAAI;iBACZ;aACF;SACF;KACF;CACO,CAAC;AAEX,MAAM,aAAa,GAAG;IACpB;QACE,IAAI,EAAE,8BAA8B;QACpC,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE;oBACL;wBACE,OAAO,EAAE,4CAA4C;wBACrD,OAAO,EAAE,MAAM;wBACf,GAAG,EAAE;4BACH,SAAS,EAAE,4CAA4C;4BACvD,IAAI,EAAE,WAAW;yBAClB;wBACD,WAAW,EAAE;4BACX;gCACE,IAAI,EAAE,MAAM;6BACb;yBACF;wBACD,MAAM,EAAE,UAAU;qBACnB;iBACF;aACF;SACF;QACD,MAAM,EAAE;YACN,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE;gBACL,SAAS,EAAE,oCAAoC;gBAC/C,gBAAgB,EAAE;oBAChB,IAAI,EAAE,sBAAsB;oBAC5B,IAAI,EAAE;wBACJ,MAAM,EAAE;4BACN,OAAO,EAAE,CAAC;4BACV,iBAAiB,EAAE,4CAA4C;yBAChE;wBACD,KAAK,EAAE;4BACL,cAAc,EAAE;gCACd;oCACE,IAAI,EAAE,OAAO;oCACb,IAAI,EAAE,SAAS;iCAChB;gCACD;oCACE,IAAI,EAAE,UAAU;oCAChB,IAAI,EAAE,QAAQ;iCACf;gCACD;oCACE,IAAI,EAAE,MAAM;oCACZ,IAAI,EAAE,OAAO;iCACd;6BACF;yBACF;wBACD,WAAW,EAAE,gBAAgB;wBAC7B,OAAO,EAAE;4BACP,KAAK,EAAE,uBAAuB;4BAC9B,QAAQ,EAAE,UAAU;4BACpB,IAAI,EAAE,48BAA48B;yBACn9B;qBACF;iBACF;aACF;SACF;KACF;CACO,CAAC;AAEX,MAAM,cAAc,GAAG;IACrB;QACE,IAAI,EAAE,+BAA+B;QACrC,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE;oBACL,oIAAoI;iBACrI;aACF;SACF;QACD,MAAM,EAAE;YACN,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE;gBACL,EAAE,EAAE,oIAAoI;gBACxI,OAAO,EAAE,SAAS;gBAClB,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,GAAG;gBACX,QAAQ,EAAE;oBACR;wBACE,MAAM,EAAE,KAAK;wBACb,SAAS,EACP,oEAAoE;wBACtE,WAAW,EAAE,WAAW;wBACxB,OAAO,EAAE,SAAS;wBAClB,eAAe,EACb,oEAAoE;wBACtE,IAAI,EAAE;4BACJ;gCACE,OAAO,EAAE,4CAA4C;gCACrD,IAAI,EAAE,oEAAoE;gCAC1E,MAAM,EAAE;oCACN,oEAAoE;oCACpE,oEAAoE;oCACpE,oEAAoE;iCACrE;6BACF;4BACD;gCACE,OAAO,EAAE,4CAA4C;gCACrD,IAAI,EAAE,oIAAoI;gCAC1I,MAAM,EAAE;oCACN,oEAAoE;oCACpE,oEAAoE;oCACpE,oEAAoE;iCACrE;6BACF;4BACD;gCACE,OAAO,EAAE,4CAA4C;gCACrD,IAAI,EAAE,IAAI;gCACV,MAAM,EAAE;oCACN,oEAAoE;iCACrE;6BACF;4BACD;gCACE,OAAO,EAAE,4CAA4C;gCACrD,IAAI,EAAE,oQAAoQ;gCAC1Q,MAAM,EAAE;oCACN,oEAAoE;oCACpE,oEAAoE;oCACpE,oEAAoE;oCACpE,oEAAoE;iCACrE;6BACF;yBACF;qBACF;iBACF;aACF;SACF;KACF;CACO,CAAC;AAkBX,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,YAAY;IACZ,iBAAiB;IACjB,cAAc;IACd,aAAa;IACb,YAAY;IACZ,aAAa;IACb,cAAc;CACmB,CAAC","sourcesContent":["const PrepareCalls = [\n {\n name: \"wallet_prepareCalls example\",\n params: [\n {\n name: \"Request\",\n value: [\n {\n calls: [\n {\n to: \"0x1234567890123456789012345678901234567890\",\n data: \"0x\",\n },\n ],\n from: \"0xa363219d7C0b8673df17529D469Db9eFF0f35D2A\",\n chainId: \"0x01\",\n capabilities: {\n paymasterService: {\n policyId: \"11111111-2222-3333-4444-555555555555\",\n },\n },\n },\n ],\n },\n ],\n result: {\n name: \"Response\",\n value: {\n type: \"user-operation-v070\",\n data: {\n sender: \"0xa363219d7C0b8673df17529D469Db9eFF0f35D2A\",\n nonce: \"0x10000000000000000\",\n callData:\n \"0x34fcd5be0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000\",\n paymaster: \"0x3f222Df6aB18C1E10d0Ec136503c3B0dfd929048\",\n paymasterData:\n \"0x0000000000000000682d7e7c9fa6f71c28c31141a11ac9eb2bdbe898ddbd42a4f7085f8bb3380ba75dd9231a386e24fe5a84777217c907391e983b5b0f78a4a9d0fd1c8631dd22c10e106b461c\",\n paymasterPostOpGasLimit: \"0x0\",\n paymasterVerificationGasLimit: \"0x74d3\",\n maxPriorityFeePerGas: \"0x60e4b0\",\n maxFeePerGas: \"0x1bf52290\",\n callGasLimit: \"0x2bb8\",\n verificationGasLimit: \"0xc845\",\n preVerificationGas: \"0x14b74\",\n },\n chainId: \"0x66eee\",\n signatureRequest: {\n type: \"personal_sign\",\n data: {\n raw: \"0xc69e468aa6fafb5c7298c02841e76f976b433018266af39a5807bc29ea9ad392\",\n },\n },\n },\n },\n },\n] as const;\n\nconst SendPreparedCalls = [\n {\n name: \"wallet_sendPreparedCalls example\",\n params: [\n {\n name: \"Request\",\n value: [\n {\n type: \"user-operation-v070\",\n data: {\n sender: \"0xa363219d7C0b8673df17529D469Db9eFF0f35D2A\",\n nonce: \"0x10000000000000000\",\n callData:\n \"0x34fcd5be0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000\",\n paymaster: \"0x3f222Df6aB18C1E10d0Ec136503c3B0dfd929048\",\n paymasterData:\n \"0x0000000000000000682d7e7c9fa6f71c28c31141a11ac9eb2bdbe898ddbd42a4f7085f8bb3380ba75dd9231a386e24fe5a84777217c907391e983b5b0f78a4a9d0fd1c8631dd22c10e106b461c\",\n paymasterPostOpGasLimit: \"0x0\",\n paymasterVerificationGasLimit: \"0x74d3\",\n maxPriorityFeePerGas: \"0x60e4b0\",\n maxFeePerGas: \"0x1bf52290\",\n callGasLimit: \"0x2bb8\",\n verificationGasLimit: \"0xc845\",\n preVerificationGas: \"0x14b74\",\n },\n chainId: \"0x66eee\",\n signature: {\n type: \"ecdsa\",\n signature:\n \"0xb1a055089b1ba8387ed435f2bd0afe7ff69f22b928cdfdea1b5323c64d6af387164de3fa6febf031b544de46a84d6fb7f084b9798ddfaba820950c257139a7321b\",\n },\n },\n ],\n },\n ],\n result: {\n name: \"Response\",\n value: {\n preparedCallIds: [\n \"0x0000000000000000000000000000000000000000000000000000000000066eeec69e468aa6fafb5c7298c02841e76f976b433018266af39a5807bc29ea9ad392\",\n ],\n },\n },\n },\n] as const;\n\nconst RequestAccount = [\n {\n name: \"wallet_requestAccount example\",\n params: [\n {\n name: \"Request\",\n value: [\n {\n signerAddress: \"0xa363219d7C0b8673df17529D469Db9eFF0f35D2A\",\n },\n ],\n },\n ],\n result: {\n name: \"Response\",\n value: {\n accountAddress: \"0xa363219d7C0b8673df17529D469Db9eFF0f35D2A\",\n id: \"3061cc5f-1f96-48a9-ab45-41faad2dd23b\",\n },\n },\n },\n] as const;\n\nconst CreateAccount = [\n {\n name: \"wallet_createAccount example\",\n params: [\n {\n name: \"Request\",\n value: [\n {\n signerAddress: \"0xa363219d7C0b8673df17529D469Db9eFF0f35D2A\",\n creationOption: {\n salt: \"0x10\",\n },\n },\n ],\n },\n ],\n result: {\n name: \"Response\",\n value: {\n accountAddress: \"0xa363219d7C0b8673df17529D469Db9eFF0f35D2A\",\n id: \"3061cc5f-1f96-48a9-ab45-41faad2dd23b\",\n },\n },\n },\n] as const;\n\nconst ListAccounts = [\n {\n name: \"wallet_listAccounts example\",\n params: [\n {\n name: \"Request\",\n value: [\n {\n signerAddress: \"0x6275B53E98D07c729108A177207634eA22F5A748\",\n },\n ],\n },\n ],\n result: {\n name: \"Response\",\n value: {\n accounts: [\n {\n accountAddress: \"0xafdABa1E09e82F780721963eba39bA9e6d9FE4d2\",\n id: \"3d8b3315-4aa1-4c67-8c82-20221e8dbf16\",\n },\n ],\n meta: {\n totalCount: 1,\n after: null,\n },\n },\n },\n },\n] as const;\n\nconst CreateSession = [\n {\n name: \"wallet_createSession example\",\n params: [\n {\n name: \"Request\",\n value: [\n {\n account: \"0xafdABa1E09e82F780721963eba39bA9e6d9FE4d2\",\n chainId: \"0x01\",\n key: {\n publicKey: \"0x647bbf38CD0E116d1672405aE17a775572a84e03\",\n type: \"secp256k1\",\n },\n permissions: [\n {\n type: \"root\",\n },\n ],\n expiry: 1747969653,\n },\n ],\n },\n ],\n result: {\n name: \"Response\",\n value: {\n sessionId: \"0xcd8b2d07a6fa76f1e8a5eaa8f3a7883c\",\n signatureRequest: {\n type: \"eth_signTypedData_v4\",\n data: {\n domain: {\n chainId: 1,\n verifyingContract: \"0xafdABa1E09e82F780721963eba39bA9e6d9FE4d2\",\n },\n types: {\n DeferredAction: [\n {\n name: \"nonce\",\n type: \"uint256\",\n },\n {\n name: \"deadline\",\n type: \"uint48\",\n },\n {\n name: \"call\",\n type: \"bytes\",\n },\n ],\n },\n primaryType: \"DeferredAction\",\n message: {\n nonce: \"0x1030000000000000000\",\n deadline: 1747969653,\n call: \"0x1bbf564c00000000000099DE0BF6fA90dEB851E2A2df7d83000000010500000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000647bbf38cd0e116d1672405ae17a775572a84e0300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000007900000000000082B8e2012be914dFA4f62A0573eA0000000101000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000682fe675000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n },\n },\n },\n },\n },\n },\n] as const;\n\nconst GetCallsStatus = [\n {\n name: \"wallet_getCallsStatus example\",\n params: [\n {\n name: \"Request\",\n value: [\n \"0x0000000000000000000000000000000000000000000000000000000000066eee1057eff9529142aa3b74adcaacfce5b99a09d80c9f2e38e35ea1f27535e61477\",\n ],\n },\n ],\n result: {\n name: \"Response\",\n value: {\n id: \"0x0000000000000000000000000000000000000000000000000000000000066eee1057eff9529142aa3b74adcaacfce5b99a09d80c9f2e38e35ea1f27535e61477\",\n chainId: \"0x66eee\",\n atomic: true,\n status: 200,\n receipts: [\n {\n status: \"0x1\",\n blockHash:\n \"0x7c6f2f548c0ad4434dfb64f49a810bc795dadcd4cbec948bf8d4ae81a10fed5e\",\n blockNumber: \"0x8ba5f79\",\n gasUsed: \"0x33c65\",\n transactionHash:\n \"0x8ec28074a461102e4dbe43cb4aa9fed3e8c1274f1f1b0d5f6a0919ce7e20f517\",\n logs: [\n {\n address: \"0x00000000000017c61b5bee81050ec8efc9c6fecd\",\n data: \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n topics: [\n \"0xd32049610f0cd3babd266cf338d726cc8c34c8ff97356c0f33c13fa59962ac92\",\n \"0x000000000000000000000000f13223cca0ae9786dd91dffe1f4e834c71ccdc2d\",\n \"0x0000000000000000000000003f3503e682bf27330f9e5065043d47207e609e7d\",\n ],\n },\n {\n address: \"0x0000000071727de22e5e9d8baf0edac6f37da032\",\n data: \"0x00000000000000000000000000000000000017c61b5bee81050ec8efc9c6fecd0000000000000000000000002cc0c7981d846b9f2a16276556f6e8cb52bfb633\",\n topics: [\n \"0xd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d\",\n \"0x1057eff9529142aa3b74adcaacfce5b99a09d80c9f2e38e35ea1f27535e61477\",\n \"0x000000000000000000000000f13223cca0ae9786dd91dffe1f4e834c71ccdc2d\",\n ],\n },\n {\n address: \"0x0000000071727de22e5e9d8baf0edac6f37da032\",\n data: \"0x\",\n topics: [\n \"0xbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972\",\n ],\n },\n {\n address: \"0x0000000071727de22e5e9d8baf0edac6f37da032\",\n data: \"0x00000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000014ba6c2cd4f0000000000000000000000000000000000000000000000000000000000003451d\",\n topics: [\n \"0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f\",\n \"0x1057eff9529142aa3b74adcaacfce5b99a09d80c9f2e38e35ea1f27535e61477\",\n \"0x000000000000000000000000f13223cca0ae9786dd91dffe1f4e834c71ccdc2d\",\n \"0x0000000000000000000000002cc0c7981d846b9f2a16276556f6e8cb52bfb633\",\n ],\n },\n ],\n },\n ],\n },\n },\n },\n] as const;\n\ntype Example = readonly [\n {\n name: string;\n params: readonly [\n {\n name: \"Request\";\n value: readonly [unknown];\n },\n ];\n result: {\n name: \"Response\";\n value: unknown;\n };\n },\n];\n\nexport const Examples = {\n PrepareCalls,\n SendPreparedCalls,\n RequestAccount,\n CreateAccount,\n ListAccounts,\n CreateSession,\n GetCallsStatus,\n} satisfies Record<string, Example>;\n"]}
1
+ {"version":3,"file":"examples.js","sourceRoot":"","sources":["../../../src/rpc/examples.ts"],"names":[],"mappings":"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","sourcesContent":["const PrepareCalls = [\n {\n name: \"wallet_prepareCalls example\",\n params: [\n {\n name: \"Request\",\n value: [\n {\n calls: [\n {\n to: \"0x1234567890123456789012345678901234567890\",\n data: \"0x\",\n },\n ],\n from: \"0xa363219d7C0b8673df17529D469Db9eFF0f35D2A\",\n chainId: \"0x01\",\n capabilities: {\n paymasterService: {\n policyId: \"11111111-2222-3333-4444-555555555555\",\n },\n },\n },\n ],\n },\n ],\n result: {\n name: \"Response\",\n value: {\n type: \"user-operation-v070\",\n data: {\n sender: \"0xa363219d7C0b8673df17529D469Db9eFF0f35D2A\",\n nonce: \"0x10000000000000000\",\n callData:\n \"0x34fcd5be0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000\",\n paymaster: \"0x3f222Df6aB18C1E10d0Ec136503c3B0dfd929048\",\n paymasterData:\n \"0x0000000000000000682d7e7c9fa6f71c28c31141a11ac9eb2bdbe898ddbd42a4f7085f8bb3380ba75dd9231a386e24fe5a84777217c907391e983b5b0f78a4a9d0fd1c8631dd22c10e106b461c\",\n paymasterPostOpGasLimit: \"0x0\",\n paymasterVerificationGasLimit: \"0x74d3\",\n maxPriorityFeePerGas: \"0x60e4b0\",\n maxFeePerGas: \"0x1bf52290\",\n callGasLimit: \"0x2bb8\",\n verificationGasLimit: \"0xc845\",\n preVerificationGas: \"0x14b74\",\n },\n chainId: \"0x66eee\",\n signatureRequest: {\n type: \"personal_sign\",\n data: {\n raw: \"0xc69e468aa6fafb5c7298c02841e76f976b433018266af39a5807bc29ea9ad392\",\n },\n },\n },\n },\n },\n] as const;\n\nconst SendPreparedCalls = [\n {\n name: \"wallet_sendPreparedCalls example\",\n params: [\n {\n name: \"Request\",\n value: [\n {\n type: \"user-operation-v070\",\n data: {\n sender: \"0xa363219d7C0b8673df17529D469Db9eFF0f35D2A\",\n nonce: \"0x10000000000000000\",\n callData:\n \"0x34fcd5be0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000\",\n paymaster: \"0x3f222Df6aB18C1E10d0Ec136503c3B0dfd929048\",\n paymasterData:\n \"0x0000000000000000682d7e7c9fa6f71c28c31141a11ac9eb2bdbe898ddbd42a4f7085f8bb3380ba75dd9231a386e24fe5a84777217c907391e983b5b0f78a4a9d0fd1c8631dd22c10e106b461c\",\n paymasterPostOpGasLimit: \"0x0\",\n paymasterVerificationGasLimit: \"0x74d3\",\n maxPriorityFeePerGas: \"0x60e4b0\",\n maxFeePerGas: \"0x1bf52290\",\n callGasLimit: \"0x2bb8\",\n verificationGasLimit: \"0xc845\",\n preVerificationGas: \"0x14b74\",\n },\n chainId: \"0x66eee\",\n signature: {\n type: \"secp256k1\",\n data: \"0xb1a055089b1ba8387ed435f2bd0afe7ff69f22b928cdfdea1b5323c64d6af387164de3fa6febf031b544de46a84d6fb7f084b9798ddfaba820950c257139a7321b\",\n },\n },\n ],\n },\n ],\n result: {\n name: \"Response\",\n value: {\n preparedCallIds: [\n \"0x0000000000000000000000000000000000000000000000000000000000066eeec69e468aa6fafb5c7298c02841e76f976b433018266af39a5807bc29ea9ad392\",\n ],\n },\n },\n },\n] as const;\n\nconst RequestAccount = [\n {\n name: \"wallet_requestAccount example\",\n params: [\n {\n name: \"Request\",\n value: [\n {\n signerAddress: \"0xa363219d7C0b8673df17529D469Db9eFF0f35D2A\",\n },\n ],\n },\n ],\n result: {\n name: \"Response\",\n value: {\n accountAddress: \"0xa363219d7C0b8673df17529D469Db9eFF0f35D2A\",\n id: \"3061cc5f-1f96-48a9-ab45-41faad2dd23b\",\n },\n },\n },\n] as const;\n\nconst CreateAccount = [\n {\n name: \"wallet_createAccount example\",\n params: [\n {\n name: \"Request\",\n value: [\n {\n signerAddress: \"0xa363219d7C0b8673df17529D469Db9eFF0f35D2A\",\n creationOption: {\n salt: \"0x10\",\n },\n },\n ],\n },\n ],\n result: {\n name: \"Response\",\n value: {\n accountAddress: \"0xa363219d7C0b8673df17529D469Db9eFF0f35D2A\",\n id: \"3061cc5f-1f96-48a9-ab45-41faad2dd23b\",\n },\n },\n },\n] as const;\n\nconst ListAccounts = [\n {\n name: \"wallet_listAccounts example\",\n params: [\n {\n name: \"Request\",\n value: [\n {\n signerAddress: \"0x6275B53E98D07c729108A177207634eA22F5A748\",\n },\n ],\n },\n ],\n result: {\n name: \"Response\",\n value: {\n accounts: [\n {\n accountAddress: \"0xafdABa1E09e82F780721963eba39bA9e6d9FE4d2\",\n id: \"3d8b3315-4aa1-4c67-8c82-20221e8dbf16\",\n },\n ],\n meta: {\n totalCount: 1,\n after: null,\n },\n },\n },\n },\n] as const;\n\nconst CreateSession = [\n {\n name: \"wallet_createSession example\",\n params: [\n {\n name: \"Request\",\n value: [\n {\n account: \"0xafdABa1E09e82F780721963eba39bA9e6d9FE4d2\",\n chainId: \"0x01\",\n key: {\n publicKey: \"0x647bbf38CD0E116d1672405aE17a775572a84e03\",\n type: \"secp256k1\",\n },\n permissions: [\n {\n type: \"root\",\n },\n ],\n expirySec: 1747969653,\n },\n ],\n },\n ],\n result: {\n name: \"Response\",\n value: {\n sessionId: \"0xcd8b2d07a6fa76f1e8a5eaa8f3a7883c\",\n signatureRequest: {\n type: \"eth_signTypedData_v4\",\n data: {\n domain: {\n chainId: 1,\n verifyingContract: \"0xafdABa1E09e82F780721963eba39bA9e6d9FE4d2\",\n },\n types: {\n DeferredAction: [\n {\n name: \"nonce\",\n type: \"uint256\",\n },\n {\n name: \"deadline\",\n type: \"uint48\",\n },\n {\n name: \"call\",\n type: \"bytes\",\n },\n ],\n },\n primaryType: \"DeferredAction\",\n message: {\n nonce: \"0x1030000000000000000\",\n deadline: 1747969653,\n call: \"0x1bbf564c00000000000099DE0BF6fA90dEB851E2A2df7d83000000010500000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000647bbf38cd0e116d1672405ae17a775572a84e0300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000007900000000000082B8e2012be914dFA4f62A0573eA0000000101000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000682fe675000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n },\n },\n },\n },\n },\n },\n] as const;\n\nconst GetCallsStatus = [\n {\n name: \"wallet_getCallsStatus example\",\n params: [\n {\n name: \"Request\",\n value: [\n \"0x0000000000000000000000000000000000000000000000000000000000066eee1057eff9529142aa3b74adcaacfce5b99a09d80c9f2e38e35ea1f27535e61477\",\n ],\n },\n ],\n result: {\n name: \"Response\",\n value: {\n id: \"0x0000000000000000000000000000000000000000000000000000000000066eee1057eff9529142aa3b74adcaacfce5b99a09d80c9f2e38e35ea1f27535e61477\",\n chainId: \"0x66eee\",\n atomic: true,\n status: 200,\n receipts: [\n {\n status: \"0x1\",\n blockHash:\n \"0x7c6f2f548c0ad4434dfb64f49a810bc795dadcd4cbec948bf8d4ae81a10fed5e\",\n blockNumber: \"0x8ba5f79\",\n gasUsed: \"0x33c65\",\n transactionHash:\n \"0x8ec28074a461102e4dbe43cb4aa9fed3e8c1274f1f1b0d5f6a0919ce7e20f517\",\n logs: [\n {\n address: \"0x00000000000017c61b5bee81050ec8efc9c6fecd\",\n data: \"0x0000000000000000000000000000000000000000000000000000000000000000\",\n topics: [\n \"0xd32049610f0cd3babd266cf338d726cc8c34c8ff97356c0f33c13fa59962ac92\",\n \"0x000000000000000000000000f13223cca0ae9786dd91dffe1f4e834c71ccdc2d\",\n \"0x0000000000000000000000003f3503e682bf27330f9e5065043d47207e609e7d\",\n ],\n },\n {\n address: \"0x0000000071727de22e5e9d8baf0edac6f37da032\",\n data: \"0x00000000000000000000000000000000000017c61b5bee81050ec8efc9c6fecd0000000000000000000000002cc0c7981d846b9f2a16276556f6e8cb52bfb633\",\n topics: [\n \"0xd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d\",\n \"0x1057eff9529142aa3b74adcaacfce5b99a09d80c9f2e38e35ea1f27535e61477\",\n \"0x000000000000000000000000f13223cca0ae9786dd91dffe1f4e834c71ccdc2d\",\n ],\n },\n {\n address: \"0x0000000071727de22e5e9d8baf0edac6f37da032\",\n data: \"0x\",\n topics: [\n \"0xbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972\",\n ],\n },\n {\n address: \"0x0000000071727de22e5e9d8baf0edac6f37da032\",\n data: \"0x00000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000014ba6c2cd4f0000000000000000000000000000000000000000000000000000000000003451d\",\n topics: [\n \"0x49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f\",\n \"0x1057eff9529142aa3b74adcaacfce5b99a09d80c9f2e38e35ea1f27535e61477\",\n \"0x000000000000000000000000f13223cca0ae9786dd91dffe1f4e834c71ccdc2d\",\n \"0x0000000000000000000000002cc0c7981d846b9f2a16276556f6e8cb52bfb633\",\n ],\n },\n ],\n },\n ],\n },\n },\n },\n] as const;\n\ntype Example = readonly [\n {\n name: string;\n params: readonly [\n {\n name: \"Request\";\n value: readonly [unknown];\n },\n ];\n result: {\n name: \"Response\";\n value: unknown;\n };\n },\n];\n\nexport const Examples = {\n PrepareCalls,\n SendPreparedCalls,\n RequestAccount,\n CreateAccount,\n ListAccounts,\n CreateSession,\n GetCallsStatus,\n} satisfies Record<string, Example>;\n"]}