@nucypher/taco 0.7.0-alpha.2 → 0.7.0-dev.viem
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/README.md +149 -0
- package/dist/cjs/access-client/client.d.ts +237 -0
- package/dist/cjs/access-client/client.js +196 -0
- package/dist/cjs/access-client/client.js.map +1 -0
- package/dist/cjs/access-client/config-validator.d.ts +92 -0
- package/dist/cjs/access-client/config-validator.js +204 -0
- package/dist/cjs/access-client/config-validator.js.map +1 -0
- package/dist/cjs/access-client/config.d.ts +50 -0
- package/dist/cjs/access-client/config.js +27 -0
- package/dist/cjs/access-client/config.js.map +1 -0
- package/dist/cjs/access-client/index.d.ts +2 -0
- package/dist/cjs/access-client/index.js +19 -0
- package/dist/cjs/access-client/index.js.map +1 -0
- package/dist/cjs/conditions/base/contract.d.ts +4 -4
- package/dist/cjs/conditions/base/contract.js +8 -8
- package/dist/cjs/conditions/base/contract.js.map +1 -1
- package/dist/cjs/conditions/base/index.d.ts +6 -9
- package/dist/cjs/conditions/base/index.js +7 -10
- package/dist/cjs/conditions/base/index.js.map +1 -1
- package/dist/cjs/conditions/base/json-api.d.ts +4 -4
- package/dist/cjs/conditions/base/json-api.js +8 -8
- package/dist/cjs/conditions/base/json-api.js.map +1 -1
- package/dist/cjs/conditions/base/json-rpc.d.ts +4 -4
- package/dist/cjs/conditions/base/json-rpc.js +8 -8
- package/dist/cjs/conditions/base/json-rpc.js.map +1 -1
- package/dist/cjs/conditions/base/jwt.d.ts +4 -4
- package/dist/cjs/conditions/base/jwt.js +9 -9
- package/dist/cjs/conditions/base/jwt.js.map +1 -1
- package/dist/cjs/conditions/base/rpc.d.ts +4 -4
- package/dist/cjs/conditions/base/rpc.js +8 -8
- package/dist/cjs/conditions/base/rpc.js.map +1 -1
- package/dist/cjs/conditions/base/time.d.ts +4 -4
- package/dist/cjs/conditions/base/time.js +9 -9
- package/dist/cjs/conditions/base/time.js.map +1 -1
- package/dist/cjs/conditions/compound-condition.d.ts +4 -4
- package/dist/cjs/conditions/compound-condition.js +9 -9
- package/dist/cjs/conditions/compound-condition.js.map +1 -1
- package/dist/cjs/conditions/condition-expr.d.ts +1 -1
- package/dist/cjs/conditions/condition-expr.js +7 -7
- package/dist/cjs/conditions/condition-expr.js.map +1 -1
- package/dist/cjs/conditions/condition-factory.d.ts +1 -1
- package/dist/cjs/conditions/condition-factory.js +27 -38
- package/dist/cjs/conditions/condition-factory.js.map +1 -1
- package/dist/cjs/conditions/condition.d.ts +1 -1
- package/dist/cjs/conditions/condition.js +6 -6
- package/dist/cjs/conditions/condition.js.map +1 -1
- package/dist/cjs/conditions/context/context.d.ts +2 -6
- package/dist/cjs/conditions/context/context.js +16 -41
- package/dist/cjs/conditions/context/context.js.map +1 -1
- package/dist/cjs/conditions/context/index.d.ts +1 -1
- package/dist/cjs/conditions/context/index.js +2 -2
- package/dist/cjs/conditions/context/index.js.map +1 -1
- package/dist/cjs/conditions/if-then-else-condition.d.ts +4 -4
- package/dist/cjs/conditions/if-then-else-condition.js +8 -8
- package/dist/cjs/conditions/if-then-else-condition.js.map +1 -1
- package/dist/cjs/conditions/index.d.ts +9 -9
- package/dist/cjs/conditions/index.js +10 -10
- package/dist/cjs/conditions/index.js.map +1 -1
- package/dist/cjs/conditions/multi-condition.d.ts +1 -1
- package/dist/cjs/conditions/multi-condition.js +8 -8
- package/dist/cjs/conditions/multi-condition.js.map +1 -1
- package/dist/cjs/conditions/predefined/erc20.d.ts +1 -1
- package/dist/cjs/conditions/predefined/erc20.js +3 -3
- package/dist/cjs/conditions/predefined/erc20.js.map +1 -1
- package/dist/cjs/conditions/predefined/erc721.d.ts +1 -1
- package/dist/cjs/conditions/predefined/erc721.js +5 -5
- package/dist/cjs/conditions/predefined/erc721.js.map +1 -1
- package/dist/cjs/conditions/predefined/index.d.ts +2 -2
- package/dist/cjs/conditions/predefined/index.js +2 -2
- package/dist/cjs/conditions/predefined/index.js.map +1 -1
- package/dist/cjs/conditions/schemas/common.d.ts +0 -2
- package/dist/cjs/conditions/schemas/common.js +8 -25
- package/dist/cjs/conditions/schemas/common.js.map +1 -1
- package/dist/cjs/conditions/schemas/compound.js +6 -6
- package/dist/cjs/conditions/schemas/compound.js.map +1 -1
- package/dist/cjs/conditions/schemas/context.js +5 -5
- package/dist/cjs/conditions/schemas/context.js.map +1 -1
- package/dist/cjs/conditions/schemas/contract.d.ts +30 -33
- package/dist/cjs/conditions/schemas/contract.js +4 -4
- package/dist/cjs/conditions/schemas/contract.js.map +1 -1
- package/dist/cjs/conditions/schemas/export-for-zod-doc-gen.d.ts +13 -16
- package/dist/cjs/conditions/schemas/export-for-zod-doc-gen.js +13 -17
- package/dist/cjs/conditions/schemas/export-for-zod-doc-gen.js.map +1 -1
- package/dist/cjs/conditions/schemas/if-then-else.js +10 -10
- package/dist/cjs/conditions/schemas/if-then-else.js.map +1 -1
- package/dist/cjs/conditions/schemas/json-api.d.ts +14 -47
- package/dist/cjs/conditions/schemas/json-api.js +9 -23
- package/dist/cjs/conditions/schemas/json-api.js.map +1 -1
- package/dist/cjs/conditions/schemas/json-rpc.d.ts +13 -48
- package/dist/cjs/conditions/schemas/json-rpc.js +9 -23
- package/dist/cjs/conditions/schemas/json-rpc.js.map +1 -1
- package/dist/cjs/conditions/schemas/jwt.d.ts +4 -2
- package/dist/cjs/conditions/schemas/jwt.js +4 -4
- package/dist/cjs/conditions/schemas/jwt.js.map +1 -1
- package/dist/cjs/conditions/schemas/return-value-test.d.ts +12 -28
- package/dist/cjs/conditions/schemas/return-value-test.js +8 -22
- package/dist/cjs/conditions/schemas/return-value-test.js.map +1 -1
- package/dist/cjs/conditions/schemas/rpc.d.ts +16 -22
- package/dist/cjs/conditions/schemas/rpc.js +8 -8
- package/dist/cjs/conditions/schemas/rpc.js.map +1 -1
- package/dist/cjs/conditions/schemas/sequential.js +18 -38
- package/dist/cjs/conditions/schemas/sequential.js.map +1 -1
- package/dist/cjs/conditions/schemas/time.d.ts +10 -18
- package/dist/cjs/conditions/schemas/time.js +2 -2
- package/dist/cjs/conditions/schemas/time.js.map +1 -1
- package/dist/cjs/conditions/schemas/utils.js +18 -25
- package/dist/cjs/conditions/schemas/utils.js.map +1 -1
- package/dist/cjs/conditions/sequential.d.ts +4 -4
- package/dist/cjs/conditions/sequential.js +8 -8
- package/dist/cjs/conditions/sequential.js.map +1 -1
- package/dist/cjs/conditions/shared.d.ts +2 -2
- package/dist/cjs/conditions/shared.js +6 -6
- package/dist/cjs/conditions/shared.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -3
- package/dist/cjs/index.js +8 -9
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/taco.d.ts +82 -43
- package/dist/cjs/taco.js +28 -86
- package/dist/cjs/taco.js.map +1 -1
- package/dist/cjs/tdec.d.ts +2 -2
- package/dist/cjs/tdec.js +7 -7
- package/dist/cjs/tdec.js.map +1 -1
- package/dist/cjs/types.d.ts +0 -1
- package/dist/es/access-client/client.d.ts +237 -0
- package/dist/es/access-client/client.js +192 -0
- package/dist/es/access-client/client.js.map +1 -0
- package/dist/es/access-client/config-validator.d.ts +92 -0
- package/dist/es/access-client/config-validator.js +200 -0
- package/dist/es/access-client/config-validator.js.map +1 -0
- package/dist/es/access-client/config.d.ts +50 -0
- package/dist/es/access-client/config.js +23 -0
- package/dist/es/access-client/config.js.map +1 -0
- package/dist/es/access-client/index.d.ts +2 -0
- package/dist/es/access-client/index.js +3 -0
- package/dist/es/access-client/index.js.map +1 -0
- package/dist/es/conditions/base/contract.d.ts +4 -4
- package/dist/es/conditions/base/contract.js +3 -3
- package/dist/es/conditions/base/contract.js.map +1 -1
- package/dist/es/conditions/base/index.d.ts +6 -9
- package/dist/es/conditions/base/index.js +6 -9
- package/dist/es/conditions/base/index.js.map +1 -1
- package/dist/es/conditions/base/json-api.d.ts +4 -4
- package/dist/es/conditions/base/json-api.js +3 -3
- package/dist/es/conditions/base/json-api.js.map +1 -1
- package/dist/es/conditions/base/json-rpc.d.ts +4 -4
- package/dist/es/conditions/base/json-rpc.js +3 -3
- package/dist/es/conditions/base/json-rpc.js.map +1 -1
- package/dist/es/conditions/base/jwt.d.ts +4 -4
- package/dist/es/conditions/base/jwt.js +3 -3
- package/dist/es/conditions/base/jwt.js.map +1 -1
- package/dist/es/conditions/base/rpc.d.ts +4 -4
- package/dist/es/conditions/base/rpc.js +3 -3
- package/dist/es/conditions/base/rpc.js.map +1 -1
- package/dist/es/conditions/base/time.d.ts +4 -4
- package/dist/es/conditions/base/time.js +3 -3
- package/dist/es/conditions/base/time.js.map +1 -1
- package/dist/es/conditions/compound-condition.d.ts +4 -4
- package/dist/es/conditions/compound-condition.js +3 -3
- package/dist/es/conditions/compound-condition.js.map +1 -1
- package/dist/es/conditions/condition-expr.d.ts +1 -1
- package/dist/es/conditions/condition-expr.js +2 -2
- package/dist/es/conditions/condition-expr.js.map +1 -1
- package/dist/es/conditions/condition-factory.d.ts +1 -1
- package/dist/es/conditions/condition-factory.js +9 -20
- package/dist/es/conditions/condition-factory.js.map +1 -1
- package/dist/es/conditions/condition.d.ts +1 -1
- package/dist/es/conditions/condition.js +3 -3
- package/dist/es/conditions/condition.js.map +1 -1
- package/dist/es/conditions/context/context.d.ts +2 -6
- package/dist/es/conditions/context/context.js +6 -31
- package/dist/es/conditions/context/context.js.map +1 -1
- package/dist/es/conditions/context/index.d.ts +1 -1
- package/dist/es/conditions/context/index.js +1 -1
- package/dist/es/conditions/context/index.js.map +1 -1
- package/dist/es/conditions/if-then-else-condition.d.ts +4 -4
- package/dist/es/conditions/if-then-else-condition.js +3 -3
- package/dist/es/conditions/if-then-else-condition.js.map +1 -1
- package/dist/es/conditions/index.d.ts +9 -9
- package/dist/es/conditions/index.js +9 -9
- package/dist/es/conditions/index.js.map +1 -1
- package/dist/es/conditions/multi-condition.d.ts +1 -1
- package/dist/es/conditions/multi-condition.js +3 -3
- package/dist/es/conditions/multi-condition.js.map +1 -1
- package/dist/es/conditions/predefined/erc20.d.ts +1 -1
- package/dist/es/conditions/predefined/erc20.js +1 -1
- package/dist/es/conditions/predefined/erc20.js.map +1 -1
- package/dist/es/conditions/predefined/erc721.d.ts +1 -1
- package/dist/es/conditions/predefined/erc721.js +1 -1
- package/dist/es/conditions/predefined/erc721.js.map +1 -1
- package/dist/es/conditions/predefined/index.d.ts +2 -2
- package/dist/es/conditions/predefined/index.js +2 -2
- package/dist/es/conditions/predefined/index.js.map +1 -1
- package/dist/es/conditions/schemas/common.d.ts +0 -2
- package/dist/es/conditions/schemas/common.js +3 -20
- package/dist/es/conditions/schemas/common.js.map +1 -1
- package/dist/es/conditions/schemas/compound.js +3 -3
- package/dist/es/conditions/schemas/compound.js.map +1 -1
- package/dist/es/conditions/schemas/context.js +2 -2
- package/dist/es/conditions/schemas/context.js.map +1 -1
- package/dist/es/conditions/schemas/contract.d.ts +30 -33
- package/dist/es/conditions/schemas/contract.js +2 -2
- package/dist/es/conditions/schemas/contract.js.map +1 -1
- package/dist/es/conditions/schemas/export-for-zod-doc-gen.d.ts +13 -16
- package/dist/es/conditions/schemas/export-for-zod-doc-gen.js +13 -17
- package/dist/es/conditions/schemas/export-for-zod-doc-gen.js.map +1 -1
- package/dist/es/conditions/schemas/if-then-else.js +3 -3
- package/dist/es/conditions/schemas/if-then-else.js.map +1 -1
- package/dist/es/conditions/schemas/json-api.d.ts +14 -47
- package/dist/es/conditions/schemas/json-api.js +5 -19
- package/dist/es/conditions/schemas/json-api.js.map +1 -1
- package/dist/es/conditions/schemas/json-rpc.d.ts +13 -48
- package/dist/es/conditions/schemas/json-rpc.js +5 -19
- package/dist/es/conditions/schemas/json-rpc.js.map +1 -1
- package/dist/es/conditions/schemas/jwt.d.ts +4 -2
- package/dist/es/conditions/schemas/jwt.js +2 -2
- package/dist/es/conditions/schemas/jwt.js.map +1 -1
- package/dist/es/conditions/schemas/return-value-test.d.ts +12 -28
- package/dist/es/conditions/schemas/return-value-test.js +6 -20
- package/dist/es/conditions/schemas/return-value-test.js.map +1 -1
- package/dist/es/conditions/schemas/rpc.d.ts +16 -22
- package/dist/es/conditions/schemas/rpc.js +3 -3
- package/dist/es/conditions/schemas/rpc.js.map +1 -1
- package/dist/es/conditions/schemas/sequential.js +14 -34
- package/dist/es/conditions/schemas/sequential.js.map +1 -1
- package/dist/es/conditions/schemas/time.d.ts +10 -18
- package/dist/es/conditions/schemas/time.js +1 -1
- package/dist/es/conditions/schemas/time.js.map +1 -1
- package/dist/es/conditions/schemas/utils.js +10 -17
- package/dist/es/conditions/schemas/utils.js.map +1 -1
- package/dist/es/conditions/sequential.d.ts +4 -4
- package/dist/es/conditions/sequential.js +3 -3
- package/dist/es/conditions/sequential.js.map +1 -1
- package/dist/es/conditions/shared.d.ts +2 -2
- package/dist/es/conditions/shared.js +2 -2
- package/dist/es/conditions/shared.js.map +1 -1
- package/dist/es/index.d.ts +3 -3
- package/dist/es/index.js +3 -3
- package/dist/es/index.js.map +1 -1
- package/dist/es/package.json +3 -0
- package/dist/es/taco.d.ts +82 -43
- package/dist/es/taco.js +25 -82
- package/dist/es/taco.js.map +1 -1
- package/dist/es/tdec.d.ts +2 -2
- package/dist/es/tdec.js +5 -5
- package/dist/es/tdec.js.map +1 -1
- package/dist/es/types.d.ts +0 -1
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.es.tsbuildinfo +1 -1
- package/package.json +12 -8
- package/dist/cjs/conditions/base/address-allowlist.d.ts +0 -10
- package/dist/cjs/conditions/base/address-allowlist.js +0 -19
- package/dist/cjs/conditions/base/address-allowlist.js.map +0 -1
- package/dist/cjs/conditions/base/ecdsa.d.ts +0 -7
- package/dist/cjs/conditions/base/ecdsa.js +0 -21
- package/dist/cjs/conditions/base/ecdsa.js.map +0 -1
- package/dist/cjs/conditions/base/signing.d.ts +0 -10
- package/dist/cjs/conditions/base/signing.js +0 -32
- package/dist/cjs/conditions/base/signing.js.map +0 -1
- package/dist/cjs/conditions/schemas/address-allowlist.d.ts +0 -16
- package/dist/cjs/conditions/schemas/address-allowlist.js +0 -20
- package/dist/cjs/conditions/schemas/address-allowlist.js.map +0 -1
- package/dist/cjs/conditions/schemas/ecdsa.d.ts +0 -38
- package/dist/cjs/conditions/schemas/ecdsa.js +0 -40
- package/dist/cjs/conditions/schemas/ecdsa.js.map +0 -1
- package/dist/cjs/conditions/schemas/signing.d.ts +0 -12
- package/dist/cjs/conditions/schemas/signing.js +0 -204
- package/dist/cjs/conditions/schemas/signing.js.map +0 -1
- package/dist/cjs/conditions/zod.d.ts +0 -3
- package/dist/cjs/conditions/zod.js +0 -19
- package/dist/cjs/conditions/zod.js.map +0 -1
- package/dist/cjs/sign.d.ts +0 -26
- package/dist/cjs/sign.js +0 -99
- package/dist/cjs/sign.js.map +0 -1
- package/dist/es/conditions/base/address-allowlist.d.ts +0 -10
- package/dist/es/conditions/base/address-allowlist.js +0 -15
- package/dist/es/conditions/base/address-allowlist.js.map +0 -1
- package/dist/es/conditions/base/ecdsa.d.ts +0 -7
- package/dist/es/conditions/base/ecdsa.js +0 -12
- package/dist/es/conditions/base/ecdsa.js.map +0 -1
- package/dist/es/conditions/base/signing.d.ts +0 -10
- package/dist/es/conditions/base/signing.js +0 -20
- package/dist/es/conditions/base/signing.js.map +0 -1
- package/dist/es/conditions/schemas/address-allowlist.d.ts +0 -16
- package/dist/es/conditions/schemas/address-allowlist.js +0 -17
- package/dist/es/conditions/schemas/address-allowlist.js.map +0 -1
- package/dist/es/conditions/schemas/ecdsa.d.ts +0 -38
- package/dist/es/conditions/schemas/ecdsa.js +0 -37
- package/dist/es/conditions/schemas/ecdsa.js.map +0 -1
- package/dist/es/conditions/schemas/signing.d.ts +0 -12
- package/dist/es/conditions/schemas/signing.js +0 -201
- package/dist/es/conditions/schemas/signing.js.map +0 -1
- package/dist/es/conditions/zod.d.ts +0 -3
- package/dist/es/conditions/zod.js +0 -17
- package/dist/es/conditions/zod.js.map +0 -1
- package/dist/es/sign.d.ts +0 -26
- package/dist/es/sign.js +0 -95
- package/dist/es/sign.js.map +0 -1
package/dist/cjs/sign.js
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.signUserOp = signUserOp;
|
|
4
|
-
exports.setSigningCohortConditions = setSigningCohortConditions;
|
|
5
|
-
const shared_1 = require("@nucypher/shared");
|
|
6
|
-
const ethers_1 = require("ethers");
|
|
7
|
-
const condition_expr_1 = require("./conditions/condition-expr");
|
|
8
|
-
const ERR_INSUFFICIENT_SIGNATURES = (errors) => `Threshold of signatures not met; TACo signing failed with errors: ${JSON.stringify(errors)}`;
|
|
9
|
-
const ERR_MISMATCHED_HASHES = (hashToSignatures) => `Threshold of signatures not met; multiple mismatched hashes found: ${JSON.stringify(Object.fromEntries(hashToSignatures.entries()))}`;
|
|
10
|
-
function aggregateSignatures(signaturesByAddress, threshold) {
|
|
11
|
-
// Aggregate hex signatures by concatenating them; being careful to remove the '0x' prefix from each signature except the first one.
|
|
12
|
-
const signatures = Object.values(signaturesByAddress)
|
|
13
|
-
.map((sig) => sig.signature)
|
|
14
|
-
.slice(0, threshold);
|
|
15
|
-
if (signatures.length === 1) {
|
|
16
|
-
return signatures[0];
|
|
17
|
-
}
|
|
18
|
-
// Concatenate signatures
|
|
19
|
-
const allBytes = signatures.flatMap((hex) => Array.from((0, shared_1.fromHexString)(hex)));
|
|
20
|
-
return `0x${(0, shared_1.toHexString)(new Uint8Array(allBytes))}`;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Signs a UserOperation.
|
|
24
|
-
* @param provider - The Ethereum provider to use for signing.
|
|
25
|
-
* @param domain - The TACo domain being used.
|
|
26
|
-
* @param cohortId - The cohort ID that identifies the signing cohort.
|
|
27
|
-
* @param chainId - The chain ID for the signing operation.
|
|
28
|
-
* @param userOp - The UserOperation to be signed.
|
|
29
|
-
* @param aaVersion - The AA version of the account abstraction to use for signing.
|
|
30
|
-
* @param context - Optional condition context for the context variable resolution.
|
|
31
|
-
* @param porterUris - Optional URIs for the Porter service. If not provided, will fetch the default URIs from the domain.
|
|
32
|
-
* @returns A promise that resolves to a SignResult containing the message hash, aggregated signature, and signing results from the Porter service.
|
|
33
|
-
* @throws An error if the signing process fails due to insufficient signatures or mismatched hashes.
|
|
34
|
-
*/
|
|
35
|
-
async function signUserOp(provider, domain, cohortId, chainId, userOp, aaVersion, context, porterUris) {
|
|
36
|
-
const porterUrisFull = porterUris
|
|
37
|
-
? porterUris
|
|
38
|
-
: await (0, shared_1.getPorterUris)(domain);
|
|
39
|
-
const porter = new shared_1.PorterClient(porterUrisFull);
|
|
40
|
-
const signers = await shared_1.SigningCoordinatorAgent.getParticipants(provider, domain, cohortId);
|
|
41
|
-
const threshold = await shared_1.SigningCoordinatorAgent.getThreshold(provider, domain, cohortId);
|
|
42
|
-
const pythonUserOp = (0, shared_1.convertUserOperationToPython)(userOp);
|
|
43
|
-
const signingRequest = new shared_1.UserOperationSignatureRequest(pythonUserOp, aaVersion, cohortId, chainId, context || {}, 'userop');
|
|
44
|
-
const signingRequests = Object.fromEntries(signers.map((signer) => [
|
|
45
|
-
signer.provider,
|
|
46
|
-
(0, shared_1.toBase64)(signingRequest.toBytes()),
|
|
47
|
-
]));
|
|
48
|
-
// Build signing request for the user operation
|
|
49
|
-
const porterSignResult = await porter.signUserOp(signingRequests, threshold);
|
|
50
|
-
const hashToSignatures = new Map();
|
|
51
|
-
// Single pass: decode signatures and populate signingResults
|
|
52
|
-
for (const [ursulaAddress, signature] of Object.entries(porterSignResult.signingResults)) {
|
|
53
|
-
// For non-optimistic: track hashes and group signatures for aggregation
|
|
54
|
-
const hash = signature.messageHash;
|
|
55
|
-
if (!hashToSignatures.has(hash)) {
|
|
56
|
-
hashToSignatures.set(hash, {});
|
|
57
|
-
}
|
|
58
|
-
hashToSignatures.get(hash)[ursulaAddress] = signature;
|
|
59
|
-
}
|
|
60
|
-
let messageHash = undefined;
|
|
61
|
-
let signaturesToAggregate = undefined;
|
|
62
|
-
for (const [hash, signatures] of hashToSignatures.entries()) {
|
|
63
|
-
if (Object.keys(signatures).length >= threshold) {
|
|
64
|
-
signaturesToAggregate = signatures;
|
|
65
|
-
messageHash = hash;
|
|
66
|
-
break;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
// Insufficient signatures for a message hash to meet the threshold
|
|
70
|
-
if (!messageHash || !signaturesToAggregate) {
|
|
71
|
-
if (hashToSignatures.size > 1 &&
|
|
72
|
-
Object.keys(porterSignResult.errors).length < signers.length - threshold) {
|
|
73
|
-
// Two things are true:
|
|
74
|
-
// 1. we have multiple hashes, which means we have mismatched hashes from different nodes
|
|
75
|
-
// we don't really expect this to happen (other than some malicious nodes)
|
|
76
|
-
// 2. number of errors still could have allowed for a threshold of signatures
|
|
77
|
-
console.error('Porter returned mismatched message hashes:', hashToSignatures);
|
|
78
|
-
throw new Error(ERR_MISMATCHED_HASHES(hashToSignatures));
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
throw new Error(ERR_INSUFFICIENT_SIGNATURES(porterSignResult.errors));
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
const aggregatedSignature = aggregateSignatures(signaturesToAggregate, threshold);
|
|
85
|
-
return {
|
|
86
|
-
messageHash,
|
|
87
|
-
aggregatedSignature,
|
|
88
|
-
signingResults: porterSignResult.signingResults,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
async function setSigningCohortConditions(provider, domain, conditions, cohortId, chainId, signer) {
|
|
92
|
-
// Convert Condition to ConditionExpression, then to JSON, then to bytes
|
|
93
|
-
const conditionExpression = new condition_expr_1.ConditionExpression(conditions);
|
|
94
|
-
const conditionsJson = conditionExpression.toJson();
|
|
95
|
-
const conditionsBytes = ethers_1.ethers.utils.toUtf8Bytes(conditionsJson);
|
|
96
|
-
// Set conditions on the SigningCoordinator contract
|
|
97
|
-
return await shared_1.SigningCoordinatorAgent.setSigningCohortConditions(provider, domain, cohortId, chainId, conditionsBytes, signer);
|
|
98
|
-
}
|
|
99
|
-
//# sourceMappingURL=sign.js.map
|
package/dist/cjs/sign.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sign.js","sourceRoot":"","sources":["../../src/sign.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Condition } from '../condition';
|
|
2
|
-
import { AddressAllowlistConditionProps, AddressAllowlistConditionType } from '../schemas/address-allowlist';
|
|
3
|
-
import { OmitConditionType } from '../shared';
|
|
4
|
-
export { AddressAllowlistConditionProps, AddressAllowlistConditionType };
|
|
5
|
-
/**
|
|
6
|
-
* A condition that checks if a wallet address is in a list of allowed addresses.
|
|
7
|
-
*/
|
|
8
|
-
export declare class AddressAllowlistCondition extends Condition {
|
|
9
|
-
constructor(value: OmitConditionType<AddressAllowlistConditionProps>);
|
|
10
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Condition } from '../condition';
|
|
2
|
-
import { addressAllowlistConditionSchema, AddressAllowlistConditionType, } from '../schemas/address-allowlist';
|
|
3
|
-
export { AddressAllowlistConditionType };
|
|
4
|
-
/**
|
|
5
|
-
* A condition that checks if a wallet address is in a list of allowed addresses.
|
|
6
|
-
*/
|
|
7
|
-
export class AddressAllowlistCondition extends Condition {
|
|
8
|
-
constructor(value) {
|
|
9
|
-
super(addressAllowlistConditionSchema, {
|
|
10
|
-
conditionType: AddressAllowlistConditionType,
|
|
11
|
-
...value,
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=address-allowlist.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"address-allowlist.js","sourceRoot":"","sources":["../../../../src/conditions/base/address-allowlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAEL,+BAA+B,EAC/B,6BAA6B,GAC9B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAkC,6BAA6B,EAAE,CAAC;AAEzE;;GAEG;AACH,MAAM,OAAO,yBAA0B,SAAQ,SAAS;IACtD,YAAY,KAAwD;QAClE,KAAK,CAAC,+BAA+B,EAAE;YACrC,aAAa,EAAE,6BAA6B;YAC5C,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { Condition } from '../condition';
|
|
2
|
-
import { ECDSAConditionProps } from '../schemas/ecdsa';
|
|
3
|
-
import { OmitConditionType } from '../shared';
|
|
4
|
-
export { ECDSA_MESSAGE_PARAM_DEFAULT, ECDSA_SIGNATURE_PARAM_DEFAULT, ECDSAConditionProps, ecdsaConditionSchema, ECDSAConditionType, ECDSACurve, SUPPORTED_ECDSA_CURVES, } from '../schemas/ecdsa';
|
|
5
|
-
export declare class ECDSACondition extends Condition {
|
|
6
|
-
constructor(value: OmitConditionType<ECDSAConditionProps>);
|
|
7
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Condition } from '../condition';
|
|
2
|
-
import { ecdsaConditionSchema, ECDSAConditionType, } from '../schemas/ecdsa';
|
|
3
|
-
export { ECDSA_MESSAGE_PARAM_DEFAULT, ECDSA_SIGNATURE_PARAM_DEFAULT, ecdsaConditionSchema, ECDSAConditionType, SUPPORTED_ECDSA_CURVES, } from '../schemas/ecdsa';
|
|
4
|
-
export class ECDSACondition extends Condition {
|
|
5
|
-
constructor(value) {
|
|
6
|
-
super(ecdsaConditionSchema, {
|
|
7
|
-
conditionType: ECDSAConditionType,
|
|
8
|
-
...value,
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=ecdsa.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsa.js","sourceRoot":"","sources":["../../../../src/conditions/base/ecdsa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAEL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAE7B,oBAAoB,EACpB,kBAAkB,EAElB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,OAAO,cAAe,SAAQ,SAAS;IAC3C,YAAY,KAA6C;QACvD,KAAK,CAAC,oBAAoB,EAAE;YAC1B,aAAa,EAAE,kBAAkB;YACjC,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Condition } from '../condition';
|
|
2
|
-
import { SigningObjectAbiAttributeConditionProps, SigningObjectAttributeConditionProps } from '../schemas/signing';
|
|
3
|
-
import { OmitConditionType } from '../shared';
|
|
4
|
-
export { AbiCallValidationProps, abiCallValidationSchema, AbiParameterValidationProps, abiParameterValidationSchema, SIGNING_CONDITION_OBJECT_CONTEXT_VAR, SigningObjectAbiAttributeConditionProps, signingObjectAbiAttributeConditionSchema, SigningObjectAbiAttributeConditionType, SigningObjectAttributeConditionProps, signingObjectAttributeConditionSchema, SigningObjectAttributeConditionType, } from '../schemas/signing';
|
|
5
|
-
export declare class SigningObjectAttributeCondition extends Condition {
|
|
6
|
-
constructor(value: OmitConditionType<SigningObjectAttributeConditionProps>);
|
|
7
|
-
}
|
|
8
|
-
export declare class SigningObjectAbiAttributeCondition extends Condition {
|
|
9
|
-
constructor(value: OmitConditionType<SigningObjectAbiAttributeConditionProps>);
|
|
10
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Condition } from '../condition';
|
|
2
|
-
import { signingObjectAbiAttributeConditionSchema, SigningObjectAbiAttributeConditionType, signingObjectAttributeConditionSchema, SigningObjectAttributeConditionType, } from '../schemas/signing';
|
|
3
|
-
export { abiCallValidationSchema, abiParameterValidationSchema, SIGNING_CONDITION_OBJECT_CONTEXT_VAR, signingObjectAbiAttributeConditionSchema, SigningObjectAbiAttributeConditionType, signingObjectAttributeConditionSchema, SigningObjectAttributeConditionType, } from '../schemas/signing';
|
|
4
|
-
export class SigningObjectAttributeCondition extends Condition {
|
|
5
|
-
constructor(value) {
|
|
6
|
-
super(signingObjectAttributeConditionSchema, {
|
|
7
|
-
conditionType: SigningObjectAttributeConditionType,
|
|
8
|
-
...value,
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
export class SigningObjectAbiAttributeCondition extends Condition {
|
|
13
|
-
constructor(value) {
|
|
14
|
-
super(signingObjectAbiAttributeConditionSchema, {
|
|
15
|
-
conditionType: SigningObjectAbiAttributeConditionType,
|
|
16
|
-
...value,
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=signing.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signing.js","sourceRoot":"","sources":["../../../../src/conditions/base/signing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAEL,wCAAwC,EACxC,sCAAsC,EAEtC,qCAAqC,EACrC,mCAAmC,GACpC,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAEL,uBAAuB,EAEvB,4BAA4B,EAC5B,oCAAoC,EAEpC,wCAAwC,EACxC,sCAAsC,EAEtC,qCAAqC,EACrC,mCAAmC,GACpC,MAAM,oBAAoB,CAAC;AAE5B,MAAM,OAAO,+BAAgC,SAAQ,SAAS;IAC5D,YAAY,KAA8D;QACxE,KAAK,CAAC,qCAAqC,EAAE;YAC3C,aAAa,EAAE,mCAAmC;YAClD,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,kCAAmC,SAAQ,SAAS;IAC/D,YACE,KAAiE;QAEjE,KAAK,CAAC,wCAAwC,EAAE;YAC9C,aAAa,EAAE,sCAAsC;YACrD,GAAG,KAAK;SACT,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export declare const AddressAllowlistConditionType = "address-allowlist";
|
|
3
|
-
export declare const addressAllowlistConditionSchema: z.ZodObject<{} & {
|
|
4
|
-
conditionType: z.ZodLiteral<"address-allowlist">;
|
|
5
|
-
userAddress: z.ZodLiteral<":userAddress">;
|
|
6
|
-
addresses: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
|
|
7
|
-
}, "strict", z.ZodTypeAny, {
|
|
8
|
-
conditionType: "address-allowlist";
|
|
9
|
-
userAddress: ":userAddress";
|
|
10
|
-
addresses: string[];
|
|
11
|
-
}, {
|
|
12
|
-
conditionType: "address-allowlist";
|
|
13
|
-
userAddress: ":userAddress";
|
|
14
|
-
addresses: string[];
|
|
15
|
-
}>;
|
|
16
|
-
export type AddressAllowlistConditionProps = z.infer<typeof addressAllowlistConditionSchema>;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { EthAddressSchemaStrict } from '@nucypher/shared';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
import { baseConditionSchema, UserAddressSchema } from './common';
|
|
4
|
-
export const AddressAllowlistConditionType = 'address-allowlist';
|
|
5
|
-
export const addressAllowlistConditionSchema = baseConditionSchema
|
|
6
|
-
.extend({
|
|
7
|
-
conditionType: z.literal(AddressAllowlistConditionType),
|
|
8
|
-
userAddress: UserAddressSchema,
|
|
9
|
-
addresses: z
|
|
10
|
-
.array(EthAddressSchemaStrict)
|
|
11
|
-
.min(1, 'At least one address must be provided')
|
|
12
|
-
.max(25, 'A maximum of 25 addresses is allowed')
|
|
13
|
-
.describe('List of wallet addresses allowed to decrypt. Addresses should be provided in checksummed form.'),
|
|
14
|
-
})
|
|
15
|
-
.strict()
|
|
16
|
-
.describe('Address Allowlist Condition for allowing decryption for specific wallet addresses. It is very handy when combined with other conditions.');
|
|
17
|
-
//# sourceMappingURL=address-allowlist.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"address-allowlist.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/address-allowlist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElE,MAAM,CAAC,MAAM,6BAA6B,GAAG,mBAAmB,CAAC;AAEjE,MAAM,CAAC,MAAM,+BAA+B,GAAG,mBAAmB;KAC/D,MAAM,CAAC;IACN,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;IACvD,WAAW,EAAE,iBAAiB;IAC9B,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,sBAAsB,CAAC;SAC7B,GAAG,CAAC,CAAC,EAAE,uCAAuC,CAAC;SAC/C,GAAG,CAAC,EAAE,EAAE,sCAAsC,CAAC;SAC/C,QAAQ,CACP,gGAAgG,CACjG;CACJ,CAAC;KACD,MAAM,EAAE;KACR,QAAQ,CACP,0IAA0I,CAC3I,CAAC"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export declare const ECDSA_MESSAGE_PARAM_DEFAULT = ":message";
|
|
3
|
-
export declare const ECDSA_SIGNATURE_PARAM_DEFAULT = ":signature";
|
|
4
|
-
export declare const ECDSAConditionType = "ecdsa";
|
|
5
|
-
export declare const SUPPORTED_ECDSA_CURVES: readonly ["SECP256k1", "NIST256p", "NIST384p", "NIST521p", "Ed25519", "BRAINPOOLP256r1"];
|
|
6
|
-
export type ECDSACurve = (typeof SUPPORTED_ECDSA_CURVES)[number];
|
|
7
|
-
export declare const ecdsaConditionSchema: z.ZodEffects<z.ZodObject<{} & {
|
|
8
|
-
conditionType: z.ZodDefault<z.ZodLiteral<"ecdsa">>;
|
|
9
|
-
message: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodString]>>;
|
|
10
|
-
signature: z.ZodDefault<z.ZodUnion<[z.ZodString, z.ZodString]>>;
|
|
11
|
-
verifyingKey: z.ZodString;
|
|
12
|
-
curve: z.ZodEnum<["SECP256k1", "NIST256p", "NIST384p", "NIST521p", "Ed25519", "BRAINPOOLP256r1"]>;
|
|
13
|
-
}, "strip", z.ZodTypeAny, {
|
|
14
|
-
message: string;
|
|
15
|
-
conditionType: "ecdsa";
|
|
16
|
-
signature: string;
|
|
17
|
-
verifyingKey: string;
|
|
18
|
-
curve: "SECP256k1" | "NIST256p" | "NIST384p" | "NIST521p" | "Ed25519" | "BRAINPOOLP256r1";
|
|
19
|
-
}, {
|
|
20
|
-
verifyingKey: string;
|
|
21
|
-
curve: "SECP256k1" | "NIST256p" | "NIST384p" | "NIST521p" | "Ed25519" | "BRAINPOOLP256r1";
|
|
22
|
-
message?: string | undefined;
|
|
23
|
-
conditionType?: "ecdsa" | undefined;
|
|
24
|
-
signature?: string | undefined;
|
|
25
|
-
}>, {
|
|
26
|
-
message: string;
|
|
27
|
-
conditionType: "ecdsa";
|
|
28
|
-
signature: string;
|
|
29
|
-
verifyingKey: string;
|
|
30
|
-
curve: "SECP256k1" | "NIST256p" | "NIST384p" | "NIST521p" | "Ed25519" | "BRAINPOOLP256r1";
|
|
31
|
-
}, {
|
|
32
|
-
verifyingKey: string;
|
|
33
|
-
curve: "SECP256k1" | "NIST256p" | "NIST384p" | "NIST521p" | "Ed25519" | "BRAINPOOLP256r1";
|
|
34
|
-
message?: string | undefined;
|
|
35
|
-
conditionType?: "ecdsa" | undefined;
|
|
36
|
-
signature?: string | undefined;
|
|
37
|
-
}>;
|
|
38
|
-
export type ECDSAConditionProps = z.infer<typeof ecdsaConditionSchema>;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { baseConditionSchema, hexStringSchema } from './common';
|
|
3
|
-
import { contextParamSchema } from './context';
|
|
4
|
-
export const ECDSA_MESSAGE_PARAM_DEFAULT = ':message';
|
|
5
|
-
export const ECDSA_SIGNATURE_PARAM_DEFAULT = ':signature';
|
|
6
|
-
export const ECDSAConditionType = 'ecdsa';
|
|
7
|
-
export const SUPPORTED_ECDSA_CURVES = [
|
|
8
|
-
'SECP256k1',
|
|
9
|
-
'NIST256p',
|
|
10
|
-
'NIST384p',
|
|
11
|
-
'NIST521p',
|
|
12
|
-
'Ed25519',
|
|
13
|
-
'BRAINPOOLP256r1',
|
|
14
|
-
];
|
|
15
|
-
export const ecdsaConditionSchema = baseConditionSchema
|
|
16
|
-
.extend({
|
|
17
|
-
conditionType: z.literal(ECDSAConditionType).default(ECDSAConditionType),
|
|
18
|
-
message: z
|
|
19
|
-
.union([z.string(), contextParamSchema])
|
|
20
|
-
.default(ECDSA_MESSAGE_PARAM_DEFAULT),
|
|
21
|
-
signature: z
|
|
22
|
-
.union([hexStringSchema, contextParamSchema])
|
|
23
|
-
.default(ECDSA_SIGNATURE_PARAM_DEFAULT),
|
|
24
|
-
verifyingKey: hexStringSchema,
|
|
25
|
-
curve: z.enum(SUPPORTED_ECDSA_CURVES),
|
|
26
|
-
})
|
|
27
|
-
.refine((data) => {
|
|
28
|
-
// ensure that if message starts with 0x that it is valid hex
|
|
29
|
-
if (data.message.startsWith('0x'))
|
|
30
|
-
return hexStringSchema.safeParse(data.message.slice(2)).success;
|
|
31
|
-
return true;
|
|
32
|
-
}, {
|
|
33
|
-
message: 'Message must be a valid hex string if it starts with "0x"',
|
|
34
|
-
path: ['message'],
|
|
35
|
-
})
|
|
36
|
-
.describe('ECDSA Condition for verifying the authenticity of a message using ECDSA signatures.');
|
|
37
|
-
//# sourceMappingURL=ecdsa.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsa.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/ecdsa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,CAAC,MAAM,2BAA2B,GAAG,UAAU,CAAC;AACtD,MAAM,CAAC,MAAM,6BAA6B,GAAG,YAAY,CAAC;AAE1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAE1C,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,WAAW;IACX,UAAU;IACV,UAAU;IACV,UAAU;IACV,SAAS;IACT,iBAAiB;CACT,CAAC;AAIX,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB;KACpD,MAAM,CAAC;IACN,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC;IACxE,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC;SACvC,OAAO,CAAC,2BAA2B,CAAC;IACvC,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;SAC5C,OAAO,CAAC,6BAA6B,CAAC;IACzC,YAAY,EAAE,eAAe;IAC7B,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC;CACtC,CAAC;KACD,MAAM,CACL,CAAC,IAAI,EAAE,EAAE;IACP,6DAA6D;IAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAC/B,OAAO,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAClE,OAAO,IAAI,CAAC;AACd,CAAC,EACD;IACE,OAAO,EAAE,2DAA2D;IACpE,IAAI,EAAE,CAAC,SAAS,CAAC;CAClB,CACF;KACA,QAAQ,CACP,qFAAqF,CACtF,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export declare const SIGNING_CONDITION_OBJECT_CONTEXT_VAR = ":signingConditionObject";
|
|
3
|
-
export declare const SigningObjectAttributeConditionType = "signing-attribute";
|
|
4
|
-
export declare const signingObjectAttributeConditionSchema: z.ZodSchema;
|
|
5
|
-
export type SigningObjectAttributeConditionProps = z.infer<typeof signingObjectAttributeConditionSchema>;
|
|
6
|
-
export declare const abiParameterValidationSchema: z.ZodSchema;
|
|
7
|
-
export type AbiParameterValidationProps = z.infer<typeof abiParameterValidationSchema>;
|
|
8
|
-
export declare const abiCallValidationSchema: z.ZodSchema;
|
|
9
|
-
export type AbiCallValidationProps = z.infer<typeof abiCallValidationSchema>;
|
|
10
|
-
export declare const SigningObjectAbiAttributeConditionType = "signing-abi-attribute";
|
|
11
|
-
export declare const signingObjectAbiAttributeConditionSchema: z.ZodSchema;
|
|
12
|
-
export type SigningObjectAbiAttributeConditionProps = z.infer<typeof signingObjectAbiAttributeConditionSchema>;
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
import { FunctionFragment } from 'ethers/lib/utils';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
import { baseConditionSchema } from './common';
|
|
4
|
-
import { blockchainReturnValueTestSchema } from './return-value-test';
|
|
5
|
-
export const SIGNING_CONDITION_OBJECT_CONTEXT_VAR = ':signingConditionObject';
|
|
6
|
-
const signingConditionSchema = baseConditionSchema.extend({
|
|
7
|
-
signingObjectContextVar: z
|
|
8
|
-
.literal(SIGNING_CONDITION_OBJECT_CONTEXT_VAR)
|
|
9
|
-
.default(SIGNING_CONDITION_OBJECT_CONTEXT_VAR)
|
|
10
|
-
.describe('The context variable that will be replaced with the signing object at signing'),
|
|
11
|
-
});
|
|
12
|
-
const baseSigningObjectAttributeConditionSchema = signingConditionSchema.extend({
|
|
13
|
-
attributeName: z
|
|
14
|
-
.string()
|
|
15
|
-
.min(1)
|
|
16
|
-
.describe('The name of the attribute to check'),
|
|
17
|
-
});
|
|
18
|
-
export const SigningObjectAttributeConditionType = 'signing-attribute';
|
|
19
|
-
export const signingObjectAttributeConditionSchema = baseSigningObjectAttributeConditionSchema.extend({
|
|
20
|
-
conditionType: z
|
|
21
|
-
.literal(SigningObjectAttributeConditionType)
|
|
22
|
-
.default(SigningObjectAttributeConditionType),
|
|
23
|
-
returnValueTest: blockchainReturnValueTestSchema,
|
|
24
|
-
});
|
|
25
|
-
export const abiParameterValidationSchema = z
|
|
26
|
-
.object({
|
|
27
|
-
parameterIndex: z
|
|
28
|
-
.number()
|
|
29
|
-
.int()
|
|
30
|
-
.nonnegative()
|
|
31
|
-
.describe('Index of parameter to check within abi calldata.'),
|
|
32
|
-
indexWithinTuple: z
|
|
33
|
-
.number()
|
|
34
|
-
.int()
|
|
35
|
-
.nonnegative()
|
|
36
|
-
.optional()
|
|
37
|
-
.describe('Index of value within tuple value at parameter index to check'),
|
|
38
|
-
returnValueTest: blockchainReturnValueTestSchema
|
|
39
|
-
.optional()
|
|
40
|
-
.describe('Comparison check for value within calldata'),
|
|
41
|
-
nestedAbiValidation: z
|
|
42
|
-
.lazy(() => abiCallValidationSchema)
|
|
43
|
-
.optional()
|
|
44
|
-
.describe('Additional checks for nested abi calldata'),
|
|
45
|
-
})
|
|
46
|
-
.refine(
|
|
47
|
-
// An XOR check to see if either 'returnValueTest' or 'nestedAbiValidation' is set
|
|
48
|
-
(parameterValidation) => Boolean(parameterValidation.returnValueTest) !==
|
|
49
|
-
Boolean(parameterValidation.nestedAbiValidation), {
|
|
50
|
-
message: "At most one of the fields 'returnValueTest' and 'nestedAbiValidation' must be defined",
|
|
51
|
-
path: ['returnValueTest'],
|
|
52
|
-
});
|
|
53
|
-
// TODO: is there something already built out there to validate Solidity types?
|
|
54
|
-
function generateSolidityBaseTypeRegExp() {
|
|
55
|
-
// Generate a regex pattern for Solidity base types
|
|
56
|
-
// Generate int/uint sizes (8, 16, ..., 256)
|
|
57
|
-
const intSizes = Array.from({ length: 32 }, (_, i) => (i + 1) * 8); // [8, 16, ..., 256]
|
|
58
|
-
const intSizePattern = intSizes.join('|');
|
|
59
|
-
// Generate bytes sizes (1, 2, ..., 32)
|
|
60
|
-
const bytesSizes = Array.from({ length: 32 }, (_, i) => i + 1); // [1, 2, ..., 32]
|
|
61
|
-
const bytesSizePattern = bytesSizes.join('|');
|
|
62
|
-
// Build the regex string
|
|
63
|
-
const baseTypes = [
|
|
64
|
-
`u?int(${intSizePattern})?`, // uint8, uint16, ..., uint256, int8, int16, ..., int256
|
|
65
|
-
`bytes(${bytesSizePattern})?`, // bytes1, bytes2, ..., bytes32
|
|
66
|
-
'string',
|
|
67
|
-
'address',
|
|
68
|
-
'bool',
|
|
69
|
-
].join('|');
|
|
70
|
-
return new RegExp(`^(${baseTypes})$`);
|
|
71
|
-
}
|
|
72
|
-
// YIKES!
|
|
73
|
-
const solidityBaseTypePattern = generateSolidityBaseTypeRegExp();
|
|
74
|
-
const isValidSolidityType = (param) => {
|
|
75
|
-
// Recursive check for valid Solidity types
|
|
76
|
-
if (!param.baseType || !param.baseType.trim()) {
|
|
77
|
-
return false; // empty type is not valid
|
|
78
|
-
}
|
|
79
|
-
// Check for arrays and tuples
|
|
80
|
-
if (param.baseType === 'tuple') {
|
|
81
|
-
if (!param.components || param.components.length === 0) {
|
|
82
|
-
return false; // tuples must have components defined
|
|
83
|
-
}
|
|
84
|
-
return param.components.every(isValidSolidityType);
|
|
85
|
-
}
|
|
86
|
-
else if (param.baseType === 'array') {
|
|
87
|
-
if (!param.arrayChildren) {
|
|
88
|
-
return false; // arrays must have children type defined
|
|
89
|
-
}
|
|
90
|
-
return isValidSolidityType(param.arrayChildren);
|
|
91
|
-
}
|
|
92
|
-
else {
|
|
93
|
-
return solidityBaseTypePattern.test(param.baseType);
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
// TODO; find a better way to validate the param type - incomplete best effort for now
|
|
97
|
-
const isValidHumanAbiCallSignature = (signature) => {
|
|
98
|
-
try {
|
|
99
|
-
// TODO: verify this works properly
|
|
100
|
-
const fragment = FunctionFragment.from(signature);
|
|
101
|
-
for (const parameter of fragment.inputs) {
|
|
102
|
-
if (!isValidSolidityType(parameter)) {
|
|
103
|
-
return false; // invalid Solidity type
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
// ensure the same sighash format was provided
|
|
107
|
-
return fragment.format() === signature;
|
|
108
|
-
}
|
|
109
|
-
catch {
|
|
110
|
-
return false;
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
const humanAbiCallSignatureSchema = z
|
|
114
|
-
.string()
|
|
115
|
-
.refine(isValidHumanAbiCallSignature, {
|
|
116
|
-
message: 'Invalid human readable ABI signature provided',
|
|
117
|
-
})
|
|
118
|
-
.describe('A human readable ABI signature, e.g. "transfer(address,uint256)"');
|
|
119
|
-
/**
|
|
120
|
-
* Validates the allowed ABI calls against the provided signature and validations.
|
|
121
|
-
* This function is used in the superRefine method of the abiCallValidationSchema.
|
|
122
|
-
*
|
|
123
|
-
* @param ctx - The Zod refinement context.
|
|
124
|
-
* @param signature - The ABI signature to validate against.
|
|
125
|
-
* @param validations - The array of validations for the ABI parameters.
|
|
126
|
-
*/
|
|
127
|
-
function validateAllowedAbiCall(ctx, signature, validations) {
|
|
128
|
-
try {
|
|
129
|
-
const fragment = FunctionFragment.from(signature);
|
|
130
|
-
for (const [index, validation] of validations.entries()) {
|
|
131
|
-
if (validation.parameterIndex >= fragment.inputs.length) {
|
|
132
|
-
// invalid parameter index
|
|
133
|
-
ctx.addIssue({
|
|
134
|
-
code: z.ZodIssueCode.custom,
|
|
135
|
-
message: `Parameter index, "${validation.parameterIndex}", is out of range`,
|
|
136
|
-
path: ['allowedAbiCalls', signature, index, 'parameterIndex'],
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
if (validation.indexWithinTuple !== undefined) {
|
|
140
|
-
const paramType = fragment.inputs[validation.parameterIndex];
|
|
141
|
-
if (paramType.baseType !== 'tuple') {
|
|
142
|
-
// type at parameter index is not a tuple
|
|
143
|
-
ctx.addIssue({
|
|
144
|
-
code: z.ZodIssueCode.custom,
|
|
145
|
-
message: `Type at parameter index, "${validation.parameterIndex}", is not a tuple`,
|
|
146
|
-
path: ['allowedAbiCalls', signature, index, 'parameterIndex'],
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
else if (validation.indexWithinTuple >= paramType.components.length) {
|
|
150
|
-
// invalid index within tuple
|
|
151
|
-
ctx.addIssue({
|
|
152
|
-
code: z.ZodIssueCode.custom,
|
|
153
|
-
message: `Index within tuple, "${validation.indexWithinTuple}", is out of range`,
|
|
154
|
-
path: ['allowedAbiCalls', signature, index, 'indexWithinTuple'],
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
if (validation.nestedAbiValidation) {
|
|
159
|
-
// if there is nested ABI validation, the type must be bytes
|
|
160
|
-
let paramType = fragment.inputs[validation.parameterIndex];
|
|
161
|
-
if (validation.indexWithinTuple !== undefined) {
|
|
162
|
-
// if there is an index within tuple, get the type of the component at that index
|
|
163
|
-
paramType = paramType.components[validation.indexWithinTuple];
|
|
164
|
-
}
|
|
165
|
-
if (paramType.baseType !== 'bytes') {
|
|
166
|
-
ctx.addIssue({
|
|
167
|
-
code: z.ZodIssueCode.custom,
|
|
168
|
-
message: `Invalid type for nested ABI validation, "${paramType.baseType}"; expected bytes`,
|
|
169
|
-
path: ['allowedAbiCalls', signature, index],
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
catch {
|
|
176
|
-
// even though abi signatures are already validated by nested schema - zod uses “greedy” (continuable) validation so all validations are run
|
|
177
|
-
// ignore invalid ABI signature
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
export const abiCallValidationSchema = z
|
|
181
|
-
.object({
|
|
182
|
-
allowedAbiCalls: z.record(humanAbiCallSignatureSchema, z.array(abiParameterValidationSchema)),
|
|
183
|
-
})
|
|
184
|
-
.refine((abiCallValidation) => Object.keys(abiCallValidation.allowedAbiCalls).length > 0, {
|
|
185
|
-
message: 'At least one allowed ABI call must be defined',
|
|
186
|
-
path: ['allowedAbiCalls'],
|
|
187
|
-
})
|
|
188
|
-
.superRefine((data, ctx) => {
|
|
189
|
-
for (const [signature, validations] of Object.entries(data.allowedAbiCalls)) {
|
|
190
|
-
validateAllowedAbiCall(ctx, signature, validations);
|
|
191
|
-
}
|
|
192
|
-
})
|
|
193
|
-
.describe('A map of allowed ABI calls with their respective parameter validations.');
|
|
194
|
-
export const SigningObjectAbiAttributeConditionType = 'signing-abi-attribute';
|
|
195
|
-
export const signingObjectAbiAttributeConditionSchema = baseSigningObjectAttributeConditionSchema.extend({
|
|
196
|
-
conditionType: z
|
|
197
|
-
.literal(SigningObjectAbiAttributeConditionType)
|
|
198
|
-
.default(SigningObjectAbiAttributeConditionType),
|
|
199
|
-
abiValidation: abiCallValidationSchema,
|
|
200
|
-
});
|
|
201
|
-
//# sourceMappingURL=signing.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signing.js","sourceRoot":"","sources":["../../../../src/conditions/schemas/signing.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { Primitive, z } from 'zod';
|
|
2
|
-
declare function createUnionSchema<T extends readonly Primitive[]>(values: T): z.ZodNever | z.ZodLiteral<Primitive> | z.ZodUnion<[z.ZodLiteral<Primitive>, z.ZodLiteral<Primitive>, ...z.ZodLiteral<Primitive>[]]>;
|
|
3
|
-
export default createUnionSchema;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
// Source: https://github.com/colinhacks/zod/issues/831#issuecomment-1063481764
|
|
3
|
-
const createUnion = (values) => {
|
|
4
|
-
const zodLiterals = values.map((value) => z.literal(value));
|
|
5
|
-
return z.union(zodLiterals);
|
|
6
|
-
};
|
|
7
|
-
function createUnionSchema(values) {
|
|
8
|
-
if (values.length === 0) {
|
|
9
|
-
return z.never();
|
|
10
|
-
}
|
|
11
|
-
if (values.length === 1) {
|
|
12
|
-
return z.literal(values[0]);
|
|
13
|
-
}
|
|
14
|
-
return createUnion(values);
|
|
15
|
-
}
|
|
16
|
-
export default createUnionSchema;
|
|
17
|
-
//# sourceMappingURL=zod.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"zod.js","sourceRoot":"","sources":["../../../src/conditions/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,CAAC,EAAc,MAAM,KAAK,CAAC;AAE/C,+EAA+E;AAC/E,MAAM,WAAW,GAAG,CAGlB,MAAS,EACT,EAAE;IACF,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAIzD,CAAC;IACF,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,SAAS,iBAAiB,CAAiC,MAAS;IAClE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,WAAW,CAChB,MAAqE,CACtE,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"}
|
package/dist/es/sign.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Domain, TacoSignature, UserOperation } from '@nucypher/shared';
|
|
2
|
-
import { ethers } from 'ethers';
|
|
3
|
-
import { Condition } from './conditions/condition';
|
|
4
|
-
import { ConditionContext } from './conditions/context';
|
|
5
|
-
export type SignResult = {
|
|
6
|
-
messageHash: string;
|
|
7
|
-
aggregatedSignature: string;
|
|
8
|
-
signingResults: {
|
|
9
|
-
[ursulaAddress: string]: TacoSignature;
|
|
10
|
-
};
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Signs a UserOperation.
|
|
14
|
-
* @param provider - The Ethereum provider to use for signing.
|
|
15
|
-
* @param domain - The TACo domain being used.
|
|
16
|
-
* @param cohortId - The cohort ID that identifies the signing cohort.
|
|
17
|
-
* @param chainId - The chain ID for the signing operation.
|
|
18
|
-
* @param userOp - The UserOperation to be signed.
|
|
19
|
-
* @param aaVersion - The AA version of the account abstraction to use for signing.
|
|
20
|
-
* @param context - Optional condition context for the context variable resolution.
|
|
21
|
-
* @param porterUris - Optional URIs for the Porter service. If not provided, will fetch the default URIs from the domain.
|
|
22
|
-
* @returns A promise that resolves to a SignResult containing the message hash, aggregated signature, and signing results from the Porter service.
|
|
23
|
-
* @throws An error if the signing process fails due to insufficient signatures or mismatched hashes.
|
|
24
|
-
*/
|
|
25
|
-
export declare function signUserOp(provider: ethers.providers.Provider, domain: Domain, cohortId: number, chainId: number, userOp: UserOperation, aaVersion: 'mdt' | '0.8.0' | string, context?: ConditionContext, porterUris?: string[]): Promise<SignResult>;
|
|
26
|
-
export declare function setSigningCohortConditions(provider: ethers.providers.JsonRpcProvider, domain: Domain, conditions: Condition, cohortId: number, chainId: number, signer: ethers.Signer): Promise<ethers.ContractTransaction>;
|