@charterlabs/rhinestone-sdk 0.2.7-dev.2 → 0.2.7-dev.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/dist/src/accounts/error.d.ts +38 -3
  2. package/dist/src/accounts/error.d.ts.map +1 -1
  3. package/dist/src/accounts/error.js +55 -7
  4. package/dist/src/accounts/index.d.ts +28 -20
  5. package/dist/src/accounts/index.d.ts.map +1 -1
  6. package/dist/src/accounts/index.js +196 -21
  7. package/dist/src/accounts/index.test.js +2 -4
  8. package/dist/src/accounts/json-rpc/providers.d.ts.map +1 -1
  9. package/dist/src/accounts/json-rpc/providers.js +42 -4
  10. package/dist/src/accounts/kernel.d.ts +1 -1
  11. package/dist/src/accounts/kernel.d.ts.map +1 -1
  12. package/dist/src/accounts/kernel.js +29 -1
  13. package/dist/src/accounts/kernel.test.js +35 -8
  14. package/dist/src/accounts/nexus.d.ts +4 -3
  15. package/dist/src/accounts/nexus.d.ts.map +1 -1
  16. package/dist/src/accounts/nexus.js +82 -14
  17. package/dist/src/accounts/nexus.test.js +33 -6
  18. package/dist/src/accounts/safe.d.ts.map +1 -1
  19. package/dist/src/accounts/safe.js +85 -53
  20. package/dist/src/accounts/safe.test.js +33 -6
  21. package/dist/src/accounts/signing/common.d.ts +4 -4
  22. package/dist/src/accounts/signing/common.d.ts.map +1 -1
  23. package/dist/src/accounts/signing/common.js +21 -9
  24. package/dist/src/accounts/signing/message.d.ts +1 -1
  25. package/dist/src/accounts/signing/message.d.ts.map +1 -1
  26. package/dist/src/accounts/signing/message.js +6 -6
  27. package/dist/src/accounts/signing/passkeys.d.ts +8 -1
  28. package/dist/src/accounts/signing/passkeys.d.ts.map +1 -1
  29. package/dist/src/accounts/signing/passkeys.js +35 -0
  30. package/dist/src/accounts/signing/passkeys.test.js +15 -0
  31. package/dist/src/accounts/signing/typedData.d.ts.map +1 -1
  32. package/dist/src/accounts/signing/typedData.js +2 -2
  33. package/dist/src/accounts/startale.test.js +0 -4
  34. package/dist/src/accounts/utils.d.ts +2 -2
  35. package/dist/src/accounts/utils.d.ts.map +1 -1
  36. package/dist/src/accounts/walletClient.d.ts +7 -0
  37. package/dist/src/accounts/walletClient.d.ts.map +1 -0
  38. package/dist/src/accounts/walletClient.js +38 -0
  39. package/dist/src/actions/compact.d.ts +13 -0
  40. package/dist/src/actions/compact.d.ts.map +1 -0
  41. package/dist/src/actions/compact.js +210 -0
  42. package/dist/src/actions/ecdsa.d.ts +35 -0
  43. package/dist/src/actions/ecdsa.d.ts.map +1 -0
  44. package/dist/src/actions/ecdsa.js +114 -0
  45. package/dist/src/actions/ecdsa.test.d.ts +2 -0
  46. package/dist/src/actions/ecdsa.test.d.ts.map +1 -0
  47. package/dist/src/actions/ecdsa.test.js +99 -0
  48. package/dist/src/actions/index.d.ts +23 -166
  49. package/dist/src/actions/index.d.ts.map +1 -1
  50. package/dist/src/actions/index.js +25 -544
  51. package/dist/src/actions/mfa.d.ts +37 -0
  52. package/dist/src/actions/mfa.d.ts.map +1 -0
  53. package/dist/src/actions/mfa.js +133 -0
  54. package/dist/src/actions/passkeys.d.ts +37 -0
  55. package/dist/src/actions/passkeys.d.ts.map +1 -0
  56. package/dist/src/actions/passkeys.js +129 -0
  57. package/dist/src/actions/passkeys.test.d.ts +2 -0
  58. package/dist/src/actions/passkeys.test.d.ts.map +1 -0
  59. package/dist/src/actions/passkeys.test.js +54 -0
  60. package/dist/src/actions/recovery.d.ts +33 -0
  61. package/dist/src/actions/recovery.d.ts.map +1 -0
  62. package/dist/src/actions/recovery.js +193 -0
  63. package/dist/src/actions/recovery.test.d.ts +2 -0
  64. package/dist/src/actions/recovery.test.d.ts.map +1 -0
  65. package/dist/src/actions/recovery.test.js +168 -0
  66. package/dist/src/errors/index.d.ts +5 -0
  67. package/dist/src/errors/index.d.ts.map +1 -0
  68. package/dist/src/errors/index.js +35 -0
  69. package/dist/src/execution/compact.d.ts +24 -8
  70. package/dist/src/execution/compact.d.ts.map +1 -1
  71. package/dist/src/execution/compact.js +29 -103
  72. package/dist/src/execution/error.d.ts +2 -9
  73. package/dist/src/execution/error.d.ts.map +1 -1
  74. package/dist/src/execution/error.js +4 -13
  75. package/dist/src/execution/index.d.ts +33 -22
  76. package/dist/src/execution/index.d.ts.map +1 -1
  77. package/dist/src/execution/index.js +60 -41
  78. package/dist/src/execution/permit2.d.ts +148 -0
  79. package/dist/src/execution/permit2.d.ts.map +1 -0
  80. package/dist/src/execution/permit2.js +282 -0
  81. package/dist/src/execution/smart-session.d.ts +3 -3
  82. package/dist/src/execution/smart-session.d.ts.map +1 -1
  83. package/dist/src/execution/types.d.ts +35 -0
  84. package/dist/src/execution/types.d.ts.map +1 -0
  85. package/dist/src/execution/types.js +2 -0
  86. package/dist/src/execution/utils.d.ts +36 -28
  87. package/dist/src/execution/utils.d.ts.map +1 -1
  88. package/dist/src/execution/utils.js +248 -91
  89. package/dist/src/index.d.ts +37 -19
  90. package/dist/src/index.d.ts.map +1 -1
  91. package/dist/src/index.js +130 -66
  92. package/dist/src/modules/common.d.ts +10 -4
  93. package/dist/src/modules/common.d.ts.map +1 -1
  94. package/dist/src/modules/common.js +22 -1
  95. package/dist/src/modules/index.d.ts +3 -2
  96. package/dist/src/modules/index.d.ts.map +1 -1
  97. package/dist/src/modules/index.js +16 -13
  98. package/dist/src/modules/index.test.js +8 -11
  99. package/dist/src/modules/read.d.ts.map +1 -1
  100. package/dist/src/modules/read.js +4 -0
  101. package/dist/src/modules/validators/core.d.ts +5 -3
  102. package/dist/src/modules/validators/core.d.ts.map +1 -1
  103. package/dist/src/modules/validators/core.js +29 -10
  104. package/dist/src/modules/validators/core.test.js +4 -4
  105. package/dist/src/modules/validators/smart-sessions.test.js +0 -3
  106. package/dist/src/modules/validators/webauthn-contract.d.ts.map +1 -1
  107. package/dist/src/orchestrator/client.d.ts +2 -1
  108. package/dist/src/orchestrator/client.d.ts.map +1 -1
  109. package/dist/src/orchestrator/client.js +36 -14
  110. package/dist/src/orchestrator/consts.d.ts +1 -2
  111. package/dist/src/orchestrator/consts.d.ts.map +1 -1
  112. package/dist/src/orchestrator/consts.js +1 -3
  113. package/dist/src/orchestrator/registry.d.ts +2 -2
  114. package/dist/src/orchestrator/registry.d.ts.map +1 -1
  115. package/dist/src/orchestrator/registry.js +68 -30
  116. package/dist/src/orchestrator/registry.test.js +4 -4
  117. package/dist/src/orchestrator/types.d.ts +34 -25
  118. package/dist/src/orchestrator/types.d.ts.map +1 -1
  119. package/dist/src/types.d.ts +64 -9
  120. package/dist/src/types.d.ts.map +1 -1
  121. package/package.json +73 -2
  122. package/dist/src/accounts/json-rpc/index.test.d.ts +0 -2
  123. package/dist/src/accounts/json-rpc/index.test.d.ts.map +0 -1
  124. package/dist/src/accounts/json-rpc/index.test.js +0 -16
  125. package/dist/src/accounts/json-rpc/providers.test.d.ts +0 -2
  126. package/dist/src/accounts/json-rpc/providers.test.d.ts.map +0 -1
  127. package/dist/src/accounts/json-rpc/providers.test.js +0 -15
  128. package/dist/src/actions/index.test.d.ts +0 -2
  129. package/dist/src/actions/index.test.d.ts.map +0 -1
  130. package/dist/src/actions/index.test.js +0 -302
