ecash-lib 0.1.3 → 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/README.md +1 -0
- package/dist/script.d.ts +1 -0
- package/dist/script.d.ts.map +1 -1
- package/dist/script.js +55 -0
- package/dist/script.js.map +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -99,3 +99,4 @@ console.log(toHex(rawTx));
|
|
|
99
99
|
- 0.1.1 - Validation that feePerKb is an integer
|
|
100
100
|
- 0.1.2 - Upgrade dependencies [D16373](https://reviews.bitcoinabc.org/D16373)
|
|
101
101
|
- 0.1.3 - Export `slpAmount` function [D16379](https://reviews.bitcoinabc.org/D16379)
|
|
102
|
+
- 0.2.0 - Add `Script.fromAddress` method to convert cashaddr addresses to `Script`
|
package/dist/script.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export declare class Script {
|
|
|
14
14
|
static readWithSize(bytes: Bytes): Script;
|
|
15
15
|
/** Build a Script from the given Script Ops */
|
|
16
16
|
static fromOps(ops: Op[]): Script;
|
|
17
|
+
static fromAddress(address: string): Script;
|
|
17
18
|
/** Iterate over the Ops of this Script */
|
|
18
19
|
ops(): ScriptOpIter;
|
|
19
20
|
/** Create a deep copy of this Script */
|
package/dist/script.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"script.d.ts","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAIxC,OAAO,EAAE,EAAE,EAAgC,MAAM,SAAS,CAAC;AAS3D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAGtC,gDAAgD;AAChD,qBAAa,MAAM;IACR,QAAQ,EAAE,UAAU,CAAC;IAE5B,2DAA2D;gBACxC,QAAQ,CAAC,EAAE,UAAU;IAIxC;;;QAGI;IACG,aAAa,CAAC,MAAM,EAAE,MAAM;WAKrB,YAAY,CAAC,KAAK,EAAE,KAAK;IAKvC,+CAA+C;WACjC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,MAAM;WAc1B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAkClD,0CAA0C;IACnC,GAAG,IAAI,YAAY;IAI1B,wCAAwC;IACjC,IAAI,IAAI,MAAM;IAIrB;;;;;;;;;;;;;;;;;;OAkBG;IACI,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAe9C;;;QAGI;IACG,MAAM,IAAI,OAAO;IAWxB,oDAAoD;WACtC,IAAI,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM;IASlD,yDAAyD;WAC3C,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAa5C,oDAAoD;WACtC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM;CAGpE;AAED,yCAAyC;AACzC,qBAAa,YAAY;IACrB,KAAK,EAAE,KAAK,CAAC;gBAEM,KAAK,EAAE,KAAK;IAI/B;;;OAGG;IACI,IAAI,IAAI,EAAE,GAAG,SAAS;CAMhC"}
|
package/dist/script.js
CHANGED
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
// Copyright (c) 2024 The Bitcoin developers
|
|
3
3
|
// Distributed under the MIT software license, see the accompanying
|
|
4
4
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
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
|
+
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
29
|
exports.ScriptOpIter = exports.Script = void 0;
|
|
7
30
|
const varsize_js_1 = require("./io/varsize.js");
|
|
@@ -10,6 +33,7 @@ const writerbytes_js_1 = require("./io/writerbytes.js");
|
|
|
10
33
|
const op_js_1 = require("./op.js");
|
|
11
34
|
const opcode_js_1 = require("./opcode.js");
|
|
12
35
|
const bytes_js_1 = require("./io/bytes.js");
|
|
36
|
+
const cashaddr = __importStar(require("ecashaddrjs"));
|
|
13
37
|
/** A Bitcoin Script locking/unlocking a UTXO */
|
|
14
38
|
class Script {
|
|
15
39
|
/** Create a new Script with the given bytecode or empty */
|
|
@@ -42,6 +66,37 @@ class Script {
|
|
|
42
66
|
}
|
|
43
67
|
return new Script(bytecodeWriter.data);
|
|
44
68
|
}
|
|
69
|
+
static fromAddress(address) {
|
|
70
|
+
// Note that hash is always returned as a string when decode is called with 'true'
|
|
71
|
+
let decodedAddress;
|
|
72
|
+
try {
|
|
73
|
+
decodedAddress = cashaddr.decode(address, false);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
throw new Error(`Error decoding address "${address}": ${err}`);
|
|
77
|
+
}
|
|
78
|
+
if (typeof decodedAddress.hash !== 'string') {
|
|
79
|
+
// cashaddr.decode returns hash as string | uint8array
|
|
80
|
+
// When called with chronikReady=false param, hash is always returned as a uint8array
|
|
81
|
+
// typescript does not know this though so we need this gate to prevent an error
|
|
82
|
+
switch (decodedAddress.type) {
|
|
83
|
+
case 'P2PKH': {
|
|
84
|
+
return Script.p2pkh(decodedAddress.hash);
|
|
85
|
+
}
|
|
86
|
+
case 'P2SH': {
|
|
87
|
+
return Script.p2sh(decodedAddress.hash);
|
|
88
|
+
}
|
|
89
|
+
default: {
|
|
90
|
+
// Note we should never get here, as ecashaddrjs decode method
|
|
91
|
+
// only supports p2pkh and p2sh
|
|
92
|
+
throw new Error(`Unsupported address type: ${decodedAddress.type}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
// Note we should never get here, as ecashaddrjs decode method
|
|
97
|
+
// always returns hash as a Uint8Array when called with (<addr>, false)
|
|
98
|
+
throw new Error(`Error decoding address "${address}"`);
|
|
99
|
+
}
|
|
45
100
|
/** Iterate over the Ops of this Script */
|
|
46
101
|
ops() {
|
|
47
102
|
return new ScriptOpIter(new bytes_js_1.Bytes(this.bytecode));
|
package/dist/script.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":";AAAA,4CAA4C;AAC5C,mEAAmE;AACnE,sEAAsE
|
|
1
|
+
{"version":3,"file":"script.js","sourceRoot":"","sources":["../src/script.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ecash-lib",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Library for eCash transaction building",
|
|
5
5
|
"main": "./dist/indexNodeJs.js",
|
|
6
6
|
"browser": "./dist/indexBrowser.js",
|
|
@@ -43,5 +43,8 @@
|
|
|
43
43
|
"tsx": "^4.7.2",
|
|
44
44
|
"typescript": "^5.4.3",
|
|
45
45
|
"typescript-eslint": "^7.6.0"
|
|
46
|
+
},
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"ecashaddrjs": "file:../ecashaddrjs"
|
|
46
49
|
}
|
|
47
50
|
}
|