ecash-lib 0.1.0-rc2 → 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/README.md +73 -15
- package/dist/ecc.d.ts +6 -2
- package/dist/ecc.d.ts.map +1 -1
- package/dist/ecc.js +9 -6
- package/dist/ecc.js.map +1 -1
- package/dist/ffi/ecash_lib_wasm_bg.wasm +0 -0
- package/dist/ffi/ecash_lib_wasm_bg_browser.wasm +0 -0
- package/dist/ffi/ecash_lib_wasm_bg_browser.wasm.d.ts +16 -0
- package/dist/ffi/ecash_lib_wasm_bg_nodejs.wasm +0 -0
- package/dist/ffi/ecash_lib_wasm_bg_nodejs.wasm.d.ts +16 -0
- package/dist/ffi/ecash_lib_wasm_browser.d.ts +90 -0
- package/dist/ffi/ecash_lib_wasm_browser.js +340 -0
- package/dist/ffi/ecash_lib_wasm_nodejs.d.ts +50 -0
- package/dist/ffi/ecash_lib_wasm_nodejs.js +265 -0
- package/dist/hash.d.ts +10 -4
- package/dist/hash.d.ts.map +1 -1
- package/dist/hash.js +20 -4
- package/dist/hash.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -21
- package/dist/index.js.map +1 -1
- package/dist/indexBrowser.d.ts +3 -0
- package/dist/indexBrowser.d.ts.map +1 -0
- package/dist/indexBrowser.js +22 -0
- package/dist/indexBrowser.js.map +1 -0
- package/dist/indexNodeJs.d.ts +3 -0
- package/dist/indexNodeJs.d.ts.map +1 -0
- package/dist/indexNodeJs.js +22 -0
- package/dist/indexNodeJs.js.map +1 -0
- package/dist/initBrowser.d.ts +3 -0
- package/dist/initBrowser.d.ts.map +1 -0
- package/dist/initBrowser.js +44 -0
- package/dist/initBrowser.js.map +1 -0
- package/dist/initNodeJs.d.ts +3 -0
- package/dist/initNodeJs.d.ts.map +1 -0
- package/dist/initNodeJs.js +43 -0
- package/dist/initNodeJs.js.map +1 -0
- package/dist/io/bytes.js +5 -1
- package/dist/io/bytes.js.map +1 -1
- package/dist/io/hex.js +11 -4
- package/dist/io/hex.js.map +1 -1
- package/dist/io/int.js +2 -1
- package/dist/io/int.js.map +1 -1
- package/dist/io/str.d.ts +2 -0
- package/dist/io/str.d.ts.map +1 -1
- package/dist/io/str.js +11 -1
- package/dist/io/str.js.map +1 -1
- package/dist/io/varsize.js +7 -2
- package/dist/io/varsize.js.map +1 -1
- package/dist/io/writer.js +2 -1
- package/dist/io/writer.js.map +1 -1
- package/dist/io/writerbytes.js +5 -1
- package/dist/io/writerbytes.js.map +1 -1
- package/dist/io/writerlength.js +5 -1
- package/dist/io/writerlength.js.map +1 -1
- package/dist/op.js +23 -16
- package/dist/op.js.map +1 -1
- package/dist/opcode.js +126 -121
- package/dist/opcode.js.map +1 -1
- package/dist/script.d.ts +1 -0
- package/dist/script.d.ts.map +1 -1
- package/dist/script.js +34 -25
- package/dist/script.js.map +1 -1
- package/dist/sigHashType.js +23 -19
- package/dist/sigHashType.js.map +1 -1
- package/dist/test/testRunner.d.ts +1 -1
- package/dist/test/testRunner.d.ts.map +1 -1
- package/dist/test/testRunner.js +51 -26
- package/dist/test/testRunner.js.map +1 -1
- package/dist/token/alp.js +43 -36
- package/dist/token/alp.js.map +1 -1
- package/dist/token/common.js +8 -5
- package/dist/token/common.js.map +1 -1
- package/dist/token/empp.js +13 -9
- package/dist/token/empp.js.map +1 -1
- package/dist/token/slp.js +61 -53
- package/dist/token/slp.js.map +1 -1
- package/dist/tx.d.ts +2 -0
- package/dist/tx.d.ts.map +1 -1
- package/dist/tx.js +39 -21
- package/dist/tx.js.map +1 -1
- package/dist/txBuilder.js +33 -25
- package/dist/txBuilder.js.map +1 -1
- package/dist/unsignedTx.js +34 -29
- package/dist/unsignedTx.js.map +1 -1
- package/package.json +3 -3
- package/tsconfig.json +1 -2
- package/tests/alp.test.ts +0 -383
- package/tests/slp.test.ts +0 -1124
- package/tests/txBuilder.test.ts +0 -562
package/dist/test/testRunner.js
CHANGED
|
@@ -1,22 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// Copyright (c) 2024 The Bitcoin developers
|
|
2
3
|
// Distributed under the MIT software license, see the accompanying
|
|
3
4
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.TestRunner = void 0;
|
|
30
|
+
const ecc_js_1 = require("../ecc.js");
|
|
31
|
+
const hash_js_1 = require("../hash.js");
|
|
32
|
+
const hex_js_1 = require("../io/hex.js");
|
|
33
|
+
const op_js_1 = require("../op.js");
|
|
34
|
+
const opcode_js_1 = require("../opcode.js");
|
|
35
|
+
const script_js_1 = require("../script.js");
|
|
36
|
+
const tx_js_1 = require("../tx.js");
|
|
37
|
+
const OP_TRUE_SCRIPT = script_js_1.Script.fromOps([opcode_js_1.OP_1]);
|
|
38
|
+
const OP_TRUE_SCRIPT_SIG = script_js_1.Script.fromOps([
|
|
39
|
+
(0, op_js_1.pushBytesOp)(OP_TRUE_SCRIPT.bytecode),
|
|
15
40
|
]);
|
|
16
41
|
// Like OP_TRUE_SCRIPT but much bigger to avoid undersize
|
|
17
|
-
const ANYONE_SCRIPT = Script.fromOps([pushBytesOp(fromHex('01'.repeat(100)))]);
|
|
18
|
-
const ANYONE_SCRIPT_SIG = Script.fromOps([pushBytesOp(ANYONE_SCRIPT.bytecode)]);
|
|
19
|
-
|
|
42
|
+
const ANYONE_SCRIPT = script_js_1.Script.fromOps([(0, op_js_1.pushBytesOp)((0, hex_js_1.fromHex)('01'.repeat(100)))]);
|
|
43
|
+
const ANYONE_SCRIPT_SIG = script_js_1.Script.fromOps([(0, op_js_1.pushBytesOp)(ANYONE_SCRIPT.bytecode)]);
|
|
44
|
+
class TestRunner {
|
|
20
45
|
constructor(ecc, runner, chronik) {
|
|
21
46
|
this.ecc = ecc;
|
|
22
47
|
this.runner = runner;
|
|
@@ -25,9 +50,9 @@ export class TestRunner {
|
|
|
25
50
|
this.lastUsedOutIdx = 0;
|
|
26
51
|
}
|
|
27
52
|
static async setup() {
|
|
28
|
-
const { ChronikClientNode } = await
|
|
29
|
-
const { spawn } = await
|
|
30
|
-
const events = await
|
|
53
|
+
const { ChronikClientNode } = await Promise.resolve().then(() => __importStar(require('chronik-client')));
|
|
54
|
+
const { spawn } = await Promise.resolve().then(() => __importStar(require('node:child_process')));
|
|
55
|
+
const events = await Promise.resolve().then(() => __importStar(require('node:events')));
|
|
31
56
|
const statusEvent = new events.EventEmitter();
|
|
32
57
|
const runner = spawn('python3', [
|
|
33
58
|
'test/functional/test_runner.py',
|
|
@@ -77,8 +102,7 @@ export class TestRunner {
|
|
|
77
102
|
}
|
|
78
103
|
}
|
|
79
104
|
});
|
|
80
|
-
|
|
81
|
-
const ecc = new EccWasm();
|
|
105
|
+
const ecc = new ecc_js_1.Ecc();
|
|
82
106
|
// We got the coins, can fan out now
|
|
83
107
|
await events.once(statusEvent, 'ready');
|
|
84
108
|
if (chronik === undefined) {
|
|
@@ -87,11 +111,11 @@ export class TestRunner {
|
|
|
87
111
|
return new TestRunner(ecc, runner, chronik);
|
|
88
112
|
}
|
|
89
113
|
async setupCoins(numCoins, coinValue) {
|
|
90
|
-
const opTrueScriptHash = shaRmd160(OP_TRUE_SCRIPT.bytecode);
|
|
91
|
-
const utxo = (await this.chronik.script('p2sh', toHex(opTrueScriptHash)).utxos()).utxos[0];
|
|
92
|
-
const anyoneScriptHash = shaRmd160(ANYONE_SCRIPT.bytecode);
|
|
93
|
-
const anyoneP2sh = Script.p2sh(anyoneScriptHash);
|
|
94
|
-
const tx = new Tx({
|
|
114
|
+
const opTrueScriptHash = (0, hash_js_1.shaRmd160)(OP_TRUE_SCRIPT.bytecode);
|
|
115
|
+
const utxo = (await this.chronik.script('p2sh', (0, hex_js_1.toHex)(opTrueScriptHash)).utxos()).utxos[0];
|
|
116
|
+
const anyoneScriptHash = (0, hash_js_1.shaRmd160)(ANYONE_SCRIPT.bytecode);
|
|
117
|
+
const anyoneP2sh = script_js_1.Script.p2sh(anyoneScriptHash);
|
|
118
|
+
const tx = new tx_js_1.Tx({
|
|
95
119
|
inputs: [
|
|
96
120
|
{
|
|
97
121
|
prevOut: utxo.outpoint,
|
|
@@ -108,7 +132,7 @@ export class TestRunner {
|
|
|
108
132
|
}
|
|
109
133
|
tx.outputs.push({
|
|
110
134
|
value: 0,
|
|
111
|
-
script: Script.fromOps([OP_RETURN]),
|
|
135
|
+
script: script_js_1.Script.fromOps([opcode_js_1.OP_RETURN]),
|
|
112
136
|
});
|
|
113
137
|
tx.outputs[tx.outputs.length - 1].value =
|
|
114
138
|
utxo.value - numCoins * coinValue - tx.serSize();
|
|
@@ -124,7 +148,7 @@ export class TestRunner {
|
|
|
124
148
|
};
|
|
125
149
|
}
|
|
126
150
|
async sendToScript(value, script) {
|
|
127
|
-
const setupTx = new Tx({
|
|
151
|
+
const setupTx = new tx_js_1.Tx({
|
|
128
152
|
inputs: [
|
|
129
153
|
{
|
|
130
154
|
prevOut: this.getOutpoint(),
|
|
@@ -143,4 +167,5 @@ export class TestRunner {
|
|
|
143
167
|
this.runner.send('stop');
|
|
144
168
|
}
|
|
145
169
|
}
|
|
170
|
+
exports.TestRunner = TestRunner;
|
|
146
171
|
//# sourceMappingURL=testRunner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testRunner.js","sourceRoot":"","sources":["../../src/test/testRunner.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE
|
|
1
|
+
{"version":3,"file":"testRunner.js","sourceRoot":"","sources":["../../src/test/testRunner.ts"],"names":[],"mappings":"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"}
|
package/dist/token/alp.js
CHANGED
|
@@ -1,93 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// Copyright (c) 2024 The Bitcoin developers
|
|
2
3
|
// Distributed under the MIT software license, see the accompanying
|
|
3
4
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.alpBurn = exports.alpSend = exports.alpMint = exports.alpGenesis = exports.ALP_STANDARD = exports.ALP_LOKAD_ID = void 0;
|
|
7
|
+
const hex_js_1 = require("../io/hex.js");
|
|
8
|
+
const str_js_1 = require("../io/str.js");
|
|
9
|
+
const writerbytes_js_1 = require("../io/writerbytes.js");
|
|
10
|
+
const writerlength_js_1 = require("../io/writerlength.js");
|
|
11
|
+
const common_js_1 = require("./common.js");
|
|
9
12
|
/** LOKAD ID for ALP */
|
|
10
|
-
|
|
13
|
+
exports.ALP_LOKAD_ID = (0, str_js_1.strToBytes)('SLP2');
|
|
11
14
|
/** ALP standard token type number */
|
|
12
|
-
|
|
15
|
+
exports.ALP_STANDARD = 0;
|
|
13
16
|
/** Build an ALP GENESIS pushdata section, creating a new ALP token */
|
|
14
|
-
|
|
17
|
+
function alpGenesis(tokenType, genesisInfo, mintData) {
|
|
15
18
|
const writeSection = (writer) => {
|
|
16
|
-
writer.putBytes(ALP_LOKAD_ID);
|
|
19
|
+
writer.putBytes(exports.ALP_LOKAD_ID);
|
|
17
20
|
writer.putU8(tokenType);
|
|
18
|
-
putVarBytes(GENESIS, writer);
|
|
19
|
-
putVarBytes(strToBytes(genesisInfo.tokenTicker ?? ''), writer);
|
|
20
|
-
putVarBytes(strToBytes(genesisInfo.tokenName ?? ''), writer);
|
|
21
|
-
putVarBytes(strToBytes(genesisInfo.url ?? ''), writer);
|
|
21
|
+
putVarBytes(common_js_1.GENESIS, writer);
|
|
22
|
+
putVarBytes((0, str_js_1.strToBytes)(genesisInfo.tokenTicker ?? ''), writer);
|
|
23
|
+
putVarBytes((0, str_js_1.strToBytes)(genesisInfo.tokenName ?? ''), writer);
|
|
24
|
+
putVarBytes((0, str_js_1.strToBytes)(genesisInfo.url ?? ''), writer);
|
|
22
25
|
putVarBytes(genesisInfo.data ?? new Uint8Array(), writer);
|
|
23
|
-
putVarBytes(fromHex(genesisInfo.authPubkey ?? ''), writer);
|
|
26
|
+
putVarBytes((0, hex_js_1.fromHex)(genesisInfo.authPubkey ?? ''), writer);
|
|
24
27
|
writer.putU8(genesisInfo.decimals ?? 0);
|
|
25
28
|
putMintData(mintData, writer);
|
|
26
29
|
};
|
|
27
|
-
const writerLength = new WriterLength();
|
|
30
|
+
const writerLength = new writerlength_js_1.WriterLength();
|
|
28
31
|
writeSection(writerLength);
|
|
29
|
-
const writerBytes = new WriterBytes(writerLength.length);
|
|
32
|
+
const writerBytes = new writerbytes_js_1.WriterBytes(writerLength.length);
|
|
30
33
|
writeSection(writerBytes);
|
|
31
34
|
return writerBytes.data;
|
|
32
35
|
}
|
|
36
|
+
exports.alpGenesis = alpGenesis;
|
|
33
37
|
/**
|
|
34
38
|
* Build an ALP MINT pushdata section, creating new ALP tokens and mint batons
|
|
35
39
|
* of the given token ID.
|
|
36
40
|
**/
|
|
37
|
-
|
|
38
|
-
const tokenIdBytes = fromHexRev(tokenId);
|
|
41
|
+
function alpMint(tokenId, tokenType, mintData) {
|
|
42
|
+
const tokenIdBytes = (0, hex_js_1.fromHexRev)(tokenId);
|
|
39
43
|
const writeSection = (writer) => {
|
|
40
|
-
writer.putBytes(ALP_LOKAD_ID);
|
|
44
|
+
writer.putBytes(exports.ALP_LOKAD_ID);
|
|
41
45
|
writer.putU8(tokenType);
|
|
42
|
-
putVarBytes(MINT, writer);
|
|
46
|
+
putVarBytes(common_js_1.MINT, writer);
|
|
43
47
|
writer.putBytes(tokenIdBytes);
|
|
44
48
|
putMintData(mintData, writer);
|
|
45
49
|
};
|
|
46
|
-
const writerLength = new WriterLength();
|
|
50
|
+
const writerLength = new writerlength_js_1.WriterLength();
|
|
47
51
|
writeSection(writerLength);
|
|
48
|
-
const writerBytes = new WriterBytes(writerLength.length);
|
|
52
|
+
const writerBytes = new writerbytes_js_1.WriterBytes(writerLength.length);
|
|
49
53
|
writeSection(writerBytes);
|
|
50
54
|
return writerBytes.data;
|
|
51
55
|
}
|
|
56
|
+
exports.alpMint = alpMint;
|
|
52
57
|
/**
|
|
53
58
|
* Build an ALP SEND pushdata section, moving ALP tokens to different outputs
|
|
54
59
|
**/
|
|
55
|
-
|
|
56
|
-
const tokenIdBytes = fromHexRev(tokenId);
|
|
60
|
+
function alpSend(tokenId, tokenType, sendAmounts) {
|
|
61
|
+
const tokenIdBytes = (0, hex_js_1.fromHexRev)(tokenId);
|
|
57
62
|
const writeSection = (writer) => {
|
|
58
|
-
writer.putBytes(ALP_LOKAD_ID);
|
|
63
|
+
writer.putBytes(exports.ALP_LOKAD_ID);
|
|
59
64
|
writer.putU8(tokenType);
|
|
60
|
-
writer.putU8(SEND.length);
|
|
61
|
-
writer.putBytes(SEND);
|
|
65
|
+
writer.putU8(common_js_1.SEND.length);
|
|
66
|
+
writer.putBytes(common_js_1.SEND);
|
|
62
67
|
writer.putBytes(tokenIdBytes);
|
|
63
68
|
writer.putU8(sendAmounts.length);
|
|
64
69
|
for (const amount of sendAmounts) {
|
|
65
70
|
putAlpAmount(amount, writer);
|
|
66
71
|
}
|
|
67
72
|
};
|
|
68
|
-
const writerLength = new WriterLength();
|
|
73
|
+
const writerLength = new writerlength_js_1.WriterLength();
|
|
69
74
|
writeSection(writerLength);
|
|
70
|
-
const writerBytes = new WriterBytes(writerLength.length);
|
|
75
|
+
const writerBytes = new writerbytes_js_1.WriterBytes(writerLength.length);
|
|
71
76
|
writeSection(writerBytes);
|
|
72
77
|
return writerBytes.data;
|
|
73
78
|
}
|
|
79
|
+
exports.alpSend = alpSend;
|
|
74
80
|
/** Build an ALP BURN pushdata section, intentionally burning ALP tokens. */
|
|
75
|
-
|
|
76
|
-
const tokenIdBytes = fromHexRev(tokenId);
|
|
81
|
+
function alpBurn(tokenId, tokenType, burnAmount) {
|
|
82
|
+
const tokenIdBytes = (0, hex_js_1.fromHexRev)(tokenId);
|
|
77
83
|
const writeSection = (writer) => {
|
|
78
|
-
writer.putBytes(ALP_LOKAD_ID);
|
|
84
|
+
writer.putBytes(exports.ALP_LOKAD_ID);
|
|
79
85
|
writer.putU8(tokenType);
|
|
80
|
-
writer.putU8(BURN.length);
|
|
81
|
-
writer.putBytes(BURN);
|
|
86
|
+
writer.putU8(common_js_1.BURN.length);
|
|
87
|
+
writer.putBytes(common_js_1.BURN);
|
|
82
88
|
writer.putBytes(tokenIdBytes);
|
|
83
89
|
putAlpAmount(burnAmount, writer);
|
|
84
90
|
};
|
|
85
|
-
const writerLength = new WriterLength();
|
|
91
|
+
const writerLength = new writerlength_js_1.WriterLength();
|
|
86
92
|
writeSection(writerLength);
|
|
87
|
-
const writerBytes = new WriterBytes(writerLength.length);
|
|
93
|
+
const writerBytes = new writerbytes_js_1.WriterBytes(writerLength.length);
|
|
88
94
|
writeSection(writerBytes);
|
|
89
95
|
return writerBytes.data;
|
|
90
96
|
}
|
|
97
|
+
exports.alpBurn = alpBurn;
|
|
91
98
|
function putMintData(mintData, writer) {
|
|
92
99
|
writer.putU8(mintData.amounts.length);
|
|
93
100
|
for (const amount of mintData.amounts) {
|
package/dist/token/alp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alp.js","sourceRoot":"","sources":["../../src/token/alp.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE
|
|
1
|
+
{"version":3,"file":"alp.js","sourceRoot":"","sources":["../../src/token/alp.ts"],"names":[],"mappings":"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"}
|
package/dist/token/common.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// Copyright (c) 2024 The Bitcoin developers
|
|
2
3
|
// Distributed under the MIT software license, see the accompanying
|
|
3
4
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BURN = exports.SEND = exports.MINT = exports.GENESIS = void 0;
|
|
7
|
+
const str_js_1 = require("../io/str.js");
|
|
8
|
+
exports.GENESIS = (0, str_js_1.strToBytes)('GENESIS');
|
|
9
|
+
exports.MINT = (0, str_js_1.strToBytes)('MINT');
|
|
10
|
+
exports.SEND = (0, str_js_1.strToBytes)('SEND');
|
|
11
|
+
exports.BURN = (0, str_js_1.strToBytes)('BURN');
|
|
9
12
|
//# sourceMappingURL=common.js.map
|
package/dist/token/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/token/common.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/token/common.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE;;;AAEtE,yCAA0C;AAI7B,QAAA,OAAO,GAAG,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;AAChC,QAAA,IAAI,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;AAC1B,QAAA,IAAI,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC;AAC1B,QAAA,IAAI,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,CAAC"}
|
package/dist/token/empp.js
CHANGED
|
@@ -1,27 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// Copyright (c) 2024 The Bitcoin developers
|
|
2
3
|
// Distributed under the MIT software license, see the accompanying
|
|
3
4
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.emppScript = void 0;
|
|
7
|
+
const op_js_1 = require("../op.js");
|
|
8
|
+
const opcode_js_1 = require("../opcode.js");
|
|
9
|
+
const script_js_1 = require("../script.js");
|
|
7
10
|
/** Build an eMPP OP_RETURN script with the given pushdata */
|
|
8
|
-
|
|
11
|
+
function emppScript(pushdata) {
|
|
9
12
|
if (pushdata.find(pushdata => pushdata.length == 0) !== undefined) {
|
|
10
13
|
throw new Error('Pushdata cannot be empty');
|
|
11
14
|
}
|
|
12
|
-
return Script.fromOps([
|
|
13
|
-
OP_RETURN,
|
|
14
|
-
OP_RESERVED,
|
|
15
|
+
return script_js_1.Script.fromOps([
|
|
16
|
+
opcode_js_1.OP_RETURN,
|
|
17
|
+
opcode_js_1.OP_RESERVED,
|
|
15
18
|
...pushdata.map(pushdataOpEmpp),
|
|
16
19
|
]);
|
|
17
20
|
}
|
|
21
|
+
exports.emppScript = emppScript;
|
|
18
22
|
function pushdataOpEmpp(pushdata) {
|
|
19
|
-
if (pushdata.length < OP_PUSHDATA1) {
|
|
23
|
+
if (pushdata.length < opcode_js_1.OP_PUSHDATA1) {
|
|
20
24
|
return {
|
|
21
25
|
opcode: pushdata.length,
|
|
22
26
|
data: pushdata,
|
|
23
27
|
};
|
|
24
28
|
}
|
|
25
|
-
return pushBytesOp(pushdata);
|
|
29
|
+
return (0, op_js_1.pushBytesOp)(pushdata);
|
|
26
30
|
}
|
|
27
31
|
//# sourceMappingURL=empp.js.map
|
package/dist/token/empp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"empp.js","sourceRoot":"","sources":["../../src/token/empp.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE
|
|
1
|
+
{"version":3,"file":"empp.js","sourceRoot":"","sources":["../../src/token/empp.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE;;;AAEtE,oCAA2C;AAC3C,4CAAoE;AACpE,4CAAsC;AAEtC,6DAA6D;AAC7D,SAAgB,UAAU,CAAC,QAAsB;IAC7C,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,kBAAM,CAAC,OAAO,CAAC;QAClB,qBAAS;QACT,uBAAW;QACX,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;KAClC,CAAC,CAAC;AACP,CAAC;AATD,gCASC;AAED,SAAS,cAAc,CAAC,QAAoB;IACxC,IAAI,QAAQ,CAAC,MAAM,GAAG,wBAAY,EAAE,CAAC;QACjC,OAAO;YACH,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,QAAQ;SACjB,CAAC;IACN,CAAC;IACD,OAAO,IAAA,mBAAW,EAAC,QAAQ,CAAC,CAAC;AACjC,CAAC"}
|
package/dist/token/slp.js
CHANGED
|
@@ -1,39 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
1
2
|
// Copyright (c) 2024 The Bitcoin developers
|
|
2
3
|
// Distributed under the MIT software license, see the accompanying
|
|
3
4
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.slpBurn = exports.slpSend = exports.slpMintVault = exports.slpMint = exports.slpGenesis = exports.SLP_NFT1_GROUP = exports.SLP_NFT1_CHILD = exports.SLP_MINT_VAULT = exports.SLP_FUNGIBLE = exports.SLP_LOKAD_ID = void 0;
|
|
7
|
+
const hex_js_1 = require("../io/hex.js");
|
|
8
|
+
const str_js_1 = require("../io/str.js");
|
|
9
|
+
const op_js_1 = require("../op.js");
|
|
10
|
+
const opcode_js_1 = require("../opcode.js");
|
|
11
|
+
const script_js_1 = require("../script.js");
|
|
12
|
+
const common_js_1 = require("./common.js");
|
|
10
13
|
/** LOKAD ID for SLP */
|
|
11
|
-
|
|
14
|
+
exports.SLP_LOKAD_ID = (0, str_js_1.strToBytes)('SLP\0');
|
|
12
15
|
/** SLP fungible token type number */
|
|
13
|
-
|
|
16
|
+
exports.SLP_FUNGIBLE = 1;
|
|
14
17
|
/** SLP MINT Vault token type number */
|
|
15
|
-
|
|
18
|
+
exports.SLP_MINT_VAULT = 2;
|
|
16
19
|
/** SLP NFT1 Child token type number */
|
|
17
|
-
|
|
20
|
+
exports.SLP_NFT1_CHILD = 0x41;
|
|
18
21
|
/** SLP NFT1 Group token type number */
|
|
19
|
-
|
|
22
|
+
exports.SLP_NFT1_GROUP = 0x81;
|
|
20
23
|
/** Build an SLP GENESIS OP_RETURN, creating a new SLP token */
|
|
21
|
-
|
|
24
|
+
function slpGenesis(tokenType, genesisInfo, initialQuantity, mintBatonOutIdx) {
|
|
22
25
|
verifyTokenType(tokenType);
|
|
23
26
|
const data = [];
|
|
24
|
-
data.push(SLP_LOKAD_ID);
|
|
27
|
+
data.push(exports.SLP_LOKAD_ID);
|
|
25
28
|
data.push(new Uint8Array([tokenType]));
|
|
26
|
-
data.push(GENESIS);
|
|
27
|
-
data.push(strToBytes(genesisInfo.tokenTicker ?? ''));
|
|
28
|
-
data.push(strToBytes(genesisInfo.tokenName ?? ''));
|
|
29
|
-
data.push(strToBytes(genesisInfo.url ?? ''));
|
|
30
|
-
data.push(genesisInfo.hash ? fromHex(genesisInfo.hash) : new Uint8Array());
|
|
29
|
+
data.push(common_js_1.GENESIS);
|
|
30
|
+
data.push((0, str_js_1.strToBytes)(genesisInfo.tokenTicker ?? ''));
|
|
31
|
+
data.push((0, str_js_1.strToBytes)(genesisInfo.tokenName ?? ''));
|
|
32
|
+
data.push((0, str_js_1.strToBytes)(genesisInfo.url ?? ''));
|
|
33
|
+
data.push(genesisInfo.hash ? (0, hex_js_1.fromHex)(genesisInfo.hash) : new Uint8Array());
|
|
31
34
|
data.push(new Uint8Array([genesisInfo.decimals ?? 0]));
|
|
32
|
-
if (tokenType == SLP_MINT_VAULT) {
|
|
35
|
+
if (tokenType == exports.SLP_MINT_VAULT) {
|
|
33
36
|
if (genesisInfo.mintVaultScripthash === undefined) {
|
|
34
37
|
throw new Error('Must set mintVaultScripthash for MINT VAULT');
|
|
35
38
|
}
|
|
36
|
-
data.push(fromHex(genesisInfo.mintVaultScripthash));
|
|
39
|
+
data.push((0, hex_js_1.fromHex)(genesisInfo.mintVaultScripthash));
|
|
37
40
|
}
|
|
38
41
|
else {
|
|
39
42
|
if (mintBatonOutIdx !== undefined) {
|
|
@@ -47,77 +50,82 @@ export function slpGenesis(tokenType, genesisInfo, initialQuantity, mintBatonOut
|
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
52
|
data.push(slpAmount(initialQuantity));
|
|
50
|
-
return Script.fromOps([OP_RETURN].concat(data.map(pushdataOpSlp)));
|
|
53
|
+
return script_js_1.Script.fromOps([opcode_js_1.OP_RETURN].concat(data.map(pushdataOpSlp)));
|
|
51
54
|
}
|
|
55
|
+
exports.slpGenesis = slpGenesis;
|
|
52
56
|
/**
|
|
53
57
|
* Build an SLP MINT pushdata section, creating new SLP tokens and mint batons
|
|
54
58
|
* of the given token ID.
|
|
55
59
|
**/
|
|
56
|
-
|
|
60
|
+
function slpMint(tokenId, tokenType, additionalQuantity, mintBatonOutIdx) {
|
|
57
61
|
verifyTokenType(tokenType);
|
|
58
62
|
verifyTokenId(tokenId);
|
|
59
|
-
return Script.fromOps([
|
|
60
|
-
OP_RETURN,
|
|
61
|
-
pushdataOpSlp(SLP_LOKAD_ID),
|
|
63
|
+
return script_js_1.Script.fromOps([
|
|
64
|
+
opcode_js_1.OP_RETURN,
|
|
65
|
+
pushdataOpSlp(exports.SLP_LOKAD_ID),
|
|
62
66
|
pushdataOpSlp(new Uint8Array([tokenType])),
|
|
63
|
-
pushdataOpSlp(MINT),
|
|
64
|
-
pushdataOpSlp(fromHex(tokenId)),
|
|
67
|
+
pushdataOpSlp(common_js_1.MINT),
|
|
68
|
+
pushdataOpSlp((0, hex_js_1.fromHex)(tokenId)),
|
|
65
69
|
pushdataOpSlp(new Uint8Array(mintBatonOutIdx !== undefined ? [mintBatonOutIdx] : [])),
|
|
66
70
|
pushdataOpSlp(slpAmount(additionalQuantity)),
|
|
67
71
|
]);
|
|
68
72
|
}
|
|
73
|
+
exports.slpMint = slpMint;
|
|
69
74
|
/**
|
|
70
75
|
* Build an SLP MINT VAULT pushdata section, creating new SLP tokens and mint batons
|
|
71
76
|
* of the given token ID.
|
|
72
77
|
**/
|
|
73
|
-
|
|
78
|
+
function slpMintVault(tokenId, additionalQuantities) {
|
|
74
79
|
verifyTokenId(tokenId);
|
|
75
80
|
verifySendAmounts(additionalQuantities);
|
|
76
|
-
return Script.fromOps([
|
|
77
|
-
OP_RETURN,
|
|
78
|
-
pushdataOpSlp(SLP_LOKAD_ID),
|
|
79
|
-
pushdataOpSlp(new Uint8Array([SLP_MINT_VAULT])),
|
|
80
|
-
pushdataOpSlp(MINT),
|
|
81
|
-
pushdataOpSlp(fromHex(tokenId)),
|
|
81
|
+
return script_js_1.Script.fromOps([
|
|
82
|
+
opcode_js_1.OP_RETURN,
|
|
83
|
+
pushdataOpSlp(exports.SLP_LOKAD_ID),
|
|
84
|
+
pushdataOpSlp(new Uint8Array([exports.SLP_MINT_VAULT])),
|
|
85
|
+
pushdataOpSlp(common_js_1.MINT),
|
|
86
|
+
pushdataOpSlp((0, hex_js_1.fromHex)(tokenId)),
|
|
82
87
|
].concat(additionalQuantities.map(qty => pushdataOpSlp(slpAmount(qty)))));
|
|
83
88
|
}
|
|
89
|
+
exports.slpMintVault = slpMintVault;
|
|
84
90
|
/**
|
|
85
91
|
* Build an SLP SEND pushdata section, moving SLP tokens to different outputs
|
|
86
92
|
**/
|
|
87
|
-
|
|
93
|
+
function slpSend(tokenId, tokenType, sendAmounts) {
|
|
88
94
|
verifyTokenType(tokenType);
|
|
89
95
|
verifyTokenId(tokenId);
|
|
90
96
|
verifySendAmounts(sendAmounts);
|
|
91
|
-
return Script.fromOps([
|
|
92
|
-
OP_RETURN,
|
|
93
|
-
pushdataOpSlp(SLP_LOKAD_ID),
|
|
97
|
+
return script_js_1.Script.fromOps([
|
|
98
|
+
opcode_js_1.OP_RETURN,
|
|
99
|
+
pushdataOpSlp(exports.SLP_LOKAD_ID),
|
|
94
100
|
pushdataOpSlp(new Uint8Array([tokenType])),
|
|
95
|
-
pushdataOpSlp(SEND),
|
|
96
|
-
pushdataOpSlp(fromHex(tokenId)),
|
|
101
|
+
pushdataOpSlp(common_js_1.SEND),
|
|
102
|
+
pushdataOpSlp((0, hex_js_1.fromHex)(tokenId)),
|
|
97
103
|
].concat(sendAmounts.map(qty => pushdataOpSlp(slpAmount(qty)))));
|
|
98
104
|
}
|
|
105
|
+
exports.slpSend = slpSend;
|
|
99
106
|
/**
|
|
100
107
|
* Build an SLP BURN pushdata section, intentionally burning SLP tokens.
|
|
101
108
|
* See https://github.com/badger-cash/slp-self-mint-protocol/blob/master/token-type1-burn.md
|
|
102
109
|
**/
|
|
103
|
-
|
|
110
|
+
function slpBurn(tokenId, tokenType, burnAmount) {
|
|
104
111
|
verifyTokenType(tokenType);
|
|
105
112
|
verifyTokenId(tokenId);
|
|
106
|
-
return Script.fromOps([
|
|
107
|
-
OP_RETURN,
|
|
108
|
-
pushdataOpSlp(SLP_LOKAD_ID),
|
|
113
|
+
return script_js_1.Script.fromOps([
|
|
114
|
+
opcode_js_1.OP_RETURN,
|
|
115
|
+
pushdataOpSlp(exports.SLP_LOKAD_ID),
|
|
109
116
|
pushdataOpSlp(new Uint8Array([tokenType])),
|
|
110
|
-
pushdataOpSlp(BURN),
|
|
111
|
-
pushdataOpSlp(fromHex(tokenId)),
|
|
117
|
+
pushdataOpSlp(common_js_1.BURN),
|
|
118
|
+
pushdataOpSlp((0, hex_js_1.fromHex)(tokenId)),
|
|
112
119
|
pushdataOpSlp(slpAmount(burnAmount)),
|
|
113
120
|
]);
|
|
114
121
|
}
|
|
122
|
+
exports.slpBurn = slpBurn;
|
|
115
123
|
function verifyTokenType(tokenType) {
|
|
116
124
|
switch (tokenType) {
|
|
117
|
-
case SLP_FUNGIBLE:
|
|
118
|
-
case SLP_MINT_VAULT:
|
|
119
|
-
case SLP_NFT1_GROUP:
|
|
120
|
-
case SLP_NFT1_CHILD:
|
|
125
|
+
case exports.SLP_FUNGIBLE:
|
|
126
|
+
case exports.SLP_MINT_VAULT:
|
|
127
|
+
case exports.SLP_NFT1_GROUP:
|
|
128
|
+
case exports.SLP_NFT1_CHILD:
|
|
121
129
|
return;
|
|
122
130
|
default:
|
|
123
131
|
throw new Error(`Unknown token type ${tokenType}`);
|
|
@@ -139,17 +147,17 @@ function verifySendAmounts(sendAmounts) {
|
|
|
139
147
|
function pushdataOpSlp(pushdata) {
|
|
140
148
|
if (pushdata.length == 0) {
|
|
141
149
|
return {
|
|
142
|
-
opcode: OP_PUSHDATA1,
|
|
150
|
+
opcode: opcode_js_1.OP_PUSHDATA1,
|
|
143
151
|
data: pushdata,
|
|
144
152
|
};
|
|
145
153
|
}
|
|
146
|
-
if (pushdata.length < OP_PUSHDATA1) {
|
|
154
|
+
if (pushdata.length < opcode_js_1.OP_PUSHDATA1) {
|
|
147
155
|
return {
|
|
148
156
|
opcode: pushdata.length,
|
|
149
157
|
data: pushdata,
|
|
150
158
|
};
|
|
151
159
|
}
|
|
152
|
-
return pushBytesOp(pushdata);
|
|
160
|
+
return (0, op_js_1.pushBytesOp)(pushdata);
|
|
153
161
|
}
|
|
154
162
|
function slpAmount(amount) {
|
|
155
163
|
if (amount < 0 || BigInt(amount) > 0xffffffffffffffffn) {
|
package/dist/token/slp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slp.js","sourceRoot":"","sources":["../../src/token/slp.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE
|
|
1
|
+
{"version":3,"file":"slp.js","sourceRoot":"","sources":["../../src/token/slp.ts"],"names":[],"mappings":"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"}
|
package/dist/tx.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Bytes } from './io/bytes.js';
|
|
1
2
|
import { Writer } from './io/writer.js';
|
|
2
3
|
import { Script } from './script.js';
|
|
3
4
|
/**
|
|
@@ -74,6 +75,7 @@ export declare class Tx {
|
|
|
74
75
|
/** Write the tx to the given writer */
|
|
75
76
|
write(writer: Writer): void;
|
|
76
77
|
}
|
|
78
|
+
export declare function readTxOutput(bytes: Bytes): TxOutput;
|
|
77
79
|
/** Write an outpoint to a Writer */
|
|
78
80
|
export declare function writeOutPoint(outpoint: OutPoint, writer: Writer): void;
|
|
79
81
|
/** Write a TxInput to a Writer */
|