@rhinestone/sdk 1.0.0-alpha.14 → 1.0.0-alpha.16

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 (87) hide show
  1. package/dist/src/accounts/custom.d.ts +18 -0
  2. package/dist/src/accounts/custom.d.ts.map +1 -0
  3. package/dist/src/accounts/custom.js +121 -0
  4. package/dist/src/accounts/custom.test.d.ts +2 -0
  5. package/dist/src/accounts/custom.test.d.ts.map +1 -0
  6. package/dist/src/accounts/custom.test.js +64 -0
  7. package/dist/src/accounts/index.d.ts +1 -1
  8. package/dist/src/accounts/index.d.ts.map +1 -1
  9. package/dist/src/accounts/index.js +37 -6
  10. package/dist/src/accounts/index.test.js +3 -3
  11. package/dist/src/accounts/json-rpc/index.d.ts +5 -0
  12. package/dist/src/accounts/json-rpc/index.d.ts.map +1 -0
  13. package/dist/src/accounts/json-rpc/index.js +16 -0
  14. package/dist/src/accounts/json-rpc/index.test.d.ts +2 -0
  15. package/dist/src/accounts/json-rpc/index.test.d.ts.map +1 -0
  16. package/dist/src/accounts/json-rpc/index.test.js +16 -0
  17. package/dist/src/accounts/json-rpc/providers.d.ts +4 -0
  18. package/dist/src/accounts/json-rpc/providers.d.ts.map +1 -0
  19. package/dist/src/accounts/json-rpc/providers.js +14 -0
  20. package/dist/src/accounts/json-rpc/providers.test.d.ts +2 -0
  21. package/dist/src/accounts/json-rpc/providers.test.d.ts.map +1 -0
  22. package/dist/src/accounts/json-rpc/providers.test.js +15 -0
  23. package/dist/src/accounts/kernel.test.js +8 -8
  24. package/dist/src/accounts/nexus.d.ts.map +1 -1
  25. package/dist/src/accounts/nexus.js +34 -8
  26. package/dist/src/accounts/nexus.test.js +12 -12
  27. package/dist/src/accounts/safe.d.ts.map +1 -1
  28. package/dist/src/accounts/safe.js +2 -0
  29. package/dist/src/accounts/safe.test.js +8 -8
  30. package/dist/src/accounts/signing/common.d.ts +10 -6
  31. package/dist/src/accounts/signing/common.d.ts.map +1 -1
  32. package/dist/src/accounts/signing/common.js +41 -12
  33. package/dist/src/accounts/signing/message.d.ts +2 -2
  34. package/dist/src/accounts/signing/message.d.ts.map +1 -1
  35. package/dist/src/accounts/signing/message.js +7 -11
  36. package/dist/src/accounts/signing/passkeys.d.ts +29 -0
  37. package/dist/src/accounts/signing/passkeys.d.ts.map +1 -0
  38. package/dist/src/accounts/signing/passkeys.js +90 -0
  39. package/dist/src/accounts/signing/passkeys.test.d.ts +2 -0
  40. package/dist/src/accounts/signing/passkeys.test.d.ts.map +1 -0
  41. package/dist/src/accounts/signing/passkeys.test.js +73 -0
  42. package/dist/src/accounts/signing/typedData.d.ts +2 -2
  43. package/dist/src/accounts/signing/typedData.d.ts.map +1 -1
  44. package/dist/src/accounts/signing/typedData.js +7 -11
  45. package/dist/src/accounts/startale.test.js +8 -8
  46. package/dist/src/accounts/utils.d.ts +3 -3
  47. package/dist/src/accounts/utils.d.ts.map +1 -1
  48. package/dist/src/accounts/utils.js +3 -40
  49. package/dist/src/actions/index.d.ts +45 -1
  50. package/dist/src/actions/index.d.ts.map +1 -1
  51. package/dist/src/actions/index.js +174 -9
  52. package/dist/src/actions/index.test.js +16 -16
  53. package/dist/src/execution/index.d.ts.map +1 -1
  54. package/dist/src/execution/index.js +3 -6
  55. package/dist/src/execution/utils.d.ts +1 -1
  56. package/dist/src/execution/utils.d.ts.map +1 -1
  57. package/dist/src/execution/utils.js +17 -16
  58. package/dist/src/index.d.ts +2 -2
  59. package/dist/src/index.d.ts.map +1 -1
  60. package/dist/src/index.js +7 -1
  61. package/dist/src/modules/index.d.ts +2 -17
  62. package/dist/src/modules/index.d.ts.map +1 -1
  63. package/dist/src/modules/index.js +4 -55
  64. package/dist/src/modules/index.test.js +2 -16
  65. package/dist/src/modules/omni-account.d.ts +2 -1
  66. package/dist/src/modules/omni-account.d.ts.map +1 -1
  67. package/dist/src/modules/omni-account.js +3 -1
  68. package/dist/src/modules/read.d.ts.map +1 -1
  69. package/dist/src/modules/read.js +1 -0
  70. package/dist/src/modules/validators/core.d.ts +4 -3
  71. package/dist/src/modules/validators/core.d.ts.map +1 -1
  72. package/dist/src/modules/validators/core.js +46 -37
  73. package/dist/src/modules/validators/core.test.js +6 -6
  74. package/dist/src/modules/validators/smart-sessions.test.js +4 -4
  75. package/dist/src/orchestrator/consts.d.ts +2 -1
  76. package/dist/src/orchestrator/consts.d.ts.map +1 -1
  77. package/dist/src/orchestrator/consts.js +3 -1
  78. package/dist/src/orchestrator/registry.d.ts +1 -23
  79. package/dist/src/orchestrator/registry.d.ts.map +1 -1
  80. package/dist/src/orchestrator/registry.js +22 -24
  81. package/dist/src/orchestrator/registry.test.js +4 -4
  82. package/dist/src/orchestrator/types.d.ts +1 -6
  83. package/dist/src/orchestrator/types.d.ts.map +1 -1
  84. package/dist/src/types.d.ts +29 -7
  85. package/dist/src/types.d.ts.map +1 -1
  86. package/package.json +1 -1
  87. package/dist/src/orchestrator/registry.json +0 -365
