@easy1staking/cip113-sdk-ts 0.3.0 → 0.4.0
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 +20 -0
- package/blueprints/standard/v0.3.0/UPSTREAM_PIN.json +30 -0
- package/blueprints/standard/v0.5.0-alpha.2/UPSTREAM_PIN.json +33 -0
- package/blueprints/standard/v0.5.0-alpha.2/plutus.json +1010 -0
- package/blueprints/substandards/dummy/v0.1.0/UPSTREAM_PIN.json +29 -0
- package/blueprints/substandards/dummy/v0.2.0/UPSTREAM_PIN.json +36 -0
- package/blueprints/substandards/dummy/v0.2.0/plutus.json +84 -0
- package/blueprints/substandards/freeze-and-seize/v0.1.0/UPSTREAM_PIN.json +35 -0
- package/dist/core/cip171.d.ts +149 -0
- package/dist/core/cip171.d.ts.map +1 -0
- package/dist/core/cip171.js +284 -0
- package/dist/core/cip171.js.map +1 -0
- package/dist/core/evo-utils.d.ts +125 -17
- package/dist/core/evo-utils.d.ts.map +1 -1
- package/dist/core/evo-utils.js +149 -21
- package/dist/core/evo-utils.js.map +1 -1
- package/dist/core/ledger-order.d.ts +109 -0
- package/dist/core/ledger-order.d.ts.map +1 -0
- package/dist/core/ledger-order.js +185 -0
- package/dist/core/ledger-order.js.map +1 -0
- package/dist/core/registry.d.ts +16 -3
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/core/registry.js +18 -9
- package/dist/core/registry.js.map +1 -1
- package/dist/index.d.ts +27 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +55 -17
- package/dist/index.js.map +1 -1
- package/dist/standard/blueprint.d.ts +48 -1
- package/dist/standard/blueprint.d.ts.map +1 -1
- package/dist/standard/blueprint.js +71 -5
- package/dist/standard/blueprint.js.map +1 -1
- package/dist/standard/scripts.d.ts +76 -27
- package/dist/standard/scripts.d.ts.map +1 -1
- package/dist/standard/scripts.js +177 -49
- package/dist/standard/scripts.js.map +1 -1
- package/dist/substandards/dummy/index.d.ts.map +1 -1
- package/dist/substandards/dummy/index.js +443 -26
- package/dist/substandards/dummy/index.js.map +1 -1
- package/dist/substandards/freeze-and-seize/index.d.ts.map +1 -1
- package/dist/substandards/freeze-and-seize/index.js +283 -41
- package/dist/substandards/freeze-and-seize/index.js.map +1 -1
- package/dist/substandards/interface.d.ts +93 -1
- package/dist/substandards/interface.d.ts.map +1 -1
- package/dist/types.d.ts +87 -4
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -1
package/dist/core/evo-utils.d.ts
CHANGED
|
@@ -63,31 +63,127 @@ export declare function extractCredentialField(datum: unknown, fieldIndex: numbe
|
|
|
63
63
|
type: "key" | "script";
|
|
64
64
|
hash: string;
|
|
65
65
|
} | undefined;
|
|
66
|
+
export interface Cip113Credential {
|
|
67
|
+
type: "key" | "script";
|
|
68
|
+
hash: ScriptHash;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* A registry node — the per-token record the directory holds.
|
|
72
|
+
*
|
|
73
|
+
* SEVEN fields in 0.5.0-alpha.2, and the order is load-bearing: this is a
|
|
74
|
+
* positional Constr, so an insertion at the wrong index produces a datum that
|
|
75
|
+
* encodes cleanly and means something else entirely.
|
|
76
|
+
*
|
|
77
|
+
* Two fields were inserted, at different times, in the middle:
|
|
78
|
+
* index 2 minting_logic_script (upstream #52)
|
|
79
|
+
* index 5 unfracking_logic_script (unfracking v2)
|
|
80
|
+
*
|
|
81
|
+
* ⚠ Upstream's CONTRACT_SURFACE_CHANGES.md asserts this SDK was "already on the
|
|
82
|
+
* 6-field post-#52 shape (verified: minting_logic_script at index 2)". It was
|
|
83
|
+
* NOT — this builder emitted five fields with no minting_logic_script at all.
|
|
84
|
+
* That document is wrong about this repository's own contents; do not take its
|
|
85
|
+
* word for what is or is not already done here.
|
|
86
|
+
*/
|
|
66
87
|
export interface RegistryNodeData {
|
|
67
88
|
key: HexString;
|
|
68
89
|
next: HexString;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
hash: ScriptHash;
|
|
76
|
-
};
|
|
90
|
+
/** index 2 — added by #52. */
|
|
91
|
+
mintingLogicScript: Cip113Credential;
|
|
92
|
+
transferLogicScript: Cip113Credential;
|
|
93
|
+
thirdPartyTransferLogicScript: Cip113Credential;
|
|
94
|
+
/** index 5 — added by unfracking v2. */
|
|
95
|
+
unfrackingLogicScript: Cip113Credential;
|
|
77
96
|
globalStateCs: HexString;
|
|
78
97
|
}
|
|
79
|
-
/** Build a RegistryNode datum */
|
|
98
|
+
/** Build a RegistryNode datum. Field order is the on-chain contract. */
|
|
80
99
|
export declare function registryNodeDatum(node: RegistryNodeData): Data.Data;
|
|
81
|
-
/**
|
|
82
|
-
export declare function
|
|
100
|
+
/** Parse a RegistryNode datum. Strict on arity — a short record is not a partial one. */
|
|
101
|
+
export declare function decodeRegistryNode(d: Data.Data): RegistryNodeData;
|
|
102
|
+
/**
|
|
103
|
+
* Minimum lovelace for an output carrying a RegistryNode datum plus its NFT.
|
|
104
|
+
*
|
|
105
|
+
* ⚑ ONE constant, deliberately, because this defect has now been introduced
|
|
106
|
+
* THREE TIMES INDEPENDENTLY — in the bootstrap, in `dummy`, and in
|
|
107
|
+
* `freeze-and-seize` — each time by someone (me) who had already fixed it
|
|
108
|
+
* elsewhere and did not think to check the next site.
|
|
109
|
+
*
|
|
110
|
+
* The cause is always the same: min-UTxO scales with SERIALISED OUTPUT SIZE, so
|
|
111
|
+
* widening a datum raises the floor of every output that carries it. The
|
|
112
|
+
* RegistryNode datum went from FIVE fields to SEVEN in 0.5.x, and the inherited
|
|
113
|
+
* 2,000,000 was sized for the five-field shape. MEASURED requirement for the
|
|
114
|
+
* seven-field shape: 2,038,630.
|
|
115
|
+
*
|
|
116
|
+
* The ledger reports the shortfall as "insufficient Ada" with a number and
|
|
117
|
+
* NEVER as "your datum grew", so it surfaces as an unrelated funding error,
|
|
118
|
+
* often in a different ticket from the change that caused it.
|
|
119
|
+
*
|
|
120
|
+
* A rule written in a document has to be REMEMBERED. A constant has to be
|
|
121
|
+
* CHANGED. Deliberately generous: min-UTxO also moves with protocol parameters.
|
|
122
|
+
*/
|
|
123
|
+
export declare const REGISTRY_NODE_MIN_ADA = 3000000n;
|
|
83
124
|
/**
|
|
84
|
-
*
|
|
125
|
+
* `ProgrammableLogicGlobalParams` — the datum on the coordination UTxO.
|
|
126
|
+
*
|
|
127
|
+
* SEVEN fields, ordered by upstream BY READ FREQUENCY (a deliberate cost
|
|
128
|
+
* choice: programmable_logic_base reads 2-4 on every dispatch, and the field
|
|
129
|
+
* is read once per delegate invocation rather than once per input).
|
|
130
|
+
*
|
|
131
|
+
* Fields 2-5 are MUTABLE — an in-place upgrade rewrites them in this datum
|
|
132
|
+
* rather than redeploying programmable_logic_base, whose hash anchors every
|
|
133
|
+
* programmable token address. `coordination_spend` 28-byte-guards each one and
|
|
134
|
+
* freezes fields 0 and 1 permanently.
|
|
135
|
+
*
|
|
136
|
+
* ⚠ It is SEVEN, not six. Upstream's CONTRACT_SURFACE_CHANGES.md says six in
|
|
137
|
+
* three places, and in a fourth phrases it as an instruction — "6-field
|
|
138
|
+
* ProgrammableLogicGlobalParams parser / builder (order above)". Building that
|
|
139
|
+
* shape yields a malformed datum on EVERY programmable_logic_base spend, not
|
|
140
|
+
* merely at deploy, with no type error anywhere. `max_inline_datum_bytes`
|
|
141
|
+
* (index 6) arrives with #115 and is absent from that document.
|
|
85
142
|
*/
|
|
86
|
-
export
|
|
143
|
+
export interface ProtocolParamsData {
|
|
144
|
+
registryNodeCs: HexString;
|
|
145
|
+
progLogicCred: Cip113Credential;
|
|
146
|
+
/** index 2 — mutable. PLG's transfer arm, renamed by #110. */
|
|
147
|
+
transferCred: Cip113Credential;
|
|
148
|
+
/** index 3 — mutable. Seize / clawback. */
|
|
149
|
+
thirdPartyCred: Cip113Credential;
|
|
150
|
+
/** index 4 — mutable. */
|
|
151
|
+
unfrackingCred: Cip113Credential;
|
|
152
|
+
/** index 5 — mutable. The upgrade authority this datum trampolines to. */
|
|
153
|
+
upgradeCred: Cip113Credential;
|
|
154
|
+
/**
|
|
155
|
+
* index 6 — the #106-vector-3 bound. A seizure must reproduce a seized
|
|
156
|
+
* output's inline datum byte-for-byte, so an unbounded datum pushes the
|
|
157
|
+
* seizure past maxTxSize and yields an output nobody can seize.
|
|
158
|
+
*
|
|
159
|
+
* ⚠ This is a SECURITY PARAMETER with no upstream guidance. Upstream's test
|
|
160
|
+
* fixtures use 1024; that is a fixture value, not a recommendation. See
|
|
161
|
+
* PLAN.md D-17 — 1024 is sanctioned for the DEVNET fixture only.
|
|
162
|
+
*/
|
|
163
|
+
maxInlineDatumBytes: bigint;
|
|
164
|
+
}
|
|
165
|
+
/** Build the coordination datum. Field order is the on-chain contract. */
|
|
166
|
+
export declare function protocolParamsDatum(p: ProtocolParamsData): Data.Data;
|
|
167
|
+
/** Parse the coordination datum. */
|
|
168
|
+
export declare function decodeProtocolParams(d: Data.Data): ProtocolParamsData;
|
|
169
|
+
/** Build a BlacklistNode datum */
|
|
170
|
+
export declare function blacklistNodeDatum(key: HexString, next: HexString): Data.Data;
|
|
87
171
|
/**
|
|
88
|
-
*
|
|
172
|
+
* `issuance_mint`'s redeemer — a BARE `MintingRegistryProof`.
|
|
173
|
+
*
|
|
174
|
+
* Upstream #68 REMOVED the `SmartTokenMintingAction { minting_logic_cred,
|
|
175
|
+
* minting_registry_proof }` wrapper these builders used to emit. The redeemer is
|
|
176
|
+
* now the proof itself, and the minting-logic credential is no longer carried in
|
|
177
|
+
* it at all — it comes from the registry node.
|
|
178
|
+
*
|
|
179
|
+
* ctor 0 RefInput { index } — the registry node is a REFERENCE input
|
|
180
|
+
* ctor 1 OutputIndex { index } — the registry node is an OUTPUT of this tx
|
|
181
|
+
* (registration and first mint in one)
|
|
182
|
+
*
|
|
183
|
+
* Verified against the blueprint's own redeemer schema, not upstream's prose.
|
|
89
184
|
*/
|
|
90
|
-
export declare function
|
|
185
|
+
export declare function mintingProofRefInput(registryRefInputIndex: number): Data.Data;
|
|
186
|
+
export declare function mintingProofOutputIndex(registryOutputIndex: number): Data.Data;
|
|
91
187
|
export interface RegistryProof {
|
|
92
188
|
type: "exists" | "not-exists";
|
|
93
189
|
nodeIdx: number;
|
|
@@ -96,8 +192,20 @@ export interface RegistryProof {
|
|
|
96
192
|
export declare function transferActRedeemer(proofs: RegistryProof[]): Data.Data;
|
|
97
193
|
/** Build a ThirdPartyAct redeemer for PLGlobal. */
|
|
98
194
|
export declare function thirdPartyActRedeemer(registryNodeIdx: number, outputsStartIdx: number): Data.Data;
|
|
99
|
-
/**
|
|
100
|
-
|
|
195
|
+
/**
|
|
196
|
+
* `registry_mint`'s redeemer.
|
|
197
|
+
*
|
|
198
|
+
* ctor 0 RegistryInit {} — the origin node
|
|
199
|
+
* ctor 1 RegistryInsert { key, minting_logic_script }
|
|
200
|
+
*
|
|
201
|
+
* ⚠ The second field is a CREDENTIAL, not a bare hash. #52 replaced
|
|
202
|
+
* `hashed_param: ByteArray` with `minting_logic_script: Credential`, and #52's
|
|
203
|
+
* `mode: RegistrationMode` was removed again by re-audit R-06 — so a builder
|
|
204
|
+
* written against either intermediate shape is wrong in a different way. Both
|
|
205
|
+
* encode without complaint.
|
|
206
|
+
*/
|
|
207
|
+
export declare function registryInitRedeemer(): Data.Data;
|
|
208
|
+
export declare function registryInsertRedeemer(key: HexString, mintingLogicScript: Cip113Credential): Data.Data;
|
|
101
209
|
/** Blacklist init (constructor 0) */
|
|
102
210
|
export declare function blacklistInitRedeemer(): Data.Data;
|
|
103
211
|
/** Blacklist add (constructor 1) */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evo-utils.d.ts","sourceRoot":"","sources":["../../src/core/evo-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,IAAI,EACJ,KAAK,EACL,UAAU,IAAI,aAAa,EAC3B,MAAM,EACN,IAAI,EACJ,OAAO,IAAI,UAAU,EAKrB,MAAM,EACN,UAAU,EACV,WAAW,EACX,OAAO,EACP,eAAe,EACf,IAAI,IAAI,OAAO,EACf,WAAW,EACZ,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAQhF;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,CAYrE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,SAAS,EACvB,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,GAClB,YAAY,CAKd;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,SAAS,GAAG,UAAU,CAGrE;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CAI/E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,GAAG,MAAM,CAI/E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAQlG;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAIhE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAIhE;AAMD,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC,IAAI,CAKvD;AAED,iDAAiD;AACjD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC,IAAI,CAE5D;AAED,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CAAC,IAAI,CAExD;AAED,iCAAiC;AACjC,wBAAgB,QAAQ,IAAI,IAAI,CAAC,IAAI,CAEpC;AAMD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAgB9F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,GACjB;IAAE,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAoBtD;AAMD,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,SAAS,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,mBAAmB,EAAE;
|
|
1
|
+
{"version":3,"file":"evo-utils.d.ts","sourceRoot":"","sources":["../../src/core/evo-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/core/evo-utils.js
CHANGED
|
@@ -160,19 +160,131 @@ export function extractCredentialField(datum, fieldIndex) {
|
|
|
160
160
|
}
|
|
161
161
|
return undefined;
|
|
162
162
|
}
|
|
163
|
-
|
|
163
|
+
function credToData(cred) {
|
|
164
|
+
return cred.type === "script" ? scriptCredential(cred.hash) : keyCredential(cred.hash);
|
|
165
|
+
}
|
|
166
|
+
function dataToCred(d, where) {
|
|
167
|
+
if (!(d instanceof Data.Constr) || d.fields.length !== 1) {
|
|
168
|
+
throw new Error(`${where}: expected a Credential (Constr with 1 field)`);
|
|
169
|
+
}
|
|
170
|
+
const h = expectBytes(d.fields[0], `${where}.hash`);
|
|
171
|
+
if (d.index === 0n)
|
|
172
|
+
return { type: "key", hash: h };
|
|
173
|
+
if (d.index === 1n)
|
|
174
|
+
return { type: "script", hash: h };
|
|
175
|
+
throw new Error(`${where}: credential constructor index must be 0 or 1, got ${d.index}`);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Data.bytearray() yields a Uint8Array, NOT a hex string — so every decode has
|
|
179
|
+
* to convert. Done by hand rather than via Buffer: this SDK runs in browsers on
|
|
180
|
+
* the CIP-30 path, where Buffer does not exist.
|
|
181
|
+
*/
|
|
182
|
+
function bytesToHex(u8) {
|
|
183
|
+
let out = "";
|
|
184
|
+
for (const b of u8)
|
|
185
|
+
out += b.toString(16).padStart(2, "0");
|
|
186
|
+
return out;
|
|
187
|
+
}
|
|
188
|
+
function expectBytes(d, where) {
|
|
189
|
+
if (d instanceof Uint8Array)
|
|
190
|
+
return bytesToHex(d);
|
|
191
|
+
if (typeof d === "string")
|
|
192
|
+
return d;
|
|
193
|
+
throw new Error(`${where}: expected a bytearray, got ${typeof d}`);
|
|
194
|
+
}
|
|
195
|
+
/** Build a RegistryNode datum. Field order is the on-chain contract. */
|
|
164
196
|
export function registryNodeDatum(node) {
|
|
165
|
-
const credToData = (cred) => cred.type === "script"
|
|
166
|
-
? scriptCredential(cred.hash)
|
|
167
|
-
: keyCredential(cred.hash);
|
|
168
197
|
return Data.constr(0n, [
|
|
169
198
|
Data.bytearray(node.key),
|
|
170
199
|
Data.bytearray(node.next),
|
|
200
|
+
credToData(node.mintingLogicScript),
|
|
171
201
|
credToData(node.transferLogicScript),
|
|
172
202
|
credToData(node.thirdPartyTransferLogicScript),
|
|
203
|
+
credToData(node.unfrackingLogicScript),
|
|
173
204
|
Data.bytearray(node.globalStateCs),
|
|
174
205
|
]);
|
|
175
206
|
}
|
|
207
|
+
/** Parse a RegistryNode datum. Strict on arity — a short record is not a partial one. */
|
|
208
|
+
export function decodeRegistryNode(d) {
|
|
209
|
+
if (!(d instanceof Data.Constr) || d.index !== 0n) {
|
|
210
|
+
throw new Error("RegistryNode: expected Constr(0, ...)");
|
|
211
|
+
}
|
|
212
|
+
if (d.fields.length !== 7) {
|
|
213
|
+
throw new Error(`RegistryNode: expected exactly 7 fields, got ${d.fields.length}. ` +
|
|
214
|
+
`The 5-field (pre-#52) and 6-field (pre-unfracking-v2) layouts are NOT ` +
|
|
215
|
+
`forward-compatible: minting_logic_script was inserted at index 2 and ` +
|
|
216
|
+
`unfracking_logic_script at index 5, so every later field shifted.`);
|
|
217
|
+
}
|
|
218
|
+
const f = d.fields;
|
|
219
|
+
return {
|
|
220
|
+
key: expectBytes(f[0], "RegistryNode.key"),
|
|
221
|
+
next: expectBytes(f[1], "RegistryNode.next"),
|
|
222
|
+
mintingLogicScript: dataToCred(f[2], "RegistryNode.mintingLogicScript"),
|
|
223
|
+
transferLogicScript: dataToCred(f[3], "RegistryNode.transferLogicScript"),
|
|
224
|
+
thirdPartyTransferLogicScript: dataToCred(f[4], "RegistryNode.thirdPartyTransferLogicScript"),
|
|
225
|
+
unfrackingLogicScript: dataToCred(f[5], "RegistryNode.unfrackingLogicScript"),
|
|
226
|
+
globalStateCs: expectBytes(f[6], "RegistryNode.globalStateCs"),
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Minimum lovelace for an output carrying a RegistryNode datum plus its NFT.
|
|
231
|
+
*
|
|
232
|
+
* ⚑ ONE constant, deliberately, because this defect has now been introduced
|
|
233
|
+
* THREE TIMES INDEPENDENTLY — in the bootstrap, in `dummy`, and in
|
|
234
|
+
* `freeze-and-seize` — each time by someone (me) who had already fixed it
|
|
235
|
+
* elsewhere and did not think to check the next site.
|
|
236
|
+
*
|
|
237
|
+
* The cause is always the same: min-UTxO scales with SERIALISED OUTPUT SIZE, so
|
|
238
|
+
* widening a datum raises the floor of every output that carries it. The
|
|
239
|
+
* RegistryNode datum went from FIVE fields to SEVEN in 0.5.x, and the inherited
|
|
240
|
+
* 2,000,000 was sized for the five-field shape. MEASURED requirement for the
|
|
241
|
+
* seven-field shape: 2,038,630.
|
|
242
|
+
*
|
|
243
|
+
* The ledger reports the shortfall as "insufficient Ada" with a number and
|
|
244
|
+
* NEVER as "your datum grew", so it surfaces as an unrelated funding error,
|
|
245
|
+
* often in a different ticket from the change that caused it.
|
|
246
|
+
*
|
|
247
|
+
* A rule written in a document has to be REMEMBERED. A constant has to be
|
|
248
|
+
* CHANGED. Deliberately generous: min-UTxO also moves with protocol parameters.
|
|
249
|
+
*/
|
|
250
|
+
export const REGISTRY_NODE_MIN_ADA = 3000000n;
|
|
251
|
+
/** Build the coordination datum. Field order is the on-chain contract. */
|
|
252
|
+
export function protocolParamsDatum(p) {
|
|
253
|
+
return Data.constr(0n, [
|
|
254
|
+
Data.bytearray(p.registryNodeCs),
|
|
255
|
+
credToData(p.progLogicCred),
|
|
256
|
+
credToData(p.transferCred),
|
|
257
|
+
credToData(p.thirdPartyCred),
|
|
258
|
+
credToData(p.unfrackingCred),
|
|
259
|
+
credToData(p.upgradeCred),
|
|
260
|
+
Data.int(p.maxInlineDatumBytes),
|
|
261
|
+
]);
|
|
262
|
+
}
|
|
263
|
+
/** Parse the coordination datum. */
|
|
264
|
+
export function decodeProtocolParams(d) {
|
|
265
|
+
if (!(d instanceof Data.Constr) || d.index !== 0n) {
|
|
266
|
+
throw new Error("ProgrammableLogicGlobalParams: expected Constr(0, ...)");
|
|
267
|
+
}
|
|
268
|
+
if (d.fields.length !== 7) {
|
|
269
|
+
throw new Error(`ProgrammableLogicGlobalParams: expected exactly 7 fields, got ${d.fields.length}. ` +
|
|
270
|
+
`If you read 6 somewhere, that source predates #115 — max_inline_datum_bytes ` +
|
|
271
|
+
`is field 6. A 6-field datum is malformed for every programmable_logic_base spend.`);
|
|
272
|
+
}
|
|
273
|
+
const f = d.fields;
|
|
274
|
+
const n = f[6];
|
|
275
|
+
if (typeof n !== "bigint") {
|
|
276
|
+
throw new Error("ProgrammableLogicGlobalParams.maxInlineDatumBytes: expected an integer");
|
|
277
|
+
}
|
|
278
|
+
return {
|
|
279
|
+
registryNodeCs: expectBytes(f[0], "ProtocolParams.registryNodeCs"),
|
|
280
|
+
progLogicCred: dataToCred(f[1], "ProtocolParams.progLogicCred"),
|
|
281
|
+
transferCred: dataToCred(f[2], "ProtocolParams.transferCred"),
|
|
282
|
+
thirdPartyCred: dataToCred(f[3], "ProtocolParams.thirdPartyCred"),
|
|
283
|
+
unfrackingCred: dataToCred(f[4], "ProtocolParams.unfrackingCred"),
|
|
284
|
+
upgradeCred: dataToCred(f[5], "ProtocolParams.upgradeCred"),
|
|
285
|
+
maxInlineDatumBytes: n,
|
|
286
|
+
};
|
|
287
|
+
}
|
|
176
288
|
/** Build a BlacklistNode datum */
|
|
177
289
|
export function blacklistNodeDatum(key, next) {
|
|
178
290
|
return Data.constr(0n, [Data.bytearray(key), Data.bytearray(next)]);
|
|
@@ -181,22 +293,24 @@ export function blacklistNodeDatum(key, next) {
|
|
|
181
293
|
// Redeemer builders (CIP-113 validators)
|
|
182
294
|
// ---------------------------------------------------------------------------
|
|
183
295
|
/**
|
|
184
|
-
*
|
|
296
|
+
* `issuance_mint`'s redeemer — a BARE `MintingRegistryProof`.
|
|
297
|
+
*
|
|
298
|
+
* Upstream #68 REMOVED the `SmartTokenMintingAction { minting_logic_cred,
|
|
299
|
+
* minting_registry_proof }` wrapper these builders used to emit. The redeemer is
|
|
300
|
+
* now the proof itself, and the minting-logic credential is no longer carried in
|
|
301
|
+
* it at all — it comes from the registry node.
|
|
302
|
+
*
|
|
303
|
+
* ctor 0 RefInput { index } — the registry node is a REFERENCE input
|
|
304
|
+
* ctor 1 OutputIndex { index } — the registry node is an OUTPUT of this tx
|
|
305
|
+
* (registration and first mint in one)
|
|
306
|
+
*
|
|
307
|
+
* Verified against the blueprint's own redeemer schema, not upstream's prose.
|
|
185
308
|
*/
|
|
186
|
-
export function
|
|
187
|
-
return Data.constr(0n, [
|
|
188
|
-
scriptCredential(mintingLogicHash),
|
|
189
|
-
Data.constr(1n, [Data.int(BigInt(registryOutputIndex))]),
|
|
190
|
-
]);
|
|
309
|
+
export function mintingProofRefInput(registryRefInputIndex) {
|
|
310
|
+
return Data.constr(0n, [Data.int(BigInt(registryRefInputIndex))]);
|
|
191
311
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
*/
|
|
195
|
-
export function issuanceRedeemerRefInput(mintingLogicHash, registryRefInputIndex) {
|
|
196
|
-
return Data.constr(0n, [
|
|
197
|
-
scriptCredential(mintingLogicHash),
|
|
198
|
-
Data.constr(0n, [Data.int(BigInt(registryRefInputIndex))]),
|
|
199
|
-
]);
|
|
312
|
+
export function mintingProofOutputIndex(registryOutputIndex) {
|
|
313
|
+
return Data.constr(1n, [Data.int(BigInt(registryOutputIndex))]);
|
|
200
314
|
}
|
|
201
315
|
/** Build a TransferAct redeemer for PLGlobal. */
|
|
202
316
|
export function transferActRedeemer(proofs) {
|
|
@@ -213,9 +327,23 @@ export function thirdPartyActRedeemer(registryNodeIdx, outputsStartIdx) {
|
|
|
213
327
|
Data.int(BigInt(outputsStartIdx)),
|
|
214
328
|
]);
|
|
215
329
|
}
|
|
216
|
-
/**
|
|
217
|
-
|
|
218
|
-
|
|
330
|
+
/**
|
|
331
|
+
* `registry_mint`'s redeemer.
|
|
332
|
+
*
|
|
333
|
+
* ctor 0 RegistryInit {} — the origin node
|
|
334
|
+
* ctor 1 RegistryInsert { key, minting_logic_script }
|
|
335
|
+
*
|
|
336
|
+
* ⚠ The second field is a CREDENTIAL, not a bare hash. #52 replaced
|
|
337
|
+
* `hashed_param: ByteArray` with `minting_logic_script: Credential`, and #52's
|
|
338
|
+
* `mode: RegistrationMode` was removed again by re-audit R-06 — so a builder
|
|
339
|
+
* written against either intermediate shape is wrong in a different way. Both
|
|
340
|
+
* encode without complaint.
|
|
341
|
+
*/
|
|
342
|
+
export function registryInitRedeemer() {
|
|
343
|
+
return Data.constr(0n, []);
|
|
344
|
+
}
|
|
345
|
+
export function registryInsertRedeemer(key, mintingLogicScript) {
|
|
346
|
+
return Data.constr(1n, [Data.bytearray(key), credToData(mintingLogicScript)]);
|
|
219
347
|
}
|
|
220
348
|
/** Blacklist init (constructor 0) */
|
|
221
349
|
export function blacklistInitRedeemer() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evo-utils.js","sourceRoot":"","sources":["../../src/core/evo-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,IAAI,EACJ,KAAK,EACL,UAAU,IAAI,aAAa,EAC3B,MAAM,EACN,IAAI,EACJ,OAAO,IAAI,UAAU,EACrB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,UAAU,EACV,WAAW,EACX,OAAO,EACP,eAAe,EAEf,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,gCAAgC,CAAC;AAIxD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAyD,CAAC;AAElG,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,YAAuB;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAEtD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACrC,MAAM,SAAS,GAAG,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtG,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACxC,OAAO,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,IAAI,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,YAAuB,EACvB,MAAmB;IAEnB,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AACjE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,YAAuB;IACvD,MAAM,MAAM,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;IAC5C,OAAO,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,UAAsB;IACrE,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,IAAI,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7F,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,UAAsB;IACrE,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,IAAI,aAAa,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IACnF,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,UAAsB,EAAE,WAAmB;IACxF,MAAM,WAAW,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC;QACvC,SAAS;QACT,iBAAiB,EAAE,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACpF,eAAe,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;KAC3E,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,8EAA8E;AAC9E,+CAA+C;AAC/C,8EAA8E;AAE9E,wDAAwD;AACxD,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;QACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;KAClC,CAAC,CAAC;AACL,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,gBAAgB,CAAC,IAAgB;IAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,wDAAwD;AACxD,MAAM,UAAU,aAAa,CAAC,IAAe;IAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,QAAQ;IACtB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,8EAA8E;AAC9E,0DAA0D;AAC1D,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAc,EAAE,UAAkB;IACxE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAE1D,iDAAiD;IACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAkB,CAAC,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,KAAmE,CAAC;QACnF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,SAAS,CAAC;QAEpC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC,KAAK,CAAC,KAA8B,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAc,EACd,UAAkB;IAElB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAE1D,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAkB,CAAC,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,KAAmE,CAAC;QACnF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAEtD,MAAM,UAAU,GAAG,KAAmE,CAAC;QACvF,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAc,CAAC,CAAC,CAAC,QAAiB,CAAC;QAC1E,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAEtC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAA8B,CAAC,EAAE,CAAC;QACrE,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAcD,iCAAiC;AACjC,MAAM,UAAU,iBAAiB,CAAC,IAAsB;IACtD,MAAM,UAAU,GAAG,CAAC,IAAkD,EAAE,EAAE,CACxE,IAAI,CAAC,IAAI,KAAK,QAAQ;QACpB,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC7B,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE/B,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;QACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QACzB,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC;QACpC,UAAU,CAAC,IAAI,CAAC,6BAA6B,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;KACnC,CAAC,CAAC;AACL,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,kBAAkB,CAAC,GAAc,EAAE,IAAe;IAChE,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,8EAA8E;AAC9E,yCAAyC;AACzC,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,gBAA4B,EAC5B,mBAA2B;IAE3B,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;QACrB,gBAAgB,CAAC,gBAAgB,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;KACzD,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,gBAA4B,EAC5B,qBAA6B;IAE7B,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;QACrB,gBAAgB,CAAC,gBAAgB,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;KAC3D,CAAC,CAAC;AACL,CAAC;AAOD,iDAAiD;AACjD,MAAM,UAAU,mBAAmB,CAAC,MAAuB;IACzD,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;QACrB,IAAI,CAAC,IAAI,CACP,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACf,CAAC,CAAC,IAAI,KAAK,QAAQ;YACjB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAChD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CACnD,CACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,qBAAqB,CACnC,eAAuB,EACvB,eAAuB;IAEvB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;QACrB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;KAClC,CAAC,CAAC;AACL,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,sBAAsB,CAAC,GAAc,EAAE,WAAsB;IAC3E,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,oBAAoB,CAAC,UAAqB;IACxD,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,uBAAuB,CAAC,UAAqB;IAC3D,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,SAAiB,EAAE,GAAW;IAChF,IAAI,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAC3D,OAAO,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,OAA4B;IAC5D,IAAI,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,QAA8B;IAC3E,IAAI,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAkB;IAC/C,MAAM,QAAQ,GAAI,IAAY,CAAC,WAAW,CAAC;IAC3C,IAAI,QAAQ,EAAE,IAAI,KAAK,aAAa,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QAC9D,OAAO,QAAQ,CAAC,IAAiB,CAAC;IACpC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAkB,EAAE,IAAY;IAC1D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChD,OAAO,GAAG,GAAG,EAAE,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAkB,EAAE,IAAY;IAC1D,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAkB;IAC7C,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAkB;IAC3C,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAkB;IAChD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAkB;IAC5C,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,mFAAmF;AACnF,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAExC,oCAAoC;AACpC,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;AAQD,4FAA4F;AAC5F,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,YAAuB;IACrE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;AAC7C,CAAC;AAED,6GAA6G;AAC7G,MAAM,UAAU,eAAe,CAAC,YAAuB;IACrD,0CAA0C;IAC1C,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,YAAY,IAAI,EAAE,CAAC;IACzE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,qEAAqE;QACrE,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1C,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iDAAiD;IACnD,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,aAAa,CAAC,YAAuB;IACnD,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAwB;IACxD,MAAM,OAAO,GAAkC,EAAE,CAAC;IAElD,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5F,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5G,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;QACrB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAQ,UAAU;QAC9B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAQ,2CAA2C;KAChE,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E,OAAO,EACL,IAAI,EACJ,KAAK,EACL,MAAM,EACN,UAAU,EACV,WAAW,EACX,OAAO,EACP,UAAU,EACV,aAAa,EACb,eAAe,EACf,WAAW,EACX,IAAI,GACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"evo-utils.js","sourceRoot":"","sources":["../../src/core/evo-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ledger ordering, and the redeemer indices that depend on it.
|
|
3
|
+
*
|
|
4
|
+
* CIP-113 0.5.0-alpha.2 moved several lookups from "scan the transaction" to
|
|
5
|
+
* "the builder tells the validator where to look". That is cheaper on chain and
|
|
6
|
+
* strictly more dangerous off it: an index is a plain integer, so a wrong one
|
|
7
|
+
* typechecks, encodes, builds, and fails ONLY when the ledger runs the script.
|
|
8
|
+
* Nothing in this repository's other guards can see it.
|
|
9
|
+
*
|
|
10
|
+
* Two orderings matter, and they are NOT the same rule.
|
|
11
|
+
*
|
|
12
|
+
* --- Reference inputs -----------------------------------------------------
|
|
13
|
+
*
|
|
14
|
+
* Ordered by (transaction id, output index): bytewise on the id, then numeric
|
|
15
|
+
* on the index. `params_idx` is the protocol-params UTxO's position in that
|
|
16
|
+
* ordering, over the COMPLETE reference-input set.
|
|
17
|
+
*
|
|
18
|
+
* --- Withdrawals ----------------------------------------------------------
|
|
19
|
+
*
|
|
20
|
+
* NOT bytewise on the reward address, and NOT insertion order.
|
|
21
|
+
*
|
|
22
|
+
* EVERY SCRIPT CREDENTIAL SORTS BEFORE EVERY KEY CREDENTIAL, then bytewise by
|
|
23
|
+
* hash within each kind. The reason is a Haskell detail with an on-chain
|
|
24
|
+
* consequence: cardano-ledger's `Credential` is
|
|
25
|
+
*
|
|
26
|
+
* data Credential kr c = ScriptHashObj !(ScriptHash c) | KeyHashObj !(KeyHash kr c)
|
|
27
|
+
*
|
|
28
|
+
* with a derived `Ord`, and a derived `Ord` on a sum type compares constructor
|
|
29
|
+
* position first. `ScriptHashObj` is declared first, so it sorts first. The
|
|
30
|
+
* withdrawals map is keyed by `RewardAccount`, which orders by network then
|
|
31
|
+
* credential, and Plutus hands the script that map in that order.
|
|
32
|
+
*
|
|
33
|
+
* ⚠ THIS IS THE OPPOSITE OF WHAT THE SERIALISED BYTES SUGGEST, which is the
|
|
34
|
+
* trap. A reward account's header byte encodes key-stake as 0xE0|network and
|
|
35
|
+
* script-stake as 0xF0|network, so sorting the ENCODED addresses puts key
|
|
36
|
+
* credentials first — the exact reverse of the order the script sees. Deriving
|
|
37
|
+
* this ordering from the wire format is a natural mistake that produces a
|
|
38
|
+
* `wdrl_idx` that is wrong only when both kinds are present.
|
|
39
|
+
*
|
|
40
|
+
* PROVENANCE: DERIVED from cardano-ledger's constructor order and corroborated
|
|
41
|
+
* by upstream's own integration guide (documentation/09 › Withdrawal indices),
|
|
42
|
+
* which cites the same `Ord` derivation. NOT yet OBSERVED on chain by us — that
|
|
43
|
+
* happens in T-D08, and until then this is reasoned, not booted.
|
|
44
|
+
*/
|
|
45
|
+
import { Data } from "@evolution-sdk/evolution";
|
|
46
|
+
import type { HexString, TxInput } from "../types.js";
|
|
47
|
+
/** Ledger order for transaction inputs: by tx id, then by output index. */
|
|
48
|
+
export declare function compareTxInputs(a: TxInput, b: TxInput): number;
|
|
49
|
+
/**
|
|
50
|
+
* Position of `target` in the ledger-sorted reference inputs.
|
|
51
|
+
*
|
|
52
|
+
* Throws rather than returning -1: a missing reference input is a builder bug,
|
|
53
|
+
* and -1 encodes as a valid integer that fails obscurely on chain.
|
|
54
|
+
*/
|
|
55
|
+
export declare function referenceInputIndexOf(all: readonly TxInput[], target: TxInput): number;
|
|
56
|
+
export interface WithdrawalKey {
|
|
57
|
+
/** 28-byte credential hash, hex. */
|
|
58
|
+
hash: HexString;
|
|
59
|
+
/** true = script credential, false = verification-key credential. */
|
|
60
|
+
isScript: boolean;
|
|
61
|
+
}
|
|
62
|
+
/** Ledger order: every script credential before every key credential. */
|
|
63
|
+
export declare function compareWithdrawalKeys(a: WithdrawalKey, b: WithdrawalKey): number;
|
|
64
|
+
/** Sort withdrawal keys into the order the script sees. Does not mutate. */
|
|
65
|
+
export declare function sortWithdrawalKeys(keys: readonly WithdrawalKey[]): WithdrawalKey[];
|
|
66
|
+
/**
|
|
67
|
+
* Position of `target` in the ledger-ordered withdrawal map.
|
|
68
|
+
*
|
|
69
|
+
* `all` MUST be the complete withdrawal set of the final transaction. Any extra
|
|
70
|
+
* withdrawal — a second substandard script, or a key-hash reward withdrawal a
|
|
71
|
+
* wallet adds during balancing — occupies a slot and shifts every position
|
|
72
|
+
* after it. Compute this last.
|
|
73
|
+
*/
|
|
74
|
+
export declare function withdrawalIndexOf(all: readonly WithdrawalKey[], target: WithdrawalKey): number;
|
|
75
|
+
/**
|
|
76
|
+
* Which delegate programmable_logic_base dispatches to.
|
|
77
|
+
*
|
|
78
|
+
* Constructor indices are the on-chain contract: 0/1/2. Exactly one framework
|
|
79
|
+
* delegate may be invoked per transaction.
|
|
80
|
+
*/
|
|
81
|
+
export declare const BaseSpendVia: {
|
|
82
|
+
readonly TRANSFER: 0n;
|
|
83
|
+
readonly THIRD_PARTY: 1n;
|
|
84
|
+
readonly UNFRACKING: 2n;
|
|
85
|
+
};
|
|
86
|
+
export type BaseSpendVariant = keyof typeof BaseSpendVia;
|
|
87
|
+
/**
|
|
88
|
+
* Build a BaseSpendRedeemer.
|
|
89
|
+
*
|
|
90
|
+
* Replaces the untyped redeemer of 0.3.x and the bare `Int` of #109. Every
|
|
91
|
+
* programmable_logic_base input in the transaction needs one.
|
|
92
|
+
*/
|
|
93
|
+
export declare function baseSpendRedeemer(via: BaseSpendVariant, paramsIdx: number, wdrlIdx: number): Data.Data;
|
|
94
|
+
export interface RegistryProofRef {
|
|
95
|
+
type: "exists" | "not-exists";
|
|
96
|
+
nodeIdx: number;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* `transfer`'s TransferRedeemer { params_idx, proofs }.
|
|
100
|
+
*
|
|
101
|
+
* Single constructor 0, same field order as the old `TransferAct` with
|
|
102
|
+
* `params_idx` prepended — so an old encoder's output is NOT compatible.
|
|
103
|
+
*/
|
|
104
|
+
export declare function transferRedeemer(paramsIdx: number, proofs: readonly RegistryProofRef[]): Data.Data;
|
|
105
|
+
/** `third_party`'s ThirdPartyRedeemer { params_idx, registry_node_idx, outputs_start_idx }. */
|
|
106
|
+
export declare function thirdPartyRedeemer(paramsIdx: number, registryNodeIdx: number, outputsStartIdx: number): Data.Data;
|
|
107
|
+
/** `unfracking`'s UnfrackingRedeemer { params_idx, registry_node_idx, outputs_start_idx }. */
|
|
108
|
+
export declare function unfrackingRedeemer(paramsIdx: number, registryNodeIdx: number, outputsStartIdx: number): Data.Data;
|
|
109
|
+
//# sourceMappingURL=ledger-order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger-order.d.ts","sourceRoot":"","sources":["../../src/core/ledger-order.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAc,OAAO,EAAE,MAAM,aAAa,CAAC;AAiClE,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAG9D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,SAAS,OAAO,EAAE,EACvB,MAAM,EAAE,OAAO,GACd,MAAM,CAYR;AAMD,MAAM,WAAW,aAAa;IAC5B,oCAAoC;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,aAAa,GAAG,MAAM,CAGhF;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,aAAa,EAAE,GAAG,aAAa,EAAE,CAElF;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,SAAS,aAAa,EAAE,EAC7B,MAAM,EAAE,aAAa,GACpB,MAAM,CAaR;AAMD;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,YAAY,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,IAAI,CAAC,IAAI,CAWX;AAMD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,GAAG,YAAY,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,gBAAgB,EAAE,GAClC,IAAI,CAAC,IAAI,CASX;AAED,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,GACtB,IAAI,CAAC,IAAI,CAMX;AAED,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,eAAe,EAAE,MAAM,GACtB,IAAI,CAAC,IAAI,CAMX"}
|