@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.js CHANGED
@@ -10,7 +10,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
10
10
 
11
11
  var ContractKit__default = /*#__PURE__*/_interopDefaultLegacy(ContractKit);
12
12
 
13
- const abiBlob$1 = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAAcKY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/C2NvbXBhbnlfcm93AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAxmb3VuZGNvbXBhbnkAAgdhY2NvdW50BG5hbWUEbmFtZQZzdHJpbmcJc3RhdGVfcm93AAEHZW5hYmxlZARib29sBHRlc3QAAQRkYXRhBnN0cmluZwR3aXBlAAAFAICKx+RrVEQKY2xlYXJ0YWJsZQAAAAAAqHjMVAZlbmFibGXzAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBlbmFibGUKc3VtbWFyeTogJ0VuYWJsZS9kaXNhYmxlIHBsYXRmb3JtJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKRW5hYmxlIG9yIGRpc2FibGUgdGhlIHBsYXRmb3JtIGNvbnRyYWN0LuCnqZKiNDVdDGZvdW5kY29tcGFueYMCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGZvdW5kY29tcGFueQpzdW1tYXJ5OiAnRm91bmQgYSBuZXcgY29tcGFueScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE1ODExMzc4MiNkM2JmMjkwZmRkZWRkYmI3ZDMyYWE4OTdlOWY3ZTllMTNhMmFlNDQ5NTYxNDJlMjNlYjQ3Yjc3MDk2YTJlYThkCgotLS0KCkZvdW5kIGEgbmV3IGNvbXBhbnkgaW4gdGhlIFNoaXBsb2FkIHBsYXRmb3JtIGNvbnRyYWN0LgAAAAAAkLHKBHRlc3QAAAAAAACgquMEd2lwZQACAAAAwE9TJUUDaTY0AAALY29tcGFueV9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cBE1NoaXBsb2FkIChQbGF0Zm9ybSkTU2hpcGxvYWQgKFBsYXRmb3JtKQAAAAA=');
13
+ const abiBlob$1 = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAA0KY2xlYXJ0YWJsZQADCnRhYmxlX25hbWUEbmFtZQVzY29wZQVuYW1lPwhtYXhfcm93cwd1aW50NjQ/C2NvbXBhbnlfcm93AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nBmVuYWJsZQABB2VuYWJsZWQEYm9vbAplbmFibGVnYW1lAAIIY29udHJhY3QEbmFtZQdlbmFibGVkBGJvb2wMZm91bmRjb21wYW55AAIHYWNjb3VudARuYW1lBG5hbWUGc3RyaW5nC2dhbWVfY29uZmlnAAIEc2VlZAtjaGVja3N1bTI1NgllcG9jaHRpbWUGdWludDMyCWdhbWVfbWV0YQAEBG5hbWUGc3RyaW5nC2Rlc2NyaXB0aW9uBnN0cmluZwN1cmwGc3RyaW5nB3ZlcnNpb24Gc3RyaW5nCGdhbWVfcm93AAQIY29udHJhY3QEbmFtZQZjb25maWcLZ2FtZV9jb25maWcEbWV0YQlnYW1lX21ldGEFc3RhdGUKZ2FtZV9zdGF0ZQpnYW1lX3N0YXRlAAMHZW5hYmxlZARib29sBXN0YXJ0DnRpbWVfcG9pbnRfc2VjA2VuZA50aW1lX3BvaW50X3NlYwlzdGFydGdhbWUABAhjb250cmFjdARuYW1lBmNvbmZpZwtnYW1lX2NvbmZpZwRtZXRhCWdhbWVfbWV0YQVzdGF0ZQpnYW1lX3N0YXRlCXN0YXRlX3JvdwABB2VuYWJsZWQEYm9vbAp1cGRhdGVnYW1lAAIIY29udHJhY3QEbmFtZQRtZXRhCWdhbWVfbWV0YQR3aXBlAAAHAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAACoeMxUBmVuYWJsZfMBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnRW5hYmxlL2Rpc2FibGUgcGxhdGZvcm0nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGUgcGxhdGZvcm0gY29udHJhY3QuAICShql4zFQKZW5hYmxlZ2FtZfwBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZWdhbWUKc3VtbWFyeTogJ0VuYWJsZS9kaXNiYWJsZSBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpFbmFibGUgb3IgZGlzYWJsZSB0aGUgc3BlY2lmaWVkIGdhbWUgY29udHJhY3Qu4KepkqI0NV0MZm91bmRjb21wYW55gwItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogZm91bmRjb21wYW55CnN1bW1hcnk6ICdGb3VuZCBhIG5ldyBjb21wYW55JwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKRm91bmQgYSBuZXcgY29tcGFueSBpbiB0aGUgU2hpcGxvYWQgcGxhdGZvcm0gY29udHJhY3QuAABQ0rB8TcYJc3RhcnRnYW1l/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc3RhcnRnYW1lCnN1bW1hcnk6ICdTdGFydCBhIG5ldyBnYW1lJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTU4MTEzNzgyI2QzYmYyOTBmZGRlZGRiYjdkMzJhYTg5N2U5ZjdlOWUxM2EyYWU0NDk1NjE0MmUyM2ViNDdiNzcwOTZhMmVhOGQKCi0tLQoKU3RhcnQgYSBuZXcgZ2FtZSBvZiBTaGlwbG9hZCBkZXBsb3llZCB0byBhIG5ldyBjb250cmFjdC4AgJKGqWxS1Qp1cGRhdGVnYW1ljQItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdXBkYXRlZ2FtZQpzdW1tYXJ5OiAnVXBkYXRlIGdhbWUgaW5mb3JtYXRpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNTgxMTM3ODIjZDNiZjI5MGZkZGVkZGJiN2QzMmFhODk3ZTlmN2U5ZTEzYTJhZTQ0OTU2MTQyZTIzZWI0N2I3NzA5NmEyZWE4ZAoKLS0tCgpVcGRhdGUgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzcGVjaWZpZWQgZ2FtZSBjb250cmFjdC4KCi0tLQAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0DAAAAwE9TJUUDaTY0AAALY29tcGFueV9yb3cAAAAAAKykYQNpNjQAAAhnYW1lX3JvdwAAAAAAlU3GA2k2NAAACXN0YXRlX3JvdwETU2hpcGxvYWQgKFBsYXRmb3JtKRNTaGlwbG9hZCAoUGxhdGZvcm0pAAAAAA==');
14
14
  const abi$1 = antelope.ABI.from(abiBlob$1);
15
15
  var Types$1;
16
16
  (function (Types) {
@@ -50,6 +50,18 @@ var Types$1;
50
50
  antelope.Struct.type('enable')
51
51
  ], enable);
