@rhinestone/sdk 1.13.4 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/src/accounts/index.d.ts +5 -2
  2. package/dist/src/accounts/index.d.ts.map +1 -1
  3. package/dist/src/accounts/index.js +43 -25
  4. package/dist/src/accounts/safe.d.ts.map +1 -1
  5. package/dist/src/accounts/safe.js +2 -0
  6. package/dist/src/accounts/signing/common.d.ts +7 -1
  7. package/dist/src/accounts/signing/common.d.ts.map +1 -1
  8. package/dist/src/accounts/signing/common.js +90 -15
  9. package/dist/src/accounts/signing/quorum.d.ts +78 -0
  10. package/dist/src/accounts/signing/quorum.d.ts.map +1 -0
  11. package/dist/src/accounts/signing/quorum.js +41 -0
  12. package/dist/src/actions/smart-sessions.d.ts +2 -1
  13. package/dist/src/actions/smart-sessions.d.ts.map +1 -1
  14. package/dist/src/actions/smart-sessions.js +6 -0
  15. package/dist/src/execution/index.d.ts +2 -1
  16. package/dist/src/execution/index.d.ts.map +1 -1
  17. package/dist/src/execution/index.js +5 -4
  18. package/dist/src/execution/quoters.d.ts +7 -0
  19. package/dist/src/execution/quoters.d.ts.map +1 -0
  20. package/dist/src/execution/quoters.js +55 -0
  21. package/dist/src/execution/utils.d.ts +2 -2
  22. package/dist/src/execution/utils.d.ts.map +1 -1
  23. package/dist/src/execution/utils.js +70 -6
  24. package/dist/src/index.d.ts +3 -3
  25. package/dist/src/index.d.ts.map +1 -1
  26. package/dist/src/index.js +7 -0
  27. package/dist/src/modules/validators/core.d.ts.map +1 -1
  28. package/dist/src/modules/validators/core.js +5 -0
  29. package/dist/src/modules/validators/quorum.d.ts +56 -0
  30. package/dist/src/modules/validators/quorum.d.ts.map +1 -0
  31. package/dist/src/modules/validators/quorum.js +215 -0
  32. package/dist/src/modules/validators/smart-sessions/swap/abi.d.ts +3 -0
  33. package/dist/src/modules/validators/smart-sessions/swap/abi.d.ts.map +1 -0
  34. package/dist/src/modules/validators/smart-sessions/swap/abi.js +67 -0
  35. package/dist/src/modules/validators/smart-sessions/swap/fynd.d.ts +92 -0
  36. package/dist/src/modules/validators/smart-sessions/swap/fynd.d.ts.map +1 -0
  37. package/dist/src/modules/validators/smart-sessions/swap/fynd.js +106 -0
  38. package/dist/src/modules/validators/smart-sessions/swap/rhinestone.d.ts +147 -0
  39. package/dist/src/modules/validators/smart-sessions/swap/rhinestone.d.ts.map +1 -0
  40. package/dist/src/modules/validators/smart-sessions/swap/rhinestone.js +311 -0
  41. package/dist/src/modules/validators/smart-sessions/swap/rules.d.ts +73 -0
  42. package/dist/src/modules/validators/smart-sessions/swap/rules.d.ts.map +1 -0
  43. package/dist/src/modules/validators/smart-sessions/swap/rules.js +112 -0
  44. package/dist/src/modules/validators/smart-sessions/swap/scope.d.ts +18 -0
  45. package/dist/src/modules/validators/smart-sessions/swap/scope.d.ts.map +1 -0
  46. package/dist/src/modules/validators/smart-sessions/swap/scope.js +124 -0
  47. package/dist/src/modules/validators/smart-sessions/swap/zero-ex.d.ts +143 -0
  48. package/dist/src/modules/validators/smart-sessions/swap/zero-ex.d.ts.map +1 -0
  49. package/dist/src/modules/validators/smart-sessions/swap/zero-ex.js +170 -0
  50. package/dist/src/modules/validators/smart-sessions.d.ts +9 -3
  51. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
  52. package/dist/src/modules/validators/smart-sessions.js +229 -89
  53. package/dist/src/orchestrator/consts.d.ts +1 -1
  54. package/dist/src/orchestrator/consts.js +1 -1
  55. package/dist/src/orchestrator/index.d.ts +2 -2
  56. package/dist/src/orchestrator/index.d.ts.map +1 -1
  57. package/dist/src/orchestrator/types.d.ts +12 -1
  58. package/dist/src/orchestrator/types.d.ts.map +1 -1
  59. package/dist/src/types.d.ts +84 -4
  60. package/dist/src/types.d.ts.map +1 -1
  61. package/package.json +7 -2
