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