52
52
  Types.enable = enable;
53
+ let enablegame = class enablegame extends antelope.Struct {
54
+ };
55
+ tslib.__decorate([
56
+ antelope.Struct.field(antelope.Name)
57
+ ], enablegame.prototype, "contract", void 0);
58
+ tslib.__decorate([
59
+ antelope.Struct.field('bool')
60
+ ], enablegame.prototype, "enabled", void 0);
61
+ enablegame = tslib.__decorate([
62
+ antelope.Struct.type('enablegame')
63
+ ], enablegame);
64
+ Types.enablegame = enablegame;
53
65
  let foundcompany = class foundcompany extends antelope.Struct {
54
66
  };
55
67
  tslib.__decorate([
@@ -62,6 +74,87 @@ var Types$1;
62
74
  antelope.Struct.type('foundcompany')
63
75
  ], foundcompany);
64
76
  Types.foundcompany = foundcompany;
77
+ let game_config = class game_config extends antelope.Struct {
78
+ };
79
+ tslib.__decorate([
80
+ antelope.Struct.field(antelope.Checksum256)
81
+ ], game_config.prototype, "seed", void 0);
82
+ tslib.__decorate([
83
+ antelope.Struct.field(antelope.UInt32)
84
+ ], game_config.prototype, "epochtime", void 0);
85
+ game_config = tslib.__decorate([
86
+ antelope.Struct.type('game_config')
87
+ ], game_config);
88
+ Types.game_config = game_config;
89
+ let game_meta = class game_meta extends antelope.Struct {
90
+ };
91
+ tslib.__decorate([
92
+ antelope.Struct.field('string')
93
+ ], game_meta.prototype, "name", void 0);
94
+ tslib.__decorate([
95
+ antelope.Struct.field('string')
96
+ ], game_meta.prototype, "description", void 0);
97
+ tslib.__decorate([
98
+ antelope.Struct.field('string')
99
+ ], game_meta.prototype, "url", void 0);
100
+ tslib.__decorate([
101
+ antelope.Struct.field('string')
102
+ ], game_meta.prototype, "version", void 0);
103
+ game_meta = tslib.__decorate([
104
+ antelope.Struct.type('game_meta')
105
+ ], game_meta);
106
+ Types.game_meta = game_meta;
107
+ let game_state = class game_state extends antelope.Struct {
108
+ };
109
+ tslib.__decorate([
110
+ antelope.Struct.field('bool')
111
+ ], game_state.prototype, "enabled", void 0);
112
+ tslib.__decorate([
113
+ antelope.Struct.field(antelope.TimePointSec)
114
+ ], game_state.prototype, "start", void 0);
115
+ tslib.__decorate([
116
+ antelope.Struct.field(antelope.TimePointSec)
117
+ ], game_state.prototype, "end", void 0);
118
+ game_state = tslib.__decorate([
119
+ antelope.Struct.type('game_state')
120
+ ], game_state);
121
+ Types.game_state = game_state;
122
+ let game_row = class game_row extends antelope.Struct {
123
+ };
124
+ tslib.__decorate([
125
+ antelope.Struct.field(antelope.Name)
126
+ ], game_row.prototype, "contract", void 0);
127
+ tslib.__decorate([
128
+ antelope.Struct.field(game_config)
129
+ ], game_row.prototype, "config", void 0);
130
+ tslib.__decorate([
131
+ antelope.Struct.field(game_meta)
132
+ ], game_row.prototype, "meta", void 0);
133
+ tslib.__decorate([
134
+ antelope.Struct.field(game_state)
135
+ ], game_row.prototype, "state", void 0);
136
+ game_row = tslib.__decorate([
137
+ antelope.Struct.type('game_row')
138
+ ], game_row);
139
+ Types.game_row = game_row;
140
+ let startgame = class startgame extends antelope.Struct {
141
+ };
142
+ tslib.__decorate([
143
+ antelope.Struct.field(antelope.Name)
144
+ ], startgame.prototype, "contract", void 0);
145
+ tslib.__decorate([
146
+ antelope.Struct.field(game_config)
147
+ ], startgame.prototype, "config", void 0);
148
+ tslib.__decorate([
149
+ antelope.Struct.field(game_meta)
150
+ ], startgame.prototype, "meta", void 0);
151
+ tslib.__decorate([
152
+ antelope.Struct.field(game_state)
153
+ ], startgame.prototype, "state", void 0);
154
+ startgame = tslib.__decorate([
155
+ antelope.Struct.type('startgame')
156
+ ], startgame);
157
+ Types.startgame = startgame;
65
158
  let state_row = class state_row extends antelope.Struct {
66
159
  };
67
160
  tslib.__decorate([
@@ -71,15 +164,18 @@ var Types$1;
71
164
  antelope.Struct.type('state_row')
72
165
  ], state_row);
73
166
  Types.state_row = state_row;
74
- let test = class test extends antelope.Struct {
167
+ let updategame = class updategame extends antelope.Struct {
75
168
  };
76
169
  tslib.__decorate([
77
- antelope.Struct.field('string')
78
- ], test.prototype, "data", void 0);
79
- test = tslib.__decorate([
80
- antelope.Struct.type('test')
81
- ], test);
82
- Types.test = test;
170
+ antelope.Struct.field(antelope.Name)
171
+ ], updategame.prototype, "contract", void 0);
172
+ tslib.__decorate([
173
+ antelope.Struct.field(game_meta)
174
+ ], updategame.prototype, "meta", void 0);
175
+ updategame = tslib.__decorate([
176
+ antelope.Struct.type('updategame')
177
+ ], updategame);
178
+ Types.updategame = updategame;
83
179
  let wipe = class wipe extends antelope.Struct {
84
180
  };
85
181
  wipe = tslib.__decorate([
@@ -89,6 +185,7 @@ var Types$1;
89
185
  })(Types$1 || (Types$1 = {}));
90
186
  const TableMap$1 = {
91
187
  company: Types$1.company_row,
188
+ games: Types$1.game_row,
92
189
  state: Types$1.state_row,
93
190
  };