@@ -17,9 +17,9 @@ const core_1 = require("../modules/validators/core");
17
17
  const error_1 = require("./error");
18
18
  const utils_1 = require("./utils");
19
19
  const NEXUS_DEFAULT_VALIDATOR_ADDRESS = core_1.OWNABLE_VALIDATOR_ADDRESS;
20
- const NEXUS_IMPLEMENTATION_ADDRESS = '0x55cc6609fDb3620ABeABf4dB020abfc469494778';
21
- const NEXUS_FACTORY_ADDRESS = '0xFF4454d15707a6f6BF01540796040f9E1646322C';
22
- const NEXUS_BOOTSTRAP_ADDRESS = '0x40E89A87C56A340c9257350dEDf4B89a3FcCCcD3';
20
+ const NEXUS_IMPLEMENTATION_ADDRESS = '0x000000000032dDC454C3BDcba80484Ad5A798705';
21
+ const NEXUS_FACTORY_ADDRESS = '0x0000000000679A258c64d2F20F310e12B64b7375';
22
+ const NEXUS_BOOTSTRAP_ADDRESS = '0x00000000006eFb61D8c9546FF1B500de3f244EA7';
23
23
  const NEXUS_CREATION_CODE = '0x60806040526102aa803803806100148161018c565b92833981016040828203126101885781516001600160a01b03811692909190838303610188576020810151906001600160401b03821161018857019281601f8501121561018857835161006e610069826101c5565b61018c565b9481865260208601936020838301011161018857815f926020809301865e8601015260017f90b772c2cb8a51aa7a8a65fc23543c6d022d5b3f8e2b92eed79fba7eef8293005d823b15610176577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561015e575f8091610146945190845af43d15610156573d91610137610069846101c5565b9283523d5f602085013e6101e0565b505b604051606b908161023f8239f35b6060916101e0565b50505034156101485763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176101b157604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b0381116101b157601f01601f191660200190565b9061020457508051156101f557805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610235575b610215575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561020d56fe60806040523615605c575f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156058573d5ff35b3d5ffd5b00fea164736f6c634300081b000a';
24
24
  function getDeployArgs(config) {
25
25
  const salt = (0, viem_1.keccak256)('0x');
@@ -30,9 +30,8 @@ function getDeployArgs(config) {
30
30
  ? defaultValidator.initData
31
31
  : '0x';
32
32
  const validators = moduleSetup.validators.filter((v) => v.address !== NEXUS_DEFAULT_VALIDATOR_ADDRESS);
33
- const initData = (0, viem_1.encodeAbiParameters)([{ type: 'address' }, { type: 'bytes' }], [
34
- NEXUS_BOOTSTRAP_ADDRESS,
35
- (0, viem_1.encodeFunctionData)({
33
+ const bootstrapData = (0, viem_1.size)(defaultValidatorInitData)
34
+ ? (0, viem_1.encodeFunctionData)({
36
35
  abi: (0, viem_1.parseAbi)([
37
36
  'struct BootstrapConfig {address module;bytes initData;}',
38
37
  'struct BootstrapPreValidationHookConfig {uint256 hookType;address module;bytes data;}',
@@ -59,8 +58,35 @@ function getDeployArgs(config) {
59
58
  })),
60
59
  [],
61
60
  ],
62
- }),
63
- ]);
61
+ })
62
+ : (0, viem_1.encodeFunctionData)({
63
+ abi: (0, viem_1.parseAbi)([
64
+ 'struct BootstrapConfig {address module;bytes initData;}',
65
+ 'struct BootstrapPreValidationHookConfig {uint256 hookType;address module;bytes data;}',
66
+ 'function initNexusNoRegistry(BootstrapConfig[] calldata validators,BootstrapConfig[] calldata executors,BootstrapConfig calldata hook,BootstrapConfig[] calldata fallbacks,BootstrapPreValidationHookConfig[] calldata preValidationHooks) external',
67
+ ]),
68
+ functionName: 'initNexusNoRegistry',
69
+ args: [
70
+ validators.map((v) => ({
71
+ module: v.address,
72
+ initData: v.initData,
73
+ })),
74
+ moduleSetup.executors.map((e) => ({
75
+ module: e.address,
76
+ initData: e.initData,
77
+ })),
78
+ {
79
+ module: viem_1.zeroAddress,
80
+ initData: '0x',
81
+ },
82
+ moduleSetup.fallbacks.map((f) => ({
83
+ module: f.address,
84
+ initData: f.initData,
85
+ })),
86
+ [],
87
+ ],
88
+ });
89
+ const initData = (0, viem_1.encodeAbiParameters)([{ type: 'address' }, { type: 'bytes' }], [NEXUS_BOOTSTRAP_ADDRESS, bootstrapData]);
64
90
  const factoryData = (0, viem_1.encodeFunctionData)({
65
91
  abi: (0, viem_1.parseAbi)(['function createAccount(bytes,bytes32)']),
66
92
  functionName: 'createAccount',
@@ -15,25 +15,25 @@ const MOCK_MODULE_ADDRESS = '0x28de6501fa86f2e6cd0b33c3aabdaeb4a1b93f3f';
15
15
  },
16
16
  rhinestoneApiKey: consts_1.MOCK_API_KEY,
17
17
  });
