@wharfkit/resources 1.4.0-rc1 → 1.5.0-rc1

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @wharfkit/resources v1.4.0-rc1
2
+ * @wharfkit/resources v1.5.0-rc1
3
3
  * https://github.com/wharfkit/resources
4
4
  *
5
5
  * @license
@@ -33,7 +33,7 @@
33
33
  * YOU ACKNOWLEDGE THAT THIS SOFTWARE IS NOT DESIGNED, LICENSED OR INTENDED FOR USE
34
34
  * IN THE DESIGN, CONSTRUCTION, OPERATION OR MAINTENANCE OF ANY MILITARY FACILITY.
35
35
  */
36
- import { Struct, UInt64, UInt128, Int64, TimePointSec, Asset, APIClient, FetchProvider } from '@wharfkit/antelope';
36
+ import { Struct, UInt64, UInt128, Asset, Int64, TimePointSec, APIClient, FetchProvider } from '@wharfkit/antelope';
37
37
  import BN from 'bn.js';
38
38
  import { __decorate } from 'tslib';
39
39
  import bigDecimal from 'js-big-decimal';
@@ -45,76 +45,116 @@ class PowerUpStateResource extends Struct {
45
45
  this.default_block_net_limit = UInt64.from(1048576000);
46
46
  }
47
47
  // Get the current number of allocated units (shift from REX -> PowerUp)
