@shipload/sdk 0.3.0 → 0.3.2

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.m.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { __decorate } from 'tslib';
2
- import { Blob, ABI, Struct, Name, UInt64, Int64, UInt16, Checksum256, UInt32, TimePoint, UInt8, BlockTimestamp, Bytes, Checksum512, APIClient } from '@wharfkit/antelope';
2
+ import { Blob, ABI, Struct, Name, UInt64, Checksum256, UInt32, TimePointSec, UInt16, Int64, TimePoint, UInt8, BlockTimestamp, Bytes, Checksum512, APIClient } from '@wharfkit/antelope';
3
3
  import ContractKit, { Contract as Contract$2 } from '@wharfkit/contract';
4
4
 
5
- const abiBlob$1 = Blob.from('DmVvc2lvOjphYmkvMS4yAAcKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/C2NvbXBhbnlfcm93AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxmb3VuZGNvbXBhbnkAAgdhY2NvdW50BG5hbWUEbmFtZQZzdHJpbmcJc3RhdGVfcm93AAEHZW5hYmxlZARib29sBHRlc3QAAQRkYXRhBnN0cmluZwR3aXBlAAAFAICKx+RrVEQKY2xlYXJ0YWJsZQAAAAAAqHjMVAZlbmFibGXzAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ0VuYWJsZS9kaXNhYmxlIHBsYXRmb3JtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhlIHBsYXRmb3JtIGNvbnRyYWN0LuCnqZKiNDVdDGZvdW5kY29tcGFueYMCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGZvdW5kY29tcGFueQpzdW1tYXJ5OiAnRm91bmQgYSBuZXcgY29tcGFueScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkZvdW5kIGEgbmV3IGNvbXBhbnkgaW4gdGhlIFNoaXBsb2FkIHBsYXRmb3JtIGNvbnRyYWN0LgAAAAAAkLHKBHRlc3QAAAAAAACgquMEd2lwZQACAAAAwE9TJUUDaTY0AAALY29tcGFueV9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cBE1NoaXBsb2FkIChQbGF0Zm9ybSkTU2hpcGxvYWQgKFBsYXRmb3JtKQAAAAA=');
5
+ const abiBlob$1 = Blob.from('DmVvc2lvOjphYmkvMS4yAA0KY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/C2NvbXBhbnlfcm93AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAplbmFibGVnYW1lAAIIY29udHJhY3QEbmFtZQdlbmFibGVkBGJvb2wMZm91bmRjb21wYW55AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nC2dhbWVfY29uZmlnAAIEc2VlZAtjaGVja3N1bTI1NgllcG9jaHRpbWUGdWludDMyCWdhbWVfbWV0YQAEBG5hbWUGc3RyaW5nC2Rlc2NyaXB0aW9uBnN0cmluZwN1cmwGc3RyaW5nB3ZlcnNpb24Gc3RyaW5nCGdhbWVfcm93AAQIY29udHJhY3QEbmFtZQZjb25maWcLZ2FtZV9jb25maWcEbWV0YQlnYW1lX21ldGEFc3RhdGUKZ2FtZV9zdGF0ZQpnYW1lX3N0YXRlAAMHZW5hYmxlZARib29sBXN0YXJ0DnRpbWVfcG9pbnRfc2VjA2VuZA50aW1lX3BvaW50X3NlYwlzdGFydGdhbWUABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCXN0YXRlX3JvdwABB2VuYWJsZWQEYm9vbAp1cGRhdGVnYW1lAAIIY29udHJhY3QEbmFtZQRtZXRhCWdhbWVfbWV0YQR3aXBlAAAHAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAACoeMxUBmVuYWJsZfMBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnRW5hYmxlL2Rpc2FibGUgcGxhdGZvcm0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGUgcGxhdGZvcm0gY29udHJhY3QuAICShql4zFQKZW5hYmxlZ2FtZfwBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZWdhbWUKc3VtbWFyeTogJ0VuYWJsZS9kaXNiYWJsZSBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGUgc3BlY2lmaWVkIGdhbWUgY29udHJhY3Qu4KepkqI0NV0MZm91bmRjb21wYW55gwItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZm91bmRjb21wYW55CnN1bW1hcnk6ICdGb3VuZCBhIG5ldyBjb21wYW55JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKRm91bmQgYSBuZXcgY29tcGFueSBpbiB0aGUgU2hpcGxvYWQgcGxhdGZvcm0gY29udHJhY3QuAABQ0rB8TcYJc3RhcnRnYW1l/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3RhcnRnYW1lCnN1bW1hcnk6ICdTdGFydCBhIG5ldyBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKU3RhcnQgYSBuZXcgZ2FtZSBvZiBTaGlwbG9hZCBkZXBsb3llZCB0byBhIG5ldyBjb250cmFjdC4AgJKGqWxS1Qp1cGRhdGVnYW1ljQItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdXBkYXRlZ2FtZQpzdW1tYXJ5OiAnVXBkYXRlIGdhbWUgaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpVcGRhdGUgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzcGVjaWZpZWQgZ2FtZSBjb250cmFjdC4KCi0tLQAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0DAAAAwE9TJUUDaTY0AAALY29tcGFueV9yb3cAAAAAAKykYQNpNjQAAAhnYW1lX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwETU2hpcGxvYWQgKFBsYXRmb3JtKRNTaGlwbG9hZCAoUGxhdGZvcm0pAAAAAA==');
6
6
  const abi$1 = ABI.from(abiBlob$1);
7
7
  var Types$1;