18
- (0, vitest_1.expect)(factory).toEqual('0xFF4454d15707a6f6BF01540796040f9E1646322C');
19
- (0, vitest_1.expect)(factoryData).toEqual('0xea6d13ac0000000000000000000000000000000000000000000000000000000000000040c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470000000000000000000000000000000000000000000000000000000000000036000000000000000000000000040e89a87c56a340c9257350dedf4b89a3fccccd3000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002e441bede0300000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb7000000000000000000000000f6c02c78ded62973b43bfa523b247da09948693600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
18
+ (0, vitest_1.expect)(factory).toEqual('0x0000000000679A258c64d2F20F310e12B64b7375');
19
+ (0, vitest_1.expect)(factoryData).toEqual('0xea6d13ac0000000000000000000000000000000000000000000000000000000000000040c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000006efb61d8c9546ff1b500de3f244ea7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002e441bede0300000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb7000000000000000000000000f6c02c78ded62973b43bfa523b247da09948693600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
20
20
  (0, vitest_1.expect)(salt).toEqual('0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470');
21
- (0, vitest_1.expect)(implementation).toEqual('0x55cc6609fDb3620ABeABf4dB020abfc469494778');
22
- (0, vitest_1.expect)(initializationCallData).toEqual('0x4b6a14190000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000036000000000000000000000000040e89a87c56a340c9257350dedf4b89a3fccccd3000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002e441bede0300000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb7000000000000000000000000f6c02c78ded62973b43bfa523b247da09948693600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
21
+ (0, vitest_1.expect)(implementation).toEqual('0x000000000032dDC454C3BDcba80484Ad5A798705');
22
+ (0, vitest_1.expect)(initializationCallData).toEqual('0x4b6a14190000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000006efb61d8c9546ff1b500de3f244ea7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002e441bede0300000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb7000000000000000000000000f6c02c78ded62973b43bfa523b247da09948693600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
23
23
  });
24
24
  (0, vitest_1.test)('Passkey owner', () => {
25
25
  const { factory, factoryData, salt, implementation, initializationCallData, } = (0, nexus_1.getDeployArgs)({
26
26
  owners: {
27
27
  type: 'passkey',
28
- account: consts_1.passkeyAccount,
28
+ accounts: [consts_1.passkeyAccount],
29
29
  },
30
30
  rhinestoneApiKey: consts_1.MOCK_API_KEY,
31
31
  });
32
- (0, vitest_1.expect)(factory).toEqual('0xFF4454d15707a6f6BF01540796040f9E1646322C');
33
- (0, vitest_1.expect)(factoryData).toEqual('0xea6d13ac0000000000000000000000000000000000000000000000000000000000000040c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47000000000000000000000000000000000000000000000000000000000000003a000000000000000000000000040e89a87c56a340c9257350dedf4b89a3fccccd30000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000032441bede0300000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000578c4cb0e472a5462da43c495c3f3300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060580a9af0569ad3905b26a703201b358aa0904236642ebe79b22a19d00d3737637d46f725a5427ae45a9569259bf67e1e16b187d7b3ad1ed70138c4f0409677d19c9a01073b202db2ed56e604ad11db557d8c3ad75181619597f21b830f2da82a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
32
+ (0, vitest_1.expect)(factory).toEqual('0x0000000000679A258c64d2F20F310e12B64b7375');
33
+ (0, vitest_1.expect)(factoryData).toEqual('0xea6d13ac0000000000000000000000000000000000000000000000000000000000000040c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000006efb61d8c9546ff1b500de3f244ea7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003448643787600000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000578c4cb0e472a5462da43c495c3f33000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001580a9af0569ad3905b26a703201b358aa0904236642ebe79b22a19d00d3737637d46f725a5427ae45a9569259bf67e1e16b187d7b3ad1ed70138c4f0409677d100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
34
34
  (0, vitest_1.expect)(salt).toEqual('0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470');
35
- (0, vitest_1.expect)(implementation).toEqual('0x55cc6609fDb3620ABeABf4dB020abfc469494778');
36
- (0, vitest_1.expect)(initializationCallData).toEqual('0x4b6a1419000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000003a000000000000000000000000040e89a87c56a340c9257350dedf4b89a3fccccd30000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000032441bede0300000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000578c4cb0e472a5462da43c495c3f3300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060580a9af0569ad3905b26a703201b358aa0904236642ebe79b22a19d00d3737637d46f725a5427ae45a9569259bf67e1e16b187d7b3ad1ed70138c4f0409677d19c9a01073b202db2ed56e604ad11db557d8c3ad75181619597f21b830f2da82a0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
35
+ (0, vitest_1.expect)(implementation).toEqual('0x000000000032dDC454C3BDcba80484Ad5A798705');
36
+ (0, vitest_1.expect)(initializationCallData).toEqual('0x4b6a1419000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000006efb61d8c9546ff1b500de3f244ea7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003448643787600000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000578c4cb0e472a5462da43c495c3f33000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001580a9af0569ad3905b26a703201b358aa0904236642ebe79b22a19d00d3737637d46f725a5427ae45a9569259bf67e1e16b187d7b3ad1ed70138c4f0409677d100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
37
37
  });
38
38
  });
39
39
  (0, vitest_1.describe)('Get Address', () => {
@@ -45,17 +45,17 @@ const MOCK_MODULE_ADDRESS = '0x28de6501fa86f2e6cd0b33c3aabdaeb4a1b93f3f';
45
45
  },
46
46
  rhinestoneApiKey: consts_1.MOCK_API_KEY,
47
47
  });
48
- (0, vitest_1.expect)(address).toEqual('0x7fbe9b0796484c06c94968b910a4cf488fd1719b');
48
+ (0, vitest_1.expect)(address).toEqual('0x0681de31e060b384f0b08a3bac99e9bdff302474');
49
49
  });
50
50
  (0, vitest_1.test)('Passkey owner', () => {
51
51
  const address = (0, nexus_1.getAddress)({
52
52
  owners: {
53
53
  type: 'passkey',
54
- account: consts_1.passkeyAccount,
54
+ accounts: [consts_1.passkeyAccount],
55
55
  },
56
56
  rhinestoneApiKey: consts_1.MOCK_API_KEY,
57
57
  });
58
- (0, vitest_1.expect)(address).toEqual('0x82a8a51443c2b8608001bdc4ff5bb31f69e8ed14');
58
+ (0, vitest_1.expect)(address).toEqual('0x894b88c04b4de6abddce81e8bdc91927e37d6ced');
59
59
  });
60
60
  });