48
- get allocated() {
48
+ get allocated_legacy() {
49
49
  return 1 - Number(this.weight_ratio) / Number(this.target_weight_ratio) / 100;
50
50
  }
51
+ get allocated() {
52
+ return 1 - Number(this.weight_ratio.dividing(this.target_weight_ratio)) / 100;
53
+ }
51
54
  // Get the current percentage of reserved units
52
- get reserved() {
55
+ get reserved_legacy() {
53
56
  return new BN(String(this.utilization)) / new BN(String(this.weight));
54
57
  }
58
+ get reserved() {
59
+ return this.utilization.dividing(this.weight);
60
+ }
55
61
  // Get the symbol definition for the token
56
62
  get symbol() {
57
63
  return this.min_price.symbol;
58
64
  }
59
- // Common casting for typed values to numbers
60
- cast() {
61
- return {
62
- adjusted_utilization: String(this.adjusted_utilization),
63
- decay_secs: Number(this.decay_secs.value),
64
- exponent: Number(this.exponent),
65
- utilization: String(this.utilization),
66
- utilization_timestamp: Number(this.utilization_timestamp.value),
67
- weight: new BN(String(this.weight)),
68
- weight_ratio: Number(this.weight_ratio),
69
- };
70
- }
71
65
  // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L358
72
- utilization_increase(sample, frac) {
66
+ utilization_increase_legacy(frac) {
73
67
  const { weight } = this;
74
68
  const frac128 = UInt128.from(frac);
75
69
  const utilization_increase = new BN(weight.value.mul(new BN(frac128.value))) / Math.pow(10, 15);
76
70
  return Math.ceil(utilization_increase);
77
71
  }
72
+ utilization_increase(frac) {
73
+ return frac.multiplying(this.weight).dividing(UInt128.from(Math.pow(10, 15)), 'ceil');
74
+ }
78
75
  // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L284-L298
79
- price_function(utilization) {
80
- const { exponent, weight } = this.cast();
76
+ price_function_legacy(utilization) {
77
+ const { exponent, weight } = this;
81
78
  const max_price = this.max_price.value;
82
79
  const min_price = this.min_price.value;
83
80
  let price = min_price;
84
- const new_exponent = exponent - 1.0;
81
+ const new_exponent = Number(exponent) - 1.0;
85
82
  if (new_exponent <= 0.0) {
86
83
  return max_price;
87
84
  }
88
85
  else {
89
- const util_weight = new BN(utilization) / weight;
90
- price += (max_price - min_price) * Math.pow(util_weight, new_exponent);
86
+ const util_weight = utilization.dividing(weight);
87
+ price += (max_price - min_price) * Math.pow(Number(util_weight), new_exponent);
88
+ }
89
+ return price;
90
+ }
91
+ price_function(utilization) {
92
+ const { weight } = this;
93
+ const price = this.min_price.units;
94
+ const new_exponent = Number(this.exponent) - 1.0;
95
+ if (new_exponent <= 0.0) {
96
+ return this.max_price.units;
97
+ }
98
+ else {
99
+ const util_weight = utilization.dividing(weight);
100
+ const difference = Asset.fromUnits(this.max_price.units.subtracting(this.min_price.units), this.symbol);
101
+ price.add(difference.value * Math.pow(Number(util_weight), new_exponent));
91
102
  }
92
103
  return price;
93
104
  }
94
105
  // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L274-L280
95
- price_integral_delta(start_utilization, end_utilization) {
96
- const { exponent, weight } = this.cast();
106
+ price_integral_delta_legacy(start_utilization, end_utilization) {
107
+ const { exponent, weight } = this;
97
108
  const max_price = this.max_price.value;
98
109
  const min_price = this.min_price.value;
99
- const coefficient = (max_price - min_price) / exponent;
110
+ const coefficient = (max_price - min_price) / exponent.value;
100
111
  const start_u = Number(start_utilization.dividing(weight));
101
112
  const end_u = Number(end_utilization.dividing(weight));
102
113
  const delta = min_price * end_u -
103
114
  min_price * start_u +
104
- coefficient * Math.pow(end_u, exponent) -
105
- coefficient * Math.pow(start_u, exponent);
115
+ coefficient * Math.pow(end_u, exponent.value) -
116
+ coefficient * Math.pow(start_u, exponent.value);
117
+ return delta;
118
+ }
119
+ price_integral_delta(start_utilization, end_utilization) {
120
+ const difference = Asset.fromUnits(this.max_price.units.subtracting(this.min_price.units), this.symbol);
121
+ const coefficient = difference.value / this.exponent.value;
122
+ const start_u = Number(start_utilization.dividing(this.weight));
123
+ const end_u = Number(end_utilization.dividing(this.weight));
124
+ const delta = this.min_price.value * end_u -
125
+ this.min_price.value * start_u +
126
+ coefficient * Math.pow(end_u, this.exponent.value) -
127
+ coefficient * Math.pow(start_u, this.exponent.value);
106
128
  return delta;
107
129
  }
108
130
  // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L262-L315
109
- fee(utilization_increase, adjusted_utilization) {
110
- const { weight } = this.cast();
111
- const { utilization } = this;
131
+ fee_legacy(utilization_increase, adjusted_utilization) {
132
+ const { utilization, weight } = this;
112
133
  let start_utilization = Int64.from(utilization);
113
134
  const end_utilization = start_utilization.adding(utilization_increase);
114
135
  let fee = 0;
115
136
  if (start_utilization < adjusted_utilization) {
116
137
  const min = Math.min(utilization_increase, adjusted_utilization.subtracting(start_utilization));
117
- fee += Number(new bigDecimal(this.price_function(adjusted_utilization) * min)
138
+ fee += Number(new bigDecimal(this.price_function_legacy(adjusted_utilization) * min)
139
+ .divide(new bigDecimal(weight.toString()))
140
+ .getValue());
141
+ start_utilization = adjusted_utilization;
142
+ }
143
+ if (start_utilization.gt(end_utilization)) {
144
+ fee += this.price_integral_delta(start_utilization, end_utilization);
145
+ }
146
+ return fee;
147
+ }
148
+ fee(utilization_increase, adjusted_utilization) {
149
+ const { utilization, weight } = this;
150
+ let start_utilization = Int64.from(utilization);
151
+ const end_utilization = start_utilization.adding(utilization_increase);
152
+ let fee = 0;
153
+ if (start_utilization.lt(adjusted_utilization)) {
154
+ const min = Math.min(utilization_increase, adjusted_utilization.subtracting(start_utilization));
155
+ fee += Number(new bigDecimal(String(this.price_function(adjusted_utilization)
156
+ .dividing(Math.pow(10, this.symbol.precision))
157
+ .multiplying(min)))
118
158
  .divide(new bigDecimal(weight.toString()))
119
159
  .getValue());
120
160
  start_utilization = adjusted_utilization;
@@ -127,8 +167,7 @@ class PowerUpStateResource extends Struct {
127
167
  // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L105-L117
128
168
  determine_adjusted_utilization(options) {
129
169
  // Casting EOSIO types to usable formats for JS calculations
130
- const { decay_secs, utilization_timestamp } = this.cast();
131
- const { utilization } = this;
170
+ const { decay_secs, utilization, utilization_timestamp } = this;
132
171
  let { adjusted_utilization } = this;
133
172
  // If utilization is less than adjusted, calculate real time value
134
173
  if (utilization.lt(adjusted_utilization)) {
@@ -136,7 +175,8 @@ class PowerUpStateResource extends Struct {
136
175
  const ts = options && options.timestamp ? options.timestamp : new Date();
137
176
  const now = TimePointSec.from(ts).toMilliseconds() / 1000;
138
177
  const diff = adjusted_utilization.subtracting(utilization).toNumber();
139
- let delta = diff * Math.exp(-(now - utilization_timestamp) / decay_secs);
178
+ let delta = diff *
179
+ Math.exp(-(now - utilization_timestamp.toMilliseconds()) / Number(decay_secs));
140
180
  delta = Math.min(Math.max(delta, 0), diff); // Clamp the delta
141
181
  adjusted_utilization = utilization.adding(delta);
142
182
  }
@@ -195,12 +235,16 @@ let PowerUpStateResourceCPU = class PowerUpStateResourceCPU extends PowerUpState
195
235
  // Return smallest units per day, μs (microseconds)
196
236
  this.per_day = (options) => this.us_per_day(options);
197
237
  // Default frac generation by smallest unit type
238
+ this.frac_legacy = (usage, us) => this.frac_by_us_legacy(usage, us);
198
239
  this.frac = (usage, us) => this.frac_by_us(usage, us);
199
240
  // Frac generation by ms (milliseconds)
241
+ this.frac_by_ms_legacy = (usage, ms) => this.frac_by_us_legacy(usage, ms * 1000);
200
242
  this.frac_by_ms = (usage, ms) => this.frac_by_us(usage, ms * 1000);
201
243
  // Price generation by smallest units, μs (microseconds)
244
+ this.price_per_legacy = (usage, us = 1000, options) => this.price_per_us_legacy(usage, us, options);
202
245
  this.price_per = (usage, us = 1000, options) => this.price_per_us(usage, us, options);
203
246
  // Price generation by ms (milliseconds)
247
+ this.price_per_ms_legacy = (usage, ms = 1, options) => this.price_per_us_legacy(usage, ms * 1000, options);
204
248
  this.price_per_ms = (usage, ms = 1, options) => this.price_per_us(usage, ms * 1000, options);
205
249
  }
206
250
  // Return ms (milliseconds) per day
@@ -215,24 +259,51 @@ let PowerUpStateResourceCPU = class PowerUpStateResourceCPU extends PowerUpState
215
259
  return Number(limit) * 2 * 60 * 60 * 24;
216
260
  }
217
261
  // Convert weight to μs (microseconds)
218
- weight_to_us(sample, weight) {
262
+ weight_to_us_legacy(sample, weight) {
219
263
  return Math.ceil((weight * Number(sample)) / BNPrecision);
220
264
  }
265
+ weight_to_us(sample, weight) {
266
+ return UInt128.from(UInt128.from(weight).multiplying(Int64.from(sample)).dividing(BNPrecision, 'ceil'));
267
+ }
221
268
  // Convert μs (microseconds) to weight
222
- us_to_weight(sample, us) {
269
+ us_to_weight_legacy(sample, us) {
223
270
  return Math.floor((us / Number(sample)) * BNPrecision);
224
271
  }
272
+ us_to_weight(sample, us) {
273
+ return Int64.from(us).multiplying(BNPrecision).dividing(Int64.from(sample), 'floor');
274
+ }
225
275
  // Frac generation by μs (microseconds)
226
- frac_by_us(usage, us) {
227
- const { weight } = this.cast();
228
- const frac = new BN(this.us_to_weight(usage.cpu, us)) / weight;
276
+ frac_by_us_legacy(usage, us) {
277
+ const frac = new BN(this.us_to_weight_legacy(usage.cpu, us)) / Number(this.weight);
229
278
  return Math.floor(frac * Math.pow(10, 15));
230
279
  }
280
+ frac_by_us(usage, us) {
281
+ const precision = 15;
282
+ const converted = intToBigDecimal(this.us_to_weight(usage.cpu, us));
283
+ const current = intToBigDecimal(this.weight);
284
+ const multiplier = intToBigDecimal(Math.pow(10, precision));
285
+ const frac = converted.divide(current, precision).multiply(multiplier);
286
+ return Int64.from(frac.getValue());
287
+ }
231
288
  // Price generation by μs (microseconds)
289
+ price_per_us_legacy(usage, us = 1000, options) {
290
+ // Determine the utilization increase by this action
291
+ const frac = UInt128.from(this.frac_legacy(usage, us));
292
+ const utilization_increase = this.utilization_increase_legacy(frac);
293
+ // Determine the adjusted utilization if needed
294
+ const adjusted_utilization = this.determine_adjusted_utilization(options);
295
+ // Derive the fee from the increase and utilization
296
+ const fee = this.fee_legacy(utilization_increase, adjusted_utilization);
297
+ // Force the fee up to the next highest value of precision
298
+ const precision = Math.pow(10, this.max_price.symbol.precision);
299
+ const value = Math.ceil(fee * precision) / precision;
300
+ // Return the modified fee
301
+ return value;
302
+ }
232
303
  price_per_us(usage, us = 1000, options) {
233
304
  // Determine the utilization increase by this action
234
305
  const frac = UInt128.from(this.frac(usage, us));
235
- const utilization_increase = this.utilization_increase(usage.cpu, frac);
306
+ const utilization_increase = this.utilization_increase(frac);
236
307
  // Determine the adjusted utilization if needed
237
308
  const adjusted_utilization = this.determine_adjusted_utilization(options);
238
309
  // Derive the fee from the increase and utilization
@@ -254,12 +325,16 @@ let PowerUpStateResourceNET = class PowerUpStateResourceNET extends PowerUpState
254
325
  // Return smallest units per day, bytes
255
326
  this.per_day = (options) => this.bytes_per_day(options);
256
327
  // Default frac generation by smallest unit type
328
+ this.frac_legacy = (usage, bytes) => this.frac_by_bytes_legacy(usage, bytes);
257
329
  this.frac = (usage, bytes) => this.frac_by_bytes(usage, bytes);
258
330
  // Frac generation by kb
331
+ this.frac_by_kb_legacy = (usage, kilobytes) => this.frac_by_bytes_legacy(usage, kilobytes * 1000);
259
332
  this.frac_by_kb = (usage, kilobytes) => this.frac_by_bytes(usage, kilobytes * 1000);
260
333
  // Price generation by smallest units, bytes
334
+ this.price_per_legacy = (usage, bytes = 1000, options) => this.price_per_byte_legacy(usage, bytes, options);
261
335
  this.price_per = (usage, bytes = 1000, options) => this.price_per_byte(usage, bytes, options);
262
336
  // Price generation by kb
337
+ this.price_per_kb_legacy = (usage, kilobytes = 1, options) => this.price_per_byte_legacy(usage, kilobytes * 1000, options);
263
338
  this.price_per_kb = (usage, kilobytes = 1, options) => this.price_per_byte(usage, kilobytes * 1000, options);
264
339
  }
265
340
  // Return kb per day
@@ -274,24 +349,51 @@ let PowerUpStateResourceNET = class PowerUpStateResourceNET extends PowerUpState
274
349
  return Number(limit) * 2 * 60 * 60 * 24;
275
350
  }
276
351
  // Convert weight to bytes
277
- weight_to_bytes(sample, weight) {
352
+ weight_to_bytes_legacy(sample, weight) {
278
353
  return Math.ceil((weight * Number(sample)) / BNPrecision);
279
354
  }
355
+ weight_to_bytes(sample, weight) {
356
+ return UInt128.from(UInt128.from(weight).multiplying(Int64.from(sample)).dividing(BNPrecision, 'ceil'));
357
+ }
280
358
  // Convert bytes to weight
281
- bytes_to_weight(sample, bytes) {
359
+ bytes_to_weight_legacy(sample, bytes) {
282
360
  return Math.floor((bytes / Number(sample)) * BNPrecision);
283
361
  }
362
+ bytes_to_weight(sample, bytes) {
363
+ return Int64.from(bytes).multiplying(BNPrecision).dividing(Int64.from(sample), 'floor');
364
+ }
284
365
  // Frac generation by bytes
285
- frac_by_bytes(usage, bytes) {
286
- const { weight } = this.cast();
287
- const frac = new BN(this.bytes_to_weight(usage.net, bytes)) / weight;
366
+ frac_by_bytes_legacy(usage, bytes) {
367
+ const { weight } = this;
368
+ const frac = new BN(this.bytes_to_weight_legacy(usage.net, bytes)) / Number(weight);
288
369
  return Math.floor(frac * Math.pow(10, 15));
289
370
  }
371
+ frac_by_bytes(usage, bytes) {
372
+ const precision = 15;
373
+ const converted = intToBigDecimal(this.bytes_to_weight(usage.net, bytes));
374
+ const current = intToBigDecimal(this.weight);
375
+ const multiplier = intToBigDecimal(Math.pow(10, precision));
376
+ const frac = converted.divide(current, precision).multiply(multiplier);
377
+ return Int64.from(frac.getValue());
378
+ }
290
379
  // Price generation by bytes
380
+ price_per_byte_legacy(usage, bytes = 1000, options) {
381
+ // Determine the utilization increase by this action
382
+ const frac = UInt128.from(this.frac_legacy(usage, bytes));
383
+ const utilization_increase = this.utilization_increase_legacy(frac);
384
+ // Determine the adjusted utilization if needed
385
+ const adjusted_utilization = this.determine_adjusted_utilization(options);
386
+ // Derive the fee from the increase and utilization
387
+ const fee = this.fee_legacy(utilization_increase, adjusted_utilization);
388
+ const precision = Math.pow(10, this.max_price.symbol.precision);
389
+ const value = Math.ceil(fee * precision) / precision;
390
+ // Return the modified fee
391
+ return value;
392
+ }
291
393
  price_per_byte(usage, bytes = 1000, options) {
292
394
  // Determine the utilization increase by this action
293
395
  const frac = UInt128.from(this.frac(usage, bytes));
294
- const utilization_increase = this.utilization_increase(usage.net, frac);
396
+ const utilization_increase = this.utilization_increase(frac);
295
397
  // Determine the adjusted utilization if needed
296
398
  const adjusted_utilization = this.determine_adjusted_utilization(options);
297
399
  // Derive the fee from the increase and utilization
@@ -540,6 +642,9 @@ function divCeil(num, den) {
540
642
  }
541
643
  return UInt128.from(v);
542
644
  }
645
+ function intToBigDecimal(value) {
646
+ return new bigDecimal(String(value));
647
+ }
543
648
 
544
- export { BNPrecision, Connector, ExchangeState, PowerUpAPI, PowerUpState, RAMAPI, RAMState, REXAPI, REXState, Resources };
649
+ export { BNPrecision, Connector, ExchangeState, PowerUpAPI, PowerUpState, RAMAPI, RAMState, REXAPI, REXState, Resources, intToBigDecimal };
545
650
  //# sourceMappingURL=wharfkit-resources.m.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wharfkit-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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"}
1
+ {"version":3,"file":"wharfkit-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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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wharfkit/resources",
3
3
  "description": "Library to assist in Antelope-blockchain resource calculations.",
4
- "version": "1.4.0-rc1",
4
+ "version": "1.5.0-rc1",
5
5
  "homepage": "https://github.com/wharfkit/resources",
6
6
  "license": "BSD-3-Clause",
7
7
  "main": "lib/wharfkit-resources.js",
package/src/index.ts CHANGED
@@ -1,9 +1,10 @@
1
- import {API, APIClient, APIClientOptions, FetchProvider, UInt128} from '@wharfkit/antelope'
1
+ import {API, APIClient, APIClientOptions, FetchProvider, Int, UInt128} from '@wharfkit/antelope'
2
2
  import BN from 'bn.js'
3
3
 
4
4
  import {PowerUpAPI} from './powerup'
5
5
  import {RAMAPI} from './ram'
6
6
  import {REXAPI} from './rex'
7
+ import bigDecimal from 'js-big-decimal'
7
8
 
8
9
  export * from './powerup'
9
10
  export * from './ram'
@@ -85,3 +86,7 @@ function divCeil(num: BN, den: BN): UInt128 {
85
86
  }
86
87
  return UInt128.from(v)
87
88
  }
89
+
90
+ export function intToBigDecimal(value: Int | number) {
91
+ return new bigDecimal(String(value))
92
+ }
@@ -37,35 +37,30 @@ export abstract class PowerUpStateResource extends Struct {
37
37
  abstract per_day(options?: PowerUpStateOptions): number
38
38
 
39
39
  // Get the current number of allocated units (shift from REX -> PowerUp)
40
- public get allocated() {
40
+ public get allocated_legacy() {
41
41
  return 1 - Number(this.weight_ratio) / Number(this.target_weight_ratio) / 100
42
42
  }
43
43
 
44
+ public get allocated(): number {
45
+ return 1 - Number(this.weight_ratio.dividing(this.target_weight_ratio)) / 100
46
+ }
47
+
44
48
  // Get the current percentage of reserved units
45
- public get reserved() {
49
+ public get reserved_legacy() {
46
50
  return new BN(String(this.utilization)) / new BN(String(this.weight))
47
51
  }
48
52
 
53
+ public get reserved(): Int64 {
54
+ return this.utilization.dividing(this.weight)
55
+ }
56
+
49
57
  // Get the symbol definition for the token
50
58
  public get symbol() {
51
59
  return this.min_price.symbol
52
60
  }
53
61
 
54
- // Common casting for typed values to numbers
55
- cast() {
56
- return {
57
- adjusted_utilization: String(this.adjusted_utilization),
58
- decay_secs: Number(this.decay_secs.value),
59
- exponent: Number(this.exponent),
60
- utilization: String(this.utilization),
61
- utilization_timestamp: Number(this.utilization_timestamp.value),
62
- weight: new BN(String(this.weight)),
63
- weight_ratio: Number(this.weight_ratio),
64
- }
65
- }
66
-
67
62
  // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L358
68
- utilization_increase(sample: UInt128, frac) {
63
+ utilization_increase_legacy(frac) {
69
64
  const {weight} = this
70
65
  const frac128 = UInt128.from(frac)
71
66
  const utilization_increase =
@@ -73,42 +68,78 @@ export abstract class PowerUpStateResource extends Struct {
73
68
  return Math.ceil(utilization_increase)
74
69
  }
75
70
 
71
+ utilization_increase(frac: UInt128) {
72
+ return frac.multiplying(this.weight).dividing(UInt128.from(Math.pow(10, 15)), 'ceil')
73
+ }
74
+
76
75
  // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L284-L298
77
- price_function(utilization: number): number {
78
- const {exponent, weight} = this.cast()
76
+ price_function_legacy(utilization: Int64): number {
77
+ const {exponent, weight} = this
79
78
  const max_price: number = this.max_price.value
80
79
  const min_price: number = this.min_price.value
81
80
  let price = min_price
82
- const new_exponent = exponent - 1.0
81
+ const new_exponent = Number(exponent) - 1.0
83
82
  if (new_exponent <= 0.0) {
84
83
  return max_price
85
84
  } else {
86
- const util_weight = new BN(utilization) / weight
87
- price += (max_price - min_price) * Math.pow(util_weight, new_exponent)
85
+ const util_weight = utilization.dividing(weight)
86
+ price += (max_price - min_price) * Math.pow(Number(util_weight), new_exponent)
87
+ }
88
+ return price
89
+ }
90
+
91
+ price_function(utilization: Int64): Int64 {
92
+ const {weight} = this
93
+ const price = this.min_price.units
94
+ const new_exponent = Number(this.exponent) - 1.0
95
+ if (new_exponent <= 0.0) {
96
+ return this.max_price.units
97
+ } else {
98
+ const util_weight = utilization.dividing(weight)
99
+ const difference = Asset.fromUnits(
100
+ this.max_price.units.subtracting(this.min_price.units),
101
+ this.symbol
102
+ )
103
+ price.add(difference.value * Math.pow(Number(util_weight), new_exponent))
88
104
  }
89
105
  return price
90
106
  }
91
107
 
92
108
  // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L274-L280
93
- price_integral_delta(start_utilization: Int64, end_utilization: Int64): number {
94
- const {exponent, weight} = this.cast()
109
+ price_integral_delta_legacy(start_utilization: Int64, end_utilization: Int64): number {
110
+ const {exponent, weight} = this
95
111
  const max_price: number = this.max_price.value
96
112
  const min_price: number = this.min_price.value
97
- const coefficient = (max_price - min_price) / exponent
113
+ const coefficient = (max_price - min_price) / exponent.value
98
114
  const start_u = Number(start_utilization.dividing(weight))
99
115
  const end_u = Number(end_utilization.dividing(weight))
100
116
  const delta =
101
117
  min_price * end_u -
102
118
  min_price * start_u +
103
- coefficient * Math.pow(end_u, exponent) -
104
- coefficient * Math.pow(start_u, exponent)
119
+ coefficient * Math.pow(end_u, exponent.value) -
120
+ coefficient * Math.pow(start_u, exponent.value)
121
+ return delta
122
+ }
123
+
124
+ price_integral_delta(start_utilization: Int64, end_utilization: Int64): number {
125
+ const difference = Asset.fromUnits(
126
+ this.max_price.units.subtracting(this.min_price.units),
127
+ this.symbol
128
+ )
129
+ const coefficient = difference.value / this.exponent.value
130
+ const start_u = Number(start_utilization.dividing(this.weight))
131
+ const end_u = Number(end_utilization.dividing(this.weight))
132
+ const delta =
133
+ this.min_price.value * end_u -
134
+ this.min_price.value * start_u +
135
+ coefficient * Math.pow(end_u, this.exponent.value) -
136
+ coefficient * Math.pow(start_u, this.exponent.value)
105
137
  return delta
106
138
  }
107
139
 
108
140
  // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L262-L315
109
- fee(utilization_increase, adjusted_utilization) {
110
- const {weight} = this.cast()
111
- const {utilization} = this
141
+ fee_legacy(utilization_increase, adjusted_utilization) {
142
+ const {utilization, weight} = this
112
143
 
113
144
  let start_utilization = Int64.from(utilization)
114
145
  const end_utilization = start_utilization.adding(utilization_increase)
@@ -120,7 +151,38 @@ export abstract class PowerUpStateResource extends Struct {
120
151
  adjusted_utilization.subtracting(start_utilization)
121
152
  )
122
153
  fee += Number(
123
- new bigDecimal(this.price_function(adjusted_utilization) * min)
154
+ new bigDecimal(this.price_function_legacy(adjusted_utilization) * min)
155
+ .divide(new bigDecimal(weight.toString()))
156
+ .getValue()
157
+ )
158
+ start_utilization = adjusted_utilization
159
+ }
160
+ if (start_utilization.gt(end_utilization)) {
161
+ fee += this.price_integral_delta(start_utilization, end_utilization)
162
+ }
163
+ return fee
164
+ }
165
+
166
+ fee(utilization_increase, adjusted_utilization) {
167
+ const {utilization, weight} = this
168
+
169
+ let start_utilization = Int64.from(utilization)
170
+ const end_utilization = start_utilization.adding(utilization_increase)
171
+
172
+ let fee = 0
173
+ if (start_utilization.lt(adjusted_utilization)) {
174
+ const min = Math.min(
175
+ utilization_increase,
176
+ adjusted_utilization.subtracting(start_utilization)
177
+ )
178
+ fee += Number(
179
+ new bigDecimal(
180
+ String(
181
+ this.price_function(adjusted_utilization)
182
+ .dividing(Math.pow(10, this.symbol.precision))
183
+ .multiplying(min)
184
+ )
185
+ )
124
186
  .divide(new bigDecimal(weight.toString()))
125
187
  .getValue()
126
188
  )
@@ -135,8 +197,7 @@ export abstract class PowerUpStateResource extends Struct {
135
197
  // Mimic: https://github.com/EOSIO/eosio.contracts/blob/d7bc0a5cc8c0c2edd4dc61b0126517d0cb46fd94/contracts/eosio.system/src/powerup.cpp#L105-L117
136
198
  determine_adjusted_utilization(options?: PowerUpStateOptions) {
137
199
  // Casting EOSIO types to usable formats for JS calculations
138
- const {decay_secs, utilization_timestamp} = this.cast()
139
- const {utilization} = this
200
+ const {decay_secs, utilization, utilization_timestamp} = this
140
201
  let {adjusted_utilization} = this
141
202
  // If utilization is less than adjusted, calculate real time value
142
203
  if (utilization.lt(adjusted_utilization)) {
@@ -144,7 +205,9 @@ export abstract class PowerUpStateResource extends Struct {
144
205
  const ts = options && options.timestamp ? options.timestamp : new Date()
145
206
  const now = TimePointSec.from(ts).toMilliseconds() / 1000
146
207
  const diff = adjusted_utilization.subtracting(utilization).toNumber()
147
- let delta: number = diff * Math.exp(-(now - utilization_timestamp) / decay_secs)
208
+ let delta: number =
209
+ diff *
210
+ Math.exp(-(now - utilization_timestamp.toMilliseconds()) / Number(decay_secs))
148
211
  delta = Math.min(Math.max(delta, 0), diff) // Clamp the delta
149
212
  adjusted_utilization = utilization.adding(delta)
150
213
  }