@sig-net/midnight 0.22.2 → 0.24.0-rc.1
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 +1 -1
- package/dist/compact-descriptors.d.ts +2 -2
- package/dist/compact-descriptors.d.ts.map +1 -1
- package/dist/compact-descriptors.js +10 -3
- package/dist/compact-descriptors.js.map +1 -1
- package/dist/constants.js +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/ecdsa-attestation.d.ts +6 -4
- package/dist/ecdsa-attestation.d.ts.map +1 -1
- package/dist/ecdsa-attestation.js +8 -5
- package/dist/ecdsa-attestation.js.map +1 -1
- package/dist/managed/compiler/contract-info.json +35 -0
- package/dist/managed/compiler/contract-manifest.json +8 -8
- package/dist/managed/contract/index.d.ts +10 -0
- package/dist/managed/contract/index.js +192 -107
- package/dist/managed/contract/index.js.map +1 -1
- package/dist/mpc-output-cache.d.ts +29 -5
- package/dist/mpc-output-cache.d.ts.map +1 -1
- package/dist/mpc-output-cache.js +40 -6
- package/dist/mpc-output-cache.js.map +1 -1
- package/dist/signature-requests-state-reader.d.ts +6 -13
- package/dist/signature-requests-state-reader.d.ts.map +1 -1
- package/dist/signature-requests-state-reader.js +9 -15
- package/dist/signature-requests-state-reader.js.map +1 -1
- package/dist/signet-evtype2tx-record-decoding.js +2 -2
- package/dist/signet-request-response-reader.d.ts +4 -2
- package/dist/signet-request-response-reader.d.ts.map +1 -1
- package/dist/signet-request-response-reader.js +9 -6
- package/dist/signet-request-response-reader.js.map +1 -1
- package/dist/signet-requests.d.ts +0 -2
- package/dist/signet-requests.d.ts.map +1 -1
- package/dist/signet-requests.js +1 -2
- package/dist/signet-requests.js.map +1 -1
- package/dist/testing.js +1 -1
- package/dist/testing.js.map +1 -1
- package/package.json +2 -2
- package/src/Signet.compact +8 -9
- package/src/circuits.compact +10 -4
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
"sourceRoot": "../../../",
|
|
5
5
|
"sources": ["src/circuits.compact", "src/./Signet.compact", "compiler/zkir-v3-library.compact"],
|
|
6
6
|
"names": [],
|
|
7
|
-
"mappings": "
|
|
7
|
+
"mappings": "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"
|
|
8
8
|
}
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
import type { RequestIdHex } from "./signet-requests.ts";
|
|
2
|
+
/** Width of the block height a cached attested output starts with: a packed `Uint<64>`. */
|
|
3
|
+
export declare const CACHED_BLOCK_HEIGHT_BYTES = 8;
|
|
4
|
+
/** An attested output as the cache stores it: the block height and the serialised output. */
|
|
5
|
+
export interface AttestedOutput {
|
|
6
|
+
readonly blockHeight: bigint;
|
|
7
|
+
readonly serializedOutput: Uint8Array;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The cache object for an attestation: the destination block height as a packed
|
|
11
|
+
* little-endian `Uint<64>` followed by the serialised output the digest covers.
|
|
12
|
+
*
|
|
13
|
+
* @param attested - The block height and the serialised output.
|
|
14
|
+
* @returns The bytes the cache stores.
|
|
15
|
+
*/
|
|
16
|
+
export declare function encodeAttestedOutput(attested: AttestedOutput): Uint8Array;
|
|
17
|
+
/**
|
|
18
|
+
* Splits a cache object into the block height and the serialised output.
|
|
19
|
+
*
|
|
20
|
+
* @param bytes - The bytes the cache stores.
|
|
21
|
+
* @returns The block height and the serialised output.
|
|
22
|
+
* @throws {Error} If the bytes are shorter than the block height alone.
|
|
23
|
+
*/
|
|
24
|
+
export declare function decodeAttestedOutput(bytes: Uint8Array): AttestedOutput;
|
|
2
25
|
/** Where the MPC's output cache lives and which of its namespaces to read. */
|
|
3
26
|
export interface MpcOutputCacheConfig {
|
|
4
27
|
/**
|
|
@@ -38,15 +61,16 @@ export declare class MpcOutputCacheReader {
|
|
|
38
61
|
*/
|
|
39
62
|
objectUrl(requestId: RequestIdHex): string;
|
|
40
63
|
/**
|
|
41
|
-
* Download the
|
|
42
|
-
*
|
|
64
|
+
* Download the attested output the MPC cached for `requestId`: the block
|
|
65
|
+
* height and the serialised output, see {@link decodeAttestedOutput}.
|
|
66
|
+
* UNTRUSTED: verify the attestation signature over the returned pair.
|
|
43
67
|
*
|
|
44
68
|
* @param requestId - The request whose attested output to fetch.
|
|
45
|
-
* @returns The cached
|
|
46
|
-
* for the request (the MPC has not written it yet).
|
|
69
|
+
* @returns The cached block height and serialised output, or `undefined`
|
|
70
|
+
* when the cache holds no object for the request (the MPC has not written it yet).
|
|
47
71
|
* @throws {Error} If the cache cannot be reached or answers with a status
|
|
48
72
|
* other than 200 or 404.
|
|
49
73
|
*/
|
|
50
|
-
|
|
74
|
+
fetchAttestedOutput(requestId: RequestIdHex): Promise<AttestedOutput | undefined>;
|
|
51
75
|
}
|
|
52
76
|
//# sourceMappingURL=mpc-output-cache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mpc-output-cache.d.ts","sourceRoot":"","sources":["../src/mpc-output-cache.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mpc-output-cache.d.ts","sourceRoot":"","sources":["../src/mpc-output-cache.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,2FAA2F;AAC3F,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,6FAA6F;AAC7F,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,UAAU,CAAC;CACvC;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,UAAU,CAKzE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,UAAU,GAAG,cAAc,CAWtE;AAED,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,iFAAiF;IACjF,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,mGAAmG;IACnG,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC;AAwBD;;;;;;;GAOG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IAEtC;;;;OAIG;IACH,YAAY,MAAM,EAAE,oBAAoB,EAMvC;IAED;;;;;OAKG;IACH,SAAS,CAAC,SAAS,EAAE,YAAY,GAAG,MAAM,CAEzC;IAED;;;;;;;;;;OAUG;IACG,mBAAmB,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAYtF;CACF"}
|
package/dist/mpc-output-cache.js
CHANGED
|
@@ -6,7 +6,40 @@
|
|
|
6
6
|
// signature alone and the cache carries the bytes. An object holds nothing
|
|
7
7
|
// but the packed output, and is UNTRUSTED until the attestation signature
|
|
8
8
|
// verifies over it (`verifyRespondBidirectionalSignature`).
|
|
9
|
+
import { compactSerialize } from "@sig-net/midnight-serde";
|
|
9
10
|
import { getMpcOutputCacheUrl, MidnightNetwork } from "./constants.js";
|
|
11
|
+
/** Width of the block height a cached attested output starts with: a packed `Uint<64>`. */
|
|
12
|
+
export const CACHED_BLOCK_HEIGHT_BYTES = 8;
|
|
13
|
+
/**
|
|
14
|
+
* The cache object for an attestation: the destination block height as a packed
|
|
15
|
+
* little-endian `Uint<64>` followed by the serialised output the digest covers.
|
|
16
|
+
*
|
|
17
|
+
* @param attested - The block height and the serialised output.
|
|
18
|
+
* @returns The bytes the cache stores.
|
|
19
|
+
*/
|
|
20
|
+
export function encodeAttestedOutput(attested) {
|
|
21
|
+
const out = new Uint8Array(CACHED_BLOCK_HEIGHT_BYTES + attested.serializedOutput.length);
|
|
22
|
+
out.set(compactSerialize({ kind: "uint", bits: 64 }, attested.blockHeight));
|
|
23
|
+
out.set(attested.serializedOutput, CACHED_BLOCK_HEIGHT_BYTES);
|
|
24
|
+
return out;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Splits a cache object into the block height and the serialised output.
|
|
28
|
+
*
|
|
29
|
+
* @param bytes - The bytes the cache stores.
|
|
30
|
+
* @returns The block height and the serialised output.
|
|
31
|
+
* @throws {Error} If the bytes are shorter than the block height alone.
|
|
32
|
+
*/
|
|
33
|
+
export function decodeAttestedOutput(bytes) {
|
|
34
|
+
if (bytes.length < CACHED_BLOCK_HEIGHT_BYTES) {
|
|
35
|
+
throw new Error(`cached attested output of ${String(bytes.length)} bytes is shorter than its ${String(CACHED_BLOCK_HEIGHT_BYTES)}-byte block height`);
|
|
36
|
+
}
|
|
37
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, CACHED_BLOCK_HEIGHT_BYTES);
|
|
38
|
+
return {
|
|
39
|
+
blockHeight: view.getBigUint64(0, true),
|
|
40
|
+
serializedOutput: bytes.slice(CACHED_BLOCK_HEIGHT_BYTES),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
10
43
|
/** The networks this package may publish an output cache for: every named one but the local stack. */
|
|
11
44
|
const DEPLOYED_NETWORKS = Object.values(MidnightNetwork).filter((network) => network !== MidnightNetwork.Undeployed);
|
|
12
45
|
/**
|
|
@@ -55,16 +88,17 @@ export class MpcOutputCacheReader {
|
|
|
55
88
|
return `${this.namespaceUrl}/${requestId}.bin`;
|
|
56
89
|
}
|
|
57
90
|
/**
|
|
58
|
-
* Download the
|
|
59
|
-
*
|
|
91
|
+
* Download the attested output the MPC cached for `requestId`: the block
|
|
92
|
+
* height and the serialised output, see {@link decodeAttestedOutput}.
|
|
93
|
+
* UNTRUSTED: verify the attestation signature over the returned pair.
|
|
60
94
|
*
|
|
61
95
|
* @param requestId - The request whose attested output to fetch.
|
|
62
|
-
* @returns The cached
|
|
63
|
-
* for the request (the MPC has not written it yet).
|
|
96
|
+
* @returns The cached block height and serialised output, or `undefined`
|
|
97
|
+
* when the cache holds no object for the request (the MPC has not written it yet).
|
|
64
98
|
* @throws {Error} If the cache cannot be reached or answers with a status
|
|
65
99
|
* other than 200 or 404.
|
|
66
100
|
*/
|
|
67
|
-
async
|
|
101
|
+
async fetchAttestedOutput(requestId) {
|
|
68
102
|
const url = this.objectUrl(requestId);
|
|
69
103
|
const response = await fetch(url);
|
|
70
104
|
if (response.status === 404) {
|
|
@@ -73,7 +107,7 @@ export class MpcOutputCacheReader {
|
|
|
73
107
|
if (!response.ok) {
|
|
74
108
|
throw new Error(`MPC output cache answered HTTP ${String(response.status)} for ${url}: ${await response.text()}`);
|
|
75
109
|
}
|
|
76
|
-
return new Uint8Array(await response.arrayBuffer());
|
|
110
|
+
return decodeAttestedOutput(new Uint8Array(await response.arrayBuffer()));
|
|
77
111
|
}
|
|
78
112
|
}
|
|
79
113
|
//# sourceMappingURL=mpc-output-cache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mpc-output-cache.js","sourceRoot":"","sources":["../src/mpc-output-cache.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,4EAA4E;AAC5E,6EAA6E;AAC7E,wEAAwE;AACxE,2EAA2E;AAC3E,2EAA2E;AAC3E,0EAA0E;AAC1E,4DAA4D;AAE5D,OAAO,EAAwB,oBAAoB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"mpc-output-cache.js","sourceRoot":"","sources":["../src/mpc-output-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,14 @@
|
|
|
1
1
|
import { type RawContractState } from "./raw-contract-state.ts";
|
|
2
2
|
import { type RequestIdHex, type SignBidirectionalEvent, type SignBidirectionalEventIndex } from "./signet-requests.ts";
|
|
3
|
-
/**
|
|
4
|
-
* The decoded signet ledger fields of a requesting contract: its request
|
|
5
|
-
* index and its contract-local request counter (Compact `Counter`), the
|
|
6
|
-
* source of each request's `requestNonce`.
|
|
7
|
-
*/
|
|
3
|
+
/** The decoded signet ledger field of a requesting contract: its request index. */
|
|
8
4
|
export interface SignetRequestsLedger {
|
|
9
|
-
/** The request counter (`Counter`). */
|
|
10
|
-
nonce: bigint;
|
|
11
5
|
/** The request index, keyed by hex request id. */
|
|
12
6
|
requestsIndex: SignBidirectionalEventIndex;
|
|
13
7
|
}
|
|
14
8
|
/**
|
|
15
|
-
* MPC-style read: parse the signet
|
|
16
|
-
* by caller-supplied field
|
|
17
|
-
* the caller must know where the
|
|
9
|
+
* MPC-style read: parse the signet request index out of raw contract state
|
|
10
|
+
* by its caller-supplied field position. A contract chooses its own layout, so
|
|
11
|
+
* the caller must know where the field sits.
|
|
18
12
|
*
|
|
19
13
|
* Records are decoded, not verified against the ids they are filed under:
|
|
20
14
|
* {@link lookupSignetRequestAt} is the verified lookup.
|
|
@@ -22,12 +16,11 @@ export interface SignetRequestsLedger {
|
|
|
22
16
|
* @param raw - Raw contract state, e.g. `queryContractState(address).data`
|
|
23
17
|
* from the indexer or `ctx.currentQueryContext.state` from the simulator.
|
|
24
18
|
* @param requestsIndexPath - Resolved ledger-tree path of the request index.
|
|
25
|
-
* @param noncePath - Resolved ledger-tree path of the request counter.
|
|
26
19
|
* @returns The decoded {@link SignetRequestsLedger}.
|
|
27
|
-
* @throws {Error} If
|
|
20
|
+
* @throws {Error} If the field is missing, has the wrong state-value shape, or a
|
|
28
21
|
* record is not a decodable evmType2 request record.
|
|
29
22
|
*/
|
|
30
|
-
export declare function readSignetRequestsLedgerFromState(raw: RawContractState, requestsIndexPath: readonly number[]
|
|
23
|
+
export declare function readSignetRequestsLedgerFromState(raw: RawContractState, requestsIndexPath: readonly number[]): SignetRequestsLedger;
|
|
31
24
|
/**
|
|
32
25
|
* Look up ONE request by id in a contract's request index at an arbitrary
|
|
33
26
|
* ledger field: the single-record sibling of
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature-requests-state-reader.d.ts","sourceRoot":"","sources":["../src/signature-requests-state-reader.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,gBAAgB,EAAyB,MAAM,yBAAyB,CAAC;AAGvF,OAAO,EAEL,KAAK,YAAY,EAGjB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAEjC,MAAM,sBAAsB,CAAC;AAwC9B
|
|
1
|
+
{"version":3,"file":"signature-requests-state-reader.d.ts","sourceRoot":"","sources":["../src/signature-requests-state-reader.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,gBAAgB,EAAyB,MAAM,yBAAyB,CAAC;AAGvF,OAAO,EAEL,KAAK,YAAY,EAGjB,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAEjC,MAAM,sBAAsB,CAAC;AAwC9B,mFAAmF;AACnF,MAAM,WAAW,oBAAoB;IACnC,kDAAkD;IAClD,aAAa,EAAE,2BAA2B,CAAC;CAC5C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,gBAAgB,EACrB,iBAAiB,EAAE,SAAS,MAAM,EAAE,GACnC,oBAAoB,CActB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,SAAS,MAAM,EAAE,EAC/B,SAAS,EAAE,YAAY,GACtB,sBAAsB,GAAG,SAAS,CA+BpC"}
|
|
@@ -8,16 +8,16 @@
|
|
|
8
8
|
// (chain-signatures/chain-midnight/src/reader.rs) and must stay in lockstep
|
|
9
9
|
// with it: each record is decoded once, and id verification is a separate
|
|
10
10
|
// recompute-and-drop gate ({@link lookupSignetRequestAt}).
|
|
11
|
-
import { decodeExactly
|
|
11
|
+
import { decodeExactly } from "./compact-descriptors.js";
|
|
12
12
|
import { signetFieldNodeByPath } from "./raw-contract-state.js";
|
|
13
13
|
import { decodeEvmType2SignBidirectionalEvent } from "./signet-evtype2tx-record-decoding.js";
|
|
14
14
|
import { calculateRequestId } from "./signet-request-id.js";
|
|
15
15
|
import { requestIdBytes, requestIdHex, requestIdType, TxParamType, } from "./signet-requests.js";
|
|
16
16
|
// Atom position of `txParamType` in a stored record: the chain-agnostic head
|
|
17
17
|
// of SignBidirectionalEvent (sender through txParamType) occupies the first
|
|
18
|
-
//
|
|
18
|
+
// 7 atoms whatever the decomposition, so the tag sits at the same index in
|
|
19
19
|
// every record.
|
|
20
|
-
const TX_PARAM_TYPE_ATOM =
|
|
20
|
+
const TX_PARAM_TYPE_ATOM = 6;
|
|
21
21
|
/**
|
|
22
22
|
* Decode a stored request record: read the `txParamType` tag and hand the
|
|
23
23
|
* cell to that decomposition's decoder, so a foreign param type fails by
|
|
@@ -48,9 +48,9 @@ function decodeSignBidirectionalEvent(cell) {
|
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
|
-
* MPC-style read: parse the signet
|
|
52
|
-
* by caller-supplied field
|
|
53
|
-
* the caller must know where the
|
|
51
|
+
* MPC-style read: parse the signet request index out of raw contract state
|
|
52
|
+
* by its caller-supplied field position. A contract chooses its own layout, so
|
|
53
|
+
* the caller must know where the field sits.
|
|
54
54
|
*
|
|
55
55
|
* Records are decoded, not verified against the ids they are filed under:
|
|
56
56
|
* {@link lookupSignetRequestAt} is the verified lookup.
|
|
@@ -58,12 +58,11 @@ function decodeSignBidirectionalEvent(cell) {
|
|
|
58
58
|
* @param raw - Raw contract state, e.g. `queryContractState(address).data`
|
|
59
59
|
* from the indexer or `ctx.currentQueryContext.state` from the simulator.
|
|
60
60
|
* @param requestsIndexPath - Resolved ledger-tree path of the request index.
|
|
61
|
-
* @param noncePath - Resolved ledger-tree path of the request counter.
|
|
62
61
|
* @returns The decoded {@link SignetRequestsLedger}.
|
|
63
|
-
* @throws {Error} If
|
|
62
|
+
* @throws {Error} If the field is missing, has the wrong state-value shape, or a
|
|
64
63
|
* record is not a decodable evmType2 request record.
|
|
65
64
|
*/
|
|
66
|
-
export function readSignetRequestsLedgerFromState(raw, requestsIndexPath
|
|
65
|
+
export function readSignetRequestsLedgerFromState(raw, requestsIndexPath) {
|
|
67
66
|
const map = signetFieldNodeByPath(raw, requestsIndexPath).asMap();
|
|
68
67
|
if (map === undefined) {
|
|
69
68
|
throw new Error(`Ledger field at path ${JSON.stringify(requestsIndexPath)} is not a Map`);
|
|
@@ -76,12 +75,7 @@ export function readSignetRequestsLedgerFromState(raw, requestsIndexPath, nonceP
|
|
|
76
75
|
continue;
|
|
77
76
|
requestsIndex.set(requestId, decodeSignBidirectionalEvent(cell));
|
|
78
77
|
}
|
|
79
|
-
|
|
80
|
-
if (nonceField.type() !== "cell") {
|
|
81
|
-
throw new Error(`Ledger field at path ${JSON.stringify(noncePath)} is not a Cell`);
|
|
82
|
-
}
|
|
83
|
-
const nonce = decodeExactly(UINT_64, nonceField.asCell().value, "request counter");
|
|
84
|
-
return { nonce, requestsIndex };
|
|
78
|
+
return { requestsIndex };
|
|
85
79
|
}
|
|
86
80
|
/**
|
|
87
81
|
* Look up ONE request by id in a contract's request index at an arbitrary
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature-requests-state-reader.js","sourceRoot":"","sources":["../src/signature-requests-state-reader.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,yEAAyE;AACzE,yEAAyE;AACzE,0EAA0E;AAC1E,4EAA4E;AAC5E,EAAE;AACF,6DAA6D;AAC7D,4EAA4E;AAC5E,0EAA0E;AAC1E,2DAA2D;AAI3D,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"signature-requests-state-reader.js","sourceRoot":"","sources":["../src/signature-requests-state-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,8 @@ import { signBidirectionalEventDescriptor } from "./signet-evtype2tx-requests.js
|
|
|
12
12
|
// two schemas). A stored cell holds
|
|
13
13
|
// EVM_TYPE2_FIXED_ATOMS + maxCalldataWords
|
|
14
14
|
// + maxAccessListEntries * (2 + maxStorageKeysPerEntry) atoms.
|
|
15
|
-
const EVM_TYPE2_FIXED_ATOMS =
|
|
16
|
-
const EVM_TYPE2_HEAD_ATOMS =
|
|
15
|
+
const EVM_TYPE2_FIXED_ATOMS = 21;
|
|
16
|
+
const EVM_TYPE2_HEAD_ATOMS = 17;
|
|
17
17
|
const EVM_TYPE2_TAIL_ATOMS = 3;
|
|
18
18
|
/**
|
|
19
19
|
* Recover the sizing parameters the requester's contract was compiled with
|
|
@@ -71,6 +71,7 @@ export interface VerifiedSignatureResponseResult {
|
|
|
71
71
|
*
|
|
72
72
|
* @param requestId - The request id the posts must declare and the
|
|
73
73
|
* attestation must commit to.
|
|
74
|
+
* @param blockHeight - The destination block height the attestation names.
|
|
74
75
|
* @param serializedOutput - The serialised execution output the attestation
|
|
75
76
|
* must commit to, exact unpadded bytes.
|
|
76
77
|
* @param mpcResponseKey - The MPC response key the requesting contract
|
|
@@ -79,7 +80,7 @@ export interface VerifiedSignatureResponseResult {
|
|
|
79
80
|
* emission order. Only attestations declaring `requestId` are judged.
|
|
80
81
|
* @returns The first verifying post, or `undefined` when none attests this output.
|
|
81
82
|
*/
|
|
82
|
-
export declare function findVerifiedRespondBidirectionalEvent(requestId: RequestIdHex, serializedOutput: Uint8Array, mpcResponseKey: Secp256k1Point, events: readonly DecodedSignetEvent[]): RespondBidirectionalEvent | undefined;
|
|
83
|
+
export declare function findVerifiedRespondBidirectionalEvent(requestId: RequestIdHex, blockHeight: bigint, serializedOutput: Uint8Array, mpcResponseKey: Secp256k1Point, events: readonly DecodedSignetEvent[]): RespondBidirectionalEvent | undefined;
|
|
83
84
|
/**
|
|
84
85
|
* Reader over one requester contract / signet contract pair. Construct once
|
|
85
86
|
* per pair and reuse: fetched request records are cached, so repeated
|
|
@@ -213,6 +214,7 @@ export declare class SignetRequestResponseReader {
|
|
|
213
214
|
*
|
|
214
215
|
* @param requestId - The request id the posts must declare and the
|
|
215
216
|
* attestation must commit to.
|
|
217
|
+
* @param blockHeight - The destination block height the attestation names.
|
|
216
218
|
* @param serializedOutput - The serialised execution output the attestation
|
|
217
219
|
* must commit to, exact unpadded bytes.
|
|
218
220
|
* @param mpcResponseKey - The MPC response key the requesting contract
|
|
@@ -220,6 +222,6 @@ export declare class SignetRequestResponseReader {
|
|
|
220
222
|
* @returns The first verifying post, or `undefined` when none has been
|
|
221
223
|
* posted yet (poll again) or none attests this output.
|
|
222
224
|
*/
|
|
223
|
-
getVerifiedRespondBidirectionalEvent(requestId: RequestIdHex, serializedOutput: Uint8Array, mpcResponseKey: Secp256k1Point): Promise<RespondBidirectionalEvent | undefined>;
|
|
225
|
+
getVerifiedRespondBidirectionalEvent(requestId: RequestIdHex, blockHeight: bigint, serializedOutput: Uint8Array, mpcResponseKey: Secp256k1Point): Promise<RespondBidirectionalEvent | undefined>;
|
|
224
226
|
}
|
|
225
227
|
//# sourceMappingURL=signet-request-response-reader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signet-request-response-reader.d.ts","sourceRoot":"","sources":["../src/signet-request-response-reader.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,KAAK,cAAc,EAAuC,MAAM,wBAAwB,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAI5B,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAE5B,MAAM,sBAAsB,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;OAMG;IACH,kBAAkB,CAChB,eAAe,EAAE,UAAU,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,GACvE,OAAO,CAAC;QAAE,IAAI,EAAE,gBAAgB,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CAC/C;AAED,yEAAyE;AACzE,MAAM,WAAW,iCAAiC;IAChD,2EAA2E;IAC3E,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IAClD,8CAA8C;IAC9C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,oFAAoF;IACpF,QAAQ,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;IACrD;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;CACzC;AAED,8DAA8D;AAC9D,MAAM,WAAW,wBAAwB;IACvC,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,QAAQ,EAAE,uBAAuB,CAAC;IAClC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,2FAA2F;AAC3F,MAAM,WAAW,+BAA+B;IAC9C;;;OAGG;IACH,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,4CAA4C;IAC5C,QAAQ,EAAE,wBAAwB,EAAE,CAAC;CACtC;
|
|
1
|
+
{"version":3,"file":"signet-request-response-reader.d.ts","sourceRoot":"","sources":["../src/signet-request-response-reader.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAE1C,OAAO,EAAE,KAAK,cAAc,EAAuC,MAAM,wBAAwB,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAI5B,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AAKrC,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAE5B,MAAM,sBAAsB,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;OAMG;IACH,kBAAkB,CAChB,eAAe,EAAE,UAAU,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,GACvE,OAAO,CAAC;QAAE,IAAI,EAAE,gBAAgB,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CAC/C;AAED,yEAAyE;AACzE,MAAM,WAAW,iCAAiC;IAChD,2EAA2E;IAC3E,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,SAAS,MAAM,EAAE,CAAC;IAClD,8CAA8C;IAC9C,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,oFAAoF;IACpF,QAAQ,CAAC,kBAAkB,EAAE,uBAAuB,CAAC;IACrD;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;CACzC;AAED,8DAA8D;AAC9D,MAAM,WAAW,wBAAwB;IACvC,kFAAkF;IAClF,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,QAAQ,EAAE,uBAAuB,CAAC;IAClC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,2FAA2F;AAC3F,MAAM,WAAW,+BAA+B;IAC9C;;;OAGG;IACH,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,4CAA4C;IAC5C,QAAQ,EAAE,wBAAwB,EAAE,CAAC;CACtC;AA4CD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qCAAqC,CACnD,SAAS,EAAE,YAAY,EACvB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,UAAU,EAC5B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,SAAS,kBAAkB,EAAE,GACpC,yBAAyB,GAAG,SAAS,CAQvC;AAED;;;;GAIG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAG3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmD;IAEhF;;;OAGG;IACH,YAAY,MAAM,EAAE,iCAAiC,EAEpD;IAED;;;;;;;;OAQG;IACG,mBAAmB,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAsBlF;IAED;;;;;;;OAOG;YACW,eAAe;IAa7B;;;;;;;OAOG;IACG,2BAA2B,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAE7F;IAED;;;;;;;;;;;;;OAaG;IACG,kCAAkC,CACtC,SAAS,EAAE,YAAY,EACvB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,+BAA+B,CAAC,CAM1C;IAED;;;;;;;;;;;;;;OAcG;IACG,8BAA8B,CAClC,SAAS,EAAE,YAAY,EACvB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,SAAS,kBAAkB,EAAE,GACpC,OAAO,CAAC,+BAA+B,CAAC,CAM1C;IAED;;;;;;;;;;;OAWG;YACW,wBAAwB;IAkCtC;;;;;;;;;;OAUG;IACG,yBAAyB,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAI7E;IAED;;;;;;;;;;;;;;OAcG;IACG,uBAAuB,CAC3B,SAAS,EAAE,YAAY,EACvB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAQlC;IAED;;;;;;;;OAQG;IACG,6BAA6B,CACjC,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAEtC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACG,oCAAoC,CACxC,SAAS,EAAE,YAAY,EACvB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,UAAU,EAC5B,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAQhD;CACF"}
|
|
@@ -27,13 +27,14 @@ function assertEvmType2Request(request) {
|
|
|
27
27
|
* signature verifies over `serializedOutput` against `mpcResponseKey`.
|
|
28
28
|
*
|
|
29
29
|
* @param requestId - The request id the attestation must commit to.
|
|
30
|
+
* @param blockHeight - The destination block height the attestation names.
|
|
30
31
|
* @param serializedOutput - The serialised execution output, exact unpadded bytes.
|
|
31
32
|
* @param mpcResponseKey - The MPC response key the requesting contract pinned.
|
|
32
33
|
* @param posts - The request's posts, in emission order.
|
|
33
34
|
* @returns The first verifying post, or `undefined` when none verifies.
|
|
34
35
|
*/
|
|
35
|
-
function firstVerifiedRespondBidirectionalEvent(requestId, serializedOutput, mpcResponseKey, posts) {
|
|
36
|
-
return posts.find((post) => verifyRespondBidirectionalSignature(requestIdBytes(requestId), serializedOutput, post, mpcResponseKey));
|
|
36
|
+
function firstVerifiedRespondBidirectionalEvent(requestId, blockHeight, serializedOutput, mpcResponseKey, posts) {
|
|
37
|
+
return posts.find((post) => verifyRespondBidirectionalSignature(requestIdBytes(requestId), blockHeight, serializedOutput, post, mpcResponseKey));
|
|
37
38
|
}
|
|
38
39
|
/**
|
|
39
40
|
* `SignetRequestResponseReader.getVerifiedRespondBidirectionalEvent` over
|
|
@@ -43,6 +44,7 @@ function firstVerifiedRespondBidirectionalEvent(requestId, serializedOutput, mpc
|
|
|
43
44
|
*
|
|
44
45
|
* @param requestId - The request id the posts must declare and the
|
|
45
46
|
* attestation must commit to.
|
|
47
|
+
* @param blockHeight - The destination block height the attestation names.
|
|
46
48
|
* @param serializedOutput - The serialised execution output the attestation
|
|
47
49
|
* must commit to, exact unpadded bytes.
|
|
48
50
|
* @param mpcResponseKey - The MPC response key the requesting contract
|
|
@@ -51,8 +53,8 @@ function firstVerifiedRespondBidirectionalEvent(requestId, serializedOutput, mpc
|
|
|
51
53
|
* emission order. Only attestations declaring `requestId` are judged.
|
|
52
54
|
* @returns The first verifying post, or `undefined` when none attests this output.
|
|
53
55
|
*/
|
|
54
|
-
export function findVerifiedRespondBidirectionalEvent(requestId, serializedOutput, mpcResponseKey, events) {
|
|
55
|
-
return firstVerifiedRespondBidirectionalEvent(requestId, serializedOutput, mpcResponseKey, signetEventRecordsOf(events, SignetEventName.RespondBidirectionalEvent, requestId));
|
|
56
|
+
export function findVerifiedRespondBidirectionalEvent(requestId, blockHeight, serializedOutput, mpcResponseKey, events) {
|
|
57
|
+
return firstVerifiedRespondBidirectionalEvent(requestId, blockHeight, serializedOutput, mpcResponseKey, signetEventRecordsOf(events, SignetEventName.RespondBidirectionalEvent, requestId));
|
|
56
58
|
}
|
|
57
59
|
/**
|
|
58
60
|
* Reader over one requester contract / signet contract pair. Construct once
|
|
@@ -264,6 +266,7 @@ export class SignetRequestResponseReader {
|
|
|
264
266
|
*
|
|
265
267
|
* @param requestId - The request id the posts must declare and the
|
|
266
268
|
* attestation must commit to.
|
|
269
|
+
* @param blockHeight - The destination block height the attestation names.
|
|
267
270
|
* @param serializedOutput - The serialised execution output the attestation
|
|
268
271
|
* must commit to, exact unpadded bytes.
|
|
269
272
|
* @param mpcResponseKey - The MPC response key the requesting contract
|
|
@@ -271,8 +274,8 @@ export class SignetRequestResponseReader {
|
|
|
271
274
|
* @returns The first verifying post, or `undefined` when none has been
|
|
272
275
|
* posted yet (poll again) or none attests this output.
|
|
273
276
|
*/
|
|
274
|
-
async getVerifiedRespondBidirectionalEvent(requestId, serializedOutput, mpcResponseKey) {
|
|
275
|
-
return firstVerifiedRespondBidirectionalEvent(requestId, serializedOutput, mpcResponseKey, await this.getRespondBidirectionalEvents(requestId));
|
|
277
|
+
async getVerifiedRespondBidirectionalEvent(requestId, blockHeight, serializedOutput, mpcResponseKey) {
|
|
278
|
+
return firstVerifiedRespondBidirectionalEvent(requestId, blockHeight, serializedOutput, mpcResponseKey, await this.getRespondBidirectionalEvents(requestId));
|
|
276
279
|
}
|
|
277
280
|
}
|
|
278
281
|
//# sourceMappingURL=signet-request-response-reader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signet-request-response-reader.js","sourceRoot":"","sources":["../src/signet-request-response-reader.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,4EAA4E;AAC5E,wEAAwE;AACxE,uEAAuE;AACvE,uEAAuE;AACvE,0EAA0E;AAK1E,OAAO,EAAuB,mCAAmC,EAAE,MAAM,wBAAwB,CAAC;AAElG,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAEL,sBAAsB,EAGtB,eAAe,EAEf,oBAAoB,GAErB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,4CAA4C,EAC5C,8CAA8C,GAC/C,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,cAAc,EAGd,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAiE9B;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,OAA+B;IAC5D,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"signet-request-response-reader.js","sourceRoot":"","sources":["../src/signet-request-response-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,8 +71,6 @@ export declare const MPCDestination: {
|
|
|
71
71
|
export interface SignBidirectionalEvent<TxParams = EvmType2TxParams> {
|
|
72
72
|
/** Address of the client contract that stores this event (`kernel.self()`). */
|
|
73
73
|
sender: ContractAddress;
|
|
74
|
-
/** Contract-local nonce captured when the request was created. */
|
|
75
|
-
requestNonce: bigint;
|
|
76
74
|
/** MPC root-key version to derive from (>= 1). */
|
|
77
75
|
keyVersion: bigint;
|
|
78
76
|
/** Key-derivation path: 32 opaque bytes of the client contract's choosing. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signet-requests.d.ts","sourceRoot":"","sources":["../src/signet-requests.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAKL,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"signet-requests.d.ts","sourceRoot":"","sources":["../src/signet-requests.ts"],"names":[],"mappings":"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"}
|
package/dist/signet-requests.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
// packages/test-caller-contract/tests/contract.test.ts).
|
|
11
11
|
import { CompactTypeBytes, CompactTypeEnum, } from "@midnight-ntwrk/compact-runtime";
|
|
12
12
|
import { bytesToHex, hexToBytes, stripHexPrefix } from "./byte-codecs.js";
|
|
13
|
-
import { BYTES_32, BYTES_64, compactStructDescriptor, CONTRACT_ADDRESS, UINT_8,
|
|
13
|
+
import { BYTES_32, BYTES_64, compactStructDescriptor, CONTRACT_ADDRESS, UINT_8, } from "./compact-descriptors.js";
|
|
14
14
|
/**
|
|
15
15
|
* Parse a contract address from its hex rendering (optional `0x`/`0X`
|
|
16
16
|
* prefix): the form the deploy flow prints, the environment carries and the
|
|
@@ -109,7 +109,6 @@ const MPC_DESTINATION = new CompactTypeEnum(1, 1);
|
|
|
109
109
|
export function signBidirectionalEventDescriptorWith(txParams, lenOutputDeserialization, lenRespondSerialization) {
|
|
110
110
|
return compactStructDescriptor({
|
|
111
111
|
sender: CONTRACT_ADDRESS,
|
|
112
|
-
requestNonce: UINT_64,
|
|
113
112
|
keyVersion: UINT_8,
|
|
114
113
|
path: BYTES_32,
|
|
115
114
|
algo: MPC_SIGNATURE_ALGORITHM,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signet-requests.js","sourceRoot":"","sources":["../src/signet-requests.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,4EAA4E;AAC5E,4EAA4E;AAC5E,2EAA2E;AAC3E,qCAAqC;AACrC,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,8CAA8C;AAC9C,yDAAyD;AAEzD,OAAO,EAEL,gBAAgB,EAChB,eAAe,GAChB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,uBAAuB,EACvB,gBAAgB,EAEhB,MAAM,
|
|
1
|
+
{"version":3,"file":"signet-requests.js","sourceRoot":"","sources":["../src/signet-requests.ts"],"names":[],"mappings":"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"}
|
package/dist/testing.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
// The canonical fixture chain:
|
|
11
11
|
// ecdsaSignatureToMpcSignature(
|
|
12
12
|
// signAttestationDigest(
|
|
13
|
-
// calculateSignetAttestationDigest(requestId, serializedOutput),
|
|
13
|
+
// calculateSignetAttestationDigest(requestId, blockHeight, serializedOutput),
|
|
14
14
|
// secretKey,
|
|
15
15
|
// ),
|
|
16
16
|
// )
|
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,qEAAqE;AACrE,yEAAyE;AACzE,2EAA2E;AAC3E,4DAA4D;AAC5D,4EAA4E;AAC5E,6EAA6E;AAC7E,qCAAqC;AACrC,EAAE;AACF,+BAA+B;AAC/B,kCAAkC;AAClC,6BAA6B;AAC7B,
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,qEAAqE;AACrE,yEAAyE;AACzE,2EAA2E;AAC3E,4DAA4D;AAC5D,4EAA4E;AAC5E,6EAA6E;AAC7E,qCAAqC;AACrC,EAAE;AACF,+BAA+B;AAC/B,kCAAkC;AAClC,6BAA6B;AAC7B,oFAAoF;AACpF,mBAAmB;AACnB,SAAS;AACT,MAAM;AACN,+DAA+D;AAE/D,OAAO,EACL,gCAAgC,EAEhC,4BAA4B,EAC5B,oBAAoB,EACpB,qBAAqB,EACrB,kCAAkC,GACnC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sig-net/midnight",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0-rc.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/sig-net/midnight-integration",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@midnight-ntwrk/compact-runtime": "0.18.0-rc.1",
|
|
50
50
|
"@midnight-ntwrk/midnight-js-types": "5.0.0-beta.6",
|
|
51
51
|
"@noble/curves": "^2.2.0",
|
|
52
|
-
"@sig-net/midnight-serde": "^0.
|
|
52
|
+
"@sig-net/midnight-serde": "^0.24.0-rc.1",
|
|
53
53
|
"ethers": "^6.17.0"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
package/src/Signet.compact
CHANGED
|
@@ -71,9 +71,6 @@ module Signet {
|
|
|
71
71
|
// Set with kernel.self().
|
|
72
72
|
sender: ContractAddress;
|
|
73
73
|
|
|
74
|
-
// Optional nonce, set by client contracts to make otherwise-identical requests unique.
|
|
75
|
-
requestNonce: Uint<64>;
|
|
76
|
-
|
|
77
74
|
// MPC Key Derivation Parameters.
|
|
78
75
|
// Every key the MPC signs with is scoped by the requesting contract:
|
|
79
76
|
// derivedSigningKey = f(mpcRootKey[keyVersion], caip2ChainId, sender, hex::encode(path))
|
|
@@ -136,7 +133,6 @@ module Signet {
|
|
|
136
133
|
// Construction helper for the canonical Signet SignBidirectionalEvent.
|
|
137
134
|
export pure circuit constructSignBidirectionalEvent<TxParams, #LenOutputDeserialization, #LenRespondSerialization>(
|
|
138
135
|
sender: ContractAddress,
|
|
139
|
-
requestNonce: Uint<64>,
|
|
140
136
|
keyVersion: Uint<8>,
|
|
141
137
|
path: Bytes<32>,
|
|
142
138
|
algo: MPCSignatureAlgorithm,
|
|
@@ -152,7 +148,6 @@ module Signet {
|
|
|
152
148
|
|
|
153
149
|
return SignBidirectionalEvent<TxParams, LenOutputDeserialization, LenRespondSerialization> {
|
|
154
150
|
sender,
|
|
155
|
-
requestNonce,
|
|
156
151
|
keyVersion,
|
|
157
152
|
path,
|
|
158
153
|
algo,
|
|
@@ -289,7 +284,7 @@ module Signet {
|
|
|
289
284
|
// RespondBidirectionalEvent: the MPC's attestation of a foreign execution, the
|
|
290
285
|
// final step of the sign bidirectional flow.
|
|
291
286
|
//
|
|
292
|
-
// attestationDigest = upgradeFromTransient(transientHash([requestId, serializedOutputLength, serializedOutput]))
|
|
287
|
+
// attestationDigest = upgradeFromTransient(transientHash([requestId, blockHeight, serializedOutputLength, serializedOutput]))
|
|
293
288
|
// signature = signSECP256k1(mpcResponseKey, attestationDigest)
|
|
294
289
|
//
|
|
295
290
|
// mpcResponseKey is derived like request signing keys, with the path set to the
|
|
@@ -306,15 +301,17 @@ module Signet {
|
|
|
306
301
|
signature: Signature;
|
|
307
302
|
}
|
|
308
303
|
|
|
309
|
-
// The 32-byte attestation digest of a remote execution output
|
|
310
|
-
//
|
|
304
|
+
// The 32-byte attestation digest of a remote execution output, bound to the
|
|
305
|
+
// destination block height the outcome is final at:
|
|
306
|
+
// attestationDigest = upgradeFromTransient(transientHash([requestId, blockHeight, serializedOutputLength, serializedOutput]))
|
|
311
307
|
// Off-chain code uses the TypeScript twin:
|
|
312
308
|
// import { calculateSignetAttestationDigest } from "@sig-net/midnight";
|
|
313
309
|
export pure circuit calculateSignetAttestationDigest<#serializedOutputLength>(
|
|
314
310
|
requestId: RequestId,
|
|
311
|
+
blockHeight: Uint<64>,
|
|
315
312
|
serializedOutput: Bytes<serializedOutputLength>,
|
|
316
313
|
): Bytes<32> {
|
|
317
|
-
return upgradeFromTransient(transientHash<[RequestId, Uint<64>, Bytes<serializedOutputLength>]>([requestId, serializedOutputLength, serializedOutput]));
|
|
314
|
+
return upgradeFromTransient(transientHash<[RequestId, Uint<64>, Uint<64>, Bytes<serializedOutputLength>]>([requestId, blockHeight, serializedOutputLength, serializedOutput]));
|
|
318
315
|
}
|
|
319
316
|
|
|
320
317
|
// Verifies a RespondBidirectionalEvent against its execution output and MPC
|
|
@@ -332,12 +329,14 @@ module Signet {
|
|
|
332
329
|
// first (verifyRespondBidirectionalSignature).
|
|
333
330
|
export pure circuit verifyRespondBidirectionalEvent<#serializedOutputLength>(
|
|
334
331
|
requestId: RequestId,
|
|
332
|
+
blockHeight: Uint<64>,
|
|
335
333
|
serializedOutput: Bytes<serializedOutputLength>,
|
|
336
334
|
respondBidirectionalEvent: RespondBidirectionalEvent,
|
|
337
335
|
mpcResponseKey: Secp256k1Point
|
|
338
336
|
): Boolean {
|
|
339
337
|
const digest = calculateSignetAttestationDigest<serializedOutputLength>(
|
|
340
338
|
requestId,
|
|
339
|
+
blockHeight,
|
|
341
340
|
serializedOutput,
|
|
342
341
|
);
|
|
343
342
|
|