61
61
  (0, vitest_1.describe)('Get Install Data', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../accounts/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EAIZ,KAAK,GAAG,EAER,KAAK,YAAY,EAIlB,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAQ/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAC1E,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAchF,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;EAiErD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAalD;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBA2BrC;AAED,iBAAe,aAAa,CAC1B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAMvE;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAWlC;AAED,iBAAe,sBAAsB,CACnC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,iBAAiB,GAAG,IAAI,EACpC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAyClC;AAED,iBAAe,uBAAuB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,QAAQ,EACnB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAalC;AAkGD,OAAO,EACL,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,uBAAuB,GACxB,CAAA"}
1
+ {"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../accounts/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EAIZ,KAAK,GAAG,EAER,KAAK,YAAY,EAIlB,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAQ/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAC1E,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAchF,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;EAiErD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAalD;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBA2BrC;AAED,iBAAe,aAAa,CAC1B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAMvE;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAWlC;AAED,iBAAe,sBAAsB,CACnC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,iBAAiB,GAAG,IAAI,EACpC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAyClC;AAED,iBAAe,uBAAuB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,QAAQ,EACnB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAalC;AAoGD,OAAO,EACL,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,uBAAuB,GACxB,CAAA"}
@@ -211,6 +211,7 @@ function getOwners(config) {
211
211
  const ownerSet = config.owners;
212
212
  switch (ownerSet.type) {
213
213
  case 'ecdsa':
214
+ case 'ecdsa-v0':
214
215
  return ownerSet.accounts.map((account) => account.address);
215
216
  case 'passkey':
216
217
  return [NO_SAFE_OWNER_ADDRESS];
@@ -222,6 +223,7 @@ function getThreshold(config) {
222
223
  const ownerSet = config.owners;
223
224
  switch (ownerSet.type) {
224
225
  case 'ecdsa':
226
+ case 'ecdsa-v0':
225
227
  return ownerSet.threshold ? BigInt(ownerSet.threshold) : 1n;
226
228
  case 'passkey':
227
229
  return 1n;
@@ -16,8 +16,8 @@ const MOCK_MODULE_ADDRESS = '0x28de6501fa86f2e6cd0b33c3aabdaeb4a1b93f3f';
16
16
  rhinestoneApiKey: consts_1.MOCK_API_KEY,
17
17
  });
18
18
  (0, vitest_1.expect)(factory).toEqual('0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec67');
19
- (0, vitest_1.expect)(factoryData).toEqual('0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000444b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000075798463024bda64d83c94a64bc7d7eab41300ef00000000000000000000000000000000000000000000000000000000000001600000000000000000000000007579f2ad53b01c3d8779fe17928e0d48885b00030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000f6c02c78ded62973b43bfa523b247da0994869360000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb700000000000000000000000000000000000000000000000000000000000002a447cbbdca0000000000000000000000007579f2ad53b01c3d8779fe17928e0d48885b000300000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000016000000000000000000000000020c008719ba9d8aa14c7d07d122cd5e965aa8da50000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb7000000000000000000000000f6c02c78ded62973b43bfa523b247da09948693600000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
20
- (0, vitest_1.expect)(salt).toEqual('0x9e6e52d7f64d3d3653e1725f46b188819f7b17d204b24d8d599dacb646f42969');
19
+ (0, vitest_1.expect)(factoryData).toEqual('0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000444b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000075798463024bda64d83c94a64bc7d7eab41300ef00000000000000000000000000000000000000000000000000000000000001600000000000000000000000007579f2ad53b01c3d8779fe17928e0d48885b00030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000f6c02c78ded62973b43bfa523b247da0994869360000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb700000000000000000000000000000000000000000000000000000000000002a447cbbdca0000000000000000000000007579f2ad53b01c3d8779fe17928e0d48885b0003000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000013fdb5234e4e3162a810f54d9f7e980000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb7000000000000000000000000f6c02c78ded62973b43bfa523b247da09948693600000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
20
+ (0, vitest_1.expect)(salt).toEqual('0xf31933c8d3ab801f5d7dbfd374464b228d509d625a72334e218cbe08be7716e6');
21
21
  (0, vitest_1.expect)(implementation).toEqual('0x29fcb43b46531bca003ddc8fcb67ffe91900c762');
22
22
  (0, vitest_1.expect)(initializationCallData).toEqual(null);
23
23
  });
@@ -25,13 +25,13 @@ const MOCK_MODULE_ADDRESS = '0x28de6501fa86f2e6cd0b33c3aabdaeb4a1b93f3f';
25
25
  const { factory, factoryData, salt, implementation, initializationCallData, } = (0, safe_1.getDeployArgs)({
26
26
  owners: {
27
27
  type: 'passkey',
28
- account: consts_1.passkeyAccount,
28
+ accounts: [consts_1.passkeyAccount],
29
29
  },
30
30
  rhinestoneApiKey: consts_1.MOCK_API_KEY,
31
31
  });
32
32
  (0, vitest_1.expect)(factory).toEqual('0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec67');
33
- (0, vitest_1.expect)(factoryData).toEqual('0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c7620000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003e4b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000075798463024bda64d83c94a64bc7d7eab41300ef00000000000000000000000000000000000000000000000000000000000001400000000000000000000000007579f2ad53b01c3d8779fe17928e0d48885b00030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000babe99e62d8bcbd3acf5ccbcfcd4f64fe75e5e72000000000000000000000000000000000000000000000000000000000000026447cbbdca0000000000000000000000007579f2ad53b01c3d8779fe17928e0d48885b00030000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000578c4cb0e472a5462da43c495c3f33000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060580a9af0569ad3905b26a703201b358aa0904236642ebe79b22a19d00d3737637d46f725a5427ae45a9569259bf67e1e16b187d7b3ad1ed70138c4f0409677d19c9a01073b202db2ed56e604ad11db557d8c3ad75181619597f21b830f2da82a00000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
34
- (0, vitest_1.expect)(salt).toEqual('0x1774a1bf788cc08a2f87e82e78226fd1484c5dfc9d8ae3041cf96f478e470214');
33
+ (0, vitest_1.expect)(factoryData).toEqual('0x1688f0b900000000000000000000000029fcb43b46531bca003ddc8fcb67ffe91900c762000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000444b63e800d0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000100000000000000000000000075798463024bda64d83c94a64bc7d7eab41300ef00000000000000000000000000000000000000000000000000000000000001400000000000000000000000007579f2ad53b01c3d8779fe17928e0d48885b00030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000babe99e62d8bcbd3acf5ccbcfcd4f64fe75e5e7200000000000000000000000000000000000000000000000000000000000002c447cbbdca0000000000000000000000007579f2ad53b01c3d8779fe17928e0d48885b0003000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000578c4cb0e472a5462da43c495c3f330000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001580a9af0569ad3905b26a703201b358aa0904236642ebe79b22a19d00d3737637d46f725a5427ae45a9569259bf67e1e16b187d7b3ad1ed70138c4f0409677d1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf00000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
34
+ (0, vitest_1.expect)(salt).toEqual('0xdc83fad4a7d91e2ee81a5adc74eb2bca07d012c5259cb8ea10e89cf05de74c8d');
35
35
  (0, vitest_1.expect)(implementation).toEqual('0x29fcb43b46531bca003ddc8fcb67ffe91900c762');
36
36
  (0, vitest_1.expect)(initializationCallData).toEqual(null);
37
37
  });
@@ -45,17 +45,17 @@ const MOCK_MODULE_ADDRESS = '0x28de6501fa86f2e6cd0b33c3aabdaeb4a1b93f3f';
45
45
  },
46
46
  rhinestoneApiKey: consts_1.MOCK_API_KEY,
47
47
  });