94
191
  class Contract$1 extends ContractKit.Contract {
@@ -116,12 +213,18 @@ var platform = /*#__PURE__*/Object.freeze({
116
213
  Contract: Contract$1
117
214
  });
118
215
 
119
- const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yABwHYWR2YW5jZQAABmFycml2ZQACBW93bmVyBG5hbWUCaWQGdWludDY0CGJ1eWdvb2RzAAMHc2hpcF9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CWNhcmdvX3JvdwAFAmlkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQGbG9hZGVkBnVpbnQ2NApjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8LY29vcmRpbmF0ZXMAAgF4BWludDY0AXkFaW50NjQGZW5hYmxlAAEHZW5hYmxlZARib29sCWVzdHRyYXZlbAACAmlkBnVpbnQ2NAtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwpnb29kX3ByaWNlAAICaWQGdWludDE2BXByaWNlBnVpbnQ2NARoYXNoAAEFdmFsdWUGc3RyaW5nBGluaXQAAgRzZWVkC2NoZWNrc3VtMjU2CWVwb2Noc2VlZAtjaGVja3N1bTI1NgRqb2luAAEHYWNjb3VudARuYW1lDGxvYWRlcl9zdGF0cwAECGNhcGFjaXR5BnVpbnQxNgRtYXNzBnVpbnQzMghxdWFudGl0eQZ1aW50MTYGdGhydXN0BnVpbnQzMgttYXJrZXRwcmljZQACCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB2dvb2RfaWQGdWludDE2DG1hcmtldHByaWNlcwABCGxvY2F0aW9uC2Nvb3JkaW5hdGVzCnBsYXllcl9yb3cAAwVvd25lcgRuYW1lB2JhbGFuY2UGdWludDY0BGRlYnQGdWludDY0CXNlbGxnb29kcwADB3NoaXBfaWQGdWludDY0B2dvb2RfaWQGdWludDY0CHF1YW50aXR5BnVpbnQ2NAxzZXF1ZW5jZV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQZ1aW50NjQIc2hpcF9yb3cACgJpZAZ1aW50NjQFb3duZXIEbmFtZQRuYW1lBnN0cmluZwhsb2NhdGlvbgtjb29yZGluYXRlcwRza2luBXVpbnQ4BHRpZXIFdWludDgFc3RhdGUKc2hpcF9zdGF0ZQVzdGF0cwpzaGlwX3N0YXRzB2xvYWRlcnMMbG9hZGVyX3N0YXRzCnRyYXZlbHBsYW4MdHJhdmVsX3BsYW4/CnNoaXBfc3RhdGUAAQZlbmVyZ3kGdWludDMyCnNoaXBfc3RhdHMABghjYXBhY2l0eQZ1aW50MzIFZHJhaW4GdWludDMyBG1hc3MGdWludDY0BW9yYml0BnVpbnQxNghyZWNoYXJnZQZ1aW50MzIGdGhydXN0BnVpbnQ2NAlzdGF0ZV9yb3cABQdlbmFibGVkBGJvb2wFZXBvY2gGdWludDY0CWVwb2Noc2VlZAtjaGVja3N1bTI1NgdnZW5lc2lzFGJsb2NrX3RpbWVzdGFtcF90eXBlBHNlZWQLY2hlY2tzdW0yNTYLc3VtbWFyeV9yb3cAAgNrZXkEbmFtZQV2YWx1ZQ50cmF2ZWxfc3VtbWFyeQR0ZXN0AAEEZGF0YQZzdHJpbmcGdHJhdmVsAAQFb3duZXIEbmFtZQJpZAZ1aW50NjQLZGVzdGluYXRpb24LY29vcmRpbmF0ZXMIcmVjaGFyZ2UEYm9vbAt0cmF2ZWxfcGxhbgADC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCWRlcGFydHVyZQp0aW1lX3BvaW50CGR1cmF0aW9uBnVpbnQzMg50cmF2ZWxfc3VtbWFyeQAMBXN0YXRzCnNoaXBfc3RhdHMHbG9hZGVycwxsb2FkZXJfc3RhdHMGb3JpZ2luC2Nvb3JkaW5hdGVzC2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCGRpc3RhbmNlBnVpbnQ2NAl0b3RhbG1hc3MGdWludDY0DGFjY2VsZXJhdGlvbgZ1aW50NjQKZmxpZ2h0dGltZQZ1aW50NjQLZW5lcmd5dXNhZ2UGdWludDY0DHJlY2hhcmdldGltZQZ1aW50NjQIbG9hZHRpbWUGdWludDY0BHRpbWUGdWludDY0BHdpcGUAAA8AAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAKjt7jUGYXJyaXZlswItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYXJyaXZlCnN1bW1hcnk6ICdDb21wbGV0ZSB0cmF2ZWwnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbXBsZXRlIHRoZSB0cmF2ZWwgb2YgYSBzaGlwIGJ5IHVwZGF0aW5nIGl0cyBsb2NhdGlvbiB0byB0aGUgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgYWZ0ZXIgdGhlIHRyYXZlbCBkdXJhdGlvbiBoYXMgcGFzc2VkLgoKLS0tAAAAOFHKvD4IYnV5Z29vZHPdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBidXlnb29kcwpzdW1tYXJ5OiAnQnV5IGdvb2RzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBnb29kcyBhbmQgYWRkIHRoZW0gdG8gYSBzaGlwJ3MgY2FyZ28uAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAACoeMxUBmVuYWJsZeIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4KCi0tLQAAiGqbmzNWCWVzdHRyYXZlbAAAAAAAANCwaQRoYXNo6gEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaApzdW1tYXJ5OiAnQ2FsY3VsYXRlIGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIGhhc2ggb2YgYSBzdHJpbmcgYmFzZWQgdXNpbmcgdGhlIGdhbWUgc2VlZC4AAAAAAJDddARpbml0/wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaW5pdApzdW1tYXJ5OiAnSW5pdGlhbGl6ZSBnYW1lIHNlZWQnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYWxpemUgYSB0aGUgZ2FtZXMgc2VlZCBhbmQgZXBvY2hzZWVkIHZhbHVlcyB0byBib290c3RyYXAgZ2FtZSBzdGF0ZS4AAAAAADAdfQRqb2luyQEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogam9pbgpzdW1tYXJ5OiAnSm9pbiBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpvaW4gYSBnYW1lIG9mIFNoaXBsb2FkCgotLS0AFHK3ZgWvkQttYXJrZXRwcmljZZsCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG1hcmtldHByaWNlCnN1bW1hcnk6ICdHZXQgcHJpY2Ugb2YgZ29vZCBhdCBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGEgc3BlY2lmaWVkIGdvb2QgYXQgYSBnaXZlbiBsb2NhdGlvbi4KCi0tLYAVcrdmBa+RDG1hcmtldHByaWNlc5UCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG1hcmtldHByaWNlcwpzdW1tYXJ5OiAnR2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgAAwIlSFqPCCXNlbGxnb29kc9UBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHNlbGxnb29kcwpzdW1tYXJ5OiAnU2VsbCBnb29kcycKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2VsbCBnb29kcyBmcm9tIGEgc2hpcCdzIGNhcmdvLgoKLS0tAAAAAACQscoEdGVzdLIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRlc3QKc3VtbWFyeTogJ0RFQlVHOiB0ZXN0IGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABEtc3NBnRyYXZlbP0BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHRyYXZlbApzdW1tYXJ5OiAnTW92ZSBhIHNoaXAnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkluaXRpYXRlIHRyYXZlbCBvZiBhIHNoaXAgZnJvbSBpdHMgY3VycmVudCBsb2NhdGlvbiB0byBhIG5ldyBkZXN0aW5hdGlvbi4KCi0tLQAAAAAAoKrjBHdpcGWyAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB3aXBlCnN1bW1hcnk6ICdERUJVRzogd2lwZSBhY3Rpb24nCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0GAAAAAADKrkEDaTY0AAAJY2FyZ29fcm93AAAAAFzlTawDaTY0AAAKcGxheWVyX3JvdwAAAApNpa3CA2k2NAAADHNlcXVlbmNlX3JvdwAAAAAAUF3DA2k2NAAACHNoaXBfcm93AAAAAACVTcYDaTY0AAAJc3RhdGVfcm93AAAAwF8jpcYDaTY0AAALc3VtbWFyeV9yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAABAAAiGqbmzNWDnRyYXZlbF9zdW1tYXJ5AAAAAADQsGkLY2hlY2tzdW01MTIAFHK3ZgWvkQpnb29kX3ByaWNlgBVyt2YFr5EMZ29vZF9wcmljZVtd');
216
+ const abiBlob = antelope.Blob.from('DmVvc2lvOjphYmkvMS4yAB0HYWR2YW5jZQACBnJldmVhbAZzdHJpbmcGY29tbWl0C2NoZWNrc3VtMjU2BmFycml2ZQACBW93bmVyBG5hbWUCaWQGdWludDY0CGJ1eWdvb2RzAAMHc2hpcF9pZAZ1aW50NjQHZ29vZF9pZAZ1aW50NjQIcXVhbnRpdHkGdWludDY0CWNhcmdvX3JvdwAFAmlkBnVpbnQ2NAdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50MTYGbG9hZGVkBnVpbnQxNgpjbGVhcnRhYmxlAAMKdGFibGVfbmFtZQRuYW1lBXNjb3BlBW5hbWU/CG1heF9yb3dzB3VpbnQ2ND8GY29tbWl0AAEGY29tbWl0C2NoZWNrc3VtMjU2C2Nvb3JkaW5hdGVzAAIBeAVpbnQ2NAF5BWludDY0BmVuYWJsZQABB2VuYWJsZWQEYm9vbApnb29kX3ByaWNlAAICaWQGdWludDE2BXByaWNlBnVpbnQ2NARoYXNoAAEFdmFsdWUGc3RyaW5nB2hhc2g1MTIAAQV2YWx1ZQZzdHJpbmcEaW5pdAABBHNlZWQLY2hlY2tzdW0yNTYEam9pbgABB2FjY291bnQEbmFtZQxsb2FkZXJfc3RhdHMAAwRtYXNzBnVpbnQzMghxdWFudGl0eQZ1aW50MTYGdGhydXN0BnVpbnQzMgttYXJrZXRwcmljZQACCGxvY2F0aW9uC2Nvb3JkaW5hdGVzB2dvb2RfaWQGdWludDE2DG1hcmtldHByaWNlcwABCGxvY2F0aW9uC2Nvb3JkaW5hdGVzCnBsYXllcl9yb3cAAwVvd25lcgRuYW1lB2JhbGFuY2UGdWludDY0BGRlYnQGdWludDY0BHNhbHQAAQRzYWx0BnVpbnQ2NAlzZWxsZ29vZHMAAwdzaGlwX2lkBnVpbnQ2NAdnb29kX2lkBnVpbnQ2NAhxdWFudGl0eQZ1aW50NjQMc2VxdWVuY2Vfcm93AAIDa2V5BG5hbWUFdmFsdWUGdWludDY0CHNoaXBfcm93AAoCaWQGdWludDY0BW93bmVyBG5hbWUEbmFtZQZzdHJpbmcIbG9jYXRpb24LY29vcmRpbmF0ZXMEc2tpbgV1aW50OAR0aWVyBXVpbnQ4BXN0YXRlCnNoaXBfc3RhdGUFc3RhdHMKc2hpcF9zdGF0cwdsb2FkZXJzDGxvYWRlcl9zdGF0cwp0cmF2ZWxwbGFuDHRyYXZlbF9wbGFuPwpzaGlwX3N0YXRlAAEGZW5lcmd5BnVpbnQzMgpzaGlwX3N0YXRzAAYIY2FwYWNpdHkGdWludDMyBWRyYWluBnVpbnQzMgRtYXNzBnVpbnQ2NAVvcmJpdAZ1aW50MTYIcmVjaGFyZ2UGdWludDMyBnRocnVzdAZ1aW50NjQJc3RhdGVfcm93AAYHZW5hYmxlZARib29sBWVwb2NoBnVpbnQ2NARzYWx0BnVpbnQ2NARzZWVkC2NoZWNrc3VtMjU2BmNvbW1pdAtjaGVja3N1bTI1NgdnZW5lc2lzFGJsb2NrX3RpbWVzdGFtcF90eXBlBnRyYXZlbAAEBW93bmVyBG5hbWUCaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzCHJlY2hhcmdlBGJvb2wLdHJhdmVsX3BsYW4AAwtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwlkZXBhcnR1cmUKdGltZV9wb2ludAhkdXJhdGlvbgZ1aW50MzIOdHJhdmVsX3N1bW1hcnkADAVzdGF0cwpzaGlwX3N0YXRzB2xvYWRlcnMMbG9hZGVyX3N0YXRzBm9yaWdpbgtjb29yZGluYXRlcwtkZXN0aW5hdGlvbgtjb29yZGluYXRlcwhkaXN0YW5jZQZ1aW50NjQJdG90YWxtYXNzBnVpbnQ2NAxhY2NlbGVyYXRpb24GdWludDY0CmZsaWdodHRpbWUGdWludDY0C2VuZXJneXVzYWdlBnVpbnQ2NAxyZWNoYXJnZXRpbWUGdWludDY0CGxvYWR0aW1lBnVpbnQ2NAR0aW1lBnVpbnQ2NAp0cmF2ZWx0aW1lAAICaWQGdWludDY0C2Rlc3RpbmF0aW9uC2Nvb3JkaW5hdGVzBHdpcGUAABEAAABAoWl2MgdhZHZhbmNl0wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYWR2YW5jZQpzdW1tYXJ5OiAnQWR2YW5jZSB0dXJuJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpBZHZhbmNlIHRoZSBnYW1lIHRvIHRoZSBuZXh0IHR1cm4uAAAAAKjt7jUGYXJyaXZlswItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogYXJyaXZlCnN1bW1hcnk6ICdDb21wbGV0ZSB0cmF2ZWwnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNvbXBsZXRlIHRoZSB0cmF2ZWwgb2YgYSBzaGlwIGJ5IHVwZGF0aW5nIGl0cyBsb2NhdGlvbiB0byB0aGUgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgYWZ0ZXIgdGhlIHRyYXZlbCBkdXJhdGlvbiBoYXMgcGFzc2VkLgoKLS0tAAAAOFHKvD4IYnV5Z29vZHPdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBidXlnb29kcwpzdW1tYXJ5OiAnQnV5IGdvb2RzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpQdXJjaGFzZSBnb29kcyBhbmQgYWRkIHRoZW0gdG8gYSBzaGlwJ3MgY2FyZ28uAICKx+RrVEQKY2xlYXJ0YWJsZb4BLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNsZWFydGFibGUKc3VtbWFyeTogJ0RFQlVHOiBjbGVhcnRhYmxlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQAAAABkJyVFBmNvbW1pdPEBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGNvbW1pdApzdW1tYXJ5OiAnU2V0IGNvbW1pdCB2YWx1ZScKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKU2V0IHRoZSBpbml0aWFsIGNvbW1pdCB2YWx1ZSBkdXJpbmcgZ2FtZSBpbml0aWFsaXphdGlvbi4KCi0tLQAAAACoeMxUBmVuYWJsZeIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IGVuYWJsZQpzdW1tYXJ5OiAnU2V0IGVuYWJsZWQgc3RhdGUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVuYWJsZSBvciBkaXNhYmxlIHRoaXMgZ2FtZSBvZiBTaGlwbG9hZC4KCi0tLQAAAAAA0LBpBGhhc2j9AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBoYXNoCnN1bW1hcnk6ICdDYWxjdWxhdGUgc2hhMjU2IGhhc2gnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkNhbGN1bGF0ZXMgdGhlIHNoYTI1NiBoYXNoIG9mIGEgc3RyaW5nIGJhc2VkIHVzaW5nIHRoZSBnYW1lIHNlZWQuCgotLS0AAABAhNKwaQdoYXNoNTEy+wEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogaGFzaDUxMgpzdW1tYXJ5OiAnQ2FsY3VsYXRlIHNoYTUxMiBoYXNoJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpDYWxjdWxhdGVzIHRoZSBzaGE1MTIgaGFzaCBvZiBhIHN0cmluZyBiYXNlZCB1c2luZyB0aGUgZ2FtZSBzZWVkLgAAAAAAkN10BGluaXT6AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBpbml0CnN1bW1hcnk6ICdJbml0aWFsaXplIGdhbWUgc2VlZCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKSW5pdGlhbGl6ZSBhIHRoZSBnYW1lcyBzZWVkIGFuZCBzZWVkIHZhbHVlcyB0byBib290c3RyYXAgZ2FtZSBzdGF0ZS4AAAAAADAdfQRqb2luyQEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogam9pbgpzdW1tYXJ5OiAnSm9pbiBhIGdhbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkpvaW4gYSBnYW1lIG9mIFNoaXBsb2FkCgotLS0AFHK3ZgWvkQttYXJrZXRwcmljZZsCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG1hcmtldHByaWNlCnN1bW1hcnk6ICdHZXQgcHJpY2Ugb2YgZ29vZCBhdCBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGEgc3BlY2lmaWVkIGdvb2QgYXQgYSBnaXZlbiBsb2NhdGlvbi4KCi0tLYAVcrdmBa+RDG1hcmtldHByaWNlc5UCLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IG1hcmtldHByaWNlcwpzdW1tYXJ5OiAnR2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBsb2NhdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKVGhpcyBhY3Rpb24gZGV0ZXJtaW5lcyB0aGUgbWFya2V0IHByaWNlIG9mIGFsbCBnb29kcyBhdCBhIGdpdmVuIGxvY2F0aW9uLgAAAAAAkKPBBHNhbHTdAS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiBzYWx0CnN1bW1hcnk6ICdBcHBlbmQgU2FsdCcKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQoKQWRkIGFkZGl0aW9uYWwgc2FsdCB0byB0aGUgbmV4dCBlcG9jaCBzZWVkLgoKLS0tAADAiVIWo8IJc2VsbGdvb2Rz1QEtLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogc2VsbGdvb2RzCnN1bW1hcnk6ICdTZWxsIGdvb2RzJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpTZWxsIGdvb2RzIGZyb20gYSBzaGlwJ3MgY2FyZ28uCgotLS0AAAAARLXNzQZ0cmF2ZWz9AS0tLQoKc3BlY192ZXJzaW9uOiAiMC4yLjAiCnRpdGxlOiB0cmF2ZWwKc3VtbWFyeTogJ01vdmUgYSBzaGlwJwppY29uOiBodHRwczovL2F2YXRhcnMuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTQ3MjkyODYxP3M9NDAwJnU9M2IxYWY2NmU5MGRkODUxZjRkN2MwOTZlZDZhMmZiYjRiOWUxOTBkYQoKLS0tCgpJbml0aWF0ZSB0cmF2ZWwgb2YgYSBzaGlwIGZyb20gaXRzIGN1cnJlbnQgbG9jYXRpb24gdG8gYSBuZXcgZGVzdGluYXRpb24uCgotLS0AgJIuR7XNzQp0cmF2ZWx0aW1ljAItLS0KCnNwZWNfdmVyc2lvbjogIjAuMi4wIgp0aXRsZTogdHJhdmVsdGltZQpzdW1tYXJ5OiAnRXN0aW1hdGUgVHJhdmVsIFRpbWUnCmljb246IGh0dHBzOi8vYXZhdGFycy5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNDcyOTI4NjE/cz00MDAmdT0zYjFhZjY2ZTkwZGQ4NTFmNGQ3YzA5NmVkNmEyZmJiNGI5ZTE5MGRhCgotLS0KCkVzdGltYXRlIHRoZSBkdXJhdGlvbiBvZiBhIHNoaXAgdHJhdmVsaW5nIHdpdGhvdXQgY29tbWl0dGluZyB0byB0aGUgYWN0aW9uLgoKLS0tAAAAAACgquMEd2lwZbIBLS0tCgpzcGVjX3ZlcnNpb246ICIwLjIuMCIKdGl0bGU6IHdpcGUKc3VtbWFyeTogJ0RFQlVHOiB3aXBlIGFjdGlvbicKaWNvbjogaHR0cHM6Ly9hdmF0YXJzLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE0NzI5Mjg2MT9zPTQwMCZ1PTNiMWFmNjZlOTBkZDg1MWY0ZDdjMDk2ZWQ2YTJmYmI0YjllMTkwZGEKCi0tLQUAAAAAAMquQQNpNjQAAAljYXJnb19yb3cAAAAAXOVNrANpNjQAAApwbGF5ZXJfcm93AAAACk2lrcIDaTY0AAAMc2VxdWVuY2Vfcm93AAAAAABQXcMDaTY0AAAIc2hpcF9yb3cAAAAAAJVNxgNpNjQAAAlzdGF0ZV9yb3cBEVNoaXBsb2FkIChTZXJ2ZXIpEVNoaXBsb2FkIChTZXJ2ZXIpAAAABQAAAAAA0LBpC2NoZWNrc3VtMjU2AAAAQITSsGkLY2hlY2tzdW01MTIAFHK3ZgWvkQpnb29kX3ByaWNlgBVyt2YFr5EMZ29vZF9wcmljZVtdAICSLke1zc0OdHJhdmVsX3N1bW1hcnk=');
120
217
  const abi = antelope.ABI.from(abiBlob);
121
218
  var Types;
122
219
  (function (Types) {
123
220
  let advance = class advance extends antelope.Struct {
124
221
  };
222
+ tslib.__decorate([
223
+ antelope.Struct.field('string')
224
+ ], advance.prototype, "reveal", void 0);
225
+ tslib.__decorate([
226
+ antelope.Struct.field(antelope.Checksum256)
227
+ ], advance.prototype, "commit", void 0);
125
228
  advance = tslib.__decorate([
126
229
  antelope.Struct.type('advance')
127
230
  ], advance);
@@ -165,10 +268,10 @@ var Types;
165
268
  antelope.Struct.field(antelope.UInt64)
166
269
  ], cargo_row.prototype, "good_id", void 0);
167
270
  tslib.__decorate([
168
- antelope.Struct.field(antelope.UInt64)
271
+ antelope.Struct.field(antelope.UInt16)
169
272
  ], cargo_row.prototype, "quantity", void 0);
170
273
  tslib.__decorate([
171
- antelope.Struct.field(antelope.UInt64)
274
+ antelope.Struct.field(antelope.UInt16)
172
275
  ], cargo_row.prototype, "loaded", void 0);
173
276
  cargo_row = tslib.__decorate([
174
277
  antelope.Struct.type('cargo_row')
@@ -189,6 +292,15 @@ var Types;
189
292
  antelope.Struct.type('cleartable')
190
293
  ], cleartable);
191
294
  Types.cleartable = cleartable;
295
+ let commit = class commit extends antelope.Struct {
296
+ };
297
+ tslib.__decorate([
298
+ antelope.Struct.field(antelope.Checksum256)
299
+ ], commit.prototype, "commit", void 0);
300
+ commit = tslib.__decorate([
301
+ antelope.Struct.type('commit')
302
+ ], commit);
303
+ Types.commit = commit;
192
304
  let coordinates = class coordinates extends antelope.Struct {
193
305
  };
194
306
  tslib.__decorate([
@@ -210,18 +322,6 @@ var Types;
210
322
  antelope.Struct.type('enable')
211
323
  ], enable);
212
324
  Types.enable = enable;
213
- let esttravel = class esttravel extends antelope.Struct {
214
- };
215
- tslib.__decorate([
216
- antelope.Struct.field(antelope.UInt64)
217
- ], esttravel.prototype, "id", void 0);
218
- tslib.__decorate([
219
- antelope.Struct.field(coordinates)
220
- ], esttravel.prototype, "destination", void 0);
221
- esttravel = tslib.__decorate([
222
- antelope.Struct.type('esttravel')
223
- ], esttravel);
224
- Types.esttravel = esttravel;
225
325
  let good_price = class good_price extends antelope.Struct {
226
326
  };
227
327
  tslib.__decorate([
@@ -243,14 +343,20 @@ var Types;
243
343
  antelope.Struct.type('hash')
244
344
  ], hash);
245
345
  Types.hash = hash;
346
+ let hash512 = class hash512 extends antelope.Struct {
347
+ };
348
+ tslib.__decorate([
349
+ antelope.Struct.field('string')
350
+ ], hash512.prototype, "value", void 0);
351
+ hash512 = tslib.__decorate([
352
+ antelope.Struct.type('hash512')
353
+ ], hash512);
354
+ Types.hash512 = hash512;
246
355
  let init = class init extends antelope.Struct {
247
356
  };
248
357
  tslib.__decorate([
249
358
  antelope.Struct.field(antelope.Checksum256)
250
359
  ], init.prototype, "seed", void 0);
251
- tslib.__decorate([
252
- antelope.Struct.field(antelope.Checksum256)
253
- ], init.prototype, "epochseed", void 0);
254
360
  init = tslib.__decorate([
255
361
  antelope.Struct.type('init')
256
362
  ], init);
@@ -266,9 +372,6 @@ var Types;
266
372
  Types.join = join;
267
373
  let loader_stats = class loader_stats extends antelope.Struct {
268
374
  };
269
- tslib.__decorate([
270
- antelope.Struct.field(antelope.UInt16)
271
- ], loader_stats.prototype, "capacity", void 0);
272
375
  tslib.__decorate([
273
376
  antelope.Struct.field(antelope.UInt32)
274
377
  ], loader_stats.prototype, "mass", void 0);
@@ -318,6 +421,15 @@ var Types;
318
421
  antelope.Struct.type('player_row')
319
422
  ], player_row);
