@kaspacom/kcc20-tx-builder 0.1.0 → 0.2.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/dist/artifacts.d.ts +2 -0
- package/dist/artifacts.d.ts.map +1 -1
- package/dist/artifacts.js +3 -1
- package/dist/artifacts.js.map +1 -1
- package/dist/builder.d.ts +0 -2
- package/dist/builder.d.ts.map +1 -1
- package/dist/cjs/artifacts.d.ts +2 -0
- package/dist/cjs/artifacts.js +4 -2
- package/dist/cjs/artifacts.js.map +1 -1
- package/dist/cjs/builder.d.ts +0 -2
- package/dist/cjs/deploy-receipt.d.ts +45 -0
- package/dist/cjs/deploy-receipt.js +122 -0
- package/dist/cjs/deploy-receipt.js.map +1 -0
- package/dist/cjs/engine.js +336 -226
- package/dist/cjs/engine.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/protocol.d.ts +1 -0
- package/dist/cjs/protocol.js +15 -0
- package/dist/cjs/protocol.js.map +1 -1
- package/dist/deploy-receipt.d.ts +46 -0
- package/dist/deploy-receipt.d.ts.map +1 -0
- package/dist/deploy-receipt.js +119 -0
- package/dist/deploy-receipt.js.map +1 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +337 -227
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/protocol.d.ts +1 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +14 -0
- package/dist/protocol.js.map +1 -1
- package/package.json +1 -1
- package/src/artifacts.ts +5 -1
- package/src/builder.ts +0 -3
- package/src/deploy-receipt.ts +200 -0
- package/src/engine.ts +429 -296
- package/src/index.ts +1 -0
- package/src/protocol.ts +21 -0
package/dist/artifacts.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { ArtifactDescriptor, BuildContext } from "./models.js";
|
|
2
|
+
/** The only native KCC20 artifact used to build new transactions. */
|
|
3
|
+
export declare const KCC20_CURRENT_NATIVE_ARTIFACT_KEY: "KCC20.placeholder.json";
|
|
2
4
|
export declare const KCC20_ARTIFACT_SCRIPT_SHA256: Readonly<{
|
|
3
5
|
"KCC20.placeholder.json": "4633b082f26adbf14600b767d6e2146e36ce67d63d8202c0281857922c05ac41";
|
|
4
6
|
"KCC20FeeTicket.placeholder.json": "ed81365466ee4c44db1210b3360783af8145f74e49e847848195e09c71ad6930";
|
package/dist/artifacts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGpE,eAAO,MAAM,4BAA4B;;;;;;EAWvC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,4BAA4B,CAAC;AAEzE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,gBAAgB,CAK3E;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,OAAO,GAChB,IAAI,CA6BN;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,YAAY,EACrB,GAAG,EAAE,MAAM,GACV,kBAAkB,CAUpB;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EAAE,MAAM,GACnB,IAAI,CAQN"}
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGpE,qEAAqE;AACrE,eAAO,MAAM,iCAAiC,EAC5C,wBAAiC,CAAC;AAEpC,eAAO,MAAM,4BAA4B;;;;;;EAWvC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,4BAA4B,CAAC;AAEzE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,gBAAgB,CAK3E;AAED,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,OAAO,GAChB,IAAI,CA6BN;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,YAAY,EACrB,GAAG,EAAE,MAAM,GACV,kBAAkB,CAUpB;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EAAE,MAAM,GACnB,IAAI,CAQN"}
|
package/dist/artifacts.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { Kcc20BuilderError } from "./errors.js";
|
|
2
2
|
import { sha256 } from "@noble/hashes/sha256";
|
|
3
|
+
/** The only native KCC20 artifact used to build new transactions. */
|
|
4
|
+
export const KCC20_CURRENT_NATIVE_ARTIFACT_KEY = "KCC20.placeholder.json";
|
|
3
5
|
export const KCC20_ARTIFACT_SCRIPT_SHA256 = Object.freeze({
|
|
4
|
-
|
|
6
|
+
[KCC20_CURRENT_NATIVE_ARTIFACT_KEY]: "4633b082f26adbf14600b767d6e2146e36ce67d63d8202c0281857922c05ac41",
|
|
5
7
|
"KCC20FeeTicket.placeholder.json": "ed81365466ee4c44db1210b3360783af8145f74e49e847848195e09c71ad6930",
|
|
6
8
|
"KCC20Orderbook.placeholder.json": "ef9fe81ff7aa2dc2df118d8d7cc126aca6f2f9c181b9c2d15727a538b23c6f71",
|
|
7
9
|
"KCC20Wrapper.placeholder.json": "f3bdf09be9aa258708a306283a4278a93cfb64f35fc50ed7d316b9b189ef9030",
|
package/dist/artifacts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,MAAM,CAAC;IACxD,
|
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../src/artifacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,qEAAqE;AACrE,MAAM,CAAC,MAAM,iCAAiC,GAC5C,wBAAiC,CAAC;AAEpC,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC,MAAM,CAAC;IACxD,CAAC,iCAAiC,CAAC,EACjC,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,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CACzC,4BAA4B,EAC5B,KAAK,CACN,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,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,iBAAiB,CACzB,mBAAmB,EACnB,2CAA2C,GAAG,EAAE,EAChD,EAAE,WAAW,EAAE,GAAG,EAAE,CACrB,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,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,4BAA4B,CAAC,GAAG,CAAC,CAAC;IACvD,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;QAChC,MAAM,IAAI,iBAAiB,CACzB,mBAAmB,EACnB,uCAAuC,GAAG,EAAE,EAC5C,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,CAC/C,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,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,iBAAiB,CACzB,mBAAmB,EACnB,0CAA0C,GAAG,EAAE,EAC/C,EAAE,WAAW,EAAE,GAAG,EAAE,CACrB,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAA4B,EAC5B,YAAoB;IAEpB,IAAI,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;QAC/D,MAAM,IAAI,iBAAiB,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"}
|
package/dist/builder.d.ts
CHANGED
|
@@ -7,6 +7,4 @@ export interface Kcc20PsktBuilderInput {
|
|
|
7
7
|
builder: Record<string, unknown>;
|
|
8
8
|
request: Record<string, unknown>;
|
|
9
9
|
}
|
|
10
|
-
/** @deprecated Use Kcc20PsktBuilderInput. */
|
|
11
|
-
export type Kcc20LegacyPsktBuilderInput = Kcc20PsktBuilderInput;
|
|
12
10
|
//# sourceMappingURL=builder.d.ts.map
|
package/dist/builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAEhE,eAAO,MAAM,+BAA+B,EAC1C,wCAAiD,CAAC;AAEpD,wBAAsB,cAAc,CAClC,YAAY,EAAE,4BAA4B,EAC1C,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAgBlC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,+BAA+B,CAAC;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAEhE,eAAO,MAAM,+BAA+B,EAC1C,wCAAiD,CAAC;AAEpD,wBAAsB,cAAc,CAClC,YAAY,EAAE,4BAA4B,EAC1C,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAgBlC;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,+BAA+B,CAAC;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC"}
|
package/dist/cjs/artifacts.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { ArtifactDescriptor, BuildContext } from "./models.js";
|
|
2
|
+
/** The only native KCC20 artifact used to build new transactions. */
|
|
3
|
+
export declare const KCC20_CURRENT_NATIVE_ARTIFACT_KEY: "KCC20.placeholder.json";
|
|
2
4
|
export declare const KCC20_ARTIFACT_SCRIPT_SHA256: Readonly<{
|
|
3
5
|
"KCC20.placeholder.json": "4633b082f26adbf14600b767d6e2146e36ce67d63d8202c0281857922c05ac41";
|
|
4
6
|
"KCC20FeeTicket.placeholder.json": "ed81365466ee4c44db1210b3360783af8145f74e49e847848195e09c71ad6930";
|
package/dist/cjs/artifacts.js
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KCC20_ARTIFACT_SCRIPT_SHA256 = void 0;
|
|
3
|
+
exports.KCC20_ARTIFACT_SCRIPT_SHA256 = exports.KCC20_CURRENT_NATIVE_ARTIFACT_KEY = void 0;
|
|
4
4
|
exports.isKcc20ArtifactKey = isKcc20ArtifactKey;
|
|
5
5
|
exports.assertKcc20ArtifactScriptHash = assertKcc20ArtifactScriptHash;
|
|
6
6
|
exports.requireArtifact = requireArtifact;
|
|
7
7
|
exports.assertArtifactHash = assertArtifactHash;
|
|
8
8
|
const errors_js_1 = require("./errors.js");
|
|
9
9
|
const sha256_1 = require("@noble/hashes/sha256");
|
|
10
|
+
/** The only native KCC20 artifact used to build new transactions. */
|
|
11
|
+
exports.KCC20_CURRENT_NATIVE_ARTIFACT_KEY = "KCC20.placeholder.json";
|
|
10
12
|
exports.KCC20_ARTIFACT_SCRIPT_SHA256 = Object.freeze({
|
|
11
|
-
|
|
13
|
+
[exports.KCC20_CURRENT_NATIVE_ARTIFACT_KEY]: "4633b082f26adbf14600b767d6e2146e36ce67d63d8202c0281857922c05ac41",
|
|
12
14
|
"KCC20FeeTicket.placeholder.json": "ed81365466ee4c44db1210b3360783af8145f74e49e847848195e09c71ad6930",
|
|
13
15
|
"KCC20Orderbook.placeholder.json": "ef9fe81ff7aa2dc2df118d8d7cc126aca6f2f9c181b9c2d15727a538b23c6f71",
|
|
14
16
|
"KCC20Wrapper.placeholder.json": "f3bdf09be9aa258708a306283a4278a93cfb64f35fc50ed7d316b9b189ef9030",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/artifacts.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../src/artifacts.ts"],"names":[],"mappings":";;;AAuBA,gDAKC;AAED,sEAgCC;AAED,0CAaC;AAED,gDAWC;AA1FD,2CAAgD;AAEhD,iDAA8C;AAE9C,qEAAqE;AACxD,QAAA,iCAAiC,GAC5C,wBAAiC,CAAC;AAEvB,QAAA,4BAA4B,GAAG,MAAM,CAAC,MAAM,CAAC;IACxD,CAAC,yCAAiC,CAAC,EACjC,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"}
|
package/dist/cjs/builder.d.ts
CHANGED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export interface Kcc20DeployReceiptOutput {
|
|
2
|
+
index: number;
|
|
3
|
+
revealScriptHex: string;
|
|
4
|
+
extensionCommitment: string;
|
|
5
|
+
}
|
|
6
|
+
export interface Kcc20DeployMinterReceiptOutput extends Kcc20DeployReceiptOutput {
|
|
7
|
+
remainingSupply: string | bigint;
|
|
8
|
+
}
|
|
9
|
+
export interface Kcc20DeployIntentOutput {
|
|
10
|
+
role: "fixed-supply-token" | "mint-authority" | "premint-holder";
|
|
11
|
+
index: number;
|
|
12
|
+
shard?: number;
|
|
13
|
+
mintLaneIndex?: number;
|
|
14
|
+
covenantId: string;
|
|
15
|
+
revealScriptHex: string;
|
|
16
|
+
owner: string;
|
|
17
|
+
ownerScheme: number;
|
|
18
|
+
borrowScheme: number;
|
|
19
|
+
borrowGuard: string;
|
|
20
|
+
extensionCommitment: string;
|
|
21
|
+
tokenAmount: string;
|
|
22
|
+
remainingSupply?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface BuildKcc20DeployIntentOutputsInput {
|
|
25
|
+
mintPolicy: number;
|
|
26
|
+
covenantId: string;
|
|
27
|
+
creator: string;
|
|
28
|
+
premintRecipient: string;
|
|
29
|
+
premintOwnerScheme: number;
|
|
30
|
+
maxSupply: string | bigint;
|
|
31
|
+
premintSupply: string | bigint;
|
|
32
|
+
borrowGuard: string;
|
|
33
|
+
fixedOutput?: Kcc20DeployReceiptOutput | null;
|
|
34
|
+
minterOutputs?: readonly Kcc20DeployMinterReceiptOutput[];
|
|
35
|
+
premintOutput?: Kcc20DeployReceiptOutput | null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Describes the covenant outputs created by a KCC20 deploy transaction.
|
|
39
|
+
*
|
|
40
|
+
* Fixed-supply deployments create one holder output. Mintable deployments
|
|
41
|
+
* create one or more mint-authority lanes and may append a premint holder.
|
|
42
|
+
* Keeping this mapping next to the transaction builder prevents receipts from
|
|
43
|
+
* claiming that output zero owns supply it does not actually contain.
|
|
44
|
+
*/
|
|
45
|
+
export declare function buildKcc20DeployIntentOutputs(input: BuildKcc20DeployIntentOutputsInput): Kcc20DeployIntentOutput[];
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildKcc20DeployIntentOutputs = buildKcc20DeployIntentOutputs;
|
|
4
|
+
/**
|
|
5
|
+
* Describes the covenant outputs created by a KCC20 deploy transaction.
|
|
6
|
+
*
|
|
7
|
+
* Fixed-supply deployments create one holder output. Mintable deployments
|
|
8
|
+
* create one or more mint-authority lanes and may append a premint holder.
|
|
9
|
+
* Keeping this mapping next to the transaction builder prevents receipts from
|
|
10
|
+
* claiming that output zero owns supply it does not actually contain.
|
|
11
|
+
*/
|
|
12
|
+
function buildKcc20DeployIntentOutputs(input) {
|
|
13
|
+
const mintPolicy = requireMintPolicy(input.mintPolicy);
|
|
14
|
+
const maxSupply = unsignedInteger(input.maxSupply, "maxSupply");
|
|
15
|
+
const premintSupply = unsignedInteger(input.premintSupply, "premintSupply");
|
|
16
|
+
const minterOutputs = [...(input.minterOutputs ?? [])];
|
|
17
|
+
if (maxSupply === 0n) {
|
|
18
|
+
throw new Error("KCC20 deploy receipt maxSupply must be positive");
|
|
19
|
+
}
|
|
20
|
+
if (premintSupply > maxSupply) {
|
|
21
|
+
throw new Error("KCC20 deploy receipt premintSupply cannot exceed maxSupply");
|
|
22
|
+
}
|
|
23
|
+
if (mintPolicy === 0) {
|
|
24
|
+
if (!input.fixedOutput) {
|
|
25
|
+
throw new Error("fixed KCC20 deploy receipt output is required");
|
|
26
|
+
}
|
|
27
|
+
if (minterOutputs.length || input.premintOutput) {
|
|
28
|
+
throw new Error("fixed KCC20 deploy receipt cannot contain mint-authority or premint outputs");
|
|
29
|
+
}
|
|
30
|
+
if (premintSupply !== maxSupply) {
|
|
31
|
+
throw new Error("fixed KCC20 deploy receipt must assign the full supply to its holder");
|
|
32
|
+
}
|
|
33
|
+
assertUniqueOutputIndexes([input.fixedOutput]);
|
|
34
|
+
return [
|
|
35
|
+
holderIntent("fixed-supply-token", input.fixedOutput, input, maxSupply),
|
|
36
|
+
];
|
|
37
|
+
}
|
|
38
|
+
if (!minterOutputs.length) {
|
|
39
|
+
throw new Error("mintable KCC20 deploy receipt requires at least one mint-authority lane");
|
|
40
|
+
}
|
|
41
|
+
if (input.fixedOutput) {
|
|
42
|
+
throw new Error("mintable KCC20 deploy receipt cannot contain a fixed-supply output");
|
|
43
|
+
}
|
|
44
|
+
const hasPremint = premintSupply > 0n;
|
|
45
|
+
if (hasPremint !== Boolean(input.premintOutput)) {
|
|
46
|
+
throw new Error("mintable KCC20 deploy receipt premint output does not match premintSupply");
|
|
47
|
+
}
|
|
48
|
+
const laneSupplies = minterOutputs.map((output, laneIndex) => {
|
|
49
|
+
const supply = unsignedInteger(output.remainingSupply, `mint lane ${laneIndex} remainingSupply`);
|
|
50
|
+
if (supply === 0n) {
|
|
51
|
+
throw new Error(`mint lane ${laneIndex} remainingSupply must be positive`);
|
|
52
|
+
}
|
|
53
|
+
return supply;
|
|
54
|
+
});
|
|
55
|
+
const laneSupply = laneSupplies.reduce((sum, supply) => sum + supply, 0n);
|
|
56
|
+
if (laneSupply + premintSupply !== maxSupply) {
|
|
57
|
+
throw new Error("mintable KCC20 deploy receipt lane and premint supply must equal maxSupply");
|
|
58
|
+
}
|
|
59
|
+
assertUniqueOutputIndexes([
|
|
60
|
+
...minterOutputs,
|
|
61
|
+
...(input.premintOutput ? [input.premintOutput] : []),
|
|
62
|
+
]);
|
|
63
|
+
const intents = minterOutputs.map((output, laneIndex) => ({
|
|
64
|
+
role: "mint-authority",
|
|
65
|
+
shard: laneIndex,
|
|
66
|
+
mintLaneIndex: laneIndex,
|
|
67
|
+
index: output.index,
|
|
68
|
+
covenantId: input.covenantId,
|
|
69
|
+
revealScriptHex: output.revealScriptHex,
|
|
70
|
+
owner: input.creator,
|
|
71
|
+
ownerScheme: 0,
|
|
72
|
+
borrowScheme: 0,
|
|
73
|
+
borrowGuard: input.borrowGuard,
|
|
74
|
+
extensionCommitment: output.extensionCommitment,
|
|
75
|
+
tokenAmount: "0",
|
|
76
|
+
remainingSupply: laneSupplies[laneIndex].toString(),
|
|
77
|
+
}));
|
|
78
|
+
if (input.premintOutput) {
|
|
79
|
+
intents.push(holderIntent("premint-holder", input.premintOutput, input, premintSupply));
|
|
80
|
+
}
|
|
81
|
+
return intents;
|
|
82
|
+
}
|
|
83
|
+
function holderIntent(role, output, input, tokenAmount) {
|
|
84
|
+
return {
|
|
85
|
+
role,
|
|
86
|
+
index: output.index,
|
|
87
|
+
covenantId: input.covenantId,
|
|
88
|
+
revealScriptHex: output.revealScriptHex,
|
|
89
|
+
owner: input.premintRecipient,
|
|
90
|
+
ownerScheme: input.premintOwnerScheme,
|
|
91
|
+
borrowScheme: 0,
|
|
92
|
+
borrowGuard: input.borrowGuard,
|
|
93
|
+
extensionCommitment: output.extensionCommitment,
|
|
94
|
+
tokenAmount: tokenAmount.toString(),
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function requireMintPolicy(value) {
|
|
98
|
+
if (!Number.isInteger(value) || value < 0 || value > 2) {
|
|
99
|
+
throw new Error("KCC20 deploy receipt mintPolicy must be 0, 1, or 2");
|
|
100
|
+
}
|
|
101
|
+
return value;
|
|
102
|
+
}
|
|
103
|
+
function assertUniqueOutputIndexes(outputs) {
|
|
104
|
+
const indexes = new Set();
|
|
105
|
+
for (const output of outputs) {
|
|
106
|
+
if (!Number.isInteger(output.index) || output.index < 0) {
|
|
107
|
+
throw new Error("KCC20 deploy receipt output index must be nonnegative");
|
|
108
|
+
}
|
|
109
|
+
if (indexes.has(output.index)) {
|
|
110
|
+
throw new Error("KCC20 deploy receipt output indexes must be unique");
|
|
111
|
+
}
|
|
112
|
+
indexes.add(output.index);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function unsignedInteger(value, label) {
|
|
116
|
+
const raw = String(value);
|
|
117
|
+
if (!/^(0|[1-9][0-9]*)$/.test(raw)) {
|
|
118
|
+
throw new Error(`${label} must be an unsigned integer`);
|
|
119
|
+
}
|
|
120
|
+
return BigInt(raw);
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=deploy-receipt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-receipt.js","sourceRoot":"","sources":["../../src/deploy-receipt.ts"],"names":[],"mappings":"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"}
|