@@ -2,12 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const vitest_1 = require("vitest");
4
4
  const consts_1 = require("../../test/consts");
5
+ const common_1 = require("./common");
5
6
  const index_1 = require("./index");
6
7
  (0, vitest_1.describe)('Modules', () => {
7
8
  (0, vitest_1.describe)('Setup', () => {
8
9
  (0, vitest_1.test)('should use ownable validator for ECDSA owners', () => {
9
10
  const config = {
10
- rhinestoneApiKey: consts_1.MOCK_API_KEY,
11
11
  owners: {
12
12
  type: 'ecdsa',
13
13
  accounts: [consts_1.accountA],
@@ -15,12 +15,11 @@ const index_1 = require("./index");
15
15
  },
16
16
  };
17
17
  const setup = (0, index_1.getSetup)(config);
18
- (0, vitest_1.expect)(setup.validators[0].address).toBe('0x000000000013fdB5234E4E3162a810F54d9f7E98');
19
- (0, vitest_1.expect)(setup.validators[0].type).toBe(1n);
18
+ (0, vitest_1.expect)(setup.validators[0].address).toBe('0x000000000013fdb5234e4e3162a810f54d9f7e98');
19
+ (0, vitest_1.expect)(setup.validators[0].type).toBe(common_1.MODULE_TYPE_ID_VALIDATOR);
20
20
  });
21
21
  (0, vitest_1.test)('should use webauthn validator for passkey owners', () => {
22
22
  const config = {
23
- rhinestoneApiKey: consts_1.MOCK_API_KEY,
24
23
  owners: {
25
24
  type: 'passkey',
26
25
  accounts: [consts_1.passkeyAccount],
@@ -28,12 +27,11 @@ const index_1 = require("./index");
28
27
  };
29
28
  const setup = (0, index_1.getSetup)(config);
30
29
  (0, vitest_1.expect)(setup.validators).toHaveLength(1);
31
- (0, vitest_1.expect)(setup.validators[0].address).toBe('0x0000000000578c4cB0e472a5462da43C495C3F33');
32
- (0, vitest_1.expect)(setup.validators[0].type).toBe(1n);
30
+ (0, vitest_1.expect)(setup.validators[0].address).toBe('0x0000000000578c4cb0e472a5462da43c495c3f33');
31
+ (0, vitest_1.expect)(setup.validators[0].type).toBe(common_1.MODULE_TYPE_ID_VALIDATOR);
33
32
  });
34
33
  (0, vitest_1.test)('should use smart session validator when sessions are enabled', () => {
35
34
  const config = {
36
- rhinestoneApiKey: consts_1.MOCK_API_KEY,
37
35
  owners: {
38
36
  type: 'ecdsa',
39
37
  accounts: [consts_1.accountA],
@@ -54,11 +52,10 @@ const index_1 = require("./index");
54
52
  if (!smartSessionValidator) {
55
53
  return;
56
54
  }
57
- (0, vitest_1.expect)(smartSessionValidator.type).toBe(1n);
55
+ (0, vitest_1.expect)(smartSessionValidator.type).toBe(common_1.MODULE_TYPE_ID_VALIDATOR);
58
56
  });
59
57
  (0, vitest_1.test)('should use smart session compatibility fallback for safe accounts with sessions', () => {
60
58
  const config = {
61
- rhinestoneApiKey: consts_1.MOCK_API_KEY,
62
59
  owners: {
63
60
  type: 'ecdsa',
64
61
  accounts: [consts_1.accountA],
@@ -78,12 +75,12 @@ const index_1 = require("./index");
78
75
  },
79
76
  };
80
77
  const setup = (0, index_1.getSetup)(config);
81
- const smartSessionFallback = setup.fallbacks.find((fallback) => fallback.address === '0x12cae64c42f362e7d5a847c2d33388373f629177');
78
+ const smartSessionFallback = setup.fallbacks.find((fallback) => fallback.address === '0x000000000052e9685932845660777DF43C2dC496');
82
79
  (0, vitest_1.expect)(smartSessionFallback).toBeDefined();
83
80
  if (!smartSessionFallback) {
84
81
  return;
85
82
  }
86
- (0, vitest_1.expect)(smartSessionFallback.type).toBe(3n);
83
+ (0, vitest_1.expect)(smartSessionFallback.type).toBe(common_1.MODULE_TYPE_ID_FALLBACK);
87
84
  });
88
85
  vitest_1.test.todo('using the omni account should install the necessary modules');
89
86
  });
@@ -1 +1 @@
1
- {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../modules/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAsB,MAAM,MAAM,CAAA;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAG3D,iBAAe,aAAa,CAC1B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,OAAO,EAAE,CAAC,CA8CpB;AAED,iBAAe,SAAS,CACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC;IACT,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAC,CAkER;AAED,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../modules/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAsB,MAAM,MAAM,CAAA;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAG3D,iBAAe,aAAa,CAC1B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,OAAO,EAAE,CAAC,CAkDpB;AAED,iBAAe,SAAS,CACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC;IACT,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAC,CAkER;AAED,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA"}
@@ -11,6 +11,7 @@ async function getValidators(accountType, account, chain, provider) {
11
11
  transport: (0, utils_1.createTransport)(chain, provider),
12
12
  });
13
13
  switch (accountType) {
14
+ case 'custom':
14
15
  case 'safe':
15
16
  case 'startale':
16
17
  case 'nexus': {
@@ -47,6 +48,9 @@ async function getValidators(accountType, account, chain, provider) {
47
48
  });
48
49
  return validators[0];
49
50
  }
51
+ case 'eoa': {
52
+ return [];
53
+ }
50
54
  case 'kernel': {
51
55
  throw new Error('Kernel not supported');
52
56
  }
@@ -13,13 +13,15 @@ interface WebauthnCredential {
13
13
  declare const OWNABLE_VALIDATOR_ADDRESS: Address;
14
14
  declare const WEBAUTHN_VALIDATOR_ADDRESS: Address;
15
15
  declare const MULTI_FACTOR_VALIDATOR_ADDRESS: Address;
16
+ declare const WEBAUTHN_V0_VALIDATOR_ADDRESS: Address;
16
17
  declare function getOwnerValidator(config: RhinestoneAccountConfig): Module;
17
18
  declare function getMockSignature(ownerSet: OwnerSet): Hex;
18
19
  declare function getValidator(owners: OwnerSet): Module;
19
- declare function getOwnableValidator(threshold: number, owners: Address[]): Module;
20
- declare function getWebAuthnValidator(threshold: number, webAuthnCredentials: WebauthnCredential[]): Module;
20
+ declare function getOwnableValidator(threshold: number, owners: Address[], address?: Address): Module;
21
+ declare function getWebAuthnValidator(threshold: number, webAuthnCredentials: WebauthnCredential[], address?: Address): Module;
21
22
  declare function getMultiFactorValidator(threshold: number, validators: (OwnableValidatorConfig | WebauthnValidatorConfig | null)[]): Module;
22
23
  declare function getSocialRecoveryValidator(guardians: Account[], threshold?: number): Module;
23
- export { OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, getOwnerValidator, getOwnableValidator, getWebAuthnValidator, getMultiFactorValidator, getSocialRecoveryValidator, getValidator, getMockSignature, };
24
+ declare function supportsEip712(validator: Module): boolean;
25
+ export { OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, WEBAUTHN_V0_VALIDATOR_ADDRESS, getOwnerValidator, getOwnableValidator, getWebAuthnValidator, getMultiFactorValidator, getSocialRecoveryValidator, getValidator, getMockSignature, supportsEip712, };
24
26
  export type { WebauthnCredential };
25
27
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../modules/validators/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EAKZ,KAAK,GAAG,EAIT,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EACV,sBAAsB,EACtB,QAAQ,EACR,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAA4B,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AAEjE,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,SAAS,GAAG,GAAG,GAAG,UAAU,CAAA;IACpC,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,yBAAyB,EAAE,OACa,CAAA;AAC9C,QAAA,MAAM,0BAA0B,EAAE,OACY,CAAA;AAG9C,QAAA,MAAM,8BAA8B,EAAE,OACQ,CAAA;AAO9C,iBAAS,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,UAEzD;AAED,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAiDjD;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,QAAQ,UAmBrC;AAED,iBAAS,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAiBzE;AAED,iBAAS,oBAAoB,CAC3B,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,kBAAkB,EAAE,GACxC,MAAM,CA4DR;AAED,iBAAS,uBAAuB,CAC9B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,CAAC,sBAAsB,GAAG,uBAAuB,GAAG,IAAI,CAAC,EAAE,GACtE,MAAM,CAgDR;AAED,iBAAS,0BAA0B,CACjC,SAAS,EAAE,OAAO,EAAE,EACpB,SAAS,SAAI,GACZ,MAAM,CAsBR;AAeD,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,YAAY,EACZ,gBAAgB,GACjB,CAAA;AACD,YAAY,EAAE,kBAAkB,EAAE,CAAA"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../modules/validators/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EAKZ,KAAK,GAAG,EAIT,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EACV,sBAAsB,EACtB,QAAQ,EACR,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAA4B,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AAEjE,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,SAAS,GAAG,GAAG,GAAG,UAAU,CAAA;IACpC,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,yBAAyB,EAAE,OACa,CAAA;AAC9C,QAAA,MAAM,0BAA0B,EAAE,OACY,CAAA;AAG9C,QAAA,MAAM,8BAA8B,EAAE,OACQ,CAAA;AAO9C,QAAA,MAAM,6BAA6B,EAAE,OACS,CAAA;AAO9C,iBAAS,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,UAKzD;AAED,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAiDjD;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,QAAQ,UAoBrC;AAED,iBAAS,mBAAmB,CAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CAiBR;AAED,iBAAS,oBAAoB,CAC3B,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,kBAAkB,EAAE,EACzC,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CA4DR;AAED,iBAAS,uBAAuB,CAC9B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,CAAC,sBAAsB,GAAG,uBAAuB,GAAG,IAAI,CAAC,EAAE,GACtE,MAAM,CAgDR;AAED,iBAAS,0BAA0B,CACjC,SAAS,EAAE,OAAO,EAAE,EACpB,SAAS,SAAI,GACZ,MAAM,CAsBR;AAeD,iBAAS,cAAc,CAAC,SAAS,EAAE,MAAM,WAQxC;AAED,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,YAAY,EACZ,gBAAgB,EAChB,cAAc,GACf,CAAA;AACD,YAAY,EAAE,kBAAkB,EAAE,CAAA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MULTI_FACTOR_VALIDATOR_ADDRESS = exports.WEBAUTHN_VALIDATOR_ADDRESS = exports.OWNABLE_VALIDATOR_ADDRESS = void 0;
3
+ exports.WEBAUTHN_V0_VALIDATOR_ADDRESS = exports.MULTI_FACTOR_VALIDATOR_ADDRESS = exports.WEBAUTHN_VALIDATOR_ADDRESS = exports.OWNABLE_VALIDATOR_ADDRESS = void 0;
4
4
  exports.getOwnerValidator = getOwnerValidator;
5
5
  exports.getOwnableValidator = getOwnableValidator;
6
6
  exports.getWebAuthnValidator = getWebAuthnValidator;
@@ -8,18 +8,28 @@ exports.getMultiFactorValidator = getMultiFactorValidator;
8
8
  exports.getSocialRecoveryValidator = getSocialRecoveryValidator;
9
9
  exports.getValidator = getValidator;
10
10
  exports.getMockSignature = getMockSignature;
11
+ exports.supportsEip712 = supportsEip712;
11
12
  const viem_1 = require("viem");
13
+ const error_1 = require("../../accounts/error");
12
14
  const common_1 = require("../common");
13
- const OWNABLE_VALIDATOR_ADDRESS = '0x000000000013fdB5234E4E3162a810F54d9f7E98';
15
+ const OWNABLE_VALIDATOR_ADDRESS = '0x000000000013fdb5234e4e3162a810f54d9f7e98';
14
16
  exports.OWNABLE_VALIDATOR_ADDRESS = OWNABLE_VALIDATOR_ADDRESS;
15
- const WEBAUTHN_VALIDATOR_ADDRESS = '0x0000000000578c4cB0e472a5462da43C495C3F33';
17
+ const WEBAUTHN_VALIDATOR_ADDRESS = '0x0000000000578c4cb0e472a5462da43c495c3f33';
16
18
  exports.WEBAUTHN_VALIDATOR_ADDRESS = WEBAUTHN_VALIDATOR_ADDRESS;
17
- const SOCIAL_RECOVERY_VALIDATOR_ADDRESS = '0xA04D053b3C8021e8D5bF641816c42dAA75D8b597';
18
- const MULTI_FACTOR_VALIDATOR_ADDRESS = '0xf6bDf42c9BE18cEcA5C06c42A43DAf7FBbe7896b';
19
+ const SOCIAL_RECOVERY_VALIDATOR_ADDRESS = '0xa04d053b3c8021e8d5bf641816c42daa75d8b597';
20
+ const MULTI_FACTOR_VALIDATOR_ADDRESS = '0xf6bdf42c9be18ceca5c06c42a43daf7fbbe7896b';
19
21
  exports.MULTI_FACTOR_VALIDATOR_ADDRESS = MULTI_FACTOR_VALIDATOR_ADDRESS;
22
+ // Legacy
23
+ const OWNABLE_V0_VALIDATOR_ADDRESS = '0x2483da3a338895199e5e538530213157e931bf06';
24
+ const OWNABLE_BETA_VALIDATOR_ADDRESS = '0x0000000000e9e6e96bcaa3c113187cdb7e38aed9';
25
+ const WEBAUTHN_V0_VALIDATOR_ADDRESS = '0x0000000000578c4cb0e472a5462da43c495c3f33';
26
+ exports.WEBAUTHN_V0_VALIDATOR_ADDRESS = WEBAUTHN_V0_VALIDATOR_ADDRESS;
20
27
  const ECDSA_MOCK_SIGNATURE = '0x81d4b4981670cb18f99f0b4a66446df1bf5b204d24cfcb659bf38ba27a4359b5711649ec2423c5e1247245eba2964679b6a1dbb85c992ae40b9b00c6935b02ff1b';
21
28
  const WEBAUTHN_MOCK_SIGNATURE = '0x0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001b9b86eb98fda3ed4d797d9e690588dfadf17b329a76a47cec935bebf92d7ddc80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000019b2e9410bb6850f9f660a03d609d5a844fb96bcdc87a15139b03ee22c70f469100d2b865a215c3bf786387064effa8fcedcb1d625b5148f8a1236d5e3ff11acf000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d9763050000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000867b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a22396a4546696a75684557724d34534f572d7443684a625545484550343456636a634a2d42716f3166544d38222c226f726967696e223a22687474703a2f2f6c6f63616c686f73743a38303830222c2263726f73734f726967696e223a66616c73657d0000000000000000000000000000000000000000000000000000';
22
29
  function getOwnerValidator(config) {
30
+ if (!config.owners) {
31
+ throw new error_1.OwnersFieldRequiredError();
32
+ }
23
33
  return getValidator(config.owners);
24
34
  }
25
35
  function getMockSignature(ownerSet) {
@@ -65,7 +75,7 @@ function getMockSignature(ownerSet) {
65
75
  function getValidator(owners) {
66
76
  switch (owners.type) {
67
77
  case 'ecdsa':
68
- return getOwnableValidator(owners.threshold ?? 1, owners.accounts.map((account) => account.address));
78
+ return getOwnableValidator(owners.threshold ?? 1, owners.accounts.map((account) => account.address), owners.module);
69
79
  case 'passkey':
70
80
  return getWebAuthnValidator(owners.threshold ?? 1, owners.accounts.map((account) => ({
71
81
  pubKey: account.publicKey,
@@ -76,9 +86,9 @@ function getValidator(owners) {
76
86
  }
77
87
  }
78
88
  }
79
- function getOwnableValidator(threshold, owners) {
89
+ function getOwnableValidator(threshold, owners, address) {
80
90
  return {
81
- address: OWNABLE_VALIDATOR_ADDRESS,
91
+ address: address ?? OWNABLE_VALIDATOR_ADDRESS,
82
92
  initData: (0, viem_1.encodeAbiParameters)([
83
93
  { name: 'threshold', type: 'uint256' },
84
94
  { name: 'owners', type: 'address[]' },
@@ -91,7 +101,7 @@ function getOwnableValidator(threshold, owners) {
91
101
  type: common_1.MODULE_TYPE_ID_VALIDATOR,
92
102
  };
93
103
  }
94
- function getWebAuthnValidator(threshold, webAuthnCredentials) {
104
+ function getWebAuthnValidator(threshold, webAuthnCredentials, address) {
95
105
  function getPublicKey(webAuthnCredential) {
96
106
  if (typeof webAuthnCredential.pubKey === 'string' ||
97
107
  webAuthnCredential.pubKey instanceof Uint8Array) {
@@ -112,7 +122,7 @@ function getWebAuthnValidator(threshold, webAuthnCredentials) {
112
122
  }
113
123
  const publicKeys = webAuthnCredentials.map(getPublicKey);
114
124
  return {
115
- address: WEBAUTHN_VALIDATOR_ADDRESS,
125
+ address: address ?? WEBAUTHN_VALIDATOR_ADDRESS,
116
126
  initData: (0, viem_1.encodeAbiParameters)([
117
127
  { name: 'threshold', type: 'uint256' },
118
128
  {
@@ -220,3 +230,12 @@ function parsePublicKey(publicKey) {
220
230
  y: BigInt((0, viem_1.bytesToHex)(y)),
221
231
  };
222
232
  }
233
+ function supportsEip712(validator) {
234
+ switch (validator.address.toLowerCase()) {
235
+ case OWNABLE_BETA_VALIDATOR_ADDRESS: // Ownable Validator V1-beta
236
+ case OWNABLE_V0_VALIDATOR_ADDRESS: // Ownable Validator V0
237
+ return false;
238
+ default:
239
+ return true;
240
+ }
241
+ }
@@ -14,7 +14,7 @@ const core_1 = require("./core");
14
14
  });
15
15
  (0, vitest_1.expect)(validator.type).toEqual(common_1.MODULE_TYPE_ID_VALIDATOR);
16
16
  (0, vitest_1.expect)((0, viem_1.isAddress)(validator.address)).toEqual(true);
17
- (0, vitest_1.expect)(validator.address).toEqual('0x000000000013fdB5234E4E3162a810F54d9f7E98');
17
+ (0, vitest_1.expect)(validator.address).toEqual('0x000000000013fdb5234e4e3162a810f54d9f7e98');
18
18
  (0, vitest_1.expect)(validator.initData).toEqual('0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f6c02c78ded62973b43bfa523b247da099486936');
19
19
  });
20
20
  (0, vitest_1.test)('ECDSA: two addresses', () => {
@@ -24,7 +24,7 @@ const core_1 = require("./core");
24
24
  });
25
25
  (0, vitest_1.expect)(validator.type).toEqual(common_1.MODULE_TYPE_ID_VALIDATOR);
26
26
  (0, vitest_1.expect)((0, viem_1.isAddress)(validator.address)).toEqual(true);
27
- (0, vitest_1.expect)(validator.address).toEqual('0x000000000013fdB5234E4E3162a810F54d9f7E98');
27
+ (0, vitest_1.expect)(validator.address).toEqual('0x000000000013fdb5234e4e3162a810f54d9f7e98');
28
28
  (0, vitest_1.expect)(validator.initData).toEqual('0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb7000000000000000000000000f6c02c78ded62973b43bfa523b247da099486936');
29
29
  });
30
30
  (0, vitest_1.test)('ECDSA: three addresses, custom threshold', () => {
@@ -35,7 +35,7 @@ const core_1 = require("./core");
35
35
  });
36
36
  (0, vitest_1.expect)(validator.type).toEqual(common_1.MODULE_TYPE_ID_VALIDATOR);
37
37
  (0, vitest_1.expect)((0, viem_1.isAddress)(validator.address)).toEqual(true);
38
- (0, vitest_1.expect)(validator.address).toEqual('0x000000000013fdB5234E4E3162a810F54d9f7E98');
38
+ (0, vitest_1.expect)(validator.address).toEqual('0x000000000013fdb5234e4e3162a810f54d9f7e98');
39
39
  (0, vitest_1.expect)(validator.initData).toEqual('0x0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000030000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb7000000000000000000000000c27b7578151c5ef713c62c65db09763d57ac3596000000000000000000000000f6c02c78ded62973b43bfa523b247da099486936');
40
40
  });
41
41
  (0, vitest_1.test)('Passkey', () => {
@@ -45,7 +45,7 @@ const core_1 = require("./core");
45
45
  });
46
46
  (0, vitest_1.expect)(validator.type).toEqual(common_1.MODULE_TYPE_ID_VALIDATOR);
47
47
  (0, vitest_1.expect)((0, viem_1.isAddress)(validator.address)).toEqual(true);
48
- (0, vitest_1.expect)(validator.address).toEqual('0x0000000000578c4cB0e472a5462da43C495C3F33');
48
+ (0, vitest_1.expect)(validator.address).toEqual('0x0000000000578c4cb0e472a5462da43c495c3f33');
49
49
  (0, vitest_1.expect)(validator.initData).toEqual('0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001580a9af0569ad3905b26a703201b358aa0904236642ebe79b22a19d00d3737637d46f725a5427ae45a9569259bf67e1e16b187d7b3ad1ed70138c4f0409677d10000000000000000000000000000000000000000000000000000000000000000');
50
50
  });
51
51
  });
@@ -34,7 +34,6 @@ const smart_sessions_2 = require("./smart-sessions");
34
34
  type: 'ecdsa',
35
35
  accounts: [consts_1.accountA],
36
36
  },
37
- rhinestoneApiKey: consts_1.MOCK_API_KEY,
38
37
  })).toBeNull();
39
38
  });
40
39
  (0, vitest_1.test)('empty session list', () => {
@@ -43,7 +42,6 @@ const smart_sessions_2 = require("./smart-sessions");
43
42
  type: 'ecdsa',
44
43
  accounts: [consts_1.accountA],
45
44
  },
46
- rhinestoneApiKey: consts_1.MOCK_API_KEY,
47
45
  sessions: [],
48
46
  })).not.toBeNull();
49
47
  });
@@ -53,7 +51,6 @@ const smart_sessions_2 = require("./smart-sessions");
53
51
  type: 'ecdsa',
54
52
  accounts: [consts_1.accountA],
55
53
  },