8
8
  (function (Types) {
@@ -42,6 +42,18 @@ var Types$1;
42
42
  Struct.type('enable')
43
43
  ], enable);
44
44
  Types.enable = enable;
45
+ let enablegame = class enablegame extends Struct {
46
+ };
47
+ __decorate([
48
+ Struct.field(Name)
49
+ ], enablegame.prototype, "contract", void 0);
50
+ __decorate([
51
+ Struct.field('bool')
52
+ ], enablegame.prototype, "enabled", void 0);
53
+ enablegame = __decorate([
54
+ Struct.type('enablegame')
55
+ ], enablegame);
56
+ Types.enablegame = enablegame;
45
57
  let foundcompany = class foundcompany extends Struct {
46
58
  };
47
59
  __decorate([
@@ -54,6 +66,87 @@ var Types$1;
54
66
  Struct.type('foundcompany')
55
67
  ], foundcompany);
56
68
  Types.foundcompany = foundcompany;
69
+ let game_config = class game_config extends Struct {
70
+ };
71
+ __decorate([
72
+ Struct.field(Checksum256)
73
+ ], game_config.prototype, "seed", void 0);
74
+ __decorate([
75
+ Struct.field(UInt32)
76
+ ], game_config.prototype, "epochtime", void 0);
77
+ game_config = __decorate([
78
+ Struct.type('game_config')
79
+ ], game_config);
80
+ Types.game_config = game_config;
81
+ let game_meta = class game_meta extends Struct {
82
+ };
83
+ __decorate([
84
+ Struct.field('string')
85
+ ], game_meta.prototype, "name", void 0);
86
+ __decorate([
87
+ Struct.field('string')
88
+ ], game_meta.prototype, "description", void 0);
89
+ __decorate([
90
+ Struct.field('string')
91
+ ], game_meta.prototype, "url", void 0);
92
+ __decorate([
93
+ Struct.field('string')
94
+ ], game_meta.prototype, "version", void 0);
95
+ game_meta = __decorate([
96
+ Struct.type('game_meta')
97
+ ], game_meta);
98
+ Types.game_meta = game_meta;
99
+ let game_state = class game_state extends Struct {
100
+ };
101
+ __decorate([
102
+ Struct.field('bool')
103
+ ], game_state.prototype, "enabled", void 0);
104
+ __decorate([
105
+ Struct.field(TimePointSec)
106
+ ], game_state.prototype, "start", void 0);
107
+ __decorate([
108
+ Struct.field(TimePointSec)
109
+ ], game_state.prototype, "end", void 0);
110
+ game_state = __decorate([
111
+ Struct.type('game_state')
112
+ ], game_state);
113
+ Types.game_state = game_state;
114
+ let game_row = class game_row extends Struct {
115
+ };
116
+ __decorate([
117
+ Struct.field(Name)
118
+ ], game_row.prototype, "contract", void 0);
119
+ __decorate([
120
+ Struct.field(game_config)
121
+ ], game_row.prototype, "config", void 0);
122
+ __decorate([
123
+ Struct.field(game_meta)
124
+ ], game_row.prototype, "meta", void 0);
125
+ __decorate([
126
+ Struct.field(game_state)
127
+ ], game_row.prototype, "state", void 0);
128
+ game_row = __decorate([
129
+ Struct.type('game_row')
130
+ ], game_row);
131
+ Types.game_row = game_row;
132
+ let startgame = class startgame extends Struct {
133
+ };
134
+ __decorate([
135
+ Struct.field(Name)
136
+ ], startgame.prototype, "contract", void 0);
137
+ __decorate([
138
+ Struct.field(game_config)
139
+ ], startgame.prototype, "config", void 0);
140
+ __decorate([
141
+ Struct.field(game_meta)
142
+ ], startgame.prototype, "meta", void 0);
143
+ __decorate([
144
+ Struct.field(game_state)
145
+ ], startgame.prototype, "state", void 0);
146
+ startgame = __decorate([
147
+ Struct.type('startgame')
148
+ ], startgame);
149
+ Types.startgame = startgame;
57
150
  let state_row = class state_row extends Struct {
58
151
  };
59
152
  __decorate([
@@ -63,15 +156,18 @@ var Types$1;
63
156
  Struct.type('state_row')
64
157
  ], state_row);
65
158
  Types.state_row = state_row;
66
- let test = class test extends Struct {
159
+ let updategame = class updategame extends Struct {
67
160
  };
68
161
  __decorate([
69
- Struct.field('string')
70
- ], test.prototype, "data", void 0);
71
- test = __decorate([
72
- Struct.type('test')
73
- ], test);
74
- Types.test = test;
162
+ Struct.field(Name)
163
+ ], updategame.prototype, "contract", void 0);
164
+ __decorate([
165
+ Struct.field(game_meta)
166
+ ], updategame.prototype, "meta", void 0);
167
+ updategame = __decorate([
168
+ Struct.type('updategame')
169
+ ], updategame);
170
+ Types.updategame = updategame;
75
171
  let wipe = class wipe extends Struct {
76
172
  };
77
173
  wipe = __decorate([
@@ -81,6 +177,7 @@ var Types$1;
81
177
  })(Types$1 || (Types$1 = {}));
82
178
  const TableMap$1 = {
83
179
  company: Types$1.company_row,
180
+ games: Types$1.game_row,
84
181
  state: Types$1.state_row,
85
182
  };
