@wharfkit/resources 1.0.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.
@@ -0,0 +1,532 @@
1
+ /**
2
+ * @greymass/eosio-resources v0.9.0
3
+ * https://github.com/greymass/eosio-resources
4
+ *
5
+ * @license
6
+ * Copyright (c) 2021 Greymass Inc. All Rights Reserved.
7
+ *
8
+ * Redistribution and use in source and binary forms, with or without modification,
9
+ * are permitted provided that the following conditions are met:
10
+ *
11
+ * 1. Redistribution of source code must retain the above copyright notice, this
12
+ * list of conditions and the following disclaimer.
13
+ *
14
+ * 2. Redistribution in binary form must reproduce the above copyright notice,
15
+ * this list of conditions and the following disclaimer in the documentation
16
+ * and/or other materials provided with the distribution.
17
+ *
18
+ * 3. Neither the name of the copyright holder nor the names of its contributors
19
+ * may be used to endorse or promote products derived from this software without
20
+ * specific prior written permission.
21
+ *
22
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
23
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
24
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
25
+ * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
26
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
29
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
30
+ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
31
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
32
+ *
33
+ * YOU ACKNOWLEDGE THAT THIS SOFTWARE IS NOT DESIGNED, LICENSED OR INTENDED FOR USE
34
+ * IN THE DESIGN, CONSTRUCTION, OPERATION OR MAINTENANCE OF ANY MILITARY FACILITY.
35
+ */
36
+ import { Struct, UInt64, UInt128, TimePointSec, Asset, APIClient, FetchProvider } from '@greymass/eosio';
37
+ import BN from 'bn.js';
38
+ import { __decorate } from 'tslib';
39
+
40
+ class PowerUpStateResource extends Struct {
41
+ constructor() {
42
+ super(...arguments);
43
+ this.default_block_cpu_limit = UInt64.from(200000);
44
+ this.default_block_net_limit = UInt64.from(1048576000);
45
+ }
46
+ // Get the current number of allocated units (shift from REX -> PowerUp)
47
+ get allocated() {
48
+ return 1 - Number(this.weight_ratio) / Number(this.target_weight_ratio) / 100;
49
+ }
50
+ // Get the current percentage of reserved units
51
+ get reserved() {
52
+ return Number(this.utilization) / Number(this.weight);
53
+ }
54
+ // Get the symbol definition for the token
55
+ get symbol() {
56
+ return this.min_price.symbol;
57
+ }
58
+ // Common casting for typed values to numbers
59
+ cast() {
60
+ return {
61
+ adjusted_utilization: Number(this.adjusted_utilization),
62
+ decay_secs: Number(this.decay_secs.value),
63
+ exponent: Number(this.exponent),
64
+ utilization: Number(this.utilization),
65
+ utilization_timestamp: Number(this.utilization_timestamp.value),
66
+ weight: Number(this.weight),
67
+ weight_ratio: Number(this.weight_ratio),
68
+ };
69
+ }
70
+ // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L358
71
+ utilization_increase(sample, frac) {
72
+ const { weight } = this;
73
+ const frac128 = UInt128.from(frac);
74
+ const utilization_increase = new BN(weight.value.mul(new BN(frac128.value))) / Math.pow(10, 15);
75
+ return Math.ceil(utilization_increase);
76
+ }
77
+ // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L284-L298
78
+ price_function(utilization) {
79
+ const { exponent, weight } = this.cast();
80
+ const max_price = this.max_price.value;
81
+ const min_price = this.min_price.value;
82
+ let price = min_price;
83
+ const new_exponent = exponent - 1.0;
84
+ if (new_exponent <= 0.0) {
85
+ return max_price;
86
+ }
87
+ else {
88
+ price += (max_price - min_price) * Math.pow(utilization / weight, new_exponent);
89
+ }
90
+ return price;
91
+ }
92
+ // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L274-L280
93
+ price_integral_delta(start_utilization, end_utilization) {
94
+ const { exponent, weight } = this.cast();
95
+ const max_price = this.max_price.value;
96
+ const min_price = this.min_price.value;
97
+ const coefficient = (max_price - min_price) / exponent;
98
+ const start_u = start_utilization / weight;
99
+ const end_u = end_utilization / weight;
100
+ const delta = min_price * end_u -
101
+ min_price * start_u +
102
+ coefficient * Math.pow(end_u, exponent) -
103
+ coefficient * Math.pow(start_u, exponent);
104
+ return delta;
105
+ }
106
+ // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L262-L315
107
+ fee(utilization_increase, adjusted_utilization) {
108
+ const { utilization, weight } = this.cast();
109
+ let start_utilization = utilization;
110
+ const end_utilization = start_utilization + utilization_increase;
111
+ let fee = 0;
112
+ if (start_utilization < adjusted_utilization) {
113
+ fee +=
114
+ (this.price_function(adjusted_utilization) *
115
+ Math.min(utilization_increase, adjusted_utilization - start_utilization)) /
116
+ weight;
117
+ start_utilization = adjusted_utilization;
118
+ }
119
+ if (start_utilization < end_utilization) {
120
+ fee += this.price_integral_delta(start_utilization, end_utilization);
121
+ }
122
+ return fee;
123
+ }
124
+ // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L105-L117
125
+ determine_adjusted_utilization(options) {
126
+ // Casting EOSIO types to usable formats for JS calculations
127
+ const { decay_secs, utilization, utilization_timestamp } = this.cast();
128
+ let { adjusted_utilization } = this.cast();
129
+ // If utilization is less than adjusted, calculate real time value
130
+ if (utilization < adjusted_utilization) {
131
+ // Create now & adjust JS timestamp to match EOSIO timestamp values
132
+ const ts = options && options.timestamp ? options.timestamp : new Date();
133
+ const now = TimePointSec.from(ts).toMilliseconds() / 1000;
134
+ const diff = adjusted_utilization - utilization;
135
+ let delta = diff * Math.exp(-(now - utilization_timestamp) / decay_secs);
136
+ delta = Math.min(Math.max(delta, 0), diff); // Clamp the delta
137
+ adjusted_utilization = utilization + delta;
138
+ }
139
+ return adjusted_utilization;
140
+ }
141
+ }
142
+ __decorate([
143
+ Struct.field('uint8')
144
+ ], PowerUpStateResource.prototype, "version", void 0);
145
+ __decorate([
146
+ Struct.field('int64')
147
+ ], PowerUpStateResource.prototype, "weight", void 0);
148
+ __decorate([
149
+ Struct.field('int64')
150
+ ], PowerUpStateResource.prototype, "weight_ratio", void 0);
151
+ __decorate([
152
+ Struct.field('int64')
153
+ ], PowerUpStateResource.prototype, "assumed_stake_weight", void 0);
154
+ __decorate([
155
+ Struct.field('int64')
156
+ ], PowerUpStateResource.prototype, "initial_weight_ratio", void 0);
157
+ __decorate([
158
+ Struct.field('int64')
159
+ ], PowerUpStateResource.prototype, "target_weight_ratio", void 0);
160
+ __decorate([
161
+ Struct.field('time_point_sec')
162
+ ], PowerUpStateResource.prototype, "initial_timestamp", void 0);
163
+ __decorate([
164
+ Struct.field('time_point_sec')
165
+ ], PowerUpStateResource.prototype, "target_timestamp", void 0);
166
+ __decorate([
167
+ Struct.field('float64')
168
+ ], PowerUpStateResource.prototype, "exponent", void 0);
169
+ __decorate([
170
+ Struct.field('uint32')
171
+ ], PowerUpStateResource.prototype, "decay_secs", void 0);
172
+ __decorate([
173
+ Struct.field('asset')
174
+ ], PowerUpStateResource.prototype, "min_price", void 0);
175
+ __decorate([
176
+ Struct.field('asset')
177
+ ], PowerUpStateResource.prototype, "max_price", void 0);
178
+ __decorate([
179
+ Struct.field('int64')
180
+ ], PowerUpStateResource.prototype, "utilization", void 0);
181
+ __decorate([
182
+ Struct.field('int64')
183
+ ], PowerUpStateResource.prototype, "adjusted_utilization", void 0);
184
+ __decorate([
185
+ Struct.field('time_point_sec')
186
+ ], PowerUpStateResource.prototype, "utilization_timestamp", void 0);
187
+
188
+ let PowerUpStateResourceCPU = class PowerUpStateResourceCPU extends PowerUpStateResource {
189
+ constructor() {
190
+ super(...arguments);
191
+ // Return smallest units per day, μs (microseconds)
192
+ this.per_day = (options) => this.us_per_day(options);
193
+ // Default frac generation by smallest unit type
194
+ this.frac = (usage, us) => this.frac_by_us(usage, us);
195
+ // Frac generation by ms (milliseconds)
196
+ this.frac_by_ms = (usage, ms) => this.frac_by_us(usage, ms * 1000);
197
+ // Price generation by smallest units, μs (microseconds)
198
+ this.price_per = (usage, us = 1000, options) => this.price_per_us(usage, us, options);
199
+ // Price generation by ms (milliseconds)
200
+ this.price_per_ms = (usage, ms = 1, options) => this.price_per_us(usage, ms * 1000, options);
201
+ }
202
+ // Return ms (milliseconds) per day
203
+ ms_per_day(options) {
204
+ return this.us_per_day(options) / 1000;
205
+ }
206
+ // Return μs (microseconds) per day
207
+ us_per_day(options) {
208
+ const limit = options && options.virtual_block_cpu_limit
209
+ ? options.virtual_block_cpu_limit
210
+ : this.default_block_cpu_limit;
211
+ return Number(limit) * 2 * 60 * 60 * 24;
212
+ }
213
+ // Convert weight to μs (microseconds)
214
+ weight_to_us(sample, weight) {
215
+ return Math.ceil((weight * Number(sample)) / BNPrecision);
216
+ }
217
+ // Convert μs (microseconds) to weight
218
+ us_to_weight(sample, us) {
219
+ return Math.floor((us / Number(sample)) * BNPrecision);
220
+ }
221
+ // Frac generation by μs (microseconds)
222
+ frac_by_us(usage, us) {
223
+ const { weight } = this.cast();
224
+ const frac = this.us_to_weight(usage.cpu, us) / weight;
225
+ return Math.floor(frac * Math.pow(10, 15));
226
+ }
227
+ // Price generation by μs (microseconds)
228
+ price_per_us(usage, us = 1000, options) {
229
+ // Determine the utilization increase by this action
230
+ const frac = UInt128.from(this.frac(usage, us));
231
+ const utilization_increase = this.utilization_increase(usage.cpu, frac);
232
+ // Determine the adjusted utilization if needed
233
+ const adjusted_utilization = this.determine_adjusted_utilization(options);
234
+ // Derive the fee from the increase and utilization
235
+ const fee = this.fee(utilization_increase, adjusted_utilization);
236
+ // Force the fee up to the next highest value of precision
237
+ const precision = Math.pow(10, 4);
238
+ const value = Math.ceil(fee * precision) / precision;
239
+ // Return the modified fee
240
+ return value;
241
+ }
242
+ };
243
+ PowerUpStateResourceCPU = __decorate([
244
+ Struct.type('powerupstateresourcecpu')
245
+ ], PowerUpStateResourceCPU);
246
+
247
+ let PowerUpStateResourceNET = class PowerUpStateResourceNET extends PowerUpStateResource {
248
+ constructor() {
249
+ super(...arguments);
250
+ // Return smallest units per day, bytes
251
+ this.per_day = (options) => this.bytes_per_day(options);
252
+ // Default frac generation by smallest unit type
253
+ this.frac = (usage, bytes) => this.frac_by_bytes(usage, bytes);
254
+ // Frac generation by kb
255
+ this.frac_by_kb = (usage, kilobytes) => this.frac_by_bytes(usage, kilobytes * 1000);
256
+ // Price generation by smallest units, bytes
257
+ this.price_per = (usage, bytes = 1000, options) => this.price_per_byte(usage, bytes, options);
258
+ // Price generation by kb
259
+ this.price_per_kb = (usage, kilobytes = 1, options) => this.price_per_byte(usage, kilobytes * 1000, options);
260
+ }
261
+ // Return kb per day
262
+ kb_per_day(options) {
263
+ return this.bytes_per_day(options) / 1000;
264
+ }
265
+ // Return bytes per day
266
+ bytes_per_day(options) {
267
+ const limit = options && options.virtual_block_net_limit
268
+ ? options.virtual_block_net_limit
269
+ : this.default_block_net_limit;
270
+ return Number(limit) * 2 * 60 * 60 * 24;
271
+ }
272
+ // Convert weight to bytes
273
+ weight_to_bytes(sample, weight) {
274
+ return Math.ceil((weight * Number(sample)) / BNPrecision);
275
+ }
276
+ // Convert bytes to weight
277
+ bytes_to_weight(sample, bytes) {
278
+ return Math.floor((bytes / Number(sample)) * BNPrecision);
279
+ }
280
+ // Frac generation by bytes
281
+ frac_by_bytes(usage, bytes) {
282
+ const { weight } = this.cast();
283
+ const frac = this.bytes_to_weight(usage.net, bytes) / weight;
284
+ return Math.floor(frac * Math.pow(10, 15));
285
+ }
286
+ // Price generation by bytes
287
+ price_per_byte(usage, bytes = 1000, options) {
288
+ // Determine the utilization increase by this action
289
+ const frac = UInt128.from(this.frac(usage, bytes));
290
+ const utilization_increase = this.utilization_increase(usage.net, frac);
291
+ // Determine the adjusted utilization if needed
292
+ const adjusted_utilization = this.determine_adjusted_utilization(options);
293
+ // Derive the fee from the increase and utilization
294
+ const fee = this.fee(utilization_increase, adjusted_utilization);
295
+ // Force the fee up to the next highest value of precision
296
+ const precision = Math.pow(10, 4);
297
+ const value = Math.ceil(fee * precision) / precision;
298
+ // Return the modified fee
299
+ return value;
300
+ }
301
+ };
302
+ PowerUpStateResourceNET = __decorate([
303
+ Struct.type('powerupstateresourcenet')
304
+ ], PowerUpStateResourceNET);
305
+
306
+ let PowerUpState = class PowerUpState extends Struct {
307
+ };
308
+ __decorate([
309
+ Struct.field('uint8')
310
+ ], PowerUpState.prototype, "version", void 0);
311
+ __decorate([
312
+ Struct.field(PowerUpStateResourceNET)
313
+ ], PowerUpState.prototype, "net", void 0);
314
+ __decorate([
315
+ Struct.field(PowerUpStateResourceCPU)
316
+ ], PowerUpState.prototype, "cpu", void 0);
317
+ __decorate([
318
+ Struct.field('uint32')
319
+ ], PowerUpState.prototype, "powerup_days", void 0);
320
+ __decorate([
321
+ Struct.field('asset')
322
+ ], PowerUpState.prototype, "min_powerup_fee", void 0);
323
+ PowerUpState = __decorate([
324
+ Struct.type('powerupstate')
325
+ ], PowerUpState);
326
+ class PowerUpAPI {
327
+ constructor(parent) {
328
+ this.parent = parent;
329
+ }
330
+ async get_state() {
331
+ const response = await this.parent.api.v1.chain.get_table_rows({
332
+ code: 'eosio',
333
+ scope: '',
334
+ table: 'powup.state',
335
+ type: PowerUpState,
336
+ });
337
+ return response.rows[0];
338
+ }
339
+ }
340
+
341
+ let Connector = class Connector extends Struct {
342
+ };
343
+ __decorate([
344
+ Struct.field('asset')
345
+ ], Connector.prototype, "balance", void 0);
346
+ __decorate([
347
+ Struct.field('float64')
348
+ ], Connector.prototype, "weight", void 0);
349
+ Connector = __decorate([
350
+ Struct.type('connector')
351
+ ], Connector);
352
+ let ExchangeState = class ExchangeState extends Struct {
353
+ };
354
+ __decorate([
355
+ Struct.field('asset')
356
+ ], ExchangeState.prototype, "supply", void 0);
357
+ __decorate([
358
+ Struct.field(Connector)
359
+ ], ExchangeState.prototype, "base", void 0);
360
+ __decorate([
361
+ Struct.field(Connector)
362
+ ], ExchangeState.prototype, "quote", void 0);
363
+ ExchangeState = __decorate([
364
+ Struct.type('exchange_state')
365
+ ], ExchangeState);
366
+ let RAMState = class RAMState extends ExchangeState {
367
+ price_per(bytes) {
368
+ const base = this.base.balance.units.toNumber();
369
+ const quote = this.quote.balance.value;
370
+ return this.get_input(base, quote, bytes);
371
+ }
372
+ price_per_kb(kilobytes) {
373
+ return this.price_per(kilobytes * 1000);
374
+ }
375
+ // Derived from https://github.com/EOSIO/eosio.contracts/blob/f6578c45c83ec60826e6a1eeb9ee71de85abe976/contracts/eosio.system/src/exchange_state.cpp#L96
376
+ get_input(base, quote, value) {
377
+ const result = (quote * value) / (base - value);
378
+ if (result < 0) {
379
+ return 0;
380
+ }
381
+ return result;
382
+ }
383
+ };
384
+ RAMState = __decorate([
385
+ Struct.type('ramstate')
386
+ ], RAMState);
387
+ class RAMAPI {
388
+ constructor(parent) {
389
+ this.parent = parent;
390
+ }
391
+ async get_state() {
392
+ const response = await this.parent.api.v1.chain.get_table_rows({
393
+ code: 'eosio',
394
+ scope: 'eosio',
395
+ table: 'rammarket',
396
+ type: RAMState,
397
+ });
398
+ return response.rows[0];
399
+ }
400
+ }
401
+
402
+ let REXState = class REXState extends Struct {
403
+ get reserved() {
404
+ return Number(this.total_lent.units) / Number(this.total_lendable.units);
405
+ }
406
+ get symbol() {
407
+ return this.total_lent.symbol;
408
+ }
409
+ get precision() {
410
+ return this.total_lent.symbol.precision;
411
+ }
412
+ get value() {
413
+ return ((Number(this.total_lent.units) + Number(this.total_unlent.units)) /
414
+ Number(this.total_rex.units));
415
+ }
416
+ exchange(amount) {
417
+ return Asset.from((amount.value * this.total_lendable.value) / this.total_rex.value, this.symbol);
418
+ }
419
+ price_per(sample, unit = 1000) {
420
+ // Sample token units
421
+ const tokens = Asset.fromUnits(10000, this.symbol);
422
+ // Spending 1 EOS (10000 units) on REX gives this many tokens
423
+ const bancor = Number(tokens.units) / (this.total_rent.value / this.total_unlent.value);
424
+ // The ratio of the number of tokens received vs the sampled values
425
+ const unitPrice = bancor * (Number(sample.cpu) / BNPrecision);
426
+ // The token units spent per unit
427
+ const perunit = Number(tokens.units) / unitPrice;
428
+ // Multiply the per unit cost by the units requested
429
+ const cost = perunit * unit;
430
+ // Converting to an Asset
431
+ return cost / Math.pow(10, this.precision);
432
+ }
433
+ };
434
+ __decorate([
435
+ Struct.field('uint8')
436
+ ], REXState.prototype, "version", void 0);
437
+ __decorate([
438
+ Struct.field('asset')
439
+ ], REXState.prototype, "total_lent", void 0);
440
+ __decorate([
441
+ Struct.field('asset')
442
+ ], REXState.prototype, "total_unlent", void 0);
443
+ __decorate([
444
+ Struct.field('asset')
445
+ ], REXState.prototype, "total_rent", void 0);
446
+ __decorate([
447
+ Struct.field('asset')
448
+ ], REXState.prototype, "total_lendable", void 0);
449
+ __decorate([
450
+ Struct.field('asset')
451
+ ], REXState.prototype, "total_rex", void 0);
452
+ __decorate([
453
+ Struct.field('asset')
454
+ ], REXState.prototype, "namebid_proceeds", void 0);
455
+ __decorate([
456
+ Struct.field('uint64')
457
+ ], REXState.prototype, "loan_num", void 0);
458
+ REXState = __decorate([
459
+ Struct.type('rexstate')
460
+ ], REXState);
461
+ class REXAPI {
462
+ constructor(parent) {
463
+ this.parent = parent;
464
+ }
465
+ async get_state() {
466
+ const response = await this.parent.api.v1.chain.get_table_rows({
467
+ code: 'eosio',
468
+ scope: 'eosio',
469
+ table: 'rexpool',
470
+ type: REXState,
471
+ });
472
+ return response.rows[0];
473
+ }
474
+ }
475
+
476
+ const BNPrecision = new BN(1000 * 1000);
477
+ class Resources {
478
+ constructor(options) {
479
+ // the account to use when sampling usage
480
+ this.sampleAccount = 'b1';
481
+ // token precision/symbol
482
+ this.symbol = '4,EOS';
483
+ this.v1 = {
484
+ powerup: new PowerUpAPI(this),
485
+ ram: new RAMAPI(this),
486
+ rex: new REXAPI(this),
487
+ };
488
+ // Allow overriding of the sample account name
489
+ if (options.sampleAccount) {
490
+ this.sampleAccount = options.sampleAccount;
491
+ }
492
+ // Allow overriding of the system token symbol
493
+ if (options.symbol) {
494
+ this.symbol = options.symbol;
495
+ }
496
+ // Allow variations on how to specify the API configuration
497
+ if (options.api) {
498
+ this.api = options.api;
499
+ }
500
+ else if (options.url) {
501
+ this.api = new APIClient({ provider: new FetchProvider(options.url, options) });
502
+ }
503
+ else {
504
+ throw new Error('Missing url or api client');
505
+ }
506
+ }
507
+ async getSampledUsage() {
508
+ const account = await this.api.v1.chain.get_account(this.sampleAccount);
509
+ const us = UInt128.from(account.cpu_limit.max.value.mul(BNPrecision));
510
+ const byte = UInt128.from(account.net_limit.max.value.mul(BNPrecision));
511
+ const cpu_weight = UInt128.from(account.cpu_weight.value);
512
+ const net_weight = UInt128.from(account.net_weight.value);
513
+ return {
514
+ account,
515
+ cpu: divCeil(us.value, cpu_weight.value),
516
+ net: divCeil(byte.value, net_weight.value),
517
+ };
518
+ }
519
+ }
520
+ Resources.__className = 'Resources';
521
+ function divCeil(num, den) {
522
+ let v = num.div(den);
523
+ const zero = new BN(0);
524
+ const one = new BN(1);
525
+ if (num.mod(den).gt(zero)) {
526
+ v = v.sub(one);
527
+ }
528
+ return UInt128.from(v);
529
+ }
530
+
531
+ export { BNPrecision, Connector, ExchangeState, PowerUpAPI, PowerUpState, RAMAPI, RAMState, REXAPI, REXState, Resources };
532
+ //# sourceMappingURL=eosio-resources.m.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eosio-resources.m.js","sources":["../src/powerup/abstract.ts","../src/powerup/cpu.ts","../src/powerup/net.ts","../src/powerup.ts","../src/ram.ts","../src/rex.ts","../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":[],"mappings":"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"}