@shipload/sdk 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/shipload.d.ts CHANGED
@@ -198,6 +198,7 @@ declare namespace Types {
198
198
  class good_price extends Struct {
199
199
  id: UInt16;
200
200
  price: UInt64;
201
+ supply: UInt64;
201
202
  }
202
203
  class hash extends Struct {
203
204
  value: string;
@@ -208,6 +209,11 @@ declare namespace Types {
208
209
  class init extends Struct {
209
210
  seed: Checksum256;
210
211
  }
212
+ class jettison extends Struct {
213
+ ship_id: UInt64;
214
+ good_id: UInt16;
215
+ quantity: UInt64;
216
+ }
211
217
  class join extends Struct {
212
218
  account: Name;
213
219
  }
@@ -216,6 +222,13 @@ declare namespace Types {
216
222
  quantity: UInt16;
217
223
  thrust: UInt32;
218
224
  }
225
+ class location_row extends Struct {
226
+ id: UInt64;
227
+ coordinates: coordinates;
228
+ epoch: UInt64;
229
+ good_id: UInt16;
230
+ supply: UInt16;
231
+ }
219
232
  class marketprice extends Struct {
220
233
  location: coordinates;
221
234
  good_id: UInt16;
@@ -223,6 +236,10 @@ declare namespace Types {
223
236
  class marketprices extends Struct {
224
237
  location: coordinates;
225
238
  }
239
+ class payloan extends Struct {
240
+ account: Name;
241
+ amount: UInt64;
242
+ }
226
243
  class player_row extends Struct {
227
244
  owner: Name;
228
245
  balance: UInt64;
@@ -280,9 +297,14 @@ declare namespace Types {
280
297
  enabled: boolean;
281
298
  epoch: UInt64;
282
299
  salt: UInt64;
300
+ ships: UInt32;
283
301
  seed: Checksum256;
284
302
  commit: Checksum256;
285
303
  }
304
+ class takeloan extends Struct {
305
+ account: Name;
306
+ amount: UInt64;
307
+ }
286
308
  class travel extends Struct {
287
309
  id: UInt64;
288
310
  destination: coordinates;
@@ -313,6 +335,18 @@ declare namespace Types {
313
335
  id: UInt64;
314
336
  destination: coordinates;
315
337
  }
338
+ class updatecredit extends Struct {
339
+ account: Name;
340
+ amount: Int64;
341
+ }
342
+ class updatedebt extends Struct {
343
+ account: Name;
344
+ amount: Int64;
345
+ }
346
+ class upgradeship extends Struct {
347
+ account: Name;
348
+ id: UInt64;
349
+ }
316
350
  class wipe extends Struct {
317
351
  }
318
352
  class wipesequence extends Struct {
@@ -320,6 +354,7 @@ declare namespace Types {
320
354
  }
321
355
  declare const TableMap: {
322
356
  cargo: typeof Types.cargo_row;
357
+ location: typeof Types.location_row;
323
358
  player: typeof Types.player_row;
324
359
  sequence: typeof Types.sequence_row;
325
360
  ship: typeof Types.ship_row;
@@ -327,6 +362,7 @@ declare const TableMap: {
327
362
  };
328
363
  interface TableTypes {
329
364
  cargo: Types.cargo_row;
365
+ location: Types.location_row;
330
366
  player: Types.player_row;
331
367
  sequence: Types.sequence_row;
332
368
  ship: Types.ship_row;
@@ -377,6 +413,11 @@ declare namespace ActionParams {
377
413
  interface init {
378
414
  seed: Checksum256Type;
379
415
  }
416
+ interface jettison {
417
+ ship_id: UInt64Type;
418
+ good_id: UInt16Type;
419
+ quantity: UInt64Type;
420
+ }
380
421
  interface join {
381
422
  account: NameType;
382
423
  }
@@ -387,6 +428,10 @@ declare namespace ActionParams {
387
428
  interface marketprices {
388
429
  location: Type.coordinates;
389
430
  }
431
+ interface payloan {
432
+ account: NameType;
433
+ amount: UInt64Type;
434
+ }
390
435
  interface salt {
391
436
  salt: UInt64Type;
392
437
  }
@@ -395,6 +440,10 @@ declare namespace ActionParams {
395
440
  good_id: UInt64Type;
396
441
  quantity: UInt64Type;
397
442
  }
443
+ interface takeloan {
444
+ account: NameType;
445
+ amount: UInt64Type;
446
+ }
398
447
  interface travel {
399
448
  id: UInt64Type;
400
449
  destination: Type.coordinates;
@@ -410,6 +459,18 @@ declare namespace ActionParams {
410
459
  id: UInt64Type;
411
460
  destination: Type.coordinates;
412
461
  }
462
+ interface updatecredit {
463
+ account: NameType;
464
+ amount: Int64Type;
465
+ }
466
+ interface updatedebt {
467
+ account: NameType;
468
+ amount: Int64Type;
469
+ }
470
+ interface upgradeship {
471
+ account: NameType;
472
+ id: UInt64Type;
473
+ }
413
474
  interface wipe {
414
475
  }
415
476
  interface wipesequence {
@@ -426,14 +487,20 @@ interface ActionNameParams {
426
487
  hash: ActionParams.hash;
427
488
  hash512: ActionParams.hash512;
428
489
  init: ActionParams.init;
490
+ jettison: ActionParams.jettison;
429
491
  join: ActionParams.join;
430
492
  marketprice: ActionParams.marketprice;
431
493
  marketprices: ActionParams.marketprices;
494
+ payloan: ActionParams.payloan;
432
495
  salt: ActionParams.salt;
433
496
  sellgoods: ActionParams.sellgoods;
497
+ takeloan: ActionParams.takeloan;
434
498
  travel: ActionParams.travel;
435
499
  travelplan: ActionParams.travelplan;
436
500
  traveltime: ActionParams.traveltime;
501
+ updatecredit: ActionParams.updatecredit;
502
+ updatedebt: ActionParams.updatedebt;
503
+ upgradeship: ActionParams.upgradeship;
437
504
  wipe: ActionParams.wipe;
438
505
  wipesequence: ActionParams.wipesequence;
439
506
  }
@@ -518,7 +585,7 @@ interface Distance {
518
585
  destination: ActionParams.Type.coordinates;
519
586
  distance: UInt16;
520
587
  }
521
- interface Good {
588
+ declare class Good extends Struct {
522
589
  id: UInt16;
523
590
  name: string;
524
591
  description: string;
@@ -532,9 +599,11 @@ interface GoodType {
532
599
  base_price: UInt64Type;
533
600
  mass: UInt64Type;
534
601
  }
535
- interface GoodPrice {
602
+ declare class GoodPrice extends Struct {
603
+ id: UInt16;
536
604
  good: Good;
537
605
  price: UInt64;
606
+ supply: UInt64;
538
607
  }
539
608
  interface Coordinates extends ActionParams.Type.coordinates {
540
609
  }
@@ -563,8 +632,9 @@ declare function generateLocationSeed(epochSeed: Checksum256Type, location: Coor
563
632
  declare function getRarity(gameSeed: Checksum256Type, epochSeed: Checksum256Type, location: Coordinates, good_id: UInt16Type): Rarity;
564
633
  declare function getRarityMultiplier(gameSeed: Checksum256Type, epochSeed: Checksum256Type, location: Coordinates, good_id: UInt16Type): number;
565
634
  declare function getLocationMultiplier(gameSeed: Checksum256Type, location: Coordinates, good_id: UInt16Type): number;
566
- declare function marketprice(location: ActionParams.Type.coordinates, good_id: UInt16Type, gameSeed: Checksum256Type, epochSeed: Checksum256Type): UInt64;
567
- declare function marketprices(location: ActionParams.Type.coordinates, gameSeed: Checksum256Type, epochSeed: Checksum256Type): GoodPrice[];
635
+ declare function getSupply(gameSeed: Checksum256Type, state: Types.state_row, location: Coordinates, good_id: UInt16Type): number;
636
+ declare function marketprice(location: ActionParams.Type.coordinates, good_id: UInt16Type, gameSeed: Checksum256Type, state: Types.state_row): GoodPrice;
637
+ declare function marketprices(location: ActionParams.Type.coordinates, gameSeed: Checksum256Type, state: Types.state_row): GoodPrice[];
568
638
 
569
639
  declare class Ship extends Types.ship_row {
570
640
  get maxDistance(): UInt32;
@@ -615,7 +685,7 @@ declare class Shipload {
615
685
  getState(): Promise<Types.state_row>;
616
686
  getShip(ship_id: UInt64Type): Promise<Ship>;
617
687
  getShips(player: NameType | Types.player_row): Promise<Ship[]>;
618
- marketprice(location: ActionParams.Type.coordinates, good_id: number): Promise<UInt64>;
688
+ marketprice(location: ActionParams.Type.coordinates, good_id: number): Promise<GoodPrice>;
619
689
  marketprices(location: ActionParams.Type.coordinates): Promise<GoodPrice[]>;
620
690
  hasSystem(location: ActionParams.Type.coordinates): Promise<boolean>;
621
691
  findNearbyPlanets(origin: ActionParams.Type.coordinates, maxDistance?: UInt16Type): Promise<Distance[]>;
@@ -624,6 +694,7 @@ declare class Shipload {
624
694
  getCurrentEpochHeight(): Promise<UInt64>;
625
695
  getCurrentEpoch(): Promise<EpochInfo>;
626
696
  getEpoch(height: UInt64Type): Promise<EpochInfo>;
697
+ getLocation(location: Coordinates): Promise<any[]>;
627
698
  }
628
699
 
629
- export { CameraPosition, Coordinates, Dimensions, Distance, ERROR_SYSTEM_NOT_INITIALIZED, EpochInfo, GOOD_DOES_NOT_EXIST, GOOD_NOT_AVAILABLE_AT_LOCATION, Good, GoodPrice, GoodType, INSUFFICIENT_BALANCE, INSUFFICIENT_GOOD_QUANTITY, PLAYER_NOT_FOUND, PRECISION, platform as PlatformContract, REQUIRES_MORE_THAN_ONE, Rarities, Rarity, SHIP_CANNOT_BUY_TRAVELING, SHIP_NOT_FOUND, server as ServerContract, Ship, TRAVEL_MAXMASS_PENALTY, calc_acceleration, calc_energyusage, calc_flighttime, calc_loader_acceleration, calc_loader_flighttime, calc_mass_penalty, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_loadtime, calc_ship_mass, calc_ship_rechargetime, Shipload as default, distanceBetweenCoordinates, distanceBetweenPoints, distanceTraveled, findNearbyPlanets, generateLocationSeed, getCurrentEpoch, getEpochInfo, getGood, getGoods, getLocationMultiplier, getRarity, getRarityMultiplier, goodIds, hasSystem, hash, hash512, lerp, marketprice, marketprices, rotation, travelplan, travelplanDuration };
700
+ export { CameraPosition, Coordinates, Dimensions, Distance, ERROR_SYSTEM_NOT_INITIALIZED, EpochInfo, GOOD_DOES_NOT_EXIST, GOOD_NOT_AVAILABLE_AT_LOCATION, Good, GoodPrice, GoodType, INSUFFICIENT_BALANCE, INSUFFICIENT_GOOD_QUANTITY, PLAYER_NOT_FOUND, PRECISION, platform as PlatformContract, REQUIRES_MORE_THAN_ONE, Rarities, Rarity, SHIP_CANNOT_BUY_TRAVELING, SHIP_NOT_FOUND, server as ServerContract, Ship, TRAVEL_MAXMASS_PENALTY, calc_acceleration, calc_energyusage, calc_flighttime, calc_loader_acceleration, calc_loader_flighttime, calc_mass_penalty, calc_rechargetime, calc_ship_acceleration, calc_ship_flighttime, calc_ship_loadtime, calc_ship_mass, calc_ship_rechargetime, Shipload as default, distanceBetweenCoordinates, distanceBetweenPoints, distanceTraveled, findNearbyPlanets, generateLocationSeed, getCurrentEpoch, getEpochInfo, getGood, getGoods, getLocationMultiplier, getRarity, getRarityMultiplier, getSupply, goodIds, hasSystem, hash, hash512, lerp, marketprice, marketprices, rotation, travelplan, travelplanDuration };
package/lib/shipload.js CHANGED
@@ -213,7 +213,7 @@ var platform = /*#__PURE__*/Object.freeze({
213
213
  Contract: Contract$1
214
214
  });
215
215
 
216
- const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yACAHYWR2YW5jZQACBnJldmVhbAZzdHJpbmcGY29tbWl0C2NoZWNrc3VtMjU2BmFycml2ZQABAmlkBnVpbnQ2NAhidXlnb29kcwADB3NoaXBfaWQGdWludDY0B2dvb2RfaWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAdidXlzaGlwAAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nCWNhcmdvX3JvdwAGAmlkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NARwYWlkBnVpbnQ2NAVvd25lZAZ1aW50MzIGbG9hZGVkBnVpbnQzMgpjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8GY29tbWl0AAEGY29tbWl0C2NoZWNrc3VtMjU2C2Nvb3JkaW5hdGVzAAIBeAVpbnQ2NAF5BWludDY0BmVuYWJsZQABB2VuYWJsZWQEYm9vbApnb29kX3ByaWNlAAICaWQGdWludDE2BXByaWNlBnVpbnQ2NARoYXNoAAEFdmFsdWUGc3RyaW5nB2hhc2g1MTIAAQV2YWx1ZQZzdHJpbmcEaW5pdAABBHNlZWQLY2hlY2tzdW0yNTYEam9pbgABB2FjY291bnQEbmFtZQxsb2FkZXJfc3RhdHMAAwRtYXNzBnVpbnQzMghxdWFudGl0eQZ1aW50MTYGdGhydXN0BnVpbnQzMgttYXJrZXRwcmljZQACCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB2dvb2RfaWQGdWludDE2DG1hcmtldHByaWNlcwABCGxvY2F0aW9uC2Nvb3JkaW5hdGVzCnBsYXllcl9yb3cABAVvd25lcgRuYW1lB2JhbGFuY2UGdWludDY0BGRlYnQGdWludDY0CG5ldHdvcnRoBWludDY0BHNhbHQAAQRzYWx0BnVpbnQ2NAlzZWxsZ29vZHMAAwdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQMc2VxdWVuY2Vfcm93AAIDa2V5BG5hbWUFdmFsdWUGdWludDY0CHNoaXBfcm93AAoCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcIbG9jYXRpb24LY29vcmRpbmF0ZXMEc2tpbgV1aW50OAR0aWVyBXVpbnQ4BXN0YXRlCnNoaXBfc3RhdGUFc3RhdHMKc2hpcF9zdGF0cwdsb2FkZXJzDGxvYWRlcl9zdGF0cwp0cmF2ZWxwbGFuDHRyYXZlbF9wbGFuPwpzaGlwX3N0YXRlAAEGZW5lcmd5BnVpbnQzMgpzaGlwX3N0YXRzAAcIY2FwYWNpdHkGdWludDMyBWRyYWluBnVpbnQzMgRtYXNzBnVpbnQ2NAdtYXhtYXNzBnVpbnQ2NAVvcmJpdAZ1aW50MTYIcmVjaGFyZ2UGdWludDMyBnRocnVzdAZ1aW50NjQJc3RhdGVfcm93AAUHZW5hYmxlZARib29sBWVwb2NoBnVpbnQ2NARzYWx0BnVpbnQ2NARzZWVkC2NoZWNrc3VtMjU2BmNvbW1pdAtjaGVja3N1bTI1NgZ0cmF2ZWwAAwJpZAZ1aW50NjQLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMIcmVjaGFyZ2UEYm9vbAt0cmF2ZWxfcGxhbgAJCWRlcGFydHVyZQp0aW1lX3BvaW50C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCGRpc3RhbmNlBnVpbnQ2NApmbGlnaHR0aW1lBnVpbnQzMghsb2FkdGltZQZ1aW50MzIMcmVjaGFyZ2V0aW1lBnVpbnQzMgttYXNzcGVuYWx0eQZ1aW50MzIEbWFzcwZ1aW50NjQLZW5lcmd5dXNhZ2UGdWludDMyDnRyYXZlbF9zdW1tYXJ5AA0Fc3RhdHMKc2hpcF9zdGF0cwdsb2FkZXJzDGxvYWRlcl9zdGF0cwZvcmlnaW4LY29vcmRpbmF0ZXMLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMIZGlzdGFuY2UGdWludDY0CXRvdGFsbWFzcwZ1aW50NjQMYWNjZWxlcmF0aW9uB2Zsb2F0NjQKZmxpZ2h0dGltZQZ1aW50MzILZW5lcmd5dXNhZ2UGdWludDMyDHJlY2hhcmdldGltZQZ1aW50MzILbWFzc3BlbmFsdHkGdWludDMyCGxvYWR0aW1lBnVpbnQ2NAR0aW1lBnVpbnQ2NAp0cmF2ZWxwbGFuAAQCaWQGdWludDY0Bm9yaWdpbgtjb29yZGluYXRlcwtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwhyZWNoYXJnZQRib29sCnRyYXZlbHRpbWUAAgJpZAZ1aW50NjQLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMEd2lwZQAADHdpcGVzZXF1ZW5jZQAAFAAAAEChaXYyB2FkdmFuY2XTAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhZHZhbmNlCnN1bW1hcnk6ICdBZHZhbmNlIHR1cm4nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkdmFuY2UgdGhlIGdhbWUgdG8gdGhlIG5leHQgdHVybi4AAAAAqO3uNQZhcnJpdmWzAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBhcnJpdmUKc3VtbWFyeTogJ0NvbXBsZXRlIHRyYXZlbCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ29tcGxldGUgdGhlIHRyYXZlbCBvZiBhIHNoaXAgYnkgdXBkYXRpbmcgaXRzIGxvY2F0aW9uIHRvIHRoZSBkZXN0aW5hdGlvbiBjb29yZGluYXRlcyBhZnRlciB0aGUgdHJhdmVsIGR1cmF0aW9uIGhhcyBwYXNzZWQuCgotLS0AAAA4Ucq8PghidXlnb29kc90BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJ1eWdvb2RzCnN1bW1hcnk6ICdCdXkgZ29vZHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClB1cmNoYXNlIGdvb2RzIGFuZCBhZGQgdGhlbSB0byBhIHNoaXAncyBjYXJnby4AAACguoa9PgdidXlzaGlwxgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYnV5c2hpcApzdW1tYXJ5OiAnQnV5IGEgbmV3IHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClB1cmNoYXNlIGEgbmV3IHNoaXAAgIrH5GtURApjbGVhcnRhYmxlvgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY2xlYXJ0YWJsZQpzdW1tYXJ5OiAnREVCVUc6IGNsZWFydGFibGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAAAAAGQnJUUGY29tbWl08QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogY29tbWl0CnN1bW1hcnk6ICdTZXQgY29tbWl0IHZhbHVlJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZXQgdGhlIGluaXRpYWwgY29tbWl0IHZhbHVlIGR1cmluZyBnYW1lIGluaXRpYWxpemF0aW9uLgoKLS0tAAAAAKh4zFQGZW5hYmxl4gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZW5hYmxlCnN1bW1hcnk6ICdTZXQgZW5hYmxlZCBzdGF0ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhpcyBnYW1lIG9mIFNoaXBsb2FkLgoKLS0tAAAAAADQsGkEaGFzaP0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGhhc2gKc3VtbWFyeTogJ0NhbGN1bGF0ZSBzaGEyNTYgaGFzaCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQ2FsY3VsYXRlcyB0aGUgc2hhMjU2IGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4KCi0tLQAAAECE0rBpB2hhc2g1MTL7AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoNTEyCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhNTEyIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTUxMiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuAAAAAACQ3XQEaW5pdPoBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGluaXQKc3VtbWFyeTogJ0luaXRpYWxpemUgZ2FtZSBzZWVkJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWFsaXplIGEgdGhlIGdhbWVzIHNlZWQgYW5kIHNlZWQgdmFsdWVzIHRvIGJvb3RzdHJhcCBnYW1lIHN0YXRlLgAAAAAAMB19BGpvaW7JAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBqb2luCnN1bW1hcnk6ICdKb2luIGEgZ2FtZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSm9pbiBhIGdhbWUgb2YgU2hpcGxvYWQKCi0tLQAUcrdmBa+RC21hcmtldHByaWNlmwItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbWFya2V0cHJpY2UKc3VtbWFyeTogJ0dldCBwcmljZSBvZiBnb29kIGF0IGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiBkZXRlcm1pbmVzIHRoZSBtYXJrZXQgcHJpY2Ugb2YgYSBzcGVjaWZpZWQgZ29vZCBhdCBhIGdpdmVuIGxvY2F0aW9uLgoKLS0tgBVyt2YFr5EMbWFya2V0cHJpY2VzlQItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogbWFya2V0cHJpY2VzCnN1bW1hcnk6ICdHZXQgcHJpY2Ugb2YgYWxsIGdvb2RzIGF0IGxvY2F0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpUaGlzIGFjdGlvbiBkZXRlcm1pbmVzIHRoZSBtYXJrZXQgcHJpY2Ugb2YgYWxsIGdvb2RzIGF0IGEgZ2l2ZW4gbG9jYXRpb24uAAAAAACQo8EEc2FsdN0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNhbHQKc3VtbWFyeTogJ0FwcGVuZCBTYWx0JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZGQgYWRkaXRpb25hbCBzYWx0IHRvIHRoZSBuZXh0IGVwb2NoIHNlZWQuCgotLS0AAMCJUhajwglzZWxsZ29vZHPVAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzZWxsZ29vZHMKc3VtbWFyeTogJ1NlbGwgZ29vZHMnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClNlbGwgZ29vZHMgZnJvbSBhIHNoaXAncyBjYXJnby4KCi0tLQAAAABEtc3NBnRyYXZlbMgCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhIHNoaXAgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4KCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgDANLFGtc3NCnRyYXZlbHBsYW6OAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWxwbGFuCnN1bW1hcnk6ICdFc3RpbWF0ZSBhIHRyYXZlbCBwbGFuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGUgd2hhdCB0aGUgdHJhdmVsIHBsYW4gaXMgZm9yIGEgc2hpcCB0cmF2ZWxpbmcgdG8gYSBnaXZlbiBsb2NhdGlvbi4KCi0tLQCAki5Htc3NCnRyYXZlbHRpbWWMAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWx0aW1lCnN1bW1hcnk6ICdFc3RpbWF0ZSBUcmF2ZWwgVGltZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXN0aW1hdGUgdGhlIGR1cmF0aW9uIG9mIGEgc2hpcCB0cmF2ZWxpbmcgd2l0aG91dCBjb21taXR0aW5nIHRvIHRoZSBhY3Rpb24uCgotLS0AAAAAAKCq4wR3aXBlsgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZQpzdW1tYXJ5OiAnREVCVUc6IHdpcGUgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0toNBU2iqsquMMd2lwZXNlcXVlbmNlwgEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogd2lwZXNlcXVlbmNlCnN1bW1hcnk6ICdERUJVRzogd2lwZXNlcXVlbmNlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQUAAAAAAMquQQNpNjQAAAljYXJnb19yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAACk2lrcIDaTY0AAAMc2VxdWVuY2Vfcm93AAAAAABQXcMDaTY0AAAIc2hpcF9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAABgAAAAAA0LBpC2NoZWNrc3VtMjU2AAAAQITSsGkLY2hlY2tzdW01MTIAFHK3ZgWvkQpnb29kX3ByaWNlgBVyt2YFr5EMZ29vZF9wcmljZVtdAMA0sUa1zc0LdHJhdmVsX3BsYW4AgJIuR7XNzQ50cmF2ZWxfc3VtbWFyeQ==');
216
+ const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yACcHYWR2YW5jZQACBnJldmVhbAZzdHJpbmcGY29tbWl0C2NoZWNrc3VtMjU2BmFycml2ZQABAmlkBnVpbnQ2NAhidXlnb29kcwADB3NoaXBfaWQGdWludDY0B2dvb2RfaWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAdidXlzaGlwAAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nCWNhcmdvX3JvdwAGAmlkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NARwYWlkBnVpbnQ2NAVvd25lZAZ1aW50MzIGbG9hZGVkBnVpbnQzMgpjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8GY29tbWl0AAEGY29tbWl0C2NoZWNrc3VtMjU2C2Nvb3JkaW5hdGVzAAIBeAVpbnQ2NAF5BWludDY0BmVuYWJsZQABB2VuYWJsZWQEYm9vbApnb29kX3ByaWNlAAMCaWQGdWludDE2BXByaWNlBnVpbnQ2NAZzdXBwbHkGdWludDY0BGhhc2gAAQV2YWx1ZQZzdHJpbmcHaGFzaDUxMgABBXZhbHVlBnN0cmluZwRpbml0AAEEc2VlZAtjaGVja3N1bTI1NghqZXR0aXNvbgADB3NoaXBfaWQGdWludDY0B2dvb2RfaWQGdWludDE2CHF1YW50aXR5BnVpbnQ2NARqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwADBG1hc3MGdWludDMyCHF1YW50aXR5BnVpbnQxNgZ0aHJ1c3QGdWludDMyDGxvY2F0aW9uX3JvdwAFAmlkBnVpbnQ2NAtjb29yZGluYXRlcwtjb29yZGluYXRlcwVlcG9jaAZ1aW50NjQHZ29vZF9pZAZ1aW50MTYGc3VwcGx5BnVpbnQxNgttYXJrZXRwcmljZQACCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB2dvb2RfaWQGdWludDE2DG1hcmtldHByaWNlcwABCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB3BheWxvYW4AAgdhY2NvdW50BG5hbWUGYW1vdW50BnVpbnQ2NApwbGF5ZXJfcm93AAQFb3duZXIEbmFtZQdiYWxhbmNlBnVpbnQ2NARkZWJ0BnVpbnQ2NAhuZXR3b3J0aAVpbnQ2NARzYWx0AAEEc2FsdAZ1aW50NjQJc2VsbGdvb2RzAAMHc2hpcF9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0DHNlcXVlbmNlX3JvdwACA2tleQRuYW1lBXZhbHVlBnVpbnQ2NAhzaGlwX3JvdwAKAmlkBnVpbnQ2NAVvd25lcgRuYW1lBG5hbWUGc3RyaW5nCGxvY2F0aW9uC2Nvb3JkaW5hdGVzBHNraW4FdWludDgEdGllcgV1aW50OAVzdGF0ZQpzaGlwX3N0YXRlBXN0YXRzCnNoaXBfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMKdHJhdmVscGxhbgx0cmF2ZWxfcGxhbj8Kc2hpcF9zdGF0ZQABBmVuZXJneQZ1aW50MzIKc2hpcF9zdGF0cwAHCGNhcGFjaXR5BnVpbnQzMgVkcmFpbgZ1aW50MzIEbWFzcwZ1aW50NjQHbWF4bWFzcwZ1aW50NjQFb3JiaXQGdWludDE2CHJlY2hhcmdlBnVpbnQzMgZ0aHJ1c3QGdWludDY0CXN0YXRlX3JvdwAGB2VuYWJsZWQEYm9vbAVlcG9jaAZ1aW50NjQEc2FsdAZ1aW50NjQFc2hpcHMGdWludDMyBHNlZWQLY2hlY2tzdW0yNTYGY29tbWl0C2NoZWNrc3VtMjU2CHRha2Vsb2FuAAIHYWNjb3VudARuYW1lBmFtb3VudAZ1aW50NjQGdHJhdmVsAAMCaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCHJlY2hhcmdlBGJvb2wLdHJhdmVsX3BsYW4ACQlkZXBhcnR1cmUKdGltZV9wb2ludAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwhkaXN0YW5jZQZ1aW50NjQKZmxpZ2h0dGltZQZ1aW50MzIIbG9hZHRpbWUGdWludDMyDHJlY2hhcmdldGltZQZ1aW50MzILbWFzc3BlbmFsdHkGdWludDMyBG1hc3MGdWludDY0C2VuZXJneXVzYWdlBnVpbnQzMg50cmF2ZWxfc3VtbWFyeQANBXN0YXRzCnNoaXBfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMGb3JpZ2luC2Nvb3JkaW5hdGVzC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCGRpc3RhbmNlBnVpbnQ2NAl0b3RhbG1hc3MGdWludDY0DGFjY2VsZXJhdGlvbgdmbG9hdDY0CmZsaWdodHRpbWUGdWludDMyC2VuZXJneXVzYWdlBnVpbnQzMgxyZWNoYXJnZXRpbWUGdWludDMyC21hc3NwZW5hbHR5BnVpbnQzMghsb2FkdGltZQZ1aW50NjQEdGltZQZ1aW50NjQKdHJhdmVscGxhbgAEAmlkBnVpbnQ2NAZvcmlnaW4LY29vcmRpbmF0ZXMLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMIcmVjaGFyZ2UEYm9vbAp0cmF2ZWx0aW1lAAICaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzDHVwZGF0ZWNyZWRpdAACB2FjY291bnQEbmFtZQZhbW91bnQFaW50NjQKdXBkYXRlZGVidAACB2FjY291bnQEbmFtZQZhbW91bnQFaW50NjQLdXBncmFkZXNoaXAAAgdhY2NvdW50BG5hbWUCaWQGdWludDY0BHdpcGUAAAx3aXBlc2VxdWVuY2UAABoAAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAKjt7jUGYXJyaXZlswItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYXJyaXZlCnN1bW1hcnk6ICdDb21wbGV0ZSB0cmF2ZWwnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbXBsZXRlIHRoZSB0cmF2ZWwgb2YgYSBzaGlwIGJ5IHVwZGF0aW5nIGl0cyBsb2NhdGlvbiB0byB0aGUgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgYWZ0ZXIgdGhlIHRyYXZlbCBkdXJhdGlvbiBoYXMgcGFzc2VkLgoKLS0tAAAAOFHKvD4IYnV5Z29vZHPdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBidXlnb29kcwpzdW1tYXJ5OiAnQnV5IGdvb2RzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBnb29kcyBhbmQgYWRkIHRoZW0gdG8gYSBzaGlwJ3MgY2FyZ28uAAAAoLqGvT4HYnV5c2hpcMYBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGJ1eXNoaXAKc3VtbWFyeTogJ0J1eSBhIG5ldyBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBhIG5ldyBzaGlwAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABkJyVFBmNvbW1pdPEBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbW1pdApzdW1tYXJ5OiAnU2V0IGNvbW1pdCB2YWx1ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2V0IHRoZSBpbml0aWFsIGNvbW1pdCB2YWx1ZSBkdXJpbmcgZ2FtZSBpbml0aWFsaXphdGlvbi4KCi0tLQAAAACoeMxUBmVuYWJsZeIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4KCi0tLQAAAAAA0LBpBGhhc2j9AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuCgotLS0AAABAhNKwaQdoYXNoNTEy+wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaDUxMgpzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTUxMiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGE1MTIgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAAAAkN10BGluaXT6AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBpbml0CnN1bW1hcnk6ICdJbml0aWFsaXplIGdhbWUgc2VlZCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhbGl6ZSBhIHRoZSBnYW1lcyBzZWVkIGFuZCBzZWVkIHZhbHVlcyB0byBib290c3RyYXAgZ2FtZSBzdGF0ZS4AAACTYpezeghqZXR0aXNvbvkBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpldHRpc29uCnN1bW1hcnk6ICdKZXR0aXNvbiBDYXJnbyBmcm9tIFNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpldHRpc29uIGNhcmdvIGZyb20gdGhlIGEgc2hpcCBhbmQgcmVjYWxjdWxhdGUgdHJhdmVsIHRpbWUuAAAAAAAwHX0Eam9pbskBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGpvaW4Kc3VtbWFyeTogJ0pvaW4gYSBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpKb2luIGEgZ2FtZSBvZiBTaGlwbG9hZAoKLS0tABRyt2YFr5ELbWFya2V0cHJpY2WbAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBtYXJrZXRwcmljZQpzdW1tYXJ5OiAnR2V0IHByaWNlIG9mIGdvb2QgYXQgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIGRldGVybWluZXMgdGhlIG1hcmtldCBwcmljZSBvZiBhIHNwZWNpZmllZCBnb29kIGF0IGEgZ2l2ZW4gbG9jYXRpb24uCgotLS2AFXK3ZgWvkQxtYXJrZXRwcmljZXOVAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBtYXJrZXRwcmljZXMKc3VtbWFyeTogJ0dldCBwcmljZSBvZiBhbGwgZ29vZHMgYXQgbG9jYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KClRoaXMgYWN0aW9uIGRldGVybWluZXMgdGhlIG1hcmtldCBwcmljZSBvZiBhbGwgZ29vZHMgYXQgYSBnaXZlbiBsb2NhdGlvbi4AAABgGhq9qQdwYXlsb2Fu3gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogcGF5bG9hbgpzdW1tYXJ5OiAnTG9hbiBQYXltZW50JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpNYWtlIGEgcGF5bWVudCBvbiBhbiBvdXRzdGFuZGluZyBjcmVkaXQgbG9hbi4AAAAAAJCjwQRzYWx03QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2FsdApzdW1tYXJ5OiAnQXBwZW5kIFNhbHQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkFkZCBhZGRpdGlvbmFsIHNhbHQgdG8gdGhlIG5leHQgZXBvY2ggc2VlZC4KCi0tLQAAwIlSFqPCCXNlbGxnb29kc9UBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNlbGxnb29kcwpzdW1tYXJ5OiAnU2VsbCBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2VsbCBnb29kcyBmcm9tIGEgc2hpcCdzIGNhcmdvLgoKLS0tAAAA09CooMkIdGFrZWxvYW7qAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0YWtlbG9hbgpzdW1tYXJ5OiAnQ3JlZGl0IExvYW4nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkJvcnJvdyBjcmVkaXRzIGZyb20gdGhlIGJhbmsgdGhhdCB3aWxsIG5lZWQgdG8gYmUgcmVwYWlkLgAAAABEtc3NBnRyYXZlbMgCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhIHNoaXAgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4KCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgDANLFGtc3NCnRyYXZlbHBsYW6OAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWxwbGFuCnN1bW1hcnk6ICdFc3RpbWF0ZSBhIHRyYXZlbCBwbGFuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGUgd2hhdCB0aGUgdHJhdmVsIHBsYW4gaXMgZm9yIGEgc2hpcCB0cmF2ZWxpbmcgdG8gYSBnaXZlbiBsb2NhdGlvbi4KCi0tLQCAki5Htc3NCnRyYXZlbHRpbWWMAi0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWx0aW1lCnN1bW1hcnk6ICdFc3RpbWF0ZSBUcmF2ZWwgVGltZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKRXN0aW1hdGUgdGhlIGR1cmF0aW9uIG9mIGEgc2hpcCB0cmF2ZWxpbmcgd2l0aG91dCBjb21taXR0aW5nIHRvIHRoZSBhY3Rpb24uCgotLS2QXVIXqWxS1Qx1cGRhdGVjcmVkaXTCAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB1cGRhdGVjcmVkaXQKc3VtbWFyeTogJ0RFQlVHOiB1cGRhdGVjcmVkaXQgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tAEA+KqlsUtUKdXBkYXRlZGVidL4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHVwZGF0ZWRlYnQKc3VtbWFyeTogJ0RFQlVHOiB1cGRhdGVkZWJ0IGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQCqa1glc1nVC3VwZ3JhZGVzaGlw1wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdXBncmFkZXNoaXAKc3VtbWFyeTogJ1VwZ3JhZGUgYSBTaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpVcGdyYWRlIGEgc2hpcCB0byB0aGUgbmV4dCB0aWVyLgAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS2g0FTaKqyq4wx3aXBlc2VxdWVuY2XCAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlc2VxdWVuY2UKc3VtbWFyeTogJ0RFQlVHOiB3aXBlc2VxdWVuY2UgYWN0aW9uJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tBgAAAAAAyq5BA2k2NAAACWNhcmdvX3JvdwAAAJO6bBCNA2k2NAAADGxvY2F0aW9uX3JvdwAAAABc5U2sA2k2NAAACnBsYXllcl9yb3cAAAAKTaWtwgNpNjQAAAxzZXF1ZW5jZV9yb3cAAAAAAFBdwwNpNjQAAAhzaGlwX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwERU2hpcGxvYWQgKFNlcnZlcikRU2hpcGxvYWQgKFNlcnZlcikAAAAGAAAAAADQsGkLY2hlY2tzdW0yNTYAAABAhNKwaQtjaGVja3N1bTUxMgAUcrdmBa+RCmdvb2RfcHJpY2WAFXK3ZgWvkQxnb29kX3ByaWNlW10AwDSxRrXNzQt0cmF2ZWxfcGxhbgCAki5Htc3NDnRyYXZlbF9zdW1tYXJ5');
217
217
  const abi = antelope.ABI.from(abiBlob);
218
218
  var Types;
219
219
  (function (Types) {
@@ -342,6 +342,9 @@ var Types;
342
342
  tslib.__decorate([
343
343
  antelope.Struct.field(antelope.UInt64)
344
344
  ], good_price.prototype, "price", void 0);
345
+ tslib.__decorate([
346
+ antelope.Struct.field(antelope.UInt64)
347
+ ], good_price.prototype, "supply", void 0);
345
348
  good_price = tslib.__decorate([
346
349
  antelope.Struct.type('good_price')
347
350
  ], good_price);
@@ -373,6 +376,21 @@ var Types;
373
376
  antelope.Struct.type('init')
374
377
  ], init);
375
378
  Types.init = init;
379
+ let jettison = class jettison extends antelope.Struct {
380
+ };
381
+ tslib.__decorate([
382
+ antelope.Struct.field(antelope.UInt64)
383
+ ], jettison.prototype, "ship_id", void 0);
384
+ tslib.__decorate([
385
+ antelope.Struct.field(antelope.UInt16)
386
+ ], jettison.prototype, "good_id", void 0);
387
+ tslib.__decorate([
388
+ antelope.Struct.field(antelope.UInt64)
389
+ ], jettison.prototype, "quantity", void 0);
390
+ jettison = tslib.__decorate([
391
+ antelope.Struct.type('jettison')
392
+ ], jettison);
393
+ Types.jettison = jettison;
376
394
  let join = class join extends antelope.Struct {
377
395
  };
378
396
  tslib.__decorate([
@@ -397,6 +415,27 @@ var Types;
397
415
  antelope.Struct.type('loader_stats')
398
416
  ], loader_stats);
399
417
  Types.loader_stats = loader_stats;
418
+ let location_row = class location_row extends antelope.Struct {
419
+ };
420
+ tslib.__decorate([
421
+ antelope.Struct.field(antelope.UInt64)
422
+ ], location_row.prototype, "id", void 0);
423
+ tslib.__decorate([
424
+ antelope.Struct.field(coordinates)
425
+ ], location_row.prototype, "coordinates", void 0);
426
+ tslib.__decorate([
427
+ antelope.Struct.field(antelope.UInt64)
428
+ ], location_row.prototype, "epoch", void 0);
429
+ tslib.__decorate([
430
+ antelope.Struct.field(antelope.UInt16)
431
+ ], location_row.prototype, "good_id", void 0);
432
+ tslib.__decorate([
433
+ antelope.Struct.field(antelope.UInt16)
434
+ ], location_row.prototype, "supply", void 0);
435
+ location_row = tslib.__decorate([
436
+ antelope.Struct.type('location_row')
437
+ ], location_row);
438
+ Types.location_row = location_row;
400
439
  let marketprice = class marketprice extends antelope.Struct {
401
440
  };
402
441
  tslib.__decorate([
@@ -418,6 +457,18 @@ var Types;
418
457
  antelope.Struct.type('marketprices')
419
458
  ], marketprices);
420
459
  Types.marketprices = marketprices;
460
+ let payloan = class payloan extends antelope.Struct {
461
+ };
462
+ tslib.__decorate([
463
+ antelope.Struct.field(antelope.Name)
464
+ ], payloan.prototype, "account", void 0);
465
+ tslib.__decorate([
466
+ antelope.Struct.field(antelope.UInt64)
467
+ ], payloan.prototype, "amount", void 0);
468
+ payloan = tslib.__decorate([
469
+ antelope.Struct.type('payloan')
470
+ ], payloan);
471
+ Types.payloan = payloan;
421
472
  let player_row = class player_row extends antelope.Struct {
422
473
  };
423
474
  tslib.__decorate([
@@ -588,6 +639,9 @@ var Types;
588
639
  tslib.__decorate([
589
640
  antelope.Struct.field(antelope.UInt64)
590
641
  ], state_row.prototype, "salt", void 0);
642
+ tslib.__decorate([
643
+ antelope.Struct.field(antelope.UInt32)
644
+ ], state_row.prototype, "ships", void 0);
591
645
  tslib.__decorate([
592
646
  antelope.Struct.field(antelope.Checksum256)
593
647
  ], state_row.prototype, "seed", void 0);
@@ -598,6 +652,18 @@ var Types;
598
652
  antelope.Struct.type('state_row')
599
653
  ], state_row);
600
654
  Types.state_row = state_row;
655
+ let takeloan = class takeloan extends antelope.Struct {
656
+ };
657
+ tslib.__decorate([
658
+ antelope.Struct.field(antelope.Name)
659
+ ], takeloan.prototype, "account", void 0);
660
+ tslib.__decorate([
661
+ antelope.Struct.field(antelope.UInt64)
662
+ ], takeloan.prototype, "amount", void 0);
663
+ takeloan = tslib.__decorate([
664
+ antelope.Struct.type('takeloan')
665
+ ], takeloan);
666
+ Types.takeloan = takeloan;
601
667
  let travel = class travel extends antelope.Struct {
602
668
  };
603
669
  tslib.__decorate([
@@ -688,6 +754,42 @@ var Types;
688
754
  antelope.Struct.type('traveltime')
689
755
  ], traveltime);
690
756
  Types.traveltime = traveltime;
757
+ let updatecredit = class updatecredit extends antelope.Struct {
758
+ };
759
+ tslib.__decorate([
760
+ antelope.Struct.field(antelope.Name)
761
+ ], updatecredit.prototype, "account", void 0);
762
+ tslib.__decorate([
763
+ antelope.Struct.field(antelope.Int64)
764
+ ], updatecredit.prototype, "amount", void 0);
765
+ updatecredit = tslib.__decorate([
766
+ antelope.Struct.type('updatecredit')
767
+ ], updatecredit);
768
+ Types.updatecredit = updatecredit;
769
+ let updatedebt = class updatedebt extends antelope.Struct {
770
+ };
771
+ tslib.__decorate([
772
+ antelope.Struct.field(antelope.Name)
773
+ ], updatedebt.prototype, "account", void 0);
774
+ tslib.__decorate([
775
+ antelope.Struct.field(antelope.Int64)
776
+ ], updatedebt.prototype, "amount", void 0);
777
+ updatedebt = tslib.__decorate([
778
+ antelope.Struct.type('updatedebt')
779
+ ], updatedebt);
780
+ Types.updatedebt = updatedebt;
781
+ let upgradeship = class upgradeship extends antelope.Struct {
782
+ };
783
+ tslib.__decorate([
784
+ antelope.Struct.field(antelope.Name)
785
+ ], upgradeship.prototype, "account", void 0);
786
+ tslib.__decorate([
787
+ antelope.Struct.field(antelope.UInt64)
788
+ ], upgradeship.prototype, "id", void 0);
789
+ upgradeship = tslib.__decorate([
790
+ antelope.Struct.type('upgradeship')
791
+ ], upgradeship);
792
+ Types.upgradeship = upgradeship;
691
793
  let wipe = class wipe extends antelope.Struct {
692
794
  };
693
795
  wipe = tslib.__decorate([
@@ -703,6 +805,7 @@ var Types;
703
805
  })(Types || (Types = {}));
704
806
  const TableMap = {
705
807
  cargo: Types.cargo_row,
808
+ location: Types.location_row,
706
809
  player: Types.player_row,
707
810
  sequence: Types.sequence_row,
708
811
  ship: Types.ship_row,
@@ -766,77 +869,114 @@ const REQUIRES_MORE_THAN_ONE = 'Requires more than one';
766
869
 
767
870
  const PRECISION = 10000;
768
871
  const TRAVEL_MAXMASS_PENALTY = 5;
872
+ exports.Good = class Good extends antelope.Struct {
873
+ };
874
+ tslib.__decorate([
875
+ antelope.Struct.field(antelope.UInt16)
876
+ ], exports.Good.prototype, "id", void 0);
877
+ tslib.__decorate([
878
+ antelope.Struct.field('string')
879
+ ], exports.Good.prototype, "name", void 0);
880
+ tslib.__decorate([
881
+ antelope.Struct.field('string')
882
+ ], exports.Good.prototype, "description", void 0);
883
+ tslib.__decorate([
884
+ antelope.Struct.field(antelope.UInt64)
885
+ ], exports.Good.prototype, "base_price", void 0);
886
+ tslib.__decorate([
887
+ antelope.Struct.field(antelope.UInt64)
888
+ ], exports.Good.prototype, "mass", void 0);
889
+ exports.Good = tslib.__decorate([
890
+ antelope.Struct.type('good')
891
+ ], exports.Good);
892
+ exports.GoodPrice = class GoodPrice extends antelope.Struct {
893
+ };
894
+ tslib.__decorate([
895
+ antelope.Struct.field(antelope.UInt16)
896
+ ], exports.GoodPrice.prototype, "id", void 0);
897
+ tslib.__decorate([
898
+ antelope.Struct.field(exports.Good)
899
+ ], exports.GoodPrice.prototype, "good", void 0);
900
+ tslib.__decorate([
901
+ antelope.Struct.field(antelope.UInt64)
902
+ ], exports.GoodPrice.prototype, "price", void 0);
903
+ tslib.__decorate([
904
+ antelope.Struct.field(antelope.UInt64)
905
+ ], exports.GoodPrice.prototype, "supply", void 0);
906
+ exports.GoodPrice = tslib.__decorate([
907
+ antelope.Struct.type('GoodPrice')
908
+ ], exports.GoodPrice);
769
909
 
770
910
  const goods = [
771
911
  {
772
912
  id: 1,
773
913
  name: 'FizzGlo',
774
914
  description: 'Pops with flavor! A neon drink that makes your burps glow.',
775
- base_price: 20,
776
- mass: 2000,
915
+ base_price: 50,
916
+ mass: 35000,
777
917
  },
778
918
  {
779
919
  id: 3,
780
920
  name: 'Blob Buddies',
781
921
  description: 'Squishy friends! Clingy, cute and mood-matching pet blobs for every home!',
782
- base_price: 40,
783
- mass: 8000,
922
+ base_price: 95,
923
+ mass: 60000,
784
924
  },
785
925
  {
786
926
  id: 4,
787
927
  name: 'TuneTooth',
788
928
  description: 'Whistle while you eat! Edible instrument treats that play tunes when chewed.',
789
- base_price: 60,
790
- mass: 12000,
929
+ base_price: 145,
930
+ mass: 75000,
791
931
  },
792
932
  {
793
933
  id: 5,
794
934
  name: 'SunPods',
795
935
  description: 'Miniature suns in your pocket providing on-demand light & warmth.',
796
- base_price: 80,
797
- mass: 24000,
936
+ base_price: 295,
937
+ mass: 135000,
798
938
  },
799
939
  {
800
940
  id: 7,
801
941
  name: 'GlowGo',
802
942
  description: 'Ingestible bioluminescent jelly, your inside glows in the dark!',
803
- base_price: 100,
804
- mass: 30000,
943
+ base_price: 650,
944
+ mass: 255000,
805
945
  },
806
946
  {
807
947
  id: 9,
808
948
  name: 'PlasmaMints',
809
949
  description: 'Hypercharged candy giving plasma breath capable of cutting through steel.',
810
- base_price: 120,
811
- mass: 48000,
950
+ base_price: 3450,
951
+ mass: 1100000,
812
952
  },
813
953
  {
814
954
  id: 10,
815
955
  name: 'TimeTreats',
816
956
  description: 'Confectionery morsels releasing slow-mo effect over a limited period.',
817
- base_price: 140,
818
- mass: 56000,
957
+ base_price: 8500,
958
+ mass: 2100000,
819
959
  },
820
960
  {
821
961
  id: 11,
822
962
  name: 'QuantumQuencher',
823
963
  description: 'Bottled hyper-fluid quenching thirst across multiple parallel realities simultaneously.',
824
- base_price: 160,
825
- mass: 80000,
964
+ base_price: 20500,
965
+ mass: 4100000,
826
966
  },
827
967
  {
828
968
  id: 13,
829
969
  name: 'MemoryGum',
830
970
  description: 'Chewable gum storing or replaying memories while being chewed.',
831
- base_price: 180,
832
- mass: 90000,
971
+ base_price: 52500,
972
+ mass: 9500000,
833
973
  },
834
974
  {
835
975
  id: 14,
836
976
  name: 'SymbioSnack',
837
977
  description: 'Edible alien larvae adopting owner’s taste preference upon consumption.',
838
- base_price: 200,
839
- mass: 120000,
978
+ base_price: 115000,
979
+ mass: 16000000,
840
980
  },
841
981
  ];
842
982
  const goodIds = goods.map((g) => g.id);
@@ -845,7 +985,7 @@ function getGood(good_id) {
845
985
  if (!good) {
846
986
  throw new Error('Good does not exist');
847
987
  }
848
- return Object.assign(Object.assign({}, good), { id: antelope.UInt16.from(good.id), base_price: antelope.UInt64.from(good.base_price), mass: antelope.UInt64.from(good.mass).multiplying(PRECISION) });
988
+ return exports.Good.from(Object.assign(Object.assign({}, good), { id: antelope.UInt16.from(good.id), base_price: antelope.UInt64.from(good.base_price), mass: antelope.UInt64.from(good.mass).multiplying(PRECISION) }));
849
989
  }
850
990
  function getGoods() {
851
991
  return goods.map((g) => getGood(g.id));
@@ -918,8 +1058,8 @@ function getRarity(gameSeed, epochSeed, location, good_id) {
918
1058
  else if (rarityRoll < 45988) {
919
1059
  return {
920
1060
  rarity: exports.Rarities.trash,
921
- minMultiplier: 0,
922
- maxMultiplier: 0,
1061
+ minMultiplier: 1,
1062
+ maxMultiplier: 1.07,
923
1063
  };
924
1064
  }
925
1065
  else if (rarityRoll < 62508) {
@@ -1002,21 +1142,32 @@ function getLocationMultiplier(gameSeed, location, good_id) {
1002
1142
  return 1.25;
1003
1143
  }
1004
1144
  }
1005
- function marketprice(location, good_id, gameSeed, epochSeed) {
1006
- const { base_price } = getGood(good_id);
1007
- let price = Number(base_price);
1008
- const rarityMultiplier = getRarityMultiplier(gameSeed, epochSeed, location, good_id);
1145
+ function getSupply(gameSeed, state, location, good_id) {
1146
+ const seed = `${state.seed}${location.x}${location.y}${good_id}supply`;
1147
+ const r = roll(gameSeed, seed);
1148
+ const percent = r / 65535;
1149
+ const epoch = 1 + Number(state.epoch) / 90;
1150
+ const ship = Math.pow(Number(state.ships), 1 / 3);
1151
+ return antelope.UInt64.from((128 / good_id) * percent * ship * epoch).toNumber();
1152
+ }
1153
+ function marketprice(location, good_id, gameSeed, state) {
1154
+ const good = getGood(good_id);
1155
+ let price = Number(good.base_price);
1156
+ const rarityMultiplier = getRarityMultiplier(gameSeed, state.seed, location, good_id);
1009
1157
  price *= rarityMultiplier;
1010
1158
  const locationMultiplier = getLocationMultiplier(gameSeed, location, good_id);
1011
1159
  price *= locationMultiplier;
1012
- return antelope.UInt64.from(price);
1013
- }
1014
- function marketprices(location, gameSeed, epochSeed) {
1015
- return getGoods().map((good) => {
1016
- const price = marketprice(location, good.id, gameSeed, epochSeed);
1017
- return { price, good: good };
1160
+ const supply = getSupply(gameSeed, state, location, good_id);
1161
+ return exports.GoodPrice.from({
1162
+ id: good_id,
1163
+ good,
1164
+ price: antelope.UInt64.from(price),
1165
+ supply: antelope.UInt64.from(supply),
1018
1166
  });
1019
1167
  }
1168
+ function marketprices(location, gameSeed, state) {
1169
+ return getGoods().map((good) => marketprice(location, good.id, gameSeed, state));
1170
+ }
1020
1171
 
1021
1172
  function travelplanDuration(travelplan) {
1022
1173
  return antelope.UInt64.from(travelplan.flighttime)
@@ -1107,7 +1258,7 @@ function calc_mass_penalty(ship, mass) {
1107
1258
  const maximum = Number(ship.stats.maxmass);
1108
1259
  if (mass > ship.stats.maxmass) {
1109
1260
  const overage = (current - maximum) / PRECISION;
1110
- const penalty = TRAVEL_MAXMASS_PENALTY * Math.exp(0.00005 * overage);
1261
+ const penalty = TRAVEL_MAXMASS_PENALTY * Math.exp(0.000005 * overage);
1111
1262
  return antelope.UInt32.from(penalty);
1112
1263
  }
1113
1264
  return antelope.UInt32.from(0);
@@ -1300,14 +1451,14 @@ class Shipload {
1300
1451
  return tslib.__awaiter(this, void 0, void 0, function* () {
1301
1452
  const game = yield this.getGame();
1302
1453
  const state = yield this.getState();
1303
- return marketprice(location, good_id, game.config.seed, state.seed);
1454
+ return marketprice(location, good_id, game.config.seed, state);
1304
1455
  });
1305
1456
  }
1306
1457
  marketprices(location) {
1307
1458
  return tslib.__awaiter(this, void 0, void 0, function* () {
1308
1459
  const game = yield this.getGame();
1309
1460
  const state = yield this.getState();
1310
- return marketprices(location, game.config.seed, state.seed);
1461
+ return marketprices(location, game.config.seed, state);
1311
1462
  });
1312
1463
  }
1313
1464
  hasSystem(location) {
@@ -1373,6 +1524,16 @@ class Shipload {
1373
1524
  return getEpochInfo(game, antelope.UInt64.from(height));
1374
1525
  });
1375
1526
  }
1527
+ getLocation(location) {
1528
+ return tslib.__awaiter(this, void 0, void 0, function* () {
1529
+ const hash = antelope.Checksum256.hash(antelope.Bytes.from(`${location.x}-${location.y}`, 'utf8'));
1530
+ return this.server.table('location').all({
1531
+ index_position: 'secondary',
1532
+ from: hash,
1533
+ to: hash,
1534
+ });
1535
+ });
1536
+ }
1376
1537
  }
1377
1538
 
1378
1539
  exports.ERROR_SYSTEM_NOT_INITIALIZED = ERROR_SYSTEM_NOT_INITIALIZED;
@@ -1414,6 +1575,7 @@ exports.getGoods = getGoods;
1414
1575
  exports.getLocationMultiplier = getLocationMultiplier;
1415
1576
  exports.getRarity = getRarity;
1416
1577
  exports.getRarityMultiplier = getRarityMultiplier;
1578
+ exports.getSupply = getSupply;
1417
1579
  exports.goodIds = goodIds;
1418
1580
  exports.hasSystem = hasSystem;
1419
1581
  exports.hash = hash;