86
183
  class Contract$1 extends Contract$2 {
@@ -108,12 +205,18 @@ var platform = /*#__PURE__*/Object.freeze({
108
205
  Contract: Contract$1
109
206
  });
110
207
 
111
- const abiBlob = Blob.from('DmVvc2lvOjphYmkvMS4yABwHYWR2YW5jZQAABmFycml2ZQACBW93bmVyBG5hbWUCaWQGdWludDY0CGJ1eWdvb2RzAAMHc2hpcF9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CWNhcmdvX3JvdwAFAmlkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQGbG9hZGVkBnVpbnQ2NApjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8LY29vcmRpbmF0ZXMAAgF4BWludDY0AXkFaW50NjQGZW5hYmxlAAEHZW5hYmxlZARib29sCWVzdHRyYXZlbAACAmlkBnVpbnQ2NAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwpnb29kX3ByaWNlAAICaWQGdWludDE2BXByaWNlBnVpbnQ2NARoYXNoAAEFdmFsdWUGc3RyaW5nBGluaXQAAgRzZWVkC2NoZWNrc3VtMjU2CWVwb2Noc2VlZAtjaGVja3N1bTI1NgRqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwAECGNhcGFjaXR5BnVpbnQxNgRtYXNzBnVpbnQzMghxdWFudGl0eQZ1aW50MTYGdGhydXN0BnVpbnQzMgttYXJrZXRwcmljZQACCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB2dvb2RfaWQGdWludDE2DG1hcmtldHByaWNlcwABCGxvY2F0aW9uC2Nvb3JkaW5hdGVzCnBsYXllcl9yb3cAAwVvd25lcgRuYW1lB2JhbGFuY2UGdWludDY0BGRlYnQGdWludDY0CXNlbGxnb29kcwADB3NoaXBfaWQGdWludDY0B2dvb2RfaWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQIc2hpcF9yb3cACgJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwhsb2NhdGlvbgtjb29yZGluYXRlcwRza2luBXVpbnQ4BHRpZXIFdWludDgFc3RhdGUKc2hpcF9zdGF0ZQVzdGF0cwpzaGlwX3N0YXRzB2xvYWRlcnMMbG9hZGVyX3N0YXRzCnRyYXZlbHBsYW4MdHJhdmVsX3BsYW4/CnNoaXBfc3RhdGUAAQZlbmVyZ3kGdWludDMyCnNoaXBfc3RhdHMABghjYXBhY2l0eQZ1aW50MzIFZHJhaW4GdWludDMyBG1hc3MGdWludDY0BW9yYml0BnVpbnQxNghyZWNoYXJnZQZ1aW50MzIGdGhydXN0BnVpbnQ2NAlzdGF0ZV9yb3cABQdlbmFibGVkBGJvb2wFZXBvY2gGdWludDY0CWVwb2Noc2VlZAtjaGVja3N1bTI1NgdnZW5lc2lzFGJsb2NrX3RpbWVzdGFtcF90eXBlBHNlZWQLY2hlY2tzdW0yNTYLc3VtbWFyeV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQ50cmF2ZWxfc3VtbWFyeQR0ZXN0AAEEZGF0YQZzdHJpbmcGdHJhdmVsAAQFb3duZXIEbmFtZQJpZAZ1aW50NjQLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMIcmVjaGFyZ2UEYm9vbAt0cmF2ZWxfcGxhbgADC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCWRlcGFydHVyZQp0aW1lX3BvaW50CGR1cmF0aW9uBnVpbnQzMg50cmF2ZWxfc3VtbWFyeQAMBXN0YXRzCnNoaXBfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMGb3JpZ2luC2Nvb3JkaW5hdGVzC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCGRpc3RhbmNlBnVpbnQ2NAl0b3RhbG1hc3MGdWludDY0DGFjY2VsZXJhdGlvbgZ1aW50NjQKZmxpZ2h0dGltZQZ1aW50NjQLZW5lcmd5dXNhZ2UGdWludDY0DHJlY2hhcmdldGltZQZ1aW50NjQIbG9hZHRpbWUGdWludDY0BHRpbWUGdWludDY0BHdpcGUAAA8AAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAKjt7jUGYXJyaXZlswItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYXJyaXZlCnN1bW1hcnk6ICdDb21wbGV0ZSB0cmF2ZWwnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbXBsZXRlIHRoZSB0cmF2ZWwgb2YgYSBzaGlwIGJ5IHVwZGF0aW5nIGl0cyBsb2NhdGlvbiB0byB0aGUgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgYWZ0ZXIgdGhlIHRyYXZlbCBkdXJhdGlvbiBoYXMgcGFzc2VkLgoKLS0tAAAAOFHKvD4IYnV5Z29vZHPdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBidXlnb29kcwpzdW1tYXJ5OiAnQnV5IGdvb2RzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBnb29kcyBhbmQgYWRkIHRoZW0gdG8gYSBzaGlwJ3MgY2FyZ28uAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAACoeMxUBmVuYWJsZeIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4KCi0tLQAAiGqbmzNWCWVzdHRyYXZlbAAAAAAAANCwaQRoYXNo6gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaApzdW1tYXJ5OiAnQ2FsY3VsYXRlIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AAAAAAJDddARpbml0/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaW5pdApzdW1tYXJ5OiAnSW5pdGlhbGl6ZSBnYW1lIHNlZWQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYWxpemUgYSB0aGUgZ2FtZXMgc2VlZCBhbmQgZXBvY2hzZWVkIHZhbHVlcyB0byBib290c3RyYXAgZ2FtZSBzdGF0ZS4AAAAAADAdfQRqb2luyQEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogam9pbgpzdW1tYXJ5OiAnSm9pbiBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpvaW4gYSBnYW1lIG9mIFNoaXBsb2FkCgotLS0AFHK3ZgWvkQttYXJrZXRwcmljZZsCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG1hcmtldHByaWNlCnN1bW1hcnk6ICdHZXQgcHJpY2Ugb2YgZ29vZCBhdCBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGEgc3BlY2lmaWVkIGdvb2QgYXQgYSBnaXZlbiBsb2NhdGlvbi4KCi0tLYAVcrdmBa+RDG1hcmtldHByaWNlc5UCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG1hcmtldHByaWNlcwpzdW1tYXJ5OiAnR2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgAAwIlSFqPCCXNlbGxnb29kc9UBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNlbGxnb29kcwpzdW1tYXJ5OiAnU2VsbCBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2VsbCBnb29kcyBmcm9tIGEgc2hpcCdzIGNhcmdvLgoKLS0tAAAAAACQscoEdGVzdLIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRlc3QKc3VtbWFyeTogJ0RFQlVHOiB0ZXN0IGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABEtc3NBnRyYXZlbP0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhIHNoaXAgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4KCi0tLQAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0GAAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAAApNpa3CA2k2NAAADHNlcXVlbmNlX3JvdwAAAAAAUF3DA2k2NAAACHNoaXBfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAwF8jpcYDaTY0AAALc3VtbWFyeV9yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAABAAAiGqbmzNWDnRyYXZlbF9zdW1tYXJ5AAAAAADQsGkLY2hlY2tzdW01MTIAFHK3ZgWvkQpnb29kX3ByaWNlgBVyt2YFr5EMZ29vZF9wcmljZVtd');
208
+ const abiBlob = Blob.from('DmVvc2lvOjphYmkvMS4yAB0HYWR2YW5jZQACBnJldmVhbAZzdHJpbmcGY29tbWl0C2NoZWNrc3VtMjU2BmFycml2ZQACBW93bmVyBG5hbWUCaWQGdWludDY0CGJ1eWdvb2RzAAMHc2hpcF9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CWNhcmdvX3JvdwAFAmlkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50MTYGbG9hZGVkBnVpbnQxNgpjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8GY29tbWl0AAEGY29tbWl0C2NoZWNrc3VtMjU2C2Nvb3JkaW5hdGVzAAIBeAVpbnQ2NAF5BWludDY0BmVuYWJsZQABB2VuYWJsZWQEYm9vbApnb29kX3ByaWNlAAICaWQGdWludDE2BXByaWNlBnVpbnQ2NARoYXNoAAEFdmFsdWUGc3RyaW5nB2hhc2g1MTIAAQV2YWx1ZQZzdHJpbmcEaW5pdAABBHNlZWQLY2hlY2tzdW0yNTYEam9pbgABB2FjY291bnQEbmFtZQxsb2FkZXJfc3RhdHMAAwRtYXNzBnVpbnQzMghxdWFudGl0eQZ1aW50MTYGdGhydXN0BnVpbnQzMgttYXJrZXRwcmljZQACCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB2dvb2RfaWQGdWludDE2DG1hcmtldHByaWNlcwABCGxvY2F0aW9uC2Nvb3JkaW5hdGVzCnBsYXllcl9yb3cAAwVvd25lcgRuYW1lB2JhbGFuY2UGdWludDY0BGRlYnQGdWludDY0BHNhbHQAAQRzYWx0BnVpbnQ2NAlzZWxsZ29vZHMAAwdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQMc2VxdWVuY2Vfcm93AAIDa2V5BG5hbWUFdmFsdWUGdWludDY0CHNoaXBfcm93AAoCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcIbG9jYXRpb24LY29vcmRpbmF0ZXMEc2tpbgV1aW50OAR0aWVyBXVpbnQ4BXN0YXRlCnNoaXBfc3RhdGUFc3RhdHMKc2hpcF9zdGF0cwdsb2FkZXJzDGxvYWRlcl9zdGF0cwp0cmF2ZWxwbGFuDHRyYXZlbF9wbGFuPwpzaGlwX3N0YXRlAAEGZW5lcmd5BnVpbnQzMgpzaGlwX3N0YXRzAAYIY2FwYWNpdHkGdWludDMyBWRyYWluBnVpbnQzMgRtYXNzBnVpbnQ2NAVvcmJpdAZ1aW50MTYIcmVjaGFyZ2UGdWludDMyBnRocnVzdAZ1aW50NjQJc3RhdGVfcm93AAYHZW5hYmxlZARib29sBWVwb2NoBnVpbnQ2NARzYWx0BnVpbnQ2NARzZWVkC2NoZWNrc3VtMjU2BmNvbW1pdAtjaGVja3N1bTI1NgdnZW5lc2lzFGJsb2NrX3RpbWVzdGFtcF90eXBlBnRyYXZlbAAEBW93bmVyBG5hbWUCaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCHJlY2hhcmdlBGJvb2wLdHJhdmVsX3BsYW4AAwtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwlkZXBhcnR1cmUKdGltZV9wb2ludAhkdXJhdGlvbgZ1aW50MzIOdHJhdmVsX3N1bW1hcnkADAVzdGF0cwpzaGlwX3N0YXRzB2xvYWRlcnMMbG9hZGVyX3N0YXRzBm9yaWdpbgtjb29yZGluYXRlcwtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwhkaXN0YW5jZQZ1aW50NjQJdG90YWxtYXNzBnVpbnQ2NAxhY2NlbGVyYXRpb24GdWludDY0CmZsaWdodHRpbWUGdWludDY0C2VuZXJneXVzYWdlBnVpbnQ2NAxyZWNoYXJnZXRpbWUGdWludDY0CGxvYWR0aW1lBnVpbnQ2NAR0aW1lBnVpbnQ2NAp0cmF2ZWx0aW1lAAICaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzBHdpcGUAABEAAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAKjt7jUGYXJyaXZlswItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYXJyaXZlCnN1bW1hcnk6ICdDb21wbGV0ZSB0cmF2ZWwnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbXBsZXRlIHRoZSB0cmF2ZWwgb2YgYSBzaGlwIGJ5IHVwZGF0aW5nIGl0cyBsb2NhdGlvbiB0byB0aGUgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgYWZ0ZXIgdGhlIHRyYXZlbCBkdXJhdGlvbiBoYXMgcGFzc2VkLgoKLS0tAAAAOFHKvD4IYnV5Z29vZHPdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBidXlnb29kcwpzdW1tYXJ5OiAnQnV5IGdvb2RzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBnb29kcyBhbmQgYWRkIHRoZW0gdG8gYSBzaGlwJ3MgY2FyZ28uAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABkJyVFBmNvbW1pdPEBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbW1pdApzdW1tYXJ5OiAnU2V0IGNvbW1pdCB2YWx1ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2V0IHRoZSBpbml0aWFsIGNvbW1pdCB2YWx1ZSBkdXJpbmcgZ2FtZSBpbml0aWFsaXphdGlvbi4KCi0tLQAAAACoeMxUBmVuYWJsZeIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4KCi0tLQAAAAAA0LBpBGhhc2j9AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuCgotLS0AAABAhNKwaQdoYXNoNTEy+wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaDUxMgpzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTUxMiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGE1MTIgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAAAAkN10BGluaXT6AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBpbml0CnN1bW1hcnk6ICdJbml0aWFsaXplIGdhbWUgc2VlZCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhbGl6ZSBhIHRoZSBnYW1lcyBzZWVkIGFuZCBzZWVkIHZhbHVlcyB0byBib290c3RyYXAgZ2FtZSBzdGF0ZS4AAAAAADAdfQRqb2luyQEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogam9pbgpzdW1tYXJ5OiAnSm9pbiBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpvaW4gYSBnYW1lIG9mIFNoaXBsb2FkCgotLS0AFHK3ZgWvkQttYXJrZXRwcmljZZsCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG1hcmtldHByaWNlCnN1bW1hcnk6ICdHZXQgcHJpY2Ugb2YgZ29vZCBhdCBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGEgc3BlY2lmaWVkIGdvb2QgYXQgYSBnaXZlbiBsb2NhdGlvbi4KCi0tLYAVcrdmBa+RDG1hcmtldHByaWNlc5UCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG1hcmtldHByaWNlcwpzdW1tYXJ5OiAnR2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgAAAAAAkKPBBHNhbHTdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzYWx0CnN1bW1hcnk6ICdBcHBlbmQgU2FsdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQWRkIGFkZGl0aW9uYWwgc2FsdCB0byB0aGUgbmV4dCBlcG9jaCBzZWVkLgoKLS0tAADAiVIWo8IJc2VsbGdvb2Rz1QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2VsbGdvb2RzCnN1bW1hcnk6ICdTZWxsIGdvb2RzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZWxsIGdvb2RzIGZyb20gYSBzaGlwJ3MgY2FyZ28uCgotLS0AAAAARLXNzQZ0cmF2ZWz9AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYSBzaGlwIGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uCgotLS0AgJIuR7XNzQp0cmF2ZWx0aW1ljAItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhdmVsdGltZQpzdW1tYXJ5OiAnRXN0aW1hdGUgVHJhdmVsIFRpbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVzdGltYXRlIHRoZSBkdXJhdGlvbiBvZiBhIHNoaXAgdHJhdmVsaW5nIHdpdGhvdXQgY29tbWl0dGluZyB0byB0aGUgYWN0aW9uLgoKLS0tAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQUAAAAAAMquQQNpNjQAAAljYXJnb19yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAACk2lrcIDaTY0AAAMc2VxdWVuY2Vfcm93AAAAAABQXcMDaTY0AAAIc2hpcF9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAABQAAAAAA0LBpC2NoZWNrc3VtMjU2AAAAQITSsGkLY2hlY2tzdW01MTIAFHK3ZgWvkQpnb29kX3ByaWNlgBVyt2YFr5EMZ29vZF9wcmljZVtdAICSLke1zc0OdHJhdmVsX3N1bW1hcnk=');
112
209
  const abi = ABI.from(abiBlob);
113
210
  var Types;
114
211
  (function (Types) {
115
212
  let advance = class advance extends Struct {
116
213
  };
214
+ __decorate([
215
+ Struct.field('string')
216
+ ], advance.prototype, "reveal", void 0);
217
+ __decorate([
218
+ Struct.field(Checksum256)
219
+ ], advance.prototype, "commit", void 0);
117
220
  advance = __decorate([
118
221
  Struct.type('advance')
119
222
  ], advance);
@@ -157,10 +260,10 @@ var Types;
157
260
  Struct.field(UInt64)
158
261
  ], cargo_row.prototype, "good_id", void 0);
159
262
  __decorate([
160
- Struct.field(UInt64)
263
+ Struct.field(UInt16)
161
264
  ], cargo_row.prototype, "quantity", void 0);
162
265
  __decorate([
163
- Struct.field(UInt64)
266
+ Struct.field(UInt16)
164
267
  ], cargo_row.prototype, "loaded", void 0);
165
268
  cargo_row = __decorate([
166
269
  Struct.type('cargo_row')
@@ -181,6 +284,15 @@ var Types;
181
284
  Struct.type('cleartable')
182
285
  ], cleartable);
183
286
  Types.cleartable = cleartable;
287
+ let commit = class commit extends Struct {
288
+ };
289
+ __decorate([
290
+ Struct.field(Checksum256)
291
+ ], commit.prototype, "commit", void 0);
292
+ commit = __decorate([
293
+ Struct.type('commit')
294
+ ], commit);
295
+ Types.commit = commit;
184
296
  let coordinates = class coordinates extends Struct {
185
297
  };
186
298
  __decorate([
@@ -202,18 +314,6 @@ var Types;
202
314
  Struct.type('enable')
203
315
  ], enable);
204
316
  Types.enable = enable;
205
- let esttravel = class esttravel extends Struct {
206
- };
207
- __decorate([
208
- Struct.field(UInt64)
209
- ], esttravel.prototype, "id", void 0);
210
- __decorate([
211
- Struct.field(coordinates)
212
- ], esttravel.prototype, "destination", void 0);
213
- esttravel = __decorate([
214
- Struct.type('esttravel')
215
- ], esttravel);
216
- Types.esttravel = esttravel;
217
317
  let good_price = class good_price extends Struct {
218
318
  };
219
319
  __decorate([
@@ -235,14 +335,20 @@ var Types;
235
335
  Struct.type('hash')
236
336
  ], hash);
237
337
  Types.hash = hash;
338
+ let hash512 = class hash512 extends Struct {
339
+ };
340
+ __decorate([
341
+ Struct.field('string')
342
+ ], hash512.prototype, "value", void 0);
343
+ hash512 = __decorate([
344
+ Struct.type('hash512')
345
+ ], hash512);
346
+ Types.hash512 = hash512;
238
347
  let init = class init extends Struct {
239
348
  };
240
349
  __decorate([
241
350
  Struct.field(Checksum256)
242
351
  ], init.prototype, "seed", void 0);
243
- __decorate([
244
- Struct.field(Checksum256)
245
- ], init.prototype, "epochseed", void 0);
246
352
  init = __decorate([
247
353
  Struct.type('init')
248
354
  ], init);
@@ -258,9 +364,6 @@ var Types;
258
364
  Types.join = join;
259
365
  let loader_stats = class loader_stats extends Struct {
260
366
  };
261
- __decorate([
262
- Struct.field(UInt16)
263
- ], loader_stats.prototype, "capacity", void 0);
264
367
  __decorate([
265
368
  Struct.field(UInt32)
266
369
  ], loader_stats.prototype, "mass", void 0);
@@ -310,6 +413,15 @@ var Types;
310
413
  Struct.type('player_row')
311
414
  ], player_row);
