@easy1staking/cip113-sdk-ts 0.3.1 → 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.
Files changed (47) hide show
  1. package/README.md +20 -0
  2. package/blueprints/standard/v0.3.0/UPSTREAM_PIN.json +30 -0
  3. package/blueprints/standard/v0.5.0-alpha.2/UPSTREAM_PIN.json +33 -0
  4. package/blueprints/standard/v0.5.0-alpha.2/plutus.json +1010 -0
  5. package/blueprints/substandards/dummy/v0.1.0/UPSTREAM_PIN.json +29 -0
  6. package/blueprints/substandards/dummy/v0.2.0/UPSTREAM_PIN.json +36 -0
  7. package/blueprints/substandards/dummy/v0.2.0/plutus.json +84 -0
  8. package/blueprints/substandards/freeze-and-seize/v0.1.0/UPSTREAM_PIN.json +35 -0
  9. package/dist/core/cip171.d.ts +149 -0
  10. package/dist/core/cip171.d.ts.map +1 -0
  11. package/dist/core/cip171.js +284 -0
  12. package/dist/core/cip171.js.map +1 -0
  13. package/dist/core/evo-utils.d.ts +125 -17
  14. package/dist/core/evo-utils.d.ts.map +1 -1
  15. package/dist/core/evo-utils.js +149 -21
  16. package/dist/core/evo-utils.js.map +1 -1
  17. package/dist/core/ledger-order.d.ts +109 -0
  18. package/dist/core/ledger-order.d.ts.map +1 -0
  19. package/dist/core/ledger-order.js +185 -0
  20. package/dist/core/ledger-order.js.map +1 -0
  21. package/dist/core/registry.d.ts +16 -3
  22. package/dist/core/registry.d.ts.map +1 -1
  23. package/dist/core/registry.js +18 -9
  24. package/dist/core/registry.js.map +1 -1
  25. package/dist/index.d.ts +26 -2
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +54 -16
  28. package/dist/index.js.map +1 -1
  29. package/dist/standard/blueprint.d.ts +48 -1
  30. package/dist/standard/blueprint.d.ts.map +1 -1
  31. package/dist/standard/blueprint.js +71 -5
  32. package/dist/standard/blueprint.js.map +1 -1
  33. package/dist/standard/scripts.d.ts +76 -27
  34. package/dist/standard/scripts.d.ts.map +1 -1
  35. package/dist/standard/scripts.js +177 -49
  36. package/dist/standard/scripts.js.map +1 -1
  37. package/dist/substandards/dummy/index.d.ts.map +1 -1
  38. package/dist/substandards/dummy/index.js +443 -26
  39. package/dist/substandards/dummy/index.js.map +1 -1
  40. package/dist/substandards/freeze-and-seize/index.d.ts.map +1 -1
  41. package/dist/substandards/freeze-and-seize/index.js +283 -41
  42. package/dist/substandards/freeze-and-seize/index.js.map +1 -1
  43. package/dist/substandards/interface.d.ts +93 -1
  44. package/dist/substandards/interface.d.ts.map +1 -1
  45. package/dist/types.d.ts +87 -4
  46. package/dist/types.d.ts.map +1 -1
  47. package/package.json +4 -1
@@ -8,10 +8,11 @@
8
8
  * No compliance features, no blacklist.
9
9
  * Uses Evolution SDK directly — no adapter abstraction.
10
10
  */
11
- import { Address as EvoAddress, Data, Transaction, } from "@evolution-sdk/evolution";
11
+ import { Address as EvoAddress, Assets as EvoAssets, Bytes, Data, Transaction, } from "@evolution-sdk/evolution";
12
12
  import { getValidatorCode } from "../../standard/blueprint.js";
