@ckb-ccc/core 0.1.2 → 1.0.1
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/CHANGELOG.md +14 -0
- package/dist/address/address.advanced.d.ts.map +1 -1
- package/dist/address/address.advanced.js +6 -2
- package/dist/barrel.d.ts +1 -1
- package/dist/barrel.d.ts.map +1 -1
- package/dist/barrel.js +1 -1
- package/dist/bytes/index.d.ts +35 -0
- package/dist/bytes/index.d.ts.map +1 -1
- package/dist/bytes/index.js +60 -4
- package/dist/ckb/advanced.d.ts +0 -1
- package/dist/ckb/advanced.d.ts.map +1 -1
- package/dist/ckb/advanced.js +0 -1
- package/dist/ckb/script.d.ts +17 -58
- package/dist/ckb/script.d.ts.map +1 -1
- package/dist/ckb/script.js +29 -78
- package/dist/ckb/transaction.d.ts +125 -264
- package/dist/ckb/transaction.d.ts.map +1 -1
- package/dist/ckb/transaction.js +146 -357
- package/dist/molecule/barrel.d.ts +4 -0
- package/dist/molecule/barrel.d.ts.map +1 -0
- package/dist/molecule/barrel.js +3 -0
- package/dist/molecule/codec.d.ts +2 -0
- package/dist/molecule/codec.d.ts.map +1 -1
- package/dist/molecule/codec.js +57 -44
- package/dist/molecule/entity.d.ts +119 -0
- package/dist/molecule/entity.d.ts.map +1 -0
- package/dist/molecule/entity.js +134 -0
- package/dist/molecule/index.d.ts +1 -2
- package/dist/molecule/index.d.ts.map +1 -1
- package/dist/molecule/index.js +1 -2
- package/dist/molecule/predefined.d.ts +13 -20
- package/dist/molecule/predefined.d.ts.map +1 -1
- package/dist/molecule/predefined.js +14 -54
- package/dist/num/index.d.ts.map +1 -1
- package/dist/num/index.js +2 -2
- package/dist/signer/btc/verify.js +1 -1
- package/dist/signer/doge/verify.d.ts.map +1 -1
- package/dist/signer/doge/verify.js +3 -1
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist.commonjs/address/address.advanced.d.ts.map +1 -1
- package/dist.commonjs/address/address.advanced.js +6 -2
- package/dist.commonjs/barrel.d.ts +1 -1
- package/dist.commonjs/barrel.d.ts.map +1 -1
- package/dist.commonjs/barrel.js +1 -14
- package/dist.commonjs/bytes/index.d.ts +35 -0
- package/dist.commonjs/bytes/index.d.ts.map +1 -1
- package/dist.commonjs/bytes/index.js +62 -4
- package/dist.commonjs/ckb/advanced.d.ts +0 -1
- package/dist.commonjs/ckb/advanced.d.ts.map +1 -1
- package/dist.commonjs/ckb/advanced.js +0 -14
- package/dist.commonjs/ckb/script.d.ts +17 -58
- package/dist.commonjs/ckb/script.d.ts.map +1 -1
- package/dist.commonjs/ckb/script.js +29 -102
- package/dist.commonjs/ckb/transaction.d.ts +125 -264
- package/dist.commonjs/ckb/transaction.d.ts.map +1 -1
- package/dist.commonjs/ckb/transaction.js +167 -408
- package/dist.commonjs/molecule/barrel.d.ts +4 -0
- package/dist.commonjs/molecule/barrel.d.ts.map +1 -0
- package/dist.commonjs/{ckb/molecule.advanced/index.js → molecule/barrel.js} +3 -8
- package/dist.commonjs/molecule/codec.d.ts +2 -0
- package/dist.commonjs/molecule/codec.d.ts.map +1 -1
- package/dist.commonjs/molecule/codec.js +56 -43
- package/dist.commonjs/molecule/entity.d.ts +119 -0
- package/dist.commonjs/molecule/entity.d.ts.map +1 -0
- package/dist.commonjs/molecule/entity.js +139 -0
- package/dist.commonjs/molecule/index.d.ts +1 -2
- package/dist.commonjs/molecule/index.d.ts.map +1 -1
- package/dist.commonjs/molecule/index.js +13 -4
- package/dist.commonjs/molecule/predefined.d.ts +13 -20
- package/dist.commonjs/molecule/predefined.d.ts.map +1 -1
- package/dist.commonjs/molecule/predefined.js +14 -77
- package/dist.commonjs/num/index.d.ts.map +1 -1
- package/dist.commonjs/num/index.js +2 -2
- package/dist.commonjs/signer/btc/verify.js +1 -1
- package/dist.commonjs/signer/doge/verify.d.ts.map +1 -1
- package/dist.commonjs/signer/doge/verify.js +3 -1
- package/dist.commonjs/utils/index.d.ts +3 -0
- package/dist.commonjs/utils/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/address/address.advanced.ts +6 -2
- package/src/barrel.ts +1 -1
- package/src/bytes/index.ts +70 -6
- package/src/ckb/advanced.ts +0 -1
- package/src/ckb/script.ts +20 -85
- package/src/ckb/transaction.ts +123 -416
- package/src/molecule/barrel.ts +3 -0
- package/src/molecule/codec.ts +82 -66
- package/src/molecule/entity.ts +183 -0
- package/src/molecule/index.ts +1 -2
- package/src/molecule/predefined.ts +20 -69
- package/src/num/index.ts +2 -5
- package/src/signer/btc/verify.ts +1 -1
- package/src/signer/doge/verify.ts +3 -1
- package/src/utils/index.ts +5 -0
- package/dist/ckb/molecule.advanced/generated.d.ts +0 -355
- package/dist/ckb/molecule.advanced/generated.d.ts.map +0 -1
- package/dist/ckb/molecule.advanced/generated.js +0 -1468
- package/dist/ckb/molecule.advanced/index.d.ts +0 -6
- package/dist/ckb/molecule.advanced/index.d.ts.map +0 -1
- package/dist/ckb/molecule.advanced/index.js +0 -7
- package/dist.commonjs/ckb/molecule.advanced/generated.d.ts +0 -355
- package/dist.commonjs/ckb/molecule.advanced/generated.d.ts.map +0 -1
- package/dist.commonjs/ckb/molecule.advanced/generated.js +0 -1535
- package/dist.commonjs/ckb/molecule.advanced/index.d.ts +0 -6
- package/dist.commonjs/ckb/molecule.advanced/index.d.ts.map +0 -1
- package/src/ckb/molecule.advanced/blockchain.mol +0 -118
- package/src/ckb/molecule.advanced/generated.d.ts +0 -444
- package/src/ckb/molecule.advanced/generated.js +0 -1804
- package/src/ckb/molecule.advanced/index.ts +0 -11
|
@@ -1,59 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
3
|
+
exports.StringOpt = exports.StringVec = exports.String = exports.Byte32Vec = exports.Byte32Opt = exports.Byte32 = exports.BytesVec = exports.BytesOpt = exports.Bytes = exports.Uint512Vec = exports.Uint512Opt = exports.Uint512 = exports.Uint512BE = exports.Uint512LE = exports.Uint256Vec = exports.Uint256Opt = exports.Uint256 = exports.Uint256BE = exports.Uint256LE = exports.Uint128Vec = exports.Uint128Opt = exports.Uint128 = exports.Uint128BE = exports.Uint128LE = exports.Uint64Vec = exports.Uint64Opt = exports.Uint64 = exports.Uint64BE = exports.Uint64LE = exports.Uint32Vec = exports.Uint32Opt = exports.Uint32 = exports.Uint32BE = exports.Uint32LE = exports.Uint16Vec = exports.Uint16Opt = exports.Uint16 = exports.Uint16BE = exports.Uint16LE = exports.Uint8Vec = exports.Uint8Opt = exports.Uint8 = void 0;
|
|
27
4
|
const index_js_1 = require("../bytes/index.js");
|
|
28
|
-
const ckb = __importStar(require("../ckb/index.js"));
|
|
29
5
|
const index_js_2 = require("../hex/index.js");
|
|
30
6
|
const codec_js_1 = require("./codec.js");
|
|
31
7
|
exports.Uint8 = (0, codec_js_1.uintNumber)(1, true);
|
|
8
|
+
exports.Uint8Opt = (0, codec_js_1.option)(exports.Uint8);
|
|
9
|
+
exports.Uint8Vec = (0, codec_js_1.vector)(exports.Uint8);
|
|
32
10
|
exports.Uint16LE = (0, codec_js_1.uintNumber)(2, true);
|
|
33
11
|
exports.Uint16BE = (0, codec_js_1.uintNumber)(2);
|
|
34
12
|
exports.Uint16 = exports.Uint16LE;
|
|
13
|
+
exports.Uint16Opt = (0, codec_js_1.option)(exports.Uint16);
|
|
14
|
+
exports.Uint16Vec = (0, codec_js_1.vector)(exports.Uint16);
|
|
35
15
|
exports.Uint32LE = (0, codec_js_1.uintNumber)(4, true);
|
|
36
16
|
exports.Uint32BE = (0, codec_js_1.uintNumber)(4);
|
|
37
17
|
exports.Uint32 = exports.Uint32LE;
|
|
18
|
+
exports.Uint32Opt = (0, codec_js_1.option)(exports.Uint32);
|
|
19
|
+
exports.Uint32Vec = (0, codec_js_1.vector)(exports.Uint32);
|
|
38
20
|
exports.Uint64LE = (0, codec_js_1.uint)(8, true);
|
|
39
21
|
exports.Uint64BE = (0, codec_js_1.uint)(8);
|
|
40
22
|
exports.Uint64 = exports.Uint64LE;
|
|
23
|
+
exports.Uint64Opt = (0, codec_js_1.option)(exports.Uint64);
|
|
24
|
+
exports.Uint64Vec = (0, codec_js_1.vector)(exports.Uint64);
|
|
41
25
|
exports.Uint128LE = (0, codec_js_1.uint)(16, true);
|
|
42
26
|
exports.Uint128BE = (0, codec_js_1.uint)(16);
|
|
43
27
|
exports.Uint128 = exports.Uint128LE;
|
|
28
|
+
exports.Uint128Opt = (0, codec_js_1.option)(exports.Uint128);
|
|
29
|
+
exports.Uint128Vec = (0, codec_js_1.vector)(exports.Uint128);
|
|
44
30
|
exports.Uint256LE = (0, codec_js_1.uint)(32, true);
|
|
45
31
|
exports.Uint256BE = (0, codec_js_1.uint)(32);
|
|
46
32
|
exports.Uint256 = exports.Uint256LE;
|
|
33
|
+
exports.Uint256Opt = (0, codec_js_1.option)(exports.Uint256);
|
|
34
|
+
exports.Uint256Vec = (0, codec_js_1.vector)(exports.Uint256);
|
|
47
35
|
exports.Uint512LE = (0, codec_js_1.uint)(64, true);
|
|
48
36
|
exports.Uint512BE = (0, codec_js_1.uint)(64);
|
|
49
37
|
exports.Uint512 = exports.Uint512LE;
|
|
50
|
-
exports.Uint8Opt = (0, codec_js_1.option)(exports.Uint8);
|
|
51
|
-
exports.Uint16Opt = (0, codec_js_1.option)(exports.Uint16);
|
|
52
|
-
exports.Uint32Opt = (0, codec_js_1.option)(exports.Uint32);
|
|
53
|
-
exports.Uint64Opt = (0, codec_js_1.option)(exports.Uint64);
|
|
54
|
-
exports.Uint128Opt = (0, codec_js_1.option)(exports.Uint128);
|
|
55
|
-
exports.Uint256Opt = (0, codec_js_1.option)(exports.Uint256);
|
|
56
38
|
exports.Uint512Opt = (0, codec_js_1.option)(exports.Uint512);
|
|
39
|
+
exports.Uint512Vec = (0, codec_js_1.vector)(exports.Uint512);
|
|
57
40
|
exports.Bytes = (0, codec_js_1.byteVec)({
|
|
58
41
|
encode: (value) => (0, index_js_1.bytesFrom)(value),
|
|
59
42
|
decode: (buffer) => (0, index_js_2.hexFrom)(buffer),
|
|
@@ -73,49 +56,3 @@ exports.String = (0, codec_js_1.byteVec)({
|
|
|
73
56
|
});
|
|
74
57
|
exports.StringVec = (0, codec_js_1.vector)(exports.String);
|
|
75
58
|
exports.StringOpt = (0, codec_js_1.option)(exports.String);
|
|
76
|
-
exports.Hash = exports.Byte32;
|
|
77
|
-
exports.HashType = codec_js_1.Codec.from({
|
|
78
|
-
byteLength: 1,
|
|
79
|
-
encode: ckb.hashTypeToBytes,
|
|
80
|
-
decode: ckb.hashTypeFromBytes,
|
|
81
|
-
});
|
|
82
|
-
exports.Script = (0, codec_js_1.table)({
|
|
83
|
-
codeHash: exports.Hash,
|
|
84
|
-
hashType: exports.HashType,
|
|
85
|
-
args: exports.Bytes,
|
|
86
|
-
}).map({ outMap: ckb.Script.from });
|
|
87
|
-
exports.ScriptOpt = (0, codec_js_1.option)(exports.Script);
|
|
88
|
-
exports.OutPoint = (0, codec_js_1.struct)({
|
|
89
|
-
txHash: exports.Hash,
|
|
90
|
-
index: exports.Uint32,
|
|
91
|
-
}).map({ outMap: ckb.OutPoint.from });
|
|
92
|
-
exports.CellInput = (0, codec_js_1.struct)({
|
|
93
|
-
previousOutput: exports.OutPoint,
|
|
94
|
-
since: exports.Uint64,
|
|
95
|
-
}).map({ outMap: ckb.CellInput.from });
|
|
96
|
-
exports.CellInputVec = (0, codec_js_1.vector)(exports.CellInput);
|
|
97
|
-
exports.CellOutput = (0, codec_js_1.table)({
|
|
98
|
-
capacity: exports.Uint64,
|
|
99
|
-
lock: exports.Script,
|
|
100
|
-
type: exports.ScriptOpt,
|
|
101
|
-
}).map({ outMap: ckb.CellOutput.from });
|
|
102
|
-
exports.CellOutputVec = (0, codec_js_1.vector)(exports.CellOutput);
|
|
103
|
-
exports.DepType = codec_js_1.Codec.from({
|
|
104
|
-
byteLength: 1,
|
|
105
|
-
encode: ckb.depTypeToBytes,
|
|
106
|
-
decode: ckb.depTypeFromBytes,
|
|
107
|
-
});
|
|
108
|
-
exports.CellDep = (0, codec_js_1.struct)({
|
|
109
|
-
outPoint: exports.OutPoint,
|
|
110
|
-
depType: exports.DepType,
|
|
111
|
-
}).map({ outMap: ckb.CellDep.from });
|
|
112
|
-
exports.CellDepVec = (0, codec_js_1.vector)(exports.CellDep);
|
|
113
|
-
exports.Transaction = (0, codec_js_1.table)({
|
|
114
|
-
version: exports.Uint32,
|
|
115
|
-
cellDeps: exports.CellDepVec,
|
|
116
|
-
headerDeps: exports.Byte32Vec,
|
|
117
|
-
inputs: exports.CellInputVec,
|
|
118
|
-
outputs: exports.CellOutputVec,
|
|
119
|
-
outputsData: exports.BytesVec,
|
|
120
|
-
witnesses: exports.BytesVec,
|
|
121
|
-
}).map({ outMap: ckb.Transaction.from });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/num/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAA0B,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AAExD;;;GAGG;AACH,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC;AAEzB;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAS7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAS7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAUzC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAE1C;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAE9D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAEhE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/num/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAA0B,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,GAAG,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AAExD;;;GAGG;AACH,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC;AAEzB;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzD;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAS7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAS7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAUzC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,CAE1C;AAED;;;;;;;;;;;;GAYG;AAEH,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAE9D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAEhE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAOhE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG,CAEhD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG,CAElD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,GAAG,CAElD"}
|
|
@@ -143,7 +143,7 @@ function numBeToBytes(val, bytes) {
|
|
|
143
143
|
if (bytes == null) {
|
|
144
144
|
return rawBytes;
|
|
145
145
|
}
|
|
146
|
-
return (0, index_js_1.bytesConcat)(
|
|
146
|
+
return (0, index_js_1.bytesConcat)("00".repeat(bytes - rawBytes.length), rawBytes);
|
|
147
147
|
}
|
|
148
148
|
/**
|
|
149
149
|
* Converts a byte array to a Num (bigint) assuming little-endian order.
|
|
@@ -173,7 +173,7 @@ function numFromBytes(val) {
|
|
|
173
173
|
* ```
|
|
174
174
|
*/
|
|
175
175
|
function numLeFromBytes(val) {
|
|
176
|
-
return numBeFromBytes(
|
|
176
|
+
return numBeFromBytes((0, index_js_1.bytesFrom)(val).reverse());
|
|
177
177
|
}
|
|
178
178
|
/**
|
|
179
179
|
* Converts a byte array to a Num (bigint) assuming big-endian order.
|
|
@@ -37,6 +37,6 @@ function btcPublicKeyFromP2pkhAddress(address) {
|
|
|
37
37
|
*/
|
|
38
38
|
function verifyMessageBtcEcdsa(message, signature, publicKey) {
|
|
39
39
|
const challenge = typeof message === "string" ? message : (0, index_js_2.hexFrom)(message).slice(2);
|
|
40
|
-
const
|
|
40
|
+
const rawSign = (0, index_js_1.bytesFrom)(signature, "base64").slice(1);
|
|
41
41
|
return secp256k1_1.secp256k1.verify((0, index_js_1.bytesFrom)(rawSign), (0, bitcoinjs_message_1.magicHash)(challenge), publicKey);
|
|
42
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/signer/doge/verify.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAO5D;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/signer/doge/verify.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAO5D;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAuBT"}
|
|
@@ -11,7 +11,9 @@ const verify_js_1 = require("../btc/verify.js");
|
|
|
11
11
|
*/
|
|
12
12
|
function verifyMessageDogeEcdsa(message, signature, address) {
|
|
13
13
|
const challenge = typeof message === "string" ? message : (0, index_js_2.hexFrom)(message).slice(2);
|
|
14
|
-
const
|
|
14
|
+
const signatureBytes = (0, index_js_1.bytesFrom)(signature, "base64");
|
|
15
|
+
const recoveryBit = signatureBytes[0];
|
|
16
|
+
const rawSign = signatureBytes.slice(1);
|
|
15
17
|
const sig = secp256k1_1.secp256k1.Signature.fromCompact((0, index_js_2.hexFrom)(rawSign).slice(2)).addRecoveryBit(recoveryBit - 31);
|
|
16
18
|
return ((0, verify_js_1.btcPublicKeyFromP2pkhAddress)(address) ===
|
|
17
19
|
(0, index_js_2.hexFrom)((0, verify_js_1.btcEcdsaPublicKeyHash)(sig
|
|
@@ -83,6 +83,9 @@ export declare function reduceAsync<T>(values: T[], accumulator: (a: T, b: T) =>
|
|
|
83
83
|
*/
|
|
84
84
|
export declare function reduceAsync<T, V>(values: V[], accumulator: (a: T, b: V, i: number, values: V[]) => Promise<T | undefined | null | void> | T | undefined | null | void, init: T | Promise<T>): Promise<T>;
|
|
85
85
|
export declare function sleep(ms: NumLike): Promise<unknown>;
|
|
86
|
+
export type Constructor<T> = {
|
|
87
|
+
new (...args: any[]): T;
|
|
88
|
+
};
|
|
86
89
|
/**
|
|
87
90
|
* @public
|
|
88
91
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GACf,SAAS,CAAC;AACb;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,SAAS,CAAC;AAChF;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;AACrE;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,SAAS,GACnB,CAAC,GAAG,SAAS,CAAC;AACjB;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,IAAI,GACd,CAAC,GAAG,SAAS,CAAC;AACjB;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GAAG,IAAI,GACtB,SAAS,CAAC;AACb;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAC1B,CAAC,GAAG,SAAS,CAAC;AAoBjB;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,CACX,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,KACD,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GACtE,OAAO,CAAC,CAAC,CAAC,CAAC;AACd;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,CAAC,EACpC,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,CACX,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,CAAC,EAAE,KACR,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,EACvE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAAC;AAqCd,wBAAgB,KAAK,CAAC,EAAE,EAAE,OAAO,oBAEhC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEpD"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAW,MAAM,iBAAiB,CAAC;AAEnD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GACf,SAAS,CAAC;AACb;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,SAAS,CAAC;AAChF;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;AACrE;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,SAAS,GACnB,CAAC,GAAG,SAAS,CAAC;AACjB;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,IAAI,GACd,CAAC,GAAG,SAAS,CAAC;AACjB;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,SAAS,GAAG,IAAI,GACtB,SAAS,CAAC;AACb;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EACxB,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAC1B,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,GAC1B,CAAC,GAAG,SAAS,CAAC;AAoBjB;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,CACX,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,KACD,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GACtE,OAAO,CAAC,CAAC,CAAC,CAAC;AACd;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,CAAC,EACpC,MAAM,EAAE,CAAC,EAAE,EACX,WAAW,EAAE,CACX,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,MAAM,EACT,MAAM,EAAE,CAAC,EAAE,KACR,OAAO,CAAC,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,EACvE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAAC;AAqCd,wBAAgB,KAAK,CAAC,EAAE,EAAE,OAAO,oBAEhC;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAE3B,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEpD"}
|
package/package.json
CHANGED
|
@@ -29,7 +29,9 @@ export function addressPayloadFromString(address: string): {
|
|
|
29
29
|
// Try parse full format address
|
|
30
30
|
try {
|
|
31
31
|
const { words, prefix } = bech32m.decode(address, ADDRESS_BECH32_LIMIT);
|
|
32
|
-
const
|
|
32
|
+
const decoded = bech32m.fromWords(words);
|
|
33
|
+
const formatType = decoded[0];
|
|
34
|
+
const payload = decoded.slice(1);
|
|
33
35
|
|
|
34
36
|
if (formatType === (AddressFormat.Full as number)) {
|
|
35
37
|
return { prefix, format: AddressFormat.Full, payload };
|
|
@@ -39,7 +41,9 @@ export function addressPayloadFromString(address: string): {
|
|
|
39
41
|
// Try parse legacy 2019 format address
|
|
40
42
|
try {
|
|
41
43
|
const { prefix, words } = bech32.decode(address, ADDRESS_BECH32_LIMIT);
|
|
42
|
-
const
|
|
44
|
+
const decoded = bech32.fromWords(words);
|
|
45
|
+
const formatType = decoded[0];
|
|
46
|
+
const payload = decoded.slice(1);
|
|
43
47
|
if (
|
|
44
48
|
[
|
|
45
49
|
AddressFormat.FullData,
|
package/src/barrel.ts
CHANGED
|
@@ -6,7 +6,7 @@ export * from "./fixedPoint/index.js";
|
|
|
6
6
|
export * from "./hasher/index.js";
|
|
7
7
|
export * from "./hex/index.js";
|
|
8
8
|
export * from "./keystore/index.js";
|
|
9
|
-
export *
|
|
9
|
+
export * from "./molecule/index.js";
|
|
10
10
|
export * from "./num/index.js";
|
|
11
11
|
export * from "./signer/index.js";
|
|
12
12
|
export * from "./utils/index.js";
|
package/src/bytes/index.ts
CHANGED
|
@@ -10,6 +10,41 @@ export type Bytes = Uint8Array;
|
|
|
10
10
|
*/
|
|
11
11
|
export type BytesLike = string | Uint8Array | ArrayBuffer | ArrayLike<number>;
|
|
12
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Concatenates multiple byte-like arrays to the first number array.
|
|
15
|
+
* @public
|
|
16
|
+
*
|
|
17
|
+
* @param result - The number array as result
|
|
18
|
+
* @param args - The byte-like arrays to concatenate.
|
|
19
|
+
* @returns The first number array
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const concatenatedBytes = [1, 2];
|
|
24
|
+
* bytesConcatTo(
|
|
25
|
+
* concatenatedBytes
|
|
26
|
+
* new Uint8Array([3, 4]),
|
|
27
|
+
* "hello",
|
|
28
|
+
* [5, 6, 7]
|
|
29
|
+
* );
|
|
30
|
+
* console.log(concatenatedBytes); // Outputs [1, 2, 3, 4, /* bytes of "hello" *\/, 5, 6, 7]
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
export function bytesConcatTo(
|
|
35
|
+
result: number[],
|
|
36
|
+
...args: BytesLike[]
|
|
37
|
+
): number[] {
|
|
38
|
+
return args.reduce((acc: number[], v) => {
|
|
39
|
+
const bytes = bytesFrom(v);
|
|
40
|
+
// Spread operator will cause call stack size exceeded
|
|
41
|
+
for (const byte of bytes) {
|
|
42
|
+
result.push(byte);
|
|
43
|
+
}
|
|
44
|
+
return acc;
|
|
45
|
+
}, result);
|
|
46
|
+
}
|
|
47
|
+
|
|
13
48
|
/**
|
|
14
49
|
* Concatenates multiple byte-like arrays into a single byte array.
|
|
15
50
|
* @public
|
|
@@ -30,12 +65,7 @@ export type BytesLike = string | Uint8Array | ArrayBuffer | ArrayLike<number>;
|
|
|
30
65
|
*/
|
|
31
66
|
|
|
32
67
|
export function bytesConcat(...args: BytesLike[]): Bytes {
|
|
33
|
-
return new Uint8Array(
|
|
34
|
-
args.reduce((acc: number[], v) => {
|
|
35
|
-
acc.push(...bytesFrom(v));
|
|
36
|
-
return acc;
|
|
37
|
-
}, []),
|
|
38
|
-
);
|
|
68
|
+
return new Uint8Array(bytesConcatTo([], ...args));
|
|
39
69
|
}
|
|
40
70
|
|
|
41
71
|
/**
|
|
@@ -118,3 +148,37 @@ export function bytesFrom(
|
|
|
118
148
|
}
|
|
119
149
|
return new Uint8Array(bytes);
|
|
120
150
|
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Compares two byte-like values for equality.
|
|
154
|
+
* @public
|
|
155
|
+
*
|
|
156
|
+
* @param a - The first byte-like value to compare.
|
|
157
|
+
* @param b - The second byte-like value to compare.
|
|
158
|
+
* @returns A boolean indicating whether the two byte-like values are equal.
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```typescript
|
|
162
|
+
* bytesEq([1], Uint8Array.from([1])) // true
|
|
163
|
+
* ```
|
|
164
|
+
*/
|
|
165
|
+
export function bytesEq(a: BytesLike, b: BytesLike): boolean {
|
|
166
|
+
if (a === b) {
|
|
167
|
+
return true;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
const x = bytesFrom(a);
|
|
171
|
+
const y = bytesFrom(b);
|
|
172
|
+
|
|
173
|
+
if (x.length !== y.length) {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
for (let i = 0; i < x.length; i++) {
|
|
178
|
+
if (x[i] !== y[i]) {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
return true;
|
|
184
|
+
}
|
package/src/ckb/advanced.ts
CHANGED
package/src/ckb/script.ts
CHANGED
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
import { Bytes, BytesLike, bytesFrom } from "../bytes/index.js";
|
|
2
2
|
import { Client, KnownScript } from "../client/index.js";
|
|
3
|
-
import { hashCkb } from "../hasher/index.js";
|
|
4
3
|
import { Hex, HexLike, hexFrom } from "../hex/index.js";
|
|
5
|
-
import
|
|
4
|
+
import { mol } from "../molecule/index.js";
|
|
6
5
|
import {
|
|
7
6
|
HASH_TYPES,
|
|
8
7
|
HASH_TYPE_TO_NUM,
|
|
9
8
|
NUM_TO_HASH_TYPE,
|
|
10
9
|
} from "./script.advanced.js";
|
|
11
10
|
|
|
11
|
+
export const HashTypeCodec: mol.Codec<HashTypeLike, HashType> = mol.Codec.from({
|
|
12
|
+
byteLength: 1,
|
|
13
|
+
encode: hashTypeToBytes,
|
|
14
|
+
decode: hashTypeFromBytes,
|
|
15
|
+
});
|
|
16
|
+
|
|
12
17
|
/**
|
|
13
18
|
* @public
|
|
14
19
|
*/
|
|
@@ -102,7 +107,14 @@ export type ScriptLike = {
|
|
|
102
107
|
/**
|
|
103
108
|
* @public
|
|
104
109
|
*/
|
|
105
|
-
|
|
110
|
+
@mol.codec(
|
|
111
|
+
mol.table({
|
|
112
|
+
codeHash: mol.Byte32,
|
|
113
|
+
hashType: HashTypeCodec,
|
|
114
|
+
args: mol.Bytes,
|
|
115
|
+
}),
|
|
116
|
+
)
|
|
117
|
+
export class Script extends mol.Entity.Base<ScriptLike, Script>() {
|
|
106
118
|
/**
|
|
107
119
|
* Creates an instance of Script.
|
|
108
120
|
*
|
|
@@ -114,7 +126,9 @@ export class Script {
|
|
|
114
126
|
public codeHash: Hex,
|
|
115
127
|
public hashType: HashType,
|
|
116
128
|
public args: Hex,
|
|
117
|
-
) {
|
|
129
|
+
) {
|
|
130
|
+
super();
|
|
131
|
+
}
|
|
118
132
|
|
|
119
133
|
get occupiedSize(): number {
|
|
120
134
|
return 33 + bytesFrom(this.args).length;
|
|
@@ -194,85 +208,6 @@ export class Script {
|
|
|
194
208
|
*
|
|
195
209
|
* @returns An object representing the script in molecule data format.
|
|
196
210
|
*/
|
|
197
|
-
|
|
198
|
-
_toMolData() {
|
|
199
|
-
return {
|
|
200
|
-
codeHash: bytesFrom(this.codeHash),
|
|
201
|
-
hashType: hashTypeToBytes(this.hashType),
|
|
202
|
-
args: bytesFrom(this.args),
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* Converts the Script instance to bytes.
|
|
208
|
-
*
|
|
209
|
-
* @returns A Uint8Array containing the script bytes.
|
|
210
|
-
*
|
|
211
|
-
* @example
|
|
212
|
-
* ```typescript
|
|
213
|
-
* const scriptBytes = script.toBytes();
|
|
214
|
-
* ```
|
|
215
|
-
*/
|
|
216
|
-
|
|
217
|
-
toBytes(): Bytes {
|
|
218
|
-
return bytesFrom(mol.SerializeScript(this._toMolData()));
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/**
|
|
222
|
-
* Get hash of a script
|
|
223
|
-
*
|
|
224
|
-
* @returns Hash of this script
|
|
225
|
-
*
|
|
226
|
-
* @example
|
|
227
|
-
* ```typescript
|
|
228
|
-
* const hash = script.hash();
|
|
229
|
-
* ```
|
|
230
|
-
*/
|
|
231
|
-
hash(): Hex {
|
|
232
|
-
return hashCkb(this.toBytes());
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Creates a Script instance from a byte-like value or molecule Script.
|
|
237
|
-
*
|
|
238
|
-
* @param bytes - The byte-like value or molecule Script to convert.
|
|
239
|
-
* @returns A Script instance.
|
|
240
|
-
*
|
|
241
|
-
* @example
|
|
242
|
-
* ```typescript
|
|
243
|
-
* const script = Script.fromBytes(new Uint8Array([/* script bytes *\/]));
|
|
244
|
-
* ```
|
|
245
|
-
*/
|
|
246
|
-
|
|
247
|
-
static fromBytes(bytes: BytesLike | mol.Script): Script {
|
|
248
|
-
const view =
|
|
249
|
-
bytes instanceof mol.Script ? bytes : new mol.Script(bytesFrom(bytes));
|
|
250
|
-
|
|
251
|
-
return new Script(
|
|
252
|
-
hexFrom(view.getCodeHash().raw()),
|
|
253
|
-
hashTypeFromBytes([view.getHashType()]),
|
|
254
|
-
hexFrom(view.getArgs().raw()),
|
|
255
|
-
);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
/**
|
|
259
|
-
* Compares the current Script instance with another ScriptLike object for equality.
|
|
260
|
-
*
|
|
261
|
-
* @param val - The ScriptLike object to compare with.
|
|
262
|
-
* @returns True if the scripts are equal, otherwise false.
|
|
263
|
-
*
|
|
264
|
-
* @example
|
|
265
|
-
* ```typescript
|
|
266
|
-
* const isEqual = script.eq(anotherScript);
|
|
267
|
-
* ```
|
|
268
|
-
*/
|
|
269
|
-
|
|
270
|
-
eq(val: ScriptLike): boolean {
|
|
271
|
-
const script = Script.from(val);
|
|
272
|
-
return (
|
|
273
|
-
this.codeHash === script.codeHash &&
|
|
274
|
-
this.args === script.args &&
|
|
275
|
-
this.hashType === script.hashType
|
|
276
|
-
);
|
|
277
|
-
}
|
|
278
211
|
}
|
|
212
|
+
|
|
213
|
+
export const ScriptOpt = mol.option(Script);
|