312
415
  Types.player_row = player_row;
416
+ let salt = class salt extends Struct {
417
+ };
418
+ __decorate([
419
+ Struct.field(UInt64)
420
+ ], salt.prototype, "salt", void 0);
421
+ salt = __decorate([
422
+ Struct.type('salt')
423
+ ], salt);
424
+ Types.salt = salt;
313
425
  let sellgoods = class sellgoods extends Struct {
314
426
  };
315
427
  __decorate([
@@ -429,19 +541,40 @@ var Types;
429
541
  __decorate([
430
542
  Struct.field(UInt64)
431
543
  ], state_row.prototype, "epoch", void 0);
544
+ __decorate([
545
+ Struct.field(UInt64)
546
+ ], state_row.prototype, "salt", void 0);
547
+ __decorate([
548
+ Struct.field(Checksum256)
549
+ ], state_row.prototype, "seed", void 0);
432
550
  __decorate([
433
551
  Struct.field(Checksum256)
434
- ], state_row.prototype, "epochseed", void 0);
552
+ ], state_row.prototype, "commit", void 0);
435
553
  __decorate([
436
554
  Struct.field(BlockTimestamp)
437
555
  ], state_row.prototype, "genesis", void 0);
438
- __decorate([
439
- Struct.field(Checksum256)
440
- ], state_row.prototype, "seed", void 0);
441
556
  state_row = __decorate([
442
557
  Struct.type('state_row')
443
558
  ], state_row);