13
- import { sortTxInputs, findRefInputIndex, findRegistryNode, utxoToTxInput, } from "../../core/registry.js";
14
- import { buildEvoScript, computeScriptHash, scriptAddress, baseAddress, stakingCredentialHash, stringToHex, voidData, transferActRedeemer, utxoUnitQty, outputAssets, Credential, KeyHash, InlineDatum, } from "../../core/evo-utils.js";
13
+ import { findRegistryNode, findCoveringNode, utxoToTxInput, } from "../../core/registry.js";
14
+ import { baseSpendRedeemer, transferRedeemer, thirdPartyRedeemer, referenceInputIndexOf, withdrawalIndexOf, compareTxInputs, } from "../../core/ledger-order.js";
15
+ import { buildEvoScript, computeScriptHash, scriptAddress, baseAddress, stakingCredentialHash, stringToHex, voidData, registryNodeDatum, decodeRegistryNode, registryInsertRedeemer, mintingProofOutputIndex, mintingProofRefInput, mintAssetsFromMap, REGISTRY_NODE_MIN_ADA, getInlineDatum, utxoUnitQty, outputAssets, Credential, KeyHash, InlineDatum, } from "../../core/evo-utils.js";
15
16
  const DUMMY_VALIDATORS = {
16
17
  ISSUE: "transfer.issue.withdraw",
17
18
  TRANSFER: "transfer.transfer.withdraw",
@@ -26,6 +27,110 @@ export function dummySubstandard(config) {
26
27
  const hash = computeScriptHash(code);
27
28
  return { type: "PlutusV3", compiledCode: code, hash };
28
29
  }
30
+ const hexToBytes = (hex) => Bytes.fromHex(hex);
31
+ /**
32
+ * ⛔ Both of dummy's validators are withdraw-0, and a withdraw-0 needs its
33
+ * stake credential REGISTERED on chain before it can appear in a transaction.
34
+ * Registering emits a Conway RegCert, which runs the script under the PUBLISH
35
+ * purpose — so a validator with no `publish` handler falls through to `else`
36
+ * and the registration fails at evaluation with an empty trace list.
37
+ *
38
+ * The bundled dummy blueprint (v0.1.0, Aiken v1.1.19) has ONLY `withdraw` and
39
+ * `else`. MEASURED on a devnet, with two different redeemers:
40
+ *
41
+ * validator { index: 0, purpose: "publish" }
42
+ * "The machine terminated because of an error", traces: []
43
+ *
44
+ * and consequently a register/mint/transfer fails later and more obscurely,
45
+ * at submission, with code 3141 naming a reward account nobody recognises.
46
+ *
47
+ * This is the SAME blocker that stopped the standard bootstrap under the
48
+ * 0.3.0 blueprint, recurring one layer down — and the standard side was only
49
+ * ever unblocked because upstream dissolved PLG into validators that DO carry
50
+ * publish handlers. Nothing has done that for the substandards.
51
+ *
52
+ * Refused here, up front, rather than allowed to surface as an opaque
53
+ * submission error three transactions later. Fixing it needs a dummy blueprint
54
+ * compiled with publish handlers, which is upstream's business: this repo
55
+ * consumes blueprints and does not build them (see the constitution — an
56
+ * `.ak` file here is an escalation).
57
+ */
58
+ function requirePublishHandlers() {
59
+ const titles = config.blueprint.validators.map((v) => v.title);
60
+ const missing = [
61
+ DUMMY_VALIDATORS.ISSUE.replace(".withdraw", ".publish"),
62
+ DUMMY_VALIDATORS.TRANSFER.replace(".withdraw", ".publish"),
63
+ ].filter((t) => !titles.includes(t));
64
+ if (missing.length === 0)
65
+ return;
66
+ throw new Error(`The dummy blueprint cannot operate on CIP-113 0.5.x: it lacks publish handler(s) ` +
67
+ `${missing.join(", ")}.\n` +
68
+ `Both dummy validators are withdraw-0, so their stake credentials must be registered ` +
69
+ `before any register/mint/transfer can validate. Registration runs the script under ` +
70
+ `the PUBLISH purpose and a blueprint without that handler fails at evaluation with an ` +
71
+ `empty trace list (MEASURED on devnet).\n` +
72
+ `Present handlers: ${titles.join(", ")}\n` +
73
+ `Blueprint: "${config.blueprint.preamble.title}" v${config.blueprint.preamble.version} ` +
74
+ `(${config.blueprint.preamble.compiler?.name} ${config.blueprint.preamble.compiler?.version}).\n` +
75
+ `A publish-capable dummy blueprint is required. This repository consumes blueprints ` +
76
+ `and does not build them. See PLAN.md, workstream W-D / T-D08.`);
77
+ }
78
+ /**
79
+ * The coordination UTxO — every programmable_logic_base spend and every
80
+ * delegate reads it, so every operation here needs it as a reference input.
81
+ *
82
+ * ⚠ It lives at coordination_spend in 0.5.x, NOT at always_fail. The
83
+ * parameter naming that lock target kept its arity and its type across the
84
+ * change, so a lookup at the old address finds nothing and reports only that
85
+ * the UTxO is missing.
86
+ */
87
+ async function findParamsUtxo() {
88
+ const unit = ctx.deployment.protocolParams.policyId + stringToHex("ProtocolParams");
89
+ const addr = EvoAddress.fromBech32(scriptAddress(networkId, ctx.deployment.coordination.scriptHash));
90
+ const utxos = await ctx.client.getUtxosWithUnit(addr, unit);
91
+ if (utxos.length === 0) {
92
+ throw new Error(`Protocol params UTxO not found (unit ${unit}) at the coordination address. ` +
93
+ `The params NFT is one-shot: zero results means it is locked elsewhere, not that ` +
94
+ `the protocol is un-deployed.`);
95
+ }
96
+ return utxos[0];
97
+ }
98
+ /**
99
+ * The IssuanceCborHex UTxO.
100
+ *
101
+ * `registry_mint`'s RegistryInsert requires this as a REFERENCE INPUT: it
102
+ * reads the issuance template from the datum and re-derives the token policy
103
+ * from it, so the key being registered is cryptographically bound to the
104
+ * minting logic rather than merely asserted. Omitting it fails with
105
+ * "Expected a non-empty list but got an empty one" — an `expect_find` over
106
+ * reference_inputs — which names neither the input nor the reason.
107
+ */
108
+ async function findIssuanceCborUtxo() {
109
+ const unit = ctx.deployment.issuance.policyId + stringToHex("IssuanceCborHex");
110
+ const addr = EvoAddress.fromBech32(scriptAddress(networkId, ctx.deployment.issuance.alwaysFailScriptHash));
111
+ const utxos = await ctx.client.getUtxosWithUnit(addr, unit);
112
+ if (utxos.length === 0) {
113
+ throw new Error(`IssuanceCborHex UTxO not found (unit ${unit})`);
114
+ }
115
+ return utxos[0];
116
+ }
117
+ /** Build the transaction and shape it into an UnsignedTx. */
118
+ async function finish(tx, changeAddress, extra = {}) {
119
+ const result = await tx.build({
120
+ changeAddress: EvoAddress.fromBech32(changeAddress),
121
+ ...(ctx.evaluator ? { evaluator: ctx.evaluator } : {}),
122
+ });
123
+ const txObj = await result.toTransaction();
124
+ const cbor = Transaction.toCBORHex(txObj);
125
+ const txHash = typeof result.chainResult === "function" ? result.chainResult().txHash : "";
126
+ return {
127
+ cbor,
128
+ txHash,
129
+ tokenPolicyId: extra.tokenPolicyId,
130
+ metadata: { unit: extra.unit, outputIndices: extra.outputIndices },
131
+ _signBuilder: result,
132
+ };
133
+ }
29
134
  return {
30
135
  id: "dummy",
31
136
  version: "0.1.0",
@@ -35,15 +140,306 @@ export function dummySubstandard(config) {
35
140
  networkId = ctx.client.chain.id;
36
141
  issueScript = buildScript(DUMMY_VALIDATORS.ISSUE);
37
142
  transferScript = buildScript(DUMMY_VALIDATORS.TRANSFER);
143
+ requirePublishHandlers();
38
144
  },
39
- async register(_params) {
40
- throw new Error("dummy.register: not yet implemented");
145
+ /**
146
+ * Register a dummy token in the protocol registry, and mint its first
147
+ * supply in the same transaction.
148
+ *
149
+ * Registration is a linked-list insertion. The registry is an ordered chain
150
+ * of nodes keyed by token policy id; inserting means finding the COVERING
151
+ * node (the one whose key < ours and whose next > ours), spending it to
152
+ * repoint its `next` at us, and minting a new node NFT for our own entry.
153
+ *
154
+ * Mint and registration are one transaction because `issuance_mint`'s
155
+ * MintingRegistryProof can name the registry node as an OUTPUT of this very
156
+ * transaction (ctor 1, OutputIndex) rather than as a reference input — so
157
+ * the token can be minted before its node exists anywhere else.
158
+ */
159
+ async register(params) {
160
+ const { feePayerAddress, assetName, quantity } = params;
161
+ const recipient = params.recipientAddress ?? feePayerAddress;
162
+ const client = ctx.client;
163
+ // The token policy IS issuance_mint parameterised by our minting logic.
164
+ const issuanceMint = ctx.standardScripts.buildIssuanceMint(issueScript.hash);
165
+ const tokenPolicyId = issuanceMint.hash;
166
+ const unit = tokenPolicyId + assetName;
167
+ const registryMintPolicyId = ctx.standardScripts.registryMint.hash;
168
+ const registrySpendAddr = scriptAddress(networkId, ctx.standardScripts.registrySpend.hash);
169
+ const registryUtxos = await client.getUtxos(EvoAddress.fromBech32(registrySpendAddr));
170
+ const covering = findCoveringNode(registryUtxos, tokenPolicyId);
171
+ if (!covering) {
172
+ throw new Error(`No covering registry node found for policy ${tokenPolicyId}. The registry origin ` +
173
+ `node must exist (it is created by the protocol bootstrap) and no node with this ` +
174
+ `key may already be present.`);
175
+ }
176
+ const coveringDatumData = getInlineDatum(covering);
177
+ if (!coveringDatumData) {
178
+ throw new Error("The covering registry node carries no inline datum");
179
+ }
180
+ const coveringNode = decodeRegistryNode(coveringDatumData);
181
+ if (coveringNode.key === tokenPolicyId) {
182
+ throw new Error(`Policy ${tokenPolicyId} is already registered`);
183
+ }
184
+ const plbHash = ctx.standardScripts.programmableLogicBase.hash;
185
+ const recipientPlbAddr = baseAddress(networkId, plbHash, recipient);
186
+ // Our node points where the covering node used to point; the covering
187
+ // node now points at us. Ordinary singly-linked-list insertion, except a
188
+ // mistake here is an unspendable token rather than a lost pointer.
189
+ const newNodeDatum = registryNodeDatum({
190
+ key: tokenPolicyId,
191
+ next: coveringNode.next,
192
+ mintingLogicScript: { type: "script", hash: issueScript.hash },
193
+ transferLogicScript: { type: "script", hash: transferScript.hash },
194
+ // dummy has no compliance and no unfracking concept, but these fields
195
+ // are MANDATORY and must be well-formed 28-byte credentials — upstream
196
+ // applies the same one-way-brick rule here as to the params datum.
197
+ // Pointing them at dummy's own transfer logic keeps every path
198
+ // satisfiable; it is a fixture choice, not a compliance design.
199
+ thirdPartyTransferLogicScript: { type: "script", hash: transferScript.hash },
200
+ unfrackingLogicScript: { type: "script", hash: transferScript.hash },
201
+ globalStateCs: "",
202
+ });
203
+ const updatedCoveringDatum = registryNodeDatum({ ...coveringNode, next: tokenPolicyId });
204
+ const registryNftUnit = registryMintPolicyId + tokenPolicyId;
205
+ const coveringNftUnit = registryMintPolicyId + coveringNode.key;
206
+ // Output order is the contract: the MintingRegistryProof below names our
207
+ // registry node by OUTPUT INDEX, so moving these outputs silently changes
208
+ // which output the validator inspects.
209
+ const OUT_TOKEN = 0;
210
+ const OUT_NEW_NODE = 1;
211
+ const OUT_COVERING = 2;
212
+ let tx = client.newTx();
213
+ tx = tx.collectFrom({ inputs: [covering], redeemer: voidData() });
214
+ // The minting-logic withdraw-0: dummy's `issue` validator, redeemer 100.
215
+ tx = tx.withdraw({
216
+ stakeCredential: Credential.makeScriptHash(hexToBytes(issueScript.hash)),
217
+ amount: 0n,
218
+ redeemer: Data.int(100n),
219
+ });
220
+ tx = tx.mintAssets({
221
+ assets: mintAssetsFromMap(new Map([[unit, quantity]])),
222
+ redeemer: mintingProofOutputIndex(OUT_NEW_NODE),
223
+ });
224
+ tx = tx.mintAssets({
225
+ assets: mintAssetsFromMap(new Map([[registryNftUnit, 1n]])),
226
+ redeemer: registryInsertRedeemer(tokenPolicyId, { type: "script", hash: issueScript.hash }),
227
+ });
228
+ tx = tx.payToAddress({
229
+ address: EvoAddress.fromBech32(recipientPlbAddr),
230
+ assets: outputAssets(1300000n, new Map([[unit, quantity]])),
231
+ datum: new InlineDatum.InlineDatum({ data: voidData() }),
232
+ });
233
+ // ⚠ min-UTxO, not a round number pulled from the old code.
234
+ //
235
+ // MEASURED: a 7-field RegistryNode datum plus the node NFT requires
236
+ // 2,038,630 lovelace. The 2,000,000 this was inherited from is below that
237
+ // — it was sized for the FIVE-field datum. Growing a datum raises the
238
+ // minimum ADA of every output carrying it, and the ledger reports that as
239
+ // "insufficient Ada" naming a number, never as "your datum grew".
240
+ // Deliberately generous rather than exact: min-UTxO scales with
241
+ // serialised size and with a protocol parameter that can rise.
242
+ const REGISTRY_NODE_ADA = REGISTRY_NODE_MIN_ADA;
243
+ tx = tx.payToAddress({
244
+ address: EvoAddress.fromBech32(registrySpendAddr),
245
+ assets: outputAssets(REGISTRY_NODE_ADA, new Map([[registryNftUnit, 1n]])),
246
+ datum: new InlineDatum.InlineDatum({ data: newNodeDatum }),
247
+ });
248
+ tx = tx.payToAddress({
249
+ address: EvoAddress.fromBech32(registrySpendAddr),
250
+ assets: outputAssets(REGISTRY_NODE_ADA, new Map([[coveringNftUnit, 1n]])),
251
+ datum: new InlineDatum.InlineDatum({ data: updatedCoveringDatum }),
252
+ });
253
+ const paramsUtxo = await findParamsUtxo();
254
+ const issuanceCborUtxo = await findIssuanceCborUtxo();
255
+ tx = tx.readFrom({ referenceInputs: [paramsUtxo, issuanceCborUtxo] });
256
+ tx = tx.attachScript({ script: buildEvoScript(issuanceMint.compiledCode) });
257
+ tx = tx.attachScript({ script: buildEvoScript(ctx.standardScripts.registryMint.compiledCode) });
258
+ tx = tx.attachScript({ script: buildEvoScript(ctx.standardScripts.registrySpend.compiledCode) });
259
+ tx = tx.attachScript({ script: buildEvoScript(issueScript.compiledCode) });
260
+ return finish(tx, feePayerAddress, { tokenPolicyId, unit, outputIndices: { OUT_TOKEN, OUT_NEW_NODE, OUT_COVERING } });
41
261
  },
42
- async mint(_params) {
43
- throw new Error("dummy.mint: not yet implemented");
262
+ /**
263
+ * Mint more of an already-registered dummy token.
264
+ *
265
+ * Differs from `register` only in where the registry node is: it already
266
+ * exists, so the proof names it as a REFERENCE input (ctor 0) rather than as
267
+ * an output of this transaction.
268
+ */
269
+ async mint(params) {
270
+ const { feePayerAddress, tokenPolicyId, assetName, quantity } = params;
271
+ const recipient = params.recipientAddress ?? feePayerAddress;
272
+ const client = ctx.client;
273
+ const unit = tokenPolicyId + assetName;
274
+ const issuanceMint = ctx.standardScripts.buildIssuanceMint(issueScript.hash);
275
+ if (issuanceMint.hash !== tokenPolicyId) {
276
+ throw new Error(`Policy ${tokenPolicyId} is not a dummy token: issuance_mint parameterised by ` +
277
+ `dummy's issue logic hashes to ${issuanceMint.hash}.`);
278
+ }
279
+ const registrySpendAddr = scriptAddress(networkId, ctx.standardScripts.registrySpend.hash);
280
+ const registryUtxos = await client.getUtxos(EvoAddress.fromBech32(registrySpendAddr));
281
+ const node = findRegistryNode(registryUtxos, tokenPolicyId);
282
+ if (!node)
283
+ throw new Error(`Registry node not found for policy ${tokenPolicyId}`);
284
+ const paramsUtxo = await findParamsUtxo();
285
+ const refs = [paramsUtxo, node];
286
+ const nodeIdx = referenceInputIndexOf(refs.map(utxoToTxInput), utxoToTxInput(node));
287
+ const plbHash = ctx.standardScripts.programmableLogicBase.hash;
288
+ const recipientPlbAddr = baseAddress(networkId, plbHash, recipient);
289
+ let tx = client.newTx();
290
+ tx = tx.withdraw({
291
+ stakeCredential: Credential.makeScriptHash(hexToBytes(issueScript.hash)),
292
+ amount: 0n,
293
+ redeemer: Data.int(100n),
294
+ });
295
+ tx = tx.mintAssets({
296
+ assets: mintAssetsFromMap(new Map([[unit, quantity]])),
297
+ redeemer: mintingProofRefInput(nodeIdx),
298
+ });
299
+ tx = tx.payToAddress({
300
+ address: EvoAddress.fromBech32(recipientPlbAddr),
301
+ assets: outputAssets(1300000n, new Map([[unit, quantity]])),
302
+ datum: new InlineDatum.InlineDatum({ data: voidData() }),
303
+ });
304
+ tx = tx.readFrom({ referenceInputs: refs });
305
+ tx = tx.attachScript({ script: buildEvoScript(issuanceMint.compiledCode) });
306
+ tx = tx.attachScript({ script: buildEvoScript(issueScript.compiledCode) });
307
+ return finish(tx, feePayerAddress, { tokenPolicyId, unit });
44
308
  },
45
309
  async burn(_params) {
46
- throw new Error("dummy.burn: not yet implemented");
310
+ throw new Error("dummy.burn: not implemented. register/mint/transfer are implemented; burn was never " +
311
+ "written and is not in scope for W-D (PLAN.md T-D08).");
312
+ },
313
+ /**
314
+ * Administrative transfer: move a holder's tokens WITHOUT their signature.
315
+ *
316
+ * A different on-chain route from `transfer`, not a variant of it.
317
+ * programmable_logic_base dispatches via `SpendViaThirdParty` to the
318
+ * standalone `third_party` validator, so this transaction never loads the
319
+ * `transfer` reference script at all — upstream split them precisely so the
320
+ * heavy administrative path stops costing every ordinary transfer a
321
+ * reference-script fee.
322
+ *
323
+ * `third_party` requires the registry node's OWN
324
+ * `third_party_transfer_logic_script` withdraw-0 to be present. That field
325
+ * is the issuer's authority, and it is the only thing standing between a
326
+ * token and anyone who wants to move it.
327
+ *
328
+ * ⚠ FOR `dummy` THAT AUTHORITY IS DELIBERATELY PERMISSIVE. Its registry node
329
+ * points `third_party_transfer_logic_script` at dummy's own transfer logic,
330
+ * which accepts redeemer 200 unconditionally — so ANY caller can seize ANY
331
+ * dummy token. That is correct for a substandard whose whole purpose is to
332
+ * be the minimal testable one, and it is why `dummy` must never be
333
+ * presented as a template for a compliance substandard. `freeze-and-seize`
334
+ * is where that field points at a real issuer-admin check.
335
+ */
336
+ async thirdPartyTransfer(params) {
337
+ const { holderAddress, recipientAddress, tokenPolicyId, assetName, quantity, feePayerAddress } = params;
338
+ const unit = tokenPolicyId + assetName;
339
+ const client = ctx.client;
340
+ const plbHash = ctx.standardScripts.programmableLogicBase.hash;
341
+ const holderPlbAddr = baseAddress(networkId, plbHash, holderAddress);
342
+ const recipientPlbAddr = baseAddress(networkId, plbHash, recipientAddress);
343
+ const holderUtxos = await client.getUtxos(EvoAddress.fromBech32(holderPlbAddr));
344
+ const tokenUtxos = holderUtxos.filter((u) => utxoUnitQty(u, unit) > 0n);
345
+ if (tokenUtxos.length === 0) {
346
+ throw new Error(`No token UTxOs found at ${holderPlbAddr} for ${unit}`);
347
+ }
348
+ const { selected, totalTokenAmount } = selectUtxosForAmount(tokenUtxos, unit, quantity);
349
+ const returningAmount = totalTokenAmount - quantity;
350
+ const registrySpendAddr = scriptAddress(networkId, ctx.standardScripts.registrySpend.hash);
351
+ const registryUtxos = await client.getUtxos(EvoAddress.fromBech32(registrySpendAddr));
352
+ const registryUtxo = findRegistryNode(registryUtxos, tokenPolicyId);
353
+ if (!registryUtxo)
354
+ throw new Error(`Registry node not found for policy ${tokenPolicyId}`);
355
+ const protocolParamsUtxo = await findParamsUtxo();
356
+ const refUtxos = [protocolParamsUtxo, registryUtxo];
357
+ const refInputs = refUtxos.map(utxoToTxInput);
358
+ const paramsIdx = referenceInputIndexOf(refInputs, utxoToTxInput(protocolParamsUtxo));
359
+ const registryIdx = referenceInputIndexOf(refInputs, utxoToTxInput(registryUtxo));
360
+ // The complete withdrawal set: the framework's third_party delegate, and
361
+ // the issuer authority the registry node names. Both are script
362
+ // credentials, so ledger order is bytewise between them.
363
+ const thirdPartyKey = {
364
+ hash: ctx.standardScripts.thirdParty.hash,
365
+ isScript: true,
366
+ };
367
+ const issuerAuthorityKey = { hash: transferScript.hash, isScript: true };
368
+ const allWithdrawals = [thirdPartyKey, issuerAuthorityKey];
369
+ const thirdPartyWdrlIdx = withdrawalIndexOf(allWithdrawals, thirdPartyKey);
370
+ // ---- Output layout is the contract, and it is NOT the transfer layout --
371
+ //
372
+ // `third_party` PAIRS each programmable input with an output, in ledger
373
+ // input order, and requires that paired output to preserve the input's
374
+ // ADDRESS, DATUM and REFERENCE SCRIPT, with lovelace only ratcheting up.
375
+ // The seized amount is the DELTA between the pair.
376
+ //
377
+ // So the destination — where the seized tokens actually go — cannot be one
378
+ // of those paired outputs. It must be among the LEADING outputs that
379
+ // `outputs_start_idx` tells the validator to skip; their tokens are
380
+ // accumulated and counted in the conservation check, but they are exempt
381
+ // from the pairing rule.
382
+ //
383
+ // outputs[0] destination (skipped, tokens still counted)
384
+ // outputs[1..n] one continuation per spent input, IN LEDGER ORDER
385
+ //
386
+ // Getting this backwards — destination last, continuations first — encodes
387
+ // and submits happily and fails at evaluation with an empty trace list.
388
+ const OUTPUTS_START_IDX = 1;
389
+ const spendRdmr = baseSpendRedeemer("THIRD_PARTY", paramsIdx, thirdPartyWdrlIdx);
390
+ let tx = client.newTx();
391
+ tx = tx.collectFrom({ inputs: selected, redeemer: spendRdmr });
392
+ // Destination first.
393
+ tx = tx.payToAddress({
394
+ address: EvoAddress.fromBech32(recipientPlbAddr),
395
+ assets: outputAssets(1300000n, new Map([[unit, quantity]])),
396
+ datum: new InlineDatum.InlineDatum({ data: voidData() }),
397
+ });
398
+ // Then one continuation per input, in LEDGER ORDER — the validator walks
399
+ // inputs and outputs in lockstep, and the ledger sorts inputs by
400
+ // (tx id, index) regardless of the order they were added here.
401
+ const ordered = [...selected].sort((a, b) => compareTxInputs(utxoToTxInput(a), utxoToTxInput(b)));
402
+ let stillToSeize = quantity;
403
+ for (const input of ordered) {
404
+ const held = utxoUnitQty(input, unit);
405
+ const taken = held < stillToSeize ? held : stillToSeize;
406
+ stillToSeize -= taken;
407
+ const remaining = held - taken;
408
+ const inputDatum = getInlineDatum(input);
409
+ const tokens = new Map();
410
+ if (remaining > 0n)
411
+ tokens.set(unit, remaining);
412
+ tx = tx.payToAddress({
413
+ // SAME address as the input — this is a continuation, not a payment.
414
+ address: input.address,
415
+ // Lovelace may only ratchet UP; carrying the input's own is exact and
416
+ // survives a min-UTxO parameter rise that equality would not.
417
+ assets: outputAssets(EvoAssets.lovelaceOf(input.assets), tokens),
418
+ datum: new InlineDatum.InlineDatum({ data: inputDatum ?? voidData() }),
419
+ });
420
+ }
421
+ if (stillToSeize > 0n) {
422
+ throw new Error(`Selected UTxOs hold ${quantity - stillToSeize} of ${quantity} ${unit} — selection is short`);
423
+ }
424
+ tx = tx.withdraw({
425
+ stakeCredential: Credential.makeScriptHash(hexToBytes(ctx.standardScripts.thirdParty.hash)),
426
+ amount: 0n,
427
+ redeemer: thirdPartyRedeemer(paramsIdx, registryIdx, OUTPUTS_START_IDX),
428
+ });
429
+ tx = tx.withdraw({
430
+ stakeCredential: Credential.makeScriptHash(hexToBytes(transferScript.hash)),
431
+ amount: 0n,
432
+ redeemer: Data.int(200n),
433
+ });
434
+ tx = tx.readFrom({ referenceInputs: refUtxos });
435
+ tx = tx.attachScript({ script: buildEvoScript(ctx.standardScripts.thirdParty.compiledCode) });
436
+ tx = tx.attachScript({ script: buildEvoScript(transferScript.compiledCode) });
437
+ tx = tx.attachScript({
438
+ script: buildEvoScript(ctx.standardScripts.programmableLogicBase.compiledCode),
439
+ });
440
+ // NO holder signature. That is the entire point of this operation, and
441
+ // adding one "to be safe" would quietly turn it back into a transfer.
442
+ return finish(tx, feePayerAddress, { tokenPolicyId, unit });
47
443
  },
48
444
  async transfer(params) {
49
445
  const { senderAddress, recipientAddress, tokenPolicyId, assetName, quantity } = params;
@@ -69,21 +465,36 @@ export function dummySubstandard(config) {
69
465
  if (!registryUtxo) {
70
466
  throw new Error(`Registry node not found for policy ${tokenPolicyId}`);
71
467
  }
72
- // 5. Get protocol params UTxO
73
- const ppUnit = ctx.deployment.protocolParams.policyId + stringToHex("ProtocolParams");
74
- const ppAddr = EvoAddress.fromBech32(scriptAddress(networkId, ctx.deployment.protocolParams.alwaysFailScriptHash));
75
- const ppUtxos = await client.getUtxosWithUnit(ppAddr, ppUnit);
76
- if (ppUtxos.length === 0)
77
- throw new Error(`Protocol params UTxO not found (unit: ${ppUnit})`);
78
- const protocolParamsUtxo = ppUtxos[0];
79
- // 6. Sort reference inputs
80
- const refInputs = [utxoToTxInput(protocolParamsUtxo), utxoToTxInput(registryUtxo)];
81
- const sortedRefInputs = sortTxInputs(refInputs);
82
- const registryIdx = findRefInputIndex(sortedRefInputs, utxoToTxInput(registryUtxo));
83
- // 7. Build redeemers
84
- const plgRedeemer = transferActRedeemer([{ type: "exists", nodeIdx: registryIdx }]);
468
+ // 5. Get the coordination (protocol params) UTxO
469
+ const protocolParamsUtxo = await findParamsUtxo();
470
+ // 6. Reference-input indices, in the ledger's own order.
471
+ //
472
+ // Both indices below are POSITIONS the validator will resolve. Neither has
473
+ // a type that can be wrong, and neither fails until the chain runs the
474
+ // script see src/core/ledger-order.ts.
475
+ const refUtxos = [protocolParamsUtxo, registryUtxo];
476
+ const refInputs = refUtxos.map(utxoToTxInput);
477
+ const paramsIdx = referenceInputIndexOf(refInputs, utxoToTxInput(protocolParamsUtxo));
478
+ const registryIdx = referenceInputIndexOf(refInputs, utxoToTxInput(registryUtxo));
479
+ // 7. Withdrawal ordering. The set must be COMPLETE — every withdrawal the
480
+ // final transaction carries occupies a slot, and script credentials sort
481
+ // before key credentials regardless of hash.
482
+ const coreTransferKey = {
483
+ hash: ctx.standardScripts.transfer.hash,
484
+ isScript: true,
485
+ };
486
+ const allWithdrawals = [
487
+ { hash: transferScript.hash, isScript: true },
488
+ coreTransferKey,
489
+ ];
490
+ const transferWdrlIdx = withdrawalIndexOf(allWithdrawals, coreTransferKey);
491
+ const coreTransferRedeemer = transferRedeemer(paramsIdx, [
492
+ { type: "exists", nodeIdx: registryIdx },
493
+ ]);
85
494
  const dummyTransferRedeemer = Data.int(200n);
86
- const spendRdmr = voidData();
495
+ // programmable_logic_base no longer takes an untyped redeemer: it dispatches
496
+ // on the constructor, and witnesses WHERE its delegate's withdrawal sits.
497
+ const spendRdmr = baseSpendRedeemer("TRANSFER", paramsIdx, transferWdrlIdx);
87
498
  const tokenDatum = voidData();
88
499
  // 8. Get sender's staking credential
89
500
  const senderStakingHash = stakingCredentialHash(senderAddress);
@@ -99,9 +510,9 @@ export function dummySubstandard(config) {
99
510
  redeemer: dummyTransferRedeemer,
100
511
  });
101
512
  tx = tx.withdraw({
102
- stakeCredential: Credential.makeScriptHash(new Uint8Array(Buffer.from(ctx.standardScripts.programmableLogicGlobal.hash, "hex"))),
513
+ stakeCredential: Credential.makeScriptHash(new Uint8Array(Buffer.from(ctx.standardScripts.transfer.hash, "hex"))),
103
514
  amount: 0n,
104
- redeemer: plgRedeemer,
515
+ redeemer: coreTransferRedeemer,
105
516
  });
106
517
  if (returningAmount > 0n) {
107
518
  tx = tx.payToAddress({
@@ -116,7 +527,7 @@ export function dummySubstandard(config) {
116
527
  datum: new InlineDatum.InlineDatum({ data: tokenDatum }),
117
528
  });
118
529
  tx = tx.readFrom({ referenceInputs: [protocolParamsUtxo, registryUtxo] });
119
- tx = tx.attachScript({ script: buildEvoScript(ctx.standardScripts.programmableLogicGlobal.compiledCode) });
530
+ tx = tx.attachScript({ script: buildEvoScript(ctx.standardScripts.transfer.compiledCode) });
120
531
  tx = tx.attachScript({ script: buildEvoScript(transferScript.compiledCode) });
121
532
  tx = tx.attachScript({ script: buildEvoScript(ctx.standardScripts.programmableLogicBase.compiledCode) });
122
533
  tx = tx.addSigner({ keyHash: KeyHash.fromHex(senderStakingHash) });
@@ -131,7 +542,13 @@ export function dummySubstandard(config) {
131
542
  if (typeof result.chainResult === "function") {
132
543
  txHash = result.chainResult().txHash;
133
544
  }
134
- return { cbor, txHash };
545
+ // `_signBuilder` is internal but load-bearing: it is how seed-phrase
546
+ // callers sign and submit, and register/mint already return it. Omitting
547
+ // it here made transfer the only operation whose result could not be
548
+ // submitted — surfacing as "Cannot read properties of undefined
549
+ // (reading 'signAndSubmit')" at the CALL SITE, which reads as a caller
550
+ // mistake rather than a missing field on the value it was handed.
551
+ return { cbor, txHash, _signBuilder: result };
135
552
  },
136
553
  };
137
554
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/substandards/dummy/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/substandards/dummy/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/substandards/freeze-and-seize/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,OAAO,KAAK,EAAE,eAAe,EAA6C,MAAM,gBAAgB,CAAC;AACjG,OAAO,KAAK,EACV,iBAAiB,EAYlB,MAAM,iBAAiB,CAAC;AA8CzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAiJtD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,mBAAmB,CAAC;CACjC,GAAG,iBAAiB,CAkxBpB;AAGD,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/substandards/freeze-and-seize/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAaH,OAAO,KAAK,EAAE,eAAe,EAA6C,MAAM,gBAAgB,CAAC;AACjG,OAAO,KAAK,EACV,iBAAiB,EAYlB,MAAM,iBAAiB,CAAC;AAqDzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAuMtD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,SAAS,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,mBAAmB,CAAC;CACjC,GAAG,iBAAiB,CAu/BpB;AAGD,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}