48
- (0, vitest_1.expect)(address).toEqual('0x45fbf165cd6600f5f989601aa6ccbd2ec8baa136');
48
+ (0, vitest_1.expect)(address).toEqual('0x3a249204d37245504d4ab37ff88f574b222a6349');
49
49
  });
50
50
  (0, vitest_1.test)('Passkey owner', () => {
51
51
  const address = (0, safe_1.getAddress)({
52
52
  owners: {
53
53
  type: 'passkey',
54
- account: consts_1.passkeyAccount,
54
+ accounts: [consts_1.passkeyAccount],
55
55
  },
56
56
  rhinestoneApiKey: consts_1.MOCK_API_KEY,
57
57
  });
58
- (0, vitest_1.expect)(address).toEqual('0xa4a75e55097539ef474613c56d2e70942af42e52');
58
+ (0, vitest_1.expect)(address).toEqual('0xe86e416045645e1ca4360d5dc396e4c513277c31');
59
59
  });
60
60
  });
61
61
  (0, vitest_1.describe)('Get Install Data', () => {
@@ -1,23 +1,27 @@
1
- import { type Account, type Chain, type Hex } from 'viem';
2
- import type { WebAuthnAccount } from 'viem/_types/account-abstraction';
1
+ import type { WebAuthnP256 } from 'ox';
2
+ import { type Account, type Address, type Chain, type Hex } from 'viem';
3
+ import type { WebAuthnAccount } from 'viem/account-abstraction';
3
4
  import type { OwnerSet, SignerSet } from '../../types';
4
5
  declare function convertOwnerSetToSignerSet(owners: OwnerSet): SignerSet;
5
6
  type SigningFunctions<T> = {
6
7
  signEcdsa: (account: Account, params: T) => Promise<Hex>;
7
- signPasskey: (account: WebAuthnAccount, chain: Chain, params: T) => Promise<Hex>;
8
+ signPasskey: (account: WebAuthnAccount, params: T) => Promise<{
9
+ webauthn: WebAuthnP256.SignMetadata;
10
+ signature: Hex;
11
+ }>;
8
12
  };
9
13
  declare function signWithMultiFactorAuth<T>(signers: SignerSet & {
10
14
  type: 'owner';
11
15
  kind: 'multi-factor';
12
- }, chain: Chain, params: T, signMain: (signers: SignerSet, chain: Chain, params: T) => Promise<Hex>): Promise<Hex>;
16
+ }, chain: Chain, address: Address, params: T, signMain: (signers: SignerSet, chain: Chain, address: Address, params: T) => Promise<Hex>): Promise<Hex>;
13
17
  declare function signWithSession<T>(signers: SignerSet & {
14
18
  type: 'session';
15
- }, chain: Chain, params: T, signMain: (signers: SignerSet, chain: Chain, params: T) => Promise<Hex>): Promise<Hex>;
19
+ }, chain: Chain, address: Address, params: T, signMain: (signers: SignerSet, chain: Chain, address: Address, params: T) => Promise<Hex>): Promise<Hex>;
16
20
  declare function signWithGuardians<T>(signers: SignerSet & {
17
21
  type: 'guardians';
18
22
  }, params: T, signingFunctions: SigningFunctions<T>): Promise<Hex>;
19
23
  declare function signWithOwners<T>(signers: SignerSet & {
20
24
  type: 'owner';
21
- }, chain: Chain, params: T, signingFunctions: SigningFunctions<T>, signMain: (signers: SignerSet, chain: Chain, params: T) => Promise<Hex>): Promise<Hex>;
25
+ }, chain: Chain, address: Address, params: T, signingFunctions: SigningFunctions<T>, signMain: (signers: SignerSet, chain: Chain, address: Address, params: T) => Promise<Hex>): Promise<Hex>;
22
26
  export { convertOwnerSetToSignerSet, signWithMultiFactorAuth, signWithSession, signWithGuardians, signWithOwners, type SigningFunctions, };