320
423
  Types.player_row = player_row;
424
+ let salt = class salt extends antelope.Struct {
425
+ };
426
+ tslib.__decorate([
427
+ antelope.Struct.field(antelope.UInt64)
428
+ ], salt.prototype, "salt", void 0);
429
+ salt = tslib.__decorate([
430
+ antelope.Struct.type('salt')
431
+ ], salt);
432
+ Types.salt = salt;
321
433
  let sellgoods = class sellgoods extends antelope.Struct {
322
434
  };
323
435
  tslib.__decorate([
@@ -437,19 +549,40 @@ var Types;
437
549
  tslib.__decorate([
438
550
  antelope.Struct.field(antelope.UInt64)
439
551
  ], state_row.prototype, "epoch", void 0);
552
+ tslib.__decorate([
553
+ antelope.Struct.field(antelope.UInt64)
554
+ ], state_row.prototype, "salt", void 0);
555
+ tslib.__decorate([
556
+ antelope.Struct.field(antelope.Checksum256)
557
+ ], state_row.prototype, "seed", void 0);
440
558
  tslib.__decorate([
441
559
  antelope.Struct.field(antelope.Checksum256)
442
- ], state_row.prototype, "epochseed", void 0);
560
+ ], state_row.prototype, "commit", void 0);
443
561
  tslib.__decorate([
444
562
  antelope.Struct.field(antelope.BlockTimestamp)
445
563
  ], state_row.prototype, "genesis", void 0);
