@win-trader/bindings 0.0.4 → 0.1.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.
@@ -1,6 +1,6 @@
1
1
  import { Buffer } from "buffer";
2
2
  import { AssembledTransaction, Client as ContractClient, ClientOptions as ContractClientOptions, MethodOptions } from "@stellar/stellar-sdk/contract";
3
- import type { u32, u64, i128 } from "@stellar/stellar-sdk/contract";
3
+ import type { u32, u64, i128, Option } from "@stellar/stellar-sdk/contract";
4
4
  export * from "@stellar/stellar-sdk";
5
5
  export * as contract from "@stellar/stellar-sdk/contract";
6
6
  export * as rpc from "@stellar/stellar-sdk/rpc";
@@ -96,6 +96,42 @@ export declare const PositionManagerError: {
96
96
  25: {
97
97
  message: string;
98
98
  };
99
+ /**
100
+ * No entry order exists for the given id.
101
+ */
102
+ 26: {
103
+ message: string;
104
+ };
105
+ /**
106
+ * `execute_entry_order` called before the trigger price was crossed.
107
+ */
108
+ 27: {
109
+ message: string;
110
+ };
111
+ /**
112
+ * `register_referral_code` for a code that is already owned.
113
+ */
114
+ 28: {
115
+ message: string;
116
+ };
117
+ /**
118
+ * A referral code failed the length/format bounds.
119
+ */
120
+ 29: {
121
+ message: string;
122
+ };
123
+ /**
124
+ * `set_referrer` for a code no one has registered.
125
+ */
126
+ 30: {
127
+ message: string;
128
+ };
129
+ /**
130
+ * A trader tried to set their own code as their referrer.
131
+ */
132
+ 31: {
133
+ message: string;
134
+ };
99
135
  };
100
136
  /**
101
137
  * Which collection routed revenue through the split (§13).
@@ -123,10 +159,23 @@ export type CloseReason = {
123
159
  tag: "Order";
124
160
  values: void;
125
161
  };
162
+ /**
163
+ * Why an entry order was removed before filling.
164
+ */
165
+ export type CancelReason = {
166
+ tag: "Owner";
167
+ values: void;
168
+ } | {
169
+ tag: "Expired";
170
+ values: void;
171
+ } | {
172
+ tag: "PullFailed";
173
+ values: void;
174
+ };
126
175
  /**
127
176
  * §5.1 global state: the five non-LP claim totals, the risk counters, and
128
177
  * the global borrow accrual. The receiver-funding liability total is fed
129
- * per-market by `checkpoint::checkpoint_market` (§8.3).
178
+ * per-market by `funding::accrue` (§8.3).
130
179
  */
131
180
  export interface Ledger {
132
181
  borrow_index: i128;
@@ -142,10 +191,17 @@ export interface Ledger {
142
191
  pending_receiver_funding_total: i128;
143
192
  position_collateral_total: i128;
144
193
  protocol_claimable_total: i128;
194
+ /**
195
+ * §11.1 referral rewards accrued but not yet claimed — the aggregate
196
+ * backing the per-referrer `ReferralBalance` map (their sum is this
197
+ * total). Like every claim here it is a label on cash already in the
198
+ * vault, so NAV and the solvency checks net it out automatically.
199
+ */
200
+ referral_claimable_total: i128;
145
201
  risk_keeper_reserve_total: i128;
146
202
  total_risk_units: i128;
147
203
  }
148
- export type Key = {
204
+ export type StorageKey = {
149
205
  tag: "ConfigManager";
150
206
  values: void;
151
207
  } | {
@@ -184,6 +240,21 @@ export type Key = {
184
240
  } | {
185
241
  tag: "MarketDisabled";
186
242
  values: readonly [string];
243
+ } | {
244
+ tag: "EntryOrder";
245
+ values: readonly [u64];
246
+ } | {
247
+ tag: "NextEntryOrderId";
248
+ values: void;
249
+ } | {
250
+ tag: "ReferralCode";
251
+ values: readonly [string];
252
+ } | {
253
+ tag: "Referrer";
254
+ values: readonly [string];
255
+ } | {
256
+ tag: "ReferralBalance";
257
+ values: readonly [string];
187
258
  };
188
259
  /**
189
260
  * Authoritative per-market state: the side aggregates, the funding indices,
@@ -321,6 +392,40 @@ export type RiskState = {
321
392
  tag: "HardCap";
322
393
  values: void;
323
394
  };
395
+ /**
396
+ * A pending limit/stop entry order: the frozen `open_position` arguments
397
+ * plus a trigger condition and an expiry. Placing one only writes this
398
+ * record — no funds move. A keeper's `execute_entry_order` pulls the
399
+ * collateral via the owner's token allowance and opens the position
400
+ * exactly as a market open would.
401
+ */
402
+ export interface EntryOrder {
403
+ acceptable_price: i128;
404
+ collateral: i128;
405
+ execution_budget: i128;
406
+ /**
407
+ * Ledger timestamp after which the order is dead and swept on the next
408
+ * touch (user-configurable max TTL).
409
+ */
410
+ expires_at: u64;
411
+ id: u64;
412
+ is_long: boolean;
413
+ market: string;
414
+ owner: string;
415
+ size: i128;
416
+ stop_loss: i128;
417
+ take_profit: i128;
418
+ /**
419
+ * True → fill when price ≥ trigger (stop/breakout entry); false → fill
420
+ * when price ≤ trigger (limit/dip entry). Inferred at placement from
421
+ * the trigger vs. the current price.
422
+ */
423
+ trigger_above: boolean;
424
+ /**
425
+ * The oracle price at which the order becomes fillable.
426
+ */
427
+ trigger_price: i128;
428
+ }
324
429
  export interface MarketSide {
325
430
  base_exposure: i128;
326
431
  risk_state: RiskState;
@@ -342,6 +447,11 @@ export interface OracleRound {
342
447
  export interface GlobalConfig {
343
448
  base_borrow_rate_bps_day: i128;
344
449
  /**
450
+ * §9.2 borrow-curve exponent, bps: 20_000 = u² (legacy quadratic),
451
+ * 10_000 = linear. Bounded to ≤ 100_000 (e ≤ 10) by validation.
452
+ */
453
+ borrow_exponent_bps: u32;
454
+ /**
345
455
  * §8.1 half-life of the funding skew EMA, seconds (global: one memory
346
456
  * horizon for every market).
347
457
  */
@@ -352,8 +462,22 @@ export interface GlobalConfig {
352
462
  max_adl_reward: i128;
353
463
  max_insolvent_touch_reward: i128;
354
464
  max_variable_borrow_bps_day: i128;
465
+ /**
466
+ * §11.2 minimum borrow charge per capitalization: an index delta at
467
+ * `INDEX_PRECISION` scale applied to the position's risk units
468
+ * (2e11 = 2 bps of notional at a 10% market risk factor). Zero
469
+ * disables the floor.
470
+ */
471
+ min_borrow_index_delta: i128;
355
472
  min_collateral: i128;
356
473
  min_position_lifetime: u64;
474
+ /**
475
+ * §11.1 share of a closing fee routed to the trader's referrer, carved
476
+ * from the protocol slice (keeper and LP shares are untouched). `0`
477
+ * disables referral accrual globally — a kill switch. Validated so
478
+ * `lp + keeper + referral ≤ BPS`, keeping the protocol remainder ≥ 0.
479
+ */
480
+ referral_fee_share_bps: u32;
357
481
  risk_capacity_limit_bps: u32;
358
482
  risk_keeper_revenue_share_bps: u32;
359
483
  }
@@ -461,6 +585,23 @@ export type LpRequestStatus = {
461
585
  tag: "Expired";
462
586
  values: void;
463
587
  };
588
+ /**
589
+ * The caller-supplied fields of a `place_entry_order` request, bundled so
590
+ * the entry point stays within Soroban's parameter limit. `owner` and
591
+ * `market` are passed alongside; `id` and `trigger_above` are derived at
592
+ * placement.
593
+ */
594
+ export interface EntryOrderParams {
595
+ acceptable_price: i128;
596
+ collateral: i128;
597
+ execution_budget: i128;
598
+ expires_at: u64;
599
+ is_long: boolean;
600
+ size: i128;
601
+ stop_loss: i128;
602
+ take_profit: i128;
603
+ trigger_price: i128;
604
+ }
464
605
  export interface SettlementResult {
465
606
  /**
466
607
  * Shares minted for a deposit or assets paid for a withdrawal.
@@ -647,6 +788,12 @@ export interface Client {
647
788
  get_position: ({ position_id }: {
648
789
  position_id: u64;
649
790
  }, options?: MethodOptions) => Promise<AssembledTransaction<Position>>;
791
+ /**
792
+ * Construct and simulate a get_referrer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
793
+ */
794
+ get_referrer: ({ trader }: {
795
+ trader: string;
796
+ }, options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
650
797
  /**
651
798
  * Construct and simulate a recapitalize transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
652
799
  */
@@ -654,6 +801,13 @@ export interface Client {
654
801
  contributor: string;
655
802
  amount: i128;
656
803
  }, options?: MethodOptions) => Promise<AssembledTransaction<null>>;
804
+ /**
805
+ * Construct and simulate a set_referrer transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
806
+ */
807
+ set_referrer: ({ trader, code }: {
808
+ trader: string;
809
+ code: string;
810
+ }, options?: MethodOptions) => Promise<AssembledTransaction<null>>;
657
811
  /**
658
812
  * Construct and simulate a bump_position transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
659
813
  */
@@ -714,6 +868,12 @@ export interface Client {
714
868
  recipient: string;
715
869
  amount: i128;
716
870
  }, options?: MethodOptions) => Promise<AssembledTransaction<null>>;
871
+ /**
872
+ * Construct and simulate a claim_referral transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
873
+ */
874
+ claim_referral: ({ referrer }: {
875
+ referrer: string;
876
+ }, options?: MethodOptions) => Promise<AssembledTransaction<null>>;
717
877
  /**
718
878
  * Construct and simulate a disable_market transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
719
879
  */
@@ -728,6 +888,12 @@ export interface Client {
728
888
  caller: string;
729
889
  market_symbol: string;
730
890
  }, options?: MethodOptions) => Promise<AssembledTransaction<null>>;
891
+ /**
892
+ * Construct and simulate a get_entry_order transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
893
+ */
894
+ get_entry_order: ({ order_id }: {
895
+ order_id: u64;
896
+ }, options?: MethodOptions) => Promise<AssembledTransaction<EntryOrder>>;
731
897
  /**
732
898
  * Construct and simulate a propose_upgrade transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
733
899
  */
@@ -735,6 +901,12 @@ export interface Client {
735
901
  caller: string;
736
902
  wasm_hash: Buffer;
737
903
  }, options?: MethodOptions) => Promise<AssembledTransaction<null>>;
904
+ /**
905
+ * Construct and simulate a referral_balance transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
906
+ */
907
+ referral_balance: ({ referrer }: {
908
+ referrer: string;
909
+ }, options?: MethodOptions) => Promise<AssembledTransaction<i128>>;
738
910
  /**
739
911
  * Construct and simulate a decrease_position transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
740
912
  */
@@ -753,6 +925,14 @@ export interface Client {
753
925
  collateral_added: i128;
754
926
  acceptable_price: i128;
755
927
  }, options?: MethodOptions) => Promise<AssembledTransaction<null>>;
928
+ /**
929
+ * Construct and simulate a place_entry_order transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
930
+ */
931
+ place_entry_order: ({ owner, market, params }: {
932
+ owner: string;
933
+ market: string;
934
+ params: EntryOrderParams;
935
+ }, options?: MethodOptions) => Promise<AssembledTransaction<u64>>;
756
936
  /**
757
937
  * Construct and simulate a set_global_config transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
758
938
  */
@@ -768,6 +948,12 @@ export interface Client {
768
948
  market_symbol: string;
769
949
  config: MarketConfig;
770
950
  }, options?: MethodOptions) => Promise<AssembledTransaction<null>>;
951
+ /**
952
+ * Construct and simulate a cancel_entry_order transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
953
+ */
954
+ cancel_entry_order: ({ order_id }: {
955
+ order_id: u64;
956
+ }, options?: MethodOptions) => Promise<AssembledTransaction<null>>;
771
957
  /**
772
958
  * Construct and simulate a is_market_disabled transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
773
959
  */
@@ -795,6 +981,13 @@ export interface Client {
795
981
  caller: string;
796
982
  position_id: u64;
797
983
  }, options?: MethodOptions) => Promise<AssembledTransaction<null>>;
984
+ /**
985
+ * Construct and simulate a execute_entry_order transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
986
+ */
987
+ execute_entry_order: ({ caller, order_id }: {
988
+ caller: string;
989
+ order_id: u64;
990
+ }, options?: MethodOptions) => Promise<AssembledTransaction<null>>;
798
991
  /**
799
992
  * Construct and simulate a prepare_lp_snapshot transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
800
993
  */
@@ -803,6 +996,12 @@ export interface Client {
803
996
  round: OracleRound;
804
997
  physical: i128;
805
998
  }, options?: MethodOptions) => Promise<AssembledTransaction<AccountingSnapshot>>;