23
27
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../accounts/signing/common.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAGV,KAAK,GAAG,EAGT,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAA;AAEtE,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEtD,iBAAS,0BAA0B,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAyC/D;AAED,KAAK,gBAAgB,CAAC,CAAC,IAAI;IACzB,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACxD,WAAW,EAAE,CACX,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,CAAC,KACN,OAAO,CAAC,GAAG,CAAC,CAAA;CAClB,CAAA;AAED,iBAAe,uBAAuB,CAAC,CAAC,EACtC,OAAO,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,EAC5D,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,GACtE,OAAO,CAAC,GAAG,CAAC,CA0Cd;AAED,iBAAe,eAAe,CAAC,CAAC,EAC9B,OAAO,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,EACxC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,GACtE,OAAO,CAAC,GAAG,CAAC,CAKd;AAED,iBAAe,iBAAiB,CAAC,CAAC,EAChC,OAAO,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,EAC1C,MAAM,EAAE,CAAC,EACT,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,GACpC,OAAO,CAAC,GAAG,CAAC,CAOd;AAED,iBAAe,cAAc,CAAC,CAAC,EAC7B,OAAO,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,EACtC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,CAAC,EACT,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACrC,QAAQ,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,GACtE,OAAO,CAAC,GAAG,CAAC,CAoBd;AAED,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,KAAK,gBAAgB,GACtB,CAAA"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../accounts/signing/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACtC,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,KAAK,EAGV,KAAK,GAAG,EAGT,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAG/D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAQtD,iBAAS,0BAA0B,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAiD/D;AAED,KAAK,gBAAgB,CAAC,CAAC,IAAI;IACzB,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACxD,WAAW,EAAE,CACX,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,CAAC,KACN,OAAO,CAAC;QACX,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAA;QACnC,SAAS,EAAE,GAAG,CAAA;KACf,CAAC,CAAA;CACH,CAAA;AAED,iBAAe,uBAAuB,CAAC,CAAC,EACtC,OAAO,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,EAC5D,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,CACR,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,KACN,OAAO,CAAC,GAAG,CAAC,GAChB,OAAO,CAAC,GAAG,CAAC,CA0Cd;AAED,iBAAe,eAAe,CAAC,CAAC,EAC9B,OAAO,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,EACxC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,CACR,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,KACN,OAAO,CAAC,GAAG,CAAC,GAChB,OAAO,CAAC,GAAG,CAAC,CAKd;AAED,iBAAe,iBAAiB,CAAC,CAAC,EAChC,OAAO,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,EAC1C,MAAM,EAAE,CAAC,EACT,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,GACpC,OAAO,CAAC,GAAG,CAAC,CAOd;AAED,iBAAe,cAAc,CAAC,CAAC,EAC7B,OAAO,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,EACtC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,EACT,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACrC,QAAQ,EAAE,CACR,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,KACN,OAAO,CAAC,GAAG,CAAC,GAChB,OAAO,CAAC,GAAG,CAAC,CA2Cd;AAED,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,KAAK,gBAAgB,GACtB,CAAA"}
@@ -6,7 +6,9 @@ exports.signWithSession = signWithSession;
6
6
  exports.signWithGuardians = signWithGuardians;
7
7
  exports.signWithOwners = signWithOwners;
8
8
  const viem_1 = require("viem");
9
+ const modules_1 = require("../../modules");
9
10
  const core_1 = require("../../modules/validators/core");