444
559
  Types.state_row = state_row;
560
+ let travel = class travel extends Struct {
561
+ };
562
+ __decorate([
563
+ Struct.field(Name)
564
+ ], travel.prototype, "owner", void 0);
565
+ __decorate([
566
+ Struct.field(UInt64)
567
+ ], travel.prototype, "id", void 0);
568
+ __decorate([
569
+ Struct.field(coordinates)
570
+ ], travel.prototype, "destination", void 0);
571
+ __decorate([
572
+ Struct.field('bool')
573
+ ], travel.prototype, "recharge", void 0);
574
+ travel = __decorate([
575
+ Struct.type('travel')
576
+ ], travel);
577
+ Types.travel = travel;
445
578
  let travel_summary = class travel_summary extends Struct {
446
579
  };
447
580
  __decorate([
@@ -484,45 +617,18 @@ var Types;
484
617
  Struct.type('travel_summary')
485
618
  ], travel_summary);
486
619
  Types.travel_summary = travel_summary;
487
- let summary_row = class summary_row extends Struct {
488
- };
489
- __decorate([
490
- Struct.field(Name)
491
- ], summary_row.prototype, "key", void 0);
492
- __decorate([
493
- Struct.field(travel_summary)
494
- ], summary_row.prototype, "value", void 0);
495
- summary_row = __decorate([
496
- Struct.type('summary_row')
497
- ], summary_row);
498
- Types.summary_row = summary_row;
499
- let test = class test extends Struct {
620
+ let traveltime = class traveltime extends Struct {
500
621
  };
501
- __decorate([
502
- Struct.field('string')
503
- ], test.prototype, "data", void 0);
504
- test = __decorate([
505
- Struct.type('test')
506
- ], test);
507
- Types.test = test;
508
- let travel = class travel extends Struct {
509
- };
510
- __decorate([
511
- Struct.field(Name)
512
- ], travel.prototype, "owner", void 0);
513
622
  __decorate([
514
623
  Struct.field(UInt64)
515
- ], travel.prototype, "id", void 0);
624
+ ], traveltime.prototype, "id", void 0);
516
625
  __decorate([
517
626
  Struct.field(coordinates)
518
- ], travel.prototype, "destination", void 0);
519
- __decorate([
520
- Struct.field('bool')
521
- ], travel.prototype, "recharge", void 0);
522
- travel = __decorate([
523
- Struct.type('travel')
524
- ], travel);
525
- Types.travel = travel;
627
+ ], traveltime.prototype, "destination", void 0);
628
+ traveltime = __decorate([
629
+ Struct.type('traveltime')
630
+ ], traveltime);
631
+ Types.traveltime = traveltime;
526
632
  let wipe = class wipe extends Struct {
527
633
  };