446
- tslib.__decorate([
447
- antelope.Struct.field(antelope.Checksum256)
448
- ], state_row.prototype, "seed", void 0);
449
564
  state_row = tslib.__decorate([
450
565
  antelope.Struct.type('state_row')
451
566
  ], state_row);
452
567
  Types.state_row = state_row;
568
+ let travel = class travel extends antelope.Struct {
569
+ };
570
+ tslib.__decorate([
571
+ antelope.Struct.field(antelope.Name)
572
+ ], travel.prototype, "owner", void 0);
573
+ tslib.__decorate([
574
+ antelope.Struct.field(antelope.UInt64)
575
+ ], travel.prototype, "id", void 0);
576
+ tslib.__decorate([
577
+ antelope.Struct.field(coordinates)
578
+ ], travel.prototype, "destination", void 0);
579
+ tslib.__decorate([
580
+ antelope.Struct.field('bool')
581
+ ], travel.prototype, "recharge", void 0);
582
+ travel = tslib.__decorate([
583
+ antelope.Struct.type('travel')
584
+ ], travel);
585
+ Types.travel = travel;
453
586
  let travel_summary = class travel_summary extends antelope.Struct {
454
587
  };
455
588
  tslib.__decorate([
@@ -492,45 +625,18 @@ var Types;
492
625
  antelope.Struct.type('travel_summary')
493
626
  ], travel_summary);
