koilib 1.5.0 → 2.3.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 +133 -86
- package/dist/koinos.js +12087 -5016
- package/dist/koinos.min.js +1 -1
- package/lib/Contract.d.ts +135 -230
- package/lib/Contract.js +219 -154
- package/lib/Contract.js.map +1 -1
- package/lib/Provider.d.ts +43 -18
- package/lib/Provider.js +69 -19
- package/lib/Provider.js.map +1 -1
- package/lib/Serializer.d.ts +81 -0
- package/lib/Serializer.js +169 -0
- package/lib/Serializer.js.map +1 -0
- package/lib/Signer.d.ts +170 -18
- package/lib/Signer.js +215 -42
- package/lib/Signer.js.map +1 -1
- package/lib/index.d.ts +2 -10
- package/lib/index.js +5 -12
- package/lib/index.js.map +1 -1
- package/lib/index2.js +2 -10
- package/lib/index2.js.map +1 -1
- package/lib/interface.d.ts +232 -35
- package/lib/jsonDescriptors/krc20-proto.json +183 -0
- package/lib/jsonDescriptors/protocol-proto.json +246 -0
- package/lib/utils.d.ts +281 -0
- package/lib/utils.js +109 -1
- package/lib/utils.js.map +1 -1
- package/package.json +10 -3
- package/lib/Multihash.d.ts +0 -41
- package/lib/Multihash.js +0 -38
- package/lib/Multihash.js.map +0 -1
- package/lib/VariableBlob.d.ts +0 -35
- package/lib/VariableBlob.js +0 -227
- package/lib/VariableBlob.js.map +0 -1
- package/lib/Wallet.d.ts +0 -250
- package/lib/Wallet.js +0 -301
- package/lib/Wallet.js.map +0 -1
- package/lib/abi.d.ts +0 -177
- package/lib/abi.js +0 -160
- package/lib/abi.js.map +0 -1
- package/lib/serializer.d.ts +0 -41
- package/lib/serializer.js +0 -273
- package/lib/serializer.js.map +0 -1
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qDAAuC;AACvC,yCAAmC;AACnC,sEAAwC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "koilib",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "JS Koinos Library",
|
|
5
5
|
"author": "Julian Gonzalez",
|
|
6
6
|
"repository": {
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"lint:eslint": "eslint . --ext .js,.ts",
|
|
31
31
|
"lint:tsc": "tsc --noEmit --incremental false",
|
|
32
32
|
"prerelease": "yarn build && yarn bundle && yarn docs",
|
|
33
|
+
"proto": "node generateJsonKoinosProto.js",
|
|
33
34
|
"test": "jest",
|
|
34
35
|
"test:unit": "jest wallet.spec.ts",
|
|
35
36
|
"test:e2e": "jest wallet.e2e-spec.ts"
|
|
@@ -43,15 +44,18 @@
|
|
|
43
44
|
"js-sha256": "^0.9.0",
|
|
44
45
|
"multibase": "^4.0.4",
|
|
45
46
|
"noble-ripemd160": "^0.2.0",
|
|
46
|
-
"noble-secp256k1": "^1.2.9"
|
|
47
|
+
"noble-secp256k1": "^1.2.9",
|
|
48
|
+
"protobufjs": "^6.11.2"
|
|
47
49
|
},
|
|
48
50
|
"devDependencies": {
|
|
49
51
|
"@tsconfig/node12": "^1.0.9",
|
|
50
52
|
"@types/jest": "^26.0.24",
|
|
51
|
-
"@types/node": "^16.
|
|
53
|
+
"@types/node": "^16.11.0",
|
|
52
54
|
"@typescript-eslint/eslint-plugin": "^4.29.0",
|
|
53
55
|
"@typescript-eslint/parser": "^4.29.0",
|
|
54
56
|
"audit-ci": "^4.1.0",
|
|
57
|
+
"copyfiles": "^2.4.1",
|
|
58
|
+
"dotenv": "^10.0.0",
|
|
55
59
|
"eslint": "^7.32.0",
|
|
56
60
|
"eslint-config-airbnb-typescript": "^12.3.1",
|
|
57
61
|
"eslint-config-prettier": "^8.3.0",
|
|
@@ -59,6 +63,9 @@
|
|
|
59
63
|
"eslint-plugin-jest": "^24.4.0",
|
|
60
64
|
"eslint-plugin-prettier": "^3.4.0",
|
|
61
65
|
"eslint-plugin-tsdoc": "^0.2.14",
|
|
66
|
+
"fastify": "^3.23.0",
|
|
67
|
+
"fastify-cors": "^6.0.2",
|
|
68
|
+
"fastify-static": "^4.5.0",
|
|
62
69
|
"jest": "^27.0.6",
|
|
63
70
|
"jest-puppeteer": "^5.0.4",
|
|
64
71
|
"prettier": "^2.3.2",
|
package/lib/Multihash.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Multihash is a protocol for differentiating outputs from various
|
|
3
|
-
* well-established cryptographic hash functions, addressing size +
|
|
4
|
-
* encoding considerations
|
|
5
|
-
*/
|
|
6
|
-
export declare class Multihash {
|
|
7
|
-
/**
|
|
8
|
-
* Hash ID
|
|
9
|
-
*
|
|
10
|
-
* Identifier of the hash function. See the
|
|
11
|
-
* complete [list of IDs in this link](https://github.com/multiformats/js-multihash/blob/master/src/constants.js)
|
|
12
|
-
*
|
|
13
|
-
* Some relevants IDs are:
|
|
14
|
-
* - 0x12 (sha2-256)
|
|
15
|
-
* - 0x16 (sha3-256)
|
|
16
|
-
* - 0x1b (keccak-256)
|
|
17
|
-
* - 0x1053 (ripemd-160)
|
|
18
|
-
*/
|
|
19
|
-
id: number;
|
|
20
|
-
/**
|
|
21
|
-
* Digest
|
|
22
|
-
*/
|
|
23
|
-
digest: Uint8Array;
|
|
24
|
-
/**
|
|
25
|
-
*
|
|
26
|
-
* @param digest - digest
|
|
27
|
-
* @param id - hash id. By default it uses 0x12 which corresponds with sha2-256
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```ts
|
|
31
|
-
* const buffer = new Uint8Array(32);
|
|
32
|
-
* const multihash = new Multihash(buffer);
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
constructor(digest: Uint8Array, id?: number);
|
|
36
|
-
/**
|
|
37
|
-
* @returns Encodes the multihash in base58
|
|
38
|
-
*/
|
|
39
|
-
toString(): string;
|
|
40
|
-
}
|
|
41
|
-
export default Multihash;
|
package/lib/Multihash.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Multihash = void 0;
|
|
4
|
-
const VariableBlob_1 = require("./VariableBlob");
|
|
5
|
-
/**
|
|
6
|
-
* Multihash is a protocol for differentiating outputs from various
|
|
7
|
-
* well-established cryptographic hash functions, addressing size +
|
|
8
|
-
* encoding considerations
|
|
9
|
-
*/
|
|
10
|
-
class Multihash {
|
|
11
|
-
/**
|
|
12
|
-
*
|
|
13
|
-
* @param digest - digest
|
|
14
|
-
* @param id - hash id. By default it uses 0x12 which corresponds with sha2-256
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```ts
|
|
18
|
-
* const buffer = new Uint8Array(32);
|
|
19
|
-
* const multihash = new Multihash(buffer);
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
constructor(digest, id = 0x12) {
|
|
23
|
-
this.id = id;
|
|
24
|
-
this.digest = digest;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* @returns Encodes the multihash in base58
|
|
28
|
-
*/
|
|
29
|
-
toString() {
|
|
30
|
-
const vb = new VariableBlob_1.VariableBlob();
|
|
31
|
-
vb.serializeVarint(this.id);
|
|
32
|
-
vb.serializeBuffer(this.digest);
|
|
33
|
-
return vb.toString("z");
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.Multihash = Multihash;
|
|
37
|
-
exports.default = Multihash;
|
|
38
|
-
//# sourceMappingURL=Multihash.js.map
|
package/lib/Multihash.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Multihash.js","sourceRoot":"","sources":["../src/Multihash.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAE9C;;;;GAIG;AACH,MAAa,SAAS;IAoBpB;;;;;;;;;;OAUG;IACH,YAAY,MAAkB,EAAE,EAAE,GAAG,IAAI;QACvC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,EAAE,GAAG,IAAI,2BAAY,EAAE,CAAC;QAC9B,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5B,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;CACF;AA7CD,8BA6CC;AAED,kBAAe,SAAS,CAAC"}
|
package/lib/VariableBlob.d.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import * as multibase from "multibase";
|
|
2
|
-
/**
|
|
3
|
-
* Class to serialize and deserialize data in Koinos
|
|
4
|
-
*/
|
|
5
|
-
export declare class VariableBlob {
|
|
6
|
-
buffer: Uint8Array;
|
|
7
|
-
offset: number;
|
|
8
|
-
constructor(input?: string | Uint8Array);
|
|
9
|
-
resetCursor(): VariableBlob;
|
|
10
|
-
checkRemaining(size: number, canResize?: boolean): void;
|
|
11
|
-
write(data: string | Uint8Array, length?: number): void;
|
|
12
|
-
read(size: number, outputString?: boolean, nameOrCode?: multibase.BaseNameOrCode): Uint8Array | string;
|
|
13
|
-
writeInt8(n: number): void;
|
|
14
|
-
readInt8(): number;
|
|
15
|
-
writeInt16(n: number): void;
|
|
16
|
-
readInt16(): number;
|
|
17
|
-
writeInt32(n: number): void;
|
|
18
|
-
readInt32(): number;
|
|
19
|
-
writeUint8(n: number): void;
|
|
20
|
-
readUint8(): number;
|
|
21
|
-
writeUint16(n: number): void;
|
|
22
|
-
readUint16(): number;
|
|
23
|
-
writeUint32(n: number): void;
|
|
24
|
-
readUint32(): number;
|
|
25
|
-
serializeVarint(num: number): void;
|
|
26
|
-
deserializeVarint(): number;
|
|
27
|
-
serializeBuffer(data: string | Uint8Array): void;
|
|
28
|
-
deserializeBuffer(outputString?: boolean, nameOrCode?: multibase.BaseNameOrCode): Uint8Array | string;
|
|
29
|
-
serializeString(str: string): void;
|
|
30
|
-
deserializeString(): string;
|
|
31
|
-
serializeBigint(num: string | number | bigint, bits: number): void;
|
|
32
|
-
deserializeBigint(bits: number, unsigned?: boolean, outputBigint?: boolean): string | number | bigint;
|
|
33
|
-
toString(nameOrCode?: multibase.BaseNameOrCode): string;
|
|
34
|
-
}
|
|
35
|
-
export default VariableBlob;
|
package/lib/VariableBlob.js
DELETED
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.VariableBlob = void 0;
|
|
23
|
-
/* eslint-disable no-bitwise, prefer-template */
|
|
24
|
-
const multibase = __importStar(require("multibase"));
|
|
25
|
-
/**
|
|
26
|
-
* Class to serialize and deserialize data in Koinos
|
|
27
|
-
*/
|
|
28
|
-
class VariableBlob {
|
|
29
|
-
constructor(input) {
|
|
30
|
-
if (typeof input === "string") {
|
|
31
|
-
this.buffer = multibase.decode(input);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
this.buffer = input || new Uint8Array();
|
|
35
|
-
}
|
|
36
|
-
this.offset = 0;
|
|
37
|
-
}
|
|
38
|
-
resetCursor() {
|
|
39
|
-
this.offset = 0;
|
|
40
|
-
return this;
|
|
41
|
-
}
|
|
42
|
-
checkRemaining(size, canResize = false) {
|
|
43
|
-
if (this.offset + size > this.buffer.length) {
|
|
44
|
-
if (!canResize)
|
|
45
|
-
throw new Error("Unexpected EOF");
|
|
46
|
-
const newSize = this.offset + size;
|
|
47
|
-
const buffer = new Uint8Array(newSize);
|
|
48
|
-
buffer.set(this.buffer);
|
|
49
|
-
this.buffer = buffer;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
write(data, length = 0) {
|
|
53
|
-
const bytes = typeof data === "string" ? multibase.decode(data) : data;
|
|
54
|
-
if (length && bytes.length !== length)
|
|
55
|
-
throw new Error(`Invalid length. Expected: ${length}. Received: ${bytes.length}`);
|
|
56
|
-
this.checkRemaining(bytes.length, true);
|
|
57
|
-
this.buffer.set(bytes, this.offset);
|
|
58
|
-
this.offset += bytes.length;
|
|
59
|
-
}
|
|
60
|
-
read(size, outputString = false, nameOrCode = "M") {
|
|
61
|
-
this.checkRemaining(size);
|
|
62
|
-
const subBuffer = new Uint8Array(size);
|
|
63
|
-
subBuffer.set(this.buffer.subarray(this.offset, this.offset + size));
|
|
64
|
-
this.offset += size;
|
|
65
|
-
if (outputString) {
|
|
66
|
-
return new VariableBlob(subBuffer).toString(nameOrCode);
|
|
67
|
-
}
|
|
68
|
-
return subBuffer;
|
|
69
|
-
}
|
|
70
|
-
writeInt8(n) {
|
|
71
|
-
this.checkRemaining(1, true);
|
|
72
|
-
new DataView(this.buffer.buffer).setInt8(this.offset, n);
|
|
73
|
-
this.offset += 1;
|
|
74
|
-
}
|
|
75
|
-
readInt8() {
|
|
76
|
-
this.checkRemaining(1);
|
|
77
|
-
const n = new DataView(this.buffer.buffer).getInt8(this.offset);
|
|
78
|
-
this.offset += 1;
|
|
79
|
-
return n;
|
|
80
|
-
}
|
|
81
|
-
writeInt16(n) {
|
|
82
|
-
this.checkRemaining(2, true);
|
|
83
|
-
new DataView(this.buffer.buffer).setInt16(this.offset, n);
|
|
84
|
-
this.offset += 2;
|
|
85
|
-
}
|
|
86
|
-
readInt16() {
|
|
87
|
-
this.checkRemaining(2);
|
|
88
|
-
const n = new DataView(this.buffer.buffer).getInt16(this.offset);
|
|
89
|
-
this.offset += 2;
|
|
90
|
-
return n;
|
|
91
|
-
}
|
|
92
|
-
writeInt32(n) {
|
|
93
|
-
this.checkRemaining(4, true);
|
|
94
|
-
new DataView(this.buffer.buffer).setInt32(this.offset, n);
|
|
95
|
-
this.offset += 4;
|
|
96
|
-
}
|
|
97
|
-
readInt32() {
|
|
98
|
-
this.checkRemaining(4);
|
|
99
|
-
const n = new DataView(this.buffer.buffer).getInt32(this.offset);
|
|
100
|
-
this.offset += 4;
|
|
101
|
-
return n;
|
|
102
|
-
}
|
|
103
|
-
writeUint8(n) {
|
|
104
|
-
this.checkRemaining(1, true);
|
|
105
|
-
// new DataView(this.buffer.buffer).setUint8(this.offset, n);
|
|
106
|
-
this.buffer[this.offset] = n;
|
|
107
|
-
this.offset += 1;
|
|
108
|
-
}
|
|
109
|
-
readUint8() {
|
|
110
|
-
this.checkRemaining(1);
|
|
111
|
-
// const n = new DataView(this.buffer.buffer).getUint8(this.offset);
|
|
112
|
-
const n = this.buffer[this.offset];
|
|
113
|
-
this.offset += 1;
|
|
114
|
-
return n;
|
|
115
|
-
}
|
|
116
|
-
writeUint16(n) {
|
|
117
|
-
this.checkRemaining(2, true);
|
|
118
|
-
new DataView(this.buffer.buffer).setUint16(this.offset, n);
|
|
119
|
-
this.offset += 2;
|
|
120
|
-
}
|
|
121
|
-
readUint16() {
|
|
122
|
-
this.checkRemaining(2);
|
|
123
|
-
const n = new DataView(this.buffer.buffer).getUint16(this.offset);
|
|
124
|
-
this.offset += 2;
|
|
125
|
-
return n;
|
|
126
|
-
}
|
|
127
|
-
writeUint32(n) {
|
|
128
|
-
this.checkRemaining(4, true);
|
|
129
|
-
new DataView(this.buffer.buffer).setUint32(this.offset, n);
|
|
130
|
-
this.offset += 4;
|
|
131
|
-
}
|
|
132
|
-
readUint32() {
|
|
133
|
-
this.checkRemaining(4);
|
|
134
|
-
const n = new DataView(this.buffer.buffer).getUint32(this.offset);
|
|
135
|
-
this.offset += 4;
|
|
136
|
-
return n;
|
|
137
|
-
}
|
|
138
|
-
// Varint
|
|
139
|
-
serializeVarint(num) {
|
|
140
|
-
if (num === 0) {
|
|
141
|
-
this.writeUint8(0);
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
let n = num;
|
|
145
|
-
let shift7 = num;
|
|
146
|
-
while (n > 0) {
|
|
147
|
-
shift7 = n >> 7;
|
|
148
|
-
const group7 = n - (shift7 << 7);
|
|
149
|
-
const byte = shift7 > 0 ? 128 + group7 : group7;
|
|
150
|
-
this.writeUint8(byte);
|
|
151
|
-
n = shift7;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
deserializeVarint() {
|
|
155
|
-
let i = 0;
|
|
156
|
-
let n = 0;
|
|
157
|
-
let endVarInt = false;
|
|
158
|
-
while (!endVarInt) {
|
|
159
|
-
const byte = this.readUint8();
|
|
160
|
-
endVarInt = byte < 128;
|
|
161
|
-
const mod = endVarInt ? byte : byte - 128;
|
|
162
|
-
n += mod << (7 * i);
|
|
163
|
-
i += 1;
|
|
164
|
-
}
|
|
165
|
-
return n;
|
|
166
|
-
}
|
|
167
|
-
// Buffer
|
|
168
|
-
serializeBuffer(data) {
|
|
169
|
-
const bytes = typeof data === "string" ? multibase.decode(data) : data;
|
|
170
|
-
this.serializeVarint(bytes.length);
|
|
171
|
-
this.write(bytes);
|
|
172
|
-
}
|
|
173
|
-
deserializeBuffer(outputString = false, nameOrCode = "M") {
|
|
174
|
-
const size = this.deserializeVarint();
|
|
175
|
-
return this.read(size, outputString, nameOrCode);
|
|
176
|
-
}
|
|
177
|
-
// String
|
|
178
|
-
serializeString(str) {
|
|
179
|
-
const bytes = new TextEncoder().encode(str);
|
|
180
|
-
this.serializeVarint(bytes.length);
|
|
181
|
-
this.write(bytes);
|
|
182
|
-
}
|
|
183
|
-
deserializeString() {
|
|
184
|
-
const size = this.deserializeVarint();
|
|
185
|
-
const buffer = this.read(size);
|
|
186
|
-
return new TextDecoder().decode(buffer);
|
|
187
|
-
}
|
|
188
|
-
// Bigint
|
|
189
|
-
serializeBigint(num, bits) {
|
|
190
|
-
const bignum = BigInt(num);
|
|
191
|
-
let numString;
|
|
192
|
-
if (bignum >= BigInt(0)) {
|
|
193
|
-
numString = bignum.toString(16);
|
|
194
|
-
numString = "0".repeat(bits / 4 - numString.length) + numString;
|
|
195
|
-
}
|
|
196
|
-
else {
|
|
197
|
-
numString = (BigInt("0x1" + "0".repeat(bits / 4)) + bignum).toString(16);
|
|
198
|
-
}
|
|
199
|
-
for (let i = 0; i < bits / 4; i += 8) {
|
|
200
|
-
const uint32 = Number("0x" + numString.substring(i, i + 8));
|
|
201
|
-
this.writeUint32(uint32);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
deserializeBigint(bits, unsigned = true, outputBigint = true) {
|
|
205
|
-
let numString = "0x";
|
|
206
|
-
for (let i = 0; i < bits / 32; i += 1) {
|
|
207
|
-
const uint32Str = this.readUint32().toString(16);
|
|
208
|
-
numString += "0".repeat(8 - uint32Str.length) + uint32Str;
|
|
209
|
-
}
|
|
210
|
-
if (!unsigned && Number(numString.substring(0, 3)) >= 8) {
|
|
211
|
-
// signed number and starts with bit 1 (negative number)
|
|
212
|
-
return BigInt(numString) - BigInt("0x1" + "0".repeat(bits / 4));
|
|
213
|
-
}
|
|
214
|
-
const result = BigInt(numString);
|
|
215
|
-
if (outputBigint)
|
|
216
|
-
return result;
|
|
217
|
-
if (result <= BigInt(Number.MAX_SAFE_INTEGER))
|
|
218
|
-
return Number(result);
|
|
219
|
-
return result.toString();
|
|
220
|
-
}
|
|
221
|
-
toString(nameOrCode = "M") {
|
|
222
|
-
return new TextDecoder().decode(multibase.encode(nameOrCode, this.buffer));
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
exports.VariableBlob = VariableBlob;
|
|
226
|
-
exports.default = VariableBlob;
|
|
227
|
-
//# sourceMappingURL=VariableBlob.js.map
|
package/lib/VariableBlob.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VariableBlob.js","sourceRoot":"","sources":["../src/VariableBlob.ts"],"names":[],"mappings":"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"}
|
package/lib/Wallet.d.ts
DELETED
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
import { Contract, DecodedOperation, EncodedOperation } from "./Contract";
|
|
2
|
-
import { Transaction } from "./interface";
|
|
3
|
-
import { Provider } from "./Provider";
|
|
4
|
-
import { Signer } from "./Signer";
|
|
5
|
-
/**
|
|
6
|
-
* The Wallet Class combines all the features of [[Signer]],
|
|
7
|
-
* [[Contract]], and [[Provider]] classes.
|
|
8
|
-
*
|
|
9
|
-
* @example **How to send transactions**
|
|
10
|
-
*
|
|
11
|
-
* ```ts
|
|
12
|
-
* (async () => {
|
|
13
|
-
* // define signer, provider, and contract
|
|
14
|
-
* const signer = Signer.fromSeed("my seed");
|
|
15
|
-
* const provider = new Provider("http://45.56.104.152:8080");
|
|
16
|
-
* const contract = new Contract({
|
|
17
|
-
* id: "Mkw96mR+Hh71IWwJoT/2lJXBDl5Q=",
|
|
18
|
-
* entries: {
|
|
19
|
-
* transfer: {
|
|
20
|
-
* id: 0x62efa292,
|
|
21
|
-
* inputs: {
|
|
22
|
-
* type: [
|
|
23
|
-
* {
|
|
24
|
-
* name: "from",
|
|
25
|
-
* type: "string",
|
|
26
|
-
* },
|
|
27
|
-
* {
|
|
28
|
-
* name: "to",
|
|
29
|
-
* type: "string",
|
|
30
|
-
* },
|
|
31
|
-
* {
|
|
32
|
-
* name: "value",
|
|
33
|
-
* type: "uint64",
|
|
34
|
-
* },
|
|
35
|
-
* ],
|
|
36
|
-
* },
|
|
37
|
-
* },
|
|
38
|
-
* balance_of: {
|
|
39
|
-
* id: 0x15619248,
|
|
40
|
-
* inputs: { type: "string" },
|
|
41
|
-
* outputs: { type: "uint64" },
|
|
42
|
-
* },
|
|
43
|
-
* },
|
|
44
|
-
* });
|
|
45
|
-
*
|
|
46
|
-
* // create a wallet with signer, provider and contract
|
|
47
|
-
* const wallet = new Wallet({ signer, provider, contract });
|
|
48
|
-
*
|
|
49
|
-
* // encode a contract operation to make a transfer
|
|
50
|
-
* const opTransfer = wallet.encodeOperation({
|
|
51
|
-
* name: "transfer",
|
|
52
|
-
* args: {
|
|
53
|
-
* from: wallet.getAddress(),
|
|
54
|
-
* to: "bob",
|
|
55
|
-
* value: BigInt(1000),
|
|
56
|
-
* },
|
|
57
|
-
* });
|
|
58
|
-
*
|
|
59
|
-
* // create a transaction
|
|
60
|
-
* const tx = await wallet.newTransaction({
|
|
61
|
-
* operations: [opTransfer],
|
|
62
|
-
* });
|
|
63
|
-
*
|
|
64
|
-
* // sign and send transaction
|
|
65
|
-
* await wallet.signTransaction(tx);
|
|
66
|
-
* await wallet.sendTransaction(tx);
|
|
67
|
-
* })();
|
|
68
|
-
* ```
|
|
69
|
-
*
|
|
70
|
-
* @example **How to read contracts**
|
|
71
|
-
* ```ts
|
|
72
|
-
* (async () => {
|
|
73
|
-
* // define provider and contract
|
|
74
|
-
* const provider = new Provider("http://45.56.104.152:8080");
|
|
75
|
-
* const contract = new Contract({
|
|
76
|
-
* id: "Mkw96mR+Hh71IWwJoT/2lJXBDl5Q=",
|
|
77
|
-
* entries: {
|
|
78
|
-
* transfer: {
|
|
79
|
-
* id: 0x62efa292,
|
|
80
|
-
* inputs: {
|
|
81
|
-
* type: [
|
|
82
|
-
* {
|
|
83
|
-
* name: "from",
|
|
84
|
-
* type: "string",
|
|
85
|
-
* },
|
|
86
|
-
* {
|
|
87
|
-
* name: "to",
|
|
88
|
-
* type: "string",
|
|
89
|
-
* },
|
|
90
|
-
* {
|
|
91
|
-
* name: "value",
|
|
92
|
-
* type: "uint64",
|
|
93
|
-
* },
|
|
94
|
-
* ],
|
|
95
|
-
* },
|
|
96
|
-
* },
|
|
97
|
-
* balance_of: {
|
|
98
|
-
* id: 0x15619248,
|
|
99
|
-
* inputs: { type: "string" },
|
|
100
|
-
* outputs: { type: "uint64" },
|
|
101
|
-
* },
|
|
102
|
-
* },
|
|
103
|
-
* });
|
|
104
|
-
*
|
|
105
|
-
* // create a wallet with provider and contract (signer is optional)
|
|
106
|
-
* const wallet = new Wallet({ provider, contract });
|
|
107
|
-
*
|
|
108
|
-
* // read the contract providing the name of the contract funtion
|
|
109
|
-
* // and its arguments
|
|
110
|
-
* const balance = await wallet.readContract({
|
|
111
|
-
* name: "balance_of",
|
|
112
|
-
* args: wallet.getAddress(),
|
|
113
|
-
* });
|
|
114
|
-
*
|
|
115
|
-
* console.log(Number(balance) / 1e8);
|
|
116
|
-
* })();
|
|
117
|
-
* ```
|
|
118
|
-
*
|
|
119
|
-
* @example **How to upload contracts**
|
|
120
|
-
* ```ts
|
|
121
|
-
* (async () => {
|
|
122
|
-
* // define signer, provider and wallet
|
|
123
|
-
* const signer = Signer.fromSeed("my seed");
|
|
124
|
-
* const provider = new Provider("http://45.56.104.152:8080");
|
|
125
|
-
* const wallet = new Wallet({ signer, provider });
|
|
126
|
-
*
|
|
127
|
-
* // encode operation to upload the contract
|
|
128
|
-
* const bytecode = new Uint8Array([1, 2, 3, 4]);
|
|
129
|
-
* const op = wallet.encodeUploadContractOperation(bytecode);
|
|
130
|
-
*
|
|
131
|
-
* // create a transaction
|
|
132
|
-
* const tx = await wallet.newTransaction({
|
|
133
|
-
* operations: [op],
|
|
134
|
-
* });
|
|
135
|
-
*
|
|
136
|
-
* // sign and send transaction
|
|
137
|
-
* await wallet.signTransaction(tx);
|
|
138
|
-
* await wallet.sendTransaction(tx);
|
|
139
|
-
* })();
|
|
140
|
-
* ```
|
|
141
|
-
*/
|
|
142
|
-
export declare class Wallet {
|
|
143
|
-
/**
|
|
144
|
-
* Class containing the private key. It is used to sign
|
|
145
|
-
*/
|
|
146
|
-
private signer?;
|
|
147
|
-
/**
|
|
148
|
-
* Class defining the contract to interact with
|
|
149
|
-
*/
|
|
150
|
-
contract?: Contract;
|
|
151
|
-
/**
|
|
152
|
-
* Class to connect with the RPC node
|
|
153
|
-
*/
|
|
154
|
-
provider?: Provider;
|
|
155
|
-
constructor(opts?: {
|
|
156
|
-
signer?: Signer;
|
|
157
|
-
contract?: Contract;
|
|
158
|
-
provider?: Provider;
|
|
159
|
-
});
|
|
160
|
-
/**
|
|
161
|
-
* Creates an unsigned transaction
|
|
162
|
-
*/
|
|
163
|
-
newTransaction(opts: {
|
|
164
|
-
/**
|
|
165
|
-
* Maximum resources to be used in the transaction.
|
|
166
|
-
* By default it is 1000000
|
|
167
|
-
*/
|
|
168
|
-
resource_limit?: number | bigint | string;
|
|
169
|
-
/**
|
|
170
|
-
* Array of operations.
|
|
171
|
-
*/
|
|
172
|
-
operations?: {
|
|
173
|
-
type: string;
|
|
174
|
-
value: unknown;
|
|
175
|
-
}[];
|
|
176
|
-
/**
|
|
177
|
-
* Boolean defining if the Provider should be used
|
|
178
|
-
* to call the RPC node and get the nonce (see
|
|
179
|
-
* [[Provider.getNonce]])
|
|
180
|
-
*/
|
|
181
|
-
getNonce?: boolean;
|
|
182
|
-
}): Promise<Transaction>;
|
|
183
|
-
/**
|
|
184
|
-
* The current implementation of Koinos expects a contract Id
|
|
185
|
-
* derived from the account deploying the contract:
|
|
186
|
-
* contractId = ripemd160(address serialized)
|
|
187
|
-
* @returns contract id derived from address
|
|
188
|
-
*/
|
|
189
|
-
static computeContractId(address: string): string;
|
|
190
|
-
/**
|
|
191
|
-
* Function to encode an operation to upload or update a contract
|
|
192
|
-
* @param bytecode - bytecode in multibase64 or Uint8Array
|
|
193
|
-
*/
|
|
194
|
-
encodeUploadContractOperation(bytecode: string | Uint8Array): {
|
|
195
|
-
type: string;
|
|
196
|
-
value: {
|
|
197
|
-
contract_id: string;
|
|
198
|
-
bytecode: string;
|
|
199
|
-
extensions: unknown;
|
|
200
|
-
};
|
|
201
|
-
};
|
|
202
|
-
/**
|
|
203
|
-
* See [[Signer.getAddress]]
|
|
204
|
-
*/
|
|
205
|
-
getAddress(compressed?: boolean): string;
|
|
206
|
-
/**
|
|
207
|
-
* See [[Signer.signTransaction]]
|
|
208
|
-
*/
|
|
209
|
-
signTransaction(tx: Transaction): Promise<Transaction>;
|
|
210
|
-
/**
|
|
211
|
-
* See [[Contract.encodeOperation]]
|
|
212
|
-
*/
|
|
213
|
-
encodeOperation(op: DecodedOperation): EncodedOperation;
|
|
214
|
-
/**
|
|
215
|
-
* See [[Contract.decodeOperation]]
|
|
216
|
-
*/
|
|
217
|
-
decodeOperation(op: EncodedOperation): DecodedOperation;
|
|
218
|
-
/**
|
|
219
|
-
* See [[Contract.decodeResult]]
|
|
220
|
-
*/
|
|
221
|
-
decodeResult(result: string, opName: string): unknown;
|
|
222
|
-
/**
|
|
223
|
-
* See [[Provider.call]]
|
|
224
|
-
*/
|
|
225
|
-
call(method: string, params: unknown): Promise<unknown>;
|
|
226
|
-
/**
|
|
227
|
-
* See [[Provider.getNonce]]
|
|
228
|
-
*/
|
|
229
|
-
getNonce(address: string): Promise<number>;
|
|
230
|
-
/**
|
|
231
|
-
* See [[Provider.sendTransaction]]
|
|
232
|
-
*/
|
|
233
|
-
sendTransaction(transaction: Transaction): Promise<unknown>;
|
|
234
|
-
/**
|
|
235
|
-
* Call the RPC node to read a contract. The operation to read
|
|
236
|
-
* must be in the decoded format (see [[DecodedOperation]]). This
|
|
237
|
-
* function will encode the operation using the contract definition,
|
|
238
|
-
* call the RPC node, and decode the result.
|
|
239
|
-
*
|
|
240
|
-
* @example
|
|
241
|
-
* ```
|
|
242
|
-
* const balance = await wallet.readContract({
|
|
243
|
-
* name: "balance_of",
|
|
244
|
-
* args: "126LgExvJrLDQBsxA1Ddur2VjXJkyAbG91",
|
|
245
|
-
* });
|
|
246
|
-
* ```
|
|
247
|
-
*/
|
|
248
|
-
readContract(operation: DecodedOperation): Promise<unknown>;
|
|
249
|
-
}
|
|
250
|
-
export default Wallet;
|