@charterlabs/rhinestone-sdk 0.1.6 → 0.1.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,KAAK,EAKV,KAAK,GAAG,EACR,KAAK,YAAY,EAKlB,MAAM,MAAM,CAAA;AAQb,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAS/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EACV,qBAAqB,EACrB,IAAI,EACJ,QAAQ,EAER,uBAAuB,EACvB,OAAO,EACP,SAAS,EACV,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,YAAY,EACZ,8BAA8B,EAC9B,kCAAkC,EAClC,wCAAwC,EACxC,4BAA4B,EAC5B,cAAc,EACd,kCAAkC,EAClC,qCAAqC,EACrC,4BAA4B,EAC7B,MAAM,SAAS,CAAA;AAuChB,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAoB/D,iBAAS,WAAW,CAAC,MAAM,EAAE,uBAAuB;;;cAanD;AAED,iBAAe,mBAAmB,CAAC,MAAM,EAAE,uBAAuB,0BAgBjE;AAED,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,uBAAuB,EAC/B,SAAS,EAAE,GAAG;;;GAaf;AAED,iBAAS,0BAA0B,CACjC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,MAAM,GACb,IAAI,EAAE,CA2BR;AAED,iBAAS,4BAA4B,CACnC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,MAAM,GACb,IAAI,EAAE,CA6BR;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAsBlD;AAGD,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,GAAG,EACT,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAoCvE;AAED,iBAAe,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,oBAiBtE;AAED,iBAAe,MAAM,CACnB,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE,OAAO,iBAMlB;AAwBD,iBAAe,eAAe,CAC5B,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,sJA6Cb;AAED,iBAAe,2BAA2B,CACxC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,iBAAiB,GAAG,IAAI,sJAyDrC;AAED,iBAAe,uBAAuB,CACpC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,QAAQ,sJAqDpB;AAwHD,iBAAS,kBAAkB,CACzB,MAAM,EAAE,uBAAuB,GAC9B,qBAAqB,CAOvB;AA6CD,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,MAAM,EACN,eAAe,EACf,2BAA2B,EAC3B,uBAAuB,EACvB,kBAAkB,EAElB,cAAc,EACd,YAAY,EACZ,8BAA8B,EAC9B,wCAAwC,EACxC,4BAA4B,EAC5B,4BAA4B,EAC5B,kCAAkC,EAClC,qCAAqC,EACrC,kCAAkC,GACnC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,KAAK,EAKV,KAAK,GAAG,EACR,KAAK,YAAY,EAKlB,MAAM,MAAM,CAAA;AAQb,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAS/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EACV,qBAAqB,EACrB,IAAI,EACJ,QAAQ,EAGR,uBAAuB,EACvB,OAAO,EACP,SAAS,EACV,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,YAAY,EACZ,8BAA8B,EAC9B,kCAAkC,EAClC,wCAAwC,EACxC,4BAA4B,EAC5B,cAAc,EACd,kCAAkC,EAClC,qCAAqC,EACrC,4BAA4B,EAC7B,MAAM,SAAS,CAAA;AAuChB,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAoB/D,iBAAS,WAAW,CAAC,MAAM,EAAE,uBAAuB;;;cAanD;AAED,iBAAe,mBAAmB,CAAC,MAAM,EAAE,uBAAuB,0BAgBjE;AAED,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,uBAAuB,EAC/B,SAAS,EAAE,GAAG;;;GAaf;AAED,iBAAS,0BAA0B,CACjC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,MAAM,GACb,IAAI,EAAE,CA2BR;AAED,iBAAS,4BAA4B,CACnC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,MAAM,GACb,IAAI,EAAE,CA6BR;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAsBlD;AAGD,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,eAAe,EAC1B,IAAI,EAAE,GAAG,EACT,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAoCvE;AAED,iBAAe,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,oBAiBtE;AAED,iBAAe,MAAM,CACnB,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE,OAAO,iBAMlB;AAwBD,iBAAe,eAAe,CAC5B,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,sJA6Cb;AAED,iBAAe,2BAA2B,CACxC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,iBAAiB,GAAG,IAAI,sJAyDrC;AAED,iBAAe,uBAAuB,CACpC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,QAAQ,sJAqDpB;AAwHD,iBAAS,kBAAkB,CACzB,MAAM,EAAE,uBAAuB,GAC9B,qBAAqB,CAOvB;AAuCD,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,MAAM,EACN,eAAe,EACf,2BAA2B,EAC3B,uBAAuB,EACvB,kBAAkB,EAElB,cAAc,EACd,YAAY,EACZ,8BAA8B,EAC9B,wCAAwC,EACxC,4BAA4B,EAC5B,4BAA4B,EAC5B,kCAAkC,EAClC,qCAAqC,EACrC,kCAAkC,GACnC,CAAA"}
@@ -332,7 +332,7 @@ async function sign(signers, chain, hash) {
332
332
  const webAuthnConfig = {
333
333
  type: 'passkey',
334
334
  account: signers.account,
335
- credentialIds: [] // This should be passed from config
335
+ credentialIds: signers.credentialIds
336
336
  };
337
337
  return await signPasskey(webAuthnConfig, chain, hash);
338
338
  }
@@ -344,7 +344,7 @@ async function sign(signers, chain, hash) {
344
344
  // Convert to proper validator format
345
345
  const validatorConfig = validator.type === 'ecdsa'
346
346
  ? { type: 'ecdsa', accounts: validator.accounts, threshold: 1 }
347
- : { type: 'passkey', account: validator.account, credentialIds: [] };
347
+ : { type: 'passkey', account: validator.account, credentialIds: validator.credentialIds };
348
348
  const validatorSigners = convertOwnerSetToSignerSet(validatorConfig);
349
349
  return sign(validatorSigners, chain, hash);
350
350
  }));
