@kaspacom/kcc20-tx-builder 0.1.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/LICENSE +201 -0
- package/README.md +104 -0
- package/artifacts/KCC20.placeholder.json +77479 -0
- package/artifacts/KCC20FeeTicket.placeholder.json +16846 -0
- package/artifacts/KCC20Orderbook.placeholder.json +78001 -0
- package/artifacts/KCC20Vesting.placeholder.json +4298 -0
- package/artifacts/KCC20Wrapper.placeholder.json +12246 -0
- package/dist/abi.d.ts +44 -0
- package/dist/abi.d.ts.map +1 -0
- package/dist/abi.js +336 -0
- package/dist/abi.js.map +1 -0
- package/dist/action-source-resolver.d.ts +80 -0
- package/dist/action-source-resolver.d.ts.map +1 -0
- package/dist/action-source-resolver.js +412 -0
- package/dist/action-source-resolver.js.map +1 -0
- package/dist/artifacts.d.ts +14 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/artifacts.js +44 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/builder.d.ts +12 -0
- package/dist/builder.d.ts.map +1 -0
- package/dist/builder.js +18 -0
- package/dist/builder.js.map +1 -0
- package/dist/cjs/abi.d.ts +43 -0
- package/dist/cjs/abi.js +361 -0
- package/dist/cjs/abi.js.map +1 -0
- package/dist/cjs/action-source-resolver.d.ts +79 -0
- package/dist/cjs/action-source-resolver.js +435 -0
- package/dist/cjs/action-source-resolver.js.map +1 -0
- package/dist/cjs/artifacts.d.ts +13 -0
- package/dist/cjs/artifacts.js +51 -0
- package/dist/cjs/artifacts.js.map +1 -0
- package/dist/cjs/builder.d.ts +11 -0
- package/dist/cjs/builder.js +22 -0
- package/dist/cjs/builder.js.map +1 -0
- package/dist/cjs/deploy-operation.d.ts +103 -0
- package/dist/cjs/deploy-operation.js +335 -0
- package/dist/cjs/deploy-operation.js.map +1 -0
- package/dist/cjs/encoding.d.ts +5 -0
- package/dist/cjs/encoding.js +51 -0
- package/dist/cjs/encoding.js.map +1 -0
- package/dist/cjs/engine.d.ts +40 -0
- package/dist/cjs/engine.js +8972 -0
- package/dist/cjs/engine.js.map +1 -0
- package/dist/cjs/errors.d.ts +7 -0
- package/dist/cjs/errors.js +23 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/fee-ticket-operation.d.ts +204 -0
- package/dist/cjs/fee-ticket-operation.js +327 -0
- package/dist/cjs/fee-ticket-operation.js.map +1 -0
- package/dist/cjs/index.d.ts +27 -0
- package/dist/cjs/index.js +45 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/ladder-limit-orders.d.ts +41 -0
- package/dist/cjs/ladder-limit-orders.js +129 -0
- package/dist/cjs/ladder-limit-orders.js.map +1 -0
- package/dist/cjs/mint-availability-operation.d.ts +56 -0
- package/dist/cjs/mint-availability-operation.js +95 -0
- package/dist/cjs/mint-availability-operation.js.map +1 -0
- package/dist/cjs/models.d.ts +90 -0
- package/dist/cjs/models.js +6 -0
- package/dist/cjs/models.js.map +1 -0
- package/dist/cjs/operations.d.ts +6 -0
- package/dist/cjs/operations.js +41 -0
- package/dist/cjs/operations.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/paid-mint-amount.d.ts +69 -0
- package/dist/cjs/paid-mint-amount.js +281 -0
- package/dist/cjs/paid-mint-amount.js.map +1 -0
- package/dist/cjs/protocol.d.ts +21 -0
- package/dist/cjs/protocol.js +25 -0
- package/dist/cjs/protocol.js.map +1 -0
- package/dist/cjs/runtime.d.ts +27 -0
- package/dist/cjs/runtime.js +3 -0
- package/dist/cjs/runtime.js.map +1 -0
- package/dist/cjs/sale-common.d.ts +287 -0
- package/dist/cjs/sale-common.js +928 -0
- package/dist/cjs/sale-common.js.map +1 -0
- package/dist/cjs/source-provider.d.ts +11 -0
- package/dist/cjs/source-provider.js +3 -0
- package/dist/cjs/source-provider.js.map +1 -0
- package/dist/cjs/source-validation.d.ts +9 -0
- package/dist/cjs/source-validation.js +33 -0
- package/dist/cjs/source-validation.js.map +1 -0
- package/dist/cjs/token-amount.d.ts +31 -0
- package/dist/cjs/token-amount.js +252 -0
- package/dist/cjs/token-amount.js.map +1 -0
- package/dist/cjs/token-operation.d.ts +135 -0
- package/dist/cjs/token-operation.js +236 -0
- package/dist/cjs/token-operation.js.map +1 -0
- package/dist/cjs/trade-fee.d.ts +60 -0
- package/dist/cjs/trade-fee.js +185 -0
- package/dist/cjs/trade-fee.js.map +1 -0
- package/dist/cjs/trading-operation.d.ts +212 -0
- package/dist/cjs/trading-operation.js +587 -0
- package/dist/cjs/trading-operation.js.map +1 -0
- package/dist/cjs/verify-operation.d.ts +79 -0
- package/dist/cjs/verify-operation.js +246 -0
- package/dist/cjs/verify-operation.js.map +1 -0
- package/dist/cjs/wallet-operation.d.ts +52 -0
- package/dist/cjs/wallet-operation.js +58 -0
- package/dist/cjs/wallet-operation.js.map +1 -0
- package/dist/cjs/wasm-provider.d.ts +15 -0
- package/dist/cjs/wasm-provider.js +20 -0
- package/dist/cjs/wasm-provider.js.map +1 -0
- package/dist/cjs/wrapper-operation.d.ts +196 -0
- package/dist/cjs/wrapper-operation.js +317 -0
- package/dist/cjs/wrapper-operation.js.map +1 -0
- package/dist/deploy-operation.d.ts +104 -0
- package/dist/deploy-operation.d.ts.map +1 -0
- package/dist/deploy-operation.js +327 -0
- package/dist/deploy-operation.js.map +1 -0
- package/dist/encoding.d.ts +6 -0
- package/dist/encoding.d.ts.map +1 -0
- package/dist/encoding.js +44 -0
- package/dist/encoding.js.map +1 -0
- package/dist/engine.d.ts +41 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +8969 -0
- package/dist/engine.js.map +1 -0
- package/dist/errors.d.ts +8 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +18 -0
- package/dist/errors.js.map +1 -0
- package/dist/fee-ticket-operation.d.ts +205 -0
- package/dist/fee-ticket-operation.d.ts.map +1 -0
- package/dist/fee-ticket-operation.js +320 -0
- package/dist/fee-ticket-operation.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/ladder-limit-orders.d.ts +42 -0
- package/dist/ladder-limit-orders.d.ts.map +1 -0
- package/dist/ladder-limit-orders.js +121 -0
- package/dist/ladder-limit-orders.js.map +1 -0
- package/dist/mint-availability-operation.d.ts +57 -0
- package/dist/mint-availability-operation.d.ts.map +1 -0
- package/dist/mint-availability-operation.js +91 -0
- package/dist/mint-availability-operation.js.map +1 -0
- package/dist/models.d.ts +91 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +3 -0
- package/dist/models.js.map +1 -0
- package/dist/operations.d.ts +7 -0
- package/dist/operations.d.ts.map +1 -0
- package/dist/operations.js +36 -0
- package/dist/operations.js.map +1 -0
- package/dist/paid-mint-amount.d.ts +70 -0
- package/dist/paid-mint-amount.d.ts.map +1 -0
- package/dist/paid-mint-amount.js +268 -0
- package/dist/paid-mint-amount.js.map +1 -0
- package/dist/protocol.d.ts +22 -0
- package/dist/protocol.d.ts.map +1 -0
- package/dist/protocol.js +22 -0
- package/dist/protocol.js.map +1 -0
- package/dist/runtime.d.ts +28 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +2 -0
- package/dist/runtime.js.map +1 -0
- package/dist/sale-common.d.ts +288 -0
- package/dist/sale-common.d.ts.map +1 -0
- package/dist/sale-common.js +844 -0
- package/dist/sale-common.js.map +1 -0
- package/dist/source-provider.d.ts +12 -0
- package/dist/source-provider.d.ts.map +1 -0
- package/dist/source-provider.js +2 -0
- package/dist/source-provider.js.map +1 -0
- package/dist/source-validation.d.ts +10 -0
- package/dist/source-validation.d.ts.map +1 -0
- package/dist/source-validation.js +28 -0
- package/dist/source-validation.js.map +1 -0
- package/dist/token-amount.d.ts +32 -0
- package/dist/token-amount.d.ts.map +1 -0
- package/dist/token-amount.js +237 -0
- package/dist/token-amount.js.map +1 -0
- package/dist/token-operation.d.ts +136 -0
- package/dist/token-operation.d.ts.map +1 -0
- package/dist/token-operation.js +231 -0
- package/dist/token-operation.js.map +1 -0
- package/dist/trade-fee.d.ts +61 -0
- package/dist/trade-fee.d.ts.map +1 -0
- package/dist/trade-fee.js +173 -0
- package/dist/trade-fee.js.map +1 -0
- package/dist/trading-operation.d.ts +213 -0
- package/dist/trading-operation.d.ts.map +1 -0
- package/dist/trading-operation.js +580 -0
- package/dist/trading-operation.js.map +1 -0
- package/dist/verify-operation.d.ts +80 -0
- package/dist/verify-operation.d.ts.map +1 -0
- package/dist/verify-operation.js +243 -0
- package/dist/verify-operation.js.map +1 -0
- package/dist/wallet-operation.d.ts +53 -0
- package/dist/wallet-operation.d.ts.map +1 -0
- package/dist/wallet-operation.js +55 -0
- package/dist/wallet-operation.js.map +1 -0
- package/dist/wasm-provider.d.ts +16 -0
- package/dist/wasm-provider.d.ts.map +1 -0
- package/dist/wasm-provider.js +17 -0
- package/dist/wasm-provider.js.map +1 -0
- package/dist/wrapper-operation.d.ts +197 -0
- package/dist/wrapper-operation.d.ts.map +1 -0
- package/dist/wrapper-operation.js +311 -0
- package/dist/wrapper-operation.js.map +1 -0
- package/index.d.ts +1 -0
- package/package.json +84 -0
- package/src/abi.ts +493 -0
- package/src/action-source-resolver.ts +660 -0
- package/src/artifacts.ts +87 -0
- package/src/builder.ts +37 -0
- package/src/deploy-operation.ts +458 -0
- package/src/encoding.ts +58 -0
- package/src/engine.ts +13226 -0
- package/src/errors.ts +35 -0
- package/src/fee-ticket-operation.ts +518 -0
- package/src/index.ts +27 -0
- package/src/ladder-limit-orders.ts +184 -0
- package/src/mint-availability-operation.ts +146 -0
- package/src/models.ts +103 -0
- package/src/operations.ts +46 -0
- package/src/paid-mint-amount.ts +402 -0
- package/src/protocol.ts +28 -0
- package/src/runtime.ts +29 -0
- package/src/sale-common.ts +1238 -0
- package/src/source-provider.ts +12 -0
- package/src/source-validation.ts +47 -0
- package/src/token-amount.ts +302 -0
- package/src/token-operation.ts +384 -0
- package/src/trade-fee.ts +264 -0
- package/src/trading-operation.ts +842 -0
- package/src/verify-operation.ts +400 -0
- package/src/wallet-operation.ts +86 -0
- package/src/wasm-provider.ts +32 -0
- package/src/wrapper-operation.ts +531 -0
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KCC20_MAX_CONSOLIDATION_INPUTS = exports.KCC20_MIN_CONSOLIDATION_INPUTS = void 0;
|
|
4
|
+
exports.kcc20IndexedUtxoOutpoint = kcc20IndexedUtxoOutpoint;
|
|
5
|
+
exports.normalizeKcc20IndexedUtxos = normalizeKcc20IndexedUtxos;
|
|
6
|
+
exports.selectActiveMinterUtxo = selectActiveMinterUtxo;
|
|
7
|
+
exports.ownerNativeHolderUtxos = ownerNativeHolderUtxos;
|
|
8
|
+
exports.selectOwnerNativeHolderUtxo = selectOwnerNativeHolderUtxo;
|
|
9
|
+
exports.ownerWrappedHolderUtxos = ownerWrappedHolderUtxos;
|
|
10
|
+
exports.selectOwnerWrappedHolderUtxo = selectOwnerWrappedHolderUtxo;
|
|
11
|
+
exports.selectOwnerWrappedHolderUtxosForSweep = selectOwnerWrappedHolderUtxosForSweep;
|
|
12
|
+
exports.selectWrappedRootUtxo = selectWrappedRootUtxo;
|
|
13
|
+
exports.selectWrappedOrderUtxo = selectWrappedOrderUtxo;
|
|
14
|
+
exports.wrapperReserveUtxos = wrapperReserveUtxos;
|
|
15
|
+
exports.selectWrapperReserveUtxo = selectWrapperReserveUtxo;
|
|
16
|
+
exports.resolveActiveWrapperUtxo = resolveActiveWrapperUtxo;
|
|
17
|
+
exports.kcc20WrapperBelongsToToken = kcc20WrapperBelongsToToken;
|
|
18
|
+
exports.isKcc20WrapperReadyToBuild = isKcc20WrapperReadyToBuild;
|
|
19
|
+
exports.kcc20WrapperNotReadyReason = kcc20WrapperNotReadyReason;
|
|
20
|
+
exports.selectOwnerFeeTicketUtxos = selectOwnerFeeTicketUtxos;
|
|
21
|
+
exports.selectFeeTicketOutpoints = selectFeeTicketOutpoints;
|
|
22
|
+
exports.selectConsolidationBatch = selectConsolidationBatch;
|
|
23
|
+
exports.summarizeHolderUtxos = summarizeHolderUtxos;
|
|
24
|
+
exports.KCC20_MIN_CONSOLIDATION_INPUTS = 2;
|
|
25
|
+
exports.KCC20_MAX_CONSOLIDATION_INPUTS = 8;
|
|
26
|
+
function kcc20IndexedUtxoOutpoint(utxo) {
|
|
27
|
+
return (utxo.outpoint ?? `${utxo.txidHex}:${utxo.vout}`).toLowerCase();
|
|
28
|
+
}
|
|
29
|
+
function normalizeKcc20IndexedUtxos(values) {
|
|
30
|
+
const byOutpoint = new Map();
|
|
31
|
+
for (const value of values) {
|
|
32
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
33
|
+
continue;
|
|
34
|
+
const row = value;
|
|
35
|
+
const txidHex = hex32(row["txidHex"]);
|
|
36
|
+
const vout = Number(row["vout"]);
|
|
37
|
+
const address = typeof row["address"] === "string" ? row["address"] : "";
|
|
38
|
+
const amountSompi = unsigned(row["amountSompi"]);
|
|
39
|
+
if (!txidHex ||
|
|
40
|
+
!Number.isInteger(vout) ||
|
|
41
|
+
vout < 0 ||
|
|
42
|
+
!address ||
|
|
43
|
+
amountSompi === null) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const rawState = record(row["state"]);
|
|
47
|
+
const state = rawState ? normalizeState(rawState) : null;
|
|
48
|
+
const covenantId = hex32(row["covenantId"]);
|
|
49
|
+
const normalized = {
|
|
50
|
+
txidHex,
|
|
51
|
+
vout,
|
|
52
|
+
outpoint: `${txidHex}:${vout}`,
|
|
53
|
+
address,
|
|
54
|
+
amountSompi,
|
|
55
|
+
...(typeof row["action"] === "string" ? { action: row["action"] } : {}),
|
|
56
|
+
state,
|
|
57
|
+
...(covenantId ? { covenantId } : {}),
|
|
58
|
+
};
|
|
59
|
+
const key = kcc20IndexedUtxoOutpoint(normalized);
|
|
60
|
+
const existing = byOutpoint.get(key);
|
|
61
|
+
if (!existing || (!existing.state && normalized.state))
|
|
62
|
+
byOutpoint.set(key, normalized);
|
|
63
|
+
}
|
|
64
|
+
return [...byOutpoint.values()].sort((a, b) => kcc20IndexedUtxoOutpoint(a).localeCompare(kcc20IndexedUtxoOutpoint(b)));
|
|
65
|
+
}
|
|
66
|
+
function selectActiveMinterUtxo(utxos, requestedAmount) {
|
|
67
|
+
const requested = requiredAmount(requestedAmount);
|
|
68
|
+
return (utxos.find((utxo) => {
|
|
69
|
+
const state = utxo.state;
|
|
70
|
+
const remaining = amount(state?.["remainingSupply"]);
|
|
71
|
+
return (state?.["isMintAuthority"] === true &&
|
|
72
|
+
remaining !== null &&
|
|
73
|
+
remaining >= requested);
|
|
74
|
+
}) ?? null);
|
|
75
|
+
}
|
|
76
|
+
function ownerNativeHolderUtxos(utxos, owner) {
|
|
77
|
+
const normalizedOwner = owner.toLowerCase();
|
|
78
|
+
return utxos.filter((utxo) => {
|
|
79
|
+
const state = utxo.state;
|
|
80
|
+
const value = amount(state?.["amount"]);
|
|
81
|
+
return (value !== null &&
|
|
82
|
+
value > 0n &&
|
|
83
|
+
state?.["isMintAuthority"] !== true &&
|
|
84
|
+
numberValue(state?.["ownerScheme"] ?? state?.["identifierType"]) === 0 &&
|
|
85
|
+
stringValue(state?.["ownerIdentifier"] ?? state?.["owner"])?.toLowerCase() === normalizedOwner);
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
function selectOwnerNativeHolderUtxo(utxos, owner, requestedAmount, outpoint) {
|
|
89
|
+
const requested = requiredAmount(requestedAmount);
|
|
90
|
+
const requestedOutpoint = outpoint?.toLowerCase();
|
|
91
|
+
return (ownerNativeHolderUtxos(utxos, owner)
|
|
92
|
+
.filter((utxo) => !requestedOutpoint ||
|
|
93
|
+
kcc20IndexedUtxoOutpoint(utxo) === requestedOutpoint)
|
|
94
|
+
.filter((utxo) => amount(utxo.state?.["amount"]) >= requested)
|
|
95
|
+
.sort(compareStateAmount)[0] ?? null);
|
|
96
|
+
}
|
|
97
|
+
function ownerWrappedHolderUtxos(utxos, owner, canonicalTokenId) {
|
|
98
|
+
const normalizedOwner = owner.toLowerCase();
|
|
99
|
+
const canonical = canonicalTokenId.toLowerCase();
|
|
100
|
+
return utxos.filter((utxo) => {
|
|
101
|
+
const state = utxo.state;
|
|
102
|
+
const value = amount(state?.["amount"]);
|
|
103
|
+
return (value !== null &&
|
|
104
|
+
value > 0n &&
|
|
105
|
+
numberValue(state?.["mode"] ?? state?.["stateMode"]) === 0 &&
|
|
106
|
+
numberValue(state?.["identifierType"] ?? state?.["ownerScheme"]) === 0 &&
|
|
107
|
+
stringValue(state?.["ownerIdentifier"] ?? state?.["owner"])?.toLowerCase() === normalizedOwner &&
|
|
108
|
+
stringValue(state?.["canonicalTokenId"] ?? state?.["tokenId"])?.toLowerCase() === canonical);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
function selectOwnerWrappedHolderUtxo(utxos, owner, requestedAmount, canonicalTokenId, largest = false) {
|
|
112
|
+
const requested = requiredAmount(requestedAmount);
|
|
113
|
+
const candidates = ownerWrappedHolderUtxos(utxos, owner, canonicalTokenId)
|
|
114
|
+
.filter((utxo) => amount(utxo.state?.["amount"]) >= requested)
|
|
115
|
+
.sort(compareStateAmount);
|
|
116
|
+
return (largest ? candidates.at(-1) : candidates[0]) ?? null;
|
|
117
|
+
}
|
|
118
|
+
function selectOwnerWrappedHolderUtxosForSweep(utxos, owner, requestedAmounts, canonicalTokenId) {
|
|
119
|
+
const candidates = ownerWrappedHolderUtxos(utxos, owner, canonicalTokenId).sort(compareStateAmount);
|
|
120
|
+
const selected = [];
|
|
121
|
+
const used = new Set();
|
|
122
|
+
for (const requestedText of requestedAmounts) {
|
|
123
|
+
const requested = amount(requestedText);
|
|
124
|
+
if (requested === null)
|
|
125
|
+
return selected;
|
|
126
|
+
const match = candidates.find((utxo) => !used.has(kcc20IndexedUtxoOutpoint(utxo)) &&
|
|
127
|
+
amount(utxo.state?.["amount"]) >= requested);
|
|
128
|
+
if (!match)
|
|
129
|
+
return selected;
|
|
130
|
+
used.add(kcc20IndexedUtxoOutpoint(match));
|
|
131
|
+
selected.push(match);
|
|
132
|
+
}
|
|
133
|
+
return selected;
|
|
134
|
+
}
|
|
135
|
+
function selectWrappedRootUtxo(utxos, canonicalTokenId) {
|
|
136
|
+
const canonical = canonicalTokenId.toLowerCase();
|
|
137
|
+
return (utxos.find((utxo) => numberValue(utxo.state?.["mode"] ?? utxo.state?.["stateMode"]) === 1 &&
|
|
138
|
+
stringValue(utxo.state?.["canonicalTokenId"] ?? utxo.state?.["tokenId"])?.toLowerCase() === canonical) ?? null);
|
|
139
|
+
}
|
|
140
|
+
function selectWrappedOrderUtxo(utxos, input) {
|
|
141
|
+
const canonical = input.canonicalTokenId.toLowerCase();
|
|
142
|
+
const requested = input.requestedAmount
|
|
143
|
+
? requiredAmount(input.requestedAmount)
|
|
144
|
+
: null;
|
|
145
|
+
const owner = input.owner?.toLowerCase();
|
|
146
|
+
return (utxos.find((utxo) => {
|
|
147
|
+
const state = utxo.state;
|
|
148
|
+
const value = amount(state?.["amount"]);
|
|
149
|
+
return (kcc20IndexedUtxoOutpoint(utxo) === input.orderId.toLowerCase() &&
|
|
150
|
+
numberValue(state?.["mode"] ?? state?.["stateMode"]) === input.mode &&
|
|
151
|
+
stringValue(state?.["canonicalTokenId"] ?? state?.["tokenId"])?.toLowerCase() === canonical &&
|
|
152
|
+
(!input.unitPriceSompi ||
|
|
153
|
+
stringValue(state?.["unitPriceSompi"]) === input.unitPriceSompi) &&
|
|
154
|
+
(requested === null || (value !== null && value >= requested)) &&
|
|
155
|
+
(!owner ||
|
|
156
|
+
stringValue(state?.["ownerIdentifier"] ?? state?.["owner"])?.toLowerCase() === owner));
|
|
157
|
+
}) ?? null);
|
|
158
|
+
}
|
|
159
|
+
function wrapperReserveUtxos(utxos, wrapperIds) {
|
|
160
|
+
const ids = new Set(wrapperIds
|
|
161
|
+
.map((id) => id?.toLowerCase())
|
|
162
|
+
.filter((id) => /^[a-f0-9]{64}$/.test(id)));
|
|
163
|
+
return utxos
|
|
164
|
+
.filter((utxo) => {
|
|
165
|
+
const state = utxo.state;
|
|
166
|
+
const value = amount(state?.["amount"]);
|
|
167
|
+
return (value !== null &&
|
|
168
|
+
value > 0n &&
|
|
169
|
+
state?.["isMintAuthority"] !== true &&
|
|
170
|
+
numberValue(state?.["ownerScheme"] ?? state?.["identifierType"]) ===
|
|
171
|
+
4 &&
|
|
172
|
+
ids.has(stringValue(state?.["ownerIdentifier"] ?? state?.["owner"])?.toLowerCase() ?? ""));
|
|
173
|
+
})
|
|
174
|
+
.sort(compareStateAmount);
|
|
175
|
+
}
|
|
176
|
+
function selectWrapperReserveUtxo(utxos, wrapperIds, requestedAmount) {
|
|
177
|
+
const requested = requiredAmount(requestedAmount);
|
|
178
|
+
return (wrapperReserveUtxos(utxos, wrapperIds).find((utxo) => amount(utxo.state?.["amount"]) >= requested) ?? null);
|
|
179
|
+
}
|
|
180
|
+
function resolveActiveWrapperUtxo(wrapper, utxos) {
|
|
181
|
+
const address = wrapper.wrapperAddress?.toLowerCase();
|
|
182
|
+
const candidates = utxos.filter((utxo) => !address || utxo.address.toLowerCase() === address);
|
|
183
|
+
const activeId = wrapper.activeCovenantId?.toLowerCase();
|
|
184
|
+
const byNativeId = activeId
|
|
185
|
+
? candidates.filter((utxo) => utxo.covenantId?.toLowerCase() === activeId)
|
|
186
|
+
: [];
|
|
187
|
+
const selectable = byNativeId.length ? byNativeId : candidates;
|
|
188
|
+
if (!selectable.length)
|
|
189
|
+
throw new Error("wrapped market has no active wrapper UTXO");
|
|
190
|
+
if (selectable.length > 1) {
|
|
191
|
+
throw new Error("wrapped market has multiple active wrapper UTXOs; refresh the indexer snapshot");
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
selected: selectable[0],
|
|
195
|
+
candidates: selectable,
|
|
196
|
+
ambiguous: false,
|
|
197
|
+
...(activeId || selectable[0].covenantId
|
|
198
|
+
? { activeCovenantId: activeId ?? selectable[0].covenantId }
|
|
199
|
+
: {}),
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
function kcc20WrapperBelongsToToken(wrapper, canonicalTokenId) {
|
|
203
|
+
const expected = canonicalTokenId.toLowerCase();
|
|
204
|
+
const appCanonicalIds = [
|
|
205
|
+
wrapper.canonicalTokenId,
|
|
206
|
+
wrapper.claimedCanonicalTokenId,
|
|
207
|
+
]
|
|
208
|
+
.filter((value) => Boolean(value))
|
|
209
|
+
.map((value) => value.toLowerCase());
|
|
210
|
+
return !appCanonicalIds.length || appCanonicalIds.includes(expected);
|
|
211
|
+
}
|
|
212
|
+
function isKcc20WrapperReadyToBuild(wrapper) {
|
|
213
|
+
if (!wrapper?.enabled)
|
|
214
|
+
return false;
|
|
215
|
+
if (wrapper.pendingReveal === true)
|
|
216
|
+
return wrapper.buildable === true && (wrapper.activeUtxos ?? 0) > 0;
|
|
217
|
+
return wrapper.buildable !== false && Boolean(wrapper.activeCovenantId);
|
|
218
|
+
}
|
|
219
|
+
function kcc20WrapperNotReadyReason(wrapper) {
|
|
220
|
+
if (!wrapper)
|
|
221
|
+
return "No wrapper is ready to wrap.";
|
|
222
|
+
if (!wrapper.enabled)
|
|
223
|
+
return "Wrapped trading is disabled for this market.";
|
|
224
|
+
if (wrapper.buildable === false)
|
|
225
|
+
return wrapper.buildableReason?.trim() || "Wrapper is not buildable yet.";
|
|
226
|
+
return "No wrapper is ready to wrap.";
|
|
227
|
+
}
|
|
228
|
+
function selectOwnerFeeTicketUtxos(utxos, owner, outpoints) {
|
|
229
|
+
const normalizedOwner = hex32(owner);
|
|
230
|
+
if (!normalizedOwner)
|
|
231
|
+
return [];
|
|
232
|
+
const requested = outpoints
|
|
233
|
+
? new Set(outpoints.map((item) => item.toLowerCase()))
|
|
234
|
+
: null;
|
|
235
|
+
const selected = utxos
|
|
236
|
+
.filter((utxo) => {
|
|
237
|
+
const state = utxo.state;
|
|
238
|
+
return (numberValue(state?.["mode"] ?? state?.["stateMode"]) === 2 &&
|
|
239
|
+
feeTicketStateOwner(state) === normalizedOwner &&
|
|
240
|
+
(!requested || requested.has(kcc20IndexedUtxoOutpoint(utxo))));
|
|
241
|
+
})
|
|
242
|
+
.sort((a, b) => kcc20IndexedUtxoOutpoint(a).localeCompare(kcc20IndexedUtxoOutpoint(b)));
|
|
243
|
+
if (requested && selected.length !== requested.size) {
|
|
244
|
+
throw new Error("One or more selected FeeTicket UTXOs are not active for this wallet");
|
|
245
|
+
}
|
|
246
|
+
return selected;
|
|
247
|
+
}
|
|
248
|
+
function feeTicketStateOwner(state) {
|
|
249
|
+
if (!state)
|
|
250
|
+
return null;
|
|
251
|
+
for (const key of [
|
|
252
|
+
"ownerIdentifier",
|
|
253
|
+
"stateOwner",
|
|
254
|
+
"ticketOwner",
|
|
255
|
+
"owner",
|
|
256
|
+
"recipientOwner",
|
|
257
|
+
"holderOwner",
|
|
258
|
+
]) {
|
|
259
|
+
const owner = hex32(state[key]);
|
|
260
|
+
if (owner)
|
|
261
|
+
return owner;
|
|
262
|
+
}
|
|
263
|
+
return null;
|
|
264
|
+
}
|
|
265
|
+
function selectFeeTicketOutpoints(tickets, quantity, options = {}) {
|
|
266
|
+
const maxQuantity = options.maxQuantity ?? 10;
|
|
267
|
+
const shortageAction = options.shortageAction ?? "use";
|
|
268
|
+
if (!Number.isInteger(maxQuantity) ||
|
|
269
|
+
maxQuantity < 1 ||
|
|
270
|
+
!Number.isInteger(quantity) ||
|
|
271
|
+
quantity < 1 ||
|
|
272
|
+
quantity > maxQuantity) {
|
|
273
|
+
throw new Error(`Coupon quantity must be between 1 and ${maxQuantity}.`);
|
|
274
|
+
}
|
|
275
|
+
const normalized = tickets.map((ticket) => {
|
|
276
|
+
const outpoint = ticket.outpoint.trim().toLowerCase();
|
|
277
|
+
if (!/^[0-9a-f]{64}:\d+$/.test(outpoint) ||
|
|
278
|
+
unsigned(ticket.amountSompi) === null) {
|
|
279
|
+
throw new Error("Coupon availability is invalid. Refresh and try again.");
|
|
280
|
+
}
|
|
281
|
+
return { outpoint, collateral: BigInt(ticket.amountSompi) };
|
|
282
|
+
});
|
|
283
|
+
const unique = new Set(normalized.map((ticket) => ticket.outpoint));
|
|
284
|
+
if (unique.size !== normalized.length)
|
|
285
|
+
throw new Error("Coupon availability contains duplicate outpoints.");
|
|
286
|
+
if (normalized.length < quantity) {
|
|
287
|
+
throw new Error(`Not enough active coupons are available to ${shortageAction}.`);
|
|
288
|
+
}
|
|
289
|
+
return normalized
|
|
290
|
+
.sort((left, right) => left.collateral < right.collateral
|
|
291
|
+
? -1
|
|
292
|
+
: left.collateral > right.collateral
|
|
293
|
+
? 1
|
|
294
|
+
: left.outpoint.localeCompare(right.outpoint))
|
|
295
|
+
.slice(0, quantity)
|
|
296
|
+
.map((ticket) => ticket.outpoint);
|
|
297
|
+
}
|
|
298
|
+
function selectConsolidationBatch(candidates, sourceOutpoints, maximum = exports.KCC20_MAX_CONSOLIDATION_INPUTS, order = "smallest", minimum = 1) {
|
|
299
|
+
const sorted = [...candidates].sort((left, right) => order === "largest"
|
|
300
|
+
? compareStateAmount(right, left)
|
|
301
|
+
: compareStateAmount(left, right));
|
|
302
|
+
if (!sourceOutpoints?.length)
|
|
303
|
+
return sorted.slice(0, maximum);
|
|
304
|
+
const requested = new Set(sourceOutpoints.map((value) => value.toLowerCase()));
|
|
305
|
+
if (sourceOutpoints.length < minimum)
|
|
306
|
+
throw new Error(`at least ${minimum} holder UTXOs must be selected`);
|
|
307
|
+
if (requested.size !== sourceOutpoints.length)
|
|
308
|
+
throw new Error("distinct source outpoints are required");
|
|
309
|
+
const byOutpoint = new Map(candidates.map((utxo) => [kcc20IndexedUtxoOutpoint(utxo), utxo]));
|
|
310
|
+
const selected = sourceOutpoints.flatMap((outpoint) => {
|
|
311
|
+
const match = byOutpoint.get(outpoint.toLowerCase());
|
|
312
|
+
return match ? [match] : [];
|
|
313
|
+
});
|
|
314
|
+
if (selected.length !== requested.size)
|
|
315
|
+
throw new Error("selected holder UTXOs are not available");
|
|
316
|
+
if (selected.length > maximum)
|
|
317
|
+
throw new Error(`at most ${maximum} holder UTXOs can be consolidated`);
|
|
318
|
+
return selected;
|
|
319
|
+
}
|
|
320
|
+
function summarizeHolderUtxos(candidates, requestedAmount) {
|
|
321
|
+
const requested = requiredAmount(requestedAmount);
|
|
322
|
+
const amounts = candidates.map((utxo) => amount(utxo.state?.["amount"]) ?? 0n);
|
|
323
|
+
const aggregate = amounts.reduce((sum, value) => sum + value, 0n);
|
|
324
|
+
let max = 0n;
|
|
325
|
+
let maxIndex = -1;
|
|
326
|
+
amounts.forEach((value, index) => {
|
|
327
|
+
if (value > max) {
|
|
328
|
+
max = value;
|
|
329
|
+
maxIndex = index;
|
|
330
|
+
}
|
|
331
|
+
});
|
|
332
|
+
const fragmented = aggregate >= requested && max < requested;
|
|
333
|
+
return {
|
|
334
|
+
requestedAmount: requested.toString(),
|
|
335
|
+
aggregateAmount: aggregate.toString(),
|
|
336
|
+
maxSingleUtxoAmount: max.toString(),
|
|
337
|
+
utxoCount: candidates.length,
|
|
338
|
+
fragmented,
|
|
339
|
+
...(maxIndex >= 0
|
|
340
|
+
? {
|
|
341
|
+
maxSingleUtxoOutpoint: kcc20IndexedUtxoOutpoint(candidates[maxIndex]),
|
|
342
|
+
}
|
|
343
|
+
: {}),
|
|
344
|
+
...(fragmented ? { recommendedAction: "consolidate" } : {}),
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
function normalizeState(state) {
|
|
348
|
+
const extension = record(state["extension"]);
|
|
349
|
+
const owner = hex32(state["owner"] ?? state["ownerIdentifier"]);
|
|
350
|
+
const ownerScheme = numberValue(state["ownerScheme"] ?? state["identifierType"]);
|
|
351
|
+
const normalized = { ...state };
|
|
352
|
+
if (owner) {
|
|
353
|
+
normalized["owner"] = owner;
|
|
354
|
+
normalized["ownerIdentifier"] = owner;
|
|
355
|
+
}
|
|
356
|
+
if (ownerScheme !== null) {
|
|
357
|
+
normalized["ownerScheme"] = ownerScheme;
|
|
358
|
+
normalized["identifierType"] = ownerScheme;
|
|
359
|
+
}
|
|
360
|
+
const amountValue = unsigned(state["amount"]);
|
|
361
|
+
if (amountValue !== null)
|
|
362
|
+
normalized["amount"] = amountValue;
|
|
363
|
+
const remaining = unsigned(state["remainingSupply"] ?? extension?.["remainingSupply"]);
|
|
364
|
+
if (remaining !== null)
|
|
365
|
+
normalized["remainingSupply"] = remaining;
|
|
366
|
+
const canonical = hex32(state["canonicalTokenId"] ?? state["tokenId"]);
|
|
367
|
+
if (canonical)
|
|
368
|
+
normalized["canonicalTokenId"] = canonical;
|
|
369
|
+
const mode = numberValue(state["mode"] ?? state["stateMode"]);
|
|
370
|
+
if (mode !== null)
|
|
371
|
+
normalized["mode"] = mode;
|
|
372
|
+
const unitPrice = unsigned(state["unitPriceSompi"] ?? state["marketUnitPriceSompi"]);
|
|
373
|
+
if (unitPrice !== null)
|
|
374
|
+
normalized["unitPriceSompi"] = unitPrice;
|
|
375
|
+
const feeTicketId = hex32(state["feeTicketId"]);
|
|
376
|
+
if (feeTicketId)
|
|
377
|
+
normalized["feeTicketId"] = feeTicketId;
|
|
378
|
+
const displayScale = unsigned(state["displayScale"] ??
|
|
379
|
+
state["priceScale"] ??
|
|
380
|
+
state["tokenDisplayScale"] ??
|
|
381
|
+
extension?.["displayScale"]);
|
|
382
|
+
if (displayScale !== null) {
|
|
383
|
+
normalized["displayScale"] = displayScale;
|
|
384
|
+
normalized["priceScale"] = displayScale;
|
|
385
|
+
normalized["tokenDisplayScale"] = displayScale;
|
|
386
|
+
}
|
|
387
|
+
return normalized;
|
|
388
|
+
}
|
|
389
|
+
function compareStateAmount(left, right) {
|
|
390
|
+
const a = amount(left.state?.["amount"]) ?? 0n;
|
|
391
|
+
const b = amount(right.state?.["amount"]) ?? 0n;
|
|
392
|
+
return a < b
|
|
393
|
+
? -1
|
|
394
|
+
: a > b
|
|
395
|
+
? 1
|
|
396
|
+
: kcc20IndexedUtxoOutpoint(left).localeCompare(kcc20IndexedUtxoOutpoint(right));
|
|
397
|
+
}
|
|
398
|
+
function amount(value) {
|
|
399
|
+
const normalized = unsigned(value);
|
|
400
|
+
return normalized === null ? null : BigInt(normalized);
|
|
401
|
+
}
|
|
402
|
+
function requiredAmount(value) {
|
|
403
|
+
const normalized = amount(value);
|
|
404
|
+
if (normalized === null)
|
|
405
|
+
throw new Error("indexed covenant amount is invalid");
|
|
406
|
+
return normalized;
|
|
407
|
+
}
|
|
408
|
+
function unsigned(value) {
|
|
409
|
+
if (typeof value === "bigint")
|
|
410
|
+
return value >= 0n ? value.toString() : null;
|
|
411
|
+
if (typeof value === "number")
|
|
412
|
+
return Number.isSafeInteger(value) && value >= 0 ? value.toString() : null;
|
|
413
|
+
return typeof value === "string" && /^(0|[1-9]\d*)$/.test(value)
|
|
414
|
+
? value
|
|
415
|
+
: null;
|
|
416
|
+
}
|
|
417
|
+
function hex32(value) {
|
|
418
|
+
if (typeof value !== "string")
|
|
419
|
+
return null;
|
|
420
|
+
const normalized = value.trim().toLowerCase().replace(/^0x/, "");
|
|
421
|
+
return /^[a-f0-9]{64}$/.test(normalized) ? normalized : null;
|
|
422
|
+
}
|
|
423
|
+
function record(value) {
|
|
424
|
+
return value && typeof value === "object" && !Array.isArray(value)
|
|
425
|
+
? value
|
|
426
|
+
: null;
|
|
427
|
+
}
|
|
428
|
+
function stringValue(value) {
|
|
429
|
+
return typeof value === "string" ? value : null;
|
|
430
|
+
}
|
|
431
|
+
function numberValue(value) {
|
|
432
|
+
const parsed = typeof value === "string" && /^\d+$/.test(value) ? Number(value) : value;
|
|
433
|
+
return typeof parsed === "number" && Number.isInteger(parsed) ? parsed : null;
|
|
434
|
+
}
|
|
435
|
+
//# sourceMappingURL=action-source-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-source-resolver.js","sourceRoot":"","sources":["../../src/action-source-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ArtifactDescriptor, BuildContext } from "./models.js";
|
|
2
|
+
export declare const KCC20_ARTIFACT_SCRIPT_SHA256: Readonly<{
|
|
3
|
+
"KCC20.placeholder.json": "4633b082f26adbf14600b767d6e2146e36ce67d63d8202c0281857922c05ac41";
|
|
4
|
+
"KCC20FeeTicket.placeholder.json": "ed81365466ee4c44db1210b3360783af8145f74e49e847848195e09c71ad6930";
|
|
5
|
+
"KCC20Orderbook.placeholder.json": "ef9fe81ff7aa2dc2df118d8d7cc126aca6f2f9c181b9c2d15727a538b23c6f71";
|
|
6
|
+
"KCC20Wrapper.placeholder.json": "f3bdf09be9aa258708a306283a4278a93cfb64f35fc50ed7d316b9b189ef9030";
|
|
7
|
+
"KCC20Vesting.placeholder.json": "1b84d74aa01b6a50edbff5bf1f9e988a5a6a00ec645458dfd3912ac532b77c33";
|
|
8
|
+
}>;
|
|
9
|
+
export type Kcc20ArtifactKey = keyof typeof KCC20_ARTIFACT_SCRIPT_SHA256;
|
|
10
|
+
export declare function isKcc20ArtifactKey(value: string): value is Kcc20ArtifactKey;
|
|
11
|
+
export declare function assertKcc20ArtifactScriptHash(key: Kcc20ArtifactKey, artifact: unknown): void;
|
|
12
|
+
export declare function requireArtifact(context: BuildContext, key: string): ArtifactDescriptor;
|
|
13
|
+
export declare function assertArtifactHash(artifact: ArtifactDescriptor, expectedHash: string): void;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KCC20_ARTIFACT_SCRIPT_SHA256 = void 0;
|
|
4
|
+
exports.isKcc20ArtifactKey = isKcc20ArtifactKey;
|
|
5
|
+
exports.assertKcc20ArtifactScriptHash = assertKcc20ArtifactScriptHash;
|
|
6
|
+
exports.requireArtifact = requireArtifact;
|
|
7
|
+
exports.assertArtifactHash = assertArtifactHash;
|
|
8
|
+
const errors_js_1 = require("./errors.js");
|
|
9
|
+
const sha256_1 = require("@noble/hashes/sha256");
|
|
10
|
+
exports.KCC20_ARTIFACT_SCRIPT_SHA256 = Object.freeze({
|
|
11
|
+
"KCC20.placeholder.json": "4633b082f26adbf14600b767d6e2146e36ce67d63d8202c0281857922c05ac41",
|
|
12
|
+
"KCC20FeeTicket.placeholder.json": "ed81365466ee4c44db1210b3360783af8145f74e49e847848195e09c71ad6930",
|
|
13
|
+
"KCC20Orderbook.placeholder.json": "ef9fe81ff7aa2dc2df118d8d7cc126aca6f2f9c181b9c2d15727a538b23c6f71",
|
|
14
|
+
"KCC20Wrapper.placeholder.json": "f3bdf09be9aa258708a306283a4278a93cfb64f35fc50ed7d316b9b189ef9030",
|
|
15
|
+
"KCC20Vesting.placeholder.json": "1b84d74aa01b6a50edbff5bf1f9e988a5a6a00ec645458dfd3912ac532b77c33",
|
|
16
|
+
});
|
|
17
|
+
function isKcc20ArtifactKey(value) {
|
|
18
|
+
return Object.prototype.hasOwnProperty.call(exports.KCC20_ARTIFACT_SCRIPT_SHA256, value);
|
|
19
|
+
}
|
|
20
|
+
function assertKcc20ArtifactScriptHash(key, artifact) {
|
|
21
|
+
const script = artifact?.script;
|
|
22
|
+
const bytes = script instanceof Uint8Array
|
|
23
|
+
? script
|
|
24
|
+
: Array.isArray(script) &&
|
|
25
|
+
script.every((byte) => Number.isInteger(byte) && byte >= 0 && byte <= 0xff)
|
|
26
|
+
? Uint8Array.from(script)
|
|
27
|
+
: null;
|
|
28
|
+
if (!bytes) {
|
|
29
|
+
throw new errors_js_1.Kcc20BuilderError("ARTIFACT_MISMATCH", `contract artifact script is invalid for ${key}`, { artifactKey: key });
|
|
30
|
+
}
|
|
31
|
+
const actualHash = [...(0, sha256_1.sha256)(bytes)]
|
|
32
|
+
.map((byte) => byte.toString(16).padStart(2, "0"))
|
|
33
|
+
.join("");
|
|
34
|
+
const expectedHash = exports.KCC20_ARTIFACT_SCRIPT_SHA256[key];
|
|
35
|
+
if (actualHash !== expectedHash) {
|
|
36
|
+
throw new errors_js_1.Kcc20BuilderError("ARTIFACT_MISMATCH", `contract artifact hash mismatch for ${key}`, { artifactKey: key, expectedHash, actualHash });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function requireArtifact(context, key) {
|
|
40
|
+
const artifact = context.artifacts[key];
|
|
41
|
+
if (!artifact) {
|
|
42
|
+
throw new errors_js_1.Kcc20BuilderError("ARTIFACT_MISMATCH", `required contract artifact is missing: ${key}`, { artifactKey: key });
|
|
43
|
+
}
|
|
44
|
+
return artifact;
|
|
45
|
+
}
|
|
46
|
+
function assertArtifactHash(artifact, expectedHash) {
|
|
47
|
+
if (artifact.hash.toLowerCase() !== expectedHash.toLowerCase()) {
|
|
48
|
+
throw new errors_js_1.Kcc20BuilderError("ARTIFACT_MISMATCH", `contract artifact hash mismatch for ${artifact.key}`, { artifactKey: artifact.key, expectedHash, actualHash: artifact.hash });
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=artifacts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/artifacts.ts"],"names":[],"mappings":";;;AAmBA,gDAKC;AAED,sEAgCC;AAED,0CAaC;AAED,gDAWC;AAtFD,2CAAgD;AAEhD,iDAA8C;AAEjC,QAAA,4BAA4B,GAAG,MAAM,CAAC,MAAM,CAAC;IACxD,wBAAwB,EACtB,kEAAkE;IACpE,iCAAiC,EAC/B,kEAAkE;IACpE,iCAAiC,EAC/B,kEAAkE;IACpE,+BAA+B,EAC7B,kEAAkE;IACpE,+BAA+B,EAC7B,kEAAkE;CACrE,CAAC,CAAC;AAIH,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CACzC,oCAA4B,EAC5B,KAAK,CACN,CAAC;AACJ,CAAC;AAED,SAAgB,6BAA6B,CAC3C,GAAqB,EACrB,QAAiB;IAEjB,MAAM,MAAM,GAAI,QAAwC,EAAE,MAAM,CAAC;IACjE,MAAM,KAAK,GACT,MAAM,YAAY,UAAU;QAC1B,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YACnB,MAAM,CAAC,KAAK,CACV,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,CAC9D;YACH,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;YACzB,CAAC,CAAC,IAAI,CAAC;IACb,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,6BAAiB,CACzB,mBAAmB,EACnB,2CAA2C,GAAG,EAAE,EAChD,EAAE,WAAW,EAAE,GAAG,EAAE,CACrB,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,GAAG,IAAA,eAAM,EAAC,KAAK,CAAC,CAAC;SAClC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACjD,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,MAAM,YAAY,GAAG,oCAA4B,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;QAChC,MAAM,IAAI,6BAAiB,CACzB,mBAAmB,EACnB,uCAAuC,GAAG,EAAE,EAC5C,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,CAC/C,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAgB,eAAe,CAC7B,OAAqB,EACrB,GAAW;IAEX,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,6BAAiB,CACzB,mBAAmB,EACnB,0CAA0C,GAAG,EAAE,EAC/C,EAAE,WAAW,EAAE,GAAG,EAAE,CACrB,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAgB,kBAAkB,CAChC,QAA4B,EAC5B,YAAoB;IAEpB,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/D,MAAM,IAAI,6BAAiB,CACzB,mBAAmB,EACnB,uCAAuC,QAAQ,CAAC,GAAG,EAAE,EACrD,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,IAAI,EAAE,CACvE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Kcc20PsktBuilderDependencies } from "./models.js";
|
|
2
|
+
export declare const KCC20_PSKT_BUILDER_INPUT_SCHEMA: "kcc20-in-process-pskt-builder-input/v1";
|
|
3
|
+
export declare function buildKcc20Pskt(dependencies: Kcc20PsktBuilderDependencies, request: Kcc20PsktBuilderInput): Promise<Record<string, unknown>>;
|
|
4
|
+
export interface Kcc20PsktBuilderInput {
|
|
5
|
+
schema: typeof KCC20_PSKT_BUILDER_INPUT_SCHEMA;
|
|
6
|
+
schemaVersion?: number;
|
|
7
|
+
builder: Record<string, unknown>;
|
|
8
|
+
request: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
/** @deprecated Use Kcc20PsktBuilderInput. */
|
|
11
|
+
export type Kcc20LegacyPsktBuilderInput = Kcc20PsktBuilderInput;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KCC20_PSKT_BUILDER_INPUT_SCHEMA = void 0;
|
|
4
|
+
exports.buildKcc20Pskt = buildKcc20Pskt;
|
|
5
|
+
const errors_js_1 = require("./errors.js");
|
|
6
|
+
const engine_js_1 = require("./engine.js");
|
|
7
|
+
exports.KCC20_PSKT_BUILDER_INPUT_SCHEMA = "kcc20-in-process-pskt-builder-input/v1";
|
|
8
|
+
async function buildKcc20Pskt(dependencies, request) {
|
|
9
|
+
if (request.schema !== exports.KCC20_PSKT_BUILDER_INPUT_SCHEMA) {
|
|
10
|
+
throw new errors_js_1.Kcc20BuilderError("INVALID_INPUT", `unsupported KCC20 builder input schema: ${String(request.schema || "missing")}`);
|
|
11
|
+
}
|
|
12
|
+
const engine = (0, engine_js_1.createKcc20PsktBuilderEngine)({
|
|
13
|
+
wasm: dependencies.wasm,
|
|
14
|
+
artifacts: dependencies.artifacts ?? {},
|
|
15
|
+
artifactProvider: dependencies.artifactProvider,
|
|
16
|
+
config: dependencies.config,
|
|
17
|
+
sourceProvider: dependencies.sourceProvider,
|
|
18
|
+
rpcClientFactory: dependencies.rpcClientFactory,
|
|
19
|
+
});
|
|
20
|
+
return engine.build(request);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/builder.ts"],"names":[],"mappings":";;;AAOA,wCAmBC;AA1BD,2CAAgD;AAChD,2CAA2D;AAG9C,QAAA,+BAA+B,GAC1C,wCAAiD,CAAC;AAE7C,KAAK,UAAU,cAAc,CAClC,YAA0C,EAC1C,OAA8B;IAE9B,IAAI,OAAO,CAAC,MAAM,KAAK,uCAA+B,EAAE,CAAC;QACvD,MAAM,IAAI,6BAAiB,CACzB,eAAe,EACf,2CAA2C,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE,CACjF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,wCAA4B,EAAC;QAC1C,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,EAAE;QACvC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;QAC/C,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,cAAc,EAAE,YAAY,CAAC,cAAc;QAC3C,gBAAgB,EAAE,YAAY,CAAC,gBAAgB;KAChD,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC"}
|