494
627
  Types.travel_summary = travel_summary;
495
- let summary_row = class summary_row extends antelope.Struct {
496
- };
497
- tslib.__decorate([
498
- antelope.Struct.field(antelope.Name)
499
- ], summary_row.prototype, "key", void 0);
500
- tslib.__decorate([
501
- antelope.Struct.field(travel_summary)
502
- ], summary_row.prototype, "value", void 0);
503
- summary_row = tslib.__decorate([
504
- antelope.Struct.type('summary_row')
505
- ], summary_row);
506
- Types.summary_row = summary_row;
507
- let test = class test extends antelope.Struct {
508
- };
509
- tslib.__decorate([
510
- antelope.Struct.field('string')
511
- ], test.prototype, "data", void 0);
512
- test = tslib.__decorate([
513
- antelope.Struct.type('test')
514
- ], test);
515
- Types.test = test;
516
- let travel = class travel extends antelope.Struct {
628
+ let traveltime = class traveltime extends antelope.Struct {
517
629
  };
518
- tslib.__decorate([
519
- antelope.Struct.field(antelope.Name)
520
- ], travel.prototype, "owner", void 0);
521
630
  tslib.__decorate([
522
631
  antelope.Struct.field(antelope.UInt64)
523
- ], travel.prototype, "id", void 0);
632
+ ], traveltime.prototype, "id", void 0);
524
633
  tslib.__decorate([
525
634
  antelope.Struct.field(coordinates)
526
- ], travel.prototype, "destination", void 0);
527
- tslib.__decorate([
528
- antelope.Struct.field('bool')
529
- ], travel.prototype, "recharge", void 0);
530
- travel = tslib.__decorate([
531
- antelope.Struct.type('travel')
532
- ], travel);
533
- Types.travel = travel;
635
+ ], traveltime.prototype, "destination", void 0);
636
+ traveltime = tslib.__decorate([
637
+ antelope.Struct.type('traveltime')
638
+ ], traveltime);
639
+ Types.traveltime = traveltime;
534
640
  let wipe = class wipe extends antelope.Struct {
535
641
  };