11
+ const passkeys_1 = require("./passkeys");
10
12
  function convertOwnerSetToSignerSet(owners) {
11
13
  switch (owners.type) {
12
14
  case 'ecdsa': {
@@ -16,11 +18,18 @@ function convertOwnerSetToSignerSet(owners) {
16
18
  accounts: owners.accounts,
17
19
  };
18
20
  }
21
+ case 'ecdsa-v0': {
22
+ return {
23
+ type: 'owner',
24
+ kind: 'ecdsa-v0',
25
+ accounts: owners.accounts,
26
+ };
27
+ }
19
28
  case 'passkey': {
20
29
  return {
21
30
  type: 'owner',
22
31
  kind: 'passkey',
23
- account: owners.account,
32
+ accounts: owners.accounts,
24
33
  };
25
34
  }
26
35
  case 'multi-factor': {
@@ -29,9 +38,10 @@ function convertOwnerSetToSignerSet(owners) {
29
38
  kind: 'multi-factor',
30
39
  validators: owners.validators.map((validator, index) => {
31
40
  switch (validator.type) {
32
- case 'ecdsa': {
41
+ case 'ecdsa':
42
+ case 'ecdsa-v0': {
33
43
  return {
34
- type: 'ecdsa',
44
+ type: validator.type,
35
45
  id: index,
36
46
  accounts: validator.accounts,
37
47
  };
@@ -40,7 +50,7 @@ function convertOwnerSetToSignerSet(owners) {
40
50
  return {
41
51
  type: 'passkey',
42
52
  id: index,
43
- account: validator.account,
53
+ accounts: validator.accounts,
44
54
  };
45
55
  }
46
56
  }
@@ -49,13 +59,13 @@ function convertOwnerSetToSignerSet(owners) {
49
59
  }
50
60
  }
51
61
  }
52
- async function signWithMultiFactorAuth(signers, chain, params, signMain) {
62
+ async function signWithMultiFactorAuth(signers, chain, address, params, signMain) {
53
63
  const signatures = await Promise.all(signers.validators.map(async (validator) => {
54
64
  if (validator === null) {
55
65
  return '0x';
56
66
  }
57
67
  const validatorSigners = convertOwnerSetToSignerSet(validator);
58
- return signMain(validatorSigners, chain, params);
68
+ return signMain(validatorSigners, chain, address, params);
59
69
  }));
60
70
  const data = (0, viem_1.encodeAbiParameters)([
61
71
  {
@@ -86,25 +96,44 @@ async function signWithMultiFactorAuth(signers, chain, params, signMain) {
86
96
  ]);
87
97
  return data;
88
98
  }
89
- async function signWithSession(signers, chain, params, signMain) {
99
+ async function signWithSession(signers, chain, address, params, signMain) {
90
100
  const sessionSigners = convertOwnerSetToSignerSet(signers.session.owners);
91
- return signMain(sessionSigners, chain, params);
101
+ return signMain(sessionSigners, chain, address, params);
92
102
  }
93
103
  async function signWithGuardians(signers, params, signingFunctions) {
94
104
  const signatures = await Promise.all(signers.guardians.map((account) => signingFunctions.signEcdsa(account, params)));
95
105
  return (0, viem_1.concat)(signatures);
96
106
  }
97
- async function signWithOwners(signers, chain, params, signingFunctions, signMain) {
107
+ async function signWithOwners(signers, chain, address, params, signingFunctions, signMain) {
98
108
  switch (signers.kind) {
99
- case 'ecdsa': {
109
+ case 'ecdsa':
110
+ case 'ecdsa-v0': {
100
111
  const signatures = await Promise.all(signers.accounts.map((account) => signingFunctions.signEcdsa(account, params)));
101
112
  return (0, viem_1.concat)(signatures);
102
113
  }
103
114
  case 'passkey': {
104
- return await signingFunctions.signPasskey(signers.account, chain, params);
115
+ const signatures = await Promise.all(signers.accounts.map((account) => signingFunctions.signPasskey(account, params)));
116
+ const usePrecompile = (0, modules_1.isRip7212SupportedNetwork)(chain);
117
+ const credIds = signers.accounts.map((account) => {
118
+ const publicKey = account.publicKey;
119
+ const { x, y } = (0, passkeys_1.parsePublicKey)(publicKey);
120
+ return (0, passkeys_1.generateCredentialId)(x, y, address);
121
+ });
122
+ const webAuthns = signatures.map((signature) => {
123
+ const { r, s } = (0, passkeys_1.parseSignature)(signature.signature);
124
+ return {
125
+ authenticatorData: signature.webauthn.authenticatorData,
126
+ clientDataJSON: signature.webauthn.clientDataJSON,
127
+ challengeIndex: BigInt(signature.webauthn.challengeIndex),
128
+ typeIndex: BigInt(signature.webauthn.typeIndex),
129
+ r,
130
+ s,
131
+ };
132
+ });
133
+ return (0, passkeys_1.packSignature)(credIds, usePrecompile, webAuthns);
105
134
  }
106
135
  case 'multi-factor': {
107
- return signWithMultiFactorAuth(signers, chain, params, signMain);
136
+ return signWithMultiFactorAuth(signers, chain, address, params, signMain);
108
137
  }
109
138
  default: {
110
139
  throw new Error('Unsupported owner kind');
@@ -1,5 +1,5 @@
1
- import { type Chain, type Hex } from 'viem';
1
+ import { type Address, type Chain, type Hex } from 'viem';
2
2
  import type { SignerSet } from '../../types';
3
- declare function sign(signers: SignerSet, chain: Chain, hash: Hex): Promise<Hex>;
3
+ declare function sign(signers: SignerSet, chain: Chain, address: Address, hash: Hex): Promise<Hex>;
4
4
  export { sign };
5
5
  //# sourceMappingURL=message.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../accounts/signing/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,KAAK,EAEV,KAAK,GAAG,EAGT,MAAM,MAAM,CAAA;AAMb,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAS5C,iBAAe,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAiB7E;AA+BD,OAAO,EAAE,IAAI,EAAE,CAAA"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../accounts/signing/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,KAAK,EAEV,KAAK,GAAG,EAGT,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAS5C,iBAAe,IAAI,CACjB,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,GAAG,CAAC,CAwBd;AA4BD,OAAO,EAAE,IAAI,EAAE,CAAA"}
@@ -2,20 +2,19 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.sign = sign;
4
4
  const viem_1 = require("viem");
5
- const modules_1 = require("../../modules");
6
5
  const error_1 = require("../error");
7
6
  const common_1 = require("./common");
8
- async function sign(signers, chain, hash) {
7
+ async function sign(signers, chain, address, hash) {
9
8
  const signingFunctions = {
10
9
  signEcdsa: (account, hash) => signEcdsa(account, hash),
11
- signPasskey: (account, chain, hash) => signPasskey(account, chain, hash),
10
+ signPasskey: (account, hash) => signPasskey(account, hash),
12
11
  };
13
12
  switch (signers.type) {
14
13
  case 'owner': {
15
- return (0, common_1.signWithOwners)(signers, chain, hash, signingFunctions, sign);
14
+ return (0, common_1.signWithOwners)(signers, chain, address, hash, signingFunctions, sign);
16
15
  }
17
16
  case 'session': {
18
- return (0, common_1.signWithSession)(signers, chain, hash, sign);
17
+ return (0, common_1.signWithSession)(signers, chain, address, hash, sign);
19
18
  }
20
19
  case 'guardians': {
21
20
  return (0, common_1.signWithGuardians)(signers, hash, signingFunctions);
@@ -39,13 +38,10 @@ async function signEcdsa(account, hash) {
39
38
  const newSignature = (0, viem_1.concat)([r, s, (0, viem_1.toHex)(newV)]);
40
39
  return newSignature;
41
40
  }
42
- async function signPasskey(account, chain, hash) {
41
+ async function signPasskey(account, hash) {
43
42
  const { webauthn, signature } = await account.sign({ hash });
44
- const usePrecompiled = (0, modules_1.isRip7212SupportedNetwork)(chain);
45
- const encodedSignature = (0, modules_1.getWebauthnValidatorSignature)({
43
+ return {
46
44
  webauthn,
47
45
  signature,
48
- usePrecompiled,
49
- });
50
- return encodedSignature;
46
+ };
51
47
  }
@@ -0,0 +1,29 @@
1
+ import { type Address, type Hex } from 'viem';
2
+ interface WebAuthnSignature {
3
+ authenticatorData: Hex;
4
+ clientDataJSON: string;
5
+ challengeIndex: bigint;
6
+ typeIndex: bigint;
7
+ r: bigint;
8
+ s: bigint;
9
+ }
10
+ declare function parsePublicKey(publicKey: Hex | Uint8Array): {
11
+ x: bigint;
12
+ y: bigint;
13
+ };
14
+ declare function parseSignature(signature: Hex | Uint8Array): {
15
+ r: bigint;
16
+ s: bigint;
17
+ };
18
+ declare function generateCredentialId(pubKeyX: bigint, pubKeyY: bigint, account: Address): `0x${string}`;
19
+ declare function packSignature(credIds: Hex[], usePrecompile: boolean, webAuthns: {
20
+ authenticatorData: Hex;
21
+ clientDataJSON: string;
22
+ challengeIndex: bigint;
23
+ typeIndex: bigint;
24
+ r: bigint;
25
+ s: bigint;
26
+ }[]): Hex;
27
+ export { parsePublicKey, parseSignature, generateCredentialId, packSignature };
28
+ export type { WebAuthnSignature };
29
+ //# sourceMappingURL=passkeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkeys.d.ts","sourceRoot":"","sources":["../../../../accounts/signing/passkeys.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EAGZ,KAAK,GAAG,EAGT,MAAM,MAAM,CAAA;AAEb,UAAU,iBAAiB;IACzB,iBAAiB,EAAE,GAAG,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,iBAAS,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,UAAU,GAAG;IACpD,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CAUA;AAED,iBAAS,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,UAAU,GAAG;IACpD,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,CASA;AAED,iBAAS,oBAAoB,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,iBAkBjB;AAED,iBAAS,aAAa,CACpB,OAAO,EAAE,GAAG,EAAE,EACd,aAAa,EAAE,OAAO,EACtB,SAAS,EAAE;IACT,iBAAiB,EAAE,GAAG,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV,EAAE,GACF,GAAG,CAqDL;AAED,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAA;AAC9E,YAAY,EAAE,iBAAiB,EAAE,CAAA"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parsePublicKey = parsePublicKey;
4
+ exports.parseSignature = parseSignature;
5
+ exports.generateCredentialId = generateCredentialId;
6
+ exports.packSignature = packSignature;
7
+ const viem_1 = require("viem");
8
+ function parsePublicKey(publicKey) {
9
+ const bytes = typeof publicKey === 'string' ? (0, viem_1.hexToBytes)(publicKey) : publicKey;
10
+ const offset = bytes.length === 65 ? 1 : 0;
11
+ const x = bytes.slice(offset, 32 + offset);
12
+ const y = bytes.slice(32 + offset, 64 + offset);
13
+ return {
14
+ x: BigInt((0, viem_1.bytesToHex)(x)),
15
+ y: BigInt((0, viem_1.bytesToHex)(y)),
16
+ };
17
+ }
18
+ function parseSignature(signature) {
19
+ const bytes = typeof signature === 'string' ? (0, viem_1.hexToBytes)(signature) : signature;
20
+ const r = bytes.slice(0, 32);
21
+ const s = bytes.slice(32, 64);
22
+ return {
23
+ r: BigInt((0, viem_1.bytesToHex)(r)),
24
+ s: BigInt((0, viem_1.bytesToHex)(s)),
25
+ };
26
+ }
27
+ function generateCredentialId(pubKeyX, pubKeyY, account) {
28
+ return (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)([
29
+ {
30
+ type: 'uint256',
31
+ },
32
+ {
33
+ type: 'uint256',
34
+ },
35
+ {
36
+ type: 'address',
37
+ },
38
+ ], [pubKeyX, pubKeyY, account]));
39
+ }
40
+ function packSignature(credIds, usePrecompile, webAuthns) {
41
+ // Sort both `credIds` and `webAuthns` by credIds
42
+ const credIdsAndWebAuthns = credIds.map((credId, index) => ({
43
+ credId,
44
+ webAuthn: webAuthns[index],
45
+ }));
46
+ credIdsAndWebAuthns.sort((a, b) => a.credId.localeCompare(b.credId));
47
+ credIds = credIdsAndWebAuthns.map(({ credId }) => credId);
48
+ webAuthns = credIdsAndWebAuthns.map(({ webAuthn }) => webAuthn);
49
+ // Encode
50
+ return (0, viem_1.encodeAbiParameters)([
51
+ {
52
+ type: 'bytes32[]',
53
+ name: 'credIds',
54
+ },
55
+ {
56
+ type: 'bool',
57
+ name: 'usePrecompile',
58
+ },
59
+ {
60
+ type: 'tuple[]',
61
+ name: 'webAuthns',
62
+ components: [
63
+ {
64
+ type: 'bytes',
65
+ name: 'authenticatorData',
66
+ },
67
+ {
68
+ type: 'string',
69
+ name: 'clientDataJSON',
70
+ },
71
+ {
72
+ type: 'uint256',
73
+ name: 'challengeIndex',
74
+ },
75
+ {
76
+ type: 'uint256',
77
+ name: 'typeIndex',
78
+ },
79
+ {
80
+ type: 'uint256',
81
+ name: 'r',
82
+ },
83
+ {
84
+ type: 'uint256',
85
+ name: 's',
86
+ },
87
+ ],
88
+ },
89
+ ], [credIds, usePrecompile, webAuthns]);
90
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=passkeys.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkeys.test.d.ts","sourceRoot":"","sources":["../../../../accounts/signing/passkeys.test.ts"],"names":[],"mappings":""}