@rhinestone/sdk 2.0.0-beta.40 → 2.0.0-beta.41
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.
- package/dist/src/accounts/index.d.ts +16 -3
- package/dist/src/accounts/index.d.ts.map +1 -1
- package/dist/src/accounts/index.js +57 -42
- package/dist/src/accounts/signing/common.d.ts +10 -1
- package/dist/src/accounts/signing/common.d.ts.map +1 -1
- package/dist/src/accounts/signing/common.js +41 -36
- package/dist/src/errors/index.d.ts +2 -2
- package/dist/src/errors/index.d.ts.map +1 -1
- package/dist/src/errors/index.js +2 -2
- package/dist/src/execution/error.d.ts +45 -1
- package/dist/src/execution/error.d.ts.map +1 -1
- package/dist/src/execution/error.js +53 -1
- package/dist/src/execution/index.d.ts +2 -2
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +2 -2
- package/dist/src/execution/utils.d.ts +41 -4
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +352 -6
- package/dist/src/index.d.ts +26 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +8 -1
- package/dist/src/orchestrator/consts.d.ts +1 -1
- package/dist/src/orchestrator/consts.js +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { type Address, type Chain, type HashTypedDataParameters, type Hex, type PublicClient, type TypedData } from 'viem';
|
|
1
|
+
import { type Account, type Address, type Chain, type HashTypedDataParameters, type Hex, type PublicClient, type TypedData } from 'viem';
|
|
2
|
+
import type { WebAuthnAccount } from 'viem/account-abstraction';
|
|
2
3
|
import { type Module } from '../modules/common.js';
|
|
3
4
|
import type { ResolvedSessionSignerSet } from '../modules/validators/smart-sessions.js';
|
|
4
5
|
import type { AccountProviderConfig, Call, RhinestoneConfig, SignerSet } from '../types.js';
|
|
@@ -34,9 +35,21 @@ declare function getValidatorInstallationCalls(config: RhinestoneConfig, chain:
|
|
|
34
35
|
declare function getModuleUninstallationCalls(config: RhinestoneConfig, chain: Chain, module: Module): Promise<Call[]>;
|
|
35
36
|
declare function getAddress(config: RhinestoneConfig): `0x${string}`;
|
|
36
37
|
declare function checkAddress(config: RhinestoneConfig): boolean;
|
|
38
|
+
declare function packAccountSignature(config: RhinestoneConfig, signature: Hex, validator: ValidatorConfig, transformSignature?: (signature: Hex) => Hex): Promise<Hex>;
|
|
37
39
|
declare function getEip1271Signature(config: RhinestoneConfig, signers: InternalSignerSet | undefined, chain: Chain, validator: ValidatorConfig, hash: Hex, transformSignature?: (signature: Hex) => Hex): Promise<Hex>;
|
|
38
40
|
declare function getEmissarySignature(config: RhinestoneConfig, signers: InternalSignerSet | undefined, chain: Chain, hash: Hex, transformSignature?: (signature: Hex) => Hex): Promise<Hex>;
|
|
39
41
|
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>, transformSignature?: (signature: Hex) => Hex): Promise<Hex>;
|
|
42
|
+
declare function getOwnerEcdsaSignature<typedData extends TypedData | Record<string, unknown> = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(config: RhinestoneConfig, chain: Chain, parameters: HashTypedDataParameters<typedData, primaryType>, owner: Account, module: Address | undefined, validatorSupportsEip712: boolean): Promise<Hex>;
|
|
43
|
+
declare function getOwnerPasskeySignature<typedData extends TypedData | Record<string, unknown> = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(config: RhinestoneConfig, parameters: HashTypedDataParameters<typedData, primaryType>, owner: WebAuthnAccount, validatorSupportsEip712: boolean): Promise<{
|
|
44
|
+
webauthn: {
|
|
45
|
+
authenticatorData: Hex;
|
|
46
|
+
clientDataJSON: string;
|
|
47
|
+
challengeIndex?: number | undefined;
|
|
48
|
+
typeIndex?: number | undefined;
|
|
49
|
+
userVerificationRequired?: boolean | undefined;
|
|
50
|
+
};
|
|
51
|
+
signature: Hex;
|
|
52
|
+
}>;
|
|
40
53
|
declare function isDeployed(config: RhinestoneConfig, chain: Chain): Promise<boolean>;
|
|
41
54
|
declare function deploy(config: RhinestoneConfig, chain: Chain, params?: {
|
|
42
55
|
sponsored?: boolean;
|
|
@@ -44,8 +57,8 @@ declare function deploy(config: RhinestoneConfig, chain: Chain, params?: {
|
|
|
44
57
|
}): Promise<boolean>;
|
|
45
58
|
declare function setup(config: RhinestoneConfig, chain: Chain): Promise<boolean>;
|
|
46
59
|
declare function toErc6492Signature(config: RhinestoneConfig, signature: Hex, chain: Chain): Promise<Hex>;
|
|
47
|
-
declare function getSmartAccount(config: RhinestoneConfig, client: PublicClient, chain: Chain): Promise<import("viem/
|
|
60
|
+
declare function getSmartAccount(config: RhinestoneConfig, client: PublicClient, chain: Chain): Promise<import("viem/account-abstraction").SmartAccount<import("viem/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">> | undefined>;
|
|
48
61
|
declare function is7702(config: RhinestoneConfig): boolean;
|
|
49
62
|
declare function getAccountProvider(config: RhinestoneConfig): AccountProviderConfig;
|
|
50
|
-
export { getEip712Domain, getModuleInstallationCalls, getValidatorInstallationCalls, getModuleUninstallationCalls, getAddress, checkAddress, getAccountProvider, getInitCode, getV0InitCode, signEip7702InitData, getEip7702InitCall, is7702, isDeployed, deploy, setup, toErc6492Signature, getSmartAccount, getEip1271Signature, getEmissarySignature, getTypedDataPackedSignature, isAccountError, AccountError, AccountConfigurationNotSupportedError, DefaultValidatorAlreadyInitializedError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError, FactoryArgsNotAvailableError, ModuleInstallationNotSupportedError, OwnersFieldRequiredError, SigningNotSupportedForAccountError, WalletClientNoConnectedAccountError, };
|
|
63
|
+
export { getEip712Domain, getModuleInstallationCalls, getValidatorInstallationCalls, getModuleUninstallationCalls, getAddress, checkAddress, getAccountProvider, getInitCode, getV0InitCode, signEip7702InitData, getEip7702InitCall, is7702, isDeployed, deploy, setup, toErc6492Signature, getSmartAccount, getEip1271Signature, getEmissarySignature, getOwnerEcdsaSignature, getOwnerPasskeySignature, getTypedDataPackedSignature, packAccountSignature, isAccountError, AccountError, AccountConfigurationNotSupportedError, DefaultValidatorAlreadyInitializedError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError, FactoryArgsNotAvailableError, ModuleInstallationNotSupportedError, OwnersFieldRequiredError, SigningNotSupportedForAccountError, WalletClientNoConnectedAccountError, };
|
|
51
64
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAKV,KAAK,uBAAuB,EAC5B,KAAK,GAAG,EAGR,KAAK,YAAY,EAEjB,KAAK,SAAS,EAEf,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -337,35 +337,23 @@ function checkAddress(config) {
|
|
|
337
337
|
}
|
|
338
338
|
return initData.address.toLowerCase() === getAddress(config).toLowerCase();
|
|
339
339
|
}
|
|
340
|
-
|
|
341
|
-
async function getEip1271Signature(config, signers, chain, validator, hash, transformSignature = (signature) => signature) {
|
|
342
|
-
if (config.account?.type === 'eoa') {
|
|
343
|
-
throw new EoaSigningNotSupportedError('packed signatures');
|
|
344
|
-
}
|
|
345
|
-
signers = signers ?? convertOwnerSetToSignerSet(config.owners);
|
|
346
|
-
const signFn = (hash) => signMessage(signers, chain, address, hash, false);
|
|
340
|
+
async function packAccountSignature(config, signature, validator, transformSignature = (signature) => signature) {
|
|
347
341
|
const account = getAccountProvider(config);
|
|
348
|
-
const address = getAddress(config);
|
|
349
342
|
switch (account.type) {
|
|
350
343
|
case 'safe': {
|
|
351
|
-
const signature = await signFn(hash);
|
|
352
344
|
return packSafeSignature(signature, validator, transformSignature);
|
|
353
345
|
}
|
|
354
346
|
case 'nexus': {
|
|
355
|
-
const signature = await signFn(hash);
|
|
356
347
|
const defaultValidatorAddress = getNexusDefaultValidatorAddress(account.version);
|
|
357
348
|
return packNexusSignature(signature, validator, transformSignature, defaultValidatorAddress);
|
|
358
349
|
}
|
|
359
350
|
case 'kernel': {
|
|
360
|
-
const signature = await signFn(wrapKernelMessageHash(hash, address));
|
|
361
351
|
return packKernelSignature(signature, validator, transformSignature);
|
|
362
352
|
}
|
|
363
353
|
case 'startale': {
|
|
364
|
-
const signature = await signFn(hash);
|
|
365
354
|
return packStartaleSignature(signature, validator, transformSignature);
|
|
366
355
|
}
|
|
367
356
|
case 'hca': {
|
|
368
|
-
const signature = await signFn(hash);
|
|
369
357
|
return packHcaSignature(signature, validator, transformSignature);
|
|
370
358
|
}
|
|
371
359
|
default: {
|
|
@@ -373,6 +361,17 @@ async function getEip1271Signature(config, signers, chain, validator, hash, tran
|
|
|
373
361
|
}
|
|
374
362
|
}
|
|
375
363
|
}
|
|
364
|
+
async function getEip1271Signature(config, signers, chain, validator, hash, transformSignature = (signature) => signature) {
|
|
365
|
+
if (config.account?.type === 'eoa') {
|
|
366
|
+
throw new EoaSigningNotSupportedError('packed signatures');
|
|
367
|
+
}
|
|
368
|
+
signers = signers ?? convertOwnerSetToSignerSet(config.owners);
|
|
369
|
+
const account = getAccountProvider(config);
|
|
370
|
+
const address = getAddress(config);
|
|
371
|
+
const signedHash = account.type === 'kernel' ? wrapKernelMessageHash(hash, address) : hash;
|
|
372
|
+
const signature = await signMessage(signers, chain, address, signedHash, false);
|
|
373
|
+
return packAccountSignature(config, signature, validator, transformSignature);
|
|
374
|
+
}
|
|
376
375
|
// Signs and packs a signature to be used by the emissary validator
|
|
377
376
|
async function getEmissarySignature(config, signers, chain, hash, transformSignature = (signature) => signature) {
|
|
378
377
|
if (config.account?.type === 'eoa') {
|
|
@@ -391,36 +390,52 @@ async function getTypedDataPackedSignature(config, signers, chain, validator, pa
|
|
|
391
390
|
}
|
|
392
391
|
const address = getAddress(config);
|
|
393
392
|
signers = signers ?? convertOwnerSetToSignerSet(config.owners);
|
|
394
|
-
const signFn = (parameters) => signTypedData(signers, chain, address, parameters);
|
|
395
393
|
const account = getAccountProvider(config);
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
394
|
+
const signature = account.type === 'kernel'
|
|
395
|
+
? await signMessage(signers, chain, address, wrapKernelMessageHash(hashTypedData(parameters), address), false)
|
|
396
|
+
: await signTypedData(signers, chain, address, parameters);
|
|
397
|
+
return packAccountSignature(config, signature, validator, transformSignature);
|
|
398
|
+
}
|
|
399
|
+
async function getOwnerEcdsaSignature(config, chain, parameters, owner, module, validatorSupportsEip712) {
|
|
400
|
+
if (config.account?.type === 'eoa') {
|
|
401
|
+
throw new EoaSigningNotSupportedError('packed signatures');
|
|
402
|
+
}
|
|
403
|
+
const address = getAddress(config);
|
|
404
|
+
const signers = {
|
|
405
|
+
type: 'owner',
|
|
406
|
+
kind: 'ecdsa',
|
|
407
|
+
accounts: [owner],
|
|
408
|
+
module,
|
|
409
|
+
};
|
|
410
|
+
const accountProvider = getAccountProvider(config);
|
|
411
|
+
if (accountProvider.type === 'kernel') {
|
|
412
|
+
return signMessage(signers, chain, address, wrapKernelMessageHash(hashTypedData(parameters), address), false);
|
|
413
|
+
}
|
|
414
|
+
if (!validatorSupportsEip712) {
|
|
415
|
+
return signMessage(signers, chain, address, hashTypedData(parameters), false);
|
|
416
|
+
}
|
|
417
|
+
return signTypedData(signers, chain, address, parameters);
|
|
418
|
+
}
|
|
419
|
+
async function getOwnerPasskeySignature(config, parameters, owner, validatorSupportsEip712) {
|
|
420
|
+
if (config.account?.type === 'eoa') {
|
|
421
|
+
throw new EoaSigningNotSupportedError('packed signatures');
|
|
422
|
+
}
|
|
423
|
+
const address = getAddress(config);
|
|
424
|
+
const accountProvider = getAccountProvider(config);
|
|
425
|
+
if (accountProvider.type === 'kernel') {
|
|
426
|
+
const { webauthn, signature } = await owner.sign({
|
|
427
|
+
hash: wrapKernelMessageHash(hashTypedData(parameters), address),
|
|
428
|
+
});
|
|
429
|
+
return { webauthn, signature };
|
|
430
|
+
}
|
|
431
|
+
if (!validatorSupportsEip712) {
|
|
432
|
+
const { webauthn, signature } = await owner.sign({
|
|
433
|
+
hash: hashTypedData(parameters),
|
|
434
|
+
});
|
|
435
|
+
return { webauthn, signature };
|
|
423
436
|
}
|
|
437
|
+
const { webauthn, signature } = await owner.signTypedData(parameters);
|
|
438
|
+
return { webauthn, signature };
|
|
424
439
|
}
|
|
425
440
|
async function isDeployed(config, chain) {
|
|
426
441
|
const account = getAccountProvider(config);
|
|
@@ -660,6 +675,6 @@ function getAccountProvider(config) {
|
|
|
660
675
|
type: 'nexus',
|
|
661
676
|
};
|
|
662
677
|
}
|
|
663
|
-
export { getEip712Domain, getModuleInstallationCalls, getValidatorInstallationCalls, getModuleUninstallationCalls, getAddress, checkAddress, getAccountProvider, getInitCode, getV0InitCode, signEip7702InitData, getEip7702InitCall, is7702, isDeployed, deploy, setup, toErc6492Signature, getSmartAccount, getEip1271Signature, getEmissarySignature, getTypedDataPackedSignature,
|
|
678
|
+
export { getEip712Domain, getModuleInstallationCalls, getValidatorInstallationCalls, getModuleUninstallationCalls, getAddress, checkAddress, getAccountProvider, getInitCode, getV0InitCode, signEip7702InitData, getEip7702InitCall, is7702, isDeployed, deploy, setup, toErc6492Signature, getSmartAccount, getEip1271Signature, getEmissarySignature, getOwnerEcdsaSignature, getOwnerPasskeySignature, getTypedDataPackedSignature, packAccountSignature,
|
|
664
679
|
// Errors
|
|
665
680
|
isAccountError, AccountError, AccountConfigurationNotSupportedError, DefaultValidatorAlreadyInitializedError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError, FactoryArgsNotAvailableError, ModuleInstallationNotSupportedError, OwnersFieldRequiredError, SigningNotSupportedForAccountError, WalletClientNoConnectedAccountError, };
|
|
@@ -21,9 +21,18 @@ declare function signWithMultiFactorAuth<T>(signers: SignerSet & {
|
|
|
21
21
|
type: 'owner';
|
|
22
22
|
kind: 'multi-factor';
|
|
23
23
|
}, chain: Chain, address: Address, params: T, isUserOpHash: boolean, signMain: (signers: SignerSet, chain: Chain, address: Address, params: T, isUserOpHash: boolean) => Promise<Hex>): Promise<Hex>;
|
|
24
|
+
declare function packMultiFactorOwnerSignatures(entries: {
|
|
25
|
+
id: number | Hex;
|
|
26
|
+
validatorAddress: Address;
|
|
27
|
+
signature: Hex;
|
|
28
|
+
}[]): Hex;
|
|
29
|
+
declare function packPasskeyOwnerSignatures(chain: Chain, address: Address, publicKeys: Hex[], signatures: {
|
|
30
|
+
webauthn: WebAuthnSignMetadata;
|
|
31
|
+
signature: Hex;
|
|
32
|
+
}[], module?: Address): Hex;
|
|
24
33
|
declare function signWithSession(signers: ResolvedSessionSignerSet, chain: Chain, address: Address, hash: Hex, signMain: (signers: SignerSet, chain: Chain, address: Address, hash: Hex, isUserOpHash: boolean) => Promise<Hex>): Promise<Hex>;
|
|
25
34
|
declare function signWithOwners<T>(signers: SignerSet & {
|
|
26
35
|
type: 'owner';
|
|
27
36
|
}, chain: Chain, address: Address, params: T, signingFunctions: SigningFunctions<T>, isUserOpHash: boolean, signMain: (signers: SignerSet, chain: Chain, address: Address, params: T, isUserOpHash: boolean) => Promise<Hex>): Promise<Hex>;
|
|
28
|
-
export { convertOwnerSetToSignerSet, signWithMultiFactorAuth, signWithSession, signWithOwners, type SigningFunctions, };
|
|
37
|
+
export { convertOwnerSetToSignerSet, packMultiFactorOwnerSignatures, packPasskeyOwnerSignatures, signWithMultiFactorAuth, signWithSession, signWithOwners, type SigningFunctions, };
|
|
29
38
|
//# sourceMappingURL=common.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../accounts/signing/common.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,KAAK,EAMV,KAAK,GAAG,EAKT,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAQ/D,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,yCAAyC,CAAA;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAStD,iBAAS,0BAA0B,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAmE/D;AAED,KAAK,oBAAoB,GAAG;IAC1B,iBAAiB,EAAE,GAAG,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,wBAAwB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC/C,CAAA;AAED,KAAK,gBAAgB,CAAC,CAAC,IAAI;IACzB,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAC1E,WAAW,EAAE,CACX,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,CAAC,KACN,OAAO,CAAC;QACX,QAAQ,EAAE,oBAAoB,CAAA;QAC9B,SAAS,EAAE,GAAG,CAAA;KACf,CAAC,CAAA;CACH,CAAA;AAED,iBAAe,uBAAuB,CAAC,CAAC,EACtC,OAAO,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,EAC5D,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,EACT,YAAY,EAAE,OAAO,EACrB,QAAQ,EAAE,CACR,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,EACT,YAAY,EAAE,OAAO,KAClB,OAAO,CAAC,GAAG,CAAC,GAChB,OAAO,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../accounts/signing/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,7 +77,14 @@ async function signWithMultiFactorAuth(signers, chain, address, params, isUserOp
|
|
|
77
77
|
const validatorSigners = convertOwnerSetToSignerSet(validator);
|
|
78
78
|
return signMain(validatorSigners, chain, address, params, isUserOpHash);
|
|
79
79
|
}));
|
|
80
|
-
|
|
80
|
+
return packMultiFactorOwnerSignatures(signers.validators.map((validator, index) => ({
|
|
81
|
+
id: validator.id,
|
|
82
|
+
validatorAddress: getValidator(validator).address,
|
|
83
|
+
signature: signatures[index],
|
|
84
|
+
})));
|
|
85
|
+
}
|
|
86
|
+
function packMultiFactorOwnerSignatures(entries) {
|
|
87
|
+
return encodeAbiParameters([
|
|
81
88
|
{
|
|
82
89
|
components: [
|
|
83
90
|
{
|
|
@@ -91,20 +98,38 @@ async function signWithMultiFactorAuth(signers, chain, address, params, isUserOp
|
|
|
91
98
|
type: 'tuple[]',
|
|
92
99
|
},
|
|
93
100
|
], [
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
data: signatures[index],
|
|
104
|
-
};
|
|
105
|
-
}),
|
|
101
|
+
entries.map((entry) => ({
|
|
102
|
+
packedValidatorAndId: concat([
|
|
103
|
+
pad(toHex(entry.id), {
|
|
104
|
+
size: 12,
|
|
105
|
+
}),
|
|
106
|
+
entry.validatorAddress,
|
|
107
|
+
]),
|
|
108
|
+
data: entry.signature,
|
|
109
|
+
})),
|
|
106
110
|
]);
|
|
107
|
-
|
|
111
|
+
}
|
|
112
|
+
function packPasskeyOwnerSignatures(chain, address, publicKeys, signatures, module) {
|
|
113
|
+
const usePrecompile = isRip7212SupportedNetwork(chain);
|
|
114
|
+
const credIds = publicKeys.map((publicKey) => {
|
|
115
|
+
const { x, y } = parsePublicKey(publicKey);
|
|
116
|
+
return generateCredentialId(x, y, address);
|
|
117
|
+
});
|
|
118
|
+
const webAuthns = signatures.map((signature) => {
|
|
119
|
+
const { r, s } = parseSignature(signature.signature);
|
|
120
|
+
return {
|
|
121
|
+
authenticatorData: signature.webauthn.authenticatorData,
|
|
122
|
+
clientDataJSON: signature.webauthn.clientDataJSON,
|
|
123
|
+
challengeIndex: BigInt(signature.webauthn.challengeIndex ?? 0),
|
|
124
|
+
typeIndex: BigInt(signature.webauthn.typeIndex ?? 0),
|
|
125
|
+
r,
|
|
126
|
+
s,
|
|
127
|
+
};
|
|
128
|
+
});
|
|
129
|
+
if (module?.toLowerCase() === WEBAUTHN_V0_VALIDATOR_ADDRESS) {
|
|
130
|
+
return packPasskeySignatureV0(webAuthns[0], usePrecompile);
|
|
131
|
+
}
|
|
132
|
+
return packPasskeySignature(credIds, usePrecompile, webAuthns);
|
|
108
133
|
}
|
|
109
134
|
async function signWithSession(signers, chain, address, hash, signMain) {
|
|
110
135
|
const sessionSigners = convertOwnerSetToSignerSet(signers.session.owners);
|
|
@@ -148,27 +173,7 @@ async function signWithOwners(signers, chain, address, params, signingFunctions,
|
|
|
148
173
|
}
|
|
149
174
|
case 'passkey': {
|
|
150
175
|
const signatures = await Promise.all(signers.accounts.map((account) => signingFunctions.signPasskey(account, params)));
|
|
151
|
-
|
|
152
|
-
const credIds = signers.accounts.map((account) => {
|
|
153
|
-
const publicKey = account.publicKey;
|
|
154
|
-
const { x, y } = parsePublicKey(publicKey);
|
|
155
|
-
return generateCredentialId(x, y, address);
|
|
156
|
-
});
|
|
157
|
-
const webAuthns = signatures.map((signature) => {
|
|
158
|
-
const { r, s } = parseSignature(signature.signature);
|
|
159
|
-
return {
|
|
160
|
-
authenticatorData: signature.webauthn.authenticatorData,
|
|
161
|
-
clientDataJSON: signature.webauthn.clientDataJSON,
|
|
162
|
-
challengeIndex: BigInt(signature.webauthn.challengeIndex ?? 0),
|
|
163
|
-
typeIndex: BigInt(signature.webauthn.typeIndex ?? 0),
|
|
164
|
-
r,
|
|
165
|
-
s,
|
|
166
|
-
};
|
|
167
|
-
});
|
|
168
|
-
if (signers.module?.toLowerCase() === WEBAUTHN_V0_VALIDATOR_ADDRESS) {
|
|
169
|
-
return packPasskeySignatureV0(webAuthns[0], usePrecompile);
|
|
170
|
-
}
|
|
171
|
-
return packPasskeySignature(credIds, usePrecompile, webAuthns);
|
|
176
|
+
return packPasskeyOwnerSignatures(chain, address, signers.accounts.map((account) => account.publicKey), signatures, signers.module);
|
|
172
177
|
}
|
|
173
178
|
case 'multi-factor': {
|
|
174
179
|
return signWithMultiFactorAuth(signers, chain, address, params, isUserOpHash, signMain);
|
|
@@ -178,4 +183,4 @@ async function signWithOwners(signers, chain, address, params, signingFunctions,
|
|
|
178
183
|
}
|
|
179
184
|
}
|
|
180
185
|
}
|
|
181
|
-
export { convertOwnerSetToSignerSet, signWithMultiFactorAuth, signWithSession, signWithOwners, };
|
|
186
|
+
export { convertOwnerSetToSignerSet, packMultiFactorOwnerSignatures, packPasskeyOwnerSignatures, signWithMultiFactorAuth, signWithSession, signWithOwners, };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AccountConfigurationNotSupportedError, AccountError, DefaultValidatorAlreadyInitializedError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError, FactoryArgsNotAvailableError, isAccountError, ModuleInstallationNotSupportedError, OwnersFieldRequiredError, SigningNotSupportedForAccountError, WalletClientNoConnectedAccountError } from '../accounts/index.js';
|
|
2
|
-
import { Eip7702InitSignatureRequiredError, ExecutionError, IntentFailedError, InvalidSourceCallsError, isExecutionError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError } from '../execution/index.js';
|
|
2
|
+
import { Eip7702InitSignatureRequiredError, ExecutionError, IndependentSigningNotSupportedError, InsufficientOwnerSignaturesError, IntentFailedError, InvalidOwnerSigningOptionsError, InvalidSourceCallsError, isExecutionError, MismatchedOwnerSignaturesError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, UnknownOwnerError } from '../execution/index.js';
|
|
3
3
|
import type { ErrorDetail } from '../orchestrator/index.js';
|
|
4
4
|
import { ConflictError, ExternalServiceTimeoutError, ForbiddenError, InsufficientLiquidityError, InternalServerError, isAuthError, isOrchestratorError, isRateLimited, isRetryable, isSimulationFailed, isValidationError, KeyScopeDeniedError, NotFoundError, OrchestratorError, RateLimitedError, RelayerMarketUnavailableError, SettlementExecutionError, SettlementQuoteError, SimulationFailedError, UnauthorizedError, UnprocessableContentError, UnsupportedChainError, UnsupportedTokenError, ValidationError } from '../orchestrator/index.js';
|
|
5
5
|
export type { ErrorDetail };
|
|
6
|
-
export { isAccountError, AccountError, AccountConfigurationNotSupportedError, DefaultValidatorAlreadyInitializedError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError, FactoryArgsNotAvailableError, ModuleInstallationNotSupportedError, OwnersFieldRequiredError, SigningNotSupportedForAccountError, WalletClientNoConnectedAccountError, isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, IntentFailedError, InvalidSourceCallsError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, isOrchestratorError, isRetryable, isAuthError, isValidationError, isRateLimited, isSimulationFailed, ConflictError, ExternalServiceTimeoutError, ForbiddenError, InsufficientLiquidityError, InternalServerError, KeyScopeDeniedError, NotFoundError, OrchestratorError, RateLimitedError, RelayerMarketUnavailableError, SimulationFailedError, SettlementExecutionError, SettlementQuoteError, UnauthorizedError, UnprocessableContentError, ValidationError, UnsupportedChainError, UnsupportedTokenError, };
|
|
6
|
+
export { isAccountError, AccountError, AccountConfigurationNotSupportedError, DefaultValidatorAlreadyInitializedError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError, FactoryArgsNotAvailableError, ModuleInstallationNotSupportedError, OwnersFieldRequiredError, SigningNotSupportedForAccountError, WalletClientNoConnectedAccountError, isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, IndependentSigningNotSupportedError, InsufficientOwnerSignaturesError, IntentFailedError, InvalidOwnerSigningOptionsError, InvalidSourceCallsError, MismatchedOwnerSignaturesError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, UnknownOwnerError, isOrchestratorError, isRetryable, isAuthError, isValidationError, isRateLimited, isSimulationFailed, ConflictError, ExternalServiceTimeoutError, ForbiddenError, InsufficientLiquidityError, InternalServerError, KeyScopeDeniedError, NotFoundError, OrchestratorError, RateLimitedError, RelayerMarketUnavailableError, SimulationFailedError, SettlementExecutionError, SettlementQuoteError, UnauthorizedError, UnprocessableContentError, ValidationError, UnsupportedChainError, UnsupportedTokenError, };
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qCAAqC,EACrC,YAAY,EACZ,uCAAuC,EACvC,6BAA6B,EAC7B,8BAA8B,EAC9B,kCAAkC,EAClC,8BAA8B,EAC9B,kCAAkC,EAClC,2BAA2B,EAC3B,4BAA4B,EAC5B,cAAc,EACd,mCAAmC,EACnC,wBAAwB,EACxB,kCAAkC,EAClC,mCAAmC,EACpC,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,iCAAiC,EACjC,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,gCAAgC,EAChC,kCAAkC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qCAAqC,EACrC,YAAY,EACZ,uCAAuC,EACvC,6BAA6B,EAC7B,8BAA8B,EAC9B,kCAAkC,EAClC,8BAA8B,EAC9B,kCAAkC,EAClC,2BAA2B,EAC3B,4BAA4B,EAC5B,cAAc,EACd,mCAAmC,EACnC,wBAAwB,EACxB,kCAAkC,EAClC,mCAAmC,EACpC,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,iCAAiC,EACjC,cAAc,EACd,mCAAmC,EACnC,gCAAgC,EAChC,iBAAiB,EACjB,+BAA+B,EAC/B,uBAAuB,EACvB,gBAAgB,EAChB,8BAA8B,EAC9B,gCAAgC,EAChC,kCAAkC,EAClC,iBAAiB,EAClB,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EACL,aAAa,EACb,2BAA2B,EAC3B,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,6BAA6B,EAC7B,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EAChB,MAAM,iBAAiB,CAAA;AAExB,YAAY,EAAE,WAAW,EAAE,CAAA;AAE3B,OAAO,EAEL,cAAc,EACd,YAAY,EACZ,qCAAqC,EACrC,uCAAuC,EACvC,6BAA6B,EAC7B,8BAA8B,EAC9B,kCAAkC,EAClC,8BAA8B,EAC9B,kCAAkC,EAClC,2BAA2B,EAC3B,4BAA4B,EAC5B,mCAAmC,EACnC,wBAAwB,EACxB,kCAAkC,EAClC,mCAAmC,EAEnC,gBAAgB,EAChB,cAAc,EACd,iCAAiC,EACjC,mCAAmC,EACnC,gCAAgC,EAChC,iBAAiB,EACjB,+BAA+B,EAC/B,uBAAuB,EACvB,8BAA8B,EAC9B,gCAAgC,EAChC,kCAAkC,EAClC,iBAAiB,EAEjB,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,aAAa,EACb,2BAA2B,EAC3B,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,6BAA6B,EAC7B,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,eAAe,EAEf,qBAAqB,EACrB,qBAAqB,GACtB,CAAA"}
|
package/dist/src/errors/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { AccountConfigurationNotSupportedError, AccountError, DefaultValidatorAlreadyInitializedError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError, FactoryArgsNotAvailableError, isAccountError, ModuleInstallationNotSupportedError, OwnersFieldRequiredError, SigningNotSupportedForAccountError, WalletClientNoConnectedAccountError, } from '../accounts/index.js';
|
|
2
|
-
import { Eip7702InitSignatureRequiredError, ExecutionError, IntentFailedError, InvalidSourceCallsError, isExecutionError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, } from '../execution/index.js';
|
|
2
|
+
import { Eip7702InitSignatureRequiredError, ExecutionError, IndependentSigningNotSupportedError, InsufficientOwnerSignaturesError, IntentFailedError, InvalidOwnerSigningOptionsError, InvalidSourceCallsError, isExecutionError, MismatchedOwnerSignaturesError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, UnknownOwnerError, } from '../execution/index.js';
|
|
3
3
|
import { ConflictError, ExternalServiceTimeoutError, ForbiddenError, InsufficientLiquidityError, InternalServerError, isAuthError, isOrchestratorError, isRateLimited, isRetryable, isSimulationFailed, isValidationError, KeyScopeDeniedError, NotFoundError, OrchestratorError, RateLimitedError, RelayerMarketUnavailableError, SettlementExecutionError, SettlementQuoteError, SimulationFailedError, UnauthorizedError, UnprocessableContentError, UnsupportedChainError, UnsupportedTokenError, ValidationError, } from '../orchestrator/index.js';
|
|
4
4
|
export {
|
|
5
5
|
// Account
|
|
6
6
|
isAccountError, AccountError, AccountConfigurationNotSupportedError, DefaultValidatorAlreadyInitializedError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError, FactoryArgsNotAvailableError, ModuleInstallationNotSupportedError, OwnersFieldRequiredError, SigningNotSupportedForAccountError, WalletClientNoConnectedAccountError,
|
|
7
7
|
// Execution
|
|
8
|
-
isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, IntentFailedError, InvalidSourceCallsError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError,
|
|
8
|
+
isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, IndependentSigningNotSupportedError, InsufficientOwnerSignaturesError, IntentFailedError, InvalidOwnerSigningOptionsError, InvalidSourceCallsError, MismatchedOwnerSignaturesError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, UnknownOwnerError,
|
|
9
9
|
// Orchestrator
|
|
10
10
|
isOrchestratorError, isRetryable, isAuthError, isValidationError, isRateLimited, isSimulationFailed, ConflictError, ExternalServiceTimeoutError, ForbiddenError, InsufficientLiquidityError, InternalServerError, KeyScopeDeniedError, NotFoundError, OrchestratorError, RateLimitedError, RelayerMarketUnavailableError, SimulationFailedError, SettlementExecutionError, SettlementQuoteError, UnauthorizedError, UnprocessableContentError, ValidationError,
|
|
11
11
|
// Registry (SDK-local validation)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Hex } from 'viem';
|
|
1
2
|
declare class ExecutionError extends Error {
|
|
2
3
|
private readonly _message;
|
|
3
4
|
private readonly _context;
|
|
@@ -53,6 +54,49 @@ declare class Eip7702InitSignatureRequiredError extends ExecutionError {
|
|
|
53
54
|
traceId?: string;
|
|
54
55
|
});
|
|
55
56
|
}
|
|
57
|
+
declare class UnknownOwnerError extends ExecutionError {
|
|
58
|
+
constructor(params?: {
|
|
59
|
+
context?: {
|
|
60
|
+
signer?: string;
|
|
61
|
+
publicKey?: string;
|
|
62
|
+
validatorId?: number | Hex;
|
|
63
|
+
};
|
|
64
|
+
errorType?: string;
|
|
65
|
+
traceId?: string;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
declare class MismatchedOwnerSignaturesError extends ExecutionError {
|
|
69
|
+
constructor(params?: {
|
|
70
|
+
message?: string;
|
|
71
|
+
context?: any;
|
|
72
|
+
errorType?: string;
|
|
73
|
+
traceId?: string;
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
declare class InsufficientOwnerSignaturesError extends ExecutionError {
|
|
77
|
+
constructor(params?: {
|
|
78
|
+
required?: number;
|
|
79
|
+
provided?: number;
|
|
80
|
+
validatorId?: number | Hex;
|
|
81
|
+
context?: any;
|
|
82
|
+
errorType?: string;
|
|
83
|
+
traceId?: string;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
declare class InvalidOwnerSigningOptionsError extends ExecutionError {
|
|
87
|
+
constructor(params?: {
|
|
88
|
+
context?: any;
|
|
89
|
+
errorType?: string;
|
|
90
|
+
traceId?: string;
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
declare class IndependentSigningNotSupportedError extends ExecutionError {
|
|
94
|
+
constructor(params?: {
|
|
95
|
+
context?: any;
|
|
96
|
+
errorType?: string;
|
|
97
|
+
traceId?: string;
|
|
98
|
+
});
|
|
99
|
+
}
|
|
56
100
|
declare function isExecutionError(error: Error): error is ExecutionError;
|
|
57
|
-
export { isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, InvalidSourceCallsError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, IntentFailedError, };
|
|
101
|
+
export { isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, IndependentSigningNotSupportedError, InsufficientOwnerSignaturesError, InvalidOwnerSigningOptionsError, InvalidSourceCallsError, MismatchedOwnerSignaturesError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, IntentFailedError, UnknownOwnerError, };
|
|
58
102
|
//# sourceMappingURL=error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../execution/error.ts"],"names":[],"mappings":"AAAA,cAAM,cAAe,SAAQ,KAAK;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;gBAErB,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;IAQD,IAAI,OAAO,WAEV;IAED,IAAI,OAAO,QAEV;IAED,IAAI,SAAS,WAEZ;IAED,IAAI,OAAO,WAEV;CACF;AAED,cAAM,gCAAiC,SAAQ,cAAc;gBAC/C,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAMF;AAED,cAAM,iBAAkB,SAAQ,cAAc;gBAChC,MAAM,CAAC,EAAE;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAMF;AAED,cAAM,kCAAmC,SAAQ,cAAc;gBACjD,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAOF;AAED,cAAM,uBAAwB,SAAQ,cAAc;gBACtC,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CASF;AAED,cAAM,iCAAkC,SAAQ,cAAc;gBAChD,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAOF;AAED,iBAAS,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,IAAI,cAAc,CAE/D;AAED,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,iCAAiC,EACjC,uBAAuB,EACvB,gCAAgC,EAChC,kCAAkC,EAClC,iBAAiB,GAClB,CAAA"}
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../execution/error.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,7 +65,59 @@ class Eip7702InitSignatureRequiredError extends ExecutionError {
|
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
+
class UnknownOwnerError extends ExecutionError {
|
|
69
|
+
constructor(params) {
|
|
70
|
+
super({
|
|
71
|
+
message: 'The provided owner is not part of the account owner set. Pass an account that matches one of the configured `owners` (for multi-factor owner sets, also pass the matching `validatorId`).',
|
|
72
|
+
...params,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
class MismatchedOwnerSignaturesError extends ExecutionError {
|
|
77
|
+
constructor(params) {
|
|
78
|
+
super({
|
|
79
|
+
message: params?.message ??
|
|
80
|
+
'Owner signatures are inconsistent and cannot be assembled. All owners must sign the same prepared transaction and quote using `signTransaction` with the `owner` option.',
|
|
81
|
+
...params,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
class InsufficientOwnerSignaturesError extends ExecutionError {
|
|
86
|
+
constructor(params) {
|
|
87
|
+
super({
|
|
88
|
+
message: params?.required !== undefined
|
|
89
|
+
? params?.validatorId !== undefined
|
|
90
|
+
? `Not enough owner signatures to meet the threshold of validator ${params.validatorId}: ${params.provided ?? 0} of ${params.required} required. Collect the missing owner signatures before calling \`assembleTransaction\`.`
|
|
91
|
+
: `Not enough owner signatures to meet the account threshold: ${params.provided ?? 0} of ${params.required} required. Collect the missing owner signatures before calling \`assembleTransaction\`.`
|
|
92
|
+
: 'Not enough owner signatures to meet the account threshold. Collect the missing owner signatures before calling `assembleTransaction`.',
|
|
93
|
+
context: {
|
|
94
|
+
required: params?.required,
|
|
95
|
+
provided: params?.provided,
|
|
96
|
+
validatorId: params?.validatorId,
|
|
97
|
+
...params?.context,
|
|
98
|
+
},
|
|
99
|
+
errorType: params?.errorType,
|
|
100
|
+
traceId: params?.traceId,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
class InvalidOwnerSigningOptionsError extends ExecutionError {
|
|
105
|
+
constructor(params) {
|
|
106
|
+
super({
|
|
107
|
+
message: 'Invalid per-owner signing options. Pass `validatorId` only for multi-factor accounts, where it must identify the factor containing `owner`.',
|
|
108
|
+
...params,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
class IndependentSigningNotSupportedError extends ExecutionError {
|
|
113
|
+
constructor(params) {
|
|
114
|
+
super({
|
|
115
|
+
message: 'Independent owner signing is only supported for smart accounts using ECDSA, passkey, or multi-factor owners. EOA accounts, smart sessions, and K1/ERC-7739 validators must use the standard `signTransaction` flow.',
|
|
116
|
+
...params,
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
68
120
|
function isExecutionError(error) {
|
|
69
121
|
return error instanceof ExecutionError;
|
|
70
122
|
}
|
|
71
|
-
export { isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, InvalidSourceCallsError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, IntentFailedError, };
|
|
123
|
+
export { isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, IndependentSigningNotSupportedError, InsufficientOwnerSignaturesError, InvalidOwnerSigningOptionsError, InvalidSourceCallsError, MismatchedOwnerSignaturesError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, IntentFailedError, UnknownOwnerError, };
|
|
@@ -4,7 +4,7 @@ import { type AuthProvider } from '../auth/provider.js';
|
|
|
4
4
|
import { type IntentOpStatus, type SplitIntentsInput } from '../orchestrator/index.js';
|
|
5
5
|
import type { AppFeeRate, SettlementLayerFilter } from '../orchestrator/types.js';
|
|
6
6
|
import type { CalldataInput, CallInput, RhinestoneAccountConfig, RhinestoneConfig, SignerSet, SourceAssetInput, SourceCallInput, Sponsorship, TokenRequest, UserOperationTransaction } from '../types.js';
|
|
7
|
-
import { Eip7702InitSignatureRequiredError, ExecutionError, IntentFailedError, InvalidSourceCallsError, isExecutionError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError } from './error.js';
|
|
7
|
+
import { Eip7702InitSignatureRequiredError, ExecutionError, IndependentSigningNotSupportedError, InsufficientOwnerSignaturesError, IntentFailedError, InvalidOwnerSigningOptionsError, InvalidSourceCallsError, isExecutionError, MismatchedOwnerSignaturesError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, UnknownOwnerError } from './error.js';
|
|
8
8
|
import type { TransactionResult, UserOperationResult } from './utils.js';
|
|
9
9
|
interface TransactionStatus {
|
|
10
10
|
/** OpenTelemetry trace ID for correlating the status response. */
|
|
@@ -36,6 +36,6 @@ declare function getPortfolio(config: RhinestoneConfig, onTestnets: boolean): Pr
|
|
|
36
36
|
declare function getAppFeeBalances(authProvider: AuthProvider, endpointUrl: string | undefined, headers?: Record<string, string>): Promise<import("../orchestrator/index.js").AppFeeBalances>;
|
|
37
37
|
declare function getIntentStatus(authProvider: AuthProvider, endpointUrl: string | undefined, intentId: string, headers?: Record<string, string>): Promise<TransactionStatus>;
|
|
38
38
|
declare function splitIntents(authProvider: AuthProvider, endpointUrl: string | undefined, input: SplitIntentsInput, headers?: Record<string, string>): Promise<import("../orchestrator/index.js").SplitIntentsResult>;
|
|
39
|
-
export { sendTransactionInternal, sendUserOperation, sendUserOperationInternal, waitForExecution, getPortfolio, getAppFeeBalances, getIntentStatus, splitIntents, isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, IntentFailedError, InvalidSourceCallsError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, };
|
|
39
|
+
export { sendTransactionInternal, sendUserOperation, sendUserOperationInternal, waitForExecution, getPortfolio, getAppFeeBalances, getIntentStatus, splitIntents, isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, IndependentSigningNotSupportedError, InsufficientOwnerSignaturesError, IntentFailedError, InvalidOwnerSigningOptionsError, InvalidSourceCallsError, MismatchedOwnerSignaturesError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, UnknownOwnerError, };
|
|
40
40
|
export type { TransactionStatus, TransactionResult, UserOperationResult };
|
|
41
41
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAsB,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AAC7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAGpE,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,kBAAkB,CAAA;AACxE,OAAO,EAIL,KAAK,cAAc,EAInB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AAOxB,OAAO,KAAK,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EAET,uBAAuB,EACvB,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,wBAAwB,EACzB,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,iCAAiC,EACjC,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,gCAAgC,EAChC,kCAAkC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../execution/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { createTransport, getBundlerClient } from '../accounts/utils.js';
|
|
|
4
4
|
import { createAuthProvider } from '../auth/provider.js';
|
|
5
5
|
import { getOrchestrator, INTENT_STATUS_COMPLETED, INTENT_STATUS_FAILED, isConnectionError, isRateLimited, isRetryable, } from '../orchestrator/index.js';
|
|
6
6
|
import { getChainById, getSupportedChainIds, isTestnet, } from '../orchestrator/registry.js';
|
|
7
|
-
import { Eip7702InitSignatureRequiredError, ExecutionError, IntentFailedError, InvalidSourceCallsError, isExecutionError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, } from './error.js';
|
|
7
|
+
import { Eip7702InitSignatureRequiredError, ExecutionError, IndependentSigningNotSupportedError, InsufficientOwnerSignaturesError, IntentFailedError, InvalidOwnerSigningOptionsError, InvalidSourceCallsError, isExecutionError, MismatchedOwnerSignaturesError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, UnknownOwnerError, } from './error.js';
|
|
8
8
|
import { getTargetExecutionSignature, getTokenRequests, getValidatorAccount, parseCalls, prepareTransactionAsIntent, resolveCallInputs, signAuthorizationsInternal, signIntent, submitIntentInternal, } from './utils.js';
|
|
9
9
|
const POLL_INITIAL_MS = 500;
|
|
10
10
|
const POLL_SLOW_AFTER_MS = 15000;
|
|
@@ -184,4 +184,4 @@ async function splitIntents(authProvider, endpointUrl, input, headers) {
|
|
|
184
184
|
}
|
|
185
185
|
export { sendTransactionInternal, sendUserOperation, sendUserOperationInternal, waitForExecution, getPortfolio, getAppFeeBalances, getIntentStatus, splitIntents,
|
|
186
186
|
// Errors
|
|
187
|
-
isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, IntentFailedError, InvalidSourceCallsError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, };
|
|
187
|
+
isExecutionError, ExecutionError, Eip7702InitSignatureRequiredError, IndependentSigningNotSupportedError, InsufficientOwnerSignaturesError, IntentFailedError, InvalidOwnerSigningOptionsError, InvalidSourceCallsError, MismatchedOwnerSignaturesError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, UnknownOwnerError, };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type Address, type Chain, type HashTypedDataParameters, type Hex, type PublicClient, type SignableMessage, type SignedAuthorization, type SignedAuthorizationList, type TypedData, type TypedDataDefinition, type TypedDataDomain } from 'viem';
|
|
2
|
-
import { type UserOperation } from 'viem/account-abstraction';
|
|
1
|
+
import { type Account, type Address, type Chain, type HashTypedDataParameters, type Hex, type PublicClient, type SignableMessage, type SignedAuthorization, type SignedAuthorizationList, type TypedData, type TypedDataDefinition, type TypedDataDomain } from 'viem';
|
|
2
|
+
import { type UserOperation, type WebAuthnAccount } from 'viem/account-abstraction';
|
|
3
3
|
import { type ResolvedSessionSignerSet } from '../modules/validators/smart-sessions.js';
|
|
4
4
|
import { type Quote, type SignData } from '../orchestrator/index.js';
|
|
5
5
|
import { type DestinationChain, type NonEvmAddress } from '../orchestrator/destinations.js';
|
|
@@ -36,6 +36,41 @@ interface PreparedTransactionData {
|
|
|
36
36
|
interface QuoteSelection {
|
|
37
37
|
intentId: string;
|
|
38
38
|
}
|
|
39
|
+
interface SignAsOwnerOptions {
|
|
40
|
+
/** Account that contributes this signature. Must belong to the configured owner set. */
|
|
41
|
+
owner: Account | WebAuthnAccount;
|
|
42
|
+
/** Multi-factor validator ID containing `owner`. Required only for multi-factor accounts. */
|
|
43
|
+
validatorId?: number | Hex;
|
|
44
|
+
/** Quote to sign. Defaults to `preparedTransaction.quotes.best`. */
|
|
45
|
+
intentId?: string;
|
|
46
|
+
}
|
|
47
|
+
interface OwnerPasskeySignature {
|
|
48
|
+
webauthn: {
|
|
49
|
+
authenticatorData: Hex;
|
|
50
|
+
challengeIndex?: number;
|
|
51
|
+
clientDataJSON: string;
|
|
52
|
+
typeIndex?: number;
|
|
53
|
+
userVerificationRequired?: boolean;
|
|
54
|
+
};
|
|
55
|
+
signature: Hex;
|
|
56
|
+
}
|
|
57
|
+
type OwnerSignatureData = {
|
|
58
|
+
kind: 'ecdsa';
|
|
59
|
+
signer: Address;
|
|
60
|
+
origin: Hex[];
|
|
61
|
+
} | {
|
|
62
|
+
kind: 'passkey';
|
|
63
|
+
publicKey: Hex;
|
|
64
|
+
origin: OwnerPasskeySignature[];
|
|
65
|
+
};
|
|
66
|
+
type OwnerSignature = ({
|
|
67
|
+
intentId: string;
|
|
68
|
+
} & OwnerSignatureData) | {
|
|
69
|
+
intentId: string;
|
|
70
|
+
kind: 'multi-factor';
|
|
71
|
+
validatorId: number | Hex;
|
|
72
|
+
signature: OwnerSignatureData;
|
|
73
|
+
};
|
|
39
74
|
interface PreparedUserOperationData {
|
|
40
75
|
userOperation: UserOperation;
|
|
41
76
|
hash: Hex;
|
|
@@ -58,7 +93,9 @@ declare function getTransactionMessages(_config: RhinestoneConfig, preparedTrans
|
|
|
58
93
|
destination: TypedDataDefinition;
|
|
59
94
|
targetExecution?: TypedDataDefinition;
|
|
60
95
|
};
|
|
96
|
+
declare function signTransaction(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData, options: SignAsOwnerOptions): Promise<OwnerSignature>;
|
|
61
97
|
declare function signTransaction(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData, options?: QuoteSelection): Promise<SignedTransactionData>;
|
|
98
|
+
declare function assembleTransaction(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData, signatures: OwnerSignature[]): Promise<SignedTransactionData>;
|
|
62
99
|
declare function getTargetExecutionSignature(config: RhinestoneConfig, signData: SignData, targetChain: DestinationChain, signers: SignerSet | undefined): Promise<`0x${string}` | undefined>;
|
|
63
100
|
declare function signUserOperation(config: RhinestoneConfig, preparedUserOperation: PreparedUserOperationData): Promise<SignedUserOperationData>;
|
|
64
101
|
declare function signAuthorizations(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData): Promise<SignedAuthorization[]>;
|
|
@@ -125,6 +162,6 @@ declare function hashErc7739TypedDataForSolady({ domain, types, primaryType, mes
|
|
|
125
162
|
salt: Hex;
|
|
126
163
|
};
|
|
127
164
|
}): Hex;
|
|
128
|
-
export { prepareTransaction, getTransactionMessages, signTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, prepareUserOperation, signUserOperation, submitUserOperation, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, getTokenRequests, resolveCallInputs, getIntentAccount, getTargetExecutionSignature, hashErc7739TypedDataForSolady, resolveSessionForChain, resolveSignatureMode, };
|
|
129
|
-
export type { InternalSignerSet, TransactionResult, PreparedQuotes, PreparedTransactionData, PreparedUserOperationData, QuoteSelection, SignedTransactionData, SignedUserOperationData, UserOperationResult, };
|
|
165
|
+
export { prepareTransaction, getTransactionMessages, signTransaction, assembleTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, prepareUserOperation, signUserOperation, submitUserOperation, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, getTokenRequests, resolveCallInputs, getIntentAccount, getTargetExecutionSignature, hashErc7739TypedDataForSolady, resolveSessionForChain, resolveSignatureMode, };
|
|
166
|
+
export type { InternalSignerSet, TransactionResult, PreparedQuotes, PreparedTransactionData, PreparedUserOperationData, OwnerPasskeySignature, OwnerSignature, OwnerSignatureData, QuoteSelection, SignAsOwnerOptions, SignedTransactionData, SignedUserOperationData, UserOperationResult, };
|
|
130
167
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAMV,KAAK,uBAAuB,EAC5B,KAAK,GAAG,EAOR,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { concat, createPublicClient, createWalletClient, encodeAbiParameters, encodePacked, hashDomain, hashMessage, hashStruct, hashTypedData, isAddress, keccak256, publicActions, toHex, } from 'viem';
|
|
1
|
+
import { concat, createPublicClient, createWalletClient, encodeAbiParameters, encodePacked, hashDomain, hashMessage, hashStruct, hashTypedData, isAddress, keccak256, pad, publicActions, toHex, } from 'viem';
|
|
2
2
|
import { entryPoint07Address, getUserOperationHash, } from 'viem/account-abstraction';
|
|
3
3
|
import { wrapTypedDataSignature } from 'viem/experimental/erc7739';
|
|
4
|
-
import { EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, FactoryArgsNotAvailableError, getAccountProvider, getAddress, getEip712Domain, getEip1271Signature, getEip7702InitCall, getEmissarySignature, getInitCode, getSmartAccount, getTypedDataPackedSignature, is7702, toErc6492Signature, } from '../accounts/index.js';
|
|
5
|
-
import { convertOwnerSetToSignerSet } from '../accounts/signing/common.js';
|
|
4
|
+
import { EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, FactoryArgsNotAvailableError, getAccountProvider, getAddress, getEip712Domain, getEip1271Signature, getEip7702InitCall, getEmissarySignature, getInitCode, getOwnerEcdsaSignature, getOwnerPasskeySignature, getSmartAccount, getTypedDataPackedSignature, is7702, packAccountSignature, toErc6492Signature, } from '../accounts/index.js';
|
|
5
|
+
import { convertOwnerSetToSignerSet, packMultiFactorOwnerSignatures, packPasskeyOwnerSignatures, } from '../accounts/signing/common.js';
|
|
6
6
|
import { K1_DEFAULT_VALIDATOR_ADDRESS } from '../accounts/startale.js';
|
|
7
7
|
import { createTransport, getBundlerClient, } from '../accounts/utils.js';
|
|
8
8
|
import { createAuthProvider } from '../auth/provider.js';
|
|
9
9
|
import { buildMockSignature, DUMMY_PRECLAIMOP_SELECTOR, DUMMY_PRECLAIMOP_TARGET, getOwnerValidator, getPermissionId, getSmartSessionValidator, isSessionEnabled, } from '../modules/validators/index.js';
|
|
10
|
-
import { getMultiFactorValidator, getWebAuthnValidator, supportsEip712, } from '../modules/validators/core.js';
|
|
10
|
+
import { getMultiFactorValidator, getValidator as getValidatorModule, getWebAuthnValidator, supportsEip712, } from '../modules/validators/core.js';
|
|
11
11
|
import { buildPermit2ClaimPolicyCalldata, } from '../modules/validators/policies/claim/permit2.js';
|
|
12
12
|
import { resolvePermit2ClaimPolicy, selectPermit2ClaimPolicyForMessage, } from '../modules/validators/smart-sessions.js';
|
|
13
13
|
import { getOrchestrator, } from '../orchestrator/index.js';
|
|
@@ -16,7 +16,7 @@ import { getChainId, isNonEvmChain, } from '../orchestrator/destinations.js';
|
|
|
16
16
|
import { getChainById, getTokenAddress, resolveTokenAddress, } from '../orchestrator/registry.js';
|
|
17
17
|
import { SIG_MODE_EMISSARY_EXECUTION_ERC1271, SIG_MODE_ERC1271, } from '../orchestrator/types.js';
|
|
18
18
|
import { convertBigIntFields } from '../orchestrator/utils.js';
|
|
19
|
-
import { Eip7702InitSignatureRequiredError, InvalidSourceCallsError, QuoteNotInPreparedTransactionError, } from './error.js';
|
|
19
|
+
import { Eip7702InitSignatureRequiredError, IndependentSigningNotSupportedError, InsufficientOwnerSignaturesError, InvalidOwnerSigningOptionsError, InvalidSourceCallsError, MismatchedOwnerSignaturesError, QuoteNotInPreparedTransactionError, UnknownOwnerError, } from './error.js';
|
|
20
20
|
function isResolvedSessionSignerSet(signers) {
|
|
21
21
|
return (signers?.type === 'experimental_session' && 'verifyExecutions' in signers);
|
|
22
22
|
}
|
|
@@ -153,6 +153,9 @@ function getTransactionMessages(_config, preparedTransaction, options) {
|
|
|
153
153
|
return getIntentMessages(quote.signData);
|
|
154
154
|
}
|
|
155
155
|
async function signTransaction(config, preparedTransaction, options) {
|
|
156
|
+
if (options && 'owner' in options) {
|
|
157
|
+
return signTransactionAsOwner(config, preparedTransaction, options);
|
|
158
|
+
}
|
|
156
159
|
const { signers } = getTransactionParams(preparedTransaction.transaction);
|
|
157
160
|
const quote = resolveQuote(preparedTransaction.quotes, options);
|
|
158
161
|
const targetChain = 'targetChain' in preparedTransaction.transaction
|
|
@@ -170,6 +173,349 @@ async function signTransaction(config, preparedTransaction, options) {
|
|
|
170
173
|
targetExecutionSignature,
|
|
171
174
|
};
|
|
172
175
|
}
|
|
176
|
+
function assertIndependentSigningSupported(config, preparedTransaction) {
|
|
177
|
+
if (config.account?.type === 'eoa') {
|
|
178
|
+
throw new IndependentSigningNotSupportedError({
|
|
179
|
+
context: { reason: 'eoa-account' },
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
const { signers } = getTransactionParams(preparedTransaction.transaction);
|
|
183
|
+
if (signers?.type === 'experimental_session') {
|
|
184
|
+
throw new IndependentSigningNotSupportedError({
|
|
185
|
+
context: { reason: 'smart-session' },
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
const validator = getOwnerValidator(config);
|
|
189
|
+
const selectedValidator = getValidator(config, signers);
|
|
190
|
+
if (!selectedValidator ||
|
|
191
|
+
selectedValidator.address.toLowerCase() !== validator.address.toLowerCase()) {
|
|
192
|
+
throw new IndependentSigningNotSupportedError({
|
|
193
|
+
context: { reason: 'non-owner-validator' },
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
if (validator.address.toLowerCase() ===
|
|
197
|
+
K1_DEFAULT_VALIDATOR_ADDRESS.toLowerCase()) {
|
|
198
|
+
throw new IndependentSigningNotSupportedError({
|
|
199
|
+
context: { reason: 'erc7739-validator' },
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
if (!config.owners) {
|
|
203
|
+
throw new IndependentSigningNotSupportedError({
|
|
204
|
+
context: { reason: 'missing-owner-set' },
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
return { owners: config.owners, signers, validator };
|
|
208
|
+
}
|
|
209
|
+
function getValidatorIdKey(id) {
|
|
210
|
+
if (typeof id === 'number' && (!Number.isSafeInteger(id) || id < 0)) {
|
|
211
|
+
return undefined;
|
|
212
|
+
}
|
|
213
|
+
try {
|
|
214
|
+
return pad(toHex(id), { size: 12 }).toLowerCase();
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
return undefined;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
function getMultiFactorOwnerFactors(owners, signers) {
|
|
221
|
+
if (signers?.type === 'owner' && signers.kind === 'multi-factor') {
|
|
222
|
+
return signers.validators.map((factor) => {
|
|
223
|
+
switch (factor.type) {
|
|
224
|
+
case 'ecdsa':
|
|
225
|
+
return {
|
|
226
|
+
id: factor.id,
|
|
227
|
+
owners: {
|
|
228
|
+
type: 'ecdsa',
|
|
229
|
+
accounts: factor.accounts,
|
|
230
|
+
threshold: factor.accounts.length,
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
case 'passkey':
|
|
234
|
+
return {
|
|
235
|
+
id: factor.id,
|
|
236
|
+
owners: {
|
|
237
|
+
type: 'passkey',
|
|
238
|
+
accounts: factor.accounts,
|
|
239
|
+
threshold: factor.accounts.length,
|
|
240
|
+
},
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
return owners.validators.map((factor, id) => ({ id, owners: factor }));
|
|
246
|
+
}
|
|
247
|
+
function resolveAtomicOwnerSet(owners, validatorId, signers) {
|
|
248
|
+
if (owners.type !== 'multi-factor') {
|
|
249
|
+
return validatorId === undefined ? { id: 0, owners } : undefined;
|
|
250
|
+
}
|
|
251
|
+
if (validatorId === undefined)
|
|
252
|
+
return undefined;
|
|
253
|
+
const key = getValidatorIdKey(validatorId);
|
|
254
|
+
if (!key)
|
|
255
|
+
return undefined;
|
|
256
|
+
return getMultiFactorOwnerFactors(owners, signers).find((factor) => getValidatorIdKey(factor.id) === key);
|
|
257
|
+
}
|
|
258
|
+
function getAtomicOwnerAccounts(owners) {
|
|
259
|
+
switch (owners.type) {
|
|
260
|
+
case 'ecdsa':
|
|
261
|
+
case 'passkey':
|
|
262
|
+
return owners.accounts;
|
|
263
|
+
case 'ens':
|
|
264
|
+
return owners.owners.map(({ account }) => account);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
function getAtomicOwnerThreshold(owners) {
|
|
268
|
+
return owners.threshold ?? 1;
|
|
269
|
+
}
|
|
270
|
+
function isWebAuthnAccount(account) {
|
|
271
|
+
return account.type === 'webAuthn';
|
|
272
|
+
}
|
|
273
|
+
function getAccountIdentity(account) {
|
|
274
|
+
return isWebAuthnAccount(account)
|
|
275
|
+
? account.publicKey.toLowerCase()
|
|
276
|
+
: account.address.toLowerCase();
|
|
277
|
+
}
|
|
278
|
+
function getAtomicSignatureIdentity(signature) {
|
|
279
|
+
return signature.kind === 'passkey'
|
|
280
|
+
? signature.publicKey.toLowerCase()
|
|
281
|
+
: signature.signer.toLowerCase();
|
|
282
|
+
}
|
|
283
|
+
function isOwnerMember(owners, account) {
|
|
284
|
+
if ((owners.type === 'passkey') !== isWebAuthnAccount(account))
|
|
285
|
+
return false;
|
|
286
|
+
const identity = getAccountIdentity(account);
|
|
287
|
+
return getAtomicOwnerAccounts(owners).some((configured) => getAccountIdentity(configured) === identity);
|
|
288
|
+
}
|
|
289
|
+
async function signTransactionAsOwner(config, preparedTransaction, options) {
|
|
290
|
+
const { owners, signers } = assertIndependentSigningSupported(config, preparedTransaction);
|
|
291
|
+
const factor = resolveAtomicOwnerSet(owners, options.validatorId, signers);
|
|
292
|
+
if (!factor) {
|
|
293
|
+
throw new InvalidOwnerSigningOptionsError({
|
|
294
|
+
context: { validatorId: options.validatorId },
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
const atomicOwners = factor.owners;
|
|
298
|
+
if (!isOwnerMember(atomicOwners, options.owner)) {
|
|
299
|
+
throw new UnknownOwnerError({
|
|
300
|
+
context: {
|
|
301
|
+
...(isWebAuthnAccount(options.owner)
|
|
302
|
+
? { publicKey: options.owner.publicKey }
|
|
303
|
+
: { signer: options.owner.address }),
|
|
304
|
+
validatorId: options.validatorId,
|
|
305
|
+
},
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
const quote = resolveQuote(preparedTransaction.quotes, options.intentId === undefined ? undefined : { intentId: options.intentId });
|
|
309
|
+
const { origin } = getIntentMessages(quote.signData);
|
|
310
|
+
const atomicSigners = convertOwnerSetToSignerSet(atomicOwners);
|
|
311
|
+
if (atomicSigners.type !== 'owner' || atomicSigners.kind === 'multi-factor') {
|
|
312
|
+
throw new IndependentSigningNotSupportedError();
|
|
313
|
+
}
|
|
314
|
+
const validatorSupportsEip712 = supportsEip712(getValidatorModule(atomicOwners));
|
|
315
|
+
let signature;
|
|
316
|
+
if (atomicSigners.kind === 'ecdsa' && !isWebAuthnAccount(options.owner)) {
|
|
317
|
+
const signatures = [];
|
|
318
|
+
for (const typedData of origin) {
|
|
319
|
+
signatures.push(await getOwnerEcdsaSignature(config, getChainById(typedData.domain?.chainId), typedData, options.owner, atomicSigners.module, validatorSupportsEip712));
|
|
320
|
+
}
|
|
321
|
+
signature = {
|
|
322
|
+
kind: 'ecdsa',
|
|
323
|
+
signer: options.owner.address,
|
|
324
|
+
origin: signatures,
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
else if (atomicSigners.kind === 'passkey' &&
|
|
328
|
+
isWebAuthnAccount(options.owner)) {
|
|
329
|
+
const signatures = [];
|
|
330
|
+
for (const typedData of origin) {
|
|
331
|
+
signatures.push(await getOwnerPasskeySignature(config, typedData, options.owner, validatorSupportsEip712));
|
|
332
|
+
}
|
|
333
|
+
signature = {
|
|
334
|
+
kind: 'passkey',
|
|
335
|
+
publicKey: options.owner.publicKey,
|
|
336
|
+
origin: signatures,
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
throw new UnknownOwnerError({
|
|
341
|
+
context: { validatorId: options.validatorId },
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
return owners.type === 'multi-factor'
|
|
345
|
+
? {
|
|
346
|
+
intentId: quote.intentId,
|
|
347
|
+
kind: 'multi-factor',
|
|
348
|
+
validatorId: factor.id,
|
|
349
|
+
signature,
|
|
350
|
+
}
|
|
351
|
+
: { intentId: quote.intentId, ...signature };
|
|
352
|
+
}
|
|
353
|
+
function orderAtomicOwnerSignatures(owners, signatures, originCount, validatorId) {
|
|
354
|
+
const expectedKind = owners.type === 'passkey' ? 'passkey' : 'ecdsa';
|
|
355
|
+
const byIdentity = new Map();
|
|
356
|
+
const configuredIdentities = new Set(getAtomicOwnerAccounts(owners).map(getAccountIdentity));
|
|
357
|
+
for (const signature of signatures) {
|
|
358
|
+
if (signature.kind !== expectedKind ||
|
|
359
|
+
signature.origin.length !== originCount) {
|
|
360
|
+
throw new MismatchedOwnerSignaturesError({
|
|
361
|
+
context: {
|
|
362
|
+
expectedKind,
|
|
363
|
+
expectedOriginCount: originCount,
|
|
364
|
+
validatorId,
|
|
365
|
+
},
|
|
366
|
+
});
|
|
367
|
+
}
|
|
368
|
+
const identity = getAtomicSignatureIdentity(signature);
|
|
369
|
+
if (!configuredIdentities.has(identity)) {
|
|
370
|
+
throw new UnknownOwnerError({
|
|
371
|
+
context: {
|
|
372
|
+
...(signature.kind === 'passkey'
|
|
373
|
+
? { publicKey: signature.publicKey }
|
|
374
|
+
: { signer: signature.signer }),
|
|
375
|
+
validatorId,
|
|
376
|
+
},
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
if (!byIdentity.has(identity))
|
|
380
|
+
byIdentity.set(identity, signature);
|
|
381
|
+
}
|
|
382
|
+
const ordered = [...configuredIdentities].flatMap((identity) => {
|
|
383
|
+
const signature = byIdentity.get(identity);
|
|
384
|
+
return signature ? [signature] : [];
|
|
385
|
+
});
|
|
386
|
+
const required = getAtomicOwnerThreshold(owners);
|
|
387
|
+
if (ordered.length < required) {
|
|
388
|
+
throw new InsufficientOwnerSignaturesError({
|
|
389
|
+
required,
|
|
390
|
+
provided: ordered.length,
|
|
391
|
+
validatorId,
|
|
392
|
+
});
|
|
393
|
+
}
|
|
394
|
+
return ordered;
|
|
395
|
+
}
|
|
396
|
+
function packAtomicOwnerSignatures(owners, signatures, originIndex, chain, accountAddress) {
|
|
397
|
+
const signers = convertOwnerSetToSignerSet(owners);
|
|
398
|
+
if (owners.type === 'passkey' &&
|
|
399
|
+
signers.type === 'owner' &&
|
|
400
|
+
signers.kind === 'passkey') {
|
|
401
|
+
const passkeySignatures = signatures.map((signature) => {
|
|
402
|
+
if (signature.kind !== 'passkey') {
|
|
403
|
+
throw new MismatchedOwnerSignaturesError();
|
|
404
|
+
}
|
|
405
|
+
return {
|
|
406
|
+
publicKey: signature.publicKey,
|
|
407
|
+
signature: signature.origin[originIndex],
|
|
408
|
+
};
|
|
409
|
+
});
|
|
410
|
+
return packPasskeyOwnerSignatures(chain, accountAddress, passkeySignatures.map(({ publicKey }) => publicKey), passkeySignatures.map(({ signature }) => signature), signers.module);
|
|
411
|
+
}
|
|
412
|
+
return concat(signatures.map((signature) => {
|
|
413
|
+
if (signature.kind !== 'ecdsa') {
|
|
414
|
+
throw new MismatchedOwnerSignaturesError();
|
|
415
|
+
}
|
|
416
|
+
return signature.origin[originIndex];
|
|
417
|
+
}));
|
|
418
|
+
}
|
|
419
|
+
async function assembleTransaction(config, preparedTransaction, signatures) {
|
|
420
|
+
const { owners, signers, validator } = assertIndependentSigningSupported(config, preparedTransaction);
|
|
421
|
+
if (signatures.length === 0) {
|
|
422
|
+
throw new InsufficientOwnerSignaturesError({
|
|
423
|
+
required: owners.threshold ?? 1,
|
|
424
|
+
provided: 0,
|
|
425
|
+
});
|
|
426
|
+
}
|
|
427
|
+
const intentIds = [...new Set(signatures.map(({ intentId }) => intentId))];
|
|
428
|
+
if (intentIds.length !== 1) {
|
|
429
|
+
throw new MismatchedOwnerSignaturesError({ context: { intentIds } });
|
|
430
|
+
}
|
|
431
|
+
const quote = resolveQuote(preparedTransaction.quotes, {
|
|
432
|
+
intentId: intentIds[0],
|
|
433
|
+
});
|
|
434
|
+
const { origin } = getIntentMessages(quote.signData);
|
|
435
|
+
const accountAddress = getAddress(config);
|
|
436
|
+
const validatorConfig = {
|
|
437
|
+
address: validator.address,
|
|
438
|
+
isRoot: true,
|
|
439
|
+
};
|
|
440
|
+
let directSignatures;
|
|
441
|
+
let factorSignatures;
|
|
442
|
+
if (owners.type === 'multi-factor') {
|
|
443
|
+
const factors = getMultiFactorOwnerFactors(owners, signers);
|
|
444
|
+
const factorsById = new Map(factors.flatMap((factor) => {
|
|
445
|
+
const key = getValidatorIdKey(factor.id);
|
|
446
|
+
return key ? [[key, factor]] : [];
|
|
447
|
+
}));
|
|
448
|
+
const grouped = new Map();
|
|
449
|
+
for (const signature of signatures) {
|
|
450
|
+
if (signature.kind !== 'multi-factor') {
|
|
451
|
+
throw new MismatchedOwnerSignaturesError({
|
|
452
|
+
context: { expectedKind: 'multi-factor' },
|
|
453
|
+
});
|
|
454
|
+
}
|
|
455
|
+
const key = getValidatorIdKey(signature.validatorId);
|
|
456
|
+
if (!key || !factorsById.has(key)) {
|
|
457
|
+
throw new MismatchedOwnerSignaturesError({
|
|
458
|
+
context: { validatorId: signature.validatorId },
|
|
459
|
+
});
|
|
460
|
+
}
|
|
461
|
+
const current = grouped.get(key) ?? [];
|
|
462
|
+
current.push(signature.signature);
|
|
463
|
+
grouped.set(key, current);
|
|
464
|
+
}
|
|
465
|
+
factorSignatures = factors.flatMap((factor) => {
|
|
466
|
+
const key = getValidatorIdKey(factor.id);
|
|
467
|
+
const groupedSignatures = key ? grouped.get(key) : undefined;
|
|
468
|
+
if (!groupedSignatures)
|
|
469
|
+
return [];
|
|
470
|
+
return [
|
|
471
|
+
{
|
|
472
|
+
id: factor.id,
|
|
473
|
+
owners: factor.owners,
|
|
474
|
+
signatures: orderAtomicOwnerSignatures(factor.owners, groupedSignatures, origin.length, factor.id),
|
|
475
|
+
},
|
|
476
|
+
];
|
|
477
|
+
});
|
|
478
|
+
const required = owners.threshold ?? 1;
|
|
479
|
+
if (factorSignatures.length < required) {
|
|
480
|
+
throw new InsufficientOwnerSignaturesError({
|
|
481
|
+
required,
|
|
482
|
+
provided: factorSignatures.length,
|
|
483
|
+
});
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
else {
|
|
487
|
+
directSignatures = orderAtomicOwnerSignatures(owners, signatures.map((signature) => {
|
|
488
|
+
if (signature.kind === 'multi-factor') {
|
|
489
|
+
throw new MismatchedOwnerSignaturesError({
|
|
490
|
+
context: { expectedKind: owners.type },
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
const { intentId: _, ...atomicSignature } = signature;
|
|
494
|
+
return atomicSignature;
|
|
495
|
+
}), origin.length);
|
|
496
|
+
}
|
|
497
|
+
const originSignatures = [];
|
|
498
|
+
for (const [originIndex, typedData] of origin.entries()) {
|
|
499
|
+
const chain = getChainById(typedData.domain?.chainId);
|
|
500
|
+
const validatorSignature = factorSignatures
|
|
501
|
+
? packMultiFactorOwnerSignatures(factorSignatures.map((factor) => ({
|
|
502
|
+
id: factor.id,
|
|
503
|
+
validatorAddress: getValidatorModule(factor.owners).address,
|
|
504
|
+
signature: packAtomicOwnerSignatures(factor.owners, factor.signatures, originIndex, chain, accountAddress),
|
|
505
|
+
})))
|
|
506
|
+
: packAtomicOwnerSignatures(owners, directSignatures, originIndex, chain, accountAddress);
|
|
507
|
+
originSignatures.push(await packAccountSignature(config, validatorSignature, validatorConfig));
|
|
508
|
+
}
|
|
509
|
+
return {
|
|
510
|
+
quote,
|
|
511
|
+
quotes: preparedTransaction.quotes,
|
|
512
|
+
intentInput: preparedTransaction.intentInput,
|
|
513
|
+
transaction: preparedTransaction.transaction,
|
|
514
|
+
originSignatures,
|
|
515
|
+
destinationSignature: originSignatures.at(-1) ?? '0x',
|
|
516
|
+
targetExecutionSignature: undefined,
|
|
517
|
+
};
|
|
518
|
+
}
|
|
173
519
|
function resolveQuote(quotes, options) {
|
|
174
520
|
if (!options)
|
|
175
521
|
return quotes.best;
|
|
@@ -1252,4 +1598,4 @@ function hashErc7739TypedDataForSolady({ domain, types, primaryType, message, ve
|
|
|
1252
1598
|
// Final hash: keccak256("\x19\x01" || appDomainSep || structHash)
|
|
1253
1599
|
return keccak256(concat(['0x1901', appDomainSeparator, structHash]));
|
|
1254
1600
|
}
|
|
1255
|
-
export { prepareTransaction, getTransactionMessages, signTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, prepareUserOperation, signUserOperation, submitUserOperation, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, getTokenRequests, resolveCallInputs, getIntentAccount, getTargetExecutionSignature, hashErc7739TypedDataForSolady, resolveSessionForChain, resolveSignatureMode, };
|
|
1601
|
+
export { prepareTransaction, getTransactionMessages, signTransaction, assembleTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, prepareUserOperation, signUserOperation, submitUserOperation, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, getTokenRequests, resolveCallInputs, getIntentAccount, getTargetExecutionSignature, hashErc7739TypedDataForSolady, resolveSessionForChain, resolveSignatureMode, };
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Address, Chain, HashTypedDataParameters, Hex, SignableMessage, SignedAuthorizationList, TypedData, TypedDataDefinition } from 'viem';
|
|
2
2
|
import type { UserOperationReceipt } from 'viem/account-abstraction';
|
|
3
3
|
import { type TransactionResult, type TransactionStatus, type UserOperationResult } from './execution/index.js';
|
|
4
|
-
import { type PreparedQuotes, type PreparedTransactionData, type PreparedUserOperationData, type QuoteSelection, type SignedTransactionData, type SignedUserOperationData } from './execution/utils.js';
|
|
4
|
+
import { type OwnerPasskeySignature, type OwnerSignature, type OwnerSignatureData, type PreparedQuotes, type PreparedTransactionData, type PreparedUserOperationData, type QuoteSelection, type SignAsOwnerOptions, type SignedTransactionData, type SignedUserOperationData } from './execution/utils.js';
|
|
5
5
|
import { MULTI_FACTOR_VALIDATOR_ADDRESS, OWNABLE_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS } from './modules/index.js';
|
|
6
6
|
import { type SessionDetails } from './modules/validators/smart-sessions.js';
|
|
7
7
|
import type { AppFeeBalances, ApprovalRequired, AuxiliaryFunds, BridgeFill, ChainOperation, DestinationChain, FailureReason, IntentInput, IntentOpStatus, NonEvmAddress, NonEvmChain, OperationStatus, OriginSignature, Portfolio, Quote, SettlementLayer, SettlementLayerFilter, SignData, SplitIntentsInput, SplitIntentsResult, TokenRequirements, WrapRequired } from './orchestrator/index.js';
|
|
@@ -75,7 +75,17 @@ interface RhinestoneAccount {
|
|
|
75
75
|
targetExecution?: TypedDataDefinition;
|
|
76
76
|
};
|
|
77
77
|
/**
|
|
78
|
-
* Sign a prepared transaction.
|
|
78
|
+
* Sign a prepared transaction as one configured owner. The returned signature
|
|
79
|
+
* can be serialized and shared with the party coordinating submission.
|
|
80
|
+
* @param preparedTransaction Prepared transaction data
|
|
81
|
+
* @param options Owner account, optional quote, and multi-factor validator ID
|
|
82
|
+
* @returns This owner's signature contribution
|
|
83
|
+
* @see {@link prepareTransaction} to prepare the transaction data for signing
|
|
84
|
+
* @see {@link assembleTransaction} to combine independent owner signatures
|
|
85
|
+
*/
|
|
86
|
+
signTransaction(preparedTransaction: PreparedTransactionData, options: SignAsOwnerOptions): Promise<OwnerSignature>;
|
|
87
|
+
/**
|
|
88
|
+
* Sign a prepared transaction with the transaction's configured signers.
|
|
79
89
|
* @param preparedTransaction Prepared transaction data
|
|
80
90
|
* @param options Optional override; pass `{ intentId }` to sign a specific quote from `preparedTransaction.quotes.all`
|
|
81
91
|
* @returns The signed transaction data
|
|
@@ -83,6 +93,19 @@ interface RhinestoneAccount {
|
|
|
83
93
|
* @see {@link submitTransaction} to submit the signed transaction
|
|
84
94
|
*/
|
|
85
95
|
signTransaction(preparedTransaction: PreparedTransactionData, options?: QuoteSelection): Promise<SignedTransactionData>;
|
|
96
|
+
/**
|
|
97
|
+
* Assemble independently collected owner signatures into a signed transaction.
|
|
98
|
+
* Signatures are deduplicated and ordered according to the configured owner set.
|
|
99
|
+
* Account thresholds are read from the local configuration; an explicit
|
|
100
|
+
* transaction signer set determines active MFA IDs and contributing owners.
|
|
101
|
+
* Callers must keep these synchronized with onchain owner and threshold changes.
|
|
102
|
+
* @param preparedTransaction The prepared transaction every owner signed
|
|
103
|
+
* @param signatures Owner signatures returned by `signTransaction` with an `owner` option
|
|
104
|
+
* @returns Signed transaction data ready for submission
|
|
105
|
+
* @see {@link signTransaction} to create each owner signature
|
|
106
|
+
* @see {@link submitTransaction} to submit the result
|
|
107
|
+
*/
|
|
108
|
+
assembleTransaction(preparedTransaction: PreparedTransactionData, signatures: OwnerSignature[]): Promise<SignedTransactionData>;
|
|
86
109
|
/**
|
|
87
110
|
* Sign the EIP-7702 authorizations required for a transaction.
|
|
88
111
|
* @param preparedTransaction Prepared transaction data
|
|
@@ -289,5 +312,5 @@ declare class RhinestoneSDK {
|
|
|
289
312
|
getAppFeeBalances(): Promise<AppFeeBalances>;
|
|
290
313
|
}
|
|
291
314
|
export { RhinestoneSDK, hyperCoreMainnet, solanaMainnet, tronMainnet, OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, };
|
|
292
|
-
export type { RhinestoneAccount, AccountType, RhinestoneAccountConfig, AccountProviderConfig, ProviderConfig, BundlerConfig, PaymasterConfig, Transaction, TokenSymbol, CallInput, Call, TokenRequest, NonEvmTokenRequest, NonEvmTokenRequests, NonEvmAddress, OwnerSet, OwnableValidatorConfig, WebauthnValidatorConfig, MultiFactorValidatorConfig, SignerSet, SourceCallInput, SourceCallProvidedFunds, ChainSessionConfig, Session, SessionDefinition, Permission, PermissionFunctionConfig, ParamConstraint, Policy, Permit2ClaimPolicy, CrossChainPermissionInput, CrossChainPermit, FromLeg, ToLeg, CrossChainSettlementLayer, UniversalActionPolicyParamCondition, PreparedQuotes, PreparedTransactionData, Quote, QuoteSelection, SignedTransactionData, TransactionResult, PreparedUserOperationData, SignedUserOperationData, UserOperationResult, AuxiliaryFunds, BridgeFill, DestinationChain, NonEvmChain, IntentInput, IntentOpStatus, SettlementLayer, SettlementLayerFilter, SplitIntentsInput, SplitIntentsResult, Portfolio, TokenRequirements, WrapRequired, ApprovalRequired, OriginSignature, SignData, SignedIntentData, OperationStatus, FailureReason, ChainOperation, };
|
|
315
|
+
export type { RhinestoneAccount, AccountType, RhinestoneAccountConfig, AccountProviderConfig, ProviderConfig, BundlerConfig, PaymasterConfig, Transaction, TokenSymbol, CallInput, Call, TokenRequest, NonEvmTokenRequest, NonEvmTokenRequests, NonEvmAddress, OwnerSet, OwnableValidatorConfig, WebauthnValidatorConfig, MultiFactorValidatorConfig, SignerSet, SourceCallInput, SourceCallProvidedFunds, ChainSessionConfig, Session, SessionDefinition, Permission, PermissionFunctionConfig, ParamConstraint, Policy, Permit2ClaimPolicy, CrossChainPermissionInput, CrossChainPermit, FromLeg, ToLeg, CrossChainSettlementLayer, UniversalActionPolicyParamCondition, PreparedQuotes, PreparedTransactionData, Quote, QuoteSelection, SignAsOwnerOptions, SignedTransactionData, TransactionResult, PreparedUserOperationData, SignedUserOperationData, UserOperationResult, AuxiliaryFunds, BridgeFill, DestinationChain, NonEvmChain, IntentInput, IntentOpStatus, SettlementLayer, SettlementLayerFilter, SplitIntentsInput, SplitIntentsResult, Portfolio, TokenRequirements, WrapRequired, ApprovalRequired, OriginSignature, SignData, SignedIntentData, OperationStatus, FailureReason, ChainOperation, OwnerPasskeySignature, OwnerSignature, OwnerSignatureData, };
|
|
293
316
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,KAAK,EACL,uBAAuB,EACvB,GAAG,EACH,eAAe,EACf,uBAAuB,EACvB,SAAS,EACT,mBAAmB,EACpB,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAcpE,OAAO,EAML,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EAEzB,MAAM,aAAa,CAAA;AACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { checkAddress, deploy as deployInternal, FactoryArgsNotAvailableError, getAccountProvider, getAddress as getAddressInternal, getInitCode, isDeployed as isDeployedInternal, OwnersFieldRequiredError, setup as setupInternal, signEip7702InitData as signEip7702InitDataInternal, } from './accounts/index.js';
|
|
2
2
|
import { createAuthProvider } from './auth/provider.js';
|
|
3
3
|
import { getAppFeeBalances as getAppFeeBalancesInternal, getIntentStatus as getIntentStatusInternal, getPortfolio as getPortfolioInternal, sendUserOperation as sendUserOperationInternal, splitIntents as splitIntentsInternal, waitForExecution as waitForExecutionInternal, } from './execution/index.js';
|
|
4
|
-
import { getTargetExecutionSignature as getTargetExecutionSignatureInternal, getTransactionMessages as getTransactionMessagesInternal, prepareTransaction as prepareTransactionInternal, prepareUserOperation as prepareUserOperationInternal, signAuthorizations as signAuthorizationsInternal, signIntent as signIntentInternal, signMessage as signMessageInternal, signTransaction as signTransactionInternal, signTypedData as signTypedDataInternal, signUserOperation as signUserOperationInternal, submitTransaction as submitTransactionInternal, submitUserOperation as submitUserOperationInternal, } from './execution/utils.js';
|
|
4
|
+
import { assembleTransaction as assembleTransactionInternal, getTargetExecutionSignature as getTargetExecutionSignatureInternal, getTransactionMessages as getTransactionMessagesInternal, prepareTransaction as prepareTransactionInternal, prepareUserOperation as prepareUserOperationInternal, signAuthorizations as signAuthorizationsInternal, signIntent as signIntentInternal, signMessage as signMessageInternal, signTransaction as signTransactionInternal, signTypedData as signTypedDataInternal, signUserOperation as signUserOperationInternal, submitTransaction as submitTransactionInternal, submitUserOperation as submitUserOperationInternal, } from './execution/utils.js';
|
|
5
5
|
import { getExecutors as getExecutorsInternal, getOwners as getOwnersInternal, getSessionDetails as getSessionDetailsInternal, getValidators as getValidatorsInternal, MULTI_FACTOR_VALIDATOR_ADDRESS, OWNABLE_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, signEnableSession as signEnableSessionInternal, WEBAUTHN_VALIDATOR_ADDRESS, } from './modules/index.js';
|
|
6
6
|
import { isSessionEnabled as isSessionEnabledInternal, } from './modules/validators/smart-sessions.js';
|
|
7
7
|
import { hyperCoreMainnet, solanaMainnet, tronMainnet } from './orchestrator/index.js';
|
|
@@ -55,8 +55,14 @@ async function createAccountInternal(config) {
|
|
|
55
55
|
return getTransactionMessagesInternal(config, preparedTransaction, options);
|
|
56
56
|
}
|
|
57
57
|
function signTransaction(preparedTransaction, options) {
|
|
58
|
+
if (options && 'owner' in options) {
|
|
59
|
+
return signTransactionInternal(config, preparedTransaction, options);
|
|
60
|
+
}
|
|
58
61
|
return signTransactionInternal(config, preparedTransaction, options);
|
|
59
62
|
}
|
|
63
|
+
function assembleTransaction(preparedTransaction, signatures) {
|
|
64
|
+
return assembleTransactionInternal(config, preparedTransaction, signatures);
|
|
65
|
+
}
|
|
60
66
|
function signAuthorizations(preparedTransaction) {
|
|
61
67
|
return signAuthorizationsInternal(config, preparedTransaction);
|
|
62
68
|
}
|
|
@@ -143,6 +149,7 @@ async function createAccountInternal(config) {
|
|
|
143
149
|
prepareTransaction,
|
|
144
150
|
getTransactionMessages,
|
|
145
151
|
signTransaction,
|
|
152
|
+
assembleTransaction,
|
|
146
153
|
signAuthorizations,
|
|
147
154
|
signMessage,
|
|
148
155
|
signTypedData,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
declare const PROD_ORCHESTRATOR_URL = "https://v1.orchestrator.rhinestone.dev";
|
|
2
2
|
declare const RHINESTONE_SPOKE_POOL_ADDRESS = "0x000000000060f6e853447881951574cdd0663530";
|
|
3
|
-
declare const SDK_VERSION = "2.0.0-beta.
|
|
3
|
+
declare const SDK_VERSION = "2.0.0-beta.41";
|
|
4
4
|
declare const API_VERSION = "2026-04.blanc";
|
|
5
5
|
export { PROD_ORCHESTRATOR_URL, RHINESTONE_SPOKE_POOL_ADDRESS, SDK_VERSION, API_VERSION, };
|
|
6
6
|
//# sourceMappingURL=consts.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const PROD_ORCHESTRATOR_URL = 'https://v1.orchestrator.rhinestone.dev';
|
|
2
2
|
const RHINESTONE_SPOKE_POOL_ADDRESS = '0x000000000060f6e853447881951574cdd0663530';
|
|
3
|
-
const SDK_VERSION = '2.0.0-beta.
|
|
3
|
+
const SDK_VERSION = '2.0.0-beta.41';
|
|
4
4
|
const API_VERSION = '2026-04.blanc';
|
|
5
5
|
export { PROD_ORCHESTRATOR_URL, RHINESTONE_SPOKE_POOL_ADDRESS, SDK_VERSION, API_VERSION, };
|