528
634
  wipe = __decorate([
@@ -536,7 +642,6 @@ const TableMap = {
536
642
  sequence: Types.sequence_row,
537
643
  ship: Types.ship_row,
538
644
  state: Types.state_row,
539
- summary: Types.summary_row,
540
645
  };
541
646
  class Contract extends Contract$2 {
542
647
  constructor(args) {
@@ -566,12 +671,20 @@ var server = /*#__PURE__*/Object.freeze({
566
671
  Contract: Contract
567
672
  });
568
673
 
674
+ async function getCurrentEpoch(game, state) {
675
+ const current = new Date().getTime();
676
+ const difference = (current - state.genesis.toDate().getTime()) / 1000;
677
+ const epoch = Math.floor(difference / Number(game.config.epochtime)) + 1;
678
+ return epoch;
679
+ }
680
+
569
681
  function hash(seed, string) {
570
682
  const bytes = Bytes.from(`${seed}${string}`, 'utf8');
571
- return Checksum512.hash(bytes);
683
+ return Checksum256.hash(bytes);
572
684
  }
573
- function hashBytes(seed, string) {
574
- return hash(seed, string).array;
685
+ function hash512(seed, string) {
686
+ const bytes = Bytes.from(`${seed}${string}`, 'utf8');
687
+ return Checksum512.hash(bytes);
575
688
  }
576
689
 
577
690
  function distanceTraveled(ship) {
@@ -581,36 +694,40 @@ function distanceTraveled(ship) {
581
694
  }
582
695
  return 0;
583
696
  }
697
+ function distanceBetweenCoordinates(origin, destination) {
698
+ return distanceBetweenPoints(origin.x, origin.y, destination.x, destination.y);
699
+ }
584
700
  function distanceBetweenPoints(x1, y1, x2, y2) {
585
701
  const x = Math.pow(x1 - x2, 2);
586
702
  const y = Math.pow(y1 - y2, 2);
587
- return Math.sqrt(x + y);
703
+ return UInt16.from(Math.sqrt(x + y));
588
704
  }
589
705
  function lerp(origin, destination, time) {
590
706
  return {
591
- x: (1 - time) * origin.x + time * destination.x,
592
- y: (1 - time) * origin.y + time * destination.y,
707
+ x: (1 - time) * Number(origin.x) + time * Number(destination.x),
708
+ y: (1 - time) * Number(origin.y) + time * Number(destination.y),
593
709
  };
594
710
  }
595
711
  function rotation(origin, destination) {
596
712
  return Math.atan2(destination.y - origin.y, destination.x - origin.x) * (180 / Math.PI) + 90;
597
713
  }
598
- function hasPlanet(seed, coords) {
599
- const str = ['system', coords.x, coords.y].join('-');
600
- return String(hash(seed, str)).slice(0, 2) === '00';
714
+ function hasPlanet(seed, coordinates) {
715
+ const str = ['system', coordinates.x, coordinates.y].join('-');
716
+ return String(hash512(seed, str)).slice(0, 2) === '00';
601
717
  }
602
718
  function findNearbyPlanets(seed, origin, maxDistance = 20) {
603
719
  const nearbySystems = [];
604
- const xMin = origin.x - maxDistance;
605
- const xMax = origin.x + maxDistance;
606
- const yMin = origin.y - maxDistance;
607
- const yMax = origin.y + maxDistance;
608
- for (let x = xMin; x <= xMax; x++) {
609
- for (let y = yMin; y <= yMax; y++) {
720
+ const max = UInt16.from(maxDistance);
721
+ const xMin = Int64.from(origin.x).subtracting(max);
722
+ const xMax = Int64.from(origin.x).adding(max);
723
+ const yMin = Int64.from(origin.y).subtracting(max);
724
+ const yMax = Int64.from(origin.y).adding(max);
725
+ for (let x = Number(xMin); x <= Number(xMax); x++) {
726
+ for (let y = Number(yMin); y <= Number(yMax); y++) {
610
727
  const samePlace = x === origin.x && y === origin.y;
611
728
  if (!samePlace) {
612
729
  const distance = distanceBetweenPoints(origin.x, origin.y, x, y);
613
- if (distance <= maxDistance) {
730
+ if (Number(distance) <= Number(max)) {
614
731
  const system = hasPlanet(seed, { x, y });
615
732
  if (system) {
616
733
  nearbySystems.push({ origin, destination: { x, y }, distance });
@@ -731,8 +848,8 @@ function getGood(good_id) {
731
848
  }
732
849
 
733
850
  function roll(game_seed, roll_seed) {
734
- const byteArray = hashBytes(game_seed, roll_seed);
735
- return (byteArray[0] << 8) | byteArray[1];
851
+ const hash = hash512(game_seed, roll_seed);
852
+ return (hash.array[0] << 8) | hash.array[1];
736
853
  }
737
854
 
738
855
  async function marketprice(location, good_id, gameSeed, epochSeed) {
@@ -797,22 +914,44 @@ const INSUFFICIENT_GOOD_QUANTITY = 'Insufficient good quantity';
797
914
  const REQUIRES_MORE_THAN_ONE = 'Requires more than one';
798
915
 
799
916
  class Shipload {
800
- constructor(chain, { client, serverContract }) {
917
+ constructor(chain, { client, platformContract, serverContract }) {
801
918
  this.client = client || new APIClient({ url: chain.url });
919
+ this.platform = platformContract
920
+ ? platformContract
921
+ : new Contract$1({ client: this.client });
802
922
  this.server = serverContract
803
923
  ? serverContract
804
924
  : new Contract({ client: this.client });
805
925
  }
806
926
  static async load(chain, shiploadOptions) {
927
+ let platform$1 = new Contract$1({
928
+ client: new APIClient({ url: chain.url }),
929
+ });
930
+ if (shiploadOptions.platformContractName) {
931
+ const client = shiploadOptions.client || new APIClient({ url: chain.url });
932
+ const contractKit = new ContractKit({ client });
933
+ platform$1 = await contractKit.load(shiploadOptions.platformContractName);
934
+ }
807
935
  let server$1 = new Contract({
808
936
  client: new APIClient({ url: chain.url }),
809
937
  });
810
- if (shiploadOptions.contractName) {
938
+ if (shiploadOptions.serverContractName) {
811
939
  const client = shiploadOptions.client || new APIClient({ url: chain.url });
812
940
  const contractKit = new ContractKit({ client });
813
- server$1 = await contractKit.load(shiploadOptions.contractName);
941
+ server$1 = await contractKit.load(shiploadOptions.serverContractName);
942
+ }
943
+ return new Shipload(chain, {
944
+ ...shiploadOptions,
945
+ platformContract: platform$1,
946
+ serverContract: server$1,
947
+ });
948
+ }
949
+ async getGame() {
950
+ const game = await this.platform.table('games').get();
951
+ if (!game) {
952
+ throw new Error(ERROR_SYSTEM_NOT_INITIALIZED);
814
953
  }
815
- return new Shipload(chain, { ...shiploadOptions, serverContract: server$1 });
954
+ return game;
816
955
  }
817
956
  async getState() {
818
957
  const state = await this.server.table('state').get();
@@ -822,14 +961,16 @@ class Shipload {
822
961
  return state;
823
962
  }
824
963
  async marketprice(location, good_id) {
825
- const { seed, epochseed } = await this.getState();
826
- return marketprice(location, good_id, seed, epochseed);
964
+ const game = await this.getGame();
965
+ const state = await this.getState();
966
+ return marketprice(location, good_id, game.config.seed, state.seed);
827
967
  }
828
968
  async marketprices(location) {
829
- const { seed, epochseed } = await this.getState();
830
- return marketprices(location, seed, epochseed);
969
+ const game = await this.getGame();
970
+ const state = await this.getState();
971
+ return marketprices(location, game.config.seed, state.seed);
831
972
  }
832
973
  }
833
974
 
834
- export { ERROR_SYSTEM_NOT_INITIALIZED, GOOD_DOES_NOT_EXIST, GOOD_NOT_AVAILABLE_AT_LOCATION, INSUFFICIENT_BALANCE, INSUFFICIENT_GOOD_QUANTITY, PLAYER_NOT_FOUND, platform as PlatformContract, REQUIRES_MORE_THAN_ONE, SHIP_CANNOT_BUY_TRAVELING, SHIP_NOT_FOUND, server as ServerContract, Shipload as default, distanceBetweenPoints, distanceTraveled, findNearbyPlanets, getGood, goods, hasPlanet, hash, hashBytes, lerp, marketprice, marketprices, priceFromRoll, rotation };
975
+ export { ERROR_SYSTEM_NOT_INITIALIZED, GOOD_DOES_NOT_EXIST, GOOD_NOT_AVAILABLE_AT_LOCATION, INSUFFICIENT_BALANCE, INSUFFICIENT_GOOD_QUANTITY, PLAYER_NOT_FOUND, platform as PlatformContract, REQUIRES_MORE_THAN_ONE, SHIP_CANNOT_BUY_TRAVELING, SHIP_NOT_FOUND, server as ServerContract, Shipload as default, distanceBetweenCoordinates, distanceBetweenPoints, distanceTraveled, findNearbyPlanets, getCurrentEpoch, getGood, goods, hasPlanet, hash, hash512, lerp, marketprice, marketprices, priceFromRoll, rotation };
835
976
  //# sourceMappingURL=shipload.m.js.map