536
642
  wipe = tslib.__decorate([
@@ -544,7 +650,6 @@ const TableMap = {
544
650
  sequence: Types.sequence_row,
545
651
  ship: Types.ship_row,
546
652
  state: Types.state_row,
547
- summary: Types.summary_row,
548
653
  };
549
654
  class Contract extends ContractKit.Contract {
550
655
  constructor(args) {
@@ -574,12 +679,22 @@ var server = /*#__PURE__*/Object.freeze({
574
679
  Contract: Contract
575
680
  });
576
681
 
682
+ function getCurrentEpoch(game, state) {
683
+ return tslib.__awaiter(this, void 0, void 0, function* () {
684
+ const current = new Date().getTime();
685
+ const difference = (current - state.genesis.toDate().getTime()) / 1000;
686
+ const epoch = Math.floor(difference / Number(game.config.epochtime)) + 1;
687
+ return epoch;
688
+ });
689
+ }
690
+
577
691
  function hash(seed, string) {
578
692
  const bytes = antelope.Bytes.from(`${seed}${string}`, 'utf8');
579
- return antelope.Checksum512.hash(bytes);
693
+ return antelope.Checksum256.hash(bytes);
580
694
  }
581
- function hashBytes(seed, string) {
582
- return hash(seed, string).array;
695
+ function hash512(seed, string) {
696
+ const bytes = antelope.Bytes.from(`${seed}${string}`, 'utf8');
697
+ return antelope.Checksum512.hash(bytes);
583
698
  }
584
699
 
585
700
  function distanceTraveled(ship) {
@@ -589,36 +704,40 @@ function distanceTraveled(ship) {
589
704
  }
590
705
  return 0;
591
706
  }
707
+ function distanceBetweenCoordinates(origin, destination) {
708
+ return distanceBetweenPoints(origin.x, origin.y, destination.x, destination.y);
709
+ }
592
710
  function distanceBetweenPoints(x1, y1, x2, y2) {
593
711
  const x = Math.pow(x1 - x2, 2);
594
712
  const y = Math.pow(y1 - y2, 2);
595
- return Math.sqrt(x + y);
713
+ return antelope.UInt16.from(Math.sqrt(x + y));
596
714
  }
597
715
  function lerp(origin, destination, time) {
598
716
  return {
599
- x: (1 - time) * origin.x + time * destination.x,
600
- y: (1 - time) * origin.y + time * destination.y,
717
+ x: (1 - time) * Number(origin.x) + time * Number(destination.x),
718
+ y: (1 - time) * Number(origin.y) + time * Number(destination.y),
601
719
  };
602
720
  }
603
721
  function rotation(origin, destination) {
604
722
  return Math.atan2(destination.y - origin.y, destination.x - origin.x) * (180 / Math.PI) + 90;
605
723
  }
606
- function hasPlanet(seed, coords) {
607
- const str = ['system', coords.x, coords.y].join('-');
608
- return String(hash(seed, str)).slice(0, 2) === '00';
724
+ function hasPlanet(seed, coordinates) {
725
+ const str = ['system', coordinates.x, coordinates.y].join('-');
726
+ return String(hash512(seed, str)).slice(0, 2) === '00';
609
727
  }
610
728
  function findNearbyPlanets(seed, origin, maxDistance = 20) {
611
729
  const nearbySystems = [];
612
- const xMin = origin.x - maxDistance;
613
- const xMax = origin.x + maxDistance;
614
- const yMin = origin.y - maxDistance;
615
- const yMax = origin.y + maxDistance;
616
- for (let x = xMin; x <= xMax; x++) {
617
- for (let y = yMin; y <= yMax; y++) {
730
+ const max = antelope.UInt16.from(maxDistance);
731
+ const xMin = antelope.Int64.from(origin.x).subtracting(max);
732
+ const xMax = antelope.Int64.from(origin.x).adding(max);
733
+ const yMin = antelope.Int64.from(origin.y).subtracting(max);
734
+ const yMax = antelope.Int64.from(origin.y).adding(max);
735
+ for (let x = Number(xMin); x <= Number(xMax); x++) {
736
+ for (let y = Number(yMin); y <= Number(yMax); y++) {
618
737
  const samePlace = x === origin.x && y === origin.y;
619
738
  if (!samePlace) {
620
739
  const distance = distanceBetweenPoints(origin.x, origin.y, x, y);
621
- if (distance <= maxDistance) {
740
+ if (Number(distance) <= Number(max)) {
622
741
  const system = hasPlanet(seed, { x, y });
623
742
  if (system) {
624
743
  nearbySystems.push({ origin, destination: { x, y }, distance });
@@ -739,8 +858,8 @@ function getGood(good_id) {
739
858
  }
740
859
 
741
860
  function roll(game_seed, roll_seed) {
742
- const byteArray = hashBytes(game_seed, roll_seed);
743
- return (byteArray[0] << 8) | byteArray[1];
861
+ const hash = hash512(game_seed, roll_seed);
862
+ return (hash.array[0] << 8) | hash.array[1];
744
863
  }
745
864
 
746
865
  function marketprice(location, good_id, gameSeed, epochSeed) {
@@ -809,23 +928,43 @@ const INSUFFICIENT_GOOD_QUANTITY = 'Insufficient good quantity';
809
928
  const REQUIRES_MORE_THAN_ONE = 'Requires more than one';
810
929
 
811
930
  class Shipload {
812
- constructor(chain, { client, serverContract }) {
931
+ constructor(chain, { client, platformContract, serverContract }) {
813
932
  this.client = client || new antelope.APIClient({ url: chain.url });
933
+ this.platform = platformContract
934
+ ? platformContract
935
+ : new Contract$1({ client: this.client });
814
936
  this.server = serverContract
815
937
  ? serverContract
816
938
  : new Contract({ client: this.client });
817
939
  }
818
940
  static load(chain, shiploadOptions) {
819
941
  return tslib.__awaiter(this, void 0, void 0, function* () {
942
+ let platform$1 = new Contract$1({
943
+ client: new antelope.APIClient({ url: chain.url }),
944
+ });
945
+ if (shiploadOptions.platformContractName) {
946
+ const client = shiploadOptions.client || new antelope.APIClient({ url: chain.url });
947
+ const contractKit = new ContractKit__default["default"]({ client });
948
+ platform$1 = yield contractKit.load(shiploadOptions.platformContractName);
949
+ }
820
950
  let server$1 = new Contract({
821
951
  client: new antelope.APIClient({ url: chain.url }),
822
952
  });
823
- if (shiploadOptions.contractName) {
953
+ if (shiploadOptions.serverContractName) {
824
954
  const client = shiploadOptions.client || new antelope.APIClient({ url: chain.url });
825
955
  const contractKit = new ContractKit__default["default"]({ client });
826
- server$1 = yield contractKit.load(shiploadOptions.contractName);
956
+ server$1 = yield contractKit.load(shiploadOptions.serverContractName);
957
+ }
958
+ return new Shipload(chain, Object.assign(Object.assign({}, shiploadOptions), { platformContract: platform$1, serverContract: server$1 }));
959
+ });
960
+ }
961
+ getGame() {
962
+ return tslib.__awaiter(this, void 0, void 0, function* () {
963
+ const game = yield this.platform.table('games').get();
964
+ if (!game) {
965
+ throw new Error(ERROR_SYSTEM_NOT_INITIALIZED);
827
966
  }
828
- return new Shipload(chain, Object.assign(Object.assign({}, shiploadOptions), { serverContract: server$1 }));
967
+ return game;
829
968
  });
830
969
  }
831
970
  getState() {
@@ -839,14 +978,16 @@ class Shipload {
839
978
  }
840
979
  marketprice(location, good_id) {
841
980
  return tslib.__awaiter(this, void 0, void 0, function* () {
842
- const { seed, epochseed } = yield this.getState();
843
- return marketprice(location, good_id, seed, epochseed);
981
+ const game = yield this.getGame();
982
+ const state = yield this.getState();
983
+ return marketprice(location, good_id, game.config.seed, state.seed);
844
984
  });
845
985
  }
846
986
  marketprices(location) {
847
987
  return tslib.__awaiter(this, void 0, void 0, function* () {
848
- const { seed, epochseed } = yield this.getState();
849
- return marketprices(location, seed, epochseed);
988
+ const game = yield this.getGame();
989
+ const state = yield this.getState();
990
+ return marketprices(location, game.config.seed, state.seed);
850
991
  });
851
992
  }
852
993
  }
@@ -863,14 +1004,16 @@ exports.SHIP_CANNOT_BUY_TRAVELING = SHIP_CANNOT_BUY_TRAVELING;
863
1004
  exports.SHIP_NOT_FOUND = SHIP_NOT_FOUND;
864
1005
  exports.ServerContract = server;
865
1006
  exports["default"] = Shipload;
1007
+ exports.distanceBetweenCoordinates = distanceBetweenCoordinates;
866
1008
  exports.distanceBetweenPoints = distanceBetweenPoints;
867
1009
  exports.distanceTraveled = distanceTraveled;
868
1010
  exports.findNearbyPlanets = findNearbyPlanets;
1011
+ exports.getCurrentEpoch = getCurrentEpoch;
869
1012
  exports.getGood = getGood;
870
1013
  exports.goods = goods;
871
1014
  exports.hasPlanet = hasPlanet;
872
1015
  exports.hash = hash;
873
- exports.hashBytes = hashBytes;
1016
+ exports.hash512 = hash512;
874
1017
  exports.lerp = lerp;
875
1018
  exports.marketprice = marketprice;
876
1019
  exports.marketprices = marketprices;