@sig-net/midnight 0.23.0 → 0.24.0-rc.10
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 +52 -24
- package/dist/abi-serde.d.ts +198 -57
- package/dist/abi-serde.d.ts.map +1 -1
- package/dist/abi-serde.js +478 -367
- package/dist/abi-serde.js.map +1 -1
- package/dist/compact-descriptors.d.ts +25 -8
- package/dist/compact-descriptors.d.ts.map +1 -1
- package/dist/compact-descriptors.js +42 -25
- package/dist/compact-descriptors.js.map +1 -1
- package/dist/constants.d.ts +3 -22
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +3 -25
- package/dist/constants.js.map +1 -1
- package/dist/ecdsa-attestation.d.ts +44 -14
- package/dist/ecdsa-attestation.d.ts.map +1 -1
- package/dist/ecdsa-attestation.js +50 -15
- package/dist/ecdsa-attestation.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/managed/compiler/contract-info.json +1808 -48
- package/dist/managed/compiler/contract-manifest.json +8 -8
- package/dist/managed/contract/index.d.ts +424 -5
- package/dist/managed/contract/index.js +1311 -171
- package/dist/managed/contract/index.js.map +1 -1
- package/dist/mpc-output-cache.js +2 -2
- 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 +10 -16
- package/dist/signature-requests-state-reader.js.map +1 -1
- package/dist/signet-contract-events.d.ts +52 -12
- package/dist/signet-contract-events.d.ts.map +1 -1
- package/dist/signet-contract-events.js +89 -34
- package/dist/signet-contract-events.js.map +1 -1
- package/dist/signet-evtype2tx-record-decoding.d.ts.map +1 -1
- package/dist/signet-evtype2tx-record-decoding.js +7 -6
- package/dist/signet-evtype2tx-record-decoding.js.map +1 -1
- package/dist/signet-evtype2tx-requests.d.ts +17 -12
- package/dist/signet-evtype2tx-requests.d.ts.map +1 -1
- package/dist/signet-evtype2tx-requests.js +92 -16
- package/dist/signet-evtype2tx-requests.js.map +1 -1
- package/dist/signet-request-id.d.ts +5 -2
- package/dist/signet-request-id.d.ts.map +1 -1
- package/dist/signet-request-id.js +27 -9
- package/dist/signet-request-id.js.map +1 -1
- package/dist/signet-request-response-reader.d.ts +8 -0
- package/dist/signet-request-response-reader.d.ts.map +1 -1
- package/dist/signet-request-response-reader.js +8 -7
- package/dist/signet-request-response-reader.js.map +1 -1
- package/dist/signet-requests.d.ts +48 -19
- package/dist/signet-requests.d.ts.map +1 -1
- package/dist/signet-requests.js +19 -8
- package/dist/signet-requests.js.map +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +3 -8
- package/dist/testing.js.map +1 -1
- package/package.json +2 -2
- package/src/Signet.compact +299 -101
- package/src/circuits.compact +92 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signet-evtype2tx-record-decoding.js","sourceRoot":"","sources":["../src/signet-evtype2tx-record-decoding.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,2EAA2E;AAC3E,2EAA2E;AAC3E,6EAA6E;AAC7E,0EAA0E;AAC1E,yEAAyE;AACzE,uDAAuD;AAIvD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAGlF,uEAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"signet-evtype2tx-record-decoding.js","sourceRoot":"","sources":["../src/signet-evtype2tx-record-decoding.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,2EAA2E;AAC3E,2EAA2E;AAC3E,6EAA6E;AAC7E,0EAA0E;AAC1E,yEAAyE;AACzE,uDAAuD;AAIvD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAC;AAGlF,uEAAuE;AACvE,6EAA6E;AAC7E,uEAAuE;AACvE,gCAAgC;AAChC,2CAA2C;AAC3C,iEAAiE;AACjE,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAChC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAS/B;;;;;;;;;;;GAWG;AACH,SAAS,kBAAkB,CAAC,MAAyB,EAAE,IAAY;IACjE,IAAI,MAAM,CAAC,MAAM,GAAG,qBAAqB,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,+BAA+B;YACjE,GAAG,MAAM,CAAC,qBAAqB,CAAC,wBAAwB,CAC3D,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC;IAElD,IAAI,KAAK,GAAG,oBAAoB,CAAC;IACjC,OAAO,KAAK,GAAG,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAC5C,KAAK,IAAI,CAAC,CAAC;IACb,CAAC;IACD,MAAM,gBAAgB,GAAG,KAAK,GAAG,oBAAoB,CAAC;IAEtD,MAAM,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAC1F,MAAM,IAAI,KAAK,CACb,uDAAuD,MAAM,CAAC,gBAAgB,CAAC,GAAG;YAChF,yBAAyB,KAAK,EAAE,CACnC,CAAC;IACJ,CAAC;IACD,KAAK,IAAI,CAAC,CAAC;IAEX,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;IAC3E,IAAI,sBAA8B,CAAC;IACnC,IAAI,oBAAoB,KAAK,CAAC,EAAE,CAAC;QAC/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,gCAAgC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,yBAAyB;gBAC5E,yBAAyB,CAC5B,CAAC;QACJ,CAAC;QACD,sBAAsB,GAAG,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,IAAI,MAAM,CAAC,MAAM,GAAG,oBAAoB,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,4BAA4B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,8BAA8B;gBAC7E,UAAU,MAAM,CAAC,oBAAoB,CAAC,UAAU,CACnD,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,oBAAoB,CAAC;QACtD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,oEAAoE;gBAClE,OAAO,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAClC,CAAC;QACJ,CAAC;QACD,sBAAsB,GAAG,QAAQ,GAAG,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,CAAC;AAC5E,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,oCAAoC,CAClD,IAAkB,EAClB,IAAY;IAEZ,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACpD,MAAM,wBAAwB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,MAAM,uBAAuB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,wBAAwB,KAAK,SAAS,IAAI,uBAAuB,KAAK,SAAS,EAAE,CAAC;QACpF,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,oCAAoC;YACtE,mEAAmE,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,aAAa,CAClB,gCAAgC,CAC9B,UAAU,CAAC,gBAAgB,EAC3B,UAAU,CAAC,oBAAoB,EAC/B,UAAU,CAAC,sBAAsB,EACjC,wBAAwB,EACxB,uBAAuB,CACxB,EACD,IAAI,CAAC,KAAK,EACV,IAAI,CACL,CAAC;AACJ,CAAC"}
|
|
@@ -89,17 +89,6 @@ export declare function evmAccessListEntryDescriptor(maxStorageKeys: number): Co
|
|
|
89
89
|
* @returns The tx-params descriptor.
|
|
90
90
|
*/
|
|
91
91
|
export declare function evmType2TxParamsDescriptor(maxCalldataWords: number, maxAccessListEntries: number, maxStorageKeysPerEntry: number): CompactType<EvmType2TxParams>;
|
|
92
|
-
/**
|
|
93
|
-
* Descriptor of {@link EvmType2TxParams} at the capacity instantiation a
|
|
94
|
-
* stored value itself exhibits: vector capacities are read off the value's
|
|
95
|
-
* array lengths, which carry the contract's compile-time throttles. For
|
|
96
|
-
* hashing or re-encoding a record already decoded at full capacity (see
|
|
97
|
-
* `calculateRequestId` in signet-request-id.ts).
|
|
98
|
-
*
|
|
99
|
-
* @param txParams - The transaction decomposition to size against.
|
|
100
|
-
* @returns The tx-params descriptor at the value's capacities.
|
|
101
|
-
*/
|
|
102
|
-
export declare function evmType2TxParamsDescriptorOf(txParams: EvmType2TxParams): CompactType<EvmType2TxParams>;
|
|
103
92
|
/**
|
|
104
93
|
* Descriptor of {@link SignBidirectionalEvent} at one EVM Type-2 capacity
|
|
105
94
|
* instantiation.
|
|
@@ -164,6 +153,22 @@ export declare function abiWordToUint128(word: Uint8Array): bigint;
|
|
|
164
153
|
* @throws {Error} If the word is not 32 bytes or is not a canonical Boolean.
|
|
165
154
|
*/
|
|
166
155
|
export declare function abiWordToBool(word: Uint8Array): boolean;
|
|
156
|
+
/**
|
|
157
|
+
* Digest of an {@link EvmType2TxParams} over the bytes that reach the signed
|
|
158
|
+
* transaction, the TS twin of the `calculateEvmType2TxParamsDigestV1` circuit
|
|
159
|
+
* (lockstep-tested against its fixed-width oracles): the scalar fields, then
|
|
160
|
+
* the calldata words, access-list entries and storage keys up to their
|
|
161
|
+
* declared counts, each count hashed beside its entries. Slots past a count
|
|
162
|
+
* are skipped and an absent calldata contributes only its absence, so one
|
|
163
|
+
* transaction has one digest whatever the capacities and whatever bytes sit
|
|
164
|
+
* in unused slots. This is what {@link calculateRequestId} hashes in place of
|
|
165
|
+
* the parameters.
|
|
166
|
+
*
|
|
167
|
+
* @param txParams - The transaction decomposition to digest, at any capacity.
|
|
168
|
+
* @returns The 32-byte digest.
|
|
169
|
+
* @throws {Error} When a count exceeds its capacity.
|
|
170
|
+
*/
|
|
171
|
+
export declare function calculateEvmType2TxParamsDigest(txParams: EvmType2TxParams): Uint8Array;
|
|
167
172
|
/**
|
|
168
173
|
* Assemble the raw calldata a request's words describe:
|
|
169
174
|
* `data = selector || words[0..noWords]`, VERBATIM (see {@link EvmCalldata}).
|
|
@@ -182,7 +187,7 @@ export declare function assembleCalldata(calldata: Maybe<EvmCalldata>): string;
|
|
|
182
187
|
* @param request - The on-ledger request record.
|
|
183
188
|
* @returns The unsigned ethers transaction (`unsignedHash` is the digest the
|
|
184
189
|
* MPC signs).
|
|
185
|
-
* @throws {Error} If a calldata
|
|
190
|
+
* @throws {Error} If a calldata count overruns its stored slots.
|
|
186
191
|
*/
|
|
187
192
|
export declare function signBidirectionalEventToUnsignedEvmTransaction(request: SignBidirectionalEvent): Transaction;
|
|
188
193
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signet-evtype2tx-requests.d.ts","sourceRoot":"","sources":["../src/signet-evtype2tx-requests.ts"],"names":[],"mappings":"AAUA,OAAO,
|
|
1
|
+
{"version":3,"file":"signet-evtype2tx-requests.d.ts","sourceRoot":"","sources":["../src/signet-evtype2tx-requests.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,11 +7,12 @@
|
|
|
7
7
|
// Words are stored ABI-ready: {@link assembleCalldata} concatenates
|
|
8
8
|
// `selector || words` VERBATIM, so the transaction the MPC signs carries the
|
|
9
9
|
// contract-stored bytes untouched.
|
|
10
|
-
import { CompactTypeVector } from "@midnight-ntwrk/compact-runtime";
|
|
10
|
+
import { CompactTypeVector, transientHash, upgradeFromTransient, } from "@midnight-ntwrk/compact-runtime";
|
|
11
11
|
import { getAddress, Transaction } from "ethers";
|
|
12
12
|
import { bigintToBytes32BE, bytesToHex } from "./byte-codecs.js";
|
|
13
|
-
import { BYTES_4, BYTES_20, BYTES_32, compactMaybeDescriptor, compactStructDescriptor, UINT_8, UINT_16, UINT_64, UINT_128, } from "./compact-descriptors.js";
|
|
13
|
+
import { BOOLEAN, BYTES_4, BYTES_20, BYTES_32, compactMaybeDescriptor, compactStructDescriptor, compactTupleDescriptor, FIELD, HASH_DOMAIN, UINT_8, UINT_16, UINT_64, UINT_128, } from "./compact-descriptors.js";
|
|
14
14
|
import { signatureRespondedEventToSignature } from "./ecdsa-attestation.js";
|
|
15
|
+
import { HashDomain } from "./managed/contract/index.js";
|
|
15
16
|
import { signBidirectionalEventDescriptorWith, } from "./signet-requests.js";
|
|
16
17
|
// ---- Runtime descriptors (see the deviation note in signet-requests.ts) ----
|
|
17
18
|
// Base-type descriptors come from compact-descriptors.ts at the literals the
|
|
@@ -69,19 +70,6 @@ export function evmType2TxParamsDescriptor(maxCalldataWords, maxAccessListEntrie
|
|
|
69
70
|
accessList: new CompactTypeVector(maxAccessListEntries, evmAccessListEntryDescriptor(maxStorageKeysPerEntry)),
|
|
70
71
|
});
|
|
71
72
|
}
|
|
72
|
-
/**
|
|
73
|
-
* Descriptor of {@link EvmType2TxParams} at the capacity instantiation a
|
|
74
|
-
* stored value itself exhibits: vector capacities are read off the value's
|
|
75
|
-
* array lengths, which carry the contract's compile-time throttles. For
|
|
76
|
-
* hashing or re-encoding a record already decoded at full capacity (see
|
|
77
|
-
* `calculateRequestId` in signet-request-id.ts).
|
|
78
|
-
*
|
|
79
|
-
* @param txParams - The transaction decomposition to size against.
|
|
80
|
-
* @returns The tx-params descriptor at the value's capacities.
|
|
81
|
-
*/
|
|
82
|
-
export function evmType2TxParamsDescriptorOf(txParams) {
|
|
83
|
-
return evmType2TxParamsDescriptor(txParams.calldata.value.words.length, txParams.accessList.length, txParams.accessList[0]?.storageKeys.length ?? 0);
|
|
84
|
-
}
|
|
85
73
|
/**
|
|
86
74
|
* Descriptor of {@link SignBidirectionalEvent} at one EVM Type-2 capacity
|
|
87
75
|
* instantiation.
|
|
@@ -183,6 +171,94 @@ export function abiWordToBool(word) {
|
|
|
183
171
|
}
|
|
184
172
|
return low === 1;
|
|
185
173
|
}
|
|
174
|
+
/** The digest's head tuple: the scalar fields, the calldata presence, selector and count, the entry count. */
|
|
175
|
+
const EVM_TYPE2_DIGEST_HEAD = compactTupleDescriptor([
|
|
176
|
+
HASH_DOMAIN,
|
|
177
|
+
UINT_64,
|
|
178
|
+
UINT_64,
|
|
179
|
+
UINT_128,
|
|
180
|
+
UINT_128,
|
|
181
|
+
UINT_64,
|
|
182
|
+
BYTES_20,
|
|
183
|
+
UINT_128,
|
|
184
|
+
BOOLEAN,
|
|
185
|
+
BYTES_4,
|
|
186
|
+
UINT_16,
|
|
187
|
+
UINT_8,
|
|
188
|
+
]);
|
|
189
|
+
/** One fold step over a calldata word or storage key. */
|
|
190
|
+
const DOMAIN_FIELD_BYTES_32 = compactTupleDescriptor([
|
|
191
|
+
HASH_DOMAIN,
|
|
192
|
+
FIELD,
|
|
193
|
+
BYTES_32,
|
|
194
|
+
]);
|
|
195
|
+
/** One fold step over a used access-list entry with its keys' digest. */
|
|
196
|
+
const EVM_TYPE2_DIGEST_ENTRY = compactTupleDescriptor([HASH_DOMAIN, FIELD, BYTES_20, UINT_8, FIELD]);
|
|
197
|
+
/**
|
|
198
|
+
* Digest of an {@link EvmType2TxParams} over the bytes that reach the signed
|
|
199
|
+
* transaction, the TS twin of the `calculateEvmType2TxParamsDigestV1` circuit
|
|
200
|
+
* (lockstep-tested against its fixed-width oracles): the scalar fields, then
|
|
201
|
+
* the calldata words, access-list entries and storage keys up to their
|
|
202
|
+
* declared counts, each count hashed beside its entries. Slots past a count
|
|
203
|
+
* are skipped and an absent calldata contributes only its absence, so one
|
|
204
|
+
* transaction has one digest whatever the capacities and whatever bytes sit
|
|
205
|
+
* in unused slots. This is what {@link calculateRequestId} hashes in place of
|
|
206
|
+
* the parameters.
|
|
207
|
+
*
|
|
208
|
+
* @param txParams - The transaction decomposition to digest, at any capacity.
|
|
209
|
+
* @returns The 32-byte digest.
|
|
210
|
+
* @throws {Error} When a count exceeds its capacity.
|
|
211
|
+
*/
|
|
212
|
+
export function calculateEvmType2TxParamsDigest(txParams) {
|
|
213
|
+
const { calldata, accessListEntryCount, accessList } = txParams;
|
|
214
|
+
const noWords = calldata.is_some ? calldata.value.noWords : 0n;
|
|
215
|
+
const selector = calldata.is_some ? calldata.value.selector : new Uint8Array(4);
|
|
216
|
+
if (noWords > BigInt(calldata.value.words.length)) {
|
|
217
|
+
throw new Error("calldata noWords exceeds capacity");
|
|
218
|
+
}
|
|
219
|
+
if (accessListEntryCount > BigInt(accessList.length)) {
|
|
220
|
+
throw new Error("accessListEntryCount exceeds capacity");
|
|
221
|
+
}
|
|
222
|
+
const head = transientHash(EVM_TYPE2_DIGEST_HEAD, [
|
|
223
|
+
HashDomain.evmType2TxHeader,
|
|
224
|
+
txParams.chainId,
|
|
225
|
+
txParams.nonce,
|
|
226
|
+
txParams.maxPriorityFeePerGas,
|
|
227
|
+
txParams.maxFeePerGas,
|
|
228
|
+
txParams.gasLimit,
|
|
229
|
+
txParams.to,
|
|
230
|
+
txParams.value,
|
|
231
|
+
calldata.is_some,
|
|
232
|
+
selector,
|
|
233
|
+
noWords,
|
|
234
|
+
accessListEntryCount,
|
|
235
|
+
]);
|
|
236
|
+
let acc = head;
|
|
237
|
+
for (const word of calldata.value.words.slice(0, Number(noWords))) {
|
|
238
|
+
acc = transientHash(DOMAIN_FIELD_BYTES_32, [HashDomain.evmType2TxWord, acc, word]);
|
|
239
|
+
}
|
|
240
|
+
for (const entry of accessList.slice(0, Number(accessListEntryCount))) {
|
|
241
|
+
if (entry.storageKeyCount > BigInt(entry.storageKeys.length)) {
|
|
242
|
+
throw new Error("a used entry's storageKeyCount exceeds capacity");
|
|
243
|
+
}
|
|
244
|
+
let keysAcc = 0n;
|
|
245
|
+
for (const key of entry.storageKeys.slice(0, Number(entry.storageKeyCount))) {
|
|
246
|
+
keysAcc = transientHash(DOMAIN_FIELD_BYTES_32, [
|
|
247
|
+
HashDomain.evmType2TxStorageKey,
|
|
248
|
+
keysAcc,
|
|
249
|
+
key,
|
|
250
|
+
]);
|
|
251
|
+
}
|
|
252
|
+
acc = transientHash(EVM_TYPE2_DIGEST_ENTRY, [
|
|
253
|
+
HashDomain.evmType2TxAccessEntry,
|
|
254
|
+
acc,
|
|
255
|
+
entry.address,
|
|
256
|
+
entry.storageKeyCount,
|
|
257
|
+
keysAcc,
|
|
258
|
+
]);
|
|
259
|
+
}
|
|
260
|
+
return upgradeFromTransient(acc);
|
|
261
|
+
}
|
|
186
262
|
/**
|
|
187
263
|
* Assemble the raw calldata a request's words describe:
|
|
188
264
|
* `data = selector || words[0..noWords]`, VERBATIM (see {@link EvmCalldata}).
|
|
@@ -226,7 +302,7 @@ function decodeAccessList(txParams) {
|
|
|
226
302
|
* @param request - The on-ledger request record.
|
|
227
303
|
* @returns The unsigned ethers transaction (`unsignedHash` is the digest the
|
|
228
304
|
* MPC signs).
|
|
229
|
-
* @throws {Error} If a calldata
|
|
305
|
+
* @throws {Error} If a calldata count overruns its stored slots.
|
|
230
306
|
*/
|
|
231
307
|
export function signBidirectionalEventToUnsignedEvmTransaction(request) {
|
|
232
308
|
const { txParams } = request;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signet-evtype2tx-requests.js","sourceRoot":"","sources":["../src/signet-evtype2tx-requests.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,sEAAsE;AACtE,6EAA6E;AAC7E,sEAAsE;AACtE,wBAAwB;AACxB,EAAE;AACF,oEAAoE;AACpE,6EAA6E;AAC7E,mCAAmC;AAEnC,OAAO,
|
|
1
|
+
{"version":3,"file":"signet-evtype2tx-requests.js","sourceRoot":"","sources":["../src/signet-evtype2tx-requests.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { type RequestId, type SignBidirectionalEvent } from "./signet-requests.ts";
|
|
2
2
|
/**
|
|
3
3
|
* Canonical id of a signet request: the transientHash (Poseidon) of the
|
|
4
|
-
*
|
|
4
|
+
* record's {@link RequestIdPreimage} prefixed with {@link HashDomain.requestId},
|
|
5
|
+
* with the transaction entering as its decomposition's digest
|
|
6
|
+
* ({@link calculateEvmType2TxParamsDigest} for evmType2), so the id ignores
|
|
7
|
+
* the record's capacities and unused slots.
|
|
5
8
|
*
|
|
6
9
|
* @param request - The full event record (contract-shaped, all slots).
|
|
7
10
|
* @returns The 32-byte request id, the record's ledger map key.
|
|
8
11
|
* @throws {Error} If the record's `txParamType` names a decomposition this
|
|
9
|
-
* computation has no
|
|
12
|
+
* computation has no digest for, or a count overruns its capacity.
|
|
10
13
|
*/
|
|
11
14
|
export declare function calculateRequestId(request: SignBidirectionalEvent): RequestId;
|
|
12
15
|
//# sourceMappingURL=signet-request-id.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signet-request-id.d.ts","sourceRoot":"","sources":["../src/signet-request-id.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signet-request-id.d.ts","sourceRoot":"","sources":["../src/signet-request-id.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,KAAK,SAAS,EAGd,KAAK,sBAAsB,EAE5B,MAAM,sBAAsB,CAAC;AAO9B;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,GAAG,SAAS,CAmB7E"}
|
|
@@ -1,25 +1,43 @@
|
|
|
1
1
|
// The signet request id computation: the TS twin of Signet.compact's
|
|
2
|
-
// `
|
|
3
|
-
// signet-requests.ts). Chain-agnostic entry point that
|
|
4
|
-
//
|
|
5
|
-
//
|
|
2
|
+
// `calculateEvmType2RequestIdV1` circuit (see the deviation note in
|
|
3
|
+
// signet-requests.ts). Chain-agnostic entry point that digests each record's
|
|
4
|
+
// transaction by its `txParamType` tag, so every decomposition mints ids
|
|
5
|
+
// through this one function.
|
|
6
6
|
import { transientHash, upgradeFromTransient } from "@midnight-ntwrk/compact-runtime";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { compactTupleDescriptor, HASH_DOMAIN } from "./compact-descriptors.js";
|
|
8
|
+
import { HashDomain } from "./managed/contract/index.js";
|
|
9
|
+
import { calculateEvmType2TxParamsDigest } from "./signet-evtype2tx-requests.js";
|
|
10
|
+
import { requestIdPreimageDescriptor, TxParamType, } from "./signet-requests.js";
|
|
11
|
+
const REQUEST_ID_HASH_PREIMAGE = compactTupleDescriptor([
|
|
12
|
+
HASH_DOMAIN,
|
|
13
|
+
requestIdPreimageDescriptor,
|
|
14
|
+
]);
|
|
9
15
|
/**
|
|
10
16
|
* Canonical id of a signet request: the transientHash (Poseidon) of the
|
|
11
|
-
*
|
|
17
|
+
* record's {@link RequestIdPreimage} prefixed with {@link HashDomain.requestId},
|
|
18
|
+
* with the transaction entering as its decomposition's digest
|
|
19
|
+
* ({@link calculateEvmType2TxParamsDigest} for evmType2), so the id ignores
|
|
20
|
+
* the record's capacities and unused slots.
|
|
12
21
|
*
|
|
13
22
|
* @param request - The full event record (contract-shaped, all slots).
|
|
14
23
|
* @returns The 32-byte request id, the record's ledger map key.
|
|
15
24
|
* @throws {Error} If the record's `txParamType` names a decomposition this
|
|
16
|
-
* computation has no
|
|
25
|
+
* computation has no digest for, or a count overruns its capacity.
|
|
17
26
|
*/
|
|
18
27
|
export function calculateRequestId(request) {
|
|
19
28
|
if (request.txParamType !== TxParamType.evmType2) {
|
|
20
29
|
throw new Error(`unsupported txParamType ${String(request.txParamType)}: this id computation ` +
|
|
21
30
|
`understands evmType2 (${String(TxParamType.evmType2)})`);
|
|
22
31
|
}
|
|
23
|
-
|
|
32
|
+
const preimage = {
|
|
33
|
+
keyVersion: request.keyVersion,
|
|
34
|
+
sender: request.sender,
|
|
35
|
+
path: request.path,
|
|
36
|
+
algo: request.algo,
|
|
37
|
+
txParamType: request.txParamType,
|
|
38
|
+
txParamsDigest: calculateEvmType2TxParamsDigest(request.txParams),
|
|
39
|
+
executionDest: request.executionDest,
|
|
40
|
+
};
|
|
41
|
+
return upgradeFromTransient(transientHash(REQUEST_ID_HASH_PREIMAGE, [HashDomain.requestId, preimage]));
|
|
24
42
|
}
|
|
25
43
|
//# sourceMappingURL=signet-request-id.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signet-request-id.js","sourceRoot":"","sources":["../src/signet-request-id.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,
|
|
1
|
+
{"version":3,"file":"signet-request-id.js","sourceRoot":"","sources":["../src/signet-request-id.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,oEAAoE;AACpE,6EAA6E;AAC7E,yEAAyE;AACzE,6BAA6B;AAE7B,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEtF,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAGL,2BAA2B,EAE3B,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAE9B,MAAM,wBAAwB,GAAG,sBAAsB,CAAkC;IACvF,WAAW;IACX,2BAA2B;CAC5B,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA+B;IAChE,IAAI,OAAO,CAAC,WAAW,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,wBAAwB;YAC5E,yBAAyB,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAC3D,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAsB;QAClC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,cAAc,EAAE,+BAA+B,CAAC,OAAO,CAAC,QAAQ,CAAC;QACjE,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC;IACF,OAAO,oBAAoB,CACzB,aAAa,CAAC,wBAAwB,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAC1E,CAAC;AACJ,CAAC"}
|
|
@@ -41,6 +41,14 @@ export interface SignetRequestResponseReaderConfig {
|
|
|
41
41
|
* with `signetEventSourceFromIndexer`.
|
|
42
42
|
*/
|
|
43
43
|
readonly eventSource: SignetEventSource;
|
|
44
|
+
/**
|
|
45
|
+
* Inclusive lowest Midnight block the reader scans for responses. Omit to
|
|
46
|
+
* scan the whole history. Responses are emitted after their request, so
|
|
47
|
+
* the tip taken BEFORE submitting the first request is safe for a fresh
|
|
48
|
+
* client. It must not exceed the block of the oldest request whose
|
|
49
|
+
* responses are still wanted: a value too high hides them without error.
|
|
50
|
+
*/
|
|
51
|
+
readonly signetEventsFromBlock?: number;
|
|
44
52
|
}
|
|
45
53
|
/** The verdict on one emitted response, in emission order. */
|
|
46
54
|
export interface SignatureResponseVerdict {
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"signet-request-response-reader.d.ts","sourceRoot":"","sources":["../src/signet-request-response-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { lookupSignetRequestAt } from "./signature-requests-state-reader.js";
|
|
|
9
9
|
import { recoverSignatureResponseSigner } from "./signature-response-verification.js";
|
|
10
10
|
import { decodeSignetEventNamed, SignetEventName, signetEventRecordsOf, } from "./signet-contract-events.js";
|
|
11
11
|
import { signBidirectionalEventToSignedEvmTransaction, signBidirectionalEventToUnsignedEvmTransaction, } from "./signet-evtype2tx-requests.js";
|
|
12
|
-
import {
|
|
12
|
+
import { TxParamType } from "./signet-requests.js";
|
|
13
13
|
/**
|
|
14
14
|
* Assert a fetched request carries the evmType2 decomposition, the only one
|
|
15
15
|
* the EVM-transaction methods may read `txParams` from.
|
|
@@ -26,14 +26,13 @@ function assertEvmType2Request(request) {
|
|
|
26
26
|
* The first (oldest) of a request's respond-bidirectional posts whose
|
|
27
27
|
* signature verifies over `serializedOutput` against `mpcResponseKey`.
|
|
28
28
|
*
|
|
29
|
-
* @param requestId - The request id the attestation must commit to.
|
|
30
29
|
* @param serializedOutput - The serialised execution output, exact unpadded bytes.
|
|
31
30
|
* @param mpcResponseKey - The MPC response key the requesting contract pinned.
|
|
32
31
|
* @param posts - The request's posts, in emission order.
|
|
33
32
|
* @returns The first verifying post, or `undefined` when none verifies.
|
|
34
33
|
*/
|
|
35
|
-
function firstVerifiedRespondBidirectionalEvent(
|
|
36
|
-
return posts.find((post) => verifyRespondBidirectionalSignature(
|
|
34
|
+
function firstVerifiedRespondBidirectionalEvent(serializedOutput, mpcResponseKey, posts) {
|
|
35
|
+
return posts.find((post) => verifyRespondBidirectionalSignature(serializedOutput, post, mpcResponseKey));
|
|
37
36
|
}
|
|
38
37
|
/**
|
|
39
38
|
* `SignetRequestResponseReader.getVerifiedRespondBidirectionalEvent` over
|
|
@@ -52,7 +51,7 @@ function firstVerifiedRespondBidirectionalEvent(requestId, serializedOutput, mpc
|
|
|
52
51
|
* @returns The first verifying post, or `undefined` when none attests this output.
|
|
53
52
|
*/
|
|
54
53
|
export function findVerifiedRespondBidirectionalEvent(requestId, serializedOutput, mpcResponseKey, events) {
|
|
55
|
-
return firstVerifiedRespondBidirectionalEvent(
|
|
54
|
+
return firstVerifiedRespondBidirectionalEvent(serializedOutput, mpcResponseKey, signetEventRecordsOf(events, SignetEventName.RespondBidirectionalEvent, requestId));
|
|
56
55
|
}
|
|
57
56
|
/**
|
|
58
57
|
* Reader over one requester contract / signet contract pair. Construct once
|
|
@@ -106,7 +105,9 @@ export class SignetRequestResponseReader {
|
|
|
106
105
|
*/
|
|
107
106
|
async getRecordsNamed(name, requestId) {
|
|
108
107
|
const records = [];
|
|
109
|
-
const events = this.config.eventSource.streamSignetEvents(this.config.signetContractAddress
|
|
108
|
+
const events = this.config.eventSource.streamSignetEvents(this.config.signetContractAddress, this.config.signetEventsFromBlock === undefined
|
|
109
|
+
? undefined
|
|
110
|
+
: { fromBlock: this.config.signetEventsFromBlock });
|
|
110
111
|
for await (const event of events) {
|
|
111
112
|
const decoded = decodeSignetEventNamed(event, name);
|
|
112
113
|
if (decoded?.requestId === requestId)
|
|
@@ -272,7 +273,7 @@ export class SignetRequestResponseReader {
|
|
|
272
273
|
* posted yet (poll again) or none attests this output.
|
|
273
274
|
*/
|
|
274
275
|
async getVerifiedRespondBidirectionalEvent(requestId, serializedOutput, mpcResponseKey) {
|
|
275
|
-
return firstVerifiedRespondBidirectionalEvent(
|
|
276
|
+
return firstVerifiedRespondBidirectionalEvent(serializedOutput, mpcResponseKey, await this.getRespondBidirectionalEvents(requestId));
|
|
276
277
|
}
|
|
277
278
|
}
|
|
278
279
|
//# 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,
|
|
1
|
+
{"version":3,"file":"signet-request-response-reader.js","sourceRoot":"","sources":["../src/signet-request-response-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,45 +60,74 @@ export declare const MPCDestination: {
|
|
|
60
60
|
/** Never emitted: the >= 2 variants padding (see {@link TxParamType}). */
|
|
61
61
|
readonly reserved: 1;
|
|
62
62
|
};
|
|
63
|
+
/**
|
|
64
|
+
* The fields of a {@link SignBidirectionalEvent} that mint its
|
|
65
|
+
* {@link RequestId} (Compact: `RequestIdPreimageV1`), in Compact declaration
|
|
66
|
+
* order: the signing key, the requesting contract, a digest of the
|
|
67
|
+
* transaction and its execution destination. The transaction enters as the
|
|
68
|
+
* digest its decomposition's own function computes over the used entries
|
|
69
|
+
* only, so the id is the same whatever capacities the requester compiled its
|
|
70
|
+
* struct with and whatever bytes sit in unused slots. The serialisation
|
|
71
|
+
* schemas and the reserved MPC parameters stay out.
|
|
72
|
+
*/
|
|
73
|
+
export interface RequestIdPreimage {
|
|
74
|
+
/** MPC root-key version to derive from (>= 1). */
|
|
75
|
+
keyVersion: bigint;
|
|
76
|
+
/** Address of the client contract that stores this event (`kernel.self()`). */
|
|
77
|
+
sender: ContractAddress;
|
|
78
|
+
/** Key-derivation path: 32 opaque bytes of the client contract's choosing. */
|
|
79
|
+
path: Uint8Array;
|
|
80
|
+
/** An {@link MPCSignatureAlgorithm} value. */
|
|
81
|
+
algo: number;
|
|
82
|
+
/** A {@link TxParamType} value tagging the txParams decomposition. */
|
|
83
|
+
txParamType: number;
|
|
84
|
+
/** The 32-byte digest of the transaction decomposition over its used entries. */
|
|
85
|
+
txParamsDigest: Uint8Array;
|
|
86
|
+
/** Execution destination: the target chain in CAIP-2 form (https://chainagnostic.org/CAIPs/caip-2), zero-padded, 32 bytes. */
|
|
87
|
+
executionDest: Uint8Array;
|
|
88
|
+
}
|
|
63
89
|
/**
|
|
64
90
|
* Canonical signet request record (Compact:
|
|
65
|
-
* `
|
|
91
|
+
* `SignBidirectionalEventV1<TxParams, #LenOutputDeserialization,
|
|
66
92
|
* #LenRespondSerialization>`), stored per {@link RequestId} in a requesting
|
|
67
|
-
* contract's `
|
|
68
|
-
*
|
|
69
|
-
*
|
|
93
|
+
* contract's `SignBidirectionalEventMapV1`, in Compact declaration order. The
|
|
94
|
+
* {@link RequestIdPreimage} fields come first and mint its id, the
|
|
95
|
+
* protocol-only fields follow, and the schema fields carry their
|
|
96
|
+
* contract-declared byte widths in their array lengths.
|
|
70
97
|
*/
|
|
71
98
|
export interface SignBidirectionalEvent<TxParams = EvmType2TxParams> {
|
|
72
|
-
/** Address of the client contract that stores this event (`kernel.self()`). */
|
|
73
|
-
sender: ContractAddress;
|
|
74
|
-
/** Contract-local nonce captured when the request was created. */
|
|
75
|
-
requestNonce: bigint;
|
|
76
99
|
/** MPC root-key version to derive from (>= 1). */
|
|
77
100
|
keyVersion: bigint;
|
|
101
|
+
/** Address of the client contract that stores this event (`kernel.self()`). */
|
|
102
|
+
sender: ContractAddress;
|
|
78
103
|
/** Key-derivation path: 32 opaque bytes of the client contract's choosing. */
|
|
79
104
|
path: Uint8Array;
|
|
80
105
|
/** An {@link MPCSignatureAlgorithm} value. */
|
|
81
106
|
algo: number;
|
|
82
|
-
/** An {@link MPCDestination} value. */
|
|
83
|
-
dest: number;
|
|
84
|
-
/** Extra MPC parameters: 64 opaque bytes, reserved, zero-filled. */
|
|
85
|
-
params: Uint8Array;
|
|
86
107
|
/** A {@link TxParamType} value tagging the txParams decomposition. */
|
|
87
108
|
txParamType: number;
|
|
88
109
|
/** The transaction decomposition. */
|
|
89
110
|
txParams: TxParams;
|
|
90
|
-
/**
|
|
91
|
-
|
|
111
|
+
/** Execution destination: the target chain in CAIP-2 form (https://chainagnostic.org/CAIPs/caip-2), zero-padded, 32 bytes. */
|
|
112
|
+
executionDest: Uint8Array;
|
|
113
|
+
/** An {@link MPCDestination} value: the signature destination, reserved. */
|
|
114
|
+
signatureDest: number;
|
|
115
|
+
/** Extra MPC parameters: 64 opaque bytes, reserved, zero-filled. */
|
|
116
|
+
params: Uint8Array;
|
|
92
117
|
/** MPC output_deserialization_schema (destination chain -> MPC), contract-declared width. */
|
|
93
118
|
outputDeserializationSchema: Uint8Array;
|
|
94
119
|
/** MPC respond_serialization_schema (MPC -> Midnight), contract-declared width. */
|
|
95
120
|
respondSerializationSchema: Uint8Array;
|
|
96
121
|
}
|
|
97
122
|
/**
|
|
98
|
-
|
|
123
|
+
* Descriptor of {@link RequestIdPreimage}: what {@link calculateRequestId}
|
|
124
|
+
* hashes, in Compact declaration order.
|
|
125
|
+
*/
|
|
126
|
+
export declare const requestIdPreimageDescriptor: CompactType<RequestIdPreimage>;
|
|
127
|
+
/**
|
|
99
128
|
* Descriptor of {@link SignBidirectionalEvent} over ANY tx-params
|
|
100
129
|
* decomposition: the TS analogue of Compact's generic
|
|
101
|
-
* `
|
|
130
|
+
* `SignBidirectionalEventV1`. Each decomposition wraps this with its own
|
|
102
131
|
* capacity-parameterised convenience (see `signBidirectionalEventDescriptor`
|
|
103
132
|
* in signet-evtype2tx-requests.ts for the EVM Type-2 one).
|
|
104
133
|
*
|
|
@@ -112,9 +141,9 @@ export interface SignBidirectionalEvent<TxParams = EvmType2TxParams> {
|
|
|
112
141
|
*/
|
|
113
142
|
export declare function signBidirectionalEventDescriptorWith<TxParams>(txParams: CompactType<TxParams>, lenOutputDeserialization: number, lenRespondSerialization: number): CompactType<SignBidirectionalEvent<TxParams>>;
|
|
114
143
|
/**
|
|
115
|
-
* The generated ledger shape of `
|
|
116
|
-
*
|
|
117
|
-
* so any contract exposing
|
|
144
|
+
* The generated ledger shape of a `SignBidirectionalEventMapV1`: what a
|
|
145
|
+
* contract's `ledger(state).signBidirectionalEventMap` provides. Structural,
|
|
146
|
+
* so any contract exposing such a map satisfies it.
|
|
118
147
|
*/
|
|
119
148
|
export interface SignBidirectionalEventLedgerMap extends Iterable<[
|
|
120
149
|
RequestId,
|
|
@@ -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
|
|
@@ -91,10 +91,22 @@ const TX_PARAM_TYPE = new CompactTypeEnum(1, 1);
|
|
|
91
91
|
const MPC_SIGNATURE_ALGORITHM = new CompactTypeEnum(1, 1);
|
|
92
92
|
const MPC_DESTINATION = new CompactTypeEnum(1, 1);
|
|
93
93
|
/**
|
|
94
|
-
|
|
94
|
+
* Descriptor of {@link RequestIdPreimage}: what {@link calculateRequestId}
|
|
95
|
+
* hashes, in Compact declaration order.
|
|
96
|
+
*/
|
|
97
|
+
export const requestIdPreimageDescriptor = compactStructDescriptor({
|
|
98
|
+
keyVersion: UINT_8,
|
|
99
|
+
sender: CONTRACT_ADDRESS,
|
|
100
|
+
path: BYTES_32,
|
|
101
|
+
algo: MPC_SIGNATURE_ALGORITHM,
|
|
102
|
+
txParamType: TX_PARAM_TYPE,
|
|
103
|
+
txParamsDigest: BYTES_32,
|
|
104
|
+
executionDest: BYTES_32,
|
|
105
|
+
});
|
|
106
|
+
/**
|
|
95
107
|
* Descriptor of {@link SignBidirectionalEvent} over ANY tx-params
|
|
96
108
|
* decomposition: the TS analogue of Compact's generic
|
|
97
|
-
* `
|
|
109
|
+
* `SignBidirectionalEventV1`. Each decomposition wraps this with its own
|
|
98
110
|
* capacity-parameterised convenience (see `signBidirectionalEventDescriptor`
|
|
99
111
|
* in signet-evtype2tx-requests.ts for the EVM Type-2 one).
|
|
100
112
|
*
|
|
@@ -108,16 +120,15 @@ const MPC_DESTINATION = new CompactTypeEnum(1, 1);
|
|
|
108
120
|
*/
|
|
109
121
|
export function signBidirectionalEventDescriptorWith(txParams, lenOutputDeserialization, lenRespondSerialization) {
|
|
110
122
|
return compactStructDescriptor({
|
|
111
|
-
sender: CONTRACT_ADDRESS,
|
|
112
|
-
requestNonce: UINT_64,
|
|
113
123
|
keyVersion: UINT_8,
|
|
124
|
+
sender: CONTRACT_ADDRESS,
|
|
114
125
|
path: BYTES_32,
|
|
115
126
|
algo: MPC_SIGNATURE_ALGORITHM,
|
|
116
|
-
dest: MPC_DESTINATION,
|
|
117
|
-
params: BYTES_64,
|
|
118
127
|
txParamType: TX_PARAM_TYPE,
|
|
119
128
|
txParams,
|
|
120
|
-
|
|
129
|
+
executionDest: BYTES_32,
|
|
130
|
+
signatureDest: MPC_DESTINATION,
|
|
131
|
+
params: BYTES_64,
|
|
121
132
|
outputDeserializationSchema: new CompactTypeBytes(lenOutputDeserialization),
|
|
122
133
|
respondSerializationSchema: new CompactTypeBytes(lenRespondSerialization),
|
|
123
134
|
});
|