@easy1staking/cip113-sdk-ts 0.10.0 → 0.11.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 +55 -0
- package/dist/index.d.ts +15 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +81 -1
- package/dist/index.js.map +1 -1
- package/dist/standard/bootstrap.d.ts +552 -0
- package/dist/standard/bootstrap.d.ts.map +1 -0
- package/dist/standard/bootstrap.js +1077 -0
- package/dist/standard/bootstrap.js.map +1 -0
- package/dist/substandards/address-guard.d.ts +60 -0
- package/dist/substandards/address-guard.d.ts.map +1 -0
- package/dist/substandards/address-guard.js +159 -0
- package/dist/substandards/address-guard.js.map +1 -0
- package/dist/substandards/dummy/index.d.ts.map +1 -1
- package/dist/substandards/dummy/index.js +32 -5
- 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 +45 -9
- package/dist/substandards/freeze-and-seize/index.js.map +1 -1
- package/dist/substandards/interface.d.ts +20 -2
- package/dist/substandards/interface.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -58,6 +58,61 @@ await client.awaitTx(txHash);
|
|
|
58
58
|
| `@easy1staking/cip113-sdk-ts/freeze-and-seize` | Freeze-and-Seize substandard |
|
|
59
59
|
| `@easy1staking/cip113-sdk-ts/dummy` | Dummy substandard |
|
|
60
60
|
|
|
61
|
+
## Migrating to 0.11.0 (a wrong network label, and the bootstrap becomes public API)
|
|
62
|
+
|
|
63
|
+
Two changes. The first is breaking for plugin authors and silent in one shape the compiler will
|
|
64
|
+
not catch. The second is purely additive.
|
|
65
|
+
|
|
66
|
+
### `SubstandardContext.network` was wrong, and its type hid it
|
|
67
|
+
|
|
68
|
+
It was declared `string` and computed from `chain.id` — which is the **address** network id, `1`
|
|
69
|
+
for mainnet and `0` for *every* testnet. **A preview client was therefore labelled `"preprod"`,
|
|
70
|
+
and so was a devnet.** It is now `network?: Network`, derived from the chain's **network magic**,
|
|
71
|
+
and a chain that is none of the three public networks yields **`undefined`** rather than a wrong
|
|
72
|
+
name.
|
|
73
|
+
|
|
74
|
+
```diff
|
|
75
|
+
- network: string // "preprod" on preview, and on a devnet
|
|
76
|
+
+ network?: Network // "preview" on preview; undefined on a devnet
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
⛔ **The shape the compiler will NOT catch.** At 0.10.0 the field was declared `string` while the
|
|
80
|
+
package exported a `Network` union, so a plugin that wanted the union **had no choice but to
|
|
81
|
+
cast**:
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
switch (ctx.network as Network) { case "mainnet": … case "preprod": … case "preview": … }
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**That cast still compiles and now yields `undefined` at runtime** — the exhaustive switch falls
|
|
88
|
+
off the end and returns `undefined`, with no diagnostic anywhere. **Remove the cast.** Untyped
|
|
89
|
+
JavaScript has the same exposure: `` `https://${ctx.network}.…` `` becomes `https://undefined.…`,
|
|
90
|
+
`ctx.network.toUpperCase()` throws, and `JSON.stringify(ctx)` drops the key on a devnet.
|
|
91
|
+
|
|
92
|
+
⚠ **The label is derived from the magic alone**, so a private network reusing a public magic is
|
|
93
|
+
labelled as that network — a mainnet-fork devnet reports `"mainnet"`. If you gate a destructive
|
|
94
|
+
path on `network !== "mainnet"`, that gate does not distinguish a fork from the real thing.
|
|
95
|
+
`networkFromChain(chain)` is exported if you want the same mapping yourself, and
|
|
96
|
+
`ctx.client.chain.networkMagic` / `.name` are on the same context object when you need more.
|
|
97
|
+
|
|
98
|
+
### The protocol bootstrap is now exported
|
|
99
|
+
|
|
100
|
+
`planBootstrap()`, five step builders and `assembleDeploymentParams()` build the transactions that
|
|
101
|
+
stand up a protocol instance. **The SDK returns unsigned transactions and does not sign, submit or
|
|
102
|
+
await** — orchestration, key handling and confirmation stay with the caller, which is also what
|
|
103
|
+
lets a caller keep its own UTxO reservation and resume at a step rather than restart.
|
|
104
|
+
|
|
105
|
+
The sequence is **stepwise, not a batch**: the one-shot minting policies are parameterised by
|
|
106
|
+
output references of an earlier transaction, so step N+1 cannot be built until step N has been
|
|
107
|
+
submitted and observed.
|
|
108
|
+
|
|
109
|
+
⚠ **Values a caller must decide are required inputs, not defaults** — `maxInlineDatumBytes` (a
|
|
110
|
+
security parameter), the one-shot nonces, the seed and reference-script lovelace, and
|
|
111
|
+
`availableUtxos`. There are no devnet defaults in the published path: no mnemonic, no endpoint, no
|
|
112
|
+
fixture values. `availableUtxos` is required on every step precisely so a caller can reserve its
|
|
113
|
+
seed UTxOs from coin selection — a wallet-wide selection can otherwise spend a seed a later step
|
|
114
|
+
names, or spend live reference scripts.
|
|
115
|
+
|
|
61
116
|
## Migrating to 0.10.0 (a required field on `DeploymentParams`)
|
|
62
117
|
|
|
63
118
|
**0.10.0 adds one REQUIRED field and breaks every consumer that builds a `DeploymentParams`
|
package/dist/index.d.ts
CHANGED
|
@@ -21,9 +21,21 @@
|
|
|
21
21
|
* const tx = await protocol.register('freeze-and-seize', { ... });
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
|
-
import type { DeploymentParams, PlutusBlueprint } from "./types.js";
|
|
24
|
+
import type { DeploymentParams, Network, PlutusBlueprint } from "./types.js";
|
|
25
25
|
import type { EvoClient, SubstandardPlugin, RegisterParams, MintParams, BurnParams, TransferParams, ThirdPartyTransferParams, FreezeParams, UnfreezeParams, SeizeParams, InitComplianceParams, UnsignedTx } from "./substandards/interface.js";
|
|
26
26
|
import { type ResolvedStandardScripts } from "./standard/scripts.js";
|
|
27
|
+
/**
|
|
28
|
+
* Identify a chain descriptor's public Cardano network, or `undefined` when it
|
|
29
|
+
* is none of the three (a devnet, a private network, any custom `Chain`).
|
|
30
|
+
*
|
|
31
|
+
* Exported because a plugin that receives `undefined` from
|
|
32
|
+
* `SubstandardContext.network` may want the same mapping for a chain of its
|
|
33
|
+
* own, and because a consumer should be able to read the rule rather than
|
|
34
|
+
* re-derive it from `chain.id` — which is the derivation that was wrong.
|
|
35
|
+
*/
|
|
36
|
+
export declare function networkFromChain(chain: {
|
|
37
|
+
readonly networkMagic: number;
|
|
38
|
+
}): Network | undefined;
|
|
27
39
|
export interface CIP113Config {
|
|
28
40
|
/** Evolution SDK client (ReadOnlyClient or SigningClient) */
|
|
29
41
|
client: EvoClient;
|
|
@@ -102,6 +114,8 @@ export { mintAssetsFromMap, outputAssets } from "./core/evo-utils.js";
|
|
|
102
114
|
export { registryNodeDatum, decodeRegistryNode, registryInitRedeemer, registryInsertRedeemer, mintingProofRefInput, mintingProofOutputIndex, protocolParamsDatum, decodeProtocolParams, issuanceRedeemer, issuanceLogicRedeemer, protocolParamsRedeemer, ProtocolParamsAct, multisigScriptDatum, decodeMultisigScript, MULTISIG_MAX_SIZE, } from "./core/evo-utils.js";
|
|
103
115
|
export type { RegistryNodeData, ProtocolParamsData, Cip113Credential, MultisigScriptTree, } from "./core/evo-utils.js";
|
|
104
116
|
export { assertDeploymentScripts, DeploymentMismatchError, createStandardScripts, UNFRACKING_DISABLED, type ScriptHashCheck, type StandardScripts, } from "./standard/scripts.js";
|
|
117
|
+
export { planBootstrap, buildSeedTx, selectBootstrapSeeds, buildMultisigGenesisTx, assertMultisigConfigUtxo, buildProtocolGenesisTx, buildReferenceScriptsTx, buildStakeRegistrationTx, assembleDeploymentParams, BOOTSTRAP_SEED_COUNT, BOOTSTRAP_STEPS, ISSUANCE_SPLICE_MARKER, REFERENCE_SCRIPT_ORDER, STAKE_REGISTRATION_ORDER, } from "./standard/bootstrap.js";
|
|
118
|
+
export type { BootstrapConfig, BootstrapPlan, BootstrapScripts, BootstrapSeeds, BootstrapSeedUtxos, BootstrapStepId, BootstrapBuildContext, BootstrapObservations, UnfrackingChoice, ReferenceScriptName, StakeCredentialName, SeedTxParams, MultisigGenesisTxParams, ProtocolGenesisTxParams, ReferenceScriptsTxParams, StakeRegistrationTxParams, } from "./standard/bootstrap.js";
|
|
105
119
|
export { CIP171_METADATA_LABEL, CIP171_MAX_CHUNK_BYTES, CompilerType, buildCip171PlutusData, buildCip171Metadatum, chunkBytes, decodeCip171Metadatum, decodeCip171PlutusData, cip171Param, } from "./core/cip171.js";
|
|
106
120
|
export { provenanceFromPin, buildCip171RecordFromPin, } from "./core/provenance.js";
|
|
107
121
|
export type { UpstreamPin, ParameterizedScript } from "./core/provenance.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAY,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,67 @@
|
|
|
24
24
|
import { validateStandardBlueprint } from "./standard/blueprint.js";
|
|
25
25
|
import { buildDeploymentScripts } from "./standard/scripts.js";
|
|
26
26
|
// ---------------------------------------------------------------------------
|
|
27
|
+
// Network identification
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
/**
|
|
30
|
+
* Which public Cardano network a chain descriptor refers to, keyed by network
|
|
31
|
+
* magic — or `undefined` when it refers to none of them.
|
|
32
|
+
*
|
|
33
|
+
* ⛔ THE DEFECT THIS EXISTS FOR. `SubstandardContext.network` was computed as
|
|
34
|
+
* `chain.id === 1 ? "mainnet" : "preprod"`. `Chain.id` is the NETWORK ID that
|
|
35
|
+
* goes into an address: **1 for mainnet and 0 for every testnet there has ever
|
|
36
|
+
* been**. It cannot separate preview from preprod, so a client pointed at
|
|
37
|
+
* preview was handed the label `"preprod"` — silently, forever, with no reading
|
|
38
|
+
* anywhere that disagreed. Meanwhile the field was typed `string` rather than
|
|
39
|
+
* `Network`, so `"preview"` was a value the union declared and the code could
|
|
40
|
+
* not produce, and the two halves never had to agree.
|
|
41
|
+
*
|
|
42
|
+
* MEASURED, and the reason the fix is `networkMagic`:
|
|
43
|
+
*
|
|
44
|
+
* ```
|
|
45
|
+
* preview -> { id: 0, networkMagic: 2, epochLength: 86400 }
|
|
46
|
+
* preprod -> { id: 0, networkMagic: 1, epochLength: 432000 }
|
|
47
|
+
* mainnet -> { id: 1, networkMagic: 764824073, epochLength: 432000 }
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* ⚠ AND A DEVNET IS A FOURTH THING. Evolution's own `Chain` doc invites a
|
|
51
|
+
* custom descriptor "for private networks and devnets", and this repo's devnet
|
|
52
|
+
* harness builds exactly that — a chain whose magic comes from the local
|
|
53
|
+
* cluster's Shelley genesis. It is not mainnet, not preprod and not preview,
|
|
54
|
+
* and `magic === 1 ? "preprod" : "preview"` would only relabel the same lie.
|
|
55
|
+
*
|
|
56
|
+
* ⇒ SO THE ANSWER FOR A NON-PUBLIC CHAIN IS `undefined`, deliberately, and the
|
|
57
|
+
* two alternatives were rejected for reasons worth recording:
|
|
58
|
+
*
|
|
59
|
+
* - REFUSING (throwing at `init`) would break a configuration this SDK
|
|
60
|
+
* supports and this repo's own devnet suite depends on, in order to defend
|
|
61
|
+
* a field nothing inside the SDK reads.
|
|
62
|
+
* - WIDENING `Network` with a `"custom"` / `"devnet"` member would invent a
|
|
63
|
+
* name for a chain that has none, hand it to a consumer as if it were
|
|
64
|
+
* knowledge, and break every exhaustive `switch` over a published union.
|
|
65
|
+
*
|
|
66
|
+
* `undefined` is the only honest value, and making the field optional forces a
|
|
67
|
+
* plugin author to meet that fact at COMPILE time rather than act on a wrong
|
|
68
|
+
* label at submission time.
|
|
69
|
+
*/
|
|
70
|
+
const NETWORK_BY_MAGIC = new Map([
|
|
71
|
+
[764824073, "mainnet"],
|
|
72
|
+
[1, "preprod"],
|
|
73
|
+
[2, "preview"],
|
|
74
|
+
]);
|
|
75
|
+
/**
|
|
76
|
+
* Identify a chain descriptor's public Cardano network, or `undefined` when it
|
|
77
|
+
* is none of the three (a devnet, a private network, any custom `Chain`).
|
|
78
|
+
*
|
|
79
|
+
* Exported because a plugin that receives `undefined` from
|
|
80
|
+
* `SubstandardContext.network` may want the same mapping for a chain of its
|
|
81
|
+
* own, and because a consumer should be able to read the rule rather than
|
|
82
|
+
* re-derive it from `chain.id` — which is the derivation that was wrong.
|
|
83
|
+
*/
|
|
84
|
+
export function networkFromChain(chain) {
|
|
85
|
+
return NETWORK_BY_MAGIC.get(chain.networkMagic);
|
|
86
|
+
}
|
|
87
|
+
// ---------------------------------------------------------------------------
|
|
27
88
|
// Init
|
|
28
89
|
// ---------------------------------------------------------------------------
|
|
29
90
|
export const CIP113 = {
|
|
@@ -46,7 +107,10 @@ export const CIP113 = {
|
|
|
46
107
|
standardScripts: scripts,
|
|
47
108
|
deployment: config.standard.deployment,
|
|
48
109
|
evaluator: config.evaluator,
|
|
49
|
-
network
|
|
110
|
+
// Derived from the network MAGIC, never from `chain.id` — see
|
|
111
|
+
// networkFromChain. `undefined` here means "this client is pointed at no
|
|
112
|
+
// public Cardano network", which is the true answer for a devnet.
|
|
113
|
+
network: networkFromChain(config.client.chain),
|
|
50
114
|
checkStakeRegistration: config.checkStakeRegistration,
|
|
51
115
|
};
|
|
52
116
|
// Initialize and register provided substandards
|
|
@@ -193,6 +257,22 @@ export { assertDeploymentScripts, DeploymentMismatchError, createStandardScripts
|
|
|
193
257
|
// rather than keep a copy, because a second copy is a second place to
|
|
194
258
|
// disagree about a value that determines a script hash.
|
|
195
259
|
UNFRACKING_DISABLED, } from "./standard/scripts.js";
|
|
260
|
+
// ---------------------------------------------------------------------------
|
|
261
|
+
// Protocol bootstrap — the transactions that stand up an instance (T-D51-1)
|
|
262
|
+
//
|
|
263
|
+
// ⚑ EXPORTED BECAUSE THE ALTERNATIVE WAS A SECOND IMPLEMENTATION. The platform
|
|
264
|
+
// could not import `test/harness/bootstrap.ts` (`files` ships only `dist` and
|
|
265
|
+
// `blueprints`), so it maintained its own port of a protocol-critical sequence —
|
|
266
|
+
// and that port had already diverged CORRECTLY. See CLAUDE.md, "Protocol
|
|
267
|
+
// bootstrap — AMENDED 2026-09-17", and `design/bootstrap-export.md`.
|
|
268
|
+
//
|
|
269
|
+
// ⛔ Orchestration stays with the caller: these builders return unsigned
|
|
270
|
+
// transactions and do not sign, submit, await, fund or retry.
|
|
271
|
+
export { planBootstrap, buildSeedTx, selectBootstrapSeeds, buildMultisigGenesisTx, assertMultisigConfigUtxo, buildProtocolGenesisTx, buildReferenceScriptsTx, buildStakeRegistrationTx, assembleDeploymentParams, BOOTSTRAP_SEED_COUNT, BOOTSTRAP_STEPS,
|
|
272
|
+
// ⛔ A CUTTING GUIDE, NOT AN IDENTIFIER, AND NEVER DEPLOYED — see its
|
|
273
|
+
// docstring. Exported so the occurrence guard that licenses it can be
|
|
274
|
+
// exercised; do not pass it where a minting-logic hash is expected.
|
|
275
|
+
ISSUANCE_SPLICE_MARKER, REFERENCE_SCRIPT_ORDER, STAKE_REGISTRATION_ORDER, } from "./standard/bootstrap.js";
|
|
196
276
|
export { CIP171_METADATA_LABEL, CIP171_MAX_CHUNK_BYTES, CompilerType, buildCip171PlutusData, buildCip171Metadatum, chunkBytes, decodeCip171Metadatum, decodeCip171PlutusData,
|
|
197
277
|
// Serialises one PlutusData parameter to the bytestring-wrapped hex the
|
|
198
278
|
// format requires. Cip171ScriptEntry's own docs direct callers here, so it
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAiBH,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAgC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|