999
+ /**
1000
+ * Construct and simulate a referral_code_owner transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1001
+ */
1002
+ referral_code_owner: ({ code }: {
1003
+ code: string;
1004
+ }, options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>;
806
1005
  /**
807
1006
  * Construct and simulate a refresh_borrow_rate transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
808
1007
  */
@@ -824,10 +1023,21 @@ export interface Client {
824
1023
  position_id: u64;
825
1024
  amount: i128;
826
1025
  }, options?: MethodOptions) => Promise<AssembledTransaction<null>>;
1026
+ /**
1027
+ * Construct and simulate a register_referral_code transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1028
+ */
1029
+ register_referral_code: ({ owner, code }: {
1030
+ owner: string;
1031
+ code: string;
1032
+ }, options?: MethodOptions) => Promise<AssembledTransaction<null>>;
827
1033
  /**
828
1034
  * Construct and simulate a protocol_claimable_total transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
829
1035
  */
830
1036
  protocol_claimable_total: (options?: MethodOptions) => Promise<AssembledTransaction<i128>>;
1037
+ /**
1038
+ * Construct and simulate a referral_claimable_total transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
1039
+ */
1040
+ referral_claimable_total: (options?: MethodOptions) => Promise<AssembledTransaction<i128>>;
831
1041
  /**
832
1042
  * Construct and simulate a risk_keeper_reserve_total transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
833
1043
  */
