@hashgraphonline/standards-sdk 0.0.66 → 0.0.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/standards-sdk.es100.js +3 -3
- package/dist/es/standards-sdk.es100.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +4 -2282
- package/dist/es/standards-sdk.es101.js.map +1 -1
- package/dist/es/standards-sdk.es102.js +1 -1
- package/dist/es/standards-sdk.es104.js +1 -1
- package/dist/es/standards-sdk.es105.js +6 -6
- package/dist/es/standards-sdk.es106.js +3 -3
- package/dist/es/standards-sdk.es108.js +1 -1
- package/dist/es/standards-sdk.es113.js +1 -1
- package/dist/es/standards-sdk.es114.js +2 -2
- package/dist/es/standards-sdk.es12.js +3 -3
- package/dist/es/standards-sdk.es14.js +1 -1
- package/dist/es/standards-sdk.es17.js +2 -2
- package/dist/es/standards-sdk.es18.js +3 -3
- package/dist/es/standards-sdk.es20.js +966 -1692
- package/dist/es/standards-sdk.es20.js.map +1 -1
- package/dist/es/standards-sdk.es21.js +1767 -36
- package/dist/es/standards-sdk.es21.js.map +1 -1
- package/dist/es/standards-sdk.es22.js +3 -48
- package/dist/es/standards-sdk.es22.js.map +1 -1
- package/dist/es/standards-sdk.es23.js +3839 -6299
- package/dist/es/standards-sdk.es23.js.map +1 -1
- package/dist/es/standards-sdk.es24.js +36 -3
- package/dist/es/standards-sdk.es24.js.map +1 -1
- package/dist/es/standards-sdk.es25.js +48 -2
- package/dist/es/standards-sdk.es25.js.map +1 -1
- package/dist/es/standards-sdk.es26.js +6525 -939
- package/dist/es/standards-sdk.es26.js.map +1 -1
- package/dist/es/standards-sdk.es27.js +2 -5
- package/dist/es/standards-sdk.es27.js.map +1 -1
- package/dist/es/standards-sdk.es28.js +5 -4167
- package/dist/es/standards-sdk.es28.js.map +1 -1
- package/dist/es/standards-sdk.es29.js +3 -419
- package/dist/es/standards-sdk.es29.js.map +1 -1
- package/dist/es/standards-sdk.es30.js +163 -1
- package/dist/es/standards-sdk.es30.js.map +1 -1
- package/dist/es/standards-sdk.es31.js +93 -112
- package/dist/es/standards-sdk.es31.js.map +1 -1
- package/dist/es/standards-sdk.es32.js +2 -2
- package/dist/es/standards-sdk.es32.js.map +1 -1
- package/dist/es/standards-sdk.es33.js +15 -83
- package/dist/es/standards-sdk.es33.js.map +1 -1
- package/dist/es/standards-sdk.es34.js +408 -22
- package/dist/es/standards-sdk.es34.js.map +1 -1
- package/dist/es/standards-sdk.es35.js +402 -131
- package/dist/es/standards-sdk.es35.js.map +1 -1
- package/dist/es/standards-sdk.es36.js +2 -91
- package/dist/es/standards-sdk.es36.js.map +1 -1
- package/dist/es/standards-sdk.es37.js +115 -190
- package/dist/es/standards-sdk.es37.js.map +1 -1
- package/dist/es/standards-sdk.es38.js +2281 -437
- package/dist/es/standards-sdk.es38.js.map +1 -1
- package/dist/es/standards-sdk.es39.js +3 -24
- package/dist/es/standards-sdk.es39.js.map +1 -1
- package/dist/es/standards-sdk.es4.js +1 -1
- package/dist/es/standards-sdk.es40.js +2 -139
- package/dist/es/standards-sdk.es40.js.map +1 -1
- package/dist/es/standards-sdk.es41.js +79 -13
- package/dist/es/standards-sdk.es41.js.map +1 -1
- package/dist/es/standards-sdk.es42.js +21 -27
- package/dist/es/standards-sdk.es42.js.map +1 -1
- package/dist/es/standards-sdk.es43.js +144 -25
- package/dist/es/standards-sdk.es43.js.map +1 -1
- package/dist/es/standards-sdk.es44.js +87 -17
- package/dist/es/standards-sdk.es44.js.map +1 -1
- package/dist/es/standards-sdk.es45.js +168 -38
- package/dist/es/standards-sdk.es45.js.map +1 -1
- package/dist/es/standards-sdk.es46.js +5 -17
- package/dist/es/standards-sdk.es46.js.map +1 -1
- package/dist/es/standards-sdk.es47.js +136 -54
- package/dist/es/standards-sdk.es47.js.map +1 -1
- package/dist/es/standards-sdk.es48.js +159 -1253
- package/dist/es/standards-sdk.es48.js.map +1 -1
- package/dist/es/standards-sdk.es49.js +431 -25
- package/dist/es/standards-sdk.es49.js.map +1 -1
- package/dist/es/standards-sdk.es5.js +3 -3
- package/dist/es/standards-sdk.es50.js +24 -5
- package/dist/es/standards-sdk.es50.js.map +1 -1
- package/dist/es/standards-sdk.es51.js +122 -142
- package/dist/es/standards-sdk.es51.js.map +1 -1
- package/dist/es/standards-sdk.es52.js +13 -788
- package/dist/es/standards-sdk.es52.js.map +1 -1
- package/dist/es/standards-sdk.es53.js +22 -167
- package/dist/es/standards-sdk.es53.js.map +1 -1
- package/dist/es/standards-sdk.es54.js +23 -137
- package/dist/es/standards-sdk.es54.js.map +1 -1
- package/dist/es/standards-sdk.es55.js +20 -3
- package/dist/es/standards-sdk.es55.js.map +1 -1
- package/dist/es/standards-sdk.es56.js +39 -359
- package/dist/es/standards-sdk.es56.js.map +1 -1
- package/dist/es/standards-sdk.es57.js +17 -5
- package/dist/es/standards-sdk.es57.js.map +1 -1
- package/dist/es/standards-sdk.es58.js +50 -168
- package/dist/es/standards-sdk.es58.js.map +1 -1
- package/dist/es/standards-sdk.es59.js +1287 -79
- package/dist/es/standards-sdk.es59.js.map +1 -1
- package/dist/es/standards-sdk.es60.js +28 -110
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es61.js +150 -43
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +792 -9
- package/dist/es/standards-sdk.es62.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +25 -95
- package/dist/es/standards-sdk.es63.js.map +1 -1
- package/dist/es/standards-sdk.es64.js +25 -3
- package/dist/es/standards-sdk.es64.js.map +1 -1
- package/dist/es/standards-sdk.es65.js +38 -2
- package/dist/es/standards-sdk.es65.js.map +1 -1
- package/dist/es/standards-sdk.es66.js +16 -108
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es67.js +357 -67
- package/dist/es/standards-sdk.es67.js.map +1 -1
- package/dist/es/standards-sdk.es68.js +4 -4
- package/dist/es/standards-sdk.es68.js.map +1 -1
- package/dist/es/standards-sdk.es69.js +178 -4
- package/dist/es/standards-sdk.es69.js.map +1 -1
- package/dist/es/standards-sdk.es7.js +3 -3
- package/dist/es/standards-sdk.es70.js +70 -210
- package/dist/es/standards-sdk.es70.js.map +1 -1
- package/dist/es/standards-sdk.es71.js +106 -50
- package/dist/es/standards-sdk.es71.js.map +1 -1
- package/dist/es/standards-sdk.es72.js +52 -69
- package/dist/es/standards-sdk.es72.js.map +1 -1
- package/dist/es/standards-sdk.es73.js +9 -20
- package/dist/es/standards-sdk.es73.js.map +1 -1
- package/dist/es/standards-sdk.es74.js +95 -25
- package/dist/es/standards-sdk.es74.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +3 -25
- package/dist/es/standards-sdk.es75.js.map +1 -1
- package/dist/es/standards-sdk.es76.js +2 -38
- package/dist/es/standards-sdk.es76.js.map +1 -1
- package/dist/es/standards-sdk.es77.js +113 -3
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +68 -158
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +5 -31
- package/dist/es/standards-sdk.es79.js.map +1 -1
- package/dist/es/standards-sdk.es8.js +3 -3
- package/dist/es/standards-sdk.es80.js +4 -62
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es81.js +217 -46
- package/dist/es/standards-sdk.es81.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +57 -9
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +68 -64
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +32 -6
- package/dist/es/standards-sdk.es84.js.map +1 -1
- package/dist/es/standards-sdk.es85.js +61 -13
- package/dist/es/standards-sdk.es85.js.map +1 -1
- package/dist/es/standards-sdk.es86.js +50 -7
- package/dist/es/standards-sdk.es86.js.map +1 -1
- package/dist/es/standards-sdk.es87.js +10 -45
- package/dist/es/standards-sdk.es87.js.map +1 -1
- package/dist/es/standards-sdk.es88.js +65 -2
- package/dist/es/standards-sdk.es88.js.map +1 -1
- package/dist/es/standards-sdk.es89.js +5 -135
- package/dist/es/standards-sdk.es89.js.map +1 -1
- package/dist/es/standards-sdk.es9.js +1 -1
- package/dist/es/standards-sdk.es90.js +13 -170
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +7 -101
- package/dist/es/standards-sdk.es91.js.map +1 -1
- package/dist/es/standards-sdk.es92.js +45 -2
- package/dist/es/standards-sdk.es92.js.map +1 -1
- package/dist/es/standards-sdk.es93.js +2 -16
- package/dist/es/standards-sdk.es93.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +131 -404
- package/dist/es/standards-sdk.es94.js.map +1 -1
- package/dist/es/standards-sdk.es95.js +171 -12
- package/dist/es/standards-sdk.es95.js.map +1 -1
- package/dist/es/standards-sdk.es96.js +13 -13
- package/dist/es/standards-sdk.es96.js.map +1 -1
- package/dist/es/standards-sdk.es97.js +13 -32
- package/dist/es/standards-sdk.es97.js.map +1 -1
- package/dist/es/standards-sdk.es98.js +30 -13
- package/dist/es/standards-sdk.es98.js.map +1 -1
- package/dist/es/standards-sdk.es99.js +14 -3
- package/dist/es/standards-sdk.es99.js.map +1 -1
- package/package.json +9 -3
|
@@ -1,162 +1,142 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
if (
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const width = BigInt(getNumber(_width, "width"));
|
|
22
|
-
const limit = BN_1 << width - BN_1;
|
|
23
|
-
if (value < BN_0) {
|
|
24
|
-
value = -value;
|
|
25
|
-
assert(value <= limit, "too low", "NUMERIC_FAULT", {
|
|
26
|
-
operation: "toTwos",
|
|
27
|
-
fault: "overflow",
|
|
28
|
-
value: _value
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
import { Typed } from "./standards-sdk.es62.js";
|
|
5
|
+
import { Coder, WordSize, Writer, Result } from "./standards-sdk.es49.js";
|
|
6
|
+
import { AnonymousCoder } from "./standards-sdk.es66.js";
|
|
7
|
+
import { defineProperties } from "./standards-sdk.es60.js";
|
|
8
|
+
import { assertArgumentCount, assert, assertArgument, isError } from "./standards-sdk.es43.js";
|
|
9
|
+
function pack(writer, coders, values) {
|
|
10
|
+
let arrayValues = [];
|
|
11
|
+
if (Array.isArray(values)) {
|
|
12
|
+
arrayValues = values;
|
|
13
|
+
} else if (values && typeof values === "object") {
|
|
14
|
+
let unique = {};
|
|
15
|
+
arrayValues = coders.map((coder) => {
|
|
16
|
+
const name = coder.localName;
|
|
17
|
+
assert(name, "cannot encode object for signature with missing names", "INVALID_ARGUMENT", { argument: "values", info: { coder }, value: values });
|
|
18
|
+
assert(!unique[name], "cannot encode object for signature with duplicate names", "INVALID_ARGUMENT", { argument: "values", info: { coder }, value: values });
|
|
19
|
+
unique[name] = true;
|
|
20
|
+
return values[name];
|
|
29
21
|
});
|
|
30
|
-
const mask2 = (BN_1 << width) - BN_1;
|
|
31
|
-
return (~value & mask2) + BN_1;
|
|
32
22
|
} else {
|
|
33
|
-
|
|
34
|
-
operation: "toTwos",
|
|
35
|
-
fault: "overflow",
|
|
36
|
-
value: _value
|
|
37
|
-
});
|
|
23
|
+
assertArgument(false, "invalid tuple value", "tuple", values);
|
|
38
24
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
25
|
+
assertArgument(coders.length === arrayValues.length, "types/value length mismatch", "tuple", values);
|
|
26
|
+
let staticWriter = new Writer();
|
|
27
|
+
let dynamicWriter = new Writer();
|
|
28
|
+
let updateFuncs = [];
|
|
29
|
+
coders.forEach((coder, index) => {
|
|
30
|
+
let value = arrayValues[index];
|
|
31
|
+
if (coder.dynamic) {
|
|
32
|
+
let dynamicOffset = dynamicWriter.length;
|
|
33
|
+
coder.encode(dynamicWriter, value);
|
|
34
|
+
let updateFunc = staticWriter.writeUpdatableValue();
|
|
35
|
+
updateFuncs.push((baseOffset) => {
|
|
36
|
+
updateFunc(baseOffset + dynamicOffset);
|
|
37
|
+
});
|
|
38
|
+
} else {
|
|
39
|
+
coder.encode(staticWriter, value);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
updateFuncs.forEach((func) => {
|
|
43
|
+
func(staticWriter.length);
|
|
44
|
+
});
|
|
45
|
+
let length = writer.appendWriter(staticWriter);
|
|
46
|
+
length += writer.appendWriter(dynamicWriter);
|
|
47
|
+
return length;
|
|
45
48
|
}
|
|
46
|
-
function
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
49
|
+
function unpack(reader, coders) {
|
|
50
|
+
let values = [];
|
|
51
|
+
let keys = [];
|
|
52
|
+
let baseReader = reader.subReader(0);
|
|
53
|
+
coders.forEach((coder) => {
|
|
54
|
+
let value = null;
|
|
55
|
+
if (coder.dynamic) {
|
|
56
|
+
let offset = reader.readIndex();
|
|
57
|
+
let offsetReader = baseReader.subReader(offset);
|
|
55
58
|
try {
|
|
56
|
-
|
|
57
|
-
|
|
59
|
+
value = coder.decode(offsetReader);
|
|
60
|
+
} catch (error) {
|
|
61
|
+
if (isError(error, "BUFFER_OVERRUN")) {
|
|
62
|
+
throw error;
|
|
58
63
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
} catch (e) {
|
|
64
|
-
assertArgument(false, `invalid BigNumberish string: ${e.message}`, name || "value", value);
|
|
64
|
+
value = error;
|
|
65
|
+
value.baseType = coder.name;
|
|
66
|
+
value.name = coder.localName;
|
|
67
|
+
value.type = coder.type;
|
|
65
68
|
}
|
|
66
|
-
|
|
67
|
-
assertArgument(false, "invalid BigNumberish value", name || "value", value);
|
|
68
|
-
}
|
|
69
|
-
function getUint(value, name) {
|
|
70
|
-
const result = getBigInt(value, name);
|
|
71
|
-
assert(result >= BN_0, "unsigned value cannot be negative", "NUMERIC_FAULT", {
|
|
72
|
-
fault: "overflow",
|
|
73
|
-
operation: "getUint",
|
|
74
|
-
value
|
|
75
|
-
});
|
|
76
|
-
return result;
|
|
77
|
-
}
|
|
78
|
-
const Nibbles = "0123456789abcdef";
|
|
79
|
-
function toBigInt(value) {
|
|
80
|
-
if (value instanceof Uint8Array) {
|
|
81
|
-
let result = "0x0";
|
|
82
|
-
for (const v of value) {
|
|
83
|
-
result += Nibbles[v >> 4];
|
|
84
|
-
result += Nibbles[v & 15];
|
|
85
|
-
}
|
|
86
|
-
return BigInt(result);
|
|
87
|
-
}
|
|
88
|
-
return getBigInt(value);
|
|
89
|
-
}
|
|
90
|
-
function getNumber(value, name) {
|
|
91
|
-
switch (typeof value) {
|
|
92
|
-
case "bigint":
|
|
93
|
-
assertArgument(value >= -9007199254740991 && value <= maxValue, "overflow", name || "value", value);
|
|
94
|
-
return Number(value);
|
|
95
|
-
case "number":
|
|
96
|
-
assertArgument(Number.isInteger(value), "underflow", name || "value", value);
|
|
97
|
-
assertArgument(value >= -9007199254740991 && value <= maxValue, "overflow", name || "value", value);
|
|
98
|
-
return value;
|
|
99
|
-
case "string":
|
|
69
|
+
} else {
|
|
100
70
|
try {
|
|
101
|
-
|
|
102
|
-
|
|
71
|
+
value = coder.decode(reader);
|
|
72
|
+
} catch (error) {
|
|
73
|
+
if (isError(error, "BUFFER_OVERRUN")) {
|
|
74
|
+
throw error;
|
|
103
75
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
76
|
+
value = error;
|
|
77
|
+
value.baseType = coder.name;
|
|
78
|
+
value.name = coder.localName;
|
|
79
|
+
value.type = coder.type;
|
|
107
80
|
}
|
|
108
|
-
}
|
|
109
|
-
assertArgument(false, "invalid numeric value", name || "value", value);
|
|
110
|
-
}
|
|
111
|
-
function toNumber(value) {
|
|
112
|
-
return getNumber(toBigInt(value));
|
|
113
|
-
}
|
|
114
|
-
function toBeHex(_value, _width) {
|
|
115
|
-
const value = getUint(_value, "value");
|
|
116
|
-
let result = value.toString(16);
|
|
117
|
-
if (_width == null) {
|
|
118
|
-
if (result.length % 2) {
|
|
119
|
-
result = "0" + result;
|
|
120
81
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
assert(width * 2 >= result.length, `value exceeds width (${width} bytes)`, "NUMERIC_FAULT", {
|
|
124
|
-
operation: "toBeHex",
|
|
125
|
-
fault: "overflow",
|
|
126
|
-
value: _value
|
|
127
|
-
});
|
|
128
|
-
while (result.length < width * 2) {
|
|
129
|
-
result = "0" + result;
|
|
82
|
+
if (value == void 0) {
|
|
83
|
+
throw new Error("investigate");
|
|
130
84
|
}
|
|
131
|
-
|
|
132
|
-
|
|
85
|
+
values.push(value);
|
|
86
|
+
keys.push(coder.localName || null);
|
|
87
|
+
});
|
|
88
|
+
return Result.fromItems(values, keys);
|
|
133
89
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
90
|
+
class ArrayCoder extends Coder {
|
|
91
|
+
constructor(coder, length, localName) {
|
|
92
|
+
const type = coder.type + "[" + (length >= 0 ? length : "") + "]";
|
|
93
|
+
const dynamic = length === -1 || coder.dynamic;
|
|
94
|
+
super("array", type, localName, dynamic);
|
|
95
|
+
__publicField(this, "coder");
|
|
96
|
+
__publicField(this, "length");
|
|
97
|
+
defineProperties(this, { coder, length });
|
|
138
98
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
99
|
+
defaultValue() {
|
|
100
|
+
const defaultChild = this.coder.defaultValue();
|
|
101
|
+
const result = [];
|
|
102
|
+
for (let i = 0; i < this.length; i++) {
|
|
103
|
+
result.push(defaultChild);
|
|
104
|
+
}
|
|
105
|
+
return result;
|
|
142
106
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
107
|
+
encode(writer, _value) {
|
|
108
|
+
const value = Typed.dereference(_value, "array");
|
|
109
|
+
if (!Array.isArray(value)) {
|
|
110
|
+
this._throwError("expected array value", value);
|
|
111
|
+
}
|
|
112
|
+
let count = this.length;
|
|
113
|
+
if (count === -1) {
|
|
114
|
+
count = value.length;
|
|
115
|
+
writer.writeValue(value.length);
|
|
116
|
+
}
|
|
117
|
+
assertArgumentCount(value.length, count, "coder array" + (this.localName ? " " + this.localName : ""));
|
|
118
|
+
let coders = [];
|
|
119
|
+
for (let i = 0; i < value.length; i++) {
|
|
120
|
+
coders.push(this.coder);
|
|
121
|
+
}
|
|
122
|
+
return pack(writer, coders, value);
|
|
123
|
+
}
|
|
124
|
+
decode(reader) {
|
|
125
|
+
let count = this.length;
|
|
126
|
+
if (count === -1) {
|
|
127
|
+
count = reader.readIndex();
|
|
128
|
+
assert(count * WordSize <= reader.dataLength, "insufficient data length", "BUFFER_OVERRUN", { buffer: reader.bytes, offset: count * WordSize, length: reader.dataLength });
|
|
129
|
+
}
|
|
130
|
+
let coders = [];
|
|
131
|
+
for (let i = 0; i < count; i++) {
|
|
132
|
+
coders.push(new AnonymousCoder(this.coder));
|
|
133
|
+
}
|
|
134
|
+
return unpack(reader, coders);
|
|
147
135
|
}
|
|
148
|
-
return result;
|
|
149
136
|
}
|
|
150
137
|
export {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
getUint,
|
|
155
|
-
mask,
|
|
156
|
-
toBeArray,
|
|
157
|
-
toBeHex,
|
|
158
|
-
toBigInt,
|
|
159
|
-
toNumber,
|
|
160
|
-
toTwos
|
|
138
|
+
ArrayCoder,
|
|
139
|
+
pack,
|
|
140
|
+
unpack
|
|
161
141
|
};
|
|
162
142
|
//# sourceMappingURL=standards-sdk.es51.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es51.js","sources":["../../node_modules/ethers/lib.esm/utils/maths.js"],"sourcesContent":["/**\n * Some mathematic operations.\n *\n * @_subsection: api/utils:Math Helpers [about-maths]\n */\nimport { hexlify, isBytesLike } from \"./data.js\";\nimport { assert, assertArgument } from \"./errors.js\";\nconst BN_0 = BigInt(0);\nconst BN_1 = BigInt(1);\n//const BN_Max256 = (BN_1 << BigInt(256)) - BN_1;\n// IEEE 754 support 53-bits of mantissa\nconst maxValue = 0x1fffffffffffff;\n/**\n * Convert %%value%% from a twos-compliment representation of %%width%%\n * bits to its value.\n *\n * If the highest bit is ``1``, the result will be negative.\n */\nexport function fromTwos(_value, _width) {\n const value = getUint(_value, \"value\");\n const width = BigInt(getNumber(_width, \"width\"));\n assert((value >> width) === BN_0, \"overflow\", \"NUMERIC_FAULT\", {\n operation: \"fromTwos\", fault: \"overflow\", value: _value\n });\n // Top bit set; treat as a negative value\n if (value >> (width - BN_1)) {\n const mask = (BN_1 << width) - BN_1;\n return -(((~value) & mask) + BN_1);\n }\n return value;\n}\n/**\n * Convert %%value%% to a twos-compliment representation of\n * %%width%% bits.\n *\n * The result will always be positive.\n */\nexport function toTwos(_value, _width) {\n let value = getBigInt(_value, \"value\");\n const width = BigInt(getNumber(_width, \"width\"));\n const limit = (BN_1 << (width - BN_1));\n if (value < BN_0) {\n value = -value;\n assert(value <= limit, \"too low\", \"NUMERIC_FAULT\", {\n operation: \"toTwos\", fault: \"overflow\", value: _value\n });\n const mask = (BN_1 << width) - BN_1;\n return ((~value) & mask) + BN_1;\n }\n else {\n assert(value < limit, \"too high\", \"NUMERIC_FAULT\", {\n operation: \"toTwos\", fault: \"overflow\", value: _value\n });\n }\n return value;\n}\n/**\n * Mask %%value%% with a bitmask of %%bits%% ones.\n */\nexport function mask(_value, _bits) {\n const value = getUint(_value, \"value\");\n const bits = BigInt(getNumber(_bits, \"bits\"));\n return value & ((BN_1 << bits) - BN_1);\n}\n/**\n * Gets a BigInt from %%value%%. If it is an invalid value for\n * a BigInt, then an ArgumentError will be thrown for %%name%%.\n */\nexport function getBigInt(value, name) {\n switch (typeof (value)) {\n case \"bigint\": return value;\n case \"number\":\n assertArgument(Number.isInteger(value), \"underflow\", name || \"value\", value);\n assertArgument(value >= -maxValue && value <= maxValue, \"overflow\", name || \"value\", value);\n return BigInt(value);\n case \"string\":\n try {\n if (value === \"\") {\n throw new Error(\"empty string\");\n }\n if (value[0] === \"-\" && value[1] !== \"-\") {\n return -BigInt(value.substring(1));\n }\n return BigInt(value);\n }\n catch (e) {\n assertArgument(false, `invalid BigNumberish string: ${e.message}`, name || \"value\", value);\n }\n }\n assertArgument(false, \"invalid BigNumberish value\", name || \"value\", value);\n}\n/**\n * Returns %%value%% as a bigint, validating it is valid as a bigint\n * value and that it is positive.\n */\nexport function getUint(value, name) {\n const result = getBigInt(value, name);\n assert(result >= BN_0, \"unsigned value cannot be negative\", \"NUMERIC_FAULT\", {\n fault: \"overflow\", operation: \"getUint\", value\n });\n return result;\n}\nconst Nibbles = \"0123456789abcdef\";\n/*\n * Converts %%value%% to a BigInt. If %%value%% is a Uint8Array, it\n * is treated as Big Endian data.\n */\nexport function toBigInt(value) {\n if (value instanceof Uint8Array) {\n let result = \"0x0\";\n for (const v of value) {\n result += Nibbles[v >> 4];\n result += Nibbles[v & 0x0f];\n }\n return BigInt(result);\n }\n return getBigInt(value);\n}\n/**\n * Gets a //number// from %%value%%. If it is an invalid value for\n * a //number//, then an ArgumentError will be thrown for %%name%%.\n */\nexport function getNumber(value, name) {\n switch (typeof (value)) {\n case \"bigint\":\n assertArgument(value >= -maxValue && value <= maxValue, \"overflow\", name || \"value\", value);\n return Number(value);\n case \"number\":\n assertArgument(Number.isInteger(value), \"underflow\", name || \"value\", value);\n assertArgument(value >= -maxValue && value <= maxValue, \"overflow\", name || \"value\", value);\n return value;\n case \"string\":\n try {\n if (value === \"\") {\n throw new Error(\"empty string\");\n }\n return getNumber(BigInt(value), name);\n }\n catch (e) {\n assertArgument(false, `invalid numeric string: ${e.message}`, name || \"value\", value);\n }\n }\n assertArgument(false, \"invalid numeric value\", name || \"value\", value);\n}\n/**\n * Converts %%value%% to a number. If %%value%% is a Uint8Array, it\n * is treated as Big Endian data. Throws if the value is not safe.\n */\nexport function toNumber(value) {\n return getNumber(toBigInt(value));\n}\n/**\n * Converts %%value%% to a Big Endian hexstring, optionally padded to\n * %%width%% bytes.\n */\nexport function toBeHex(_value, _width) {\n const value = getUint(_value, \"value\");\n let result = value.toString(16);\n if (_width == null) {\n // Ensure the value is of even length\n if (result.length % 2) {\n result = \"0\" + result;\n }\n }\n else {\n const width = getNumber(_width, \"width\");\n assert(width * 2 >= result.length, `value exceeds width (${width} bytes)`, \"NUMERIC_FAULT\", {\n operation: \"toBeHex\",\n fault: \"overflow\",\n value: _value\n });\n // Pad the value to the required width\n while (result.length < (width * 2)) {\n result = \"0\" + result;\n }\n }\n return \"0x\" + result;\n}\n/**\n * Converts %%value%% to a Big Endian Uint8Array.\n */\nexport function toBeArray(_value) {\n const value = getUint(_value, \"value\");\n if (value === BN_0) {\n return new Uint8Array([]);\n }\n let hex = value.toString(16);\n if (hex.length % 2) {\n hex = \"0\" + hex;\n }\n const result = new Uint8Array(hex.length / 2);\n for (let i = 0; i < result.length; i++) {\n const offset = i * 2;\n result[i] = parseInt(hex.substring(offset, offset + 2), 16);\n }\n return result;\n}\n/**\n * Returns a [[HexString]] for %%value%% safe to use as a //Quantity//.\n *\n * A //Quantity// does not have and leading 0 values unless the value is\n * the literal value `0x0`. This is most commonly used for JSSON-RPC\n * numeric values.\n */\nexport function toQuantity(value) {\n let result = hexlify(isBytesLike(value) ? value : toBeArray(value)).substring(2);\n while (result.startsWith(\"0\")) {\n result = result.substring(1);\n }\n if (result === \"\") {\n result = \"0\";\n }\n return \"0x\" + result;\n}\n//# sourceMappingURL=maths.js.map"],"names":["mask"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es51.js","sources":["../../node_modules/ethers/lib.esm/abi/coders/array.js"],"sourcesContent":["import { defineProperties, isError, assert, assertArgument, assertArgumentCount } from \"../../utils/index.js\";\nimport { Typed } from \"../typed.js\";\nimport { Coder, Result, WordSize, Writer } from \"./abstract-coder.js\";\nimport { AnonymousCoder } from \"./anonymous.js\";\n/**\n * @_ignore\n */\nexport function pack(writer, coders, values) {\n let arrayValues = [];\n if (Array.isArray(values)) {\n arrayValues = values;\n }\n else if (values && typeof (values) === \"object\") {\n let unique = {};\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n assert(name, \"cannot encode object for signature with missing names\", \"INVALID_ARGUMENT\", { argument: \"values\", info: { coder }, value: values });\n assert(!unique[name], \"cannot encode object for signature with duplicate names\", \"INVALID_ARGUMENT\", { argument: \"values\", info: { coder }, value: values });\n unique[name] = true;\n return values[name];\n });\n }\n else {\n assertArgument(false, \"invalid tuple value\", \"tuple\", values);\n }\n assertArgument(coders.length === arrayValues.length, \"types/value length mismatch\", \"tuple\", values);\n let staticWriter = new Writer();\n let dynamicWriter = new Writer();\n let updateFuncs = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n }\n else {\n coder.encode(staticWriter, value);\n }\n });\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\n/**\n * @_ignore\n */\nexport function unpack(reader, coders) {\n let values = [];\n let keys = [];\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n coders.forEach((coder) => {\n let value = null;\n if (coder.dynamic) {\n let offset = reader.readIndex();\n let offsetReader = baseReader.subReader(offset);\n try {\n value = coder.decode(offsetReader);\n }\n catch (error) {\n // Cannot recover from this\n if (isError(error, \"BUFFER_OVERRUN\")) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n else {\n try {\n value = coder.decode(reader);\n }\n catch (error) {\n // Cannot recover from this\n if (isError(error, \"BUFFER_OVERRUN\")) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n if (value == undefined) {\n throw new Error(\"investigate\");\n }\n values.push(value);\n keys.push(coder.localName || null);\n });\n return Result.fromItems(values, keys);\n}\n/**\n * @_ignore\n */\nexport class ArrayCoder extends Coder {\n coder;\n length;\n constructor(coder, length, localName) {\n const type = (coder.type + \"[\" + (length >= 0 ? length : \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n defineProperties(this, { coder, length });\n }\n defaultValue() {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n const result = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n encode(writer, _value) {\n const value = Typed.dereference(_value, \"array\");\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n let count = this.length;\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n assertArgumentCount(value.length, count, \"coder array\" + (this.localName ? (\" \" + this.localName) : \"\"));\n let coders = [];\n for (let i = 0; i < value.length; i++) {\n coders.push(this.coder);\n }\n return pack(writer, coders, value);\n }\n decode(reader) {\n let count = this.length;\n if (count === -1) {\n count = reader.readIndex();\n // Check that there is *roughly* enough data to ensure\n // stray random data is not being read as a length. Each\n // slot requires at least 32 bytes for their value (or 32\n // bytes as a link to the data). This could use a much\n // tighter bound, but we are erroring on the side of safety.\n assert(count * WordSize <= reader.dataLength, \"insufficient data length\", \"BUFFER_OVERRUN\", { buffer: reader.bytes, offset: count * WordSize, length: reader.dataLength });\n }\n let coders = [];\n for (let i = 0; i < count; i++) {\n coders.push(new AnonymousCoder(this.coder));\n }\n return unpack(reader, coders);\n }\n}\n//# sourceMappingURL=array.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|