56
- rhinestoneApiKey: consts_1.MOCK_API_KEY,
57
54
  sessions: [
58
55
  {
59
56
  owners: {
@@ -1 +1 @@
1
- {"version":3,"file":"webauthn-contract.d.ts","sourceRoot":"","sources":["../../../../modules/validators/webauthn-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,KAAK,EAGV,KAAK,GAAG,EAET,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAGvD;;GAEG;AACH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyFlB,CAAA;AAEV;;;;;;;;GAQG;AACH,iBAAe,oBAAoB,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,GAAG,CAAC,CAcd;AAED;;;;;;GAMG;AACH,iBAAe,gBAAgB,CAC7B,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,GAAG,EAAE,CAAC,CAchB;AAED;;;;;;;GAOG;AACH,iBAAe,iBAAiB,CAC9B,YAAY,EAAE,GAAG,EACjB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,OAAO,CAAC,CAclB;AAED;;;;;;;;GAQG;AACH,iBAAe,aAAa,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,OAAO,CAAC,CAclB;AAED;;;;;;GAMG;AACH,iBAAS,aAAa,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,UAAQ,GAChB,IAAI,CAUN;AAED;;;;;GAKG;AACH,iBAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAUhE;AAED;;;;GAIG;AACH,iBAAS,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAU7C;AAED;;;;;;;GAOG;AACH,iBAAe,iBAAiB,CAC9B,YAAY,EAAE,GAAG,EACjB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC;IACT,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;CACnB,CAAC,CAeD;AAED;;;;;;GAMG;AACH,iBAAe,YAAY,CACzB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;;;;;GAMG;AACH,iBAAe,cAAc,CAC3B,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CACR,KAAK,CAAC;IACJ,YAAY,EAAE,GAAG,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;CACnB,CAAC,CACH,CAqBA;AAED,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,sBAAsB,GACvB,CAAA"}
1
+ {"version":3,"file":"webauthn-contract.d.ts","sourceRoot":"","sources":["../../../../modules/validators/webauthn-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAGV,KAAK,GAAG,EACT,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAGvD;;GAEG;AACH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyFlB,CAAA;AAEV;;;;;;;;GAQG;AACH,iBAAe,oBAAoB,CACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,GAAG,CAAC,CAcd;AAED;;;;;;GAMG;AACH,iBAAe,gBAAgB,CAC7B,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,GAAG,EAAE,CAAC,CAchB;AAED;;;;;;;GAOG;AACH,iBAAe,iBAAiB,CAC9B,YAAY,EAAE,GAAG,EACjB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,OAAO,CAAC,CAclB;AAED;;;;;;;;GAQG;AACH,iBAAe,aAAa,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,OAAO,CAAC,CAclB;AAED;;;;;;GAMG;AACH,iBAAS,aAAa,CACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,UAAQ,GAChB,IAAI,CAUN;AAED;;;;;GAKG;AACH,iBAAS,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAUhE;AAED;;;;GAIG;AACH,iBAAS,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAU7C;AAED;;;;;;;GAOG;AACH,iBAAe,iBAAiB,CAC9B,YAAY,EAAE,GAAG,EACjB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC;IACT,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;CACnB,CAAC,CAeD;AAED;;;;;;GAMG;AACH,iBAAe,YAAY,CACzB,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC,CAcjB;AAED;;;;;;GAMG;AACH,iBAAe,cAAc,CAC3B,cAAc,EAAE,OAAO,EACvB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CACR,KAAK,CAAC;IACJ,YAAY,EAAE,GAAG,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;CACnB,CAAC,CACH,CAqBA;AAED,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,sBAAsB,GACvB,CAAA"}
@@ -10,10 +10,11 @@ export declare class Orchestrator {
10
10
  [chainId: number]: Address[];
11
11
  };
12
12
  }): Promise<Portfolio>;
13
- getMaxTokenAmount(userAddress: Address, destinationChainId: number, destinationTokenAddress: Address, destinationGasUnits: bigint): Promise<bigint>;
13
+ getMaxTokenAmount(userAddress: Address, destinationChainId: number, destinationTokenAddress: Address, destinationGasUnits: bigint, sponsored: boolean): Promise<bigint>;
14
14
  getIntentCost(input: IntentInput): Promise<IntentCost>;
15
15
  getIntentRoute(input: IntentInput): Promise<IntentRoute>;
16
16
  submitIntent(signedIntentOp: SignedIntentOp): Promise<IntentResult>;
17
+ simulateIntent(signedIntentOp: SignedIntentOp): Promise<IntentResult>;
17
18
  getIntentOpStatus(intentId: bigint): Promise<IntentOpStatus>;
18
19
  private parseError;
19
20
  private parseErrorMessage;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../orchestrator/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAuB,MAAM,MAAM,CAAA;AAexD,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,SAAS,EAET,cAAc,EACf,MAAM,SAAS,CAAA;AAGhB,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,MAAM,CAAC,CAAQ;gBAEX,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAKxC,YAAY,CAChB,WAAW,EAAE,OAAO,EACpB,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,MAAM,CAAC,EAAE;YACP,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CAAA;SAC7B,CAAA;KACF,GACA,OAAO,CAAC,SAAS,CAAC;IAmDf,iBAAiB,CACrB,WAAW,EAAE,OAAO,EACpB,kBAAkB,EAAE,MAAM,EAC1B,uBAAuB,EAAE,OAAO,EAChC,mBAAmB,EAAE,MAAM,GAC1B,OAAO,CAAC,MAAM,CAAC;IA0CZ,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IA0BtD,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAqBxD,YAAY,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAqBnE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAkBlE,OAAO,CAAC,UAAU;IA0ElB,OAAO,CAAC,iBAAiB;CAmD1B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../orchestrator/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAuB,MAAM,MAAM,CAAA;AAexD,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,SAAS,EAET,cAAc,EACf,MAAM,SAAS,CAAA;AAGhB,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,MAAM,CAAC,CAAQ;gBAEX,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAKxC,YAAY,CAChB,WAAW,EAAE,OAAO,EACpB,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,MAAM,CAAC,EAAE;YACP,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CAAA;SAC7B,CAAA;KACF,GACA,OAAO,CAAC,SAAS,CAAC;IAmDf,iBAAiB,CACrB,WAAW,EAAE,OAAO,EACpB,kBAAkB,EAAE,MAAM,EAC1B,uBAAuB,EAAE,OAAO,EAChC,mBAAmB,EAAE,MAAM,EAC3B,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,CAAC;IAqDZ,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBtD,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAqBxD,YAAY,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAqBnE,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAqBrE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAkBlE,OAAO,CAAC,UAAU;IA0ElB,OAAO,CAAC,iBAAiB;CAmD1B"}
@@ -49,10 +49,10 @@ class Orchestrator {
49
49
  }
50
50
  catch (error) {
51
51
  this.parseError(error);
52
- throw new Error('Failed to get portfolio');
52
+ throw new error_1.OrchestratorError({ message: 'Failed to get portfolio' });
53
53
  }
54
54
  }
55
- async getMaxTokenAmount(userAddress, destinationChainId, destinationTokenAddress, destinationGasUnits) {
55
+ async getMaxTokenAmount(userAddress, destinationChainId, destinationTokenAddress, destinationGasUnits, sponsored) {
56
56
  const intentCost = await this.getIntentCost({
57
57
  account: {
58
58
  address: userAddress,
@@ -63,7 +63,6 @@ class Orchestrator {
63
63
  data: '0x',
64
64
  },
65
65
  ],
66
- delegations: {},
67
66
  },
68
67
  destinationExecutions: [],
69
68
  destinationChainId,
@@ -73,6 +72,14 @@ class Orchestrator {
73
72
  tokenAddress: destinationTokenAddress,
74
73
  },
75
74
  ],
75
+ options: {
76
+ topupCompact: false,
77
+ sponsorSettings: {
78
+ gasSponsored: sponsored,
79
+ bridgeFeesSponsored: sponsored,
80
+ swapFeesSponsored: sponsored,
81
+ },
82
+ },
76
83
  });
77
84
  if (!intentCost.hasFulfilledAll) {
78
85
  return 0n;
@@ -86,17 +93,16 @@ class Orchestrator {
86
93
  if (tokenAmount < 0n) {
87
94
  throw new Error(`Balance not available. Make sure the account is deployed`);
88
95
  }
89
- return tokenReceived.destinationAmount;
96
+ // `sponsorSettings` is not taken into account in the API response for now
97
+ // As a workaround, we use the `amountSpent` if the transaction is sponsored
98
+ return sponsored
99
+ ? tokenReceived.amountSpent
100
+ : tokenReceived.destinationAmount;
90
101
  }
91
102
  async getIntentCost(input) {
92
103
  try {
93
104
  const response = await axios_1.default.post(`${this.serverUrl}/intents/cost`, {
94
- ...(0, utils_1.convertBigIntFields)({
95
- ...input,
96
- tokenTransfers: input.tokenTransfers.map((transfer) => ({
97
- tokenAddress: transfer.tokenAddress,
98
- })),
99
- }),
105
+ ...(0, utils_1.convertBigIntFields)(input),
100
106
  }, {
101
107
  headers: {
102
108
  'x-api-key': this.apiKey,
@@ -106,7 +112,7 @@ class Orchestrator {
106
112
  }
107
113
  catch (error) {
108
114
  this.parseError(error);
109
- throw new Error('Failed to get intent cost');
115
+ throw new error_1.OrchestratorError({ message: 'Failed to get intent cost' });
110
116
  }
111
117
  }
112
118
  async getIntentRoute(input) {
@@ -122,7 +128,7 @@ class Orchestrator {
122
128
  }
123
129
  catch (error) {
124
130
  this.parseError(error);
125
- throw new Error('Failed to get intent route');
131
+ throw new error_1.OrchestratorError({ message: 'Failed to get intent route' });
126
132
  }
127
133
  }
128
134
  async submitIntent(signedIntentOp) {
@@ -138,7 +144,23 @@ class Orchestrator {
138
144
  }
139
145
  catch (error) {
140
146
  this.parseError(error);
141
- throw new Error('Failed to submit intent');
147
+ throw new error_1.OrchestratorError({ message: 'Failed to submit intent' });
148
+ }
149
+ }
150
+ async simulateIntent(signedIntentOp) {
151
+ try {
152
+ const response = await axios_1.default.post(`${this.serverUrl}/intent-operations/simulate`, {
153
+ signedIntentOp: (0, utils_1.convertBigIntFields)(signedIntentOp),
154
+ }, {
155
+ headers: {
156
+ 'x-api-key': this.apiKey,
157
+ },
158
+ });
159
+ return response.data;
160
+ }
161
+ catch (error) {
162
+ this.parseError(error);
163
+ throw new error_1.OrchestratorError({ message: 'Failed to simulate intent' });
142
164
  }
143
165
  }
144
166
  async getIntentOpStatus(intentId) {
@@ -152,7 +174,7 @@ class Orchestrator {
152
174
  }
153
175
  catch (error) {
154
176
  this.parseError(error);
155
- throw new Error('Failed to get intent op status');
177
+ throw new error_1.OrchestratorError({ message: 'Failed to get intent op status' });
156
178
  }
157
179
  }
158
180
  parseError(error) {
@@ -1,6 +1,5 @@
1
1
  declare const PROD_ORCHESTRATOR_URL = "https://v1.orchestrator.rhinestone.dev";
2
2
  declare const STAGING_ORCHESTRATOR_URL = "https://staging.v1.orchestrator.rhinestone.dev";
3
- declare const DEV_ORCHESTRATOR_URL = "https://dev.v1.orchestrator.rhinestone.dev";
4
3
  declare const RHINESTONE_SPOKE_POOL_ADDRESS = "0x000000000060f6e853447881951574cdd0663530";
5
- export { PROD_ORCHESTRATOR_URL, STAGING_ORCHESTRATOR_URL, DEV_ORCHESTRATOR_URL, RHINESTONE_SPOKE_POOL_ADDRESS, };
4
+ export { PROD_ORCHESTRATOR_URL, STAGING_ORCHESTRATOR_URL, RHINESTONE_SPOKE_POOL_ADDRESS, };
6
5
  //# sourceMappingURL=consts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../orchestrator/consts.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,qBAAqB,2CAA2C,CAAA;AACtE,QAAA,MAAM,wBAAwB,mDACoB,CAAA;AAClD,QAAA,MAAM,oBAAoB,+CAA+C,CAAA;AACzE,QAAA,MAAM,6BAA6B,+CACW,CAAA;AAE9C,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,6BAA6B,GAC9B,CAAA"}
1
+ {"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../orchestrator/consts.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,qBAAqB,2CAA2C,CAAA;AACtE,QAAA,MAAM,wBAAwB,mDACoB,CAAA;AAClD,QAAA,MAAM,6BAA6B,+CACW,CAAA;AAE9C,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,6BAA6B,GAC9B,CAAA"}
@@ -1,11 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RHINESTONE_SPOKE_POOL_ADDRESS = exports.DEV_ORCHESTRATOR_URL = exports.STAGING_ORCHESTRATOR_URL = exports.PROD_ORCHESTRATOR_URL = void 0;
3
+ exports.RHINESTONE_SPOKE_POOL_ADDRESS = exports.STAGING_ORCHESTRATOR_URL = exports.PROD_ORCHESTRATOR_URL = void 0;
4
4
  const PROD_ORCHESTRATOR_URL = 'https://v1.orchestrator.rhinestone.dev';
5
5
  exports.PROD_ORCHESTRATOR_URL = PROD_ORCHESTRATOR_URL;
6
6
  const STAGING_ORCHESTRATOR_URL = 'https://staging.v1.orchestrator.rhinestone.dev';
7
7
  exports.STAGING_ORCHESTRATOR_URL = STAGING_ORCHESTRATOR_URL;
8
- const DEV_ORCHESTRATOR_URL = 'https://dev.v1.orchestrator.rhinestone.dev';
9
- exports.DEV_ORCHESTRATOR_URL = DEV_ORCHESTRATOR_URL;
10
8
  const RHINESTONE_SPOKE_POOL_ADDRESS = '0x000000000060f6e853447881951574cdd0663530';
11
9
  exports.RHINESTONE_SPOKE_POOL_ADDRESS = RHINESTONE_SPOKE_POOL_ADDRESS;
@@ -1,10 +1,10 @@
1
- import { type Address, type Chain } from 'viem';
1
+ import type { Address, Chain } from 'viem';
2
2
  import type { TokenSymbol } from '../types';
3
3
  import type { TokenConfig } from './types';
4
4
  declare function getSupportedChainIds(): number[];
5
5
  declare function getWethAddress(chain: Chain): Address;
6
6
  declare function getTokenSymbol(tokenAddress: Address, chainId: number): string;
7
- declare function getTokenAddress(tokenSymbol: TokenSymbol, chainId: number): Address;
7
+ declare function getTokenAddress(token: TokenSymbol | Address, chainId: number): Address;
8
8
  declare function getChainById(chainId: number): Chain;
9
9
  declare function isTestnet(chainId: number): boolean;
10
10
  declare function isTokenAddressSupported(address: Address, chainId: number): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../orchestrator/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAA0B,MAAM,MAAM,CAAA;AAavE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1D,iBAAS,oBAAoB,IAAI,MAAM,EAAE,CAExC;AAMD,iBAAS,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAY7C;AAED,iBAAS,cAAc,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAiBtE;AAED,iBAAS,eAAe,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAmB3E;AAMD,iBAAS,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAkB5C;AAED,iBAAS,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAG3C;AAED,iBAAS,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAS3E;AAED,iBAAS,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAO1D;AAED,iBAAS,2BAA2B,CAAC,UAAU,CAAC,EAAE,OAAO;;EAaxD;AAED,iBAAS,mBAAmB,CAC1B,KAAK,EAAE,WAAW,GAAG,OAAO,EAC5B,OAAO,EAAE,MAAM,GACd,OAAO,CAKT;AAED,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,uBAAuB,EACvB,2BAA2B,EAC3B,mBAAmB,GACpB,CAAA"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../orchestrator/registry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AAe1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1D,iBAAS,oBAAoB,IAAI,MAAM,EAAE,CAGxC;AAQD,iBAAS,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAc7C;AAED,iBAAS,cAAc,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAgBtE;AAED,iBAAS,eAAe,CACtB,KAAK,EAAE,WAAW,GAAG,OAAO,EAC5B,OAAO,EAAE,MAAM,GACd,OAAO,CAST;AAQD,iBAAS,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAkB5C;AAED,iBAAS,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAG3C;AAED,iBAAS,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAU3E;AAED,iBAAS,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAU1D;AAED,iBAAS,2BAA2B,CAAC,UAAU,CAAC,EAAE,OAAO;;EAaxD;AAED,iBAAS,mBAAmB,CAC1B,KAAK,EAAE,WAAW,GAAG,OAAO,EAC5B,OAAO,EAAE,MAAM,GACd,OAAO,CAKT;AAED,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,uBAAuB,EACvB,2BAA2B,EAC3B,mBAAmB,GACpB,CAAA"}
@@ -1,4 +1,37 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.getTokenSymbol = getTokenSymbol;
4
37
  exports.getTokenAddress = getTokenAddress;
@@ -10,59 +43,59 @@ exports.isTestnet = isTestnet;
10
43
  exports.isTokenAddressSupported = isTokenAddressSupported;
11
44
  exports.getDefaultAccountAccessList = getDefaultAccountAccessList;
12
45
  exports.resolveTokenAddress = resolveTokenAddress;
13
- const shared_configs_1 = require("@rhinestone/shared-configs");
46
+ const shared = __importStar(require("@rhinestone/shared-configs"));
14
47
  const viem_1 = require("viem");
15
48
  const chains_1 = require("viem/chains");
49
+ const error_1 = require("./error");
16
50
  function getSupportedChainIds() {
17
- return Object.keys(shared_configs_1.chains).map((chainId) => parseInt(chainId, 10));
51
+ const arr = (shared.chains ?? []);
52
+ return arr.map((c) => c.id);
18
53
  }
19
54
  function getChainEntry(chainId) {
20
- return shared_configs_1.chains[chainId.toString()];
55
+ const registry = shared.chainRegistry || shared.ChainRegistry;
56
+ return registry[chainId.toString()];
21
57
  }
22
58
  function getWethAddress(chain) {
23
59
  const chainEntry = getChainEntry(chain.id);
24
60
  if (!chainEntry) {
25
- throw new Error(`Unsupported chain ${chain.id}`);
61
+ throw new error_1.UnsupportedChainError(chain.id);
26
62
  }
27
63
  const wethToken = chainEntry.tokens.find((token) => token.symbol === 'WETH');
28
64
  if (!wethToken) {
29
- throw new Error(`WETH not found for chain ${chain.id}`);
65
+ throw new error_1.UnsupportedTokenError('WETH', chain.id);
30
66
  }
31
67
  return wethToken.address;
32
68
  }
33
69
  function getTokenSymbol(tokenAddress, chainId) {
34
70
  const chainEntry = getChainEntry(chainId);
35
71
  if (!chainEntry) {
36
- throw new Error(`Unsupported chain ${chainId}`);
72
+ throw new error_1.UnsupportedChainError(chainId);
37
73
  }
38
74
  const token = chainEntry.tokens.find((t) => t.address.toLowerCase() === tokenAddress.toLowerCase());
39
75
  if (!token) {
40
- throw new Error(`Unsupported token address ${tokenAddress} for chain ${chainId}`);
76
+ throw new error_1.UnsupportedTokenError(tokenAddress, chainId);
41
77
  }
42
78
  return token.symbol;
43
79
  }
44
- function getTokenAddress(tokenSymbol, chainId) {
45
- if (chainId === 137 && tokenSymbol === 'ETH') {
46
- throw new Error(`Chain ${chainId} does not allow for ETH to be used`);
47
- }
48
- if (tokenSymbol === 'ETH') {
49
- return viem_1.zeroAddress;
50
- }
51
- const chainEntry = getChainEntry(chainId);
52
- if (!chainEntry) {
53
- throw new Error(`Unsupported chain ${chainId}`);
54
- }
55
- const token = chainEntry.tokens.find((t) => t.symbol === tokenSymbol);
56
- if (!token) {
57
- throw new Error(`Unsupported token symbol ${tokenSymbol}`);
80
+ function getTokenAddress(token, chainId) {
81
+ if (!isChainIdSupported(chainId)) {
82
+ throw new error_1.UnsupportedChainError(chainId);
58
83
  }
59
- return token.address;
84
+ if (typeof token === 'string' && (0, viem_1.isAddress)(token))
85
+ return token;
86
+ const tokens = getSupportedTokens(chainId);
87
+ const found = tokens.find((x) => x.symbol === token);
88
+ if (!found)
89
+ throw new error_1.UnsupportedTokenError(token, chainId);
90
+ return found.address;
60
91
  }
61
92
  function isChainIdSupported(chainId) {
62
- return Object.keys(shared_configs_1.chains).includes(chainId.toString());
93
+ const arr = (shared.chains ?? []);
94
+ const chainIds = arr.map((c) => c.id);
95
+ return chainIds.includes(chainId);
63
96
  }
64
97
  function getChainById(chainId) {
65
- const chains = {
98
+ const map = {
66
99
  [chains_1.mainnet.id]: chains_1.mainnet,
67
100
  [chains_1.sepolia.id]: chains_1.sepolia,
68
101
  [chains_1.base.id]: chains_1.base,
@@ -73,11 +106,12 @@ function getChainById(chainId) {
73
106
  [chains_1.optimismSepolia.id]: chains_1.optimismSepolia,
74
107
  [chains_1.polygon.id]: chains_1.polygon,
75
108
  [chains_1.soneium.id]: chains_1.soneium,
109
+ [chains_1.sonic.id]: chains_1.sonic,
76
110
  };
77
111
  if (!isChainIdSupported(chainId)) {
78
- throw new Error(`Chain not supported: ${chainId}`);
112
+ throw new error_1.UnsupportedChainError(chainId);
79
113
  }
80
- return chains[chainId];
114
+ return map[chainId];
81
115
  }
82
116
  function isTestnet(chainId) {
83
117
  const chain = getChainById(chainId);
@@ -91,11 +125,15 @@ function isTokenAddressSupported(address, chainId) {
91
125
  return chainEntry.tokens.some((token) => token.address.toLowerCase() === address.toLowerCase());
92
126
  }
93
127
  function getSupportedTokens(chainId) {
94
- const chainEntry = getChainEntry(chainId);
95
- if (!chainEntry) {
96
- throw new Error(`Chain not supported: ${chainId}`);
128
+ if (!isChainIdSupported(chainId)) {
129
+ throw new error_1.UnsupportedChainError(chainId);
97
130
  }
98
- return chainEntry.tokens;
131
+ const entry = getChainEntry(chainId);
132
+ return entry.tokens.map((t) => ({
133
+ symbol: t.symbol,
134
+ address: t.address,
135
+ decimals: t.decimals,
136
+ }));
99
137
  }
100
138
  function getDefaultAccountAccessList(onTestnets) {
101
139
  const supportedChainIds = getSupportedChainIds();