@@ -872,7 +1082,9 @@ export declare class Client extends ContractClient {
872
1082
  set_vault: (json: string) => AssembledTransaction<null>;
873
1083
  get_market: (json: string) => AssembledTransaction<Market>;
874
1084
  get_position: (json: string) => AssembledTransaction<Position>;
1085
+ get_referrer: (json: string) => AssembledTransaction<Option<string>>;
875
1086
  recapitalize: (json: string) => AssembledTransaction<null>;
1087
+ set_referrer: (json: string) => AssembledTransaction<null>;
876
1088
  bump_position: (json: string) => AssembledTransaction<null>;
877
1089
  enable_market: (json: string) => AssembledTransaction<null>;
878
1090
  execute_order: (json: string) => AssembledTransaction<null>;
@@ -882,22 +1094,31 @@ export declare class Client extends ContractClient {
882
1094
  active_markets: (json: string) => AssembledTransaction<string[]>;
883
1095
  cancel_upgrade: (json: string) => AssembledTransaction<null>;
884
1096
  claim_protocol: (json: string) => AssembledTransaction<null>;
1097
+ claim_referral: (json: string) => AssembledTransaction<null>;
885
1098
  disable_market: (json: string) => AssembledTransaction<null>;
886
1099
  update_indices: (json: string) => AssembledTransaction<null>;
1100
+ get_entry_order: (json: string) => AssembledTransaction<EntryOrder>;
887
1101
  propose_upgrade: (json: string) => AssembledTransaction<null>;
1102
+ referral_balance: (json: string) => AssembledTransaction<bigint>;
888
1103
  decrease_position: (json: string) => AssembledTransaction<null>;
889
1104
  increase_position: (json: string) => AssembledTransaction<null>;
1105
+ place_entry_order: (json: string) => AssembledTransaction<bigint>;
890
1106
  set_global_config: (json: string) => AssembledTransaction<null>;
891
1107
  set_market_config: (json: string) => AssembledTransaction<null>;
1108
+ cancel_entry_order: (json: string) => AssembledTransaction<null>;
892
1109
  is_market_disabled: (json: string) => AssembledTransaction<boolean>;
893
1110
  liquidate_position: (json: string) => AssembledTransaction<null>;
894
1111
  accounting_snapshot: (json: string) => AssembledTransaction<AccountingSnapshot>;
895
1112
  deleverage_position: (json: string) => AssembledTransaction<null>;
1113
+ execute_entry_order: (json: string) => AssembledTransaction<null>;
896
1114
  prepare_lp_snapshot: (json: string) => AssembledTransaction<AccountingSnapshot>;
1115
+ referral_code_owner: (json: string) => AssembledTransaction<Option<string>>;
897
1116
  refresh_borrow_rate: (json: string) => AssembledTransaction<null>;
898
1117
  can_create_lp_request: (json: string) => AssembledTransaction<boolean>;
899
1118
  fund_execution_budget: (json: string) => AssembledTransaction<null>;
1119
+ register_referral_code: (json: string) => AssembledTransaction<null>;
900
1120
  protocol_claimable_total: (json: string) => AssembledTransaction<bigint>;
1121
+ referral_claimable_total: (json: string) => AssembledTransaction<bigint>;
901
1122
  risk_keeper_reserve_total: (json: string) => AssembledTransaction<bigint>;
902
1123
  withdraw_execution_budget: (json: string) => AssembledTransaction<null>;
903
1124
  pending_receiver_funding_total: (json: string) => AssembledTransaction<bigint>;
@@ -48,7 +48,31 @@ export const PositionManagerError = {
48
48
  /**
49
49
  * `upgrade` called with a hash that differs from the proposal.
50
50
  */
51
- 25: { message: "UpgradeHashMismatch" }
51
+ 25: { message: "UpgradeHashMismatch" },
52
+ /**
53
+ * No entry order exists for the given id.
54
+ */
55
+ 26: { message: "OrderNotFound" },
56
+ /**
57
+ * `execute_entry_order` called before the trigger price was crossed.
58
+ */
59
+ 27: { message: "OrderNotTriggered" },
60
+ /**
61
+ * `register_referral_code` for a code that is already owned.
62
+ */
63
+ 28: { message: "ReferralCodeTaken" },
64
+ /**
65
+ * A referral code failed the length/format bounds.
66
+ */
67
+ 29: { message: "ReferralCodeInvalid" },
68
+ /**
69
+ * `set_referrer` for a code no one has registered.
70
+ */
71
+ 30: { message: "ReferralCodeNotFound" },
72
+ /**
73
+ * A trader tried to set their own code as their referrer.
74
+ */
75
+ 31: { message: "SelfReferral" }
52
76
  };
53
77
  export const UpgradeableError = {
54
78
  /**
@@ -114,31 +138,39 @@ export class Client extends ContractClient {
114
138
  return ContractClient.deploy({ config_manager, oracle_router, config }, options);
115
139
  }
116
140
  constructor(options) {
117
- super(new ContractSpec(["AAAABAAAAAAAAAAAAAAAFFBvc2l0aW9uTWFuYWdlckVycm9yAAAAGQAAAAAAAAAMVW5hdXRob3JpemVkAAAAAQAAAAAAAAAOTm90SW5pdGlhbGl6ZWQAAAAAAAIAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAAAwAAAAAAAAANSW52YWxpZEFtb3VudAAAAAAAAAQAAAAAAAAADUludmFsaWRDb25maWcAAAAAAAAFAAAAAAAAABBQb3NpdGlvbk5vdEZvdW5kAAAABgAAAAAAAAATTWFya2V0Tm90Q29uZmlndXJlZAAAAAAHAAAAAAAAAA5NYXJrZXREaXNhYmxlZAAAAAAACAAAAAAAAAAQU2xpcHBhZ2VFeGNlZWRlZAAAAAkAAAAAAAAAEENhcGFjaXR5RXhjZWVkZWQAAAAKAAAAAAAAABNNYXJrZXRMaW1pdEV4Y2VlZGVkAAAAAAsAAAAAAAAAFkluc3VmZmljaWVudENvbGxhdGVyYWwAAAAAAAwAAAAAAAAAD1Bvc2l0aW9uSGVhbHRoeQAAAAANAAAAAAAAABBSaXNrU3RhdGVCbG9ja2VkAAAADgAAAAAAAAAPQXJpdGhtZXRpY0Vycm9yAAAAAA8AAAAAAAAAEkludmFsaWRPcmFjbGVSb3VuZAAAAAAAEAAAAAAAAAAIVG9vRWFybHkAAAARAAAAAAAAAAxJbnZhbGlkT3JkZXIAAAASAAAAAAAAABtJbnN1ZmZpY2llbnRFeGVjdXRpb25CdWRnZXQAAAAAEwAAAAAAAAANSW52YWxpZENhbGxlcgAAAAAAABQAAABCVGhlIGNvbnRyYWN0IGlzIG9wZXJhdGlvbmFsbHkgcGF1c2VkIChkaXN0aW5jdCBmcm9tIGEgcmlzayBzdGF0ZSkuAAAAAAAGUGF1c2VkAAAAAAAVAAAAgkFuIGFjY291bnRpbmcgaW52YXJpYW50IGJyb2tlIOKAlCBlLmcuIGEgbmVnYXRpdmUgcGVuZGluZyBmZWUsIHdoaWNoCm1lYW5zIGEgZGVjcmVhc2luZyBpbmRleCBvciBjb3JydXB0ZWQgZGVidCBiYXNlbGluZSAowqcxMS4yKS4AAAAAABJJbnZhcmlhbnRWaW9sYXRpb24AAAAAABYAAAAqYHVwZ3JhZGVgIGNhbGxlZCB3aXRoIG5vIHBlbmRpbmcgcHJvcG9zYWwuAAAAAAAQVXBncmFkZU5vUGVuZGluZwAAABcAAAA0YHVwZ3JhZGVgIGNhbGxlZCBiZWZvcmUgdGhlIHByb3Bvc2FsJ3MgdGltZWxvY2sgZXRhLgAAABlVcGdyYWRlVGltZWxvY2tOb3RFbGFwc2VkAAAAAAAAGAAAADxgdXBncmFkZWAgY2FsbGVkIHdpdGggYSBoYXNoIHRoYXQgZGlmZmVycyBmcm9tIHRoZSBwcm9wb3NhbC4AAAATVXBncmFkZUhhc2hNaXNtYXRjaAAAAAAZ",
118
- "AAAABQAAAAAAAAAAAAAAB0JhZERlYnQAAAAAAQAAAAdiYWRkZWJ0AAAAAAIAAAAAAAAAC3Bvc2l0aW9uX2lkAAAAAAYAAAAAAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAQ==",
141
+ super(new ContractSpec(["AAAABAAAAAAAAAAAAAAAFFBvc2l0aW9uTWFuYWdlckVycm9yAAAAHwAAAAAAAAAMVW5hdXRob3JpemVkAAAAAQAAAAAAAAAOTm90SW5pdGlhbGl6ZWQAAAAAAAIAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAAAwAAAAAAAAANSW52YWxpZEFtb3VudAAAAAAAAAQAAAAAAAAADUludmFsaWRDb25maWcAAAAAAAAFAAAAAAAAABBQb3NpdGlvbk5vdEZvdW5kAAAABgAAAAAAAAATTWFya2V0Tm90Q29uZmlndXJlZAAAAAAHAAAAAAAAAA5NYXJrZXREaXNhYmxlZAAAAAAACAAAAAAAAAAQU2xpcHBhZ2VFeGNlZWRlZAAAAAkAAAAAAAAAEENhcGFjaXR5RXhjZWVkZWQAAAAKAAAAAAAAABNNYXJrZXRMaW1pdEV4Y2VlZGVkAAAAAAsAAAAAAAAAFkluc3VmZmljaWVudENvbGxhdGVyYWwAAAAAAAwAAAAAAAAAD1Bvc2l0aW9uSGVhbHRoeQAAAAANAAAAAAAAABBSaXNrU3RhdGVCbG9ja2VkAAAADgAAAAAAAAAPQXJpdGhtZXRpY0Vycm9yAAAAAA8AAAAAAAAAEkludmFsaWRPcmFjbGVSb3VuZAAAAAAAEAAAAAAAAAAIVG9vRWFybHkAAAARAAAAAAAAAAxJbnZhbGlkT3JkZXIAAAASAAAAAAAAABtJbnN1ZmZpY2llbnRFeGVjdXRpb25CdWRnZXQAAAAAEwAAAAAAAAANSW52YWxpZENhbGxlcgAAAAAAABQAAABCVGhlIGNvbnRyYWN0IGlzIG9wZXJhdGlvbmFsbHkgcGF1c2VkIChkaXN0aW5jdCBmcm9tIGEgcmlzayBzdGF0ZSkuAAAAAAAGUGF1c2VkAAAAAAAVAAAAgkFuIGFjY291bnRpbmcgaW52YXJpYW50IGJyb2tlIOKAlCBlLmcuIGEgbmVnYXRpdmUgcGVuZGluZyBmZWUsIHdoaWNoCm1lYW5zIGEgZGVjcmVhc2luZyBpbmRleCBvciBjb3JydXB0ZWQgZGVidCBiYXNlbGluZSAowqcxMS4yKS4AAAAAABJJbnZhcmlhbnRWaW9sYXRpb24AAAAAABYAAAAqYHVwZ3JhZGVgIGNhbGxlZCB3aXRoIG5vIHBlbmRpbmcgcHJvcG9zYWwuAAAAAAAQVXBncmFkZU5vUGVuZGluZwAAABcAAAA0YHVwZ3JhZGVgIGNhbGxlZCBiZWZvcmUgdGhlIHByb3Bvc2FsJ3MgdGltZWxvY2sgZXRhLgAAABlVcGdyYWRlVGltZWxvY2tOb3RFbGFwc2VkAAAAAAAAGAAAADxgdXBncmFkZWAgY2FsbGVkIHdpdGggYSBoYXNoIHRoYXQgZGlmZmVycyBmcm9tIHRoZSBwcm9wb3NhbC4AAAATVXBncmFkZUhhc2hNaXNtYXRjaAAAAAAZAAAAJ05vIGVudHJ5IG9yZGVyIGV4aXN0cyBmb3IgdGhlIGdpdmVuIGlkLgAAAAANT3JkZXJOb3RGb3VuZAAAAAAAABoAAABCYGV4ZWN1dGVfZW50cnlfb3JkZXJgIGNhbGxlZCBiZWZvcmUgdGhlIHRyaWdnZXIgcHJpY2Ugd2FzIGNyb3NzZWQuAAAAAAART3JkZXJOb3RUcmlnZ2VyZWQAAAAAAAAbAAAAOmByZWdpc3Rlcl9yZWZlcnJhbF9jb2RlYCBmb3IgYSBjb2RlIHRoYXQgaXMgYWxyZWFkeSBvd25lZC4AAAAAABFSZWZlcnJhbENvZGVUYWtlbgAAAAAAABwAAAAwQSByZWZlcnJhbCBjb2RlIGZhaWxlZCB0aGUgbGVuZ3RoL2Zvcm1hdCBib3VuZHMuAAAAE1JlZmVycmFsQ29kZUludmFsaWQAAAAAHQAAADBgc2V0X3JlZmVycmVyYCBmb3IgYSBjb2RlIG5vIG9uZSBoYXMgcmVnaXN0ZXJlZC4AAAAUUmVmZXJyYWxDb2RlTm90Rm91bmQAAAAeAAAAN0EgdHJhZGVyIHRyaWVkIHRvIHNldCB0aGVpciBvd24gY29kZSBhcyB0aGVpciByZWZlcnJlci4AAAAADFNlbGZSZWZlcnJhbAAAAB8=",
119
142
  "AAAAAgAAADlXaGljaCBjb2xsZWN0aW9uIHJvdXRlZCByZXZlbnVlIHRocm91Z2ggdGhlIHNwbGl0ICjCpzEzKS4AAAAAAAAAAAAACUZlZVNvdXJjZQAAAAAAAAIAAAAAAAAAAAAAAAdDbG9zaW5nAAAAAAAAAAAAAAAABkJvcnJvdwAA",
120
143
  "AAAAAgAAAB1XaHkgYSBwb3NpdGlvbiBsZWZ0IHRoZSBib29rLgAAAAAAAAAAAAALQ2xvc2VSZWFzb24AAAAABAAAAAAAAAAcVGhlIG93bmVyIGRlY3JlYXNlZCB0byB6ZXJvLgAAAAZUcmFkZXIAAAAAAAAAAAA5QSBrZWVwZXIgb3IgdGhpcmQgcGFydHkgbGlxdWlkYXRlZCBhbiB1bmhlYWx0aHkgcG9zaXRpb24uAAAAAAAAC0xpcXVpZGF0aW9uAAAAAAAAAAAxRnVuZGVkIGF1dG8tZGVsZXZlcmFnaW5nIG9uIGFuIEFETC9oYXJkLWNhcCBzaWRlLgAAAAAAAApEZWxldmVyYWdlAAAAAAAAAAAALEEgdGFrZS1wcm9maXQgb3Igc3RvcC1sb3NzIHRyaWdnZXIgZXhlY3V0ZWQuAAAABU9yZGVyAAAA",
121
- "AAAABQAAAFhUYWtlLXByb2ZpdCAvIHN0b3AtbG9zcyB0cmlnZ2VycyBjaGFuZ2VkIG9uIGFuIG9wZW4gcG9zaXRpb24uIFplcm8gbWVhbnMKbm8gdHJpZ2dlciBzZXQuAAAAAAAAAAtUcFNsVXBkYXRlZAAAAAABAAAABHRwc2wAAAAFAAAAAAAAAAtwb3NpdGlvbl9pZAAAAAAGAAAAAQAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAAAAAAAGbWFya2V0AAAAAAARAAAAAAAAAAAAAAALdGFrZV9wcm9maXQAAAAACwAAAAAAAAAAAAAACXN0b3BfbG9zcwAAAAAAAAsAAAAAAAAAAg==",
144
+ "AAAABQAAAHhBbiBlbnRyeSBvcmRlciB3YXMgZmlsbGVkOiB0aGUgY29sbGF0ZXJhbCB3YXMgcHVsbGVkIGFuZCBhIHBvc2l0aW9uCm9wZW5lZCBhdCBgZmlsbF9wcmljZWAuIFRoZSBvcmRlciByZWNvcmQgaXMgcmVtb3ZlZC4AAAAAAAAAC09yZGVyRmlsbGVkAAAAAAEAAAAHb3JkZmlsbAAAAAAEAAAAAAAAAAhvcmRlcl9pZAAAAAYAAAABAAAAAAAAAAtwb3NpdGlvbl9pZAAAAAAGAAAAAAAAAAAAAAAIZXhlY3V0b3IAAAATAAAAAAAAAAAAAAAKZmlsbF9wcmljZQAAAAAACwAAAAAAAAAC",
145
+ "AAAABQAAAEZBIGxpbWl0L3N0b3AgZW50cnkgb3JkZXIgd2FzIHBsYWNlZCAoc3RvcmFnZSBvbmx5IOKAlCBubyBmdW5kcyBtb3ZlZCkuAAAAAAAAAAAAC09yZGVyUGxhY2VkAAAAAAEAAAAIb3JkcGxhY2UAAAANAAAAAAAAAAhvcmRlcl9pZAAAAAYAAAABAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAAAAAAAZtYXJrZXQAAAAAABEAAAAAAAAAAAAAAAdpc19sb25nAAAAAAEAAAAAAAAAAAAAAARzaXplAAAACwAAAAAAAAAAAAAACmNvbGxhdGVyYWwAAAAAAAsAAAAAAAAAAAAAABBleGVjdXRpb25fYnVkZ2V0AAAACwAAAAAAAAAAAAAAC3Rha2VfcHJvZml0AAAAAAsAAAAAAAAAAAAAAAlzdG9wX2xvc3MAAAAAAAALAAAAAAAAAAAAAAAQYWNjZXB0YWJsZV9wcmljZQAAAAsAAAAAAAAAAAAAAA10cmlnZ2VyX3ByaWNlAAAAAAAACwAAAAAAAAAAAAAADXRyaWdnZXJfYWJvdmUAAAAAAAABAAAAAAAAAAAAAAAKZXhwaXJlc19hdAAAAAAABgAAAAAAAAAC",
146
+ "AAAABQAAADpBIHRyYWRlciAocmUtKXBvaW50ZWQgdGhlbXNlbHZlcyBhdCBhIHJlZmVycmVyIHZpYSBhIGNvZGUuAAAAAAAAAAAAC1JlZmVycmVyU2V0AAAAAAEAAAAGcmVmc2V0AAAAAAADAAAAAAAAAAZ0cmFkZXIAAAAAABMAAAAAAAAAAAAAAAhyZWZlcnJlcgAAABMAAAAAAAAAAAAAAARjb2RlAAAAEQAAAAAAAAAB",
122
147
  "AAAABQAAAAAAAAAAAAAADFBhdXNlQ2hhbmdlZAAAAAEAAAAFcGF1c2UAAAAAAAABAAAAAAAAAAZwYXVzZWQAAAAAAAEAAAAAAAAAAQ==",
123
- "AAAABQAAAIRBIGNvbGxlY3RlZCBmZWUgc3BsaXQgaW50byBpdHMgcmV2ZW51ZSBzaGFyZXMuIGBscF9zaGFyZWAgc3RheXMgaW4gdGhlCnZhdWx0IGFzIExQIGNhc2g7IHRoZSBvdGhlciB0d28gYWNjcnVlIHRvIHRoZWlyIGNsYWltIHRvdGFscy4AAAAAAAAADFJldmVudWVTcGxpdAAAAAEAAAAIcmV2c3BsaXQAAAAGAAAAAAAAAAtwb3NpdGlvbl9pZAAAAAAGAAAAAAAAAAAAAAAGc291cmNlAAAAAAfQAAAACUZlZVNvdXJjZQAAAAAAAAAAAAAAAAAACWNvbGxlY3RlZAAAAAAAAAsAAAAAAAAAAAAAAAxrZWVwZXJfc2hhcmUAAAALAAAAAAAAAAAAAAAIbHBfc2hhcmUAAAALAAAAAAAAAAAAAAAOcHJvdG9jb2xfc2hhcmUAAAAAAAsAAAAAAAAAAQ==",
124
- "AAAABQAAADRBREwgcmV3YXJkIHBhaWQgZnJvbSB0aGUgcmlzay1rZWVwZXIgcmVzZXJ2ZSAowqcxNCkuAAAAAAAAAA1BZGxSZXdhcmRQYWlkAAAAAAAAAQAAAAlhZGxyZXdhcmQAAAAAAAADAAAAAAAAAAtwb3NpdGlvbl9pZAAAAAAGAAAAAAAAAAAAAAAGa2VlcGVyAAAAAAATAAAAAAAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAAAE=",
125
- "AAAABQAAAAAAAAAAAAAADU9yZGVyRXhlY3V0ZWQAAAAAAAABAAAAB29yZGV4ZWMAAAAAAwAAAAAAAAALcG9zaXRpb25faWQAAAAABgAAAAAAAAAAAAAACGV4ZWN1dG9yAAAAEwAAAAAAAAAAAAAAC2J1ZGdldF9wYWlkAAAAAAsAAAAAAAAAAQ==",
126
148
  "AAAABQAAAD5DYXNoIGFkZGVkIGR1cmluZyBhIHNob3J0ZmFsbCB3aXRob3V0IG1pbnRpbmcgc2hhcmVzICjCpzE1LjIpLgAAAAAAAAAAAA1SZWNhcGl0YWxpemVkAAAAAAAAAQAAAAVyZWNhcAAAAAAAAAIAAAAAAAAAC2NvbnRyaWJ1dG9yAAAAABMAAAAAAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAQ==",
149
+ "AAAABQAAAQpBIGNvbGxlY3RlZCBmZWUgc3BsaXQgaW50byBpdHMgcmV2ZW51ZSBzaGFyZXMuIGBscF9zaGFyZWAgc3RheXMgaW4gdGhlCnZhdWx0IGFzIExQIGNhc2g7IHRoZSBvdGhlcnMgYWNjcnVlIHRvIHRoZWlyIGNsYWltIHRvdGFscy4gYHJlZmVycmFsYCBpcwpjYXJ2ZWQgZnJvbSB0aGUgcHJvdG9jb2wgc2xpY2UgKG9ubHkgbm9uemVybyBvbiBhIHJlZmVycmVkIGNsb3NpbmcgZmVlKTsKYGtlZXBlciArIGxwICsgcHJvdG9jb2wgKyByZWZlcnJhbCA9PSBjb2xsZWN0ZWRgLgAAAAAAAAAAAAxSZXZlbnVlU3BsaXQAAAABAAAACHJldnNwbGl0AAAABwAAAAAAAAALcG9zaXRpb25faWQAAAAABgAAAAAAAAAAAAAABnNvdXJjZQAAAAAH0AAAAAlGZWVTb3VyY2UAAAAAAAAAAAAAAAAAAAljb2xsZWN0ZWQAAAAAAAALAAAAAAAAAAAAAAAMa2VlcGVyX3NoYXJlAAAACwAAAAAAAAAAAAAACGxwX3NoYXJlAAAACwAAAAAAAAAAAAAADnByb3RvY29sX3NoYXJlAAAAAAALAAAAAAAAAAAAAAAOcmVmZXJyYWxfc2hhcmUAAAAAAAsAAAAAAAAAAQ==",
150
+ "AAAABQAAAFhUYWtlLXByb2ZpdCAvIHN0b3AtbG9zcyB0cmlnZ2VycyBjaGFuZ2VkIG9uIGFuIG9wZW4gcG9zaXRpb24uIFplcm8gbWVhbnMKbm8gdHJpZ2dlciBzZXQuAAAAAAAAAAtUcFNsVXBkYXRlZAAAAAABAAAABHRwc2wAAAAFAAAAAAAAAAtwb3NpdGlvbl9pZAAAAAAGAAAAAQAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAAAAAAAGbWFya2V0AAAAAAARAAAAAAAAAAAAAAALdGFrZV9wcm9maXQAAAAACwAAAAAAAAAAAAAACXN0b3BfbG9zcwAAAAAAAAsAAAAAAAAAAg==",
151
+ "AAAABQAAAAAAAAAAAAAADU9yZGVyRXhlY3V0ZWQAAAAAAAABAAAAB29yZGV4ZWMAAAAAAwAAAAAAAAALcG9zaXRpb25faWQAAAAABgAAAAAAAAAAAAAACGV4ZWN1dG9yAAAAEwAAAAAAAAAAAAAAC2J1ZGdldF9wYWlkAAAAAAsAAAAAAAAAAQ==",
152
+ "AAAABQAAADRBREwgcmV3YXJkIHBhaWQgZnJvbSB0aGUgcmlzay1rZWVwZXIgcmVzZXJ2ZSAowqcxNCkuAAAAAAAAAA1BZGxSZXdhcmRQYWlkAAAAAAAAAQAAAAlhZGxyZXdhcmQAAAAAAAADAAAAAAAAAAtwb3NpdGlvbl9pZAAAAAAGAAAAAAAAAAAAAAAGa2VlcGVyAAAAAAATAAAAAAAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAAAE=",
153
+ "AAAAAgAAAC5XaHkgYW4gZW50cnkgb3JkZXIgd2FzIHJlbW92ZWQgYmVmb3JlIGZpbGxpbmcuAAAAAAAAAAAADENhbmNlbFJlYXNvbgAAAAMAAAAAAAAAF1RoZSBvd25lciBjYW5jZWxsZWQgaXQuAAAAAAVPd25lcgAAAAAAAAAAAAAjSXQgcGFzc2VkIGl0cyBleHBpcnkgYW5kIHdhcyBzd2VwdC4AAAAAB0V4cGlyZWQAAAAAAAAAAEZBIGZpbGwgYXR0ZW1wdCBjb3VsZCBub3QgcHVsbCB0aGUgY29sbGF0ZXJhbCAoYWxsb3dhbmNlL2JhbGFuY2UgZ29uZSkuAAAAAAAKUHVsbEZhaWxlZAAA",
154
+ "AAAABQAAACpBbiBlbnRyeSBvcmRlciB3YXMgcmVtb3ZlZCBiZWZvcmUgZmlsbGluZy4AAAAAAAAAAAAOT3JkZXJDYW5jZWxsZWQAAAAAAAEAAAAJb3JkY2FuY2VsAAAAAAAAAgAAAAAAAAAIb3JkZXJfaWQAAAAGAAAAAAAAAAAAAAAGcmVhc29uAAAAAAfQAAAADENhbmNlbFJlYXNvbgAAAAAAAAAB",
127
155
  "AAAABQAAAGpBIGZ1bGwgY2xvc2UgdmlhIGFueSBwYXRoIOKAlCBgcmVhc29uYCBkaXN0aW5ndWlzaGVzIHRyYWRlciBjbG9zZSwKbGlxdWlkYXRpb24sIEFETCwgYW5kIHRyaWdnZXJlZCBvcmRlcnMuAAAAAAAAAAAADlBvc2l0aW9uQ2xvc2VkAAAAAAABAAAACHBvc2Nsb3NlAAAAEgAAAAAAAAALcG9zaXRpb25faWQAAAAABgAAAAEAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAAAAAABm1hcmtldAAAAAAAEQAAAAAAAAAAAAAABnJlYXNvbgAAAAAH0AAAAAtDbG9zZVJlYXNvbgAAAAAAAAAAAAAAAARzaXplAAAACwAAAAAAAAAAAAAABXByaWNlAAAAAAAACwAAAAAAAAAAAAAAB3Jhd19wbmwAAAAACwAAAAAAAAAAAAAAC3BheWFibGVfcG5sAAAAAAsAAAAAAAAAOlJlc2lkdWFsIGNvbGxhdGVyYWwgcGFpZCB0byB0aGUgb3duZXIgYWZ0ZXIgdGhlIHdhdGVyZmFsbC4AAAAAABFjb2xsYXRlcmFsX3BheW91dAAAAAAAAAsAAAAAAAAAAAAAAAhiYWRfZGVidAAAAAsAAAAAAAAAAAAAABJsaXF1aWRhdGlvbl9yZXdhcmQAAAAAAAsAAAAAAAAAAAAAABlleGVjdXRpb25fYnVkZ2V0X3JlZnVuZGVkAAAAAAAACwAAAAAAAAA6wqcxMS4xIGNsb3NpbmcgZmVlIGNvbGxlY3RlZCBvdXQgb2YgdGhlIHJlYWxpemVkIHdpbm5pbmdzLgAAAAAAC2Nsb3NpbmdfZmVlAAAAAAsAAAAAAAAAAAAAABVyZWNlaXZlcl9mdW5kaW5nX3BhaWQAAAAAAAALAAAAAAAAAAAAAAAPbHBfZnVuZGluZ19wYWlkAAAAAAsAAAAAAAAAAAAAAAtib3Jyb3dfcGFpZAAAAAALAAAAAAAAAAAAAAAQZnVuZGluZ19yZWNlaXZlZAAAAAsAAAAAAAAAfE5lZ2F0aXZlIHByaWNlIFBuTCBjb2xsZWN0ZWQgZnJvbSBjb2xsYXRlcmFsOyB3aXRoIGBiYWRfZGVidGAgdGhpcwpkaXNhbWJpZ3VhdGVzIHRoZSBsb3NzLXZzLWZ1bmRpbmcgc3BsaXQgb2YgdGhlIHdhdGVyZmFsbC4AAAAObG9zc19jb2xsZWN0ZWQAAAAAAAsAAAAAAAAAAg==",
128
156
  "AAAABQAAAAAAAAAAAAAADlBvc2l0aW9uT3BlbmVkAAAAAAABAAAAB3Bvc29wZW4AAAAACwAAAAAAAAALcG9zaXRpb25faWQAAAAABgAAAAEAAAAAAAAABW93bmVyAAAAAAAAEwAAAAAAAAAAAAAABm1hcmtldAAAAAAAEQAAAAAAAAAAAAAAB2lzX2xvbmcAAAAAAQAAAAAAAAAAAAAABHNpemUAAAALAAAAAAAAAAAAAAANYmFzZV9leHBvc3VyZQAAAAAAAAsAAAAAAAAAAAAAABFzdG9yZWRfY29sbGF0ZXJhbAAAAAAAAAsAAAAAAAAAAAAAABBleGVjdXRpb25fYnVkZ2V0AAAACwAAAAAAAAAAAAAABXByaWNlAAAAAAAACwAAAAAAAAAaWmVybyBtZWFucyBubyB0cmlnZ2VyIHNldC4AAAAAAAt0YWtlX3Byb2ZpdAAAAAALAAAAAAAAAAAAAAAJc3RvcF9sb3NzAAAAAAAACwAAAAAAAAAC",
129
157
  "AAAABQAAAAAAAAAAAAAAD1Byb3RvY29sQ2xhaW1lZAAAAAABAAAACXByb3RjbGFpbQAAAAAAAAIAAAAAAAAACXJlY2lwaWVudAAAAAAAABMAAAAAAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAQ==",
158
+ "AAAABQAAAI9BIHJlZmVycmFsIHJld2FyZCB3YXMgYWNjcnVlZCB0byBhIHJlZmVycmVyIG91dCBvZiBhIHBvc2l0aW9uJ3MgY2xvc2luZwpmZWUgKGF0dHJpYnV0aW9uIGZvciB0aGUgaW5kZXhlcjsgdGhlIG1vbmV5IG1vdmUgaXMgaW4gYFJldmVudWVTcGxpdGApLgAAAAAAAAAAD1JlZmVycmFsQWNjcnVlZAAAAAABAAAAB3JlZmFjY3IAAAAAAwAAAAAAAAAIcmVmZXJyZXIAAAATAAAAAAAAAAAAAAALcG9zaXRpb25faWQAAAAABgAAAAAAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAAB",
159
+ "AAAABQAAADNBIHJlZmVycmVyIHdpdGhkcmV3IHRoZWlyIGFjY3J1ZWQgcmVmZXJyYWwgcmV3YXJkcy4AAAAAAAAAAA9SZWZlcnJhbENsYWltZWQAAAAAAQAAAAhyZWZjbGFpbQAAAAIAAAAAAAAACHJlZmVycmVyAAAAEwAAAAAAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAAB",
130
160
  "AAAABQAAAT9GdW5kaW5nL2JvcnJvdyBpbmRpY2VzIGFuZCBjdXJyZW50IHJhdGVzIGFmdGVyIGEga2VlcGVyIGNoZWNrcG9pbnQKKGB1cGRhdGVfaW5kaWNlc2ApLiBUaGUgb2ZmLWNoYWluIGZlZSBwcm9qZWN0aW9uIGFuZCBzdGFsZW5lc3MgbW9uaXRvcnMKa2V5IG9uIHRoaXMgZXZlbnQuIFZhbHVlcyBhcmUgZXhhY3QgYXQgYHRpbWVzdGFtcGA7IHBvc2l0aW9uIGFjdGlvbnMKYmV0d2VlbiBrZWVwZXIgcnVucyBjaGFuZ2UgZmxvd3MgYW5kIHJhdGVzIHdpdGhvdXQgZW1pdHRpbmcgb25lLCBzbwpwcm9qZWN0aW9ucyBjYXJyeSBrZWVwZXItY2FkZW5jZSBzdGFsZW5lc3MuAAAAAAAAAAAQTWFya2V0Q2hlY2twb2ludAAAAAEAAAAGbWt0Y2hrAAAAAAANAAAAAAAAAAZtYXJrZXQAAAAAABEAAAABAAAAAAAAABpyZWNlaXZlcl9iYWNrZWRfaW5kZXhfbG9uZwAAAAAACwAAAAAAAAAAAAAAG3JlY2VpdmVyX2JhY2tlZF9pbmRleF9zaG9ydAAAAAALAAAAAAAAAAAAAAAUbHBfYmFja2VkX2luZGV4X2xvbmcAAAALAAAAAAAAAAAAAAAVbHBfYmFja2VkX2luZGV4X3Nob3J0AAAAAAAACwAAAAAAAAAAAAAAE3JlY2VpdmVyX2luZGV4X2xvbmcAAAAACwAAAAAAAAAAAAAAFHJlY2VpdmVyX2luZGV4X3Nob3J0AAAACwAAAAAAAAAAAAAAEmN1cnJlbnRfcGF5ZXJfc2lkZQAAAAAH0AAAAAlQYXllclNpZGUAAAAAAAAAAAAAAAAAABJjdXJyZW50X3BheWVyX3JhdGUAAAAAAAsAAAAAAAAAAAAAAAhza2V3X2VtYQAAAAsAAAAAAAAAAAAAAAxib3Jyb3dfaW5kZXgAAAALAAAAAAAAAAAAAAATY3VycmVudF9ib3Jyb3dfcmF0ZQAAAAALAAAAAAAAAAAAAAAJdGltZXN0YW1wAAAAAAAABgAAAAAAAAAC",
131
- "AAAABQAAAI1BIHNpZGUgZW50ZXJlZCBvciBsZWZ0IGEgcmVzdHJpY3RlZCByaXNrIHN0YXRlICjCpzE0KS4gRW1pdHRlZCBvbmx5IG9uCmFjdHVhbCB0cmFuc2l0aW9ucyDigJQgdGhlIGtlZXBlcidzIHB1c2ggc2lnbmFsIGZvciBBREwvaGFyZC1jYXAgZHV0eS4AAAAAAAAAAAAAEFJpc2tTdGF0ZUNoYW5nZWQAAAABAAAACXJpc2tzdGF0ZQAAAAAAAAMAAAAAAAAABm1hcmtldAAAAAAAEQAAAAAAAAAAAAAAB2lzX2xvbmcAAAAAAQAAAAAAAAAAAAAABXN0YXRlAAAAAAAH0AAAAAlSaXNrU3RhdGUAAAAAAAAAAAAAAQ==",
132
161
  "AAAABQAAAKxBIHBhcnRpYWwgY2xvc2UgKMKnMTIuMikuIEZlZSBmaWVsZHMgYXJlIHRoZSBhbW91bnRzIGFjdHVhbGx5IGNvbGxlY3RlZCBpbgp0aGlzIHNldHRsZW1lbnQ7IGBmdW5kaW5nX3JlY2VpdmVkYCBpcyB0aGUgY3JlZGl0IGNhcGl0YWxpemVkIGZyb20gdGhlCmd1YXJhbnRlZWQgcmVjZWl2ZXIgY2xhaW0uAAAAAAAAABFQb3NpdGlvbkRlY3JlYXNlZAAAAAAAAAEAAAAGcG9zZGVjAAAAAAAPAAAAAAAAAAtwb3NpdGlvbl9pZAAAAAAGAAAAAQAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAAAAAAAGbWFya2V0AAAAAAARAAAAAAAAAAAAAAAMc2l6ZV9yZW1vdmVkAAAACwAAAAAAAAAAAAAABXByaWNlAAAAAAAACwAAAAAAAAAAAAAAB3Jhd19wbmwAAAAACwAAAAAAAAAAAAAAC3BheWFibGVfcG5sAAAAAAsAAAAAAAAAAAAAAA9yZWFsaXplZF9wYXlvdXQAAAAACwAAAAAAAAAAAAAAFGNvbGxhdGVyYWxfd2l0aGRyYXduAAAACwAAAAAAAAA6wqcxMS4xIGNsb3NpbmcgZmVlIGNvbGxlY3RlZCBvdXQgb2YgdGhlIHJlYWxpemVkIHdpbm5pbmdzLgAAAAAAC2Nsb3NpbmdfZmVlAAAAAAsAAAAAAAAAAAAAABVyZWNlaXZlcl9mdW5kaW5nX3BhaWQAAAAAAAALAAAAAAAAAAAAAAAPbHBfZnVuZGluZ19wYWlkAAAAAAsAAAAAAAAAAAAAAAtib3Jyb3dfcGFpZAAAAAALAAAAAAAAAAAAAAAQZnVuZGluZ19yZWNlaXZlZAAAAAsAAAAAAAAAAAAAAA5sb3NzX2NvbGxlY3RlZAAAAAAACwAAAAAAAAAC",
133
162
  "AAAABQAAAAAAAAAAAAAAEVBvc2l0aW9uSW5jcmVhc2VkAAAAAAAAAQAAAAZwb3NpbmMAAAAAAAwAAAAAAAAAC3Bvc2l0aW9uX2lkAAAAAAYAAAABAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAAAAAAAZtYXJrZXQAAAAAABEAAAAAAAAAAAAAAApzaXplX2FkZGVkAAAAAAALAAAAAAAAAAAAAAAKYmFzZV9hZGRlZAAAAAAACwAAAAAAAAAAAAAAEGNvbGxhdGVyYWxfYWRkZWQAAAALAAAAAAAAAAAAAAAFcHJpY2UAAAAAAAALAAAAAAAAACdTdG9yZWQgY29sbGF0ZXJhbCBhZnRlciBjYXBpdGFsaXphdGlvbi4AAAAAEXN0b3JlZF9jb2xsYXRlcmFsAAAAAAAACwAAAAAAAAB7QWNjcnVlZCBhbW91bnRzIHRoZSBpbmNyZWFzZSBjYXBpdGFsaXplZCBiZWZvcmUgYWRkaW5nIG5ldyBzaXplIOKAlAp0aGUgc2FtZSBkZWNvbXBvc2l0aW9uIHRoZSBkZWNyZWFzZS9jbG9zZSBldmVudHMgY2FycnkuAAAAABVyZWNlaXZlcl9mdW5kaW5nX3BhaWQAAAAAAAALAAAAAAAAAAAAAAAPbHBfZnVuZGluZ19wYWlkAAAAAAsAAAAAAAAAAAAAAAtib3Jyb3dfcGFpZAAAAAALAAAAAAAAAAAAAAAQZnVuZGluZ19yZWNlaXZlZAAAAAsAAAAAAAAAAg==",
163
+ "AAAABQAAAI1BIHNpZGUgZW50ZXJlZCBvciBsZWZ0IGEgcmVzdHJpY3RlZCByaXNrIHN0YXRlICjCpzE0KS4gRW1pdHRlZCBvbmx5IG9uCmFjdHVhbCB0cmFuc2l0aW9ucyDigJQgdGhlIGtlZXBlcidzIHB1c2ggc2lnbmFsIGZvciBBREwvaGFyZC1jYXAgZHV0eS4AAAAAAAAAAAAAEFJpc2tTdGF0ZUNoYW5nZWQAAAABAAAACXJpc2tzdGF0ZQAAAAAAAAMAAAAAAAAABm1hcmtldAAAAAAAEQAAAAAAAAAAAAAAB2lzX2xvbmcAAAAAAQAAAAAAAAAAAAAABXN0YXRlAAAAAAAH0AAAAAlSaXNrU3RhdGUAAAAAAAAAAAAAAQ==",
134
164
  "AAAABQAAAAAAAAAAAAAAE0dsb2JhbENvbmZpZ1VwZGF0ZWQAAAAAAQAAAAljZmdnbG9iYWwAAAAAAAABAAAAAAAAAAZjb25maWcAAAAAB9AAAAAMR2xvYmFsQ29uZmlnAAAAAAAAAAI=",
135
165
  "AAAABQAAAAAAAAAAAAAAE01hcmtldENvbmZpZ1VwZGF0ZWQAAAAAAQAAAAljZmdtYXJrZXQAAAAAAAACAAAAAAAAAAZtYXJrZXQAAAAAABEAAAABAAAAAAAAAAZjb25maWcAAAAAB9AAAAAMTWFya2V0Q29uZmlnAAAAAAAAAAI=",
136
166
  "AAAABQAAAAAAAAAAAAAAE01hcmtldFN0YXR1c0NoYW5nZWQAAAAAAQAAAAlta3RzdGF0dXMAAAAAAAACAAAAAAAAAAZtYXJrZXQAAAAAABEAAAAAAAAAAAAAAAhkaXNhYmxlZAAAAAEAAAAAAAAAAQ==",
137
167
  "AAAABQAAAFdSZXdhcmQgZm9yIHJldmVhbGluZyBhbiBpbnNvbHZlbnQgcG9zaXRpb24sIHBhaWQgZnJvbSB0aGUgcmlzay1rZWVwZXIKcmVzZXJ2ZSAowqcxMi4zKS4AAAAAAAAAABRJbnNvbHZlbmN5UmV3YXJkUGFpZAAAAAEAAAAJaW5zcmV3YXJkAAAAAAAAAwAAAAAAAAALcG9zaXRpb25faWQAAAAABgAAAAAAAAAAAAAABmtlZXBlcgAAAAAAEwAAAAAAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAAB",
138
168
  "AAAABQAAAAAAAAAAAAAAFUV4ZWN1dGlvbkJ1ZGdldEZ1bmRlZAAAAAAAAAEAAAAIYnVkZ2V0aW4AAAACAAAAAAAAAAtwb3NpdGlvbl9pZAAAAAAGAAAAAAAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAAAE=",
169
+ "AAAABQAAAEhBIHJlZmVycmVyIGNsYWltZWQgb3duZXJzaGlwIG9mIGEgcmVmZXJyYWwgY29kZSAob3duZXIgaW1tdXRhYmxlIGFmdGVyKS4AAAAAAAAAFlJlZmVycmFsQ29kZVJlZ2lzdGVyZWQAAAAAAAEAAAAGcmVmcmVnAAAAAAACAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAAAAAAARjb2RlAAAAEQAAAAAAAAAB",
139
170
  "AAAABQAAAAAAAAAAAAAAGEV4ZWN1dGlvbkJ1ZGdldFdpdGhkcmF3bgAAAAEAAAAJYnVkZ2V0b3V0AAAAAAAAAgAAAAAAAAALcG9zaXRpb25faWQAAAAABgAAAAAAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAAB",
140
- "AAAAAQAAAMbCpzUuMSBnbG9iYWwgc3RhdGU6IHRoZSBmaXZlIG5vbi1MUCBjbGFpbSB0b3RhbHMsIHRoZSByaXNrIGNvdW50ZXJzLCBhbmQKdGhlIGdsb2JhbCBib3Jyb3cgYWNjcnVhbC4gVGhlIHJlY2VpdmVyLWZ1bmRpbmcgbGlhYmlsaXR5IHRvdGFsIGlzIGZlZApwZXItbWFya2V0IGJ5IGBjaGVja3BvaW50OjpjaGVja3BvaW50X21hcmtldGAgKMKnOC4zKS4AAAAAAAAAAAAGTGVkZ2VyAAAAAAAMAAAAAAAAAAxib3Jyb3dfaW5kZXgAAAALAAAAAAAAABZib3Jyb3dfaW5kZXhfcmVtYWluZGVyAAAAAAALAAAAP2BJTkRFWF9QUkVDSVNJT05gLXNjYWxlZCBicHMvZGF5IHJhdGUgZm9yIHRoZSBjdXJyZW50IGludGVydmFsLgAAAAATY3VycmVudF9ib3Jyb3dfcmF0ZQAAAAALAAAAAAAAABZleGVjdXRpb25fYnVkZ2V0X3RvdGFsAAAAAAALAAAAAAAAABZsYXN0X2dsb2JhbF9jaGVja3BvaW50AAAAAAAGAAAAAAAAABVscF9ibG9ja2VkX3NpZGVfY291bnQAAAAAAAAEAAAAAAAAABNvcGVuX3Bvc2l0aW9uX2NvdW50AAAAAAYAAAAAAAAAHnBlbmRpbmdfcmVjZWl2ZXJfZnVuZGluZ190b3RhbAAAAAAACwAAAAAAAAAZcG9zaXRpb25fY29sbGF0ZXJhbF90b3RhbAAAAAAAAAsAAAAAAAAAGHByb3RvY29sX2NsYWltYWJsZV90b3RhbAAAAAsAAAAAAAAAGXJpc2tfa2VlcGVyX3Jlc2VydmVfdG90YWwAAAAAAAALAAAAAAAAABB0b3RhbF9yaXNrX3VuaXRzAAAACw==",
141
- "AAAAAgAAAAAAAAAAAAAAA0tleQAAAAANAAAAAAAAAAAAAAANQ29uZmlnTWFuYWdlcgAAAAAAAAAAAAAAAAAADE9yYWNsZVJvdXRlcgAAAAAAAAAAAAAABVZhdWx0AAAAAAAAAAAAAAAAAAAMR2xvYmFsQ29uZmlnAAAAAAAAAAAAAAALSW5pdGlhbGl6ZWQAAAAAAAAAAAAAAAAGUGF1c2VkAAAAAAAAAAAAAAAAAA5OZXh0UG9zaXRpb25JZAAAAAAAAAAAAAAAAAANQWN0aXZlTWFya2V0cwAAAAAAAAAAAAAAAAAABkxlZGdlcgAAAAAAAAAAAAAAAAAHVmVyc2lvbgAAAAABAAAAAAAAAAhQb3NpdGlvbgAAAAEAAAAGAAAAAQAAAAAAAAAGTWFya2V0AAAAAAABAAAAEQAAAAEAAAAAAAAADk1hcmtldERpc2FibGVkAAAAAAABAAAAEQ==",
171
+ "AAAABQAAAAAAAAAAAAAAB0JhZERlYnQAAAAAAQAAAAdiYWRkZWJ0AAAAAAIAAAAAAAAAC3Bvc2l0aW9uX2lkAAAAAAYAAAAAAAAAAAAAAAZhbW91bnQAAAAAAAsAAAAAAAAAAQ==",
172
+ "AAAAAQAAALjCpzUuMSBnbG9iYWwgc3RhdGU6IHRoZSBmaXZlIG5vbi1MUCBjbGFpbSB0b3RhbHMsIHRoZSByaXNrIGNvdW50ZXJzLCBhbmQKdGhlIGdsb2JhbCBib3Jyb3cgYWNjcnVhbC4gVGhlIHJlY2VpdmVyLWZ1bmRpbmcgbGlhYmlsaXR5IHRvdGFsIGlzIGZlZApwZXItbWFya2V0IGJ5IGBmdW5kaW5nOjphY2NydWVgICjCpzguMykuAAAAAAAAAAZMZWRnZXIAAAAAAA0AAAAAAAAADGJvcnJvd19pbmRleAAAAAsAAAAAAAAAFmJvcnJvd19pbmRleF9yZW1haW5kZXIAAAAAAAsAAAA/YElOREVYX1BSRUNJU0lPTmAtc2NhbGVkIGJwcy9kYXkgcmF0ZSBmb3IgdGhlIGN1cnJlbnQgaW50ZXJ2YWwuAAAAABNjdXJyZW50X2JvcnJvd19yYXRlAAAAAAsAAAAAAAAAFmV4ZWN1dGlvbl9idWRnZXRfdG90YWwAAAAAAAsAAAAAAAAAFmxhc3RfZ2xvYmFsX2NoZWNrcG9pbnQAAAAAAAYAAAAAAAAAFWxwX2Jsb2NrZWRfc2lkZV9jb3VudAAAAAAAAAQAAAAAAAAAE29wZW5fcG9zaXRpb25fY291bnQAAAAABgAAAAAAAAAecGVuZGluZ19yZWNlaXZlcl9mdW5kaW5nX3RvdGFsAAAAAAALAAAAAAAAABlwb3NpdGlvbl9jb2xsYXRlcmFsX3RvdGFsAAAAAAAACwAAAAAAAAAYcHJvdG9jb2xfY2xhaW1hYmxlX3RvdGFsAAAACwAAAQrCpzExLjEgcmVmZXJyYWwgcmV3YXJkcyBhY2NydWVkIGJ1dCBub3QgeWV0IGNsYWltZWQg4oCUIHRoZSBhZ2dyZWdhdGUKYmFja2luZyB0aGUgcGVyLXJlZmVycmVyIGBSZWZlcnJhbEJhbGFuY2VgIG1hcCAodGhlaXIgc3VtIGlzIHRoaXMKdG90YWwpLiBMaWtlIGV2ZXJ5IGNsYWltIGhlcmUgaXQgaXMgYSBsYWJlbCBvbiBjYXNoIGFscmVhZHkgaW4gdGhlCnZhdWx0LCBzbyBOQVYgYW5kIHRoZSBzb2x2ZW5jeSBjaGVja3MgbmV0IGl0IG91dCBhdXRvbWF0aWNhbGx5LgAAAAAAGHJlZmVycmFsX2NsYWltYWJsZV90b3RhbAAAAAsAAAAAAAAAGXJpc2tfa2VlcGVyX3Jlc2VydmVfdG90YWwAAAAAAAALAAAAAAAAABB0b3RhbF9yaXNrX3VuaXRzAAAACw==",
173
+ "AAAAAgAAAAAAAAAAAAAAClN0b3JhZ2VLZXkAAAAAABIAAAAAAAAAAAAAAA1Db25maWdNYW5hZ2VyAAAAAAAAAAAAAAAAAAAMT3JhY2xlUm91dGVyAAAAAAAAAAAAAAAFVmF1bHQAAAAAAAAAAAAAAAAAAAxHbG9iYWxDb25maWcAAAAAAAAAAAAAAAtJbml0aWFsaXplZAAAAAAAAAAAAAAAAAZQYXVzZWQAAAAAAAAAAAAAAAAADk5leHRQb3NpdGlvbklkAAAAAAAAAAAAAAAAAA1BY3RpdmVNYXJrZXRzAAAAAAAAAAAAAAAAAAAGTGVkZ2VyAAAAAAAAAAAAAAAAAAdWZXJzaW9uAAAAAAEAAAAAAAAACFBvc2l0aW9uAAAAAQAAAAYAAAABAAAAAAAAAAZNYXJrZXQAAAAAAAEAAAARAAAAAQAAAAAAAAAOTWFya2V0RGlzYWJsZWQAAAAAAAEAAAARAAAAAQAAAAAAAAAKRW50cnlPcmRlcgAAAAAAAQAAAAYAAAAAAAAAAAAAABBOZXh0RW50cnlPcmRlcklkAAAAAQAAAEVSZWZlcnJhbCBjb2RlIOKGkiBvd25pbmcgcmVmZXJyZXIgYWRkcmVzcyAob3duZXIgaW1tdXRhYmxlIG9uY2Ugc2V0KS4AAAAAAAAMUmVmZXJyYWxDb2RlAAAAAQAAABEAAAABAAAAQFRyYWRlciDihpIgdGhlaXIgcmVmZXJyZXIgYWRkcmVzcyAoZnJlZWx5IHJlLXNldCBieSB0aGUgdHJhZGVyKS4AAAAIUmVmZXJyZXIAAAABAAAAEwAAAAEAAABzUmVmZXJyZXIg4oaSIGFjY3J1ZWQgdW5jbGFpbWVkIHJlZmVycmFsIHJld2FyZHMuIFRoZSBwZXItcmVmZXJyZXIKYWxsb2NhdGlvbiBvZiBgTGVkZ2VyOjpyZWZlcnJhbF9jbGFpbWFibGVfdG90YWxgLgAAAAAPUmVmZXJyYWxCYWxhbmNlAAAAAAEAAAAT",
142
174
  "AAAAAAAAAAAAAAAFcGF1c2UAAAAAAAABAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAA",
143
175
  "AAAAAAAAAAAAAAAHbWlncmF0ZQAAAAACAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAH0AAAAA1NaWdyYXRpb25EYXRhAAAAAAAAAAAAAAhvcGVyYXRvcgAAABMAAAAA",
144
176
  "AAAAAAAAAAAAAAAHdW5wYXVzZQAAAAABAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAA",
@@ -147,7 +179,9 @@ export class Client extends ContractClient {
147
179
  "AAAAAAAAAAAAAAAJc2V0X3ZhdWx0AAAAAAAAAgAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAV2YXVsdAAAAAAAABMAAAAA",
148
180
  "AAAAAAAAAAAAAAAKZ2V0X21hcmtldAAAAAAAAQAAAAAAAAAGbWFya2V0AAAAAAARAAAAAQAAB9AAAAAGTWFya2V0AAA=",
149
181
  "AAAAAAAAAAAAAAAMZ2V0X3Bvc2l0aW9uAAAAAQAAAAAAAAALcG9zaXRpb25faWQAAAAABgAAAAEAAAfQAAAACFBvc2l0aW9u",
182
+ "AAAAAAAAAAAAAAAMZ2V0X3JlZmVycmVyAAAAAQAAAAAAAAAGdHJhZGVyAAAAAAATAAAAAQAAA+gAAAAT",
150
183
  "AAAAAAAAAAAAAAAMcmVjYXBpdGFsaXplAAAAAgAAAAAAAAALY29udHJpYnV0b3IAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAA==",
184
+ "AAAAAAAAAAAAAAAMc2V0X3JlZmVycmVyAAAAAgAAAAAAAAAGdHJhZGVyAAAAAAATAAAAAAAAAARjb2RlAAAAEQAAAAA=",
151
185
  "AAAAAAAAAAAAAAANX19jb25zdHJ1Y3RvcgAAAAAAAAMAAAAAAAAADmNvbmZpZ19tYW5hZ2VyAAAAAAATAAAAAAAAAA1vcmFjbGVfcm91dGVyAAAAAAAAEwAAAAAAAAAGY29uZmlnAAAAAAfQAAAADEdsb2JhbENvbmZpZwAAAAA=",
152
186
  "AAAAAAAAAAAAAAANYnVtcF9wb3NpdGlvbgAAAAAAAAEAAAAAAAAAC3Bvc2l0aW9uX2lkAAAAAAYAAAAA",
153
187
  "AAAAAAAAAAAAAAANZW5hYmxlX21hcmtldAAAAAAAAAIAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAAGbWFya2V0AAAAAAARAAAAAA==",
@@ -158,22 +192,31 @@ export class Client extends ContractClient {
158
192
  "AAAAAAAAAAAAAAAOYWN0aXZlX21hcmtldHMAAAAAAAAAAAABAAAD6gAAABE=",
159
193
  "AAAAAAAAAAAAAAAOY2FuY2VsX3VwZ3JhZGUAAAAAAAEAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAA=",
160
194
  "AAAAAAAAAAAAAAAOY2xhaW1fcHJvdG9jb2wAAAAAAAMAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAAJcmVjaXBpZW50AAAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAA==",
195
+ "AAAAAAAAAAAAAAAOY2xhaW1fcmVmZXJyYWwAAAAAAAEAAAAAAAAACHJlZmVycmVyAAAAEwAAAAA=",
161
196
  "AAAAAAAAAAAAAAAOZGlzYWJsZV9tYXJrZXQAAAAAAAIAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAAGbWFya2V0AAAAAAARAAAAAA==",
162
197
  "AAAAAAAAAAAAAAAOdXBkYXRlX2luZGljZXMAAAAAAAIAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAANbWFya2V0X3N5bWJvbAAAAAAAABEAAAAA",
198
+ "AAAAAAAAAAAAAAAPZ2V0X2VudHJ5X29yZGVyAAAAAAEAAAAAAAAACG9yZGVyX2lkAAAABgAAAAEAAAfQAAAACkVudHJ5T3JkZXIAAA==",
163
199
  "AAAAAAAAAAAAAAAPcHJvcG9zZV91cGdyYWRlAAAAAAIAAAAAAAAABmNhbGxlcgAAAAAAEwAAAAAAAAAJd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAA",
200
+ "AAAAAAAAAAAAAAAQcmVmZXJyYWxfYmFsYW5jZQAAAAEAAAAAAAAACHJlZmVycmVyAAAAEwAAAAEAAAAL",
164
201
  "AAAAAAAAAAAAAAARZGVjcmVhc2VfcG9zaXRpb24AAAAAAAAEAAAAAAAAAAtwb3NpdGlvbl9pZAAAAAAGAAAAAAAAAAxzaXplX3JlbW92ZWQAAAALAAAAAAAAABRjb2xsYXRlcmFsX3dpdGhkcmF3bgAAAAsAAAAAAAAAEGFjY2VwdGFibGVfcHJpY2UAAAALAAAAAA==",
165
202
  "AAAAAAAAAAAAAAARaW5jcmVhc2VfcG9zaXRpb24AAAAAAAAEAAAAAAAAAAtwb3NpdGlvbl9pZAAAAAAGAAAAAAAAAApzaXplX2FkZGVkAAAAAAALAAAAAAAAABBjb2xsYXRlcmFsX2FkZGVkAAAACwAAAAAAAAAQYWNjZXB0YWJsZV9wcmljZQAAAAsAAAAA",
203
+ "AAAAAAAAAAAAAAARcGxhY2VfZW50cnlfb3JkZXIAAAAAAAADAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAABm1hcmtldAAAAAAAEQAAAAAAAAAGcGFyYW1zAAAAAAfQAAAAEEVudHJ5T3JkZXJQYXJhbXMAAAABAAAABg==",
166
204
  "AAAAAAAAAAAAAAARc2V0X2dsb2JhbF9jb25maWcAAAAAAAACAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAAAAAABmNvbmZpZwAAAAAH0AAAAAxHbG9iYWxDb25maWcAAAAA",
167
205
  "AAAAAAAAAAAAAAARc2V0X21hcmtldF9jb25maWcAAAAAAAADAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAAAAAADW1hcmtldF9zeW1ib2wAAAAAAAARAAAAAAAAAAZjb25maWcAAAAAB9AAAAAMTWFya2V0Q29uZmlnAAAAAA==",
206
+ "AAAAAAAAAAAAAAASY2FuY2VsX2VudHJ5X29yZGVyAAAAAAABAAAAAAAAAAhvcmRlcl9pZAAAAAYAAAAA",
168
207
  "AAAAAAAAAAAAAAASaXNfbWFya2V0X2Rpc2FibGVkAAAAAAABAAAAAAAAAAZtYXJrZXQAAAAAABEAAAABAAAAAQ==",
169
208
  "AAAAAAAAAAAAAAASbGlxdWlkYXRlX3Bvc2l0aW9uAAAAAAACAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAAAAAAC3Bvc2l0aW9uX2lkAAAAAAYAAAAA",
170
209
  "AAAAAAAAAAAAAAATYWNjb3VudGluZ19zbmFwc2hvdAAAAAACAAAAAAAAAAVyb3VuZAAAAAAAB9AAAAALT3JhY2xlUm91bmQAAAAAAAAAAAhwaHlzaWNhbAAAAAsAAAABAAAH0AAAABJBY2NvdW50aW5nU25hcHNob3QAAA==",
171
210
  "AAAAAAAAAAAAAAATZGVsZXZlcmFnZV9wb3NpdGlvbgAAAAACAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAAAAAAC3Bvc2l0aW9uX2lkAAAAAAYAAAAA",
211
+ "AAAAAAAAAAAAAAATZXhlY3V0ZV9lbnRyeV9vcmRlcgAAAAACAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAAAAAACG9yZGVyX2lkAAAABgAAAAA=",
172
212
  "AAAAAAAAAAAAAAATcHJlcGFyZV9scF9zbmFwc2hvdAAAAAADAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAAAAAABXJvdW5kAAAAAAAH0AAAAAtPcmFjbGVSb3VuZAAAAAAAAAAACHBoeXNpY2FsAAAACwAAAAEAAAfQAAAAEkFjY291bnRpbmdTbmFwc2hvdAAA",
213
+ "AAAAAAAAAAAAAAATcmVmZXJyYWxfY29kZV9vd25lcgAAAAABAAAAAAAAAARjb2RlAAAAEQAAAAEAAAPoAAAAEw==",
173
214
  "AAAAAAAAAAAAAAATcmVmcmVzaF9ib3Jyb3dfcmF0ZQAAAAACAAAAAAAAAAZjYWxsZXIAAAAAABMAAAAAAAAACHBoeXNpY2FsAAAACwAAAAA=",
174
215
  "AAAAAAAAAAAAAAAVY2FuX2NyZWF0ZV9scF9yZXF1ZXN0AAAAAAAAAgAAAAAAAAAGY2FsbGVyAAAAAAATAAAAAAAAAAhwaHlzaWNhbAAAAAsAAAABAAAAAQ==",
175
216
  "AAAAAAAAAAAAAAAVZnVuZF9leGVjdXRpb25fYnVkZ2V0AAAAAAAAAgAAAAAAAAALcG9zaXRpb25faWQAAAAABgAAAAAAAAAGYW1vdW50AAAAAAALAAAAAA==",
217
+ "AAAAAAAAAAAAAAAWcmVnaXN0ZXJfcmVmZXJyYWxfY29kZQAAAAAAAgAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAARjb2RlAAAAEQAAAAA=",
176
218
  "AAAAAAAAAAAAAAAYcHJvdG9jb2xfY2xhaW1hYmxlX3RvdGFsAAAAAAAAAAEAAAAL",
219
+ "AAAAAAAAAAAAAAAYcmVmZXJyYWxfY2xhaW1hYmxlX3RvdGFsAAAAAAAAAAEAAAAL",
177
220
  "AAAAAAAAAAAAAAAZcmlza19rZWVwZXJfcmVzZXJ2ZV90b3RhbAAAAAAAAAAAAAABAAAACw==",
178
221
  "AAAAAAAAAAAAAAAZd2l0aGRyYXdfZXhlY3V0aW9uX2J1ZGdldAAAAAAAAAIAAAAAAAAAC3Bvc2l0aW9uX2lkAAAAAAYAAAAAAAAABmFtb3VudAAAAAAACwAAAAA=",
179
222
  "AAAAAAAAAAAAAAAecGVuZGluZ19yZWNlaXZlcl9mdW5kaW5nX3RvdGFsAAAAAAAAAAAAAQAAAAs=",
@@ -183,16 +226,18 @@ export class Client extends ContractClient {
183
226
  "AAAAAQAAAAAAAAAAAAAACUxwUmVxdWVzdAAAAAAAAAcAAAAAAAAABmFtb3VudAAAAAAACwAAAAAAAAANZXhlY3V0ZV9hZnRlcgAAAAAAAAYAAAAAAAAAAmlkAAAAAAAGAAAAAAAAAARraW5kAAAH0AAAAA1McFJlcXVlc3RLaW5kAAAAAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAADHJlcXVlc3RfdGltZQAAAAYAAAAAAAAABnN0YXR1cwAAAAAH0AAAAA9McFJlcXVlc3RTdGF0dXMA",
184
227
  "AAAAAgAAANFXaGljaCBzaWRlIGN1cnJlbnRseSBwYXlzIGZ1bmRpbmcgKMKnOC4xOiB0aGUgc2lkZSB0aGUgYmxlbmRlZCBpbnRlZ3JhbApza2V3IHBvaW50cyBhdCDigJQgdW5kZXIgdGhlIEVNQSB0aGlzIGNhbiBiZSB0aGUgKmxpZ2h0ZXIqIHNpZGUgZm9yIGEKd2hpbGUgYWZ0ZXIgdGhlIGJvb2sgZmxpcHMpLiBgTm9uZWAgd2hlbiB0aGUgYmxlbmQgaXMgZXhhY3RseSB6ZXJvLgAAAAAAAAAAAAAJUGF5ZXJTaWRlAAAAAAAAAwAAAAAAAAAAAAAABE5vbmUAAAAAAAAAAAAAAARMb25nAAAAAAAAAAAAAAAFU2hvcnQAAAA=",
185
228
  "AAAAAgAAAAAAAAAAAAAACVJpc2tTdGF0ZQAAAAAAAAQAAAAAAAAAAAAAAAZOb3JtYWwAAAAAAAAAAAAAAAAAB1dhcm5pbmcAAAAAAAAAAAAAAAADQWRsAAAAAAAAAAAAAAAAB0hhcmRDYXAA",
229
+ "AAAAAQAAATJBIHBlbmRpbmcgbGltaXQvc3RvcCBlbnRyeSBvcmRlcjogdGhlIGZyb3plbiBgb3Blbl9wb3NpdGlvbmAgYXJndW1lbnRzCnBsdXMgYSB0cmlnZ2VyIGNvbmRpdGlvbiBhbmQgYW4gZXhwaXJ5LiBQbGFjaW5nIG9uZSBvbmx5IHdyaXRlcyB0aGlzCnJlY29yZCDigJQgbm8gZnVuZHMgbW92ZS4gQSBrZWVwZXIncyBgZXhlY3V0ZV9lbnRyeV9vcmRlcmAgcHVsbHMgdGhlCmNvbGxhdGVyYWwgdmlhIHRoZSBvd25lcidzIHRva2VuIGFsbG93YW5jZSBhbmQgb3BlbnMgdGhlIHBvc2l0aW9uCmV4YWN0bHkgYXMgYSBtYXJrZXQgb3BlbiB3b3VsZC4AAAAAAAAAAAAKRW50cnlPcmRlcgAAAAAADQAAAAAAAAAQYWNjZXB0YWJsZV9wcmljZQAAAAsAAAAAAAAACmNvbGxhdGVyYWwAAAAAAAsAAAAAAAAAEGV4ZWN1dGlvbl9idWRnZXQAAAALAAAAZ0xlZGdlciB0aW1lc3RhbXAgYWZ0ZXIgd2hpY2ggdGhlIG9yZGVyIGlzIGRlYWQgYW5kIHN3ZXB0IG9uIHRoZSBuZXh0CnRvdWNoICh1c2VyLWNvbmZpZ3VyYWJsZSBtYXggVFRMKS4AAAAACmV4cGlyZXNfYXQAAAAAAAYAAAAAAAAAAmlkAAAAAAAGAAAAAAAAAAdpc19sb25nAAAAAAEAAAAAAAAABm1hcmtldAAAAAAAEQAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAARzaXplAAAACwAAAAAAAAAJc3RvcF9sb3NzAAAAAAAACwAAAAAAAAALdGFrZV9wcm9maXQAAAAACwAAALJUcnVlIOKGkiBmaWxsIHdoZW4gcHJpY2Ug4omlIHRyaWdnZXIgKHN0b3AvYnJlYWtvdXQgZW50cnkpOyBmYWxzZSDihpIgZmlsbAp3aGVuIHByaWNlIOKJpCB0cmlnZ2VyIChsaW1pdC9kaXAgZW50cnkpLiBJbmZlcnJlZCBhdCBwbGFjZW1lbnQgZnJvbQp0aGUgdHJpZ2dlciB2cy4gdGhlIGN1cnJlbnQgcHJpY2UuAAAAAAANdHJpZ2dlcl9hYm92ZQAAAAAAAAEAAAA1VGhlIG9yYWNsZSBwcmljZSBhdCB3aGljaCB0aGUgb3JkZXIgYmVjb21lcyBmaWxsYWJsZS4AAAAAAAANdHJpZ2dlcl9wcmljZQAAAAAAAAs=",
186
230
  "AAAAAQAAAAAAAAAAAAAACk1hcmtldFNpZGUAAAAAAAUAAAAAAAAADWJhc2VfZXhwb3N1cmUAAAAAAAALAAAAAAAAAApyaXNrX3N0YXRlAAAAAAfQAAAACVJpc2tTdGF0ZQAAAAAAAAAAAAAKcmlza191bml0cwAAAAAACwAAAAAAAAASc2l6ZV9vcGVuX2ludGVyZXN0AAAAAAALAAAAAAAAABdzdG9yZWRfY29sbGF0ZXJhbF90b3RhbAAAAAAL",
187
231
  "AAAAAQAAAAAAAAAAAAAAClJvdW5kUHJpY2UAAAAAAAIAAAAAAAAABXByaWNlAAAAAAAACwAAAAAAAAAGc3ltYm9sAAAAAAAR",
188
232
  "AAAAAQAAAAAAAAAAAAAAC09yYWNsZVJvdW5kAAAAAAUAAAAAAAAAAmlkAAAAAAAGAAAAAAAAAAtwcmV2aW91c19pZAAAAAAGAAAAAAAAABJwcmV2aW91c190aW1lc3RhbXAAAAAAAAYAAAAAAAAABnByaWNlcwAAAAAD6gAAB9AAAAAKUm91bmRQcmljZQAAAAAAAAAAAAl0aW1lc3RhbXAAAAAAAAAG",
189
- "AAAAAQAAAAAAAAAAAAAADEdsb2JhbENvbmZpZwAAAAwAAAAAAAAAGGJhc2VfYm9ycm93X3JhdGVfYnBzX2RheQAAAAsAAABfwqc4LjEgaGFsZi1saWZlIG9mIHRoZSBmdW5kaW5nIHNrZXcgRU1BLCBzZWNvbmRzIChnbG9iYWw6IG9uZSBtZW1vcnkKaG9yaXpvbiBmb3IgZXZlcnkgbWFya2V0KS4AAAAAGWZ1bmRpbmdfaGFsZl9saWZlX3NlY29uZHMAAAAAAAAGAAAAAAAAABloYXJkX2NhcF9mYWN0b3JfbGltaXRfYnBzAAAAAAAABAAAAAAAAAAUbHBfcmV2ZW51ZV9zaGFyZV9icHMAAAAEAAAAAAAAABJtYXhfYWN0aXZlX21hcmtldHMAAAAAAAQAAAAAAAAADm1heF9hZGxfcmV3YXJkAAAAAAALAAAAAAAAABptYXhfaW5zb2x2ZW50X3RvdWNoX3Jld2FyZAAAAAAACwAAAAAAAAAbbWF4X3ZhcmlhYmxlX2JvcnJvd19icHNfZGF5AAAAAAsAAAAAAAAADm1pbl9jb2xsYXRlcmFsAAAAAAALAAAAAAAAABVtaW5fcG9zaXRpb25fbGlmZXRpbWUAAAAAAAAGAAAAAAAAABdyaXNrX2NhcGFjaXR5X2xpbWl0X2JwcwAAAAAEAAAAAAAAAB1yaXNrX2tlZXBlcl9yZXZlbnVlX3NoYXJlX2JwcwAAAAAAAAQ=",
233
+ "AAAAAQAAAAAAAAAAAAAADEdsb2JhbENvbmZpZwAAAA8AAAAAAAAAGGJhc2VfYm9ycm93X3JhdGVfYnBzX2RheQAAAAsAAACEwqc5LjIgYm9ycm93LWN1cnZlIGV4cG9uZW50LCBicHM6IDIwXzAwMCA9IHXCsiAobGVnYWN5IHF1YWRyYXRpYyksCjEwXzAwMCA9IGxpbmVhci4gQm91bmRlZCB0byDiiaQgMTAwXzAwMCAoZSDiiaQgMTApIGJ5IHZhbGlkYXRpb24uAAAAE2JvcnJvd19leHBvbmVudF9icHMAAAAABAAAAF/CpzguMSBoYWxmLWxpZmUgb2YgdGhlIGZ1bmRpbmcgc2tldyBFTUEsIHNlY29uZHMgKGdsb2JhbDogb25lIG1lbW9yeQpob3Jpem9uIGZvciBldmVyeSBtYXJrZXQpLgAAAAAZZnVuZGluZ19oYWxmX2xpZmVfc2Vjb25kcwAAAAAAAAYAAAAAAAAAGWhhcmRfY2FwX2ZhY3Rvcl9saW1pdF9icHMAAAAAAAAEAAAAAAAAABRscF9yZXZlbnVlX3NoYXJlX2JwcwAAAAQAAAAAAAAAEm1heF9hY3RpdmVfbWFya2V0cwAAAAAABAAAAAAAAAAObWF4X2FkbF9yZXdhcmQAAAAAAAsAAAAAAAAAGm1heF9pbnNvbHZlbnRfdG91Y2hfcmV3YXJkAAAAAAALAAAAAAAAABttYXhfdmFyaWFibGVfYm9ycm93X2Jwc19kYXkAAAAACwAAANDCpzExLjIgbWluaW11bSBib3Jyb3cgY2hhcmdlIHBlciBjYXBpdGFsaXphdGlvbjogYW4gaW5kZXggZGVsdGEgYXQKYElOREVYX1BSRUNJU0lPTmAgc2NhbGUgYXBwbGllZCB0byB0aGUgcG9zaXRpb24ncyByaXNrIHVuaXRzCigyZTExID0gMiBicHMgb2Ygbm90aW9uYWwgYXQgYSAxMCUgbWFya2V0IHJpc2sgZmFjdG9yKS4gWmVybwpkaXNhYmxlcyB0aGUgZmxvb3IuAAAAFm1pbl9ib3Jyb3dfaW5kZXhfZGVsdGEAAAAAAAsAAAAAAAAADm1pbl9jb2xsYXRlcmFsAAAAAAALAAAAAAAAABVtaW5fcG9zaXRpb25fbGlmZXRpbWUAAAAAAAAGAAABEsKnMTEuMSBzaGFyZSBvZiBhIGNsb3NpbmcgZmVlIHJvdXRlZCB0byB0aGUgdHJhZGVyJ3MgcmVmZXJyZXIsIGNhcnZlZApmcm9tIHRoZSBwcm90b2NvbCBzbGljZSAoa2VlcGVyIGFuZCBMUCBzaGFyZXMgYXJlIHVudG91Y2hlZCkuIGAwYApkaXNhYmxlcyByZWZlcnJhbCBhY2NydWFsIGdsb2JhbGx5IOKAlCBhIGtpbGwgc3dpdGNoLiBWYWxpZGF0ZWQgc28KYGxwICsga2VlcGVyICsgcmVmZXJyYWwg4omkIEJQU2AsIGtlZXBpbmcgdGhlIHByb3RvY29sIHJlbWFpbmRlciDiiaUgMC4AAAAAABZyZWZlcnJhbF9mZWVfc2hhcmVfYnBzAAAAAAAEAAAAAAAAABdyaXNrX2NhcGFjaXR5X2xpbWl0X2JwcwAAAAAEAAAAAAAAAB1yaXNrX2tlZXBlcl9yZXZlbnVlX3NoYXJlX2JwcwAAAAAAAAQ=",
190
234
  "AAAAAQAAAAAAAAAAAAAADE1hcmtldENvbmZpZwAAABEAAAAAAAAAEmFkbF9wbmxfZmFjdG9yX2JwcwAAAAAABAAAAAAAAAAOYWRsX3Jld2FyZF9icHMAAAAAAAQAAAA0wqcxMS4xIGNsb3NpbmctZmVlIHRpZXIgd2hlbiB0aGUgY2xvc2Ugd29yc2VucyBza2V3LgAAABJjbG9zZV9mZWVfaGlnaF9icHMAAAAAAAQAAABCwqcxMS4xIGNsb3NpbmctZmVlIHRpZXIgd2hlbiB0aGUgY2xvc2UgaW1wcm92ZXMgb3IgcHJlc2VydmVzIHNrZXcuAAAAAAARY2xvc2VfZmVlX2xvd19icHMAAAAAAAAEAAAAAAAAABdoYXJkX2NhcF9wbmxfZmFjdG9yX2JwcwAAAAAEAAAAgk1hcmdpbiByZXF1aXJlZCB0byBvcGVuIG9yIGFkZCByaXNrICjCpzEyLjMpLiBEaXZpZGVzIG1heCBsZXZlcmFnZToKYSBwb3NpdGlvbiBtYXkgbm90IGJlIGNyZWF0ZWQgY2xvc2VyIHRvIGxpcXVpZGF0aW9uIHRoYW4gdGhpcy4AAAAAABJpbml0aWFsX21hcmdpbl9icHMAAAAAAAQAAACHwqc4LjEgd2VpZ2h0IG9mIHRoZSBpbnN0YW50YW5lb3VzIHNrZXcgaW4gdGhlIGZ1bmRpbmcgYmxlbmQsIGluIGJwczsKdGhlIHJlc3QgaXMgdGhlIGhhbGYtbGlmZSBFTUEuIGBCUFNgIHJlcHJvZHVjZXMgcHVyZSBpbnN0YW50IHNrZXcuAAAAABJpbnN0YW50X3dlaWdodF9icHMAAAAAAAQAAAAAAAAAFmxpcXVpZGF0aW9uX3Jld2FyZF9icHMAAAAAAAQAAAB8TWFyZ2luIGJlbG93IHdoaWNoIHRoZSBwb3NpdGlvbiBpcyBsaXF1aWRhdGFibGUgKMKnMTIuMykuIE11c3Qgbm90CmV4Y2VlZCBgaW5pdGlhbF9tYXJnaW5fYnBzYDsgdGhlIGdhcCBpcyB0aGUgZW50cnkgYnVmZmVyLgAAABZtYWludGVuYW5jZV9tYXJnaW5fYnBzAAAAAAAEAAAAAAAAABZtYXJrZXRfcmlza19mYWN0b3JfYnBzAAAAAAAEAAAAAAAAABhtYXhfZnVuZGluZ19yYXRlX2Jwc19kYXkAAAALAAAAAAAAABZtYXhfbG9uZ19iYXNlX2V4cG9zdXJlAAAAAAALAAAAAAAAABttYXhfbG9uZ19zaXplX29wZW5faW50ZXJlc3QAAAAACwAAAAAAAAAXbWF4X3Nob3J0X2Jhc2VfZXhwb3N1cmUAAAAACwAAAAAAAAAcbWF4X3Nob3J0X3NpemVfb3Blbl9pbnRlcmVzdAAAAAsAAAAAAAAAF3JlY292ZXJ5X3BubF9mYWN0b3JfYnBzAAAAAAQAAAAAAAAAFndhcm5pbmdfcG5sX2ZhY3Rvcl9icHMAAAAAAAQ=",
191
235
  "AAAAAQAAAC5HbG9iYWwgc2FmZXR5IHRocmVzaG9sZHMgZm9yIHByaWNlIHZhbGlkYXRpb24uAAAAAAAAAAAADE9yYWNsZUNvbmZpZwAAAAQAAADzSG93IGxvbmcgYSBjYWNoZWQgYWdncmVnYXRlZCBwcmljZSByZW1haW5zIHZhbGlkIGFmdGVyIHRoZSByb3V0ZXIKZmV0Y2ggKGluIHNlY29uZHMpLiBBIGNhY2hlIGhpdCBhbHNvIHJlcXVpcmVzIGV2ZXJ5IHNvdXJjZSB0aW1lc3RhbXAKdXNlZCBmb3IgdGhlIGNhY2hlZCBtZWRpYW4gdG8gcmVtYWluIHdpdGhpbiBgc3RhbGVuZXNzX3RocmVzaG9sZGAuCk11c3QgYmUgPiAwIGFuZCA8PSBgc3RhbGVuZXNzX3RocmVzaG9sZGAuAAAAAA5jYWNoZV9kdXJhdGlvbgAAAAAABgAAAIlNYXhpbXVtIGFsbG93ZWQgc3ByZWFkIGJldHdlZW4gb3JhY2xlIHNvdXJjZXMgaW4gYmFzaXMgcG9pbnRzCihlLmcuLCAxMDAgPSAxJSkuIEJvdW5kZWQgYXQgYGNyYXRlOjpjb25zdGFudHM6Ok1BWF9ERVZJQVRJT05fQlBTX0NFSUxJTkdgLgAAAAAAABFtYXhfZGV2aWF0aW9uX2JwcwAAAAAAAAsAAADhTWluaW11bSBudW1iZXIgb2Ygc291cmNlIHJlc3BvbnNlcyB0aGF0IG11c3QgYWdyZWUgd2l0aGluCmBtYXhfZGV2aWF0aW9uX2Jwc2AgZm9yIE9yYWNsZVJvdXRlciB0byByZXR1cm4gYSBwcmljZS4gRmxvb3JlZCBhdApgY3JhdGU6OmNvbnN0YW50czo6TUlOX1JFUVVJUkVEX1NPVVJDRVNfRkxPT1JgLCBjZWlsaW5nZWQgYXQKYGNyYXRlOjpjb25zdGFudHM6Ok1BWF9PUkFDTEVfU09VUkNFU2AuAAAAAAAAFG1pbl9yZXF1aXJlZF9zb3VyY2VzAAAABAAAAFlNYXhpbXVtIGFnZSBvZiBhbiBleHRlcm5hbCBTRVAtNDAgcHJpY2UgZmVlZCBiZWZvcmUgaXQgaXMgcmVqZWN0ZWQKYXMgc3RhbGUgKGluIHNlY29uZHMpLgAAAAAAABNzdGFsZW5lc3NfdGhyZXNob2xkAAAAAAY=",
192
236
  "AAAAAgAAAAAAAAAAAAAADUxwUmVxdWVzdEtpbmQAAAAAAAACAAAAAAAAAAAAAAAHRGVwb3NpdAAAAAAAAAAAAAAAAApXaXRoZHJhd2FsAAA=",
193
237
  "AAAAAQAAAEtEYXRhIHJlcXVpcmVkIGR1cmluZyBhIFdBU00gbWlncmF0aW9uLiBTaW5nbGUgZGVmaW5pdGlvbiBmb3IgYWxsIGNvbnRyYWN0cy4AAAAAAAAAAA1NaWdyYXRpb25EYXRhAAAAAAAAAQAAAAAAAAAHdmVyc2lvbgAAAAAE",
194
238
  "AAAAAQAAAbBQZW5kaW5nIFdBU00gdXBncmFkZSDigJQgc2V0IGJ5IGBwcm9wb3NlX3VwZ3JhZGVgLCBjb25zdW1lZCBieSBgdXBncmFkZWAKKGNsZWFyZWQgYXRvbWljYWxseSBvbiBhIHN1Y2Nlc3NmdWwgaW5zdGFsbCksIG9yIGNsZWFyZWQgYnkgYGNhbmNlbF91cGdyYWRlYC4KU2luZ2xlIHNoYXBlIGFjcm9zcyBldmVyeSBwcm90b2NvbCBjb250cmFjdC4gQ29udHJhY3RzIHN0b3JlIGl0IGF0CnRoZSBzaGFyZWQgYHBlbmRpbmdfdXBncmFkZWAgU3ltYm9sIGtleSBpbiB0aGVpciBvd24gaW5zdGFuY2Ugc3RvcmFnZSAoc2VlCmBjcmF0ZTo6dXBncmFkZTo6cGVuZGluZ191cGdyYWRlX2tleWApLiBgdXBncmFkZWAgcmVmdXNlcyB0byBpbnN0YWxsCnVubGVzcyBgcGVuZGluZy53YXNtX2hhc2hgIG1hdGNoZXMgdGhlIHN1cHBsaWVkIGhhc2ggYW5kIGBub3cgPj0gZXRhYC4AAAAAAAAADlBlbmRpbmdVcGdyYWRlAAAAAAACAAAAAAAAAANldGEAAAAABgAAAAAAAAAJd2FzbV9oYXNoAAAAAAAD7gAAACA=",
195
239
  "AAAAAgAAAAAAAAAAAAAAD0xwUmVxdWVzdFN0YXR1cwAAAAAEAAAAAAAAAAAAAAAHUGVuZGluZwAAAAAAAAAAAAAAAAdTZXR0bGVkAAAAAAAAAAAAAAAABkZhaWxlZAAAAAAAAAAAAAAAAAAHRXhwaXJlZAA=",
240
+ "AAAAAQAAAN1UaGUgY2FsbGVyLXN1cHBsaWVkIGZpZWxkcyBvZiBhIGBwbGFjZV9lbnRyeV9vcmRlcmAgcmVxdWVzdCwgYnVuZGxlZCBzbwp0aGUgZW50cnkgcG9pbnQgc3RheXMgd2l0aGluIFNvcm9iYW4ncyBwYXJhbWV0ZXIgbGltaXQuIGBvd25lcmAgYW5kCmBtYXJrZXRgIGFyZSBwYXNzZWQgYWxvbmdzaWRlOyBgaWRgIGFuZCBgdHJpZ2dlcl9hYm92ZWAgYXJlIGRlcml2ZWQgYXQKcGxhY2VtZW50LgAAAAAAAAAAAAAQRW50cnlPcmRlclBhcmFtcwAAAAkAAAAAAAAAEGFjY2VwdGFibGVfcHJpY2UAAAALAAAAAAAAAApjb2xsYXRlcmFsAAAAAAALAAAAAAAAABBleGVjdXRpb25fYnVkZ2V0AAAACwAAAAAAAAAKZXhwaXJlc19hdAAAAAAABgAAAAAAAAAHaXNfbG9uZwAAAAABAAAAAAAAAARzaXplAAAACwAAAAAAAAAJc3RvcF9sb3NzAAAAAAAACwAAAAAAAAALdGFrZV9wcm9maXQAAAAACwAAAAAAAAANdHJpZ2dlcl9wcmljZQAAAAAAAAs=",
196
241
  "AAAAAQAAAAAAAAAAAAAAEFNldHRsZW1lbnRSZXN1bHQAAAACAAAAPFNoYXJlcyBtaW50ZWQgZm9yIGEgZGVwb3NpdCBvciBhc3NldHMgcGFpZCBmb3IgYSB3aXRoZHJhd2FsLgAAAAZhbW91bnQAAAAAAAsAAAAAAAAABnN0YXR1cwAAAAAH0AAAABBTZXR0bGVtZW50U3RhdHVz",
197
242
  "AAAAAgAAAAAAAAAAAAAAEFNldHRsZW1lbnRTdGF0dXMAAAACAAAAAAAAAAAAAAAHU2V0dGxlZAAAAAAAAAAAAAAAAAZGYWlsZWQAAA==",
198
243
  "AAAAAQAAAAAAAAAAAAAAEkFjY291bnRpbmdTbmFwc2hvdAAAAAAACgAAAAAAAAAOY2FzaF9scF9lcXVpdHkAAAAAAAsAAAAAAAAADmNhc2hfc2hvcnRmYWxsAAAAAAALAAAAAAAAAA9mcmVlX2xwX2NhcGl0YWwAAAAACwAAAAAAAAAVbHBfYmxvY2tlZF9zaWRlX2NvdW50AAAAAAAABAAAAAAAAAANbm9uX2xwX2NsYWltcwAAAAAAAAsAAAAAAAAAE29wZW5fcG9zaXRpb25fY291bnQAAAAABgAAAAAAAAANcGh5c2ljYWxfY2FzaAAAAAAAAAsAAAAAAAAAFXJlcXVpcmVkX3Jpc2tfYmFja2luZwAAAAAAAAsAAAAAAAAAEHRvdGFsX3Jpc2tfdW5pdHMAAAALAAAAAAAAAAl2YXVsdF9uYXYAAAAAAAAL",
@@ -221,7 +266,9 @@ export class Client extends ContractClient {
221
266
  set_vault: (this.txFromJSON),
222
267
  get_market: (this.txFromJSON),
223
268
  get_position: (this.txFromJSON),
269
+ get_referrer: (this.txFromJSON),
224
270
  recapitalize: (this.txFromJSON),
271
+ set_referrer: (this.txFromJSON),
225
272
  bump_position: (this.txFromJSON),
226
273
  enable_market: (this.txFromJSON),
227
274
  execute_order: (this.txFromJSON),
@@ -231,22 +278,31 @@ export class Client extends ContractClient {
231
278
  active_markets: (this.txFromJSON),
232
279
  cancel_upgrade: (this.txFromJSON),
233
280
  claim_protocol: (this.txFromJSON),
281
+ claim_referral: (this.txFromJSON),
234
282
  disable_market: (this.txFromJSON),
235
283
  update_indices: (this.txFromJSON),
284
+ get_entry_order: (this.txFromJSON),
236
285
  propose_upgrade: (this.txFromJSON),
286
+ referral_balance: (this.txFromJSON),
237
287
  decrease_position: (this.txFromJSON),
238
288
  increase_position: (this.txFromJSON),
289
+ place_entry_order: (this.txFromJSON),
239
290
  set_global_config: (this.txFromJSON),
240
291
  set_market_config: (this.txFromJSON),
292
+ cancel_entry_order: (this.txFromJSON),
241
293
  is_market_disabled: (this.txFromJSON),
242
294
  liquidate_position: (this.txFromJSON),
243
295
  accounting_snapshot: (this.txFromJSON),
244
296
  deleverage_position: (this.txFromJSON),
297
+ execute_entry_order: (this.txFromJSON),
245
298
  prepare_lp_snapshot: (this.txFromJSON),
299
+ referral_code_owner: (this.txFromJSON),
246
300
  refresh_borrow_rate: (this.txFromJSON),
247
301
  can_create_lp_request: (this.txFromJSON),
248
302
  fund_execution_budget: (this.txFromJSON),
303
+ register_referral_code: (this.txFromJSON),
249
304
  protocol_claimable_total: (this.txFromJSON),
305
+ referral_claimable_total: (this.txFromJSON),
250
306
  risk_keeper_reserve_total: (this.txFromJSON),
251
307
  withdraw_execution_budget: (this.txFromJSON),
252
308
  pending_receiver_funding_total: (this.txFromJSON)