@@ -366,13 +366,11 @@ async function sign(signers, chain, hash) {
366
366
  // Convert to proper validator format for getValidator
367
367
  const validatorConfig = validator.type === 'ecdsa'
368
368
  ? { type: 'ecdsa', accounts: validator.accounts, threshold: 1 }
369
- : { type: 'passkey', account: validator.account, credentialIds: [] };
369
+ : { type: 'passkey', account: validator.account, credentialIds: validator.credentialIds };
370
370
  const validatorModule = (0, core_1.getValidator)(validatorConfig);
371
371
  return {
372
372
  packedValidatorAndId: (0, viem_1.concat)([
373
- (0, viem_1.pad)((0, viem_1.toHex)(validator.id), {
374
- size: 12,
375
- }),
373
+ (0, viem_1.pad)((0, viem_1.toHex)(validator.id), { size: 12 }),
376
374
  validatorModule.address,
377
375
  ]),
378
376
  data: signatures[index],
@@ -435,32 +433,27 @@ function convertOwnerSetToSignerSet(owners) {
435
433
  };
436
434
  }
437
435
  case 'passkey': {
436
+ const { account, credentialIds } = owners;
438
437
  return {
439
438
  type: 'owner',
440
439
  kind: 'passkey',
441
- account: owners.account,
440
+ account,
441
+ credentialIds,
442
442
  };
443
443
  }
444
444
  case 'multi-factor': {
445
+ // Filter out null entries and propagate credentialIds
446
+ const mf = owners;
447
+ const validValidators = mf.validators.filter((v) => v !== null);
445
448
  return {
446
449
  type: 'owner',
447
450
  kind: 'multi-factor',
448
- validators: owners.validators.map((validator, index) => {
449
- switch (validator.type) {
450
- case 'ecdsa': {
451
- return {
452
- type: 'ecdsa',
453
- id: index,
454
- accounts: validator.accounts,
455
- };
456
- }
457
- case 'passkey': {
458
- return {
459
- type: 'passkey',
460
- id: index,
461
- account: validator.account,
462
- };
463
- }
451
+ validators: validValidators.map((validator, index) => {
452
+ if (validator.type === 'ecdsa') {
453
+ return { type: 'ecdsa', id: index, accounts: validator.accounts };
454
+ }
455
+ else {
456
+ return { type: 'passkey', id: index, account: validator.account, credentialIds: validator.credentialIds };
464
457
  }
465
458
  }),
466
459
  };
@@ -3,6 +3,7 @@ import type { UserOperationReceipt } from 'viem/account-abstraction';
3
3
  import { AccountError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, ExistingEip7702AccountsNotSupportedError, FactoryArgsNotAvailableError, isAccountError, SigningNotSupportedForAccountError, SignMessageNotSupportedByAccountError, SmartSessionsNotEnabledError } from './accounts';
4
4
  import { createTransport } from './accounts/utils';
5
5
  import { addOwner, changeMultiFactorThreshold, changeThreshold, disableEcdsa, disableMultiFactor, disablePasskeys, enableEcdsa, enableMultiFactor, enablePasskeys, encodeSmartSessionSignature, recover, removeOwner, removeSubValidator, setSubValidator, setUpRecovery } from './actions';
6
+ import { addCredential, generateCredentialId, getCredentialIds, getCredentialInfo, getCredentials, getThreshold, hasCredential, hasCredentialById, removeCredential, setThreshold, WEBAUTHN_VALIDATOR_ABI } from './modules/validators';
6
7
  import type { TransactionResult } from './execution';
7
8
  import { ExecutionError, IntentFailedError, isExecutionError, OrderPathRequiredForIntentsError, SessionChainRequiredError, SourceChainsNotAvailableForUserOpFlowError, UserOperationRequiredForSmartSessionsError } from './execution';
8
9
  import { type SessionDetails } from './execution/smart-session';
@@ -36,6 +37,6 @@ interface RhinestoneAccount {
36
37
  * @returns account
37
38
  */
38
39
  declare function createRhinestoneAccount(config: RhinestoneAccountConfig): Promise<RhinestoneAccount>;
39
- export { createRhinestoneAccount, createTransport, addOwner, changeMultiFactorThreshold, changeThreshold, disableEcdsa, disableMultiFactor, disablePasskeys, enableEcdsa, enableMultiFactor, enablePasskeys, encodeSmartSessionSignature, recover, removeOwner, removeSubValidator, setSubValidator, setUpRecovery, isAccountError, AccountError, Eip7702AccountMustHaveEoaError, ExistingEip7702AccountsNotSupportedError, FactoryArgsNotAvailableError, SmartSessionsNotEnabledError, SigningNotSupportedForAccountError, SignMessageNotSupportedByAccountError, Eip7702NotSupportedForAccountError, isExecutionError, IntentFailedError, ExecutionError, SourceChainsNotAvailableForUserOpFlowError, UserOperationRequiredForSmartSessionsError, OrderPathRequiredForIntentsError, SessionChainRequiredError, isOrchestratorError, AuthenticationRequiredError, InsufficientBalanceError, InvalidApiKeyError, InvalidIntentSignatureError, NoPathFoundError, OnlyOneTargetTokenAmountCanBeUnsetError, OrchestratorError, IntentNotFoundError, TokenNotSupportedError, UnsupportedChainError, UnsupportedChainIdError, UnsupportedTokenError, getTokenAddress, getTokenSymbol, getWethAddress, getSupportedTokens, isTokenAddressSupported, getOrchestrator, };
40
+ export { createRhinestoneAccount, createTransport, addOwner, changeMultiFactorThreshold, changeThreshold, disableEcdsa, disableMultiFactor, disablePasskeys, enableEcdsa, enableMultiFactor, enablePasskeys, encodeSmartSessionSignature, recover, removeOwner, removeSubValidator, setSubValidator, setUpRecovery, addCredential, generateCredentialId, getCredentialIds, getCredentialInfo, getCredentials, getThreshold, hasCredential, hasCredentialById, removeCredential, setThreshold, WEBAUTHN_VALIDATOR_ABI, isAccountError, AccountError, Eip7702AccountMustHaveEoaError, ExistingEip7702AccountsNotSupportedError, FactoryArgsNotAvailableError, SmartSessionsNotEnabledError, SigningNotSupportedForAccountError, SignMessageNotSupportedByAccountError, Eip7702NotSupportedForAccountError, isExecutionError, IntentFailedError, ExecutionError, SourceChainsNotAvailableForUserOpFlowError, UserOperationRequiredForSmartSessionsError, OrderPathRequiredForIntentsError, SessionChainRequiredError, isOrchestratorError, AuthenticationRequiredError, InsufficientBalanceError, InvalidApiKeyError, InvalidIntentSignatureError, NoPathFoundError, OnlyOneTargetTokenAmountCanBeUnsetError, OrchestratorError, IntentNotFoundError, TokenNotSupportedError, UnsupportedChainError, UnsupportedChainIdError, UnsupportedTokenError, getTokenAddress, getTokenSymbol, getWethAddress, getSupportedTokens, isTokenAddressSupported, getOrchestrator, };
40
41
  export type { RhinestoneAccount, Session, Call, IntentData, PreparedTransactionData, SignedTransactionData, TransactionResult, IntentCost, IntentInput, IntentOp, IntentOpStatus, IntentResult, IntentRoute, SettlementSystem, SignedIntentOp, Portfolio, };
41
42
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,uBAAuB,EAAE,MAAM,MAAM,CAAA;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EACL,YAAY,EAEZ,8BAA8B,EAC9B,kCAAkC,EAClC,wCAAwC,EACxC,4BAA4B,EAE5B,cAAc,EACd,kCAAkC,EAClC,qCAAqC,EACrC,4BAA4B,EAE7B,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EACL,QAAQ,EACR,0BAA0B,EAC1B,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,2BAA2B,EAC3B,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,aAAa,EACd,MAAM,WAAW,CAAA;AAClB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EACL,cAAc,EAGd,iBAAiB,EACjB,gBAAgB,EAChB,gCAAgC,EAChC,yBAAyB,EACzB,0CAA0C,EAE1C,0CAA0C,EAE3C,MAAM,aAAa,CAAA;AACpB,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,KAAK,UAAU,EACf,KAAK,uBAAuB,EAE5B,KAAK,qBAAqB,EAI3B,MAAM,mBAAmB,CAAA;AAK1B,OAAO,EACL,2BAA2B,EAC3B,wBAAwB,EACxB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,mBAAmB,EACnB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,mBAAmB,EACnB,gBAAgB,EAChB,uCAAuC,EACvC,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EAChB,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EACV,IAAI,EACJ,uBAAuB,EACvB,OAAO,EACP,WAAW,EACZ,MAAM,SAAS,CAAA;AAEhB,UAAU,iBAAiB;IACzB,MAAM,EAAE,uBAAuB,CAAA;IAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1D,mBAAmB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;IACvC,kBAAkB,EAAE,CAClB,WAAW,EAAE,WAAW,KACrB,OAAO,CAAC,uBAAuB,CAAC,CAAA;IACrC,eAAe,EAAE,CACf,mBAAmB,EAAE,uBAAuB,KACzC,OAAO,CAAC,qBAAqB,CAAC,CAAA;IACnC,kBAAkB,EAAE,CAClB,mBAAmB,EAAE,uBAAuB,KACzC,OAAO,CAAC,uBAAuB,CAAC,CAAA;IACrC,iBAAiB,EAAE,CACjB,iBAAiB,EAAE,qBAAqB,EACxC,cAAc,CAAC,EAAE,uBAAuB,KACrC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC/B,eAAe,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACzE,gBAAgB,EAAE,CAChB,MAAM,EAAE,iBAAiB,EACzB,uBAAuB,CAAC,EAAE,OAAO,KAC9B,OAAO,CAAC,cAAc,GAAG,oBAAoB,CAAC,CAAA;IACnD,UAAU,EAAE,MAAM,OAAO,CAAA;IACzB,YAAY,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,CAAA;IAC1D,qBAAqB,EAAE,CACrB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,MAAM,CAAC,CAAA;IAEpB,iBAAiB,EAAE,CACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,GAAG,KACZ,OAAO,CAAC,cAAc,CAAC,CAAA;IAC5B,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;QACnC,QAAQ,EAAE,OAAO,EAAE,CAAA;QACnB,SAAS,EAAE,MAAM,CAAA;KAClB,GAAG,IAAI,CAAC,CAAA;IACT,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;CACpD;AAED;;;;;GAKG;AACH,iBAAe,uBAAuB,CACpC,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,iBAAiB,CAAC,CA6H5B;AAED,OAAO,EACL,uBAAuB,EACvB,eAAe,EAEf,QAAQ,EACR,0BAA0B,EAC1B,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,cAAc,EACd,2BAA2B,EAC3B,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,aAAa,EAEb,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EAEtB,cAAc,EACd,YAAY,EACZ,8BAA8B,EAC9B,wCAAwC,EACxC,4BAA4B,EAC5B,4BAA4B,EAC5B,kCAAkC,EAClC,qCAAqC,EACrC,kCAAkC,EAElC,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,0CAA0C,EAC1C,0CAA0C,EAC1C,gCAAgC,EAChC,yBAAyB,EAEzB,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,2BAA2B,EAC3B,gBAAgB,EAChB,uCAAuC,EACvC,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EAErB,eAAe,EACf,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EAEvB,eAAe,GAChB,CAAA;AACD,YAAY,EACV,iBAAiB,EACjB,OAAO,EACP,IAAI,EACJ,UAAU,EACV,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,SAAS,GACV,CAAA"}
package/dist/src/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isTokenAddressSupported = exports.getSupportedTokens = exports.getWethAddress = exports.getTokenSymbol = exports.getTokenAddress = exports.UnsupportedTokenError = exports.UnsupportedChainIdError = exports.UnsupportedChainError = exports.TokenNotSupportedError = exports.IntentNotFoundError = exports.OrchestratorError = exports.OnlyOneTargetTokenAmountCanBeUnsetError = exports.NoPathFoundError = exports.InvalidIntentSignatureError = exports.InvalidApiKeyError = exports.InsufficientBalanceError = exports.AuthenticationRequiredError = exports.isOrchestratorError = exports.SessionChainRequiredError = exports.OrderPathRequiredForIntentsError = exports.UserOperationRequiredForSmartSessionsError = exports.SourceChainsNotAvailableForUserOpFlowError = exports.ExecutionError = exports.IntentFailedError = exports.isExecutionError = exports.Eip7702NotSupportedForAccountError = exports.SignMessageNotSupportedByAccountError = exports.SigningNotSupportedForAccountError = exports.SmartSessionsNotEnabledError = exports.FactoryArgsNotAvailableError = exports.ExistingEip7702AccountsNotSupportedError = exports.Eip7702AccountMustHaveEoaError = exports.AccountError = exports.isAccountError = exports.setUpRecovery = exports.setSubValidator = exports.removeSubValidator = exports.removeOwner = exports.recover = exports.encodeSmartSessionSignature = exports.enablePasskeys = exports.enableMultiFactor = exports.enableEcdsa = exports.disablePasskeys = exports.disableMultiFactor = exports.disableEcdsa = exports.changeThreshold = exports.changeMultiFactorThreshold = exports.addOwner = exports.createTransport = void 0;
4
- exports.getOrchestrator = void 0;
3
+ exports.OnlyOneTargetTokenAmountCanBeUnsetError = exports.NoPathFoundError = exports.InvalidIntentSignatureError = exports.InvalidApiKeyError = exports.InsufficientBalanceError = exports.AuthenticationRequiredError = exports.isOrchestratorError = exports.SessionChainRequiredError = exports.OrderPathRequiredForIntentsError = exports.UserOperationRequiredForSmartSessionsError = exports.SourceChainsNotAvailableForUserOpFlowError = exports.ExecutionError = exports.IntentFailedError = exports.isExecutionError = exports.Eip7702NotSupportedForAccountError = exports.SignMessageNotSupportedByAccountError = exports.SigningNotSupportedForAccountError = exports.SmartSessionsNotEnabledError = exports.FactoryArgsNotAvailableError = exports.ExistingEip7702AccountsNotSupportedError = exports.Eip7702AccountMustHaveEoaError = exports.AccountError = exports.isAccountError = exports.WEBAUTHN_VALIDATOR_ABI = exports.setThreshold = exports.removeCredential = exports.hasCredentialById = exports.hasCredential = exports.getThreshold = exports.getCredentials = exports.getCredentialInfo = exports.getCredentialIds = exports.generateCredentialId = exports.addCredential = exports.setUpRecovery = exports.setSubValidator = exports.removeSubValidator = exports.removeOwner = exports.recover = exports.encodeSmartSessionSignature = exports.enablePasskeys = exports.enableMultiFactor = exports.enableEcdsa = exports.disablePasskeys = exports.disableMultiFactor = exports.disableEcdsa = exports.changeThreshold = exports.changeMultiFactorThreshold = exports.addOwner = exports.createTransport = void 0;
4
+ exports.getOrchestrator = exports.isTokenAddressSupported = exports.getSupportedTokens = exports.getWethAddress = exports.getTokenSymbol = exports.getTokenAddress = exports.UnsupportedTokenError = exports.UnsupportedChainIdError = exports.UnsupportedChainError = exports.TokenNotSupportedError = exports.IntentNotFoundError = exports.OrchestratorError = void 0;
5
5
  exports.createRhinestoneAccount = createRhinestoneAccount;
6
6
  const accounts_1 = require("./accounts");
7
7
  Object.defineProperty(exports, "AccountError", { enumerable: true, get: function () { return accounts_1.AccountError; } });
@@ -31,6 +31,18 @@ Object.defineProperty(exports, "removeOwner", { enumerable: true, get: function
31
31
  Object.defineProperty(exports, "removeSubValidator", { enumerable: true, get: function () { return actions_1.removeSubValidator; } });
32
32
  Object.defineProperty(exports, "setSubValidator", { enumerable: true, get: function () { return actions_1.setSubValidator; } });
33
33
  Object.defineProperty(exports, "setUpRecovery", { enumerable: true, get: function () { return actions_1.setUpRecovery; } });
34
+ const validators_1 = require("./modules/validators");
35
+ Object.defineProperty(exports, "addCredential", { enumerable: true, get: function () { return validators_1.addCredential; } });
36
+ Object.defineProperty(exports, "generateCredentialId", { enumerable: true, get: function () { return validators_1.generateCredentialId; } });
37
+ Object.defineProperty(exports, "getCredentialIds", { enumerable: true, get: function () { return validators_1.getCredentialIds; } });
38
+ Object.defineProperty(exports, "getCredentialInfo", { enumerable: true, get: function () { return validators_1.getCredentialInfo; } });
39
+ Object.defineProperty(exports, "getCredentials", { enumerable: true, get: function () { return validators_1.getCredentials; } });
40
+ Object.defineProperty(exports, "getThreshold", { enumerable: true, get: function () { return validators_1.getThreshold; } });
41
+ Object.defineProperty(exports, "hasCredential", { enumerable: true, get: function () { return validators_1.hasCredential; } });
42
+ Object.defineProperty(exports, "hasCredentialById", { enumerable: true, get: function () { return validators_1.hasCredentialById; } });
43
+ Object.defineProperty(exports, "removeCredential", { enumerable: true, get: function () { return validators_1.removeCredential; } });
44
+ Object.defineProperty(exports, "setThreshold", { enumerable: true, get: function () { return validators_1.setThreshold; } });
45
+ Object.defineProperty(exports, "WEBAUTHN_VALIDATOR_ABI", { enumerable: true, get: function () { return validators_1.WEBAUTHN_VALIDATOR_ABI; } });
34
46
  const execution_1 = require("./execution");
35
47
  Object.defineProperty(exports, "ExecutionError", { enumerable: true, get: function () { return execution_1.ExecutionError; } });
36
48
  Object.defineProperty(exports, "IntentFailedError", { enumerable: true, get: function () { return execution_1.IntentFailedError; } });
@@ -1,4 +1,5 @@
1
1
  import { getMockSignature, getOwnerValidator } from './core';
2
2
  import { encodeSmartSessionSignature, getEnableSessionCall, getPermissionId, getSmartSessionValidator, isSessionEnabled, SMART_SESSION_MODE_ENABLE, SMART_SESSION_MODE_USE, SMART_SESSIONS_VALIDATOR_ADDRESS } from './smart-sessions';
3
- export { SMART_SESSION_MODE_USE, SMART_SESSION_MODE_ENABLE, SMART_SESSIONS_VALIDATOR_ADDRESS, getOwnerValidator, getSmartSessionValidator, getEnableSessionCall, encodeSmartSessionSignature, getPermissionId, getMockSignature, isSessionEnabled, };
3
+ import { addCredential, generateCredentialId, getCredentialIds, getCredentialInfo, getCredentials, getThreshold, hasCredential, hasCredentialById, removeCredential, setThreshold, WEBAUTHN_VALIDATOR_ABI } from './webauthn-contract';
4
+ export { SMART_SESSION_MODE_USE, SMART_SESSION_MODE_ENABLE, SMART_SESSIONS_VALIDATOR_ADDRESS, getOwnerValidator, getSmartSessionValidator, getEnableSessionCall, encodeSmartSessionSignature, getPermissionId, getMockSignature, isSessionEnabled, addCredential, generateCredentialId, getCredentialIds, getCredentialInfo, getCredentials, getThreshold, hasCredential, hasCredentialById, removeCredential, setThreshold, WEBAUTHN_VALIDATOR_ABI, };
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../modules/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC5D,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,gCAAgC,EACjC,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EAChC,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../modules/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC5D,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,gCAAgC,EACjC,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACvB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EAChC,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAEhB,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,GACvB,CAAA"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSessionEnabled = exports.getMockSignature = exports.getPermissionId = exports.encodeSmartSessionSignature = exports.getEnableSessionCall = exports.getSmartSessionValidator = exports.getOwnerValidator = exports.SMART_SESSIONS_VALIDATOR_ADDRESS = exports.SMART_SESSION_MODE_ENABLE = exports.SMART_SESSION_MODE_USE = void 0;
3
+ exports.WEBAUTHN_VALIDATOR_ABI = exports.setThreshold = exports.removeCredential = exports.hasCredentialById = exports.hasCredential = exports.getThreshold = exports.getCredentials = exports.getCredentialInfo = exports.getCredentialIds = exports.generateCredentialId = exports.addCredential = exports.isSessionEnabled = exports.getMockSignature = exports.getPermissionId = exports.encodeSmartSessionSignature = exports.getEnableSessionCall = exports.getSmartSessionValidator = exports.getOwnerValidator = exports.SMART_SESSIONS_VALIDATOR_ADDRESS = exports.SMART_SESSION_MODE_ENABLE = exports.SMART_SESSION_MODE_USE = void 0;
4
4
  const core_1 = require("./core");
5
5
  Object.defineProperty(exports, "getMockSignature", { enumerable: true, get: function () { return core_1.getMockSignature; } });
6
6
  Object.defineProperty(exports, "getOwnerValidator", { enumerable: true, get: function () { return core_1.getOwnerValidator; } });
@@ -13,3 +13,15 @@ Object.defineProperty(exports, "isSessionEnabled", { enumerable: true, get: func
13
13
  Object.defineProperty(exports, "SMART_SESSION_MODE_ENABLE", { enumerable: true, get: function () { return smart_sessions_1.SMART_SESSION_MODE_ENABLE; } });
14
14
  Object.defineProperty(exports, "SMART_SESSION_MODE_USE", { enumerable: true, get: function () { return smart_sessions_1.SMART_SESSION_MODE_USE; } });
15
15
  Object.defineProperty(exports, "SMART_SESSIONS_VALIDATOR_ADDRESS", { enumerable: true, get: function () { return smart_sessions_1.SMART_SESSIONS_VALIDATOR_ADDRESS; } });
16
+ const webauthn_contract_1 = require("./webauthn-contract");
17
+ Object.defineProperty(exports, "addCredential", { enumerable: true, get: function () { return webauthn_contract_1.addCredential; } });
18
+ Object.defineProperty(exports, "generateCredentialId", { enumerable: true, get: function () { return webauthn_contract_1.generateCredentialId; } });
19
+ Object.defineProperty(exports, "getCredentialIds", { enumerable: true, get: function () { return webauthn_contract_1.getCredentialIds; } });
20
+ Object.defineProperty(exports, "getCredentialInfo", { enumerable: true, get: function () { return webauthn_contract_1.getCredentialInfo; } });
21
+ Object.defineProperty(exports, "getCredentials", { enumerable: true, get: function () { return webauthn_contract_1.getCredentials; } });
22
+ Object.defineProperty(exports, "getThreshold", { enumerable: true, get: function () { return webauthn_contract_1.getThreshold; } });
23
+ Object.defineProperty(exports, "hasCredential", { enumerable: true, get: function () { return webauthn_contract_1.hasCredential; } });
24
+ Object.defineProperty(exports, "hasCredentialById", { enumerable: true, get: function () { return webauthn_contract_1.hasCredentialById; } });
25
+ Object.defineProperty(exports, "removeCredential", { enumerable: true, get: function () { return webauthn_contract_1.removeCredential; } });
26
+ Object.defineProperty(exports, "setThreshold", { enumerable: true, get: function () { return webauthn_contract_1.setThreshold; } });
27
+ Object.defineProperty(exports, "WEBAUTHN_VALIDATOR_ABI", { enumerable: true, get: function () { return webauthn_contract_1.WEBAUTHN_VALIDATOR_ABI; } });
@@ -0,0 +1,232 @@
1
+ import { type Address, type Chain, type Hex } from 'viem';
2
+ import type { Call, ProviderConfig } from '../../types';
3
+ /**
4
+ * WebAuthn Validator Contract ABI - Contains the functions we need to interact with
5
+ */
6
+ declare const WEBAUTHN_VALIDATOR_ABI: readonly [{
7
+ readonly type: "function";
8
+ readonly name: "generateCredentialId";
9
+ readonly inputs: readonly [{
10
+ readonly name: "pubKeyX";
11
+ readonly type: "uint256";
12
+ }, {
13
+ readonly name: "pubKeyY";
14
+ readonly type: "uint256";
15
+ }, {
16
+ readonly name: "account";
17
+ readonly type: "address";
18
+ }];
19
+ readonly outputs: readonly [{
20
+ readonly name: "";
21
+ readonly type: "bytes32";
22
+ }];
23
+ readonly stateMutability: "pure";
24
+ }, {
25
+ readonly type: "function";
26
+ readonly name: "getCredentialIds";
27
+ readonly inputs: readonly [{
28
+ readonly name: "account";
29
+ readonly type: "address";
30
+ }];
31
+ readonly outputs: readonly [{
32
+ readonly name: "credentialsIds";
33
+ readonly type: "bytes32[]";
34
+ }];
35
+ readonly stateMutability: "view";
36
+ }, {
37
+ readonly type: "function";
38
+ readonly name: "hasCredentialById";
39
+ readonly inputs: readonly [{
40
+ readonly name: "credentialId";
41
+ readonly type: "bytes32";
42
+ }, {
43
+ readonly name: "account";
44
+ readonly type: "address";
45
+ }];
46
+ readonly outputs: readonly [{
47
+ readonly name: "exists";
48
+ readonly type: "bool";
49
+ }];
50
+ readonly stateMutability: "view";
51
+ }, {
52
+ readonly type: "function";
53
+ readonly name: "hasCredential";
54
+ readonly inputs: readonly [{
55
+ readonly name: "pubKeyX";
56
+ readonly type: "uint256";
57
+ }, {
58
+ readonly name: "pubKeyY";
59
+ readonly type: "uint256";
60
+ }, {
61
+ readonly name: "account";
62
+ readonly type: "address";
63
+ }];
64
+ readonly outputs: readonly [{
65
+ readonly name: "exists";
66
+ readonly type: "bool";
67
+ }];
68
+ readonly stateMutability: "view";
69
+ }, {
70
+ readonly type: "function";
71
+ readonly name: "addCredential";
72
+ readonly inputs: readonly [{
73
+ readonly name: "pubKeyX";
74
+ readonly type: "uint256";
75
+ }, {
76
+ readonly name: "pubKeyY";
77
+ readonly type: "uint256";
78
+ }, {
79
+ readonly name: "requireUV";
80
+ readonly type: "bool";
81
+ }];
82
+ readonly outputs: readonly [];
83
+ readonly stateMutability: "nonpayable";
84
+ }, {
85
+ readonly type: "function";
86
+ readonly name: "removeCredential";
87
+ readonly inputs: readonly [{
88
+ readonly name: "pubKeyX";
89
+ readonly type: "uint256";
90
+ }, {
91
+ readonly name: "pubKeyY";
92
+ readonly type: "uint256";
93
+ }];
94
+ readonly outputs: readonly [];
95
+ readonly stateMutability: "nonpayable";
96
+ }, {
97
+ readonly type: "function";
98
+ readonly name: "setThreshold";
99
+ readonly inputs: readonly [{
100
+ readonly name: "_threshold";
101
+ readonly type: "uint256";
102
+ }];
103
+ readonly outputs: readonly [];
104
+ readonly stateMutability: "nonpayable";
105
+ }, {
106
+ readonly type: "function";
107
+ readonly name: "getCredentialInfo";
108
+ readonly inputs: readonly [{
109
+ readonly name: "credentialId";
110
+ readonly type: "bytes32";
111
+ }, {
112
+ readonly name: "account";
113
+ readonly type: "address";
114
+ }];
115
+ readonly outputs: readonly [{
116
+ readonly name: "pubKeyX";
117
+ readonly type: "uint256";
118
+ }, {
119
+ readonly name: "pubKeyY";
120
+ readonly type: "uint256";
121
+ }, {
122
+ readonly name: "requireUV";
123
+ readonly type: "bool";
124
+ }];
125
+ readonly stateMutability: "view";
126
+ }, {
127
+ readonly type: "function";
128
+ readonly name: "threshold";
129
+ readonly inputs: readonly [{
130
+ readonly name: "account";
131
+ readonly type: "address";
132
+ }];
133
+ readonly outputs: readonly [{
134
+ readonly name: "";
135
+ readonly type: "uint256";
136
+ }];
137
+ readonly stateMutability: "view";
138
+ }];
139
+ /**
140
+ * Generates a deterministic credential ID for a WebAuthn credential
141
+ * @param pubKeyX X coordinate of the public key
142
+ * @param pubKeyY Y coordinate of the public key
143
+ * @param accountAddress Address of the account
144
+ * @param chain Chain to query on
145
+ * @param provider Optional provider configuration
146
+ * @returns Promise resolving to the credential ID
147
+ */
148
+ declare function generateCredentialId(pubKeyX: bigint, pubKeyY: bigint, accountAddress: Address, chain: Chain, provider?: ProviderConfig): Promise<Hex>;
149
+ /**
150
+ * Gets all credential IDs for an account
151
+ * @param accountAddress Address of the account
152
+ * @param chain Chain to query on
153
+ * @param provider Optional provider configuration
154
+ * @returns Promise resolving to array of credential IDs
155
+ */
156
+ declare function getCredentialIds(accountAddress: Address, chain: Chain, provider?: ProviderConfig): Promise<Hex[]>;
157
+ /**
158
+ * Checks if a credential exists by its ID
159
+ * @param credentialId The credential ID to check
160
+ * @param accountAddress Address of the account
161
+ * @param chain Chain to query on
162
+ * @param provider Optional provider configuration
163
+ * @returns Promise resolving to whether the credential exists
164
+ */
165
+ declare function hasCredentialById(credentialId: Hex, accountAddress: Address, chain: Chain, provider?: ProviderConfig): Promise<boolean>;
166
+ /**
167
+ * Checks if a credential exists by its public key coordinates
168
+ * @param pubKeyX X coordinate of the public key
169
+ * @param pubKeyY Y coordinate of the public key
170
+ * @param accountAddress Address of the account
171
+ * @param chain Chain to query on
172
+ * @param provider Optional provider configuration
173
+ * @returns Promise resolving to whether the credential exists
174
+ */
175
+ declare function hasCredential(pubKeyX: bigint, pubKeyY: bigint, accountAddress: Address, chain: Chain, provider?: ProviderConfig): Promise<boolean>;
176
+ /**
177
+ * Creates a transaction call to add a WebAuthn credential to an account
178
+ * @param pubKeyX X coordinate of the public key
179
+ * @param pubKeyY Y coordinate of the public key
180
+ * @param requireUV Whether user verification (biometrics/PIN) is required
181
+ * @returns Call object for adding the credential
182
+ */
183
+ declare function addCredential(pubKeyX: bigint, pubKeyY: bigint, requireUV?: boolean): Call;
184
+ /**
185
+ * Creates a transaction call to remove a WebAuthn credential from an account
186
+ * @param pubKeyX X coordinate of the public key
187
+ * @param pubKeyY Y coordinate of the public key
188
+ * @returns Call object for removing the credential
189
+ */
190
+ declare function removeCredential(pubKeyX: bigint, pubKeyY: bigint): Call;
191
+ /**
192
+ * Creates a transaction call to set the threshold for WebAuthn validation
193
+ * @param threshold Number of required signatures for validation
194
+ * @returns Call object for setting the threshold
195
+ */
196
+ declare function setThreshold(threshold: number): Call;
197
+ /**
198
+ * Gets detailed information about a credential
199
+ * @param credentialId The credential ID to query
200
+ * @param accountAddress Address of the account
201
+ * @param chain Chain to query on
202
+ * @param provider Optional provider configuration
203
+ * @returns Promise resolving to credential details
204
+ */
205
+ declare function getCredentialInfo(credentialId: Hex, accountAddress: Address, chain: Chain, provider?: ProviderConfig): Promise<{
206
+ pubKeyX: bigint;
207
+ pubKeyY: bigint;
208
+ requireUV: boolean;
209
+ }>;
210
+ /**
211
+ * Gets the current threshold for an account
212
+ * @param accountAddress Address of the account
213
+ * @param chain Chain to query on
214
+ * @param provider Optional provider configuration
215
+ * @returns Promise resolving to the current threshold
216
+ */
217
+ declare function getThreshold(accountAddress: Address, chain: Chain, provider?: ProviderConfig): Promise<number>;
218
+ /**
219
+ * Gets all credentials for an account with their detailed information
220
+ * @param accountAddress Address of the account
221
+ * @param chain Chain to query on
222
+ * @param provider Optional provider configuration
223
+ * @returns Promise resolving to array of credentials with their details
224
+ */
225
+ declare function getCredentials(accountAddress: Address, chain: Chain, provider?: ProviderConfig): Promise<Array<{
226
+ credentialId: Hex;
227
+ pubKeyX: bigint;
228
+ pubKeyY: bigint;
229
+ requireUV: boolean;
230
+ }>>;
231
+ export { generateCredentialId, getCredentialIds, hasCredentialById, hasCredential, addCredential, removeCredential, setThreshold, getCredentialInfo, getThreshold, getCredentials, WEBAUTHN_VALIDATOR_ABI, };
232
+ //# sourceMappingURL=webauthn-contract.d.ts.map
@@ -0,0 +1 @@
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,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"}
@@ -0,0 +1,308 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WEBAUTHN_VALIDATOR_ABI = void 0;
4
+ exports.generateCredentialId = generateCredentialId;
5
+ exports.getCredentialIds = getCredentialIds;
6
+ exports.hasCredentialById = hasCredentialById;
7
+ exports.hasCredential = hasCredential;
8
+ exports.addCredential = addCredential;
9
+ exports.removeCredential = removeCredential;
10
+ exports.setThreshold = setThreshold;
11
+ exports.getCredentialInfo = getCredentialInfo;
12
+ exports.getThreshold = getThreshold;
13
+ exports.getCredentials = getCredentials;
14
+ const viem_1 = require("viem");
15
+ const utils_1 = require("../../accounts/utils");
16
+ const core_1 = require("./core");
17
+ /**
18
+ * WebAuthn Validator Contract ABI - Contains the functions we need to interact with
19
+ */
20
+ const WEBAUTHN_VALIDATOR_ABI = [
21
+ {
22
+ type: 'function',
23
+ name: 'generateCredentialId',
24
+ inputs: [
25
+ { name: 'pubKeyX', type: 'uint256' },
26
+ { name: 'pubKeyY', type: 'uint256' },
27
+ { name: 'account', type: 'address' },
28
+ ],
29
+ outputs: [{ name: '', type: 'bytes32' }],
30
+ stateMutability: 'pure',
31
+ },
32
+ {
33
+ type: 'function',
34
+ name: 'getCredentialIds',
35
+ inputs: [{ name: 'account', type: 'address' }],
36
+ outputs: [{ name: 'credentialsIds', type: 'bytes32[]' }],
37
+ stateMutability: 'view',
38
+ },
39
+ {
40
+ type: 'function',
41
+ name: 'hasCredentialById',
42
+ inputs: [
43
+ { name: 'credentialId', type: 'bytes32' },
44
+ { name: 'account', type: 'address' },
45
+ ],
46
+ outputs: [{ name: 'exists', type: 'bool' }],
47
+ stateMutability: 'view',
48
+ },
49
+ {
50
+ type: 'function',
51
+ name: 'hasCredential',
52
+ inputs: [
53
+ { name: 'pubKeyX', type: 'uint256' },
54
+ { name: 'pubKeyY', type: 'uint256' },
55
+ { name: 'account', type: 'address' },
56
+ ],
57
+ outputs: [{ name: 'exists', type: 'bool' }],
58
+ stateMutability: 'view',
59
+ },
60
+ {
61
+ type: 'function',
62
+ name: 'addCredential',
63
+ inputs: [
64
+ { name: 'pubKeyX', type: 'uint256' },
65
+ { name: 'pubKeyY', type: 'uint256' },
66
+ { name: 'requireUV', type: 'bool' },
67
+ ],
68
+ outputs: [],
69
+ stateMutability: 'nonpayable',
70
+ },
71
+ {
72
+ type: 'function',
73
+ name: 'removeCredential',
74
+ inputs: [
75
+ { name: 'pubKeyX', type: 'uint256' },
76
+ { name: 'pubKeyY', type: 'uint256' },
77
+ ],
78
+ outputs: [],
79
+ stateMutability: 'nonpayable',
80
+ },
81
+ {
82
+ type: 'function',
83
+ name: 'setThreshold',
84
+ inputs: [{ name: '_threshold', type: 'uint256' }],
85
+ outputs: [],
86
+ stateMutability: 'nonpayable',
87
+ },
88
+ {
89
+ type: 'function',
90
+ name: 'getCredentialInfo',
91
+ inputs: [
92
+ { name: 'credentialId', type: 'bytes32' },
93
+ { name: 'account', type: 'address' },
94
+ ],
95
+ outputs: [
96
+ { name: 'pubKeyX', type: 'uint256' },
97
+ { name: 'pubKeyY', type: 'uint256' },
98
+ { name: 'requireUV', type: 'bool' },
99
+ ],
100
+ stateMutability: 'view',
101
+ },
102
+ {
103
+ type: 'function',
104
+ name: 'threshold',
105
+ inputs: [{ name: 'account', type: 'address' }],
106
+ outputs: [{ name: '', type: 'uint256' }],
107
+ stateMutability: 'view',
108
+ },
109
+ ];
110
+ exports.WEBAUTHN_VALIDATOR_ABI = WEBAUTHN_VALIDATOR_ABI;
111
+ /**
112
+ * Generates a deterministic credential ID for a WebAuthn credential
113
+ * @param pubKeyX X coordinate of the public key
114
+ * @param pubKeyY Y coordinate of the public key
115
+ * @param accountAddress Address of the account
116
+ * @param chain Chain to query on
117
+ * @param provider Optional provider configuration
118
+ * @returns Promise resolving to the credential ID
119
+ */
120
+ async function generateCredentialId(pubKeyX, pubKeyY, accountAddress, chain, provider) {
121
+ const publicClient = (0, viem_1.createPublicClient)({
122
+ chain,
123
+ transport: (0, utils_1.createTransport)(chain, provider),
124
+ });
125
+ const result = await publicClient.readContract({
126
+ abi: WEBAUTHN_VALIDATOR_ABI,
127
+ address: core_1.WEBAUTHN_VALIDATOR_ADDRESS,
128
+ functionName: 'generateCredentialId',
129
+ args: [pubKeyX, pubKeyY, accountAddress],
130
+ });
131
+ return result;
132
+ }
133
+ /**
134
+ * Gets all credential IDs for an account
135
+ * @param accountAddress Address of the account
136
+ * @param chain Chain to query on
137
+ * @param provider Optional provider configuration
138
+ * @returns Promise resolving to array of credential IDs
139
+ */
140
+ async function getCredentialIds(accountAddress, chain, provider) {
141
+ const publicClient = (0, viem_1.createPublicClient)({
142
+ chain,
143
+ transport: (0, utils_1.createTransport)(chain, provider),
144
+ });
145
+ const result = await publicClient.readContract({
146
+ abi: WEBAUTHN_VALIDATOR_ABI,
147
+ address: core_1.WEBAUTHN_VALIDATOR_ADDRESS,
148
+ functionName: 'getCredentialIds',
149
+ args: [accountAddress],
150
+ });
151
+ return result;
152
+ }
153
+ /**
154
+ * Checks if a credential exists by its ID
155
+ * @param credentialId The credential ID to check
156
+ * @param accountAddress Address of the account
157
+ * @param chain Chain to query on
158
+ * @param provider Optional provider configuration
159
+ * @returns Promise resolving to whether the credential exists
160
+ */
161
+ async function hasCredentialById(credentialId, accountAddress, chain, provider) {
162
+ const publicClient = (0, viem_1.createPublicClient)({
163
+ chain,
164
+ transport: (0, utils_1.createTransport)(chain, provider),
165
+ });
166
+ const result = await publicClient.readContract({
167
+ abi: WEBAUTHN_VALIDATOR_ABI,
168
+ address: core_1.WEBAUTHN_VALIDATOR_ADDRESS,
169
+ functionName: 'hasCredentialById',
170
+ args: [credentialId, accountAddress],
171
+ });
172
+ return result;
173
+ }
174
+ /**
175
+ * Checks if a credential exists by its public key coordinates
176
+ * @param pubKeyX X coordinate of the public key
177
+ * @param pubKeyY Y coordinate of the public key
178
+ * @param accountAddress Address of the account
179
+ * @param chain Chain to query on
180
+ * @param provider Optional provider configuration
181
+ * @returns Promise resolving to whether the credential exists
182
+ */
183
+ async function hasCredential(pubKeyX, pubKeyY, accountAddress, chain, provider) {
184
+ const publicClient = (0, viem_1.createPublicClient)({
185
+ chain,
186
+ transport: (0, utils_1.createTransport)(chain, provider),
187
+ });
188
+ const result = await publicClient.readContract({
189
+ abi: WEBAUTHN_VALIDATOR_ABI,
190
+ address: core_1.WEBAUTHN_VALIDATOR_ADDRESS,
191
+ functionName: 'hasCredential',
192
+ args: [pubKeyX, pubKeyY, accountAddress],
193
+ });
194
+ return result;
195
+ }
196
+ /**
197
+ * Creates a transaction call to add a WebAuthn credential to an account
198
+ * @param pubKeyX X coordinate of the public key
199
+ * @param pubKeyY Y coordinate of the public key
200
+ * @param requireUV Whether user verification (biometrics/PIN) is required
201
+ * @returns Call object for adding the credential
202
+ */
203
+ function addCredential(pubKeyX, pubKeyY, requireUV = false) {
204
+ return {
205
+ to: core_1.WEBAUTHN_VALIDATOR_ADDRESS,
206
+ value: 0n,
207
+ data: (0, viem_1.encodeFunctionData)({
208
+ abi: WEBAUTHN_VALIDATOR_ABI,
209
+ functionName: 'addCredential',
210
+ args: [pubKeyX, pubKeyY, requireUV],
211
+ }),
212
+ };
213
+ }
214
+ /**
215
+ * Creates a transaction call to remove a WebAuthn credential from an account
216
+ * @param pubKeyX X coordinate of the public key
217
+ * @param pubKeyY Y coordinate of the public key
218
+ * @returns Call object for removing the credential
219
+ */
220
+ function removeCredential(pubKeyX, pubKeyY) {
221
+ return {
222
+ to: core_1.WEBAUTHN_VALIDATOR_ADDRESS,
223
+ value: 0n,
224
+ data: (0, viem_1.encodeFunctionData)({
225
+ abi: WEBAUTHN_VALIDATOR_ABI,
226
+ functionName: 'removeCredential',
227
+ args: [pubKeyX, pubKeyY],
228
+ }),
229
+ };
230
+ }
231
+ /**
232
+ * Creates a transaction call to set the threshold for WebAuthn validation
233
+ * @param threshold Number of required signatures for validation
234
+ * @returns Call object for setting the threshold
235
+ */
236
+ function setThreshold(threshold) {
237
+ return {
238
+ to: core_1.WEBAUTHN_VALIDATOR_ADDRESS,
239
+ value: 0n,
240
+ data: (0, viem_1.encodeFunctionData)({
241
+ abi: WEBAUTHN_VALIDATOR_ABI,
242
+ functionName: 'setThreshold',
243
+ args: [BigInt(threshold)],
244
+ }),
245
+ };
246
+ }
247
+ /**
248
+ * Gets detailed information about a credential
249
+ * @param credentialId The credential ID to query
250
+ * @param accountAddress Address of the account
251
+ * @param chain Chain to query on
252
+ * @param provider Optional provider configuration
253
+ * @returns Promise resolving to credential details
254
+ */
255
+ async function getCredentialInfo(credentialId, accountAddress, chain, provider) {
256
+ const publicClient = (0, viem_1.createPublicClient)({
257
+ chain,
258
+ transport: (0, utils_1.createTransport)(chain, provider),
259
+ });
260
+ const result = await publicClient.readContract({
261
+ abi: WEBAUTHN_VALIDATOR_ABI,
262
+ address: core_1.WEBAUTHN_VALIDATOR_ADDRESS,
263
+ functionName: 'getCredentialInfo',
264
+ args: [credentialId, accountAddress],
265
+ });
266
+ const [pubKeyX, pubKeyY, requireUV] = result;
267
+ return { pubKeyX, pubKeyY, requireUV };
268
+ }
269
+ /**
270
+ * Gets the current threshold for an account
271
+ * @param accountAddress Address of the account
272
+ * @param chain Chain to query on
273
+ * @param provider Optional provider configuration
274
+ * @returns Promise resolving to the current threshold
275
+ */
276
+ async function getThreshold(accountAddress, chain, provider) {
277
+ const publicClient = (0, viem_1.createPublicClient)({
278
+ chain,
279
+ transport: (0, utils_1.createTransport)(chain, provider),
280
+ });
281
+ const result = await publicClient.readContract({
282
+ abi: WEBAUTHN_VALIDATOR_ABI,
283
+ address: core_1.WEBAUTHN_VALIDATOR_ADDRESS,
284
+ functionName: 'threshold',
285
+ args: [accountAddress],
286
+ });
287
+ return Number(result);
288
+ }
289
+ /**
290
+ * Gets all credentials for an account with their detailed information
291
+ * @param accountAddress Address of the account
292
+ * @param chain Chain to query on
293
+ * @param provider Optional provider configuration
294
+ * @returns Promise resolving to array of credentials with their details
295
+ */
296
+ async function getCredentials(accountAddress, chain, provider) {
297
+ // First get all credential IDs
298
+ const credentialIds = await getCredentialIds(accountAddress, chain, provider);
299
+ // Then get detailed info for each credential
300
+ const credentials = await Promise.all(credentialIds.map(async (credentialId) => {
301
+ const info = await getCredentialInfo(credentialId, accountAddress, chain, provider);
302
+ return {
303
+ credentialId,
304
+ ...info,
305
+ };
306
+ }));
307
+ return credentials;
308
+ }
@@ -119,10 +119,11 @@ type OwnerSignerSet = {
119
119
  type: 'owner';
120
120
  kind: 'passkey';
121
121
  account: WebAuthnAccount;
122
+ credentialIds: Hex[];
122
123
  } | {
123
124
  type: 'owner';
124
125
  kind: 'multi-factor';
125
- validators: ({
126
+ validators: Array<{
126
127
  type: 'ecdsa';
127
128
  id: number | Hex;
128
129
  accounts: Account[];
@@ -130,7 +131,8 @@ type OwnerSignerSet = {
130
131
  type: 'passkey';
131
132
  id: number | Hex;
132
133
  account: WebAuthnAccount;
133
- })[];
134
+ credentialIds: Hex[];
135
+ }>;
134
136
  };
135
137
  interface SessionSignerSet {
136
138
  type: 'session';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@charterlabs/rhinestone-sdk",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "Rhinestone SDK for Charter Labs",
5
5
  "author": {
6
6
  "name": "Charter Labs",