@hashgraphonline/standards-sdk 0.0.81 → 0.0.82
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/hcs-10/browser.d.ts.map +1 -1
- package/dist/es/standards-sdk.es100.js +30 -13
- package/dist/es/standards-sdk.es100.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +14 -3
- package/dist/es/standards-sdk.es101.js.map +1 -1
- package/dist/es/standards-sdk.es102.js +3 -3
- package/dist/es/standards-sdk.es102.js.map +1 -1
- package/dist/es/standards-sdk.es103.js +3 -15
- package/dist/es/standards-sdk.es103.js.map +1 -1
- package/dist/es/standards-sdk.es104.js +15 -4
- package/dist/es/standards-sdk.es104.js.map +1 -1
- package/dist/es/standards-sdk.es105.js +5 -39
- package/dist/es/standards-sdk.es105.js.map +1 -1
- package/dist/es/standards-sdk.es106.js +38 -39
- package/dist/es/standards-sdk.es106.js.map +1 -1
- package/dist/es/standards-sdk.es107.js +37 -34
- package/dist/es/standards-sdk.es107.js.map +1 -1
- package/dist/es/standards-sdk.es108.js +34 -75
- package/dist/es/standards-sdk.es108.js.map +1 -1
- package/dist/es/standards-sdk.es109.js +78 -4
- package/dist/es/standards-sdk.es109.js.map +1 -1
- package/dist/es/standards-sdk.es110.js +1 -1
- package/dist/es/standards-sdk.es115.js +1 -1
- package/dist/es/standards-sdk.es116.js +2 -2
- package/dist/es/standards-sdk.es12.js +3 -3
- package/dist/es/standards-sdk.es17.js +2 -2
- package/dist/es/standards-sdk.es18.js +3 -3
- package/dist/es/standards-sdk.es21.js +1692 -966
- package/dist/es/standards-sdk.es21.js.map +1 -1
- package/dist/es/standards-sdk.es22.js +36 -1767
- package/dist/es/standards-sdk.es22.js.map +1 -1
- package/dist/es/standards-sdk.es23.js +48 -36
- package/dist/es/standards-sdk.es23.js.map +1 -1
- package/dist/es/standards-sdk.es24.js +7163 -21
- package/dist/es/standards-sdk.es24.js.map +1 -1
- package/dist/es/standards-sdk.es25.js +3 -7190
- package/dist/es/standards-sdk.es25.js.map +1 -1
- package/dist/es/standards-sdk.es26.js +2 -3
- package/dist/es/standards-sdk.es26.js.map +1 -1
- package/dist/es/standards-sdk.es27.js +4167 -2
- package/dist/es/standards-sdk.es27.js.map +1 -1
- package/dist/es/standards-sdk.es28.js +961 -4087
- package/dist/es/standards-sdk.es28.js.map +1 -1
- package/dist/es/standards-sdk.es29.js +2 -2
- package/dist/es/standards-sdk.es30.js +419 -2
- package/dist/es/standards-sdk.es30.js.map +1 -1
- package/dist/es/standards-sdk.es31.js +2 -6
- package/dist/es/standards-sdk.es31.js.map +1 -1
- package/dist/es/standards-sdk.es32.js +119 -22
- package/dist/es/standards-sdk.es32.js.map +1 -1
- package/dist/es/standards-sdk.es33.js +2 -143
- package/dist/es/standards-sdk.es33.js.map +1 -1
- package/dist/es/standards-sdk.es34.js +3 -194
- package/dist/es/standards-sdk.es34.js.map +1 -1
- package/dist/es/standards-sdk.es35.js +75 -429
- package/dist/es/standards-sdk.es35.js.map +1 -1
- package/dist/es/standards-sdk.es36.js +22 -24
- package/dist/es/standards-sdk.es36.js.map +1 -1
- package/dist/es/standards-sdk.es37.js +131 -122
- package/dist/es/standards-sdk.es37.js.map +1 -1
- package/dist/es/standards-sdk.es38.js +85 -12
- package/dist/es/standards-sdk.es38.js.map +1 -1
- package/dist/es/standards-sdk.es39.js +7128 -21
- 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 +191 -25
- package/dist/es/standards-sdk.es40.js.map +1 -1
- package/dist/es/standards-sdk.es41.js +432 -15
- package/dist/es/standards-sdk.es41.js.map +1 -1
- package/dist/es/standards-sdk.es42.js +15 -34
- package/dist/es/standards-sdk.es42.js.map +1 -1
- package/dist/es/standards-sdk.es43.js +131 -10
- package/dist/es/standards-sdk.es43.js.map +1 -1
- package/dist/es/standards-sdk.es44.js +10 -53
- package/dist/es/standards-sdk.es44.js.map +1 -1
- package/dist/es/standards-sdk.es45.js +21 -1281
- package/dist/es/standards-sdk.es45.js.map +1 -1
- package/dist/es/standards-sdk.es46.js +25 -144
- package/dist/es/standards-sdk.es46.js.map +1 -1
- package/dist/es/standards-sdk.es47.js +17 -87
- package/dist/es/standards-sdk.es47.js.map +1 -1
- package/dist/es/standards-sdk.es48.js +38 -78
- package/dist/es/standards-sdk.es48.js.map +1 -1
- package/dist/es/standards-sdk.es49.js +15 -29
- 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 +51 -149
- package/dist/es/standards-sdk.es50.js.map +1 -1
- package/dist/es/standards-sdk.es51.js +1125 -629
- package/dist/es/standards-sdk.es51.js.map +1 -1
- package/dist/es/standards-sdk.es52.js +26 -168
- package/dist/es/standards-sdk.es52.js.map +1 -1
- package/dist/es/standards-sdk.es53.js +5 -100
- package/dist/es/standards-sdk.es53.js.map +1 -1
- package/dist/es/standards-sdk.es54.js +159 -2
- package/dist/es/standards-sdk.es54.js.map +1 -1
- package/dist/es/standards-sdk.es55.js +792 -15
- package/dist/es/standards-sdk.es55.js.map +1 -1
- package/dist/es/standards-sdk.es56.js +166 -401
- package/dist/es/standards-sdk.es56.js.map +1 -1
- package/dist/es/standards-sdk.es57.js +125 -346
- package/dist/es/standards-sdk.es57.js.map +1 -1
- package/dist/es/standards-sdk.es58.js +3 -6
- package/dist/es/standards-sdk.es58.js.map +1 -1
- package/dist/es/standards-sdk.es59.js +348 -163
- package/dist/es/standards-sdk.es59.js.map +1 -1
- package/dist/es/standards-sdk.es60.js +4 -79
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es61.js +162 -97
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +74 -45
- package/dist/es/standards-sdk.es62.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +112 -8
- package/dist/es/standards-sdk.es63.js.map +1 -1
- package/dist/es/standards-sdk.es64.js +44 -89
- package/dist/es/standards-sdk.es64.js.map +1 -1
- package/dist/es/standards-sdk.es65.js +9 -3
- package/dist/es/standards-sdk.es65.js.map +1 -1
- package/dist/es/standards-sdk.es66.js +97 -2
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es67.js +3 -112
- package/dist/es/standards-sdk.es67.js.map +1 -1
- package/dist/es/standards-sdk.es68.js +2 -74
- package/dist/es/standards-sdk.es68.js.map +1 -1
- package/dist/es/standards-sdk.es69.js +112 -5
- 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 +73 -4
- package/dist/es/standards-sdk.es70.js.map +1 -1
- package/dist/es/standards-sdk.es71.js +5 -220
- package/dist/es/standards-sdk.es71.js.map +1 -1
- package/dist/es/standards-sdk.es72.js +5 -58
- package/dist/es/standards-sdk.es72.js.map +1 -1
- package/dist/es/standards-sdk.es73.js +220 -68
- package/dist/es/standards-sdk.es73.js.map +1 -1
- package/dist/es/standards-sdk.es74.js +57 -20
- package/dist/es/standards-sdk.es74.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +69 -27
- package/dist/es/standards-sdk.es75.js.map +1 -1
- package/dist/es/standards-sdk.es76.js +19 -24
- package/dist/es/standards-sdk.es76.js.map +1 -1
- package/dist/es/standards-sdk.es77.js +23 -34
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +25 -418
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +38 -2
- package/dist/es/standards-sdk.es79.js.map +1 -1
- package/dist/es/standards-sdk.es8.js +8 -4
- package/dist/es/standards-sdk.es8.js.map +1 -1
- package/dist/es/standards-sdk.es80.js +93 -112
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es81.js +2 -2282
- package/dist/es/standards-sdk.es81.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +15 -163
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +409 -3
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +159 -27
- package/dist/es/standards-sdk.es84.js.map +1 -1
- package/dist/es/standards-sdk.es85.js +26 -57
- package/dist/es/standards-sdk.es85.js.map +1 -1
- package/dist/es/standards-sdk.es86.js +58 -45
- package/dist/es/standards-sdk.es86.js.map +1 -1
- package/dist/es/standards-sdk.es87.js +48 -8
- package/dist/es/standards-sdk.es87.js.map +1 -1
- package/dist/es/standards-sdk.es88.js +8 -63
- package/dist/es/standards-sdk.es88.js.map +1 -1
- package/dist/es/standards-sdk.es89.js +64 -5
- 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 +6 -15
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +15 -7
- package/dist/es/standards-sdk.es91.js.map +1 -1
- package/dist/es/standards-sdk.es92.js +6 -44
- package/dist/es/standards-sdk.es92.js.map +1 -1
- package/dist/es/standards-sdk.es93.js +45 -2
- package/dist/es/standards-sdk.es93.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +2 -136
- package/dist/es/standards-sdk.es94.js.map +1 -1
- package/dist/es/standards-sdk.es95.js +127 -163
- package/dist/es/standards-sdk.es95.js.map +1 -1
- package/dist/es/standards-sdk.es96.js +158 -7122
- package/dist/es/standards-sdk.es96.js.map +1 -1
- package/dist/es/standards-sdk.es97.js +2281 -12
- package/dist/es/standards-sdk.es97.js.map +1 -1
- package/dist/es/standards-sdk.es98.js +13 -13
- package/dist/es/standards-sdk.es98.js.map +1 -1
- package/dist/es/standards-sdk.es99.js +13 -32
- package/dist/es/standards-sdk.es99.js.map +1 -1
- package/dist/umd/hcs-10/browser.d.ts.map +1 -1
- package/dist/umd/standards-sdk.umd.js +1 -1
- package/dist/umd/standards-sdk.umd.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,441 +1,87 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return resultNames.get(result);
|
|
24
|
-
}
|
|
25
|
-
function setNames(result, names) {
|
|
26
|
-
resultNames.set(result, names);
|
|
1
|
+
import { keccak256 } from "./standards-sdk.es36.js";
|
|
2
|
+
import { assertArgument } from "./standards-sdk.es37.js";
|
|
3
|
+
import { getBytes } from "./standards-sdk.es38.js";
|
|
4
|
+
const BN_0 = BigInt(0);
|
|
5
|
+
const BN_36 = BigInt(36);
|
|
6
|
+
function getChecksumAddress(address) {
|
|
7
|
+
address = address.toLowerCase();
|
|
8
|
+
const chars = address.substring(2).split("");
|
|
9
|
+
const expanded = new Uint8Array(40);
|
|
10
|
+
for (let i = 0; i < 40; i++) {
|
|
11
|
+
expanded[i] = chars[i].charCodeAt(0);
|
|
12
|
+
}
|
|
13
|
+
const hashed = getBytes(keccak256(expanded));
|
|
14
|
+
for (let i = 0; i < 40; i += 2) {
|
|
15
|
+
if (hashed[i >> 1] >> 4 >= 8) {
|
|
16
|
+
chars[i] = chars[i].toUpperCase();
|
|
17
|
+
}
|
|
18
|
+
if ((hashed[i >> 1] & 15) >= 8) {
|
|
19
|
+
chars[i + 1] = chars[i + 1].toUpperCase();
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return "0x" + chars.join("");
|
|
27
23
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
throw wrapped;
|
|
24
|
+
const ibanLookup = {};
|
|
25
|
+
for (let i = 0; i < 10; i++) {
|
|
26
|
+
ibanLookup[String(i)] = String(i);
|
|
32
27
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
return items.map((item, index) => {
|
|
36
|
-
if (item instanceof Result) {
|
|
37
|
-
return toObject(getNames(item), item, deep);
|
|
38
|
-
}
|
|
39
|
-
return item;
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
return names.reduce((accum, name, index) => {
|
|
43
|
-
let item = items.getValue(name);
|
|
44
|
-
if (!(name in accum)) {
|
|
45
|
-
if (deep && item instanceof Result) {
|
|
46
|
-
item = toObject(getNames(item), item, deep);
|
|
47
|
-
}
|
|
48
|
-
accum[name] = item;
|
|
49
|
-
}
|
|
50
|
-
return accum;
|
|
51
|
-
}, {});
|
|
28
|
+
for (let i = 0; i < 26; i++) {
|
|
29
|
+
ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);
|
|
52
30
|
}
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
let
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
// #private field from the .d.ts which may break backwards
|
|
70
|
-
// compatibility
|
|
71
|
-
__privateAdd(this, _names);
|
|
72
|
-
items.forEach((item, index) => {
|
|
73
|
-
this[index] = item;
|
|
74
|
-
});
|
|
75
|
-
const nameCounts = names.reduce((accum, name) => {
|
|
76
|
-
if (typeof name === "string") {
|
|
77
|
-
accum.set(name, (accum.get(name) || 0) + 1);
|
|
78
|
-
}
|
|
79
|
-
return accum;
|
|
80
|
-
}, /* @__PURE__ */ new Map());
|
|
81
|
-
setNames(this, Object.freeze(items.map((item, index) => {
|
|
82
|
-
const name = names[index];
|
|
83
|
-
if (name != null && nameCounts.get(name) === 1) {
|
|
84
|
-
return name;
|
|
85
|
-
}
|
|
86
|
-
return null;
|
|
87
|
-
})));
|
|
88
|
-
__privateSet(this, _names, []);
|
|
89
|
-
if (__privateGet(this, _names) == null) {
|
|
90
|
-
void __privateGet(this, _names);
|
|
91
|
-
}
|
|
92
|
-
if (!wrap) {
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
Object.freeze(this);
|
|
96
|
-
const proxy = new Proxy(this, {
|
|
97
|
-
get: (target, prop, receiver) => {
|
|
98
|
-
if (typeof prop === "string") {
|
|
99
|
-
if (prop.match(/^[0-9]+$/)) {
|
|
100
|
-
const index = getNumber(prop, "%index");
|
|
101
|
-
if (index < 0 || index >= this.length) {
|
|
102
|
-
throw new RangeError("out of result range");
|
|
103
|
-
}
|
|
104
|
-
const item = target[index];
|
|
105
|
-
if (item instanceof Error) {
|
|
106
|
-
throwError(`index ${index}`, item);
|
|
107
|
-
}
|
|
108
|
-
return item;
|
|
109
|
-
}
|
|
110
|
-
if (passProperties.indexOf(prop) >= 0) {
|
|
111
|
-
return Reflect.get(target, prop, receiver);
|
|
112
|
-
}
|
|
113
|
-
const value = target[prop];
|
|
114
|
-
if (value instanceof Function) {
|
|
115
|
-
return function(...args2) {
|
|
116
|
-
return value.apply(this === receiver ? target : this, args2);
|
|
117
|
-
};
|
|
118
|
-
} else if (!(prop in target)) {
|
|
119
|
-
return target.getValue.apply(this === receiver ? target : this, [prop]);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
return Reflect.get(target, prop, receiver);
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
setNames(proxy, getNames(this));
|
|
126
|
-
return proxy;
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Returns the Result as a normal Array. If %%deep%%, any children
|
|
130
|
-
* which are Result objects are also converted to a normal Array.
|
|
131
|
-
*
|
|
132
|
-
* This will throw if there are any outstanding deferred
|
|
133
|
-
* errors.
|
|
134
|
-
*/
|
|
135
|
-
toArray(deep) {
|
|
136
|
-
const result = [];
|
|
137
|
-
this.forEach((item, index) => {
|
|
138
|
-
if (item instanceof Error) {
|
|
139
|
-
throwError(`index ${index}`, item);
|
|
140
|
-
}
|
|
141
|
-
if (deep && item instanceof _Result) {
|
|
142
|
-
item = item.toArray(deep);
|
|
143
|
-
}
|
|
144
|
-
result.push(item);
|
|
145
|
-
});
|
|
146
|
-
return result;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Returns the Result as an Object with each name-value pair. If
|
|
150
|
-
* %%deep%%, any children which are Result objects are also
|
|
151
|
-
* converted to an Object.
|
|
152
|
-
*
|
|
153
|
-
* This will throw if any value is unnamed, or if there are
|
|
154
|
-
* any outstanding deferred errors.
|
|
155
|
-
*/
|
|
156
|
-
toObject(deep) {
|
|
157
|
-
const names = getNames(this);
|
|
158
|
-
return names.reduce((accum, name, index) => {
|
|
159
|
-
assert(name != null, `value at index ${index} unnamed`, "UNSUPPORTED_OPERATION", {
|
|
160
|
-
operation: "toObject()"
|
|
161
|
-
});
|
|
162
|
-
return toObject(names, this, deep);
|
|
163
|
-
}, {});
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* @_ignore
|
|
167
|
-
*/
|
|
168
|
-
slice(start, end) {
|
|
169
|
-
if (start == null) {
|
|
170
|
-
start = 0;
|
|
171
|
-
}
|
|
172
|
-
if (start < 0) {
|
|
173
|
-
start += this.length;
|
|
174
|
-
if (start < 0) {
|
|
175
|
-
start = 0;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
if (end == null) {
|
|
179
|
-
end = this.length;
|
|
180
|
-
}
|
|
181
|
-
if (end < 0) {
|
|
182
|
-
end += this.length;
|
|
183
|
-
if (end < 0) {
|
|
184
|
-
end = 0;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
if (end > this.length) {
|
|
188
|
-
end = this.length;
|
|
189
|
-
}
|
|
190
|
-
const _names2 = getNames(this);
|
|
191
|
-
const result = [], names = [];
|
|
192
|
-
for (let i = start; i < end; i++) {
|
|
193
|
-
result.push(this[i]);
|
|
194
|
-
names.push(_names2[i]);
|
|
195
|
-
}
|
|
196
|
-
return new _Result(_guard, result, names);
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* @_ignore
|
|
200
|
-
*/
|
|
201
|
-
filter(callback, thisArg) {
|
|
202
|
-
const _names2 = getNames(this);
|
|
203
|
-
const result = [], names = [];
|
|
204
|
-
for (let i = 0; i < this.length; i++) {
|
|
205
|
-
const item = this[i];
|
|
206
|
-
if (item instanceof Error) {
|
|
207
|
-
throwError(`index ${i}`, item);
|
|
208
|
-
}
|
|
209
|
-
if (callback.call(thisArg, item, i, this)) {
|
|
210
|
-
result.push(item);
|
|
211
|
-
names.push(_names2[i]);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
return new _Result(_guard, result, names);
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* @_ignore
|
|
218
|
-
*/
|
|
219
|
-
map(callback, thisArg) {
|
|
220
|
-
const result = [];
|
|
221
|
-
for (let i = 0; i < this.length; i++) {
|
|
222
|
-
const item = this[i];
|
|
223
|
-
if (item instanceof Error) {
|
|
224
|
-
throwError(`index ${i}`, item);
|
|
225
|
-
}
|
|
226
|
-
result.push(callback.call(thisArg, item, i, this));
|
|
227
|
-
}
|
|
228
|
-
return result;
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Returns the value for %%name%%.
|
|
232
|
-
*
|
|
233
|
-
* Since it is possible to have a key whose name conflicts with
|
|
234
|
-
* a method on a [[Result]] or its superclass Array, or any
|
|
235
|
-
* JavaScript keyword, this ensures all named values are still
|
|
236
|
-
* accessible by name.
|
|
237
|
-
*/
|
|
238
|
-
getValue(name) {
|
|
239
|
-
const index = getNames(this).indexOf(name);
|
|
240
|
-
if (index === -1) {
|
|
241
|
-
return void 0;
|
|
242
|
-
}
|
|
243
|
-
const value = this[index];
|
|
244
|
-
if (value instanceof Error) {
|
|
245
|
-
throwError(`property ${JSON.stringify(name)}`, value.error);
|
|
246
|
-
}
|
|
247
|
-
return value;
|
|
248
|
-
}
|
|
249
|
-
/**
|
|
250
|
-
* Creates a new [[Result]] for %%items%% with each entry
|
|
251
|
-
* also accessible by its corresponding name in %%keys%%.
|
|
252
|
-
*/
|
|
253
|
-
static fromItems(items, keys) {
|
|
254
|
-
return new _Result(_guard, items, keys);
|
|
255
|
-
}
|
|
256
|
-
};
|
|
257
|
-
_names = new WeakMap();
|
|
258
|
-
let Result = _Result;
|
|
259
|
-
function getValue(value) {
|
|
260
|
-
let bytes = toBeArray(value);
|
|
261
|
-
assert(bytes.length <= WordSize, "value out-of-bounds", "BUFFER_OVERRUN", { buffer: bytes, length: WordSize, offset: bytes.length });
|
|
262
|
-
if (bytes.length !== WordSize) {
|
|
263
|
-
bytes = getBytesCopy(concat([Padding.slice(bytes.length % WordSize), bytes]));
|
|
264
|
-
}
|
|
265
|
-
return bytes;
|
|
31
|
+
const safeDigits = 15;
|
|
32
|
+
function ibanChecksum(address) {
|
|
33
|
+
address = address.toUpperCase();
|
|
34
|
+
address = address.substring(4) + address.substring(0, 2) + "00";
|
|
35
|
+
let expanded = address.split("").map((c) => {
|
|
36
|
+
return ibanLookup[c];
|
|
37
|
+
}).join("");
|
|
38
|
+
while (expanded.length >= safeDigits) {
|
|
39
|
+
let block = expanded.substring(0, safeDigits);
|
|
40
|
+
expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);
|
|
41
|
+
}
|
|
42
|
+
let checksum = String(98 - parseInt(expanded, 10) % 97);
|
|
43
|
+
while (checksum.length < 2) {
|
|
44
|
+
checksum = "0" + checksum;
|
|
45
|
+
}
|
|
46
|
+
return checksum;
|
|
266
47
|
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
defineProperties(this, { name, type, localName, dynamic }, {
|
|
283
|
-
name: "string",
|
|
284
|
-
type: "string",
|
|
285
|
-
localName: "string",
|
|
286
|
-
dynamic: "boolean"
|
|
287
|
-
});
|
|
288
|
-
}
|
|
289
|
-
_throwError(message, value) {
|
|
290
|
-
assertArgument(false, message, this.localName, value);
|
|
291
|
-
}
|
|
48
|
+
const Base36 = function() {
|
|
49
|
+
const result = {};
|
|
50
|
+
for (let i = 0; i < 36; i++) {
|
|
51
|
+
const key = "0123456789abcdefghijklmnopqrstuvwxyz"[i];
|
|
52
|
+
result[key] = BigInt(i);
|
|
53
|
+
}
|
|
54
|
+
return result;
|
|
55
|
+
}();
|
|
56
|
+
function fromBase36(value) {
|
|
57
|
+
value = value.toLowerCase();
|
|
58
|
+
let result = BN_0;
|
|
59
|
+
for (let i = 0; i < value.length; i++) {
|
|
60
|
+
result = result * BN_36 + Base36[value[i]];
|
|
61
|
+
}
|
|
62
|
+
return result;
|
|
292
63
|
}
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
get data() {
|
|
303
|
-
return concat(__privateGet(this, _data));
|
|
304
|
-
}
|
|
305
|
-
get length() {
|
|
306
|
-
return __privateGet(this, _dataLength);
|
|
307
|
-
}
|
|
308
|
-
appendWriter(writer) {
|
|
309
|
-
return __privateMethod(this, _Writer_instances, writeData_fn).call(this, getBytesCopy(writer.data));
|
|
64
|
+
function getAddress(address) {
|
|
65
|
+
assertArgument(typeof address === "string", "invalid address", "address", address);
|
|
66
|
+
if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {
|
|
67
|
+
if (!address.startsWith("0x")) {
|
|
68
|
+
address = "0x" + address;
|
|
69
|
+
}
|
|
70
|
+
const result = getChecksumAddress(address);
|
|
71
|
+
assertArgument(!address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) || result === address, "bad address checksum", "address", address);
|
|
72
|
+
return result;
|
|
310
73
|
}
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
let
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
bytes = getBytesCopy(concat([bytes, Padding.slice(paddingOffset)]));
|
|
74
|
+
if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {
|
|
75
|
+
assertArgument(address.substring(2, 4) === ibanChecksum(address), "bad icap checksum", "address", address);
|
|
76
|
+
let result = fromBase36(address.substring(4)).toString(16);
|
|
77
|
+
while (result.length < 40) {
|
|
78
|
+
result = "0" + result;
|
|
317
79
|
}
|
|
318
|
-
return
|
|
319
|
-
}
|
|
320
|
-
// Numeric item; pad on the left *to* WordSize
|
|
321
|
-
writeValue(value) {
|
|
322
|
-
return __privateMethod(this, _Writer_instances, writeData_fn).call(this, getValue(value));
|
|
323
|
-
}
|
|
324
|
-
// Inserts a numeric place-holder, returning a callback that can
|
|
325
|
-
// be used to asjust the value later
|
|
326
|
-
writeUpdatableValue() {
|
|
327
|
-
const offset = __privateGet(this, _data).length;
|
|
328
|
-
__privateGet(this, _data).push(Padding);
|
|
329
|
-
__privateSet(this, _dataLength, __privateGet(this, _dataLength) + WordSize);
|
|
330
|
-
return (value) => {
|
|
331
|
-
__privateGet(this, _data)[offset] = getValue(value);
|
|
332
|
-
};
|
|
80
|
+
return getChecksumAddress("0x" + result);
|
|
333
81
|
}
|
|
82
|
+
assertArgument(false, "invalid address", "address", address);
|
|
334
83
|
}
|
|
335
|
-
_data = new WeakMap();
|
|
336
|
-
_dataLength = new WeakMap();
|
|
337
|
-
_Writer_instances = new WeakSet();
|
|
338
|
-
writeData_fn = function(data) {
|
|
339
|
-
__privateGet(this, _data).push(data);
|
|
340
|
-
__privateSet(this, _dataLength, __privateGet(this, _dataLength) + data.length);
|
|
341
|
-
return data.length;
|
|
342
|
-
};
|
|
343
|
-
const _Reader = class _Reader {
|
|
344
|
-
constructor(data, allowLoose, maxInflation) {
|
|
345
|
-
__privateAdd(this, _Reader_instances);
|
|
346
|
-
// Allows incomplete unpadded data to be read; otherwise an error
|
|
347
|
-
// is raised if attempting to overrun the buffer. This is required
|
|
348
|
-
// to deal with an old Solidity bug, in which event data for
|
|
349
|
-
// external (not public thoguh) was tightly packed.
|
|
350
|
-
__publicField(this, "allowLoose");
|
|
351
|
-
__privateAdd(this, _data2);
|
|
352
|
-
__privateAdd(this, _offset);
|
|
353
|
-
__privateAdd(this, _bytesRead);
|
|
354
|
-
__privateAdd(this, _parent);
|
|
355
|
-
__privateAdd(this, _maxInflation);
|
|
356
|
-
defineProperties(this, { allowLoose: !!allowLoose });
|
|
357
|
-
__privateSet(this, _data2, getBytesCopy(data));
|
|
358
|
-
__privateSet(this, _bytesRead, 0);
|
|
359
|
-
__privateSet(this, _parent, null);
|
|
360
|
-
__privateSet(this, _maxInflation, maxInflation != null ? maxInflation : 1024);
|
|
361
|
-
__privateSet(this, _offset, 0);
|
|
362
|
-
}
|
|
363
|
-
get data() {
|
|
364
|
-
return hexlify(__privateGet(this, _data2));
|
|
365
|
-
}
|
|
366
|
-
get dataLength() {
|
|
367
|
-
return __privateGet(this, _data2).length;
|
|
368
|
-
}
|
|
369
|
-
get consumed() {
|
|
370
|
-
return __privateGet(this, _offset);
|
|
371
|
-
}
|
|
372
|
-
get bytes() {
|
|
373
|
-
return new Uint8Array(__privateGet(this, _data2));
|
|
374
|
-
}
|
|
375
|
-
// Create a sub-reader with the same underlying data, but offset
|
|
376
|
-
subReader(offset) {
|
|
377
|
-
const reader = new _Reader(__privateGet(this, _data2).slice(__privateGet(this, _offset) + offset), this.allowLoose, __privateGet(this, _maxInflation));
|
|
378
|
-
__privateSet(reader, _parent, this);
|
|
379
|
-
return reader;
|
|
380
|
-
}
|
|
381
|
-
// Read bytes
|
|
382
|
-
readBytes(length, loose) {
|
|
383
|
-
let bytes = __privateMethod(this, _Reader_instances, peekBytes_fn).call(this, 0, length, !!loose);
|
|
384
|
-
__privateMethod(this, _Reader_instances, incrementBytesRead_fn).call(this, length);
|
|
385
|
-
__privateSet(this, _offset, __privateGet(this, _offset) + bytes.length);
|
|
386
|
-
return bytes.slice(0, length);
|
|
387
|
-
}
|
|
388
|
-
// Read a numeric values
|
|
389
|
-
readValue() {
|
|
390
|
-
return toBigInt(this.readBytes(WordSize));
|
|
391
|
-
}
|
|
392
|
-
readIndex() {
|
|
393
|
-
return toNumber(this.readBytes(WordSize));
|
|
394
|
-
}
|
|
395
|
-
};
|
|
396
|
-
_data2 = new WeakMap();
|
|
397
|
-
_offset = new WeakMap();
|
|
398
|
-
_bytesRead = new WeakMap();
|
|
399
|
-
_parent = new WeakMap();
|
|
400
|
-
_maxInflation = new WeakMap();
|
|
401
|
-
_Reader_instances = new WeakSet();
|
|
402
|
-
incrementBytesRead_fn = function(count) {
|
|
403
|
-
var _a;
|
|
404
|
-
if (__privateGet(this, _parent)) {
|
|
405
|
-
return __privateMethod(_a = __privateGet(this, _parent), _Reader_instances, incrementBytesRead_fn).call(_a, count);
|
|
406
|
-
}
|
|
407
|
-
__privateSet(this, _bytesRead, __privateGet(this, _bytesRead) + count);
|
|
408
|
-
assert(__privateGet(this, _maxInflation) < 1 || __privateGet(this, _bytesRead) <= __privateGet(this, _maxInflation) * this.dataLength, `compressed ABI data exceeds inflation ratio of ${__privateGet(this, _maxInflation)} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`, "BUFFER_OVERRUN", {
|
|
409
|
-
buffer: getBytesCopy(__privateGet(this, _data2)),
|
|
410
|
-
offset: __privateGet(this, _offset),
|
|
411
|
-
length: count,
|
|
412
|
-
info: {
|
|
413
|
-
bytesRead: __privateGet(this, _bytesRead),
|
|
414
|
-
dataLength: this.dataLength
|
|
415
|
-
}
|
|
416
|
-
});
|
|
417
|
-
};
|
|
418
|
-
peekBytes_fn = function(offset, length, loose) {
|
|
419
|
-
let alignedLength = Math.ceil(length / WordSize) * WordSize;
|
|
420
|
-
if (__privateGet(this, _offset) + alignedLength > __privateGet(this, _data2).length) {
|
|
421
|
-
if (this.allowLoose && loose && __privateGet(this, _offset) + length <= __privateGet(this, _data2).length) {
|
|
422
|
-
alignedLength = length;
|
|
423
|
-
} else {
|
|
424
|
-
assert(false, "data out-of-bounds", "BUFFER_OVERRUN", {
|
|
425
|
-
buffer: getBytesCopy(__privateGet(this, _data2)),
|
|
426
|
-
length: __privateGet(this, _data2).length,
|
|
427
|
-
offset: __privateGet(this, _offset) + alignedLength
|
|
428
|
-
});
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
return __privateGet(this, _data2).slice(__privateGet(this, _offset), __privateGet(this, _offset) + alignedLength);
|
|
432
|
-
};
|
|
433
|
-
let Reader = _Reader;
|
|
434
84
|
export {
|
|
435
|
-
|
|
436
|
-
Reader,
|
|
437
|
-
Result,
|
|
438
|
-
WordSize,
|
|
439
|
-
Writer
|
|
85
|
+
getAddress
|
|
440
86
|
};
|
|
441
87
|
//# sourceMappingURL=standards-sdk.es35.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es35.js","sources":["../../node_modules/ethers/lib.esm/abi/coders/abstract-coder.js"],"sourcesContent":["import { defineProperties, concat, getBytesCopy, getNumber, hexlify, toBeArray, toBigInt, toNumber, assert, assertArgument\n/*, isError*/\n } from \"../../utils/index.js\";\n/**\n * @_ignore:\n */\nexport const WordSize = 32;\nconst Padding = new Uint8Array(WordSize);\n// Properties used to immediate pass through to the underlying object\n// - `then` is used to detect if an object is a Promise for await\nconst passProperties = [\"then\"];\nconst _guard = {};\nconst resultNames = new WeakMap();\nfunction getNames(result) {\n return resultNames.get(result);\n}\nfunction setNames(result, names) {\n resultNames.set(result, names);\n}\nfunction throwError(name, error) {\n const wrapped = new Error(`deferred error during ABI decoding triggered accessing ${name}`);\n wrapped.error = error;\n throw wrapped;\n}\nfunction toObject(names, items, deep) {\n if (names.indexOf(null) >= 0) {\n return items.map((item, index) => {\n if (item instanceof Result) {\n return toObject(getNames(item), item, deep);\n }\n return item;\n });\n }\n return names.reduce((accum, name, index) => {\n let item = items.getValue(name);\n if (!(name in accum)) {\n if (deep && item instanceof Result) {\n item = toObject(getNames(item), item, deep);\n }\n accum[name] = item;\n }\n return accum;\n }, {});\n}\n/**\n * A [[Result]] is a sub-class of Array, which allows accessing any\n * of its values either positionally by its index or, if keys are\n * provided by its name.\n *\n * @_docloc: api/abi\n */\nexport class Result extends Array {\n // No longer used; but cannot be removed as it will remove the\n // #private field from the .d.ts which may break backwards\n // compatibility\n #names;\n /**\n * @private\n */\n constructor(...args) {\n // To properly sub-class Array so the other built-in\n // functions work, the constructor has to behave fairly\n // well. So, in the event we are created via fromItems()\n // we build the read-only Result object we want, but on\n // any other input, we use the default constructor\n // constructor(guard: any, items: Array<any>, keys?: Array<null | string>);\n const guard = args[0];\n let items = args[1];\n let names = (args[2] || []).slice();\n let wrap = true;\n if (guard !== _guard) {\n items = args;\n names = [];\n wrap = false;\n }\n // Can't just pass in ...items since an array of length 1\n // is a special case in the super.\n super(items.length);\n items.forEach((item, index) => { this[index] = item; });\n // Find all unique keys\n const nameCounts = names.reduce((accum, name) => {\n if (typeof (name) === \"string\") {\n accum.set(name, (accum.get(name) || 0) + 1);\n }\n return accum;\n }, (new Map()));\n // Remove any key thats not unique\n setNames(this, Object.freeze(items.map((item, index) => {\n const name = names[index];\n if (name != null && nameCounts.get(name) === 1) {\n return name;\n }\n return null;\n })));\n // Dummy operations to prevent TypeScript from complaining\n this.#names = [];\n if (this.#names == null) {\n void (this.#names);\n }\n if (!wrap) {\n return;\n }\n // A wrapped Result is immutable\n Object.freeze(this);\n // Proxy indices and names so we can trap deferred errors\n const proxy = new Proxy(this, {\n get: (target, prop, receiver) => {\n if (typeof (prop) === \"string\") {\n // Index accessor\n if (prop.match(/^[0-9]+$/)) {\n const index = getNumber(prop, \"%index\");\n if (index < 0 || index >= this.length) {\n throw new RangeError(\"out of result range\");\n }\n const item = target[index];\n if (item instanceof Error) {\n throwError(`index ${index}`, item);\n }\n return item;\n }\n // Pass important checks (like `then` for Promise) through\n if (passProperties.indexOf(prop) >= 0) {\n return Reflect.get(target, prop, receiver);\n }\n const value = target[prop];\n if (value instanceof Function) {\n // Make sure functions work with private variables\n // See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy#no_private_property_forwarding\n return function (...args) {\n return value.apply((this === receiver) ? target : this, args);\n };\n }\n else if (!(prop in target)) {\n // Possible name accessor\n return target.getValue.apply((this === receiver) ? target : this, [prop]);\n }\n }\n return Reflect.get(target, prop, receiver);\n }\n });\n setNames(proxy, getNames(this));\n return proxy;\n }\n /**\n * Returns the Result as a normal Array. If %%deep%%, any children\n * which are Result objects are also converted to a normal Array.\n *\n * This will throw if there are any outstanding deferred\n * errors.\n */\n toArray(deep) {\n const result = [];\n this.forEach((item, index) => {\n if (item instanceof Error) {\n throwError(`index ${index}`, item);\n }\n if (deep && item instanceof Result) {\n item = item.toArray(deep);\n }\n result.push(item);\n });\n return result;\n }\n /**\n * Returns the Result as an Object with each name-value pair. If\n * %%deep%%, any children which are Result objects are also\n * converted to an Object.\n *\n * This will throw if any value is unnamed, or if there are\n * any outstanding deferred errors.\n */\n toObject(deep) {\n const names = getNames(this);\n return names.reduce((accum, name, index) => {\n assert(name != null, `value at index ${index} unnamed`, \"UNSUPPORTED_OPERATION\", {\n operation: \"toObject()\"\n });\n return toObject(names, this, deep);\n }, {});\n }\n /**\n * @_ignore\n */\n slice(start, end) {\n if (start == null) {\n start = 0;\n }\n if (start < 0) {\n start += this.length;\n if (start < 0) {\n start = 0;\n }\n }\n if (end == null) {\n end = this.length;\n }\n if (end < 0) {\n end += this.length;\n if (end < 0) {\n end = 0;\n }\n }\n if (end > this.length) {\n end = this.length;\n }\n const _names = getNames(this);\n const result = [], names = [];\n for (let i = start; i < end; i++) {\n result.push(this[i]);\n names.push(_names[i]);\n }\n return new Result(_guard, result, names);\n }\n /**\n * @_ignore\n */\n filter(callback, thisArg) {\n const _names = getNames(this);\n const result = [], names = [];\n for (let i = 0; i < this.length; i++) {\n const item = this[i];\n if (item instanceof Error) {\n throwError(`index ${i}`, item);\n }\n if (callback.call(thisArg, item, i, this)) {\n result.push(item);\n names.push(_names[i]);\n }\n }\n return new Result(_guard, result, names);\n }\n /**\n * @_ignore\n */\n map(callback, thisArg) {\n const result = [];\n for (let i = 0; i < this.length; i++) {\n const item = this[i];\n if (item instanceof Error) {\n throwError(`index ${i}`, item);\n }\n result.push(callback.call(thisArg, item, i, this));\n }\n return result;\n }\n /**\n * Returns the value for %%name%%.\n *\n * Since it is possible to have a key whose name conflicts with\n * a method on a [[Result]] or its superclass Array, or any\n * JavaScript keyword, this ensures all named values are still\n * accessible by name.\n */\n getValue(name) {\n const index = getNames(this).indexOf(name);\n if (index === -1) {\n return undefined;\n }\n const value = this[index];\n if (value instanceof Error) {\n throwError(`property ${JSON.stringify(name)}`, value.error);\n }\n return value;\n }\n /**\n * Creates a new [[Result]] for %%items%% with each entry\n * also accessible by its corresponding name in %%keys%%.\n */\n static fromItems(items, keys) {\n return new Result(_guard, items, keys);\n }\n}\n/**\n * Returns all errors found in a [[Result]].\n *\n * Since certain errors encountered when creating a [[Result]] do\n * not impact the ability to continue parsing data, they are\n * deferred until they are actually accessed. Hence a faulty string\n * in an Event that is never used does not impact the program flow.\n *\n * However, sometimes it may be useful to access, identify or\n * validate correctness of a [[Result]].\n *\n * @_docloc api/abi\n */\nexport function checkResultErrors(result) {\n // Find the first error (if any)\n const errors = [];\n const checkErrors = function (path, object) {\n if (!Array.isArray(object)) {\n return;\n }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n try {\n checkErrors(childPath, object[key]);\n }\n catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n };\n checkErrors([], result);\n return errors;\n}\nfunction getValue(value) {\n let bytes = toBeArray(value);\n assert(bytes.length <= WordSize, \"value out-of-bounds\", \"BUFFER_OVERRUN\", { buffer: bytes, length: WordSize, offset: bytes.length });\n if (bytes.length !== WordSize) {\n bytes = getBytesCopy(concat([Padding.slice(bytes.length % WordSize), bytes]));\n }\n return bytes;\n}\n/**\n * @_ignore\n */\nexport class Coder {\n // The coder name:\n // - address, uint256, tuple, array, etc.\n name;\n // The fully expanded type, including composite types:\n // - address, uint256, tuple(address,bytes), uint256[3][4][], etc.\n type;\n // The localName bound in the signature, in this example it is \"baz\":\n // - tuple(address foo, uint bar) baz\n localName;\n // Whether this type is dynamic:\n // - Dynamic: bytes, string, address[], tuple(boolean[]), etc.\n // - Not Dynamic: address, uint256, boolean[3], tuple(address, uint8)\n dynamic;\n constructor(name, type, localName, dynamic) {\n defineProperties(this, { name, type, localName, dynamic }, {\n name: \"string\", type: \"string\", localName: \"string\", dynamic: \"boolean\"\n });\n }\n _throwError(message, value) {\n assertArgument(false, message, this.localName, value);\n }\n}\n/**\n * @_ignore\n */\nexport class Writer {\n // An array of WordSize lengthed objects to concatenation\n #data;\n #dataLength;\n constructor() {\n this.#data = [];\n this.#dataLength = 0;\n }\n get data() {\n return concat(this.#data);\n }\n get length() { return this.#dataLength; }\n #writeData(data) {\n this.#data.push(data);\n this.#dataLength += data.length;\n return data.length;\n }\n appendWriter(writer) {\n return this.#writeData(getBytesCopy(writer.data));\n }\n // Arrayish item; pad on the right to *nearest* WordSize\n writeBytes(value) {\n let bytes = getBytesCopy(value);\n const paddingOffset = bytes.length % WordSize;\n if (paddingOffset) {\n bytes = getBytesCopy(concat([bytes, Padding.slice(paddingOffset)]));\n }\n return this.#writeData(bytes);\n }\n // Numeric item; pad on the left *to* WordSize\n writeValue(value) {\n return this.#writeData(getValue(value));\n }\n // Inserts a numeric place-holder, returning a callback that can\n // be used to asjust the value later\n writeUpdatableValue() {\n const offset = this.#data.length;\n this.#data.push(Padding);\n this.#dataLength += WordSize;\n return (value) => {\n this.#data[offset] = getValue(value);\n };\n }\n}\n/**\n * @_ignore\n */\nexport class Reader {\n // Allows incomplete unpadded data to be read; otherwise an error\n // is raised if attempting to overrun the buffer. This is required\n // to deal with an old Solidity bug, in which event data for\n // external (not public thoguh) was tightly packed.\n allowLoose;\n #data;\n #offset;\n #bytesRead;\n #parent;\n #maxInflation;\n constructor(data, allowLoose, maxInflation) {\n defineProperties(this, { allowLoose: !!allowLoose });\n this.#data = getBytesCopy(data);\n this.#bytesRead = 0;\n this.#parent = null;\n this.#maxInflation = (maxInflation != null) ? maxInflation : 1024;\n this.#offset = 0;\n }\n get data() { return hexlify(this.#data); }\n get dataLength() { return this.#data.length; }\n get consumed() { return this.#offset; }\n get bytes() { return new Uint8Array(this.#data); }\n #incrementBytesRead(count) {\n if (this.#parent) {\n return this.#parent.#incrementBytesRead(count);\n }\n this.#bytesRead += count;\n // Check for excessive inflation (see: #4537)\n assert(this.#maxInflation < 1 || this.#bytesRead <= this.#maxInflation * this.dataLength, `compressed ABI data exceeds inflation ratio of ${this.#maxInflation} ( see: https:/\\/github.com/ethers-io/ethers.js/issues/4537 )`, \"BUFFER_OVERRUN\", {\n buffer: getBytesCopy(this.#data), offset: this.#offset,\n length: count, info: {\n bytesRead: this.#bytesRead,\n dataLength: this.dataLength\n }\n });\n }\n #peekBytes(offset, length, loose) {\n let alignedLength = Math.ceil(length / WordSize) * WordSize;\n if (this.#offset + alignedLength > this.#data.length) {\n if (this.allowLoose && loose && this.#offset + length <= this.#data.length) {\n alignedLength = length;\n }\n else {\n assert(false, \"data out-of-bounds\", \"BUFFER_OVERRUN\", {\n buffer: getBytesCopy(this.#data),\n length: this.#data.length,\n offset: this.#offset + alignedLength\n });\n }\n }\n return this.#data.slice(this.#offset, this.#offset + alignedLength);\n }\n // Create a sub-reader with the same underlying data, but offset\n subReader(offset) {\n const reader = new Reader(this.#data.slice(this.#offset + offset), this.allowLoose, this.#maxInflation);\n reader.#parent = this;\n return reader;\n }\n // Read bytes\n readBytes(length, loose) {\n let bytes = this.#peekBytes(0, length, !!loose);\n this.#incrementBytesRead(length);\n this.#offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n // Read a numeric values\n readValue() {\n return toBigInt(this.readBytes(WordSize));\n }\n readIndex() {\n return toNumber(this.readBytes(WordSize));\n }\n}\n//# sourceMappingURL=abstract-coder.js.map"],"names":["args","_names","_data"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es35.js","sources":["../../node_modules/ethers/lib.esm/address/address.js"],"sourcesContent":["import { keccak256 } from \"../crypto/index.js\";\nimport { getBytes, assertArgument } from \"../utils/index.js\";\nconst BN_0 = BigInt(0);\nconst BN_36 = BigInt(36);\nfunction getChecksumAddress(address) {\n // if (!isHexString(address, 20)) {\n // logger.throwArgumentError(\"invalid address\", \"address\", address);\n // }\n address = address.toLowerCase();\n const chars = address.substring(2).split(\"\");\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n const hashed = getBytes(keccak256(expanded));\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n return \"0x\" + chars.join(\"\");\n}\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n// Create lookup table\nconst ibanLookup = {};\nfor (let i = 0; i < 10; i++) {\n ibanLookup[String(i)] = String(i);\n}\nfor (let i = 0; i < 26; i++) {\n ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);\n}\n// How many decimal digits can we process? (for 64-bit float, this is 15)\n// i.e. Math.floor(Math.log10(Number.MAX_SAFE_INTEGER));\nconst safeDigits = 15;\nfunction ibanChecksum(address) {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n // Javascript can handle integers safely up to 15 (decimal) digits\n while (expanded.length >= safeDigits) {\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) {\n checksum = \"0\" + checksum;\n }\n return checksum;\n}\n;\nconst Base36 = (function () {\n ;\n const result = {};\n for (let i = 0; i < 36; i++) {\n const key = \"0123456789abcdefghijklmnopqrstuvwxyz\"[i];\n result[key] = BigInt(i);\n }\n return result;\n})();\nfunction fromBase36(value) {\n value = value.toLowerCase();\n let result = BN_0;\n for (let i = 0; i < value.length; i++) {\n result = result * BN_36 + Base36[value[i]];\n }\n return result;\n}\n/**\n * Returns a normalized and checksumed address for %%address%%.\n * This accepts non-checksum addresses, checksum addresses and\n * [[getIcapAddress]] formats.\n *\n * The checksum in Ethereum uses the capitalization (upper-case\n * vs lower-case) of the characters within an address to encode\n * its checksum, which offers, on average, a checksum of 15-bits.\n *\n * If %%address%% contains both upper-case and lower-case, it is\n * assumed to already be a checksum address and its checksum is\n * validated, and if the address fails its expected checksum an\n * error is thrown.\n *\n * If you wish the checksum of %%address%% to be ignore, it should\n * be converted to lower-case (i.e. ``.toLowercase()``) before\n * being passed in. This should be a very rare situation though,\n * that you wish to bypass the safegaurds in place to protect\n * against an address that has been incorrectly copied from another\n * source.\n *\n * @example:\n * // Adds the checksum (via upper-casing specific letters)\n * getAddress(\"0x8ba1f109551bd432803012645ac136ddd64dba72\")\n * //_result:\n *\n * // Converts ICAP address and adds checksum\n * getAddress(\"XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36\");\n * //_result:\n *\n * // Throws an error if an address contains mixed case,\n * // but the checksum fails\n * getAddress(\"0x8Ba1f109551bD432803012645Ac136ddd64DBA72\")\n * //_error:\n */\nexport function getAddress(address) {\n assertArgument(typeof (address) === \"string\", \"invalid address\", \"address\", address);\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n // Missing the 0x prefix\n if (!address.startsWith(\"0x\")) {\n address = \"0x\" + address;\n }\n const result = getChecksumAddress(address);\n // It is a checksummed address with a bad checksum\n assertArgument(!address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) || result === address, \"bad address checksum\", \"address\", address);\n return result;\n }\n // Maybe ICAP? (we only support direct mode)\n if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n // It is an ICAP address with a bad checksum\n assertArgument(address.substring(2, 4) === ibanChecksum(address), \"bad icap checksum\", \"address\", address);\n let result = fromBase36(address.substring(4)).toString(16);\n while (result.length < 40) {\n result = \"0\" + result;\n }\n return getChecksumAddress(\"0x\" + result);\n }\n assertArgument(false, \"invalid address\", \"address\", address);\n}\n/**\n * The [ICAP Address format](link-icap) format is an early checksum\n * format which attempts to be compatible with the banking\n * industry [IBAN format](link-wiki-iban) for bank accounts.\n *\n * It is no longer common or a recommended format.\n *\n * @example:\n * getIcapAddress(\"0x8ba1f109551bd432803012645ac136ddd64dba72\");\n * //_result:\n *\n * getIcapAddress(\"XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36\");\n * //_result:\n *\n * // Throws an error if the ICAP checksum is wrong\n * getIcapAddress(\"XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK37\");\n * //_error:\n */\nexport function getIcapAddress(address) {\n //let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n let base36 = BigInt(getAddress(address)).toString(36).toUpperCase();\n while (base36.length < 30) {\n base36 = \"0\" + base36;\n }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n//# sourceMappingURL=address.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,28 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
encode(writer, _value) {
|
|
13
|
-
let value = Typed.dereference(_value, "string");
|
|
14
|
-
try {
|
|
15
|
-
value = getAddress(value);
|
|
16
|
-
} catch (error) {
|
|
17
|
-
return this._throwError(error.message, _value);
|
|
18
|
-
}
|
|
19
|
-
return writer.writeValue(value);
|
|
20
|
-
}
|
|
21
|
-
decode(reader) {
|
|
22
|
-
return getAddress(toBeHex(reader.readValue(), 20));
|
|
23
|
-
}
|
|
1
|
+
import { keccak_256 } from "./standards-sdk.es56.js";
|
|
2
|
+
import { getBytes, hexlify } from "./standards-sdk.es38.js";
|
|
3
|
+
let locked = false;
|
|
4
|
+
const _keccak256 = function(data) {
|
|
5
|
+
return keccak_256(data);
|
|
6
|
+
};
|
|
7
|
+
let __keccak256 = _keccak256;
|
|
8
|
+
function keccak256(_data) {
|
|
9
|
+
const data = getBytes(_data, "data");
|
|
10
|
+
return hexlify(__keccak256(data));
|
|
24
11
|
}
|
|
12
|
+
keccak256._ = _keccak256;
|
|
13
|
+
keccak256.lock = function() {
|
|
14
|
+
locked = true;
|
|
15
|
+
};
|
|
16
|
+
keccak256.register = function(func) {
|
|
17
|
+
if (locked) {
|
|
18
|
+
throw new TypeError("keccak256 is locked");
|
|
19
|
+
}
|
|
20
|
+
__keccak256 = func;
|
|
21
|
+
};
|
|
22
|
+
Object.freeze(keccak256);
|
|
25
23
|
export {
|
|
26
|
-
|
|
24
|
+
keccak256
|
|
27
25
|
};
|
|
28
26
|
//# sourceMappingURL=standards-sdk.es36.js.map
|