@@ -35,6 +35,7 @@ declare function getModuleUninstallationCalls(config: RhinestoneConfig, module:
35
35
  declare function getAddress(config: RhinestoneConfig): `0x${string}`;
36
36
  declare function checkAddress(config: RhinestoneConfig): boolean;
37
37
  declare function getEip1271Signature(config: RhinestoneConfig, signers: InternalSignerSet | undefined, chain: Chain, validator: ValidatorConfig, hash: Hex, transformSignature?: (signature: Hex) => Hex): Promise<Hex>;
38
+ declare function packEip1271Signature(config: RhinestoneConfig, signature: Hex, validator: ValidatorConfig, transformSignature?: (signature: Hex) => Hex): Promise<Hex>;
38
39
  declare function getEmissarySignature(config: RhinestoneConfig, signers: InternalSignerSet | undefined, chain: Chain, hash: Hex, transformSignature?: (signature: Hex) => Hex): Promise<Hex>;
39
40
  declare function getTypedDataPackedSignature<typedData extends TypedData | Record<string, unknown> = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(config: RhinestoneConfig, signers: InternalSignerSet | undefined, chain: Chain, validator: ValidatorConfig, parameters: HashTypedDataParameters<typedData, primaryType>, configuredOwners?: OwnerSet, transformSignature?: (signature: Hex) => Hex): Promise<Hex>;
40
41
  declare function isDeployed(config: RhinestoneConfig, chain: Chain): Promise<boolean>;
@@ -44,9 +45,11 @@ declare function deploy(config: RhinestoneConfig, chain: Chain, params?: {
44
45
  }): Promise<boolean>;
45
46
  declare function setup(config: RhinestoneConfig, chain: Chain): Promise<boolean>;
46
47
  declare function toErc6492Signature(config: RhinestoneConfig, signature: Hex, chain: Chain): Promise<Hex>;
47
- declare function getSmartAccount(config: RhinestoneConfig, client: PublicClient, chain: Chain): Promise<import("viem/_types/account-abstraction").SmartAccount<import("viem/_types/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">> | undefined>;
48
+ declare function getSmartAccount(config: RhinestoneConfig, client: PublicClient, chain: Chain, selectedSigners?: SignerSet & {
49
+ type: 'owner';
50
+ }): Promise<import("viem/_types/account-abstraction").SmartAccount<import("viem/_types/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">> | undefined>;
48
51
  declare function getGuardianSmartAccount(config: RhinestoneConfig, client: PublicClient, chain: Chain, guardians: OwnerSet): Promise<import("viem/_types/account-abstraction").SmartAccount<import("viem/_types/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">> | undefined>;
49
52
  declare function is7702(config: RhinestoneConfig): boolean;
50
53
  declare function getAccountProvider(config: RhinestoneConfig): AccountProviderConfig;
51
- export { getEip712Domain, getModuleInstallationCalls, getValidatorInstallationCalls, getModuleUninstallationCalls, getAddress, checkAddress, getAccountProvider, getInitCode, getV0InitCode, signEip7702InitData, getEip7702InitCall, is7702, isDeployed, deploy, setup, toErc6492Signature, getSmartAccount, getGuardianSmartAccount, getEip1271Signature, getEmissarySignature, getTypedDataPackedSignature, isAccountError, AccountError, AccountConfigurationNotSupportedError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError, ExistingEip7702AccountsNotSupportedError, FactoryArgsNotAvailableError, ModuleInstallationNotSupportedError, OwnersFieldRequiredError, SigningNotSupportedForAccountError, SmartSessionsNotEnabledError, WalletClientNoConnectedAccountError, };
54
+ export { getEip712Domain, getModuleInstallationCalls, getValidatorInstallationCalls, getModuleUninstallationCalls, getAddress, checkAddress, getAccountProvider, getInitCode, getV0InitCode, signEip7702InitData, getEip7702InitCall, is7702, isDeployed, deploy, setup, toErc6492Signature, getSmartAccount, getGuardianSmartAccount, getEip1271Signature, packEip1271Signature, getEmissarySignature, getTypedDataPackedSignature, isAccountError, AccountError, AccountConfigurationNotSupportedError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError, ExistingEip7702AccountsNotSupportedError, FactoryArgsNotAvailableError, ModuleInstallationNotSupportedError, OwnersFieldRequiredError, SigningNotSupportedForAccountError, SmartSessionsNotEnabledError, WalletClientNoConnectedAccountError, };
52
55
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/index.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ exports.toErc6492Signature = toErc6492Signature;
20
20
  exports.getSmartAccount = getSmartAccount;
21
21
  exports.getGuardianSmartAccount = getGuardianSmartAccount;
22
22
  exports.getEip1271Signature = getEip1271Signature;
23
+ exports.packEip1271Signature = packEip1271Signature;
23
24
  exports.getEmissarySignature = getEmissarySignature;
24
25
  exports.getTypedDataPackedSignature = getTypedDataPackedSignature;
25
26
  const viem_1 = require("viem");
@@ -28,6 +29,7 @@ const modules_1 = require("../modules");
28
29
  const read_1 = require("../modules/read");
29
30
  const validators_1 = require("../modules/validators");
30
31
  const core_1 = require("../modules/validators/core");
32
+ const quorum_1 = require("../modules/validators/quorum");
31
33
  const error_1 = require("./error");
32
34
  Object.defineProperty(exports, "AccountConfigurationNotSupportedError", { enumerable: true, get: function () { return error_1.AccountConfigurationNotSupportedError; } });
33
35
  Object.defineProperty(exports, "AccountError", { enumerable: true, get: function () { return error_1.AccountError; } });
@@ -359,38 +361,40 @@ async function getEip1271Signature(config, signers, chain, validator, hash, tran
359
361
  throw new error_1.EoaSigningNotSupportedError('packed signatures');
360
362
  }
361
363
  signers = signers ?? (0, common_1.convertOwnerSetToSignerSet)(config.owners);
362
- const signFn = (hash) => (0, message_1.sign)(signers, config.owners, chain, address, hash, false);
363
364
  const account = getAccountProvider(config);
364
365
  const address = getAddress(config);
366
+ const accountHash = account.type === 'kernel' ? (0, kernel_1.wrapMessageHash)(hash, address) : hash;
367
+ const signableHash = config.owners?.type === 'quorum' &&
368
+ signers.type === 'owner' &&
369
+ signers.kind === 'quorum' &&
370
+ validator.address.toLowerCase() === config.owners.module.toLowerCase()
371
+ ? (0, quorum_1.getQuorumSignableHash)({
372
+ validator: config.owners.module,
373
+ chainId: chain.id,
374
+ account: address,
375
+ hash: accountHash,
376
+ })
377
+ : accountHash;
378
+ const signature = await (0, message_1.sign)(signers, config.owners, chain, address, signableHash, false);
379
+ return await packEip1271Signature(config, signature, validator, transformSignature);
380
+ }
381
+ async function packEip1271Signature(config, signature, validator, transformSignature = (signature) => signature) {
382
+ const account = getAccountProvider(config);
365
383
  switch (account.type) {
366
- case 'safe': {
367
- const signature = await signFn(hash);
384
+ case 'safe':
368
385
  return (0, safe_1.packSignature)(signature, validator, transformSignature);
369
- }
370
- case 'nexus': {
371
- const signature = await signFn(hash);
372
- const defaultValidatorAddress = (0, nexus_1.getDefaultValidatorAddress)(account.version);
373
- return (0, nexus_1.packSignature)(signature, validator, transformSignature, defaultValidatorAddress);
374
- }
375
- case 'passport': {
376
- const signature = await signFn(hash);
386
+ case 'nexus':
387
+ return (0, nexus_1.packSignature)(signature, validator, transformSignature, (0, nexus_1.getDefaultValidatorAddress)(account.version));
388
+ case 'passport':
377
389
  return (0, passport_1.packSignature)(signature, validator, transformSignature);
378
- }
379
- case 'kernel': {
380
- const signature = await signFn((0, kernel_1.wrapMessageHash)(hash, address));
390
+ case 'kernel':
381
391
  return (0, kernel_1.packSignature)(signature, validator, transformSignature);
382
- }
383
- case 'startale': {
384
- const signature = await signFn(hash);
392
+ case 'startale':
385
393
  return (0, startale_1.packSignature)(signature, validator, transformSignature);
386
- }
387
- case 'hca': {
388
- const signature = await signFn(hash);
394
+ case 'hca':
389
395
  return (0, hca_1.packSignature)(signature, validator, transformSignature);
390
- }
391
- default: {
396
+ default:
392
397
  throw new Error(`Unsupported account type: ${account.type}`);
393
- }
394
398
  }
395
399
  }
396
400
  // Signs and packs a signature to be used by the emissary validator
@@ -409,6 +413,20 @@ async function getTypedDataPackedSignature(config, signers, chain, validator, pa
409
413
  if (config.account?.type === 'eoa') {
410
414
  throw new error_1.EoaSigningNotSupportedError('packed signatures');
411
415
  }
416
+ if (configuredOwners.type === 'quorum') {
417
+ const address = getAddress(config);
418
+ const account = getAccountProvider(config);
419
+ const hash = (0, viem_1.hashTypedData)(parameters);
420
+ const accountHash = account.type === 'kernel' ? (0, kernel_1.wrapMessageHash)(hash, address) : hash;
421
+ const quorumSigners = signers ?? (0, common_1.convertOwnerSetToSignerSet)(configuredOwners);
422
+ const signature = await (0, message_1.sign)(quorumSigners, configuredOwners, chain, address, (0, quorum_1.getQuorumSignableHash)({
423
+ validator: configuredOwners.module,
424
+ chainId: chain.id,
425
+ account: address,
426
+ hash: accountHash,
427
+ }), false);
428
+ return await packEip1271Signature(config, signature, validator, transformSignature);
429
+ }
412
430
  const address = getAddress(config);
413
431
  signers = signers ?? (0, common_1.convertOwnerSetToSignerSet)(config.owners);
414
432
  const signFn = (parameters) => (0, typedData_1.sign)(signers, configuredOwners, chain, address, parameters);
@@ -641,7 +659,7 @@ async function toErc6492Signature(config, signature, chain) {
641
659
  magicBytes,
642
660
  ]);
643
661
  }
644
- async function getSmartAccount(config, client, chain) {
662
+ async function getSmartAccount(config, client, chain, selectedSigners) {
645
663
  // EOA accounts don't need smart account functionality
646
664
  if (config.account?.type === 'eoa') {
647
665
  throw new Error('getSmartAccount is not supported for EOA accounts');
@@ -652,7 +670,7 @@ async function getSmartAccount(config, client, chain) {
652
670
  const account = getAccountProvider(config);
653
671
  const address = getAddress(config);
654
672
  const ownerValidator = (0, validators_1.getOwnerValidator)(config);
655
- const signers = (0, common_1.convertOwnerSetToSignerSet)(config.owners);
673
+ const signers = selectedSigners ?? (0, common_1.convertOwnerSetToSignerSet)(config.owners);
656
674
  const signFn = (hash) => (0, message_1.sign)(signers, config.owners, chain, address, hash, true);
657
675
  switch (account.type) {
658
676
  case 'safe': {
@@ -1 +1 @@
1
- {"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../accounts/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,KAAK,EAOV,KAAK,GAAG,EAER,KAAK,YAAY,EAKlB,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAM/C,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAe,MAAM,UAAU,CAAA;AAM9E,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAoBhF,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;SAmGrD;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB;;;;;;EAgFvD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAoBlD;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,KAAK;;;;;;EAarE;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,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;AA0GD,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,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,EACZ,KAAK,KAAK,EAOV,KAAK,GAAG,EAER,KAAK,YAAY,EAKlB,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAM/C,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAe,MAAM,UAAU,CAAA;AAM9E,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAoBhF,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;SAmGrD;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB;;;;;;EAgFvD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAoBlD;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,KAAK;;;;;;EAarE;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,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;AA4GD,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,uBAAuB,GACxB,CAAA"}
@@ -329,6 +329,7 @@ function getOwners(config) {
329
329
  case 'ecdsa':
330
330
  case 'ens':
331
331
  return ownerSet.accounts.map((account) => account.address);
332
+ case 'quorum':
332
333
  case 'passkey':
333
334
  return [NO_SAFE_OWNER_ADDRESS];
334
335
  case 'multi-factor':
@@ -344,6 +345,7 @@ function getThreshold(config) {
344
345
  case 'ecdsa':
345
346
  case 'ens':
346
347
  return ownerSet.threshold ? BigInt(ownerSet.threshold) : 1n;
348
+ case 'quorum':
347
349
  case 'passkey':
348
350
  return 1n;
349
351
  case 'multi-factor':
@@ -27,8 +27,14 @@ declare function signWithSession(signers: ResolvedSessionSignerSet, chain: Chain
27
27
  declare function signWithGuardians<T>(signers: SignerSet & {
28
28
  type: 'guardians';
29
29
  }, params: T, signingFunctions: SigningFunctions<T>): Promise<Hex>;
30
+ declare function signQuorumHash(signers: SignerSet & {
31
+ type: 'owner';
32
+ kind: 'quorum';
33
+ }, configuredOwners: OwnerSet & {
34
+ type: 'quorum';
35
+ }, chain: Chain | undefined, hash: Hex): Promise<Hex>;
30
36
  declare function signWithOwners<T>(signers: SignerSet & {
31
37
  type: 'owner';
32
38
  }, configuredOwners: OwnerSet, chain: Chain, address: Address, params: T, signingFunctions: SigningFunctions<T>, isUserOpHash: boolean, signMain: (signers: SignerSet, configuredOwners: OwnerSet, chain: Chain, address: Address, params: T, isUserOpHash: boolean, statelessPasskey?: boolean) => Promise<Hex>, statelessPasskey?: boolean): Promise<Hex>;
33
- export { convertOwnerSetToSignerSet, signWithMultiFactorAuth, signWithSession, signWithGuardians, signWithOwners, type SigningFunctions, };
39
+ export { convertOwnerSetToSignerSet, signWithMultiFactorAuth, signQuorumHash, signWithSession, signWithGuardians, signWithOwners, type SigningFunctions, };
34
40
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../accounts/signing/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../accounts/signing/common.ts"],"names":[],"mappings":"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"}
@@ -2,12 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.convertOwnerSetToSignerSet = convertOwnerSetToSignerSet;
4
4
  exports.signWithMultiFactorAuth = signWithMultiFactorAuth;
5
+ exports.signQuorumHash = signQuorumHash;
5
6
  exports.signWithSession = signWithSession;
6
7
  exports.signWithGuardians = signWithGuardians;
7
8
  exports.signWithOwners = signWithOwners;
8
9
  const viem_1 = require("viem");
9
10
  const modules_1 = require("../../modules");
10
11
  const core_1 = require("../../modules/validators/core");
12
+ const quorum_1 = require("../../modules/validators/quorum");
11
13
  const smart_sessions_1 = require("../../modules/validators/smart-sessions");
12
14
  const passkeys_1 = require("./passkeys");
13
15
  function convertOwnerSetToSignerSet(owners) {
@@ -20,6 +22,13 @@ function convertOwnerSetToSignerSet(owners) {
20
22
  module: owners.module ?? core_1.OWNABLE_VALIDATOR_ADDRESS,
21
23
  };
22
24
  }
25
+ case 'quorum': {
26
+ return {
27
+ type: 'owner',
28
+ kind: 'quorum',
29
+ accounts: owners.owners.map(({ account }) => account),
30
+ };
31
+ }
23
32
  case 'ens': {
24
33
  return {
25
34
  type: 'owner',
@@ -135,32 +144,92 @@ async function signWithSession(signers, chain, address, hash, signMain) {
135
144
  : (0, viem_1.hashMessage)({
136
145
  raw: (0, viem_1.encodePacked)(['bytes32', 'bytes32'], [(0, viem_1.padHex)(address), hash]),
137
146
  });
138
- const validatorSignature = await signMain(sessionSigners, signers.session.owners, chain, address, signedHash, false);
147
+ const validatorHash = signers.session.owners.type === 'quorum'
148
+ ? (0, quorum_1.getQuorumSignableHash)({
149
+ validator: signers.session.owners.module,
150
+ chainId: chain.id,
151
+ account: address,
152
+ hash: signedHash,
153
+ })
154
+ : signedHash;
155
+ const validatorSignature = await signMain(sessionSigners, signers.session.owners, chain, address, validatorHash, false);
139
156
  return (0, smart_sessions_1.packSignature)(signers, validatorSignature);
140
157
  }
141
158
  async function signWithGuardians(signers, params, signingFunctions) {
142
159
  const signatures = await Promise.all(signers.guardians.map((account) => signingFunctions.signEcdsa(account, params, false)));
143
160
  return (0, viem_1.concat)(signatures);
144
161
  }
162
+ async function selectAccountChain(account, chain) {
163
+ const transport = account.client?.transport;
164
+ if (!transport)
165
+ return;
166
+ const walletClient = (0, viem_1.createWalletClient)({
167
+ chain,
168
+ transport: (0, viem_1.custom)(transport),
169
+ account,
170
+ });
171
+ await walletClient.switchChain({ id: chain.id });
172
+ }
173
+ async function signQuorumHash(signers, configuredOwners, chain, hash) {
174
+ (0, quorum_1.getQuorumValidator)(configuredOwners);
175
+ const configured = new Map(configuredOwners.owners.map(({ account, weight }) => [
176
+ account.address.toLowerCase(),
177
+ weight,
178
+ ]));
179
+ const selected = new Set();
180
+ let selectedWeight = 0n;
181
+ for (const account of signers.accounts) {
182
+ const ownerId = account.address.toLowerCase();
183
+ const weight = configured.get(ownerId);
184
+ if (weight === undefined) {
185
+ throw new Error(`Unknown validator owner ${ownerId}`);
186
+ }
187
+ if (selected.has(ownerId)) {
188
+ throw new Error(`Duplicate validator owner ${ownerId}`);
189
+ }
190
+ selected.add(ownerId);
191
+ selectedWeight += weight;
192
+ }
193
+ if (selectedWeight < configuredOwners.thresholdWeight) {
194
+ throw new Error(`Insufficient validator contribution weight: required ${configuredOwners.thresholdWeight}, received ${selectedWeight}`);
195
+ }
196
+ const signatures = await Promise.all(signers.accounts.map(async (account) => {
197
+ if (chain)
198
+ await selectAccountChain(account, chain);
199
+ if (!account.sign) {
200
+ throw new Error('Account does not support raw hash signing');
201
+ }
202
+ return {
203
+ ownerId: account.address.toLowerCase(),
204
+ signature: normalizeRecovery(await account.sign({ hash })),
205
+ };
206
+ }));
207
+ return (0, quorum_1.encodeQuorumOwnerSignatures)({
208
+ owners: (0, quorum_1.getQuorumConfigOwners)(configuredOwners),
209
+ thresholdWeight: configuredOwners.thresholdWeight,
210
+ signatures,
211
+ });
212
+ }
145
213
  async function signWithOwners(signers, configuredOwners, chain, address, params, signingFunctions, isUserOpHash, signMain, statelessPasskey = false) {
146
214
  async function signEcdsWithChain(account, params, updateV, chain) {
147
- const client = account.client;
148
- const transport = client?.transport;
149
- if (transport) {
150
- // Switch chain
151
- const walletClient = (0, viem_1.createWalletClient)({
152
- chain,
153
- transport: (0, viem_1.custom)(transport),
154
- account,
155
- });
156
- await walletClient.switchChain({
157
- id: chain.id,
158
- });
159
- }
160
- // Sign
215
+ await selectAccountChain(account, chain);
161
216
  return signingFunctions.signEcdsa(account, params, updateV);
162
217
  }
218
+ if (configuredOwners.type === 'quorum' && signers.kind !== 'quorum') {
219
+ throw new Error('Quorum owners require quorum signers');
220
+ }
221
+ if (configuredOwners.type !== 'quorum' && signers.kind === 'quorum') {
222
+ throw new Error('Quorum signers require quorum owners');
223
+ }
163
224
  switch (signers.kind) {
225
+ case 'quorum': {
226
+ if (configuredOwners.type !== 'quorum' || typeof params !== 'string') {
227
+ throw new Error('Quorum signing requires a raw hash');
228
+ }
229
+ return (0, quorum_1.encodeQuorumErc1271Signature)({
230
+ signatures: await signQuorumHash(signers, configuredOwners, chain, params),
231
+ });
232
+ }
164
233
  case 'ecdsa': {
165
234
  // Ownable validator uses `v` value to determine which validation mode to use
166
235
  // ENS validator (based on Ownable) also uses the same signature format
@@ -213,3 +282,9 @@ async function signWithOwners(signers, configuredOwners, chain, address, params,
213
282
  }
214
283
  }
215
284
  }
285
+ function normalizeRecovery(signature) {
286
+ const bytes = (0, viem_1.hexToBytes)(signature);
287
+ if (bytes.length !== 65 || bytes[64] >= 27)
288
+ return signature;
289
+ return (0, viem_1.concat)([signature.slice(0, -2), (0, viem_1.toHex)(bytes[64] + 27)]);
290
+ }
@@ -0,0 +1,78 @@
1
+ import type { Address, Hex } from 'viem';
2
+ import { type QuorumMerkleOperation } from '../../modules/validators/quorum';
3
+ import type { AccountType } from '../../types';
4
+ /** One Quorum Signer owner used to assemble a weighted signature. */
5
+ export interface QuorumSigningOwner {
6
+ /** Stable owner identifier used to associate an independently collected signature. */
7
+ ownerId: string;
8
+ /** EOA or EIP-1271 signer address configured in the Quorum validator. */
9
+ signer: Address;
10
+ /** Weight contributed when this owner's signature validates. */
11
+ weight: bigint;
12
+ }
13
+ /** One independently collected signature over a Quorum signing digest. */
14
+ export interface QuorumOwnerSignature {
15
+ /** Identifier matching one configured {@link QuorumSigningOwner}. */
16
+ ownerId: string;
17
+ /** Raw ECDSA or EIP-1271 signature bytes. */
18
+ signature: Hex;
19
+ }
20
+ /** Account-bound operation included in a Quorum Merkle signing batch. */
21
+ export interface QuorumMerkleSigningOperation {
22
+ /** Smart account that will validate this operation. */
23
+ account: Address;
24
+ /** Validator-specific operation digest placed in the account-bound Merkle leaf. */
25
+ digest: Hex;
26
+ }
27
+ /** Merkle root and one proof-bearing result for every input operation. */
28
+ export interface QuorumMerkleSigningTree {
29
+ /** Shared root signed by the owner quorum. */
30
+ root: Hex;
31
+ /** Proofs in the same order as the input operations. */
32
+ operations: readonly QuorumMerkleOperation[];
33
+ }
34
+ /** Bind an ERC-1271 application hash to one Quorum validator, chain, and account. */
35
+ export declare function getQuorumErc1271SignableHash(input: {
36
+ /** Deployed Quorum Signer validator address. */
37
+ validator: Address;
38
+ /** Chain on which ERC-1271 validation will execute. */
39
+ chainId: number;
40
+ /** Smart account that will call the validator. */
41
+ account: Address;
42
+ /** Application hash passed to the smart account's ERC-1271 entry point. */
43
+ hash: Hex;
44
+ /** Smart account implementation, when it transforms ERC-1271 hashes. */
45
+ accountType?: AccountType;
46
+ }): Hex;
47
+ /** Build account-bound Merkle leaves and proofs for a Quorum signing batch. */
48
+ export declare function buildQuorumSigningTree(operations: readonly QuorumMerkleSigningOperation[]): QuorumMerkleSigningTree;
49
+ /** Derive the chain-agnostic EIP-712 digest owners sign for a Quorum Merkle root. */
50
+ export declare function getQuorumSigningTreeHash(input: {
51
+ /** Deployed Quorum Signer validator address shared by the target chains. */
52
+ validator: Address;
53
+ /** Root returned by {@link buildQuorumSigningTree}. */
54
+ root: Hex;
55
+ }): Hex;
56
+ /** Pack weighted owner signatures without selecting a regular or Merkle envelope. */
57
+ export declare function encodeQuorumOwnerSignatures(input: {
58
+ /** Complete configured owner policy, including weights. */
59
+ owners: readonly QuorumSigningOwner[];
60
+ /** Minimum aggregate weight required by the validator. */
61
+ thresholdWeight: bigint;
62
+ /** Independently collected signatures over one common Quorum digest. */
63
+ signatures: readonly QuorumOwnerSignature[];
64
+ }): Hex;
65
+ /** Pack a regular ERC-1271 Quorum signature for one operation digest. */
66
+ export declare function encodeQuorumErc1271Signature(input: {
67
+ /** Weighted owner entries returned by {@link encodeQuorumOwnerSignatures}. */
68
+ signatures: Hex;
69
+ }): Hex;
70
+ /** Pack one operation's Merkle proof and shared weighted owner signatures. */
71
+ export declare function encodeQuorumMerkleSignature(input: {
72
+ /** Operation result returned by {@link buildQuorumSigningTree}. */
73
+ operation: QuorumMerkleOperation;
74
+ /** Weighted owner entries returned by {@link encodeQuorumOwnerSignatures}. */
75
+ signatures: Hex;
76
+ }): Hex;
77
+ export type { QuorumMerkleOperation };
78
+ //# sourceMappingURL=quorum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quorum.d.ts","sourceRoot":"","sources":["../../../../accounts/signing/quorum.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,EAOL,KAAK,qBAAqB,EAC3B,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAG9C,qEAAqE;AACrE,MAAM,WAAW,kBAAkB;IACjC,sFAAsF;IACtF,OAAO,EAAE,MAAM,CAAA;IACf,yEAAyE;IACzE,MAAM,EAAE,OAAO,CAAA;IACf,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAA;CACf;AAED,0EAA0E;AAC1E,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAA;IACf,6CAA6C;IAC7C,SAAS,EAAE,GAAG,CAAA;CACf;AAED,yEAAyE;AACzE,MAAM,WAAW,4BAA4B;IAC3C,uDAAuD;IACvD,OAAO,EAAE,OAAO,CAAA;IAChB,mFAAmF;IACnF,MAAM,EAAE,GAAG,CAAA;CACZ;AAED,0EAA0E;AAC1E,MAAM,WAAW,uBAAuB;IACtC,8CAA8C;IAC9C,IAAI,EAAE,GAAG,CAAA;IACT,wDAAwD;IACxD,UAAU,EAAE,SAAS,qBAAqB,EAAE,CAAA;CAC7C;AAED,qFAAqF;AACrF,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAA;IAClB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAA;IACf,kDAAkD;IAClD,OAAO,EAAE,OAAO,CAAA;IAChB,2EAA2E;IAC3E,IAAI,EAAE,GAAG,CAAA;IACT,wEAAwE;IACxE,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,GAAG,GAAG,CAUN;AAED,+EAA+E;AAC/E,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,SAAS,4BAA4B,EAAE,GAClD,uBAAuB,CAEzB;AAED,qFAAqF;AACrF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAA;IAClB,uDAAuD;IACvD,IAAI,EAAE,GAAG,CAAA;CACV,GAAG,GAAG,CAEN;AAED,qFAAqF;AACrF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,2DAA2D;IAC3D,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAA;IACrC,0DAA0D;IAC1D,eAAe,EAAE,MAAM,CAAA;IACvB,wEAAwE;IACxE,UAAU,EAAE,SAAS,oBAAoB,EAAE,CAAA;CAC5C,GAAG,GAAG,CAEN;AAED,yEAAyE;AACzE,wBAAgB,4BAA4B,CAAC,KAAK,EAAE;IAClD,8EAA8E;IAC9E,UAAU,EAAE,GAAG,CAAA;CAChB,GAAG,GAAG,CAEN;AAED,8EAA8E;AAC9E,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,mEAAmE;IACnE,SAAS,EAAE,qBAAqB,CAAA;IAChC,8EAA8E;IAC9E,UAAU,EAAE,GAAG,CAAA;CAChB,GAAG,GAAG,CAEN;AAED,YAAY,EAAE,qBAAqB,EAAE,CAAA"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getQuorumErc1271SignableHash = getQuorumErc1271SignableHash;
4
+ exports.buildQuorumSigningTree = buildQuorumSigningTree;
5
+ exports.getQuorumSigningTreeHash = getQuorumSigningTreeHash;
6
+ exports.encodeQuorumOwnerSignatures = encodeQuorumOwnerSignatures;
7
+ exports.encodeQuorumErc1271Signature = encodeQuorumErc1271Signature;
8
+ exports.encodeQuorumMerkleSignature = encodeQuorumMerkleSignature;
9
+ const quorum_1 = require("../../modules/validators/quorum");
10
+ const kernel_1 = require("../kernel");
11
+ /** Bind an ERC-1271 application hash to one Quorum validator, chain, and account. */
12
+ function getQuorumErc1271SignableHash(input) {
13
+ return (0, quorum_1.getQuorumSignableHash)({
14
+ validator: input.validator,
15
+ chainId: input.chainId,
16
+ account: input.account,
17
+ hash: input.accountType === 'kernel'
18
+ ? (0, kernel_1.wrapMessageHash)(input.hash, input.account)
19
+ : input.hash,
20
+ });
21
+ }
22
+ /** Build account-bound Merkle leaves and proofs for a Quorum signing batch. */
23
+ function buildQuorumSigningTree(operations) {
24
+ return (0, quorum_1.buildQuorumMerkleTree)(operations);
25
+ }
26
+ /** Derive the chain-agnostic EIP-712 digest owners sign for a Quorum Merkle root. */
27
+ function getQuorumSigningTreeHash(input) {
28
+ return (0, quorum_1.getQuorumMerkleRootSignableHash)(input);
29
+ }
30
+ /** Pack weighted owner signatures without selecting a regular or Merkle envelope. */
31
+ function encodeQuorumOwnerSignatures(input) {
32
+ return (0, quorum_1.encodeQuorumOwnerSignatures)(input);
33
+ }
34
+ /** Pack a regular ERC-1271 Quorum signature for one operation digest. */
35
+ function encodeQuorumErc1271Signature(input) {
36
+ return (0, quorum_1.encodeQuorumErc1271Signature)(input);
37
+ }
38
+ /** Pack one operation's Merkle proof and shared weighted owner signatures. */
39
+ function encodeQuorumMerkleSignature(input) {
40
+ return (0, quorum_1.encodeQuorumMerkleSignature)(input);
41
+ }
@@ -1,4 +1,5 @@
1
1
  import type { Hex } from 'viem';
2
+ import { fynd, resolveZeroExSettler, rhinestoneSwap, toSession, zeroEx } from '../modules/validators/smart-sessions';
2
3
  import type { LazyCallInput, SessionInput } from '../types';
3
4
  /**
4
5
  * Enable smart sessions
@@ -19,5 +20,5 @@ declare function experimental_enableSession(session: SessionInput, enableSession
19
20
  chainId: bigint;
20
21
  sessionDigest: Hex;
21
22
  }[], sessionToEnableIndex: number): LazyCallInput;
22
- export { experimental_disable, experimental_enable, experimental_enableSession };
23
+ export { experimental_disable, experimental_enable, experimental_enableSession, fynd, resolveZeroExSettler, rhinestoneSwap, toSession, zeroEx, };
23
24
  //# sourceMappingURL=smart-sessions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../actions/smart-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAS/B,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE3D;;;GAGG;AACH,iBAAS,mBAAmB,IAAI,aAAa,CAU5C;AAED;;;GAGG;AACH,iBAAS,oBAAoB,IAAI,aAAa,CAU7C;AAED;;;;GAIG;AACH,iBAAS,0BAA0B,CACjC,OAAO,EAAE,YAAY,EACrB,sBAAsB,EAAE,GAAG,EAC3B,iBAAiB,EAAE;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,GAAG,CAAA;CACnB,EAAE,EACH,oBAAoB,EAAE,MAAM,GAC3B,aAAa,CAgBf;AAED,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,CAAA"}
1
+ {"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../actions/smart-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAK/B,OAAO,EACL,IAAI,EAGJ,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,MAAM,EACP,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE3D;;;GAGG;AACH,iBAAS,mBAAmB,IAAI,aAAa,CAU5C;AAED;;;GAGG;AACH,iBAAS,oBAAoB,IAAI,aAAa,CAU7C;AAED;;;;GAIG;AACH,iBAAS,0BAA0B,CACjC,OAAO,EAAE,YAAY,EACrB,sBAAsB,EAAE,GAAG,EAC3B,iBAAiB,EAAE;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,GAAG,CAAA;CACnB,EAAE,EACH,oBAAoB,EAAE,MAAM,GAC3B,aAAa,CAgBf;AAED,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,IAAI,EACJ,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,MAAM,GACP,CAAA"}
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zeroEx = exports.toSession = exports.rhinestoneSwap = exports.resolveZeroExSettler = exports.fynd = void 0;
3
4
  exports.experimental_disable = experimental_disable;
4
5
  exports.experimental_enable = experimental_enable;
5
6
  exports.experimental_enableSession = experimental_enableSession;
6
7
  const accounts_1 = require("../accounts");
7
8
  const smart_sessions_1 = require("../modules/validators/smart-sessions");
9
+ Object.defineProperty(exports, "fynd", { enumerable: true, get: function () { return smart_sessions_1.fynd; } });
10
+ Object.defineProperty(exports, "resolveZeroExSettler", { enumerable: true, get: function () { return smart_sessions_1.resolveZeroExSettler; } });
11
+ Object.defineProperty(exports, "rhinestoneSwap", { enumerable: true, get: function () { return smart_sessions_1.rhinestoneSwap; } });
12
+ Object.defineProperty(exports, "toSession", { enumerable: true, get: function () { return smart_sessions_1.toSession; } });
13
+ Object.defineProperty(exports, "zeroEx", { enumerable: true, get: function () { return smart_sessions_1.zeroEx; } });
8
14
  /**
9
15
  * Enable smart sessions
10
16
  * @returns Calls to enable smart sessions
@@ -2,7 +2,7 @@ import { type Address, type Chain, type Hex } from 'viem';
2
2
  import type { UserOperationReceipt } from 'viem/_types/account-abstraction';
3
3
  import { type AuthProvider } from '../auth/provider';
4
4
  import { type IntentOpStatus, type SplitIntentsInput } from '../orchestrator';
5
- import type { AppFeeRate, ProtocolFeeRate, SettlementLayer } from '../orchestrator/types';
5
+ import type { AppFeeRate, ProtocolFeeRate, SettlementLayer, SwapQuoterFilter } from '../orchestrator/types';
6
6
  import type { CalldataInput, CallInput, RhinestoneAccountConfig, RhinestoneConfig, SignerSet, SourceAssetInput, Sponsorship, TokenRequest, TokenSymbol, Transaction, UserOperationTransaction } from '../types';
7
7
  import { ExecutionError, IntentFailedError, IntentStatusTimeoutError, InvalidSourceCallsError, isExecutionError, OrderPathRequiredForIntentsError, SessionChainRequiredError, SignerNotSupportedError } from './error';
8
8
  import type { TransactionResult, UserOperationResult } from './utils';
@@ -28,6 +28,7 @@ declare function sendTransactionInternal(config: RhinestoneConfig, sourceChains:
28
28
  sponsored?: Sponsorship;
29
29
  eip7702InitSignature?: Hex;
30
30
  settlementLayers?: SettlementLayer[];
31
+ quoters?: SwapQuoterFilter;
31
32
  sourceAssets?: SourceAssetInput;
32
33
  lockFunds?: boolean;
33
34
  feeAsset?: Address | TokenSymbol;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../execution/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../execution/index.ts"],"names":[],"mappings":"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"}
@@ -35,7 +35,7 @@ const POLL_ERROR_BACKOFF_MAX_MS = 10000;
35
35
  async function sendTransaction(config, transaction) {
36
36
  const sourceChains = 'chain' in transaction ? [transaction.chain] : transaction.sourceChains;
37
37
  const targetChain = 'chain' in transaction ? transaction.chain : transaction.targetChain;
38
- const { calls, sourceCalls, gasLimit, tokenRequests, recipient, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, appFees, customDeadline, protocolFees, } = transaction;
38
+ const { calls, sourceCalls, gasLimit, tokenRequests, recipient, signers, sponsored, eip7702InitSignature, settlementLayers, quoters, sourceAssets, feeAsset, appFees, customDeadline, protocolFees, } = transaction;
39
39
  const isUserOpSigner = signers?.type === 'guardians';
40
40
  if (isUserOpSigner) {
41
41
  throw new error_1.SignerNotSupportedError();
@@ -50,6 +50,7 @@ async function sendTransaction(config, transaction) {
50
50
  sponsored,
51
51
  eip7702InitSignature,
52
52
  settlementLayers,
53
+ quoters,
53
54
  sourceAssets,
54
55
  feeAsset,
55
56
  appFees,
@@ -71,7 +72,7 @@ async function sendTransactionInternal(config, sourceChains, targetChain, option
71
72
  throw new error_1.SignerNotSupportedError();
72
73
  }
73
74
  else {
74
- return await sendTransactionAsIntent(config, sourceChains, targetChain, resolvedCalls, options.gasLimit, tokenRequests, options.recipient, options.signers, options.sponsored, options.eip7702InitSignature, options.settlementLayers, options.sourceAssets, options.feeAsset, options.lockFunds, options.sourceCalls, options.appFees, options.customDeadline, options.protocolFees);
75
+ return await sendTransactionAsIntent(config, sourceChains, targetChain, resolvedCalls, options.gasLimit, tokenRequests, options.recipient, options.signers, options.sponsored, options.eip7702InitSignature, options.settlementLayers, options.sourceAssets, options.feeAsset, options.lockFunds, options.sourceCalls, options.appFees, options.customDeadline, options.protocolFees, options.quoters);
75
76
  }
76
77
  }
77
78
  async function sendUserOperationInternal(config, chain, callInputs, signers) {
@@ -97,8 +98,8 @@ async function sendUserOperationInternal(config, chain, callInputs, signers) {
97
98
  chain: chain.id,
98
99
  };
99
100
  }
100
- async function sendTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, sourceCalls, appFees, customDeadline, protocolFees) {
101
- const prepared = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, sponsored ?? false, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, undefined, undefined, signers, sourceCalls, appFees, customDeadline, protocolFees);
101
+ async function sendTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, sourceCalls, appFees, customDeadline, protocolFees, quoters) {
102
+ const prepared = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, sponsored ?? false, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, undefined, undefined, signers, sourceCalls, appFees, customDeadline, protocolFees, quoters);
102
103
  if (!prepared) {
103
104
  throw new error_1.OrderPathRequiredForIntentsError();
104
105
  }
@@ -0,0 +1,7 @@
1
+ import type { SwapQuoter, SwapQuoterFilter } from '../orchestrator/types';
2
+ import type { Session, SignerSet } from '../types';
3
+ declare function venuesForSession(session: Session | undefined): Set<SwapQuoter> | null;
4
+ declare function quoterPinFromSession(signers: SignerSet | undefined, chainIds: readonly number[]): SwapQuoterFilter | undefined;
5
+ declare function narrowQuoterPin(derived: SwapQuoterFilter | undefined, explicit: SwapQuoterFilter | undefined): SwapQuoterFilter | undefined;
6
+ export { narrowQuoterPin, quoterPinFromSession, venuesForSession };
7
+ //# sourceMappingURL=quoters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quoters.d.ts","sourceRoot":"","sources":["../../../execution/quoters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAElD,iBAAS,gBAAgB,CACvB,OAAO,EAAE,OAAO,GAAG,SAAS,GAC3B,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAYxB;AAED,iBAAS,oBAAoB,CAC3B,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,gBAAgB,GAAG,SAAS,CAuB9B;AAED,iBAAS,eAAe,CACtB,OAAO,EAAE,gBAAgB,GAAG,SAAS,EACrC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,GACrC,gBAAgB,GAAG,SAAS,CAU9B;AAED,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,CAAA"}