@fuel-ts/account 0.96.1 → 0.97.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account.d.ts +6 -0
- package/dist/account.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.global.js +563 -298
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +594 -320
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +600 -327
- package/dist/index.mjs.map +1 -1
- package/dist/predicate/predicate.d.ts +16 -11
- package/dist/predicate/predicate.d.ts.map +1 -1
- package/dist/providers/__generated__/operations.d.ts +94 -126
- package/dist/providers/__generated__/operations.d.ts.map +1 -1
- package/dist/providers/provider.d.ts +5 -8
- package/dist/providers/provider.d.ts.map +1 -1
- package/dist/providers/transaction-request/blob-transaction-request.d.ts +2 -2
- package/dist/providers/transaction-request/blob-transaction-request.d.ts.map +1 -1
- package/dist/providers/transaction-summary/get-transaction-summary.d.ts +3 -2
- package/dist/providers/transaction-summary/get-transaction-summary.d.ts.map +1 -1
- package/dist/providers/transaction-summary/types.d.ts +38 -8
- package/dist/providers/transaction-summary/types.d.ts.map +1 -1
- package/dist/providers/utils/handle-gql-error-message.d.ts +2 -1
- package/dist/providers/utils/handle-gql-error-message.d.ts.map +1 -1
- package/dist/providers/utils/receipts.d.ts.map +1 -1
- package/dist/providers/utils/validate-pagination-args.d.ts +9 -0
- package/dist/providers/utils/validate-pagination-args.d.ts.map +1 -0
- package/dist/test-utils.global.js +302 -237
- package/dist/test-utils.global.js.map +1 -1
- package/dist/test-utils.js +276 -211
- package/dist/test-utils.js.map +1 -1
- package/dist/test-utils.mjs +287 -222
- package/dist/test-utils.mjs.map +1 -1
- package/dist/utils/deployScriptOrPredicate.d.ts +14 -0
- package/dist/utils/deployScriptOrPredicate.d.ts.map +1 -0
- package/dist/utils/formatTransferToContractScriptData.d.ts +7 -7
- package/dist/utils/formatTransferToContractScriptData.d.ts.map +1 -1
- package/dist/utils/predicate-script-loader-instructions.d.ts +9 -0
- package/dist/utils/predicate-script-loader-instructions.d.ts.map +1 -0
- package/package.json +17 -17
package/dist/index.global.js
CHANGED
@@ -989,7 +989,7 @@
|
|
989
989
|
}
|
990
990
|
return this._strip();
|
991
991
|
};
|
992
|
-
BN2.prototype.sub = function
|
992
|
+
BN2.prototype.sub = function sub2(num) {
|
993
993
|
return this.clone().isub(num);
|
994
994
|
};
|
995
995
|
function smallMulTo(self, num, out) {
|
@@ -2803,7 +2803,7 @@
|
|
2803
2803
|
}
|
2804
2804
|
return res;
|
2805
2805
|
};
|
2806
|
-
Red.prototype.sub = function
|
2806
|
+
Red.prototype.sub = function sub2(a, b) {
|
2807
2807
|
this._verify2(a, b);
|
2808
2808
|
var res = a.sub(b);
|
2809
2809
|
if (res.cmpn(0) < 0) {
|
@@ -20390,9 +20390,9 @@ spurious results.`);
|
|
20390
20390
|
}
|
20391
20391
|
});
|
20392
20392
|
|
20393
|
-
// ../../node_modules/.pnpm/@fuels+vm-asm@0.58.
|
20393
|
+
// ../../node_modules/.pnpm/@fuels+vm-asm@0.58.2/node_modules/@fuels/vm-asm/dist/node/index.cjs
|
20394
20394
|
var require_node = __commonJS({
|
20395
|
-
"../../node_modules/.pnpm/@fuels+vm-asm@0.58.
|
20395
|
+
"../../node_modules/.pnpm/@fuels+vm-asm@0.58.2/node_modules/@fuels/vm-asm/dist/node/index.cjs"(exports) {
|
20396
20396
|
"use strict";
|
20397
20397
|
var wasm$1;
|
20398
20398
|
var cachedTextDecoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-8", { ignoreBOM: true, fatal: true }) : { decode: () => {
|
@@ -20514,7 +20514,7 @@ spurious results.`);
|
|
20514
20514
|
const ret3 = wasm$1.mod_(dst, lhs, rhs);
|
20515
20515
|
return Instruction.__wrap(ret3);
|
20516
20516
|
}
|
20517
|
-
function
|
20517
|
+
function move_2(dst, src) {
|
20518
20518
|
const ret3 = wasm$1.move_(dst, src);
|
20519
20519
|
return Instruction.__wrap(ret3);
|
20520
20520
|
}
|
@@ -20538,7 +20538,7 @@ spurious results.`);
|
|
20538
20538
|
const ret3 = wasm$1.srl(dst, lhs, rhs);
|
20539
20539
|
return Instruction.__wrap(ret3);
|
20540
20540
|
}
|
20541
|
-
function
|
20541
|
+
function sub2(dst, lhs, rhs) {
|
20542
20542
|
const ret3 = wasm$1.sub(dst, lhs, rhs);
|
20543
20543
|
return Instruction.__wrap(ret3);
|
20544
20544
|
}
|
@@ -20606,7 +20606,7 @@ spurious results.`);
|
|
20606
20606
|
const ret3 = wasm$1.cb(dst);
|
20607
20607
|
return Instruction.__wrap(ret3);
|
20608
20608
|
}
|
20609
|
-
function
|
20609
|
+
function ldc2(src_addr, offset, len, mode) {
|
20610
20610
|
const ret3 = wasm$1.ldc(src_addr, offset, len, mode);
|
20611
20611
|
return Instruction.__wrap(ret3);
|
20612
20612
|
}
|
@@ -20690,7 +20690,7 @@ spurious results.`);
|
|
20690
20690
|
const ret3 = wasm$1.bal(dst, asset_id_addr, contract_id_addr);
|
20691
20691
|
return Instruction.__wrap(ret3);
|
20692
20692
|
}
|
20693
|
-
function
|
20693
|
+
function jmp2(abs_target) {
|
20694
20694
|
const ret3 = wasm$1.jmp(abs_target);
|
20695
20695
|
return Instruction.__wrap(ret3);
|
20696
20696
|
}
|
@@ -20702,7 +20702,7 @@ spurious results.`);
|
|
20702
20702
|
const ret3 = wasm$1.smo(recipient_addr, data_addr, data_len, coins);
|
20703
20703
|
return Instruction.__wrap(ret3);
|
20704
20704
|
}
|
20705
|
-
function
|
20705
|
+
function addi3(dst, lhs, rhs) {
|
20706
20706
|
const ret3 = wasm$1.addi(dst, lhs, rhs);
|
20707
20707
|
return Instruction.__wrap(ret3);
|
20708
20708
|
}
|
@@ -20710,7 +20710,7 @@ spurious results.`);
|
|
20710
20710
|
const ret3 = wasm$1.andi(dst, lhs, rhs);
|
20711
20711
|
return Instruction.__wrap(ret3);
|
20712
20712
|
}
|
20713
|
-
function
|
20713
|
+
function divi2(dst, lhs, rhs) {
|
20714
20714
|
const ret3 = wasm$1.divi(dst, lhs, rhs);
|
20715
20715
|
return Instruction.__wrap(ret3);
|
20716
20716
|
}
|
@@ -20754,7 +20754,7 @@ spurious results.`);
|
|
20754
20754
|
const ret3 = wasm$1.lb(dst, addr, offset);
|
20755
20755
|
return Instruction.__wrap(ret3);
|
20756
20756
|
}
|
20757
|
-
function
|
20757
|
+
function lw3(dst, addr, offset) {
|
20758
20758
|
const ret3 = wasm$1.lw(dst, addr, offset);
|
20759
20759
|
return Instruction.__wrap(ret3);
|
20760
20760
|
}
|
@@ -20910,7 +20910,7 @@ spurious results.`);
|
|
20910
20910
|
const ret3 = wasm$1.ecal(a, b, c, d);
|
20911
20911
|
return Instruction.__wrap(ret3);
|
20912
20912
|
}
|
20913
|
-
function
|
20913
|
+
function bsiz2(dst, blob_id_ptr) {
|
20914
20914
|
const ret3 = wasm$1.bsiz(dst, blob_id_ptr);
|
20915
20915
|
return Instruction.__wrap(ret3);
|
20916
20916
|
}
|
@@ -20929,75 +20929,6 @@ spurious results.`);
|
|
20929
20929
|
ptr = ptr >>> 0;
|
20930
20930
|
return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
|
20931
20931
|
}
|
20932
|
-
var CompareMode = Object.freeze({
|
20933
|
-
/**
|
20934
|
-
* Equality (`==`)
|
20935
|
-
*/
|
20936
|
-
EQ: 0,
|
20937
|
-
"0": "EQ",
|
20938
|
-
/**
|
20939
|
-
* Inequality (`!=`)
|
20940
|
-
*/
|
20941
|
-
NE: 1,
|
20942
|
-
"1": "NE",
|
20943
|
-
/**
|
20944
|
-
* Less than (`<`)
|
20945
|
-
*/
|
20946
|
-
LT: 2,
|
20947
|
-
"2": "LT",
|
20948
|
-
/**
|
20949
|
-
* Greater than (`>`)
|
20950
|
-
*/
|
20951
|
-
GT: 3,
|
20952
|
-
"3": "GT",
|
20953
|
-
/**
|
20954
|
-
* Less than or equals (`>=`)
|
20955
|
-
*/
|
20956
|
-
LTE: 4,
|
20957
|
-
"4": "LTE",
|
20958
|
-
/**
|
20959
|
-
* Greater than or equals (`>=`)
|
20960
|
-
*/
|
20961
|
-
GTE: 5,
|
20962
|
-
"5": "GTE",
|
20963
|
-
/**
|
20964
|
-
* Number of leading zeroes in lhs (`lzcnt`) (discards rhs)
|
20965
|
-
*/
|
20966
|
-
LZC: 6,
|
20967
|
-
"6": "LZC"
|
20968
|
-
});
|
20969
|
-
var GMArgs = Object.freeze({
|
20970
|
-
/**
|
20971
|
-
*r" Get if caller is external.
|
20972
|
-
*/
|
20973
|
-
IsCallerExternal: 1,
|
20974
|
-
"1": "IsCallerExternal",
|
20975
|
-
/**
|
20976
|
-
*r" Get caller's contract ID.
|
20977
|
-
*/
|
20978
|
-
GetCaller: 2,
|
20979
|
-
"2": "GetCaller",
|
20980
|
-
/**
|
20981
|
-
*r" Get index of current predicate.
|
20982
|
-
*/
|
20983
|
-
GetVerifyingPredicate: 3,
|
20984
|
-
"3": "GetVerifyingPredicate",
|
20985
|
-
/**
|
20986
|
-
*r" Get the Chain ID this VM is operating within
|
20987
|
-
*/
|
20988
|
-
GetChainId: 4,
|
20989
|
-
"4": "GetChainId",
|
20990
|
-
/**
|
20991
|
-
*r" Get memory address where the transaction is located
|
20992
|
-
*/
|
20993
|
-
TxStart: 5,
|
20994
|
-
"5": "TxStart",
|
20995
|
-
/**
|
20996
|
-
*r" Get memory address of base asset ID
|
20997
|
-
*/
|
20998
|
-
BaseAssetId: 6,
|
20999
|
-
"6": "BaseAssetId"
|
21000
|
-
});
|
21001
20932
|
var GTFArgs2 = Object.freeze({
|
21002
20933
|
/**
|
21003
20934
|
*r" Set `$rA` to `tx.type`
|
@@ -21325,47 +21256,42 @@ spurious results.`);
|
|
21325
21256
|
PolicyMaxFee: 1284,
|
21326
21257
|
"1284": "PolicyMaxFee"
|
21327
21258
|
});
|
21328
|
-
var
|
21329
|
-
/**
|
21330
|
-
* Add
|
21331
|
-
*/
|
21332
|
-
ADD: 0,
|
21333
|
-
"0": "ADD",
|
21259
|
+
var CompareMode = Object.freeze({
|
21334
21260
|
/**
|
21335
|
-
*
|
21261
|
+
* Equality (`==`)
|
21336
21262
|
*/
|
21337
|
-
|
21338
|
-
"
|
21263
|
+
EQ: 0,
|
21264
|
+
"0": "EQ",
|
21339
21265
|
/**
|
21340
|
-
*
|
21266
|
+
* Inequality (`!=`)
|
21341
21267
|
*/
|
21342
|
-
|
21343
|
-
"
|
21268
|
+
NE: 1,
|
21269
|
+
"1": "NE",
|
21344
21270
|
/**
|
21345
|
-
*
|
21271
|
+
* Less than (`<`)
|
21346
21272
|
*/
|
21347
|
-
|
21348
|
-
"
|
21273
|
+
LT: 2,
|
21274
|
+
"2": "LT",
|
21349
21275
|
/**
|
21350
|
-
*
|
21276
|
+
* Greater than (`>`)
|
21351
21277
|
*/
|
21352
|
-
|
21353
|
-
"
|
21278
|
+
GT: 3,
|
21279
|
+
"3": "GT",
|
21354
21280
|
/**
|
21355
|
-
*
|
21281
|
+
* Less than or equals (`>=`)
|
21356
21282
|
*/
|
21357
|
-
|
21358
|
-
"
|
21283
|
+
LTE: 4,
|
21284
|
+
"4": "LTE",
|
21359
21285
|
/**
|
21360
|
-
*
|
21286
|
+
* Greater than or equals (`>=`)
|
21361
21287
|
*/
|
21362
|
-
|
21363
|
-
"
|
21288
|
+
GTE: 5,
|
21289
|
+
"5": "GTE",
|
21364
21290
|
/**
|
21365
|
-
*
|
21291
|
+
* Number of leading zeroes in lhs (`lzcnt`) (discards rhs)
|
21366
21292
|
*/
|
21367
|
-
|
21368
|
-
"
|
21293
|
+
LZC: 6,
|
21294
|
+
"6": "LZC"
|
21369
21295
|
});
|
21370
21296
|
var PanicReason = Object.freeze({
|
21371
21297
|
/**
|
@@ -21661,6 +21587,80 @@ spurious results.`);
|
|
21661
21587
|
GasCostNotDefined: 56,
|
21662
21588
|
"56": "GasCostNotDefined"
|
21663
21589
|
});
|
21590
|
+
var MathOp = Object.freeze({
|
21591
|
+
/**
|
21592
|
+
* Add
|
21593
|
+
*/
|
21594
|
+
ADD: 0,
|
21595
|
+
"0": "ADD",
|
21596
|
+
/**
|
21597
|
+
* Subtract
|
21598
|
+
*/
|
21599
|
+
SUB: 1,
|
21600
|
+
"1": "SUB",
|
21601
|
+
/**
|
21602
|
+
* Invert bits (discards rhs)
|
21603
|
+
*/
|
21604
|
+
NOT: 2,
|
21605
|
+
"2": "NOT",
|
21606
|
+
/**
|
21607
|
+
* Bitwise or
|
21608
|
+
*/
|
21609
|
+
OR: 3,
|
21610
|
+
"3": "OR",
|
21611
|
+
/**
|
21612
|
+
* Bitwise exclusive or
|
21613
|
+
*/
|
21614
|
+
XOR: 4,
|
21615
|
+
"4": "XOR",
|
21616
|
+
/**
|
21617
|
+
* Bitwise and
|
21618
|
+
*/
|
21619
|
+
AND: 5,
|
21620
|
+
"5": "AND",
|
21621
|
+
/**
|
21622
|
+
* Shift left
|
21623
|
+
*/
|
21624
|
+
SHL: 6,
|
21625
|
+
"6": "SHL",
|
21626
|
+
/**
|
21627
|
+
* Shift right
|
21628
|
+
*/
|
21629
|
+
SHR: 7,
|
21630
|
+
"7": "SHR"
|
21631
|
+
});
|
21632
|
+
var GMArgs = Object.freeze({
|
21633
|
+
/**
|
21634
|
+
*r" Get if caller is external.
|
21635
|
+
*/
|
21636
|
+
IsCallerExternal: 1,
|
21637
|
+
"1": "IsCallerExternal",
|
21638
|
+
/**
|
21639
|
+
*r" Get caller's contract ID.
|
21640
|
+
*/
|
21641
|
+
GetCaller: 2,
|
21642
|
+
"2": "GetCaller",
|
21643
|
+
/**
|
21644
|
+
*r" Get index of current predicate.
|
21645
|
+
*/
|
21646
|
+
GetVerifyingPredicate: 3,
|
21647
|
+
"3": "GetVerifyingPredicate",
|
21648
|
+
/**
|
21649
|
+
*r" Get the Chain ID this VM is operating within
|
21650
|
+
*/
|
21651
|
+
GetChainId: 4,
|
21652
|
+
"4": "GetChainId",
|
21653
|
+
/**
|
21654
|
+
*r" Get memory address where the transaction is located
|
21655
|
+
*/
|
21656
|
+
TxStart: 5,
|
21657
|
+
"5": "TxStart",
|
21658
|
+
/**
|
21659
|
+
*r" Get memory address of base asset ID
|
21660
|
+
*/
|
21661
|
+
BaseAssetId: 6,
|
21662
|
+
"6": "BaseAssetId"
|
21663
|
+
});
|
21664
21664
|
var ADDFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
21665
21665
|
}, unregister: () => {
|
21666
21666
|
} } : new FinalizationRegistry((ptr) => wasm$1.__wbg_add_free(ptr >>> 0, 1));
|
@@ -28658,7 +28658,7 @@ spurious results.`);
|
|
28658
28658
|
}
|
28659
28659
|
}
|
28660
28660
|
function wasm(imports) {
|
28661
|
-
return _loadWasmModule(1, null, "AGFzbQEAAAABOgpgA39/fwF/YAF/AX9gBH9/f38Bf2ACf38AYAJ/fwF/YAABf2AFf39/f38Bf2ABfwBgA39/fwBgAAACGAEDd2JnEF9fd2JpbmRnZW5fdGhyb3cAAwP/Af0BAQEDAwMDAwMBAQMDAQEBAwMBAQEEAQMDAwEBAwEBAQQCAQMCAgICAgIDAwMEBAQEBAQEBAEBAQMDAAICBAQEBAQEBAQEBAABAQgDAwQBAQEBAQEBAgcDAQAAAQEDBwcBAwEDAgIBAQEAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQUBAQEBBAAEAQYCAgMDAAIABwEIBAEEAQkDAQEHAQUFBQUFBQUFBQUFBQUFBQUFBQUDBgYCAgQCBgYAAAgABAUDAQARBgkBfwFBgIDAAAsHjUzPBQZtZW1vcnkCABZfX3diZ19jb21wYXJlYXJnc19mcmVlABAaX193YmdfZ2V0X2NvbXBhcmVhcmdzX21vZGUASBpfX3diZ19zZXRfY29tcGFyZWFyZ3NfbW9kZQA4Il9fd2JnX2dldF9jb21wYXJlYXJnc19pbmRpcmVjdF9yaHMASSJfX3diZ19zZXRfY29tcGFyZWFyZ3NfaW5kaXJlY3RfcmhzAEsSY29tcGFyZWFyZ3NfdG9faW1tAFgUY29tcGFyZWFyZ3NfZnJvbV9pbW0AHxVfX3diZ19nZXRfbWF0aGFyZ3Nfb3AASBVfX3diZ19zZXRfbWF0aGFyZ3Nfb3AAORJfX3diZ19tdWxhcmdzX2ZyZWUAER5fX3diZ19nZXRfbXVsYXJnc19pbmRpcmVjdF9yaHMASB5fX3diZ19zZXRfbXVsYXJnc19pbmRpcmVjdF9yaHMATBJfX3diZ19kaXZhcmdzX2ZyZWUAIx5fX3diZ19nZXRfZGl2YXJnc19pbmRpcmVjdF9yaHMAuQEeX193Ymdfc2V0X2RpdmFyZ3NfaW5kaXJlY3RfcmhzAGMbX193YmdfcGFuaWNpbnN0cnVjdGlvbl9mcmVlABchcGFuaWNpbnN0cnVjdGlvbl9lcnJvcl90eXBlc2NyaXB0AE0XcGFuaWNpbnN0cnVjdGlvbl9yZWFzb24AWxxwYW5pY2luc3RydWN0aW9uX2luc3RydWN0aW9uAFwMZ21fZnJvbV9hcmdzANUBDWd0Zl9mcm9tX2FyZ3MAzQEHZ21fYXJncwCIAQhndGZfYXJncwBpDndkY21fZnJvbV9hcmdzADsOd2RvcF9mcm9tX2FyZ3MAOw53ZG1sX2Zyb21fYXJncwA8DndkZHZfZnJvbV9hcmdzAMkBCXdkY21fYXJncwAkCXdxY21fYXJncwAlCXdkb3BfYXJncwAmCXdxb3BfYXJncwAnCXdkbWxfYXJncwAoCXdxbWxfYXJncwApCXdkZHZfYXJncwBkCXdxZHZfYXJncwBlEF9fd2JnX2ltbTA2X2ZyZWUAKhBfX3diZ19pbW0xMl9mcmVlACsQX193YmdfaW1tMThfZnJlZQAsDl9fd2JnX2FkZF9mcmVlABgPX193Ymdfbm9vcF9mcmVlAAcSYWRkX25ld190eXBlc2NyaXB0AFkGYWRkX3JhADUGYWRkX3JiABIGYWRkX3JjABoDYWRkAMUBA2FuZACKAQNkaXYAiwECZXEAjAEDZXhwAI0BAmd0AI4BAmx0AI8BBG1sb2cAkAEEbXJvbwCRAQRtb2RfAJIBBW1vdmVfAD0DbXVsAJMBA25vdAA+Am9yAJQBA3NsbACVAQNzcmwAlgEDc3ViAJcBA3hvcgCYAQRtbGR2AGoDcmV0ALoBBHJldGQAPxNhbG9jX25ld190eXBlc2NyaXB0AGAHYWxvY19yYQAiBGFsb2MAuwEDbWNsAEADbWNwAJkBA21lcQBrE2Joc2hfbmV3X3R5cGVzY3JpcHQAIARiaHNoAC0EYmhlaQC8AQRidXJuAEEEY2FsbABsA2NjcABtBGNyb28AQgRjc2l6AEMCY2IAvQEDbGRjAG4DbG9nAG8EbG9nZABwBG1pbnQARARydnJ0AL4BBHNjd3EAmgEDc3J3AJsBBHNyd3EAcQNzd3cAnAEEc3d3cQByAnRyAJ0BA3RybwBzBGVjazEAngEEZWNyMQCfAQRlZDE5AHQEazI1NgCgAQRzMjU2AKEBBHRpbWUARRNub29wX25ld190eXBlc2NyaXB0AL8BBG5vb3AA3QEEZmxhZwDAAQNiYWwAogEDam1wAMEBA2puZQCjAQNzbW8AdRNhZGRpX25ld190eXBlc2NyaXB0AFoKYWRkaV9pbW0xMgAJBGFkZGkApAEEYW5kaQClAQRkaXZpAKYBBGV4cGkApwEEbW9kaQCoAQRtdWxpAKkBA29yaQCqAQRzbGxpAKsBBHNybGkArAEEc3ViaQCtAQR4b3JpAK4BBGpuZWkArwECbGIAsAECbHcAsQECc2IAsgECc3cAswEEbWNwaQC0ARJndGZfbmV3X3R5cGVzY3JpcHQAzwEDZ3RmALUBBG1jbGkALhFnbV9uZXdfdHlwZXNjcmlwdABGCGdtX2ltbTE4AA0CZ20ALwRtb3ZpADAEam56aQAxBGptcGYAMhNqbXBiX25ld190eXBlc2NyaXB0ABUEam1wYgAzBGpuemYAtgEEam56YgC3AQRqbmVmAHYKam5lYl9pbW0wNgA2BGpuZWIAdwJqaQBOE2NmZWlfbmV3X3R5cGVzY3JpcHQANwpjZmVpX2ltbTI0AAoEY2ZlaQBPBGNmc2kAUANjZmUAwgEDY2ZzAMMBBHBzaGwAUQRwc2hoAFIEcG9wbABTBHBvcGgAVBN3ZGNtX25ld190eXBlc2NyaXB0AMoBBHdkY20AeAR3cWNtAHkEd2RvcAB6BHdxb3AAewR3ZG1sAHwEd3FtbAB9BHdkZHYAfgR3cWR2AH8Ed2RtZACAAQR3cW1kAIEBBHdkYW0AggEEd3FhbQCDAQR3ZG1tAIQBBHdxbW0AhQEEZWNhbACGAQRic2l6ADQTYmxkZF9uZXdfdHlwZXNjcmlwdABVB2JsZGRfcmQANgRibGRkAIcBFl9fd2JnX2luc3RydWN0aW9uX2ZyZWUADBRpbnN0cnVjdGlvbl90b19ieXRlcwAGEGluc3RydWN0aW9uX3NpemUA7wERcmVnaWRfbmV3X2NoZWNrZWQAuAEJcmVnaWRfYmFsAN4BCnJlZ2lkX2NnYXMA3wEJcmVnaWRfZXJyAOABCnJlZ2lkX2ZsYWcA4QEIcmVnaWRfZnAA4gEKcmVnaWRfZ2dhcwDjAQhyZWdpZF9ocADkAQhyZWdpZF9pcwDlAQhyZWdpZF9vZgDmAQlyZWdpZF9vbmUA5wEIcmVnaWRfcGMA6AEJcmVnaWRfcmV0AOkBCnJlZ2lkX3JldGwA6gEIcmVnaWRfc3AA6wEJcmVnaWRfc3BwAOwBDnJlZ2lkX3dyaXRhYmxlAO0BCnJlZ2lkX3plcm8A7gEUcmVnaWRfbmV3X3R5cGVzY3JpcHQA2QELcmVnaWRfdG9fdTgA2gESYW5kX25ld190eXBlc2NyaXB0AFkSZGl2X25ld190eXBlc2NyaXB0AFkRZXFfbmV3X3R5cGVzY3JpcHQAWRJleHBfbmV3X3R5cGVzY3JpcHQAWRFndF9uZXdfdHlwZXNjcmlwdABZEWx0X25ld190eXBlc2NyaXB0AFkTbWxvZ19uZXdfdHlwZXNjcmlwdABZE21yb29fbmV3X3R5cGVzY3JpcHQAWRJtb2RfbmV3X3R5cGVzY3JpcHQAWRJtdWxfbmV3X3R5cGVzY3JpcHQAWRFvcl9uZXdfdHlwZXNjcmlwdABZEnNsbF9uZXdfdHlwZXNjcmlwdABZEnNybF9uZXdfdHlwZXNjcmlwdABZEnN1Yl9uZXdfdHlwZXNjcmlwdABZEnhvcl9uZXdfdHlwZXNjcmlwdABZEm1jcF9uZXdfdHlwZXNjcmlwdABZE3Njd3FfbmV3X3R5cGVzY3JpcHQAWRJzcndfbmV3X3R5cGVzY3JpcHQAWRJzd3dfbmV3X3R5cGVzY3JpcHQAWRF0cl9uZXdfdHlwZXNjcmlwdABZE2VjazFfbmV3X3R5cGVzY3JpcHQAWRNlY3IxX25ld190eXBlc2NyaXB0AFkTazI1Nl9uZXdfdHlwZXNjcmlwdABZE3MyNTZfbmV3X3R5cGVzY3JpcHQAWRJiYWxfbmV3X3R5cGVzY3JpcHQAWRJqbmVfbmV3X3R5cGVzY3JpcHQAWRNhbmRpX25ld190eXBlc2NyaXB0AFoTZGl2aV9uZXdfdHlwZXNjcmlwdABaE2V4cGlfbmV3X3R5cGVzY3JpcHQAWhNtb2RpX25ld190eXBlc2NyaXB0AFoTbXVsaV9uZXdfdHlwZXNjcmlwdABaEm9yaV9uZXdfdHlwZXNjcmlwdABaE3NsbGlfbmV3X3R5cGVzY3JpcHQAWhNzcmxpX25ld190eXBlc2NyaXB0AFoTc3ViaV9uZXdfdHlwZXNjcmlwdABaE3hvcmlfbmV3X3R5cGVzY3JpcHQAWhNqbmVpX25ld190eXBlc2NyaXB0AFoRbGJfbmV3X3R5cGVzY3JpcHQAWhFsd19uZXdfdHlwZXNjcmlwdABaEXNiX25ld190eXBlc2NyaXB0AFoRc3dfbmV3X3R5cGVzY3JpcHQAWhNtY3BpX25ld190eXBlc2NyaXB0AFoTam56Zl9uZXdfdHlwZXNjcmlwdABaE2puemJfbmV3X3R5cGVzY3JpcHQAWhFqaV9uZXdfdHlwZXNjcmlwdAA3E2Nmc2lfbmV3X3R5cGVzY3JpcHQANxNwc2hsX25ld190eXBlc2NyaXB0ADcTcHNoaF9uZXdfdHlwZXNjcmlwdAA3E3BvcGxfbmV3X3R5cGVzY3JpcHQANxNwb3BoX25ld190eXBlc2NyaXB0ADcTbW92aV9uZXdfdHlwZXNjcmlwdAAVE21jbGlfbmV3X3R5cGVzY3JpcHQAFRNqbnppX25ld190eXBlc2NyaXB0ABUTam1wZl9uZXdfdHlwZXNjcmlwdAAVEm5vdF9uZXdfdHlwZXNjcmlwdAAgE3JldGRfbmV3X3R5cGVzY3JpcHQAIBNtb3ZlX25ld190eXBlc2NyaXB0ACASbWNsX25ld190eXBlc2NyaXB0ACATYnVybl9uZXdfdHlwZXNjcmlwdAAgE2Nyb29fbmV3X3R5cGVzY3JpcHQAIBNjc2l6X25ld190eXBlc2NyaXB0ACATbWludF9uZXdfdHlwZXNjcmlwdAAgE3RpbWVfbmV3X3R5cGVzY3JpcHQAIBNic2l6X25ld190eXBlc2NyaXB0ACAGcmV0X3JhACIHYmhlaV9yYQAiBWNiX3JhACIHcnZydF9yYQAiB2ZsYWdfcmEAIgZqbXBfcmEAIghqaV9pbW0yNAAKCmNmc2lfaW1tMjQACgZjZmVfcmEAIgZjZnNfcmEAIgpwc2hsX2ltbTI0AAoKcHNoaF9pbW0yNAAKCnBvcGxfaW1tMjQACgpwb3BoX2ltbTI0AAoTbWxkdl9uZXdfdHlwZXNjcmlwdABVEm1lcV9uZXdfdHlwZXNjcmlwdABVEmNjcF9uZXdfdHlwZXNjcmlwdABVEmxvZ19uZXdfdHlwZXNjcmlwdABVE2xvZ2RfbmV3X3R5cGVzY3JpcHQAVRNzcndxX25ld190eXBlc2NyaXB0AFUTc3d3cV9uZXdfdHlwZXNjcmlwdABVEnRyb19uZXdfdHlwZXNjcmlwdABVE2VkMTlfbmV3X3R5cGVzY3JpcHQAVRJzbW9fbmV3X3R5cGVzY3JpcHQAVRJsZGNfbmV3X3R5cGVzY3JpcHQAVRNqbmVmX25ld190eXBlc2NyaXB0AFUTd2RtZF9uZXdfdHlwZXNjcmlwdABVE3dxbWRfbmV3X3R5cGVzY3JpcHQAVRN3ZGFtX25ld190eXBlc2NyaXB0AFUTd3FhbV9uZXdfdHlwZXNjcmlwdABVE3dkbW1fbmV3X3R5cGVzY3JpcHQAVRN3cW1tX25ld190eXBlc2NyaXB0AFUTZWNhbF9uZXdfdHlwZXNjcmlwdABVE2NhbGxfbmV3X3R5cGVzY3JpcHQAVRNfX3diZ19tYXRoYXJnc19mcmVlABAfX193Ymdfc2V0X21hdGhhcmdzX2luZGlyZWN0X3JocwBLHl9fd2JnX3NldF9tdWxhcmdzX2luZGlyZWN0X2xocwBLH19fd2JnX2dldF9tYXRoYXJnc19pbmRpcmVjdF9yaHMASR5fX3diZ19nZXRfbXVsYXJnc19pbmRpcmVjdF9saHMASRJyZXRfbmV3X3R5cGVzY3JpcHQAYBNiaGVpX25ld190eXBlc2NyaXB0AGARY2JfbmV3X3R5cGVzY3JpcHQAYBNydnJ0X25ld190eXBlc2NyaXB0AGATZmxhZ19uZXdfdHlwZXNjcmlwdABgEmptcF9uZXdfdHlwZXNjcmlwdABgEmNmZV9uZXdfdHlwZXNjcmlwdABgEmNmc19uZXdfdHlwZXNjcmlwdABgD19fd2JnX3RpbWVfZnJlZQAYDl9fd2JnX21jbF9mcmVlABgPX193YmdfcG9wbF9mcmVlABgNX193YmdfbHRfZnJlZQAYD19fd2JnX2puemJfZnJlZQAYDl9fd2JnX3Nyd19mcmVlABgPX193Ymdfd3FtbF9mcmVlABgPX193YmdfazI1Nl9mcmVlABgNX193YmdfbGJfZnJlZQAYD19fd2JnX2puZWJfZnJlZQAYD19fd2JnX3JldGRfZnJlZQAYD19fd2JnX2V4cGlfZnJlZQAYD19fd2JnX3N3d3FfZnJlZQAYD19fd2JnX2Nyb29fZnJlZQAYDl9fd2JnX3Ntb19mcmVlABgOX193YmdfbGRjX2ZyZWUAGA9fX3diZ19tbG9nX2ZyZWUAGA9fX3diZ19ic2l6X2ZyZWUAGA1fX3diZ19lcV9mcmVlABgPX193YmdfbWNsaV9mcmVlABgPX193YmdfeG9yaV9mcmVlABgPX193YmdfYW5kaV9mcmVlABgPX193Ymdfd3FvcF9mcmVlABgPX193Ymdfd2RjbV9mcmVlABgPX193YmdfcHNoaF9mcmVlABgPX193Ymdfc3ViaV9mcmVlABgNX193Ymdfb3JfZnJlZQAYD19fd2JnX2puemlfZnJlZQAYD19fd2JnX3dkbWRfZnJlZQAYDV9fd2JnX2dtX2ZyZWUAGA5fX3diZ19zcmxfZnJlZQAYD19fd2JnX3NybGlfZnJlZQAYD19fd2JnX2ZsYWdfZnJlZQAYD19fd2JnX3dkYW1fZnJlZQAYD19fd2JnX21vZGlfZnJlZQAYD19fd2JnX3dxYW1fZnJlZQAYD19fd2JnX2VjazFfZnJlZQAYDl9fd2JnX2Nmc19mcmVlABgPX193Ymdfam5laV9mcmVlABgPX193YmdfczI1Nl9mcmVlABgPX193YmdfYmxkZF9mcmVlABgOX193YmdfbW9kX2ZyZWUAGA9fX3diZ19zY3dxX2ZyZWUAGA5fX3diZ19hbmRfZnJlZQAYDl9fd2JnX3Ryb19mcmVlABgPX193Ymdfc3J3cV9mcmVlABgPX193YmdfcG9waF9mcmVlABgOX193Ymdfc3d3X2ZyZWUAGA9fX3diZ193ZGR2X2ZyZWUAGA5fX3diZ19tY3BfZnJlZQAYDV9fd2JnX3NiX2ZyZWUAGA9fX3diZ19lY2FsX2ZyZWUAGA5fX3diZ19qbmVfZnJlZQAYD19fd2JnX2Fsb2NfZnJlZQAYD19fd2JnX2puemZfZnJlZQAYD19fd2JnX2NhbGxfZnJlZQAYD19fd2JnX3J2cnRfZnJlZQAYD19fd2JnX3dxbW1fZnJlZQAYD19fd2JnX21vdmlfZnJlZQAYD19fd2JnX3dkbWxfZnJlZQAYD19fd2JnX2JoZWlfZnJlZQAYDl9fd2JnX2NmZV9mcmVlABgPX193Ymdfc2xsaV9mcmVlABgPX193YmdfbWludF9mcmVlABgPX193YmdfcHNobF9mcmVlABgOX193YmdfZGl2X2ZyZWUAGA9fX3diZ19tY3BpX2ZyZWUAGA9fX3diZ193cWR2X2ZyZWUAGA9fX3diZ19kaXZpX2ZyZWUAGA5fX3diZ19iYWxfZnJlZQAYDl9fd2JnX2V4cF9mcmVlABgOX193Ymdfc3ViX2ZyZWUAGA9fX3diZ19qbmVmX2ZyZWUAGA9fX3diZ19tb3ZlX2ZyZWUAGA9fX3diZ19jZnNpX2ZyZWUAGA5fX3diZ19jY3BfZnJlZQAYD19fd2JnX2VkMTlfZnJlZQAYDl9fd2JnX2ptcF9mcmVlABgPX193YmdfYWRkaV9mcmVlABgOX193YmdfcmV0X2ZyZWUAGA5fX3diZ19zbGxfZnJlZQAYDl9fd2JnX29yaV9mcmVlABgPX193Ymdfd2RvcF9mcmVlABgPX193YmdfbG9nZF9mcmVlABgPX193Ymdfd3FjbV9mcmVlABgNX193YmdfY2JfZnJlZQAYD19fd2JnX2J1cm5fZnJlZQAYD19fd2JnX3dkbW1fZnJlZQAYDl9fd2JnX2d0Zl9mcmVlABgNX193Ymdfc3dfZnJlZQAYDV9fd2JnX2ppX2ZyZWUAGA9fX3diZ19jc2l6X2ZyZWUAGA1fX3diZ19ndF9mcmVlABgOX193YmdfbXVsX2ZyZWUAGA9fX3diZ19tdWxpX2ZyZWUAGA9fX3diZ19jZmVpX2ZyZWUAGA9fX3diZ19lY3IxX2ZyZWUAGA5fX3diZ19tZXFfZnJlZQAYD19fd2JnX3dxbWRfZnJlZQAYD19fd2JnX21yb29fZnJlZQAYD19fd2JnX21sZHZfZnJlZQAYD19fd2JnX2ptcGJfZnJlZQAYD19fd2JnX2Joc2hfZnJlZQAYDV9fd2JnX3RyX2ZyZWUAGA5fX3diZ194b3JfZnJlZQAYDV9fd2JnX2x3X2ZyZWUAGA5fX3diZ19sb2dfZnJlZQAYD19fd2JnX2ptcGZfZnJlZQAYDl9fd2JnX25vdF9mcmVlABgTd3Fkdl9uZXdfdHlwZXNjcmlwdADKARN3cW1sX25ld190eXBlc2NyaXB0AMoBE3dkbWxfbmV3X3R5cGVzY3JpcHQAygETd3FvcF9uZXdfdHlwZXNjcmlwdADKARN3ZG9wX25ld190eXBlc2NyaXB0AMoBE3dxY21fbmV3X3R5cGVzY3JpcHQAygETd2Rkdl9uZXdfdHlwZXNjcmlwdADKAQ53cWNtX2Zyb21fYXJncwA7CndxZHZfaW1tMDYANgp3cW1sX2ltbTA2ADYKd2RtbF9pbW0wNgA2Cndxb3BfaW1tMDYANgp3ZG9wX2ltbTA2ADYKd3FjbV9pbW0wNgA2CndkZHZfaW1tMDYANgp3ZGNtX2ltbTA2ADYKam5lZl9pbW0wNgA2CWxkY19pbW0wNgA2DndxbWxfZnJvbV9hcmdzADwOd3FvcF9mcm9tX2FyZ3MAOwVnbV9yYQA1BWd0X3JjABoFZ3RfcmIAEgVndF9yYQA1BWxiX3JiABIFbGJfcmEANQVsdF9yYwAaBWx0X3JiABIFbHRfcmEANQhsd19pbW0xMgAJBWx3X3JiABIFbHdfcmEANQVvcl9yYwAaBW9yX3JiABIFb3JfcmEANQhzYl9pbW0xMgAJBXNiX3JiABIFc2JfcmEANQhzd19pbW0xMgAJBXN3X3JiABIFc3dfcmEANQV0cl9yYwAaBXRyX3JiABIFdHJfcmEANQVlcV9yYwAaBWVxX3JiABIFZXFfcmEANQZhbmRfcmMAGgZhbmRfcmIAEgZhbmRfcmEANQZiYWxfcmMAGgZiYWxfcmIAEgZiYWxfcmEANQZjY3BfcmMAGgZjY3BfcmIAEgZjY3BfcmEANQZkaXZfcmMAGgZkaXZfcmIAEgZkaXZfcmEANQZleHBfcmMAGgZleHBfcmIAEgZleHBfcmEANQhsYl9pbW0xMgAJBmd0Zl9yYgASBmd0Zl9yYQA1BmpuZV9yYwAaBmpuZV9yYgASBmpuZV9yYQA1BmxkY19yYwAaBmxkY19yYgASBmxkY19yYQA1BmxvZ19yZAA2BmxvZ19yYwAaBmxvZ19yYgASBmxvZ19yYQA1Bm1jbF9yYgASBm1jbF9yYQA1Bm1jcF9yYwAaBm1jcF9yYgASBm1jcF9yYQA1Bm1lcV9yZAA2Bm1lcV9yYwAaBm1lcV9yYgASBm1lcV9yYQA1Bm1vZF9yYwAaBm1vZF9yYgASBm1vZF9yYQA1Bm11bF9yYwAaBm11bF9yYgASBm11bF9yYQA1Bm5vdF9yYgASBm5vdF9yYQA1CW9yaV9pbW0xMgAJBm9yaV9yYgASBm9yaV9yYQA1BnNsbF9yYwAaBnNsbF9yYgASBnNsbF9yYQA1BnNtb19yZAA2BnNtb19yYwAaBnNtb19yYgASBnNtb19yYQA1BnNybF9yYwAaBnNybF9yYgASBnNybF9yYQA1BnNyd19yYwAaBnNyd19yYgASBnNyd19yYQA1BnN1Yl9yYwAaBnN1Yl9yYgASBnN1Yl9yYQA1BnN3d19yYwAaBnN3d19yYgASBnN3d19yYQA1BnRyb19yZAA2BnRyb19yYwAaBnRyb19yYgASBnRyb19yYQA1Bnhvcl9yYwAaBnhvcl9yYgASBnhvcl9yYQA1CWd0Zl9pbW0xMgAJB2FkZGlfcmIAEgdhZGRpX3JhADUKYW5kaV9pbW0xMgAJB2FuZGlfcmIAEgdhbmRpX3JhADUHYmhzaF9yYgASB2Joc2hfcmEANQZjY3BfcmQANgdibGRkX3JjABoHYmxkZF9yYgASB2JsZGRfcmEANQdic2l6X3JiABIHYnNpel9yYQA1B2J1cm5fcmIAEgdidXJuX3JhADUHY2FsbF9yZAA2B2NhbGxfcmMAGgdjYWxsX3JiABIHY2FsbF9yYQA1B2Nyb29fcmIAEgdjcm9vX3JhADUHY3Npel9yYgASB2NzaXpfcmEANQpkaXZpX2ltbTEyAAkHZGl2aV9yYgASB2RpdmlfcmEANQdlY2FsX3JkADYHZWNhbF9yYwAaB2VjYWxfcmIAEgdlY2FsX3JhADUHZWNrMV9yYwAaB2VjazFfcmIAEgdlY2sxX3JhADUHZWNyMV9yYwAaB2VjcjFfcmIAEgdlY3IxX3JhADUHZWQxOV9yZAA2B2VkMTlfcmMAGgdlZDE5X3JiABIHZWQxOV9yYQA1CmV4cGlfaW1tMTIACQdleHBpX3JiABIHZXhwaV9yYQA1CmptcGJfaW1tMTgADQdqbXBiX3JhADUKam1wZl9pbW0xOAANB2ptcGZfcmEANQdqbmViX3JjABoHam5lYl9yYgASB2puZWJfcmEANQdqbmVmX3JjABoHam5lZl9yYgASB2puZWZfcmEANQpqbmVpX2ltbTEyAAkHam5laV9yYgASB2puZWlfcmEANQpqbnpiX2ltbTEyAAkHam56Yl9yYgASB2puemJfcmEANQpqbnpmX2ltbTEyAAkHam56Zl9yYgASB2puemZfcmEANQpqbnppX2ltbTE4AA0Ham56aV9yYQA1B2syNTZfcmMAGgdrMjU2X3JiABIHazI1Nl9yYQA1B2xvZ2RfcmQANgdsb2dkX3JjABoHbG9nZF9yYgASB2xvZ2RfcmEANQptY2xpX2ltbTE4AA0HbWNsaV9yYQA1Cm1jcGlfaW1tMTIACQdtY3BpX3JiABIHbWNwaV9yYQA1B21pbnRfcmIAEgdtaW50X3JhADUHbWxkdl9yZAA2B21sZHZfcmMAGgdtbGR2X3JiABIHbWxkdl9yYQA1B21sb2dfcmMAGgdtbG9nX3JiABIHbWxvZ19yYQA1Cm1vZGlfaW1tMTIACQdtb2RpX3JiABIHbW9kaV9yYQA1B21vdmVfcmIAEgdtb3ZlX3JhADUKbW92aV9pbW0xOAANB21vdmlfcmEANQdtcm9vX3JjABoHbXJvb19yYgASB21yb29fcmEANQptdWxpX2ltbTEyAAkHbXVsaV9yYgASB211bGlfcmEANQdyZXRkX3JiABIHcmV0ZF9yYQA1B3MyNTZfcmMAGgdzMjU2X3JiABIHczI1Nl9yYQA1B3Njd3FfcmMAGgdzY3dxX3JiABIHc2N3cV9yYQA1CnNsbGlfaW1tMTIACQdzbGxpX3JiABIHc2xsaV9yYQA1CnNybGlfaW1tMTIACQdzcmxpX3JiABIHc3JsaV9yYQA1B3Nyd3FfcmQANgdzcndxX3JjABoHc3J3cV9yYgASB3Nyd3FfcmEANQpzdWJpX2ltbTEyAAkHc3ViaV9yYgASB3N1YmlfcmEANQdzd3dxX3JkADYHc3d3cV9yYwAaB3N3d3FfcmIAEgdzd3dxX3JhADUHdGltZV9yYgASB3RpbWVfcmEANQd3ZGFtX3JkADYHd2RhbV9yYwAaB3dkYW1fcmIAEgd3ZGFtX3JhADUHd2RjbV9yYwAaB3dkY21fcmIAEgd3ZGNtX3JhADUHd2Rkdl9yYwAaB3dkZHZfcmIAEgd3ZGR2X3JhADUHd2RtZF9yZAA2B3dkbWRfcmMAGgd3ZG1kX3JiABIHd2RtZF9yYQA1B3dkbWxfcmMAGgd3ZG1sX3JiABIHd2RtbF9yYQA1B3dkbW1fcmQANgd3ZG1tX3JjABoHd2RtbV9yYgASB3dkbW1fcmEANQd3ZG9wX3JjABoHd2RvcF9yYgASB3dkb3BfcmEANQd3cWFtX3JkADYHd3FhbV9yYwAaB3dxYW1fcmIAEgd3cWFtX3JhADUHd3FjbV9yYwAaB3dxY21fcmIAEgd3cWNtX3JhADUHd3Fkdl9yYwAaB3dxZHZfcmIAEgd3cWR2X3JhADUHd3FtZF9yZAA2B3dxbWRfcmMAGgd3cW1kX3JiABIHd3FtZF9yYQA1B3dxbWxfcmMAGgd3cW1sX3JiABIHd3FtbF9yYQA1B3dxbW1fcmQANgd3cW1tX3JjABoHd3FtbV9y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C0HggsAAQRkQ2AEACykBAX9BEEEEEMYBIgEgADYCDCABQQA2AgggAUKBgICAEDcCACABQQhqCykBAX9BEEEEEMYBIgEgADoADCABQQA2AgggAUKBgICAEDcCACABQQhqCyIAIAIQAiECIAAQxwEgARDHASACEEdBCHRBygByENEBEGcLDwAgACABIAIgA0ESEPEBCw8AIAAgASACIANBGBDxAQsPACAAIAEgAiADQRwQ8QELDwAgACABIAIgA0EdEPEBCw8AIAAgASACIANBIRDyAQsPACAAIAEgAiADQSIQ8QELDwAgACABIAIgA0EjEPEBCw8AIAAgASACIANBKBDxAQsPACAAIAEgAiADQSoQ8QELDwAgACABIAIgA0EsEPEBCw8AIAAgASACIANBLxDxAQsPACAAIAEgAiADQTgQ8QELEAAgACABIAIgA0HTABDyAQsQACAAIAEgAiADQdQAEPIBCxAAIAAgASACIANB3gAQ8gELEAAgACABIAIgA0HfABDyAQsQACAAIAEgAiADQeAAEPIBCxAAIAAgASACIANB4QAQ8gELEAAgACABIAIgA0HiABDyAQsQACAAIAEgAiADQeMAEPIBCxAAIAAgASACIANB5AAQ8gELEAAgACABIAIgA0HlABDyAQsQACAAIAEgAiADQeYAEPEBCxAAIAAgASACIANB5wAQ8QELEAAgACABIAIgA0HoABDxAQsQACAAIAEgAiADQekAEPEBCxAAIAAgASACIANB6gAQ8QELEAAgACABIAIgA0HrABDxAQsQACAAIAEgAiADQewAEPEBCxAAIAAgASACIANB7gAQ8QELHgAgARBmIQEgABDHASABEMQBQQh0QcwAchDRARBnCxkAIAAgASACQSBBACAEG0EQQQAgAxtyECELDQAgACABIAJBARDzAQsNACAAIAEgAkECEPMBCw0AIAAgASACQQMQ8wELDQAgACABIAJBBBDzAQsNACAAIAEgAkEFEPMBCw0AIAAgASACQQYQ8wELDQAgACABIAJBBxDzAQsNACAAIAEgAkEIEPMBCw0AIAAgASACQQkQ8wELDQAgACABIAJBCxDzAQsNACAAIAEgAkENEPMBCw0AIAAgASACQQ4Q8wELDQAgACABIAJBDxDzAQsNACAAIAEgAkEQEPMBCw0AIAAgASACQREQ8wELDQAg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bmdlIGZvciAxOC1iaXQgaW1tZWRpYXRlAEgAEAAHAAAA2AAQACMAAAAiABAAEwAAALoDAAAcAAAAYCBvdXQgb2YgcmFuZ2UgZm9yIDI0LWJpdCBpbW1lZGlhdGUASAAQAAcAAAAcARAAIwAAACIAEAATAAAAvwMAABwAAABpbnZhbGlkIGVudW0gdmFsdWUgcGFzc2VkYXR0ZW1wdGVkIHRvIHRha2Ugb3duZXJzaGlwIG9mIFJ1c3QgdmFsdWUgd2hpbGUgaXQgd2FzIGJvcnJvd2VkEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACQAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAAUAAAAFEAAABSAAAAUwAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAFoAAABbAAAAXAAAAF0AAABeAAAAXwAAAGAAAABhAAAAcAAAAHEAAAByAAAAcwAAAHQAAAB1AAAAdgAAAHcAAAB4AAAAeQAAAJAAAACRAAAAkgAAAJMAAACUAAAAlQAAAJYAAACXAAAAmAAAAKAAAAChAAAAogAAAKMAAACkAAAApQAAAKYAAACnAAAAqAAAAKkAAACqAAAAqwAAAKwAAACtAAAAsAAAALoAAAC7AAAAAQAAAAAAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlAAUAAAAAAAAAAQAAAAYAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OS9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjYvc3JjL2RsbWFsbG9jLnJzYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPj0gc2l6ZSArIG1pbl9vdmVyaGVhZACABBAAKQAAAKgEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAAgAQQACkAAACuBAAADQAAAGxpYnJhcnkvc3RkL3NyYy9wYW5pY2tpbmcucnMoBRAAHAAAAIsCAAAeAAAAbnVsbCBwb2ludGVyIHBhc3NlZCB0byBydXN0cmVjdXJzaXZlIHVzZSBvZiBhbiBvYmplY3QgZGV0ZWN0ZWQgd2hpY2ggd291bGQgbGVhZCB0byB1bnNhZmUgYWxpYXNpbmcgaW4gcnVzdAA7CXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AgZ3YWxydXMGMC4yMS4zDHdhc20tYmluZGdlbgYwLjIuOTM=", imports);
|
28661
|
+
return _loadWasmModule(1, null, "AGFzbQEAAAABOgpgA39/fwF/YAF/AX9gBH9/f38Bf2ACf38AYAJ/fwF/YAABf2AFf39/f38Bf2ABfwBgA39/fwBgAAACGAEDd2JnEF9fd2JpbmRnZW5fdGhyb3cAAwP/Af0BAQEDAwMDAwMBAQMDAQEBAwMBAQEEAQMDAwEBAwEBAQQCAQMCAgICAgIDAwMEBAQEBAQEBAEBAQMDAAICBAQEBAQEBAQEBAABAQgDAwQBAQEBAQEBAgcDAQAAAQEDBwcBAwEDAgIBAQEAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQUBAQEBBAAEAQYCAgMDAAIABwEIBAEEAQkDAQEHAQUFBQUFBQUFBQUFBQUFBQUFBQUDBgYCAgQCBgYAAAgABAUDAQARBgkBfwFBgIDAAAsHjUzPBQZtZW1vcnkCABZfX3diZ19jb21wYXJlYXJnc19mcmVlABAaX193YmdfZ2V0X2NvbXBhcmVhcmdzX21vZGUASBpfX3diZ19zZXRfY29tcGFyZWFyZ3NfbW9kZQA4Il9fd2JnX2dldF9jb21wYXJlYXJnc19pbmRpcmVjdF9yaHMASSJfX3diZ19zZXRfY29tcGFyZWFyZ3NfaW5kaXJlY3RfcmhzAEsSY29tcGFyZWFyZ3NfdG9faW1tAFgUY29tcGFyZWFyZ3NfZnJvbV9pbW0AHxVfX3diZ19nZXRfbWF0aGFyZ3Nfb3AASBVfX3diZ19zZXRfbWF0aGFyZ3Nfb3AAORJfX3diZ19tdWxhcmdzX2ZyZWUAER5fX3diZ19nZXRfbXVsYXJnc19pbmRpcmVjdF9yaHMASB5fX3diZ19zZXRfbXVsYXJnc19pbmRpcmVjdF9yaHMATBJfX3diZ19kaXZhcmdzX2ZyZWUAIx5fX3diZ19nZXRfZGl2YXJnc19pbmRpcmVjdF9yaHMAuQEeX193Ymdfc2V0X2RpdmFyZ3NfaW5kaXJlY3RfcmhzAGMbX193YmdfcGFuaWNpbnN0cnVjdGlvbl9mcmVlABchcGFuaWNpbnN0cnVjdGlvbl9lcnJvcl90eXBlc2NyaXB0AE0XcGFuaWNpbnN0cnVjdGlvbl9yZWFzb24AWxxwYW5pY2luc3RydWN0aW9uX2luc3RydWN0aW9uAFwMZ21fZnJvbV9hcmdzANUBDWd0Zl9mcm9tX2FyZ3MAzQEHZ21fYXJncwCIAQhndGZfYXJncwBpDndkY21fZnJvbV9hcmdzADsOd2RvcF9mcm9tX2FyZ3MAOw53ZG1sX2Zyb21fYXJncwA8DndkZHZfZnJvbV9hcmdzAMkBCXdkY21fYXJncwAkCXdxY21fYXJncwAlCXdkb3BfYXJncwAmCXdxb3BfYXJncwAnCXdkbWxfYXJncwAoCXdxbWxfYXJncwApCXdkZHZfYXJncwBkCXdxZHZfYXJncwBlEF9fd2JnX2ltbTA2X2ZyZWUAKhBfX3diZ19pbW0xMl9mcmVlACsQX193YmdfaW1tMThfZnJlZQAsDl9fd2JnX2FkZF9mcmVlABgPX193Ymdfbm9vcF9mcmVlAAcSYWRkX25ld190eXBlc2NyaXB0AFkGYWRkX3JhADUGYWRkX3JiABIGYWRkX3JjABoDYWRkAMUBA2FuZACKAQNkaXYAiwECZXEAjAEDZXhwAI0BAmd0AI4BAmx0AI8BBG1sb2cAkAEEbXJvbwCRAQRtb2RfAJIBBW1vdmVfAD0DbXVsAJMBA25vdAA+Am9yAJQBA3NsbACVAQNzcmwAlgEDc3ViAJcBA3hvcgCYAQRtbGR2AGoDcmV0ALoBBHJldGQAPxNhbG9jX25ld190eXBlc2NyaXB0AGAHYWxvY19yYQAiBGFsb2MAuwEDbWNsAEADbWNwAJkBA21lcQBrE2Joc2hfbmV3X3R5cGVzY3JpcHQAIARiaHNoAC0EYmhlaQC8AQRidXJuAEEEY2FsbABsA2NjcABtBGNyb28AQgRjc2l6AEMCY2IAvQEDbGRjAG4DbG9nAG8EbG9nZABwBG1pbnQARARydnJ0AL4BBHNjd3EAmgEDc3J3AJsBBHNyd3EAcQNzd3cAnAEEc3d3cQByAnRyAJ0BA3RybwBzBGVjazEAngEEZWNyMQCfAQRlZDE5AHQEazI1NgCgAQRzMjU2AKEBBHRpbWUARRNub29wX25ld190eXBlc2NyaXB0AL8BBG5vb3AA3QEEZmxhZwDAAQNiYWwAogEDam1wAMEBA2puZQCjAQNzbW8AdRNhZGRpX25ld190eXBlc2NyaXB0AFoKYWRkaV9pbW0xMgAJBGFkZGkApAEEYW5kaQClAQRkaXZpAKYBBGV4cGkApwEEbW9kaQCoAQRtdWxpAKkBA29yaQCqAQRzbGxpAKsBBHNybGkArAEEc3ViaQCtAQR4b3JpAK4BBGpuZWkArwECbGIAsAECbHcAsQECc2IAsgECc3cAswEEbWNwaQC0ARJndGZfbmV3X3R5cGVzY3JpcHQAzwEDZ3RmALUBBG1jbGkALhFnbV9uZXdfdHlwZXNjcmlwdABGCGdtX2ltbTE4AA0CZ20ALwRtb3ZpADAEam56aQAxBGptcGYAMhNqbXBiX25ld190eXBlc2NyaXB0ABUEam1wYgAzBGpuemYAtgEEam56YgC3AQRqbmVmAHYKam5lYl9pbW0wNgA2BGpuZWIAdwJqaQBOE2NmZWlfbmV3X3R5cGVzY3JpcHQANwpjZmVpX2ltbTI0AAoEY2ZlaQBPBGNmc2kAUANjZmUAwgEDY2ZzAMMBBHBzaGwAUQRwc2hoAFIEcG9wbABTBHBvcGgAVBN3ZGNtX25ld190eXBlc2NyaXB0AMoBBHdkY20AeAR3cWNtAHkEd2RvcAB6BHdxb3AAewR3ZG1sAHwEd3FtbAB9BHdkZHYAfgR3cWR2AH8Ed2RtZACAAQR3cW1kAIEBBHdkYW0AggEEd3FhbQCDAQR3ZG1tAIQBBHdxbW0AhQEEZWNhbACGAQRic2l6ADQTYmxkZF9uZXdfdHlwZXNjcmlwdABVB2JsZGRfcmQANgRibGRkAIcBFl9fd2JnX2luc3RydWN0aW9uX2ZyZWUADBRpbnN0cnVjdGlvbl90b19ieXRlcwAGEGluc3RydWN0aW9uX3NpemUA7wERcmVnaWRfbmV3X2NoZWNrZWQAuAEJcmVnaWRfYmFsAN4BCnJlZ2lkX2NnYXMA3wEJcmVnaWRfZXJyAOABCnJlZ2lkX2ZsYWcA4QEIcmVnaWRfZnAA4gEKcmVnaWRfZ2dhcwDjAQhyZWdpZF9ocADkAQhyZWdpZF9pcwDlAQhyZWdpZF9vZgDmAQlyZWdpZF9vbmUA5wEIcmVnaWRfcGMA6AEJcmVnaWRfcmV0AOkBCnJlZ2lkX3JldGwA6gEIcmVnaWRfc3AA6wEJcmVnaWRfc3BwAOwBDnJlZ2lkX3dyaXRhYmxlAO0BCnJlZ2lkX3plcm8A7gEUcmVnaWRfbmV3X3R5cGVzY3JpcHQA2QELcmVnaWRfdG9fdTgA2gESYW5kX25ld190eXBlc2NyaXB0AFkSZGl2X25ld190eXBlc2NyaXB0AFkRZXFfbmV3X3R5cGVzY3JpcHQAWRJleHBfbmV3X3R5cGVzY3JpcHQAWRFndF9uZXdfdHlwZXNjcmlwdABZEWx0X25ld190eXBlc2NyaXB0AFkTbWxvZ19uZXdfdHlwZXNjcmlwdABZE21yb29fbmV3X3R5cGVzY3JpcHQAWRJtb2RfbmV3X3R5cGVzY3JpcHQAWRJtdWxfbmV3X3R5cGVzY3JpcHQAWRFvcl9uZXdfdHlwZXNjcmlwdABZEnNsbF9uZXdfdHlwZXNjcmlwdABZEnNybF9uZXdfdHlwZXNjcmlwdABZEnN1Yl9uZXdfdHlwZXNjcmlwdABZEnhvcl9uZXdfdHlwZXNjcmlwdABZEm1jcF9uZXdfdHlwZXNjcmlwdABZE3Njd3FfbmV3X3R5cGVzY3JpcHQAWRJzcndfbmV3X3R5cGVzY3JpcHQAWRJzd3dfbmV3X3R5cGVzY3JpcHQAWRF0cl9uZXdfdHlwZXNjcmlwdABZE2VjazFfbmV3X3R5cGVzY3JpcHQAWRNlY3IxX25ld190eXBlc2NyaXB0AFkTazI1Nl9uZXdfdHlwZXNjcmlwdABZE3MyNTZfbmV3X3R5cGVzY3JpcHQAWRJiYWxfbmV3X3R5cGVzY3JpcHQAWRJqbmVfbmV3X3R5cGVzY3JpcHQAWRNhbmRpX25ld190eXBlc2NyaXB0AFoTZGl2aV9uZXdfdHlwZXNjcmlwdABaE2V4cGlfbmV3X3R5cGVzY3JpcHQAWhNtb2RpX25ld190eXBlc2NyaXB0AFoTbXVsaV9uZXdfdHlwZXNjcmlwdABaEm9yaV9uZXdfdHlwZXNjcmlwdABaE3NsbGlfbmV3X3R5cGVzY3JpcHQAWhNzcmxpX25ld190eXBlc2NyaXB0AFoTc3ViaV9uZXdfdHlwZXNjcmlwdABaE3hvcmlfbmV3X3R5cGVzY3JpcHQAWhNqbmVpX25ld190eXBlc2NyaXB0AFoRbGJfbmV3X3R5cGVzY3JpcHQAWhFsd19uZXdfdHlwZXNjcmlwdABaEXNiX25ld190eXBlc2NyaXB0AFoRc3dfbmV3X3R5cGVzY3JpcHQAWhNtY3BpX25ld190eXBlc2NyaXB0AFoTam56Zl9uZXdfdHlwZXNjcmlwdABaE2puemJfbmV3X3R5cGVzY3JpcHQAWhFqaV9uZXdfdHlwZXNjcmlwdAA3E2Nmc2lfbmV3X3R5cGVzY3JpcHQANxNwc2hsX25ld190eXBlc2NyaXB0ADcTcHNoaF9uZXdfdHlwZXNjcmlwdAA3E3BvcGxfbmV3X3R5cGVzY3JpcHQANxNwb3BoX25ld190eXBlc2NyaXB0ADcTbW92aV9uZXdfdHlwZXNjcmlwdAAVE21jbGlfbmV3X3R5cGVzY3JpcHQAFRNqbnppX25ld190eXBlc2NyaXB0ABUTam1wZl9uZXdfdHlwZXNjcmlwdAAVEm5vdF9uZXdfdHlwZXNjcmlwdAAgE3JldGRfbmV3X3R5cGVzY3JpcHQAIBNtb3ZlX25ld190eXBlc2NyaXB0ACASbWNsX25ld190eXBlc2NyaXB0ACATYnVybl9uZXdfdHlwZXNjcmlwdAAgE2Nyb29fbmV3X3R5cGVzY3JpcHQAIBNjc2l6X25ld190eXBlc2NyaXB0ACATbWludF9uZXdfdHlwZXNjcmlwdAAgE3RpbWVfbmV3X3R5cGVzY3JpcHQAIBNic2l6X25ld190eXBlc2NyaXB0ACAGcmV0X3JhACIHYmhlaV9yYQAiBWNiX3JhACIHcnZydF9yYQAiB2ZsYWdfcmEAIgZqbXBfcmEAIghqaV9pbW0yNAAKCmNmc2lfaW1tMjQACgZjZmVfcmEAIgZjZnNfcmEAIgpwc2hsX2ltbTI0AAoKcHNoaF9pbW0yNAAKCnBvcGxfaW1tMjQACgpwb3BoX2ltbTI0AAoTbWxkdl9uZXdfdHlwZXNjcmlwdABVEm1lcV9uZXdfdHlwZXNjcmlwdABVEmNjcF9uZXdfdHlwZXNjcmlwdABVEmxvZ19uZXdfdHlwZXNjcmlwdABVE2xvZ2RfbmV3X3R5cGVzY3JpcHQAVRNzcndxX25ld190eXBlc2NyaXB0AFUTc3d3cV9uZXdfdHlwZXNjcmlwdABVEnRyb19uZXdfdHlwZXNjcmlwdABVE2VkMTlfbmV3X3R5cGVzY3JpcHQAVRJzbW9fbmV3X3R5cGVzY3JpcHQAVRJsZGNfbmV3X3R5cGVzY3JpcHQAVRNqbmVmX25ld190eXBlc2NyaXB0AFUTd2RtZF9uZXdfdHlwZXNjcmlwdABVE3dxbWRfbmV3X3R5cGVzY3JpcHQAVRN3ZGFtX25ld190eXBlc2NyaXB0AFUTd3FhbV9uZXdfdHlwZXNjcmlwdABVE3dkbW1fbmV3X3R5cGVzY3JpcHQAVRN3cW1tX25ld190eXBlc2NyaXB0AFUTZWNhbF9uZXdfdHlwZXNjcmlwdABVE2NhbGxfbmV3X3R5cGVzY3JpcHQAVRNfX3diZ19tYXRoYXJnc19mcmVlABAfX193Ymdfc2V0X21hdGhhcmdzX2luZGlyZWN0X3JocwBLHl9fd2JnX3NldF9tdWxhcmdzX2luZGlyZWN0X2xocwBLH19fd2JnX2dldF9tYXRoYXJnc19pbmRpcmVjdF9yaHMASR5fX3diZ19nZXRfbXVsYXJnc19pbmRpcmVjdF9saHMASRJyZXRfbmV3X3R5cGVzY3JpcHQAYBNiaGVpX25ld190eXBlc2NyaXB0AGARY2JfbmV3X3R5cGVzY3JpcHQAYBNydnJ0X25ld190eXBlc2NyaXB0AGATZmxhZ19uZXdfdHlwZXNjcmlwdABgEmptcF9uZXdfdHlwZXNjcmlwdABgEmNmZV9uZXdfdHlwZXNjcmlwdABgEmNmc19uZXdfdHlwZXNjcmlwdABgD19fd2JnX3dkb3BfZnJlZQAYDl9fd2JnX21vZF9mcmVlABgPX193Ymdfd3Fkdl9mcmVlABgNX193Ymdfc2JfZnJlZQAYDl9fd2JnX3Ntb19mcmVlABgPX193YmdfcHNobF9mcmVlABgOX193YmdfbG9nX2ZyZWUAGA9fX3diZ193cWFtX2ZyZWUAGA9fX3diZ193cW1sX2ZyZWUAGA5fX3diZ19ub3RfZnJlZQAYD19fd2JnX2puemlfZnJlZQAYD19fd2JnX2puZWlfZnJlZQAYD19fd2JnX3N1YmlfZnJlZQAYD19fd2JnX2ZsYWdfZnJlZQAYD19fd2JnX2NzaXpfZnJlZQAYD19fd2JnX3Nyd3FfZnJlZQAYD19fd2JnX3NsbGlfZnJlZQAYD19fd2JnX2ptcGJfZnJlZQAYD19fd2JnX3dkbWxfZnJlZQAYD19fd2JnX3MyNTZfZnJlZQAYDl9fd2JnX3hvcl9mcmVlABgOX193YmdfY2ZlX2ZyZWUAGA1fX3diZ19ndF9mcmVlABgPX193YmdfcHNoaF9mcmVlABgPX193YmdfbWNsaV9mcmVlABgNX193YmdfbHRfZnJlZQAYD19fd2JnX2puZWZfZnJlZQAYDV9fd2JnX3N3X2ZyZWUAGA9fX3diZ19zcmxpX2ZyZWUAGA9fX3diZ19idXJuX2ZyZWUAGA9fX3diZ19ic2l6X2ZyZWUAGA9fX3diZ19ydnJ0X2ZyZWUAGA9fX3diZ194b3JpX2ZyZWUAGA9fX3diZ19tdWxpX2ZyZWUAGA1fX3diZ19sYl9mcmVlABgNX193YmdfZ21fZnJlZQAYD19fd2JnX2Joc2hfZnJlZQAYDV9fd2JnX2VxX2ZyZWUAGA5fX3diZ19zbGxfZnJlZQAYDl9fd2JnX29yaV9mcmVlABgPX193YmdfZWQxOV9mcmVlABgPX193YmdfY2ZlaV9mcmVlABgPX193YmdfY2ZzaV9mcmVlABgPX193Ymdfam56Yl9mcmVlABgPX193YmdfYWxvY19mcmVlABgOX193Ymdfc3JsX2ZyZWUAGA9fX3diZ19tcm9vX2ZyZWUAGA5fX3diZ19jZnNfZnJlZQAYDl9fd2JnX2ptcF9mcmVlABgPX193YmdfYmhlaV9mcmVlABgPX193YmdfbG9nZF9mcmVlABgPX193Ymdfam5lYl9mcmVlABgPX193Ymdfd3FtbV9mcmVlABgPX193YmdfcG9waF9mcmVlABgPX193Ymdfd2RjbV9mcmVlABgPX193YmdfZXhwaV9mcmVlABgPX193YmdfYWRkaV9mcmVlABgPX193YmdfYmxkZF9mcmVlABgOX193YmdfbGRjX2ZyZWUAGA5fX3diZ19kaXZfZnJlZQAYD19fd2JnX3dkZHZfZnJlZQAYD19fd2JnX21sZHZfZnJlZQAYDl9fd2JnX21jbF9mcmVlABgOX193YmdfbXVsX2ZyZWUAGA9fX3diZ193ZGFtX2ZyZWUAGA9fX3diZ19jYWxsX2ZyZWUAGA1fX3diZ19sd19mcmVlABgPX193YmdfZWNhbF9mcmVlABgPX193YmdfbWxvZ19mcmVlABgPX193YmdfcmV0ZF9mcmVlABgPX193YmdfdGltZV9mcmVlABgOX193YmdfZ3RmX2ZyZWUAGA5fX3diZ19qbmVfZnJlZQAYDV9fd2JnX29yX2ZyZWUAGA9fX3diZ19kaXZpX2ZyZWUAGA9fX3diZ19qbnpmX2ZyZWUAGA5fX3diZ190cm9fZnJlZQAYDl9fd2JnX21jcF9mcmVlABgPX193YmdfbWludF9mcmVlABgOX193Ymdfc3ViX2ZyZWUAGA1fX3diZ19jYl9mcmVlABgPX193Ymdfd3FvcF9mcmVlABgOX193Ymdfc3J3X2ZyZWUAGA9fX3diZ19lY3IxX2ZyZWUAGA9fX3diZ19qbXBmX2ZyZWUAGA9fX3diZ19rMjU2X2ZyZWUAGA5fX3diZ19yZXRfZnJlZQAYD19fd2JnX3Njd3FfZnJlZQAYDl9fd2JnX21lcV9mcmVlABgPX193Ymdfc3d3cV9mcmVlABgOX193YmdfYmFsX2ZyZWUAGA9fX3diZ19tb3ZpX2ZyZWUAGA9fX3diZ193ZG1kX2ZyZWUAGA9fX3diZ19wb3BsX2ZyZWUAGA9fX3diZ193ZG1tX2ZyZWUAGA5fX3diZ19leHBfZnJlZQAYDV9fd2JnX2ppX2ZyZWUAGA9fX3diZ193cWNtX2ZyZWUAGA9fX3diZ19tY3BpX2ZyZWUAGA9fX3diZ19tb2RpX2ZyZWUAGA1fX3diZ190cl9mcmVlABgPX193YmdfYW5kaV9mcmVlABgOX193YmdfY2NwX2ZyZWUAGA5fX3diZ19zd3dfZnJlZQAYD19fd2JnX2Nyb29fZnJlZQAYD19fd2JnX3dxbWRfZnJlZQAYD19fd2JnX21vdmVfZnJlZQAYD19fd2JnX2VjazFfZnJlZQAYDl9fd2JnX2FuZF9mcmVlABgTd3Fkdl9uZXdfdHlwZXNjcmlwdADKARN3cW1sX25ld190eXBlc2NyaXB0AMoBE3dkbWxfbmV3X3R5cGVzY3JpcHQAygETd3FvcF9uZXdfdHlwZXNjcmlwdADKARN3ZG9wX25ld190eXBlc2NyaXB0AMoBE3dxY21fbmV3X3R5cGVzY3JpcHQAygETd2Rkdl9uZXdfdHlwZXNjcmlwdADKAQ53cWNtX2Zyb21fYXJncwA7CndxZHZfaW1tMDYANgp3cW1sX2ltbTA2ADYKd2RtbF9pbW0wNgA2Cndxb3BfaW1tMDYANgp3ZG9wX2ltbTA2ADYKd3FjbV9pbW0wNgA2CndkZHZfaW1tMDYANgp3ZGNtX2ltbTA2ADYKam5lZl9pbW0wNgA2CWxkY19pbW0wNgA2DndxbWxfZnJvbV9hcmdzADwOd3FvcF9mcm9tX2FyZ3MAOwVnbV9yYQA1BWd0X3JjABoFZ3RfcmIAEgVndF9yYQA1BWxiX3JiABIFbGJfcmEANQVsdF9yYwAaBWx0X3JiABIFbHRfcmEANQhsd19pbW0xMgAJBWx3X3JiABIFbHdfcmEANQVvcl9yYwAaBW9yX3JiABIFb3JfcmEANQhzYl9pbW0xMgAJBXNiX3JiABIFc2JfcmEANQhzd19pbW0xMgAJBXN3X3JiABIFc3dfcmEANQV0cl9yYwAaBXRyX3JiABIFdHJfcmEANQVlcV9yYwAaBWVxX3JiABIFZXFfcmEANQZhbmRfcmMAGgZhbmRfcmIAEgZhbmRfcmEANQZiYWxfcmMAGgZiYWxfcmIAEgZiYWxfcmEANQZjY3BfcmMAGgZjY3BfcmIAEgZjY3BfcmEANQZkaXZfcmMAGgZkaXZfcmIAEgZkaXZfcmEANQZleHBfcmMAGgZleHBfcmIAEgZleHBfcmEANQhsYl9pbW0xMgAJBmd0Zl9yYgASBmd0Zl9yYQA1BmpuZV9yYwAaBmpuZV9yYgASBmpuZV9yYQA1BmxkY19yYwAaBmxkY19yYgASBmxkY19yYQA1BmxvZ19yZAA2BmxvZ19yYwAaBmxvZ19yYgASBmxvZ19yYQA1Bm1jbF9yYgASBm1jbF9yYQA1Bm1jcF9yYwAaBm1jcF9yYgASBm1jcF9yYQA1Bm1lcV9yZAA2Bm1lcV9yYwAaBm1lcV9yYgASBm1lcV9yYQA1Bm1vZF9yYwAaBm1vZF9yYgASBm1vZF9yYQA1Bm11bF9yYwAaBm11bF9yYgASBm11bF9yYQA1Bm5vdF9yYgASBm5vdF9yYQA1CW9yaV9pbW0xMgAJBm9yaV9yYgASBm9yaV9yYQA1BnNsbF9yYwAaBnNsbF9yYgASBnNsbF9yYQA1BnNtb19yZAA2BnNtb19yYwAaBnNtb19yYgASBnNtb19yYQA1BnNybF9yYwAaBnNybF9yYgASBnNybF9yYQA1BnNyd19yYwAaBnNyd19yYgASBnNyd19yYQA1BnN1Yl9yYwAaBnN1Yl9yYgASBnN1Yl9yYQA1BnN3d19yYwAaBnN3d19yYgASBnN3d19yYQA1BnRyb19yZAA2BnRyb19yYwAaBnRyb19yYgASBnRyb19yYQA1Bnhvcl9yYwAaBnhvcl9yYgASBnhvcl9yYQA1CWd0Zl9pbW0xMgAJB2FkZGlfcmIAEgdhZGRpX3JhADUKYW5kaV9pbW0xMgAJB2FuZGlfcmIAEgdhbmRpX3JhADUHYmhzaF9yYgASB2Joc2hfcmEANQZjY3BfcmQANgdibGRkX3JjABoHYmxkZF9yYgASB2JsZGRfcmEANQdic2l6X3JiABIHYnNpel9yYQA1B2J1cm5fcmIAEgdidXJuX3JhADUHY2FsbF9yZAA2B2NhbGxfcmMAGgdjYWxsX3JiABIHY2FsbF9yYQA1B2Nyb29fcmIAEgdjcm9vX3JhADUHY3Npel9yYgASB2NzaXpfcmEANQpkaXZpX2ltbTEyAAkHZGl2aV9yYgASB2RpdmlfcmEANQdlY2FsX3JkADYHZWNhbF9yYwAaB2VjYWxfcmIAEgdlY2FsX3JhADUHZWNrMV9yYwAaB2VjazFfcmIAEgdlY2sxX3JhADUHZWNyMV9yYwAaB2VjcjFfcmIAEgdlY3IxX3JhADUHZWQxOV9yZAA2B2VkMTlfcmMAGgdlZDE5X3JiABIHZWQxOV9yYQA1CmV4cGlfaW1tMTIACQdleHBpX3JiABIHZXhwaV9yYQA1CmptcGJfaW1tMTgADQdqbXBiX3JhADUKam1wZl9pbW0xOAANB2ptcGZfcmEANQdqbmViX3JjABoHam5lYl9yYgASB2puZWJfcmEANQdqbmVmX3JjABoHam5lZl9yYgASB2puZWZfcmEANQpqbmVpX2ltbTEyAAkHam5laV9yYgASB2puZWlfcmEANQpqbnpiX2ltbTEyAAkHam56Yl9yYgASB2puemJfcmEANQpqbnpmX2ltbTEyAAkHam56Zl9yYgASB2puemZfcmEANQpqbnppX2ltbTE4AA0Ham56aV9yYQA1B2syNTZfcmMAGgdrMjU2X3JiABIHazI1Nl9yYQA1B2xvZ2RfcmQANgdsb2dkX3JjABoHbG9nZF9yYgASB2xvZ2RfcmEANQptY2xpX2ltbTE4AA0HbWNsaV9yYQA1Cm1jcGlfaW1tMTIACQdtY3BpX3JiABIHbWNwaV9yYQA1B21pbnRfcmIAEgdtaW50X3JhADUHbWxkdl9yZAA2B21sZHZfcmMAGgdtbGR2X3JiABIHbWxkdl9yYQA1B21sb2dfcmMAGgdtbG9nX3JiABIHbWxvZ19yYQA1Cm1vZGlfaW1tMTIACQdtb2RpX3JiABIHbW9kaV9yYQA1B21vdmVfcmIAEgdtb3ZlX3JhADUKbW92aV9pbW0xOAANB21vdmlfcmEANQdtcm9vX3JjABoHbXJvb19yYgASB21yb29fcmEANQptdWxpX2ltbTEyAAkHbXVsaV9yYgASB211bGlfcmEANQdyZXRkX3JiABIHcmV0ZF9yYQA1B3MyNTZfcmMAGgdzMjU2X3JiABIHczI1Nl9yYQA1B3Njd3FfcmMAGgdzY3dxX3JiABIHc2N3cV9yYQA1CnNsbGlfaW1tMTIACQdzbGxpX3JiABIHc2xsaV9yYQA1CnNybGlfaW1tMTIACQdzcmxpX3JiABIHc3JsaV9yYQA1B3Nyd3FfcmQANgdzcndxX3JjABoHc3J3cV9yYgASB3Nyd3FfcmEANQpzdWJpX2ltbTEyAAkHc3ViaV9yYgASB3N1YmlfcmEANQdzd3dxX3JkADYHc3d3cV9yYwAaB3N3d3FfcmIAEgdzd3dxX3JhADUHdGltZV9yYgASB3RpbWVfcmEANQd3ZGFtX3JkADYHd2RhbV9yYwAaB3dkYW1fcmIAEgd3ZGFtX3JhADUHd2RjbV9yYwAaB3dkY21fcmIAEgd3ZGNtX3JhADUHd2Rkdl9yYwAaB3dkZHZfcmIAEgd3ZGR2X3JhADUHd2RtZF9yZAA2B3dkbWRfcmMAGgd3ZG1kX3JiABIHd2RtZF9yYQA1B3dkbWxfcmMAGgd3ZG1sX3JiABIHd2RtbF9yYQA1B3dkbW1fcmQANgd3ZG1tX3JjABoHd2RtbV9yYgASB3dkbW1fcmEANQd3ZG9wX3JjABoHd2RvcF9yYgASB3dkb3BfcmEANQd3cWFtX3JkADYHd3FhbV9yYwAaB3dxYW1fcmIAEgd3cWFtX3JhADUHd3FjbV9yYwAaB3dxY21fcmIAEgd3cWNtX3JhADUHd3Fkdl9yYwAaB3dxZHZfcmIAEgd3cWR2X3JhADUHd3FtZF9yZAA2B3dxbWRfcmMAGgd3cW1kX3JiABIHd3FtZF9yYQA1B3dxbWxfcmMAGgd3cW1sX3JiABIHd3FtbF9yYQA1B3dxbW1fcmQANgd3cW1tX3JjABoHd3FtbV9y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C0HggsAAQRkQ2AEACykBAX9BEEEEEMYBIgEgADoADCABQQA2AgggAUKBgICAEDcCACABQQhqCykBAX9BEEEEEMYBIgEgADYCDCABQQA2AgggAUKBgICAEDcCACABQQhqCyIAIAIQAiECIAAQxwEgARDHASACEEdBCHRBygByENEBEGgLDwAgACABIAIgA0ESEPEBCw8AIAAgASACIANBGBDxAQsPACAAIAEgAiADQRwQ8QELDwAgACABIAIgA0EdEPEBCw8AIAAgASACIANBIRDyAQsPACAAIAEgAiADQSIQ8QELDwAgACABIAIgA0EjEPEBCw8AIAAgASACIANBKBDxAQsPACAAIAEgAiADQSoQ8QELDwAgACABIAIgA0EsEPEBCw8AIAAgASACIANBLxDxAQsPACAAIAEgAiADQTgQ8QELEAAgACABIAIgA0HTABDyAQsQACAAIAEgAiADQdQAEPIBCxAAIAAgASACIANB3gAQ8gELEAAgACABIAIgA0HfABDyAQsQACAAIAEgAiADQeAAEPIBCxAAIAAgASACIANB4QAQ8gELEAAgACABIAIgA0HiABDyAQsQACAAIAEgAiADQeMAEPIBCxAAIAAgASACIANB5AAQ8gELEAAgACABIAIgA0HlABDyAQsQACAAIAEgAiADQeYAEPEBCxAAIAAgASACIANB5wAQ8QELEAAgACABIAIgA0HoABDxAQsQACAAIAEgAiADQekAEPEBCxAAIAAgASACIANB6gAQ8QELEAAgACABIAIgA0HrABDxAQsQACAAIAEgAiADQewAEPEBCxAAIAAgASACIANB7gAQ8QELHgAgARBmIQEgABDHASABEMQBQQh0QcwAchDRARBoCxkAIAAgASACQSBBACAEG0EQQQAgAxtyECELDQAgACABIAJBARDzAQsNACAAIAEgAkECEPMBCw0AIAAgASACQQMQ8wELDQAgACABIAJBBBDzAQsNACAAIAEgAkEFEPMBCw0AIAAgASACQQYQ8wELDQAgACABIAJBBxDzAQsNACAAIAEgAkEIEPMBCw0AIAAgASACQQkQ8wELDQAgACABIAJBCxDzAQsNACAAIAEgAkENEPMBCw0AIAAgASACQQ4Q8wELDQAgACABIAJBDxDzAQsNACAAIAEgAkEQEPMBCw0AIAAgASACQREQ8wELDQAg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bmdlIGZvciAxOC1iaXQgaW1tZWRpYXRlAEgAEAAHAAAA2AAQACMAAAAiABAAEwAAALoDAAAcAAAAYCBvdXQgb2YgcmFuZ2UgZm9yIDI0LWJpdCBpbW1lZGlhdGUASAAQAAcAAAAcARAAIwAAACIAEAATAAAAvwMAABwAAABpbnZhbGlkIGVudW0gdmFsdWUgcGFzc2VkYXR0ZW1wdGVkIHRvIHRha2Ugb3duZXJzaGlwIG9mIFJ1c3QgdmFsdWUgd2hpbGUgaXQgd2FzIGJvcnJvd2VkEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACQAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAAUAAAAFEAAABSAAAAUwAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAFoAAABbAAAAXAAAAF0AAABeAAAAXwAAAGAAAABhAAAAcAAAAHEAAAByAAAAcwAAAHQAAAB1AAAAdgAAAHcAAAB4AAAAeQAAAJAAAACRAAAAkgAAAJMAAACUAAAAlQAAAJYAAACXAAAAmAAAAKAAAAChAAAAogAAAKMAAACkAAAApQAAAKYAAACnAAAAqAAAAKkAAACqAAAAqwAAAKwAAACtAAAAsAAAALoAAAC7AAAAAQAAAAAAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlAAUAAAAAAAAAAQAAAAYAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OS9ydXN0L2RlcHMvZGxtYWxsb2MtMC4yLjYvc3JjL2RsbWFsbG9jLnJzYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPj0gc2l6ZSArIG1pbl9vdmVyaGVhZACABBAAKQAAAKgEAAAJAAAAYXNzZXJ0aW9uIGZhaWxlZDogcHNpemUgPD0gc2l6ZSArIG1heF9vdmVyaGVhZAAAgAQQACkAAACuBAAADQAAAGxpYnJhcnkvc3RkL3NyYy9wYW5pY2tpbmcucnMoBRAAHAAAAIsCAAAeAAAAbnVsbCBwb2ludGVyIHBhc3NlZCB0byBydXN0cmVjdXJzaXZlIHVzZSBvZiBhbiBvYmplY3QgZGV0ZWN0ZWQgd2hpY2ggd291bGQgbGVhZCB0byB1bnNhZmUgYWxpYXNpbmcgaW4gcnVzdAA7CXByb2R1Y2VycwEMcHJvY2Vzc2VkLWJ5AgZ3YWxydXMGMC4yMS4zDHdhc20tYmluZGdlbgYwLjIuOTM=", imports);
|
28662
28662
|
}
|
28663
28663
|
async function initWasm2() {
|
28664
28664
|
return await __wbg_init(wasm());
|
@@ -28792,7 +28792,7 @@ spurious results.`);
|
|
28792
28792
|
exports.XOR = XOR;
|
28793
28793
|
exports.XORI = XORI;
|
28794
28794
|
exports.add = add;
|
28795
|
-
exports.addi =
|
28795
|
+
exports.addi = addi3;
|
28796
28796
|
exports.aloc = aloc;
|
28797
28797
|
exports.and = and;
|
28798
28798
|
exports.andi = andi;
|
@@ -28800,7 +28800,7 @@ spurious results.`);
|
|
28800
28800
|
exports.bhei = bhei;
|
28801
28801
|
exports.bhsh = bhsh;
|
28802
28802
|
exports.bldd = bldd;
|
28803
|
-
exports.bsiz =
|
28803
|
+
exports.bsiz = bsiz2;
|
28804
28804
|
exports.burn = burn;
|
28805
28805
|
exports.call = call;
|
28806
28806
|
exports.cb = cb;
|
@@ -28812,7 +28812,7 @@ spurious results.`);
|
|
28812
28812
|
exports.croo = croo;
|
28813
28813
|
exports.csiz = csiz;
|
28814
28814
|
exports.div = div;
|
28815
|
-
exports.divi =
|
28815
|
+
exports.divi = divi2;
|
28816
28816
|
exports.ecal = ecal;
|
28817
28817
|
exports.eck1 = eck1;
|
28818
28818
|
exports.ecr1 = ecr1;
|
@@ -28829,7 +28829,7 @@ spurious results.`);
|
|
28829
28829
|
exports.initSync = initSync;
|
28830
28830
|
exports.initWasm = initWasm2;
|
28831
28831
|
exports.ji = ji;
|
28832
|
-
exports.jmp =
|
28832
|
+
exports.jmp = jmp2;
|
28833
28833
|
exports.jmpb = jmpb;
|
28834
28834
|
exports.jmpf = jmpf;
|
28835
28835
|
exports.jne = jne;
|
@@ -28841,11 +28841,11 @@ spurious results.`);
|
|
28841
28841
|
exports.jnzi = jnzi;
|
28842
28842
|
exports.k256 = k256;
|
28843
28843
|
exports.lb = lb;
|
28844
|
-
exports.ldc =
|
28844
|
+
exports.ldc = ldc2;
|
28845
28845
|
exports.log = log;
|
28846
28846
|
exports.logd = logd;
|
28847
28847
|
exports.lt = lt;
|
28848
|
-
exports.lw =
|
28848
|
+
exports.lw = lw3;
|
28849
28849
|
exports.mcl = mcl;
|
28850
28850
|
exports.mcli = mcli;
|
28851
28851
|
exports.mcp = mcp;
|
@@ -28856,7 +28856,7 @@ spurious results.`);
|
|
28856
28856
|
exports.mlog = mlog;
|
28857
28857
|
exports.mod_ = mod_;
|
28858
28858
|
exports.modi = modi;
|
28859
|
-
exports.move_ =
|
28859
|
+
exports.move_ = move_2;
|
28860
28860
|
exports.movi = movi;
|
28861
28861
|
exports.mroo = mroo;
|
28862
28862
|
exports.mul = mul;
|
@@ -28882,7 +28882,7 @@ spurious results.`);
|
|
28882
28882
|
exports.srli = srli;
|
28883
28883
|
exports.srw = srw;
|
28884
28884
|
exports.srwq = srwq;
|
28885
|
-
exports.sub =
|
28885
|
+
exports.sub = sub2;
|
28886
28886
|
exports.subi = subi;
|
28887
28887
|
exports.sw = sw;
|
28888
28888
|
exports.sww = sww;
|
@@ -28920,9 +28920,9 @@ spurious results.`);
|
|
28920
28920
|
// ../versions/dist/index.mjs
|
28921
28921
|
function getBuiltinVersions() {
|
28922
28922
|
return {
|
28923
|
-
FORC: "0.
|
28924
|
-
FUEL_CORE: "0.
|
28925
|
-
FUELS: "0.
|
28923
|
+
FORC: "0.66.4",
|
28924
|
+
FUEL_CORE: "0.40.0",
|
28925
|
+
FUELS: "0.97.0"
|
28926
28926
|
};
|
28927
28927
|
}
|
28928
28928
|
function parseVersion(version) {
|
@@ -29045,6 +29045,7 @@ This unreleased fuel-core build may include features and updates not yet support
|
|
29045
29045
|
ErrorCode2["MAX_INPUTS_EXCEEDED"] = "max-inputs-exceeded";
|
29046
29046
|
ErrorCode2["FUNDS_TOO_LOW"] = "funds-too-low";
|
29047
29047
|
ErrorCode2["MAX_OUTPUTS_EXCEEDED"] = "max-outputs-exceeded";
|
29048
|
+
ErrorCode2["MAX_COINS_REACHED"] = "max-coins-reached";
|
29048
29049
|
ErrorCode2["INVALID_RECEIPT_TYPE"] = "invalid-receipt-type";
|
29049
29050
|
ErrorCode2["INVALID_WORD_LIST"] = "invalid-word-list";
|
29050
29051
|
ErrorCode2["INVALID_MNEMONIC"] = "invalid-mnemonic";
|
@@ -30762,6 +30763,7 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
30762
30763
|
var BYTES_32 = 32;
|
30763
30764
|
var UTXO_ID_LEN = BYTES_32 + 2;
|
30764
30765
|
var ASSET_ID_LEN = BYTES_32;
|
30766
|
+
var CONTRACT_ID_LEN = BYTES_32;
|
30765
30767
|
var ADDRESS_LEN = BYTES_32;
|
30766
30768
|
var NONCE_LEN = BYTES_32;
|
30767
30769
|
var TX_LEN = WORD_SIZE * 4;
|
@@ -37156,9 +37158,6 @@ spurious results.`);
|
|
37156
37158
|
var SuccessStatusFragmentDoc = lib_default2`
|
37157
37159
|
fragment SuccessStatusFragment on SuccessStatus {
|
37158
37160
|
type: __typename
|
37159
|
-
block {
|
37160
|
-
id
|
37161
|
-
}
|
37162
37161
|
time
|
37163
37162
|
programState {
|
37164
37163
|
returnType
|
@@ -37171,6 +37170,14 @@ spurious results.`);
|
|
37171
37170
|
totalFee
|
37172
37171
|
}
|
37173
37172
|
${ReceiptFragmentDoc}`;
|
37173
|
+
var SuccessStatusWithBlockIdFragmentDoc = lib_default2`
|
37174
|
+
fragment SuccessStatusWithBlockIdFragment on SuccessStatus {
|
37175
|
+
...SuccessStatusFragment
|
37176
|
+
block {
|
37177
|
+
id
|
37178
|
+
}
|
37179
|
+
}
|
37180
|
+
${SuccessStatusFragmentDoc}`;
|
37174
37181
|
var MalleableTransactionFieldsFragmentDoc = lib_default2`
|
37175
37182
|
fragment malleableTransactionFieldsFragment on Transaction {
|
37176
37183
|
receiptsRoot
|
@@ -37215,9 +37222,6 @@ spurious results.`);
|
|
37215
37222
|
var FailureStatusFragmentDoc = lib_default2`
|
37216
37223
|
fragment FailureStatusFragment on FailureStatus {
|
37217
37224
|
type: __typename
|
37218
|
-
block {
|
37219
|
-
id
|
37220
|
-
}
|
37221
37225
|
totalGas
|
37222
37226
|
totalFee
|
37223
37227
|
time
|
@@ -37227,6 +37231,14 @@ spurious results.`);
|
|
37227
37231
|
}
|
37228
37232
|
}
|
37229
37233
|
${ReceiptFragmentDoc}`;
|
37234
|
+
var FailureStatusWithBlockIdFragmentDoc = lib_default2`
|
37235
|
+
fragment FailureStatusWithBlockIdFragment on FailureStatus {
|
37236
|
+
...FailureStatusFragment
|
37237
|
+
block {
|
37238
|
+
id
|
37239
|
+
}
|
37240
|
+
}
|
37241
|
+
${FailureStatusFragmentDoc}`;
|
37230
37242
|
var SqueezedOutStatusFragmentDoc = lib_default2`
|
37231
37243
|
fragment SqueezedOutStatusFragment on SqueezedOutStatus {
|
37232
37244
|
type: __typename
|
@@ -37239,13 +37251,13 @@ spurious results.`);
|
|
37239
37251
|
...SubmittedStatusFragment
|
37240
37252
|
}
|
37241
37253
|
... on SuccessStatus {
|
37242
|
-
...
|
37254
|
+
...SuccessStatusWithBlockIdFragment
|
37243
37255
|
transaction {
|
37244
37256
|
...malleableTransactionFieldsFragment
|
37245
37257
|
}
|
37246
37258
|
}
|
37247
37259
|
... on FailureStatus {
|
37248
|
-
...
|
37260
|
+
...FailureStatusWithBlockIdFragment
|
37249
37261
|
transaction {
|
37250
37262
|
...malleableTransactionFieldsFragment
|
37251
37263
|
}
|
@@ -37255,9 +37267,9 @@ spurious results.`);
|
|
37255
37267
|
}
|
37256
37268
|
}
|
37257
37269
|
${SubmittedStatusFragmentDoc}
|
37258
|
-
${
|
37270
|
+
${SuccessStatusWithBlockIdFragmentDoc}
|
37259
37271
|
${MalleableTransactionFieldsFragmentDoc}
|
37260
|
-
${
|
37272
|
+
${FailureStatusWithBlockIdFragmentDoc}
|
37261
37273
|
${SqueezedOutStatusFragmentDoc}`;
|
37262
37274
|
var TransactionStatusFragmentDoc = lib_default2`
|
37263
37275
|
fragment transactionStatusFragment on TransactionStatus {
|
@@ -37287,6 +37299,12 @@ ${SqueezedOutStatusFragmentDoc}`;
|
|
37287
37299
|
}
|
37288
37300
|
}
|
37289
37301
|
${TransactionStatusFragmentDoc}`;
|
37302
|
+
var TransactionRawPayloadFragmentDoc = lib_default2`
|
37303
|
+
fragment transactionRawPayloadFragment on Transaction {
|
37304
|
+
id
|
37305
|
+
rawPayload
|
37306
|
+
}
|
37307
|
+
`;
|
37290
37308
|
var InputEstimatePredicatesFragmentDoc = lib_default2`
|
37291
37309
|
fragment inputEstimatePredicatesFragment on Input {
|
37292
37310
|
... on InputCoin {
|
@@ -37374,7 +37392,6 @@ ${ReceiptFragmentDoc}`;
|
|
37374
37392
|
fragment coinFragment on Coin {
|
37375
37393
|
type: __typename
|
37376
37394
|
utxoId
|
37377
|
-
owner
|
37378
37395
|
amount
|
37379
37396
|
assetId
|
37380
37397
|
blockCreated
|
@@ -37398,10 +37415,15 @@ ${ReceiptFragmentDoc}`;
|
|
37398
37415
|
sender
|
37399
37416
|
recipient
|
37400
37417
|
data
|
37401
|
-
nonce
|
37402
37418
|
daHeight
|
37403
37419
|
}
|
37404
37420
|
`;
|
37421
|
+
var GetMessageFragmentDoc = lib_default2`
|
37422
|
+
fragment getMessageFragment on Message {
|
37423
|
+
...messageFragment
|
37424
|
+
nonce
|
37425
|
+
}
|
37426
|
+
${MessageFragmentDoc}`;
|
37405
37427
|
var MessageProofFragmentDoc = lib_default2`
|
37406
37428
|
fragment messageProofFragment on MessageProof {
|
37407
37429
|
messageProof {
|
@@ -37446,7 +37468,6 @@ ${ReceiptFragmentDoc}`;
|
|
37446
37468
|
}
|
37447
37469
|
sender
|
37448
37470
|
recipient
|
37449
|
-
nonce
|
37450
37471
|
amount
|
37451
37472
|
data
|
37452
37473
|
}
|
@@ -37593,12 +37614,6 @@ ${GasCostsFragmentDoc}`;
|
|
37593
37614
|
blockHeight
|
37594
37615
|
failure
|
37595
37616
|
}
|
37596
|
-
}
|
37597
|
-
`;
|
37598
|
-
var TransactionRawPayloadFragmentDoc = lib_default2`
|
37599
|
-
fragment transactionRawPayload on Transaction {
|
37600
|
-
id
|
37601
|
-
rawPayload
|
37602
37617
|
}
|
37603
37618
|
`;
|
37604
37619
|
var GetVersionDocument = lib_default2`
|
@@ -37643,16 +37658,34 @@ ${NodeInfoFragmentDoc}`;
|
|
37643
37658
|
var GetTransactionWithReceiptsDocument = lib_default2`
|
37644
37659
|
query getTransactionWithReceipts($transactionId: TransactionId!) {
|
37645
37660
|
transaction(id: $transactionId) {
|
37646
|
-
|
37661
|
+
id
|
37662
|
+
rawPayload
|
37663
|
+
status {
|
37664
|
+
... on SubmittedStatus {
|
37665
|
+
...SubmittedStatusFragment
|
37666
|
+
}
|
37667
|
+
... on SuccessStatus {
|
37668
|
+
...SuccessStatusWithBlockIdFragment
|
37669
|
+
}
|
37670
|
+
... on FailureStatus {
|
37671
|
+
...FailureStatusWithBlockIdFragment
|
37672
|
+
}
|
37673
|
+
... on SqueezedOutStatus {
|
37674
|
+
...SqueezedOutStatusFragment
|
37675
|
+
}
|
37676
|
+
}
|
37647
37677
|
}
|
37648
37678
|
}
|
37649
|
-
${
|
37679
|
+
${SubmittedStatusFragmentDoc}
|
37680
|
+
${SuccessStatusWithBlockIdFragmentDoc}
|
37681
|
+
${FailureStatusWithBlockIdFragmentDoc}
|
37682
|
+
${SqueezedOutStatusFragmentDoc}`;
|
37650
37683
|
var GetTransactionsDocument = lib_default2`
|
37651
37684
|
query getTransactions($after: String, $before: String, $first: Int, $last: Int) {
|
37652
37685
|
transactions(after: $after, before: $before, first: $first, last: $last) {
|
37653
37686
|
edges {
|
37654
37687
|
node {
|
37655
|
-
|
37688
|
+
rawPayload
|
37656
37689
|
}
|
37657
37690
|
}
|
37658
37691
|
pageInfo {
|
@@ -37660,8 +37693,7 @@ ${NodeInfoFragmentDoc}`;
|
|
37660
37693
|
}
|
37661
37694
|
}
|
37662
37695
|
}
|
37663
|
-
${
|
37664
|
-
${PageInfoFragmentDoc}`;
|
37696
|
+
${PageInfoFragmentDoc}`;
|
37665
37697
|
var GetTransactionsByOwnerDocument = lib_default2`
|
37666
37698
|
query getTransactionsByOwner($owner: Address!, $after: String, $before: String, $first: Int, $last: Int) {
|
37667
37699
|
transactionsByOwner(
|
@@ -37720,7 +37752,7 @@ ${TransactionFragmentDoc}`;
|
|
37720
37752
|
block(id: $blockId, height: $blockHeight) {
|
37721
37753
|
...blockFragment
|
37722
37754
|
transactions {
|
37723
|
-
...
|
37755
|
+
...transactionRawPayloadFragment
|
37724
37756
|
}
|
37725
37757
|
}
|
37726
37758
|
}
|
@@ -37745,6 +37777,7 @@ ${BlockFragmentDoc}`;
|
|
37745
37777
|
query getCoin($coinId: UtxoId!) {
|
37746
37778
|
coin(utxoId: $coinId) {
|
37747
37779
|
...coinFragment
|
37780
|
+
owner
|
37748
37781
|
}
|
37749
37782
|
}
|
37750
37783
|
${CoinFragmentDoc}`;
|
@@ -37853,13 +37886,13 @@ ${MessageCoinFragmentDoc}`;
|
|
37853
37886
|
}
|
37854
37887
|
edges {
|
37855
37888
|
node {
|
37856
|
-
...
|
37889
|
+
...getMessageFragment
|
37857
37890
|
}
|
37858
37891
|
}
|
37859
37892
|
}
|
37860
37893
|
}
|
37861
37894
|
${PageInfoFragmentDoc}
|
37862
|
-
${
|
37895
|
+
${GetMessageFragmentDoc}`;
|
37863
37896
|
var GetMessageProofDocument = lib_default2`
|
37864
37897
|
query getMessageProof($transactionId: TransactionId!, $nonce: Nonce!, $commitBlockId: BlockId, $commitBlockHeight: U32) {
|
37865
37898
|
messageProof(
|
@@ -38438,9 +38471,11 @@ ${MessageFragmentDoc}`;
|
|
38438
38471
|
const { receiptType } = receipt;
|
38439
38472
|
switch (receiptType) {
|
38440
38473
|
case "CALL" /* Call */: {
|
38474
|
+
const id = hexOrZero(receipt.id || receipt.contractId);
|
38441
38475
|
const callReceipt = {
|
38442
38476
|
type: ReceiptType.Call,
|
38443
|
-
|
38477
|
+
id,
|
38478
|
+
from: id,
|
38444
38479
|
to: hexOrZero(receipt?.to),
|
38445
38480
|
amount: bn(receipt.amount),
|
38446
38481
|
assetId: hexOrZero(receipt.assetId),
|
@@ -38497,24 +38532,36 @@ ${MessageFragmentDoc}`;
|
|
38497
38532
|
return revertReceipt;
|
38498
38533
|
}
|
38499
38534
|
case "LOG" /* Log */: {
|
38535
|
+
const ra = bn(receipt.ra);
|
38536
|
+
const rb = bn(receipt.rb);
|
38537
|
+
const rc = bn(receipt.rc);
|
38538
|
+
const rd = bn(receipt.rd);
|
38500
38539
|
const logReceipt = {
|
38501
38540
|
type: ReceiptType.Log,
|
38502
38541
|
id: hexOrZero(receipt.id || receipt.contractId),
|
38503
|
-
|
38504
|
-
|
38505
|
-
|
38506
|
-
|
38542
|
+
ra,
|
38543
|
+
rb,
|
38544
|
+
rc,
|
38545
|
+
rd,
|
38546
|
+
val0: ra,
|
38547
|
+
val1: rb,
|
38548
|
+
val2: rc,
|
38549
|
+
val3: rd,
|
38507
38550
|
pc: bn(receipt.pc),
|
38508
38551
|
is: bn(receipt.is)
|
38509
38552
|
};
|
38510
38553
|
return logReceipt;
|
38511
38554
|
}
|
38512
38555
|
case "LOG_DATA" /* LogData */: {
|
38556
|
+
const ra = bn(receipt.ra);
|
38557
|
+
const rb = bn(receipt.rb);
|
38513
38558
|
const logDataReceipt = {
|
38514
38559
|
type: ReceiptType.LogData,
|
38515
38560
|
id: hexOrZero(receipt.id || receipt.contractId),
|
38516
|
-
|
38517
|
-
|
38561
|
+
ra,
|
38562
|
+
rb,
|
38563
|
+
val0: ra,
|
38564
|
+
val1: rb,
|
38518
38565
|
ptr: bn(receipt.ptr),
|
38519
38566
|
len: bn(receipt.len),
|
38520
38567
|
digest: hexOrZero(receipt.digest),
|
@@ -38525,9 +38572,11 @@ ${MessageFragmentDoc}`;
|
|
38525
38572
|
return logDataReceipt;
|
38526
38573
|
}
|
38527
38574
|
case "TRANSFER" /* Transfer */: {
|
38575
|
+
const id = hexOrZero(receipt.id || receipt.contractId);
|
38528
38576
|
const transferReceipt = {
|
38529
38577
|
type: ReceiptType.Transfer,
|
38530
|
-
|
38578
|
+
id,
|
38579
|
+
from: id,
|
38531
38580
|
to: hexOrZero(receipt.toAddress || receipt?.to),
|
38532
38581
|
amount: bn(receipt.amount),
|
38533
38582
|
assetId: hexOrZero(receipt.assetId),
|
@@ -38537,9 +38586,11 @@ ${MessageFragmentDoc}`;
|
|
38537
38586
|
return transferReceipt;
|
38538
38587
|
}
|
38539
38588
|
case "TRANSFER_OUT" /* TransferOut */: {
|
38589
|
+
const id = hexOrZero(receipt.id || receipt.contractId);
|
38540
38590
|
const transferOutReceipt = {
|
38541
38591
|
type: ReceiptType.TransferOut,
|
38542
|
-
|
38592
|
+
id,
|
38593
|
+
from: id,
|
38543
38594
|
to: hexOrZero(receipt.toAddress || receipt.to),
|
38544
38595
|
amount: bn(receipt.amount),
|
38545
38596
|
assetId: hexOrZero(receipt.assetId),
|
@@ -39579,7 +39630,7 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
39579
39630
|
type = TransactionType.Blob;
|
39580
39631
|
/** Blob ID */
|
39581
39632
|
blobId;
|
39582
|
-
/** Witness index of
|
39633
|
+
/** Witness index of the bytecode to create */
|
39583
39634
|
witnessIndex;
|
39584
39635
|
/**
|
39585
39636
|
* Creates an instance `BlobTransactionRequest`.
|
@@ -40906,14 +40957,14 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
40906
40957
|
switch (gqlTransactionStatus.type) {
|
40907
40958
|
case "SuccessStatus":
|
40908
40959
|
time = gqlTransactionStatus.time;
|
40909
|
-
blockId = gqlTransactionStatus.block
|
40960
|
+
blockId = gqlTransactionStatus.block?.id;
|
40910
40961
|
isStatusSuccess = true;
|
40911
40962
|
totalFee = bn(gqlTransactionStatus.totalFee);
|
40912
40963
|
totalGas = bn(gqlTransactionStatus.totalGas);
|
40913
40964
|
break;
|
40914
40965
|
case "FailureStatus":
|
40915
40966
|
time = gqlTransactionStatus.time;
|
40916
|
-
blockId = gqlTransactionStatus.block
|
40967
|
+
blockId = gqlTransactionStatus.block?.id;
|
40917
40968
|
isStatusFailure = true;
|
40918
40969
|
totalFee = bn(gqlTransactionStatus.totalFee);
|
40919
40970
|
totalGas = bn(gqlTransactionStatus.totalGas);
|
@@ -41222,8 +41273,8 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
41222
41273
|
const subscription = this.submitTxSubscription ?? await this.provider.operations.statusChange({
|
41223
41274
|
transactionId: this.id
|
41224
41275
|
});
|
41225
|
-
for await (const
|
41226
|
-
const statusChange = "statusChange" in
|
41276
|
+
for await (const sub2 of subscription) {
|
41277
|
+
const statusChange = "statusChange" in sub2 ? sub2.statusChange : sub2.submitAndAwaitStatus;
|
41227
41278
|
this.status = statusChange;
|
41228
41279
|
if (statusChange.type === "SqueezedOutStatus") {
|
41229
41280
|
this.unsetResourceCache();
|
@@ -41344,11 +41395,52 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
41344
41395
|
{},
|
41345
41396
|
rawError
|
41346
41397
|
);
|
41398
|
+
case "max number of coins is reached while trying to fit the target" /* MAX_COINS_REACHED */:
|
41399
|
+
throw new FuelError(
|
41400
|
+
ErrorCode.MAX_COINS_REACHED,
|
41401
|
+
"The account retrieving coins has exceeded the maximum number of coins per asset. Please consider combining your coins into a single UTXO.",
|
41402
|
+
{},
|
41403
|
+
rawError
|
41404
|
+
);
|
41347
41405
|
default:
|
41348
41406
|
throw new FuelError(ErrorCode.INVALID_REQUEST, errorMessage);
|
41349
41407
|
}
|
41350
41408
|
};
|
41351
41409
|
|
41410
|
+
// src/providers/utils/validate-pagination-args.ts
|
41411
|
+
var validatePaginationArgs = (params) => {
|
41412
|
+
const { paginationLimit, inputArgs = {} } = params;
|
41413
|
+
const { first, last, after, before } = inputArgs;
|
41414
|
+
if (after && before) {
|
41415
|
+
throw new FuelError(
|
41416
|
+
ErrorCode.INVALID_INPUT_PARAMETERS,
|
41417
|
+
'Pagination arguments "after" and "before" cannot be used together'
|
41418
|
+
);
|
41419
|
+
}
|
41420
|
+
if ((first || 0) > paginationLimit || (last || 0) > paginationLimit) {
|
41421
|
+
throw new FuelError(
|
41422
|
+
ErrorCode.INVALID_INPUT_PARAMETERS,
|
41423
|
+
`Pagination limit for this query cannot exceed ${paginationLimit} items`
|
41424
|
+
);
|
41425
|
+
}
|
41426
|
+
if (first && before) {
|
41427
|
+
throw new FuelError(
|
41428
|
+
ErrorCode.INVALID_INPUT_PARAMETERS,
|
41429
|
+
'The use of pagination argument "first" with "before" is not supported'
|
41430
|
+
);
|
41431
|
+
}
|
41432
|
+
if (last && after) {
|
41433
|
+
throw new FuelError(
|
41434
|
+
ErrorCode.INVALID_INPUT_PARAMETERS,
|
41435
|
+
'The use of pagination argument "last" with "after" is not supported'
|
41436
|
+
);
|
41437
|
+
}
|
41438
|
+
if (!first && !last) {
|
41439
|
+
inputArgs.first = paginationLimit;
|
41440
|
+
}
|
41441
|
+
return inputArgs;
|
41442
|
+
};
|
41443
|
+
|
41352
41444
|
// src/providers/provider.ts
|
41353
41445
|
var MAX_RETRIES = 10;
|
41354
41446
|
var RESOURCES_PAGE_SIZE_LIMIT = 512;
|
@@ -42190,7 +42282,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42190
42282
|
const {
|
42191
42283
|
coins: { edges, pageInfo }
|
42192
42284
|
} = await this.operations.getCoins({
|
42193
|
-
...
|
42285
|
+
...validatePaginationArgs({
|
42194
42286
|
paginationLimit: RESOURCES_PAGE_SIZE_LIMIT,
|
42195
42287
|
inputArgs: paginationArgs
|
42196
42288
|
}),
|
@@ -42200,7 +42292,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42200
42292
|
id: node.utxoId,
|
42201
42293
|
assetId: node.assetId,
|
42202
42294
|
amount: bn(node.amount),
|
42203
|
-
owner:
|
42295
|
+
owner: ownerAddress,
|
42204
42296
|
blockCreated: bn(node.blockCreated),
|
42205
42297
|
txCreatedIdx: bn(node.txCreatedIdx)
|
42206
42298
|
}));
|
@@ -42254,7 +42346,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42254
42346
|
id: coin.utxoId,
|
42255
42347
|
amount: bn(coin.amount),
|
42256
42348
|
assetId: coin.assetId,
|
42257
|
-
owner:
|
42349
|
+
owner: ownerAddress,
|
42258
42350
|
blockCreated: bn(coin.blockCreated),
|
42259
42351
|
txCreatedIdx: bn(coin.txCreatedIdx)
|
42260
42352
|
};
|
@@ -42329,7 +42421,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42329
42421
|
const {
|
42330
42422
|
blocks: { edges, pageInfo }
|
42331
42423
|
} = await this.operations.getBlocks({
|
42332
|
-
...
|
42424
|
+
...validatePaginationArgs({
|
42333
42425
|
paginationLimit: BLOCKS_PAGE_SIZE_LIMIT,
|
42334
42426
|
inputArgs: params
|
42335
42427
|
})
|
@@ -42424,7 +42516,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42424
42516
|
const {
|
42425
42517
|
transactions: { edges, pageInfo }
|
42426
42518
|
} = await this.operations.getTransactions({
|
42427
|
-
...
|
42519
|
+
...validatePaginationArgs({
|
42428
42520
|
inputArgs: paginationArgs,
|
42429
42521
|
paginationLimit: TRANSACTIONS_PAGE_SIZE_LIMIT
|
42430
42522
|
})
|
@@ -42519,7 +42611,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42519
42611
|
const {
|
42520
42612
|
messages: { edges, pageInfo }
|
42521
42613
|
} = await this.operations.getMessages({
|
42522
|
-
...
|
42614
|
+
...validatePaginationArgs({
|
42523
42615
|
inputArgs: paginationArgs,
|
42524
42616
|
paginationLimit: RESOURCES_PAGE_SIZE_LIMIT
|
42525
42617
|
}),
|
@@ -42743,13 +42835,13 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42743
42835
|
messageId: InputMessageCoder.getMessageId({
|
42744
42836
|
sender: rawMessage.sender,
|
42745
42837
|
recipient: rawMessage.recipient,
|
42746
|
-
nonce
|
42838
|
+
nonce,
|
42747
42839
|
amount: bn(rawMessage.amount),
|
42748
42840
|
data: rawMessage.data
|
42749
42841
|
}),
|
42750
42842
|
sender: Address.fromAddressOrString(rawMessage.sender),
|
42751
42843
|
recipient: Address.fromAddressOrString(rawMessage.recipient),
|
42752
|
-
nonce
|
42844
|
+
nonce,
|
42753
42845
|
amount: bn(rawMessage.amount),
|
42754
42846
|
data: InputMessageCoder.decodeData(rawMessage.data),
|
42755
42847
|
daHeight: bn(rawMessage.daHeight)
|
@@ -42771,41 +42863,6 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42771
42863
|
}
|
42772
42864
|
return relayedTransactionStatus;
|
42773
42865
|
}
|
42774
|
-
/**
|
42775
|
-
* @hidden
|
42776
|
-
*/
|
42777
|
-
validatePaginationArgs(params) {
|
42778
|
-
const { paginationLimit, inputArgs = {} } = params;
|
42779
|
-
const { first, last, after, before } = inputArgs;
|
42780
|
-
if (after && before) {
|
42781
|
-
throw new FuelError(
|
42782
|
-
ErrorCode.INVALID_INPUT_PARAMETERS,
|
42783
|
-
'Pagination arguments "after" and "before" cannot be used together'
|
42784
|
-
);
|
42785
|
-
}
|
42786
|
-
if ((first || 0) > paginationLimit || (last || 0) > paginationLimit) {
|
42787
|
-
throw new FuelError(
|
42788
|
-
ErrorCode.INVALID_INPUT_PARAMETERS,
|
42789
|
-
`Pagination limit for this query cannot exceed ${paginationLimit} items`
|
42790
|
-
);
|
42791
|
-
}
|
42792
|
-
if (first && before) {
|
42793
|
-
throw new FuelError(
|
42794
|
-
ErrorCode.INVALID_INPUT_PARAMETERS,
|
42795
|
-
'The use of pagination argument "first" with "before" is not supported'
|
42796
|
-
);
|
42797
|
-
}
|
42798
|
-
if (last && after) {
|
42799
|
-
throw new FuelError(
|
42800
|
-
ErrorCode.INVALID_INPUT_PARAMETERS,
|
42801
|
-
'The use of pagination argument "last" with "after" is not supported'
|
42802
|
-
);
|
42803
|
-
}
|
42804
|
-
if (!first && !last) {
|
42805
|
-
inputArgs.first = paginationLimit;
|
42806
|
-
}
|
42807
|
-
return inputArgs;
|
42808
|
-
}
|
42809
42866
|
/**
|
42810
42867
|
* @hidden
|
42811
42868
|
*/
|
@@ -42926,7 +42983,15 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42926
42983
|
}
|
42927
42984
|
async function getTransactionsSummaries(params) {
|
42928
42985
|
const { filters, provider, abiMap } = params;
|
42929
|
-
const {
|
42986
|
+
const { owner, ...inputArgs } = filters;
|
42987
|
+
const validPaginationParams = validatePaginationArgs({
|
42988
|
+
inputArgs,
|
42989
|
+
paginationLimit: TRANSACTIONS_PAGE_SIZE_LIMIT
|
42990
|
+
});
|
42991
|
+
const { transactionsByOwner } = await provider.operations.getTransactionsByOwner({
|
42992
|
+
...validPaginationParams,
|
42993
|
+
owner
|
42994
|
+
});
|
42930
42995
|
const { edges, pageInfo } = transactionsByOwner;
|
42931
42996
|
const {
|
42932
42997
|
consensusParameters: {
|
@@ -43646,34 +43711,42 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
43646
43711
|
|
43647
43712
|
// src/utils/formatTransferToContractScriptData.ts
|
43648
43713
|
var asm = __toESM(require_node());
|
43649
|
-
var formatTransferToContractScriptData = (
|
43650
|
-
const { assetId, amountToTransfer, hexlifiedContractId } = params;
|
43714
|
+
var formatTransferToContractScriptData = (transferParams) => {
|
43651
43715
|
const numberCoder = new BigNumberCoder("u64");
|
43652
|
-
|
43653
|
-
|
43654
|
-
|
43655
|
-
|
43656
|
-
|
43657
|
-
|
43658
|
-
|
43716
|
+
return transferParams.reduce((acc, transferParam) => {
|
43717
|
+
const { assetId, amount, contractId } = transferParam;
|
43718
|
+
const encoded = numberCoder.encode(new BN(amount).toNumber());
|
43719
|
+
const scriptData = concat([
|
43720
|
+
Address.fromAddressOrString(contractId).toBytes(),
|
43721
|
+
encoded,
|
43722
|
+
arrayify(assetId)
|
43723
|
+
]);
|
43724
|
+
return concat([acc, scriptData]);
|
43725
|
+
}, new Uint8Array());
|
43659
43726
|
};
|
43660
|
-
var assembleTransferToContractScript = async (
|
43661
|
-
const scriptData = formatTransferToContractScriptData(
|
43727
|
+
var assembleTransferToContractScript = async (transferParams) => {
|
43728
|
+
const scriptData = formatTransferToContractScriptData(transferParams);
|
43662
43729
|
await asm.initWasm();
|
43663
|
-
|
43664
|
-
|
43665
|
-
|
43666
|
-
|
43667
|
-
|
43668
|
-
|
43669
|
-
|
43670
|
-
|
43671
|
-
|
43672
|
-
|
43673
|
-
|
43674
|
-
|
43675
|
-
|
43676
|
-
|
43730
|
+
let script = new Uint8Array();
|
43731
|
+
transferParams.forEach((_, i) => {
|
43732
|
+
const offset = (CONTRACT_ID_LEN + WORD_SIZE + ASSET_ID_LEN) * i;
|
43733
|
+
script = concat([
|
43734
|
+
script,
|
43735
|
+
// Load ScriptData into register 0x10.
|
43736
|
+
asm.gtf(16, 0, asm.GTFArgs.ScriptData).to_bytes(),
|
43737
|
+
// Add the offset to 0x10 so it will point to the current contract ID, store in 0x11.
|
43738
|
+
asm.addi(17, 16, offset).to_bytes(),
|
43739
|
+
// Add CONTRACT_ID_LEN to 0x11 to point to the amount in the ScriptData, store in 0x12.
|
43740
|
+
asm.addi(18, 17, CONTRACT_ID_LEN).to_bytes(),
|
43741
|
+
// Load word to the amount at 0x12 into register 0x13.
|
43742
|
+
asm.lw(19, 18, 0).to_bytes(),
|
43743
|
+
// Add WORD_SIZE to 0x12 to point to the asset ID in the ScriptData, store in 0x14.
|
43744
|
+
asm.addi(20, 18, WORD_SIZE).to_bytes(),
|
43745
|
+
// Perform the transfer using contract ID in 0x11, amount in 0x13, and asset ID in 0x14.
|
43746
|
+
asm.tr(17, 19, 20).to_bytes()
|
43747
|
+
]);
|
43748
|
+
});
|
43749
|
+
script = concat([script, asm.ret(1).to_bytes()]);
|
43677
43750
|
return { script, scriptData };
|
43678
43751
|
};
|
43679
43752
|
|
@@ -43971,35 +44044,35 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
43971
44044
|
* @returns A promise that resolves to the transaction response.
|
43972
44045
|
*/
|
43973
44046
|
async transferToContract(contractId, amount, assetId, txParams = {}) {
|
43974
|
-
|
43975
|
-
|
43976
|
-
|
43977
|
-
"Transfer amount must be a positive number."
|
43978
|
-
);
|
43979
|
-
}
|
43980
|
-
const contractAddress = Address.fromAddressOrString(contractId);
|
43981
|
-
const assetIdToTransfer = assetId ?? this.provider.getBaseAssetId();
|
43982
|
-
const { script, scriptData } = await assembleTransferToContractScript({
|
43983
|
-
hexlifiedContractId: contractAddress.toB256(),
|
43984
|
-
amountToTransfer: bn(amount),
|
43985
|
-
assetId: assetIdToTransfer
|
43986
|
-
});
|
44047
|
+
return this.batchTransferToContracts([{ amount, assetId, contractId }], txParams);
|
44048
|
+
}
|
44049
|
+
async batchTransferToContracts(contractTransferParams, txParams = {}) {
|
43987
44050
|
let request = new ScriptTransactionRequest({
|
43988
|
-
...txParams
|
43989
|
-
script,
|
43990
|
-
scriptData
|
43991
|
-
});
|
43992
|
-
request.addContractInputAndOutput(contractAddress);
|
43993
|
-
const txCost = await this.getTransactionCost(request, {
|
43994
|
-
quantities: [{ amount: bn(amount), assetId: String(assetIdToTransfer) }]
|
44051
|
+
...txParams
|
43995
44052
|
});
|
43996
|
-
|
43997
|
-
|
43998
|
-
|
43999
|
-
|
44000
|
-
|
44053
|
+
const quantities = [];
|
44054
|
+
const transferParams = contractTransferParams.map((transferParam) => {
|
44055
|
+
const amount = bn(transferParam.amount);
|
44056
|
+
const contractAddress = Address.fromAddressOrString(transferParam.contractId);
|
44057
|
+
const assetId = transferParam.assetId ? hexlify(transferParam.assetId) : this.provider.getBaseAssetId();
|
44058
|
+
if (amount.lte(0)) {
|
44059
|
+
throw new FuelError(
|
44060
|
+
ErrorCode.INVALID_TRANSFER_AMOUNT,
|
44061
|
+
"Transfer amount must be a positive number."
|
44062
|
+
);
|
44063
|
+
}
|
44064
|
+
request.addContractInputAndOutput(contractAddress);
|
44065
|
+
quantities.push({ amount, assetId });
|
44066
|
+
return {
|
44067
|
+
amount,
|
44068
|
+
contractId: contractAddress.toB256(),
|
44069
|
+
assetId
|
44070
|
+
};
|
44001
44071
|
});
|
44002
|
-
await
|
44072
|
+
const { script, scriptData } = await assembleTransferToContractScript(transferParams);
|
44073
|
+
request.script = script;
|
44074
|
+
request.scriptData = scriptData;
|
44075
|
+
request = await this.estimateAndFundTransaction(request, txParams, { quantities });
|
44003
44076
|
return this.sendTransaction(request);
|
44004
44077
|
}
|
44005
44078
|
/**
|
@@ -44178,9 +44251,9 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
44178
44251
|
}
|
44179
44252
|
}
|
44180
44253
|
/** @hidden * */
|
44181
|
-
async estimateAndFundTransaction(transactionRequest, txParams) {
|
44254
|
+
async estimateAndFundTransaction(transactionRequest, txParams, costParams) {
|
44182
44255
|
let request = transactionRequest;
|
44183
|
-
const txCost = await this.getTransactionCost(request);
|
44256
|
+
const txCost = await this.getTransactionCost(request, costParams);
|
44184
44257
|
request = this.validateGasLimitAndMaxFee({
|
44185
44258
|
transactionRequest: request,
|
44186
44259
|
gasUsed: txCost.gasUsed,
|
@@ -49005,6 +49078,208 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
49005
49078
|
var StorageAbstract = class {
|
49006
49079
|
};
|
49007
49080
|
|
49081
|
+
// src/utils/predicate-script-loader-instructions.ts
|
49082
|
+
var asm2 = __toESM(require_node());
|
49083
|
+
var BLOB_ID_SIZE = 32;
|
49084
|
+
var REG_ADDRESS_OF_DATA_AFTER_CODE = 16;
|
49085
|
+
var REG_START_OF_LOADED_CODE = 17;
|
49086
|
+
var REG_GENERAL_USE = 18;
|
49087
|
+
var WORD_SIZE2 = 8;
|
49088
|
+
function getDataOffset(binary) {
|
49089
|
+
const OFFSET_INDEX = 8;
|
49090
|
+
const dataView = new DataView(binary.buffer, OFFSET_INDEX, 8);
|
49091
|
+
const dataOffset = dataView.getBigUint64(0, false);
|
49092
|
+
return Number(dataOffset);
|
49093
|
+
}
|
49094
|
+
function getPredicateScriptLoaderInstructions(originalBinary, blobId) {
|
49095
|
+
const { RegId, Instruction } = asm2;
|
49096
|
+
const REG_PC = RegId.pc().to_u8();
|
49097
|
+
const REG_SP = RegId.sp().to_u8();
|
49098
|
+
const REG_IS = RegId.is().to_u8();
|
49099
|
+
const getInstructions = (numOfInstructions2) => [
|
49100
|
+
// 1. Load the blob content into memory
|
49101
|
+
// Find the start of the hardcoded blob ID, which is located after the loader code ends.
|
49102
|
+
asm2.move_(REG_ADDRESS_OF_DATA_AFTER_CODE, REG_PC),
|
49103
|
+
// hold the address of the blob ID.
|
49104
|
+
asm2.addi(
|
49105
|
+
REG_ADDRESS_OF_DATA_AFTER_CODE,
|
49106
|
+
REG_ADDRESS_OF_DATA_AFTER_CODE,
|
49107
|
+
numOfInstructions2 * Instruction.size()
|
49108
|
+
),
|
49109
|
+
// The code is going to be loaded from the current value of SP onwards, save
|
49110
|
+
// the location into REG_START_OF_LOADED_CODE so we can jump into it at the end.
|
49111
|
+
asm2.move_(REG_START_OF_LOADED_CODE, REG_SP),
|
49112
|
+
// REG_GENERAL_USE to hold the size of the blob.
|
49113
|
+
asm2.bsiz(REG_GENERAL_USE, REG_ADDRESS_OF_DATA_AFTER_CODE),
|
49114
|
+
// Push the blob contents onto the stack.
|
49115
|
+
asm2.ldc(REG_ADDRESS_OF_DATA_AFTER_CODE, 0, REG_GENERAL_USE, 1),
|
49116
|
+
// Move on to the data section length
|
49117
|
+
asm2.addi(REG_ADDRESS_OF_DATA_AFTER_CODE, REG_ADDRESS_OF_DATA_AFTER_CODE, BLOB_ID_SIZE),
|
49118
|
+
// load the size of the data section into REG_GENERAL_USE
|
49119
|
+
asm2.lw(REG_GENERAL_USE, REG_ADDRESS_OF_DATA_AFTER_CODE, 0),
|
49120
|
+
// after we have read the length of the data section, we move the pointer to the actual
|
49121
|
+
// data by skipping WORD_SIZE bytes.
|
49122
|
+
asm2.addi(REG_ADDRESS_OF_DATA_AFTER_CODE, REG_ADDRESS_OF_DATA_AFTER_CODE, WORD_SIZE2),
|
49123
|
+
// load the data section of the executable
|
49124
|
+
asm2.ldc(REG_ADDRESS_OF_DATA_AFTER_CODE, 0, REG_GENERAL_USE, 2),
|
49125
|
+
// Jump into the memory where the contract is loaded.
|
49126
|
+
// What follows is called _jmp_mem by the sway compiler.
|
49127
|
+
// Subtract the address contained in IS because jmp will add it back.
|
49128
|
+
asm2.sub(REG_START_OF_LOADED_CODE, REG_START_OF_LOADED_CODE, REG_IS),
|
49129
|
+
// jmp will multiply by 4, so we need to divide to cancel that out.
|
49130
|
+
asm2.divi(REG_START_OF_LOADED_CODE, REG_START_OF_LOADED_CODE, 4),
|
49131
|
+
// Jump to the start of the contract we loaded.
|
49132
|
+
asm2.jmp(REG_START_OF_LOADED_CODE)
|
49133
|
+
];
|
49134
|
+
const getInstructionsNoDataSection = (numOfInstructions2) => [
|
49135
|
+
// 1. Load the blob content into memory
|
49136
|
+
// Find the start of the hardcoded blob ID, which is located after the loader code ends.
|
49137
|
+
// 1. Load the blob content into memory
|
49138
|
+
// Find the start of the hardcoded blob ID, which is located after the loader code ends.
|
49139
|
+
asm2.move_(REG_ADDRESS_OF_DATA_AFTER_CODE, REG_PC),
|
49140
|
+
// hold the address of the blob ID.
|
49141
|
+
asm2.addi(
|
49142
|
+
REG_ADDRESS_OF_DATA_AFTER_CODE,
|
49143
|
+
REG_ADDRESS_OF_DATA_AFTER_CODE,
|
49144
|
+
numOfInstructions2 * Instruction.size()
|
49145
|
+
),
|
49146
|
+
// The code is going to be loaded from the current value of SP onwards, save
|
49147
|
+
// the location into REG_START_OF_LOADED_CODE so we can jump into it at the end.
|
49148
|
+
asm2.move_(REG_START_OF_LOADED_CODE, REG_SP),
|
49149
|
+
// REG_GENERAL_USE to hold the size of the blob.
|
49150
|
+
asm2.bsiz(REG_GENERAL_USE, REG_ADDRESS_OF_DATA_AFTER_CODE),
|
49151
|
+
// Push the blob contents onto the stack.
|
49152
|
+
asm2.ldc(REG_ADDRESS_OF_DATA_AFTER_CODE, 0, REG_GENERAL_USE, 1),
|
49153
|
+
// Jump into the memory where the contract is loaded.
|
49154
|
+
// What follows is called _jmp_mem by the sway compiler.
|
49155
|
+
// Subtract the address contained in IS because jmp will add it back.
|
49156
|
+
asm2.sub(REG_START_OF_LOADED_CODE, REG_START_OF_LOADED_CODE, REG_IS),
|
49157
|
+
// jmp will multiply by 4, so we need to divide to cancel that out.
|
49158
|
+
asm2.divi(REG_START_OF_LOADED_CODE, REG_START_OF_LOADED_CODE, 4),
|
49159
|
+
// Jump to the start of the contract we loaded.
|
49160
|
+
asm2.jmp(REG_START_OF_LOADED_CODE)
|
49161
|
+
];
|
49162
|
+
const offset = getDataOffset(originalBinary);
|
49163
|
+
if (originalBinary.length < offset) {
|
49164
|
+
throw new Error(
|
49165
|
+
`Data section offset is out of bounds, offset: ${offset}, binary length: ${originalBinary.length}`
|
49166
|
+
);
|
49167
|
+
}
|
49168
|
+
const dataSection = originalBinary.slice(offset);
|
49169
|
+
if (dataSection.length > 0) {
|
49170
|
+
const numOfInstructions2 = getInstructions(0).length;
|
49171
|
+
if (numOfInstructions2 > 65535) {
|
49172
|
+
throw new Error("Too many instructions, exceeding u16::MAX.");
|
49173
|
+
}
|
49174
|
+
const instructionBytes2 = new Uint8Array(
|
49175
|
+
getInstructions(numOfInstructions2).flatMap(
|
49176
|
+
(instruction) => Array.from(instruction.to_bytes())
|
49177
|
+
)
|
49178
|
+
);
|
49179
|
+
const blobBytes2 = new Uint8Array(blobId);
|
49180
|
+
const dataSectionLenBytes = new Uint8Array(8);
|
49181
|
+
const dataView = new DataView(dataSectionLenBytes.buffer);
|
49182
|
+
dataView.setBigUint64(0, BigInt(dataSection.length), false);
|
49183
|
+
const loaderBytecode2 = new Uint8Array([
|
49184
|
+
...instructionBytes2,
|
49185
|
+
...blobBytes2,
|
49186
|
+
...dataSectionLenBytes
|
49187
|
+
]);
|
49188
|
+
return {
|
49189
|
+
loaderBytecode: concat([loaderBytecode2, dataSection]),
|
49190
|
+
blobOffset: loaderBytecode2.length
|
49191
|
+
};
|
49192
|
+
}
|
49193
|
+
const numOfInstructions = getInstructionsNoDataSection(0).length;
|
49194
|
+
if (numOfInstructions > 65535) {
|
49195
|
+
throw new Error("Too many instructions, exceeding u16::MAX.");
|
49196
|
+
}
|
49197
|
+
const instructionBytes = new Uint8Array(
|
49198
|
+
getInstructionsNoDataSection(numOfInstructions).flatMap(
|
49199
|
+
(instruction) => Array.from(instruction.to_bytes())
|
49200
|
+
)
|
49201
|
+
);
|
49202
|
+
const blobBytes = new Uint8Array(blobId);
|
49203
|
+
const loaderBytecode = new Uint8Array([...instructionBytes, ...blobBytes]);
|
49204
|
+
return { loaderBytecode };
|
49205
|
+
}
|
49206
|
+
|
49207
|
+
// src/utils/deployScriptOrPredicate.ts
|
49208
|
+
async function fundBlobTx(deployer, blobTxRequest) {
|
49209
|
+
let totalCost = bn(0);
|
49210
|
+
const chainInfo = deployer.provider.getChain();
|
49211
|
+
const gasPrice = await deployer.provider.estimateGasPrice(10);
|
49212
|
+
const priceFactor = chainInfo.consensusParameters.feeParameters.gasPriceFactor;
|
49213
|
+
const minGas = blobTxRequest.calculateMinGas(chainInfo);
|
49214
|
+
const minFee = calculateGasFee({
|
49215
|
+
gasPrice,
|
49216
|
+
gas: minGas,
|
49217
|
+
priceFactor,
|
49218
|
+
tip: blobTxRequest.tip
|
49219
|
+
}).add(1);
|
49220
|
+
totalCost = totalCost.add(minFee);
|
49221
|
+
if (totalCost.gt(await deployer.getBalance())) {
|
49222
|
+
throw new FuelError(ErrorCode.FUNDS_TOO_LOW, "Insufficient balance to deploy predicate.");
|
49223
|
+
}
|
49224
|
+
const txCost = await deployer.getTransactionCost(blobTxRequest);
|
49225
|
+
blobTxRequest.maxFee = txCost.maxFee;
|
49226
|
+
return deployer.fund(blobTxRequest, txCost);
|
49227
|
+
}
|
49228
|
+
function adjustConfigurableOffsets(jsonAbi, configurableOffsetDiff) {
|
49229
|
+
const { configurables: readOnlyConfigurables } = jsonAbi;
|
49230
|
+
const configurables = [];
|
49231
|
+
readOnlyConfigurables.forEach((config) => {
|
49232
|
+
configurables.push({ ...config, offset: config.offset - configurableOffsetDiff });
|
49233
|
+
});
|
49234
|
+
return { ...jsonAbi, configurables };
|
49235
|
+
}
|
49236
|
+
async function deployScriptOrPredicate({
|
49237
|
+
deployer,
|
49238
|
+
bytecode,
|
49239
|
+
abi,
|
49240
|
+
loaderInstanceCallback
|
49241
|
+
}) {
|
49242
|
+
const dataSectionOffset = getDataOffset(arrayify(bytecode));
|
49243
|
+
const byteCodeWithoutDataSection = bytecode.slice(0, dataSectionOffset);
|
49244
|
+
const blobId = hash2(byteCodeWithoutDataSection);
|
49245
|
+
const blobTxRequest = new BlobTransactionRequest({
|
49246
|
+
blobId,
|
49247
|
+
witnessIndex: 0,
|
49248
|
+
witnesses: [byteCodeWithoutDataSection]
|
49249
|
+
});
|
49250
|
+
const { loaderBytecode, blobOffset } = getPredicateScriptLoaderInstructions(
|
49251
|
+
arrayify(bytecode),
|
49252
|
+
arrayify(blobId)
|
49253
|
+
);
|
49254
|
+
const configurableOffsetDiff = byteCodeWithoutDataSection.length - (blobOffset || 0);
|
49255
|
+
const newAbi = adjustConfigurableOffsets(abi, configurableOffsetDiff);
|
49256
|
+
const blobExists = (await deployer.provider.getBlobs([blobId])).length > 0;
|
49257
|
+
const loaderInstance = loaderInstanceCallback(loaderBytecode, newAbi);
|
49258
|
+
if (blobExists) {
|
49259
|
+
return {
|
49260
|
+
waitForResult: () => Promise.resolve(loaderInstance),
|
49261
|
+
blobId
|
49262
|
+
};
|
49263
|
+
}
|
49264
|
+
const fundedBlobRequest = await fundBlobTx(deployer, blobTxRequest);
|
49265
|
+
const waitForResult = async () => {
|
49266
|
+
try {
|
49267
|
+
const blobTx = await deployer.sendTransaction(fundedBlobRequest);
|
49268
|
+
const result = await blobTx.waitForResult();
|
49269
|
+
if (result.status !== "success" /* success */) {
|
49270
|
+
throw new Error();
|
49271
|
+
}
|
49272
|
+
} catch (err) {
|
49273
|
+
throw new FuelError(ErrorCode.TRANSACTION_FAILED, "Failed to deploy predicate chunk");
|
49274
|
+
}
|
49275
|
+
return loaderInstance;
|
49276
|
+
};
|
49277
|
+
return {
|
49278
|
+
waitForResult,
|
49279
|
+
blobId
|
49280
|
+
};
|
49281
|
+
}
|
49282
|
+
|
49008
49283
|
// ../merkle/dist/index.mjs
|
49009
49284
|
var EMPTY = "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
|
49010
49285
|
var Node = class {
|
@@ -49073,17 +49348,10 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
49073
49348
|
};
|
49074
49349
|
|
49075
49350
|
// src/predicate/predicate.ts
|
49076
|
-
function getDataOffset(binary) {
|
49077
|
-
const buffer = binary.buffer.slice(binary.byteOffset + 8, binary.byteOffset + 16);
|
49078
|
-
const dataView = new DataView(buffer);
|
49079
|
-
const dataOffset = dataView.getBigUint64(0, false);
|
49080
|
-
return Number(dataOffset);
|
49081
|
-
}
|
49082
49351
|
var Predicate = class extends Account {
|
49083
49352
|
bytes;
|
49084
49353
|
predicateData = [];
|
49085
49354
|
interface;
|
49086
|
-
loaderBytecode = "";
|
49087
49355
|
/**
|
49088
49356
|
* Creates an instance of the Predicate class.
|
49089
49357
|
*
|
@@ -49098,13 +49366,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
49098
49366
|
abi,
|
49099
49367
|
provider,
|
49100
49368
|
data,
|
49101
|
-
configurableConstants
|
49102
|
-
/**
|
49103
|
-
* TODO: Implement a getBytes method within the Predicate class. This method should return the loaderBytecode if it is set.
|
49104
|
-
* The getBytes method should be used in all places where we use this.bytes.
|
49105
|
-
* Note: Do not set loaderBytecode to a default string here; it should remain undefined when not provided.
|
49106
|
-
*/
|
49107
|
-
loaderBytecode = ""
|
49369
|
+
configurableConstants
|
49108
49370
|
}) {
|
49109
49371
|
const { predicateBytes, predicateInterface } = Predicate.processPredicateData(
|
49110
49372
|
bytecode,
|
@@ -49115,7 +49377,6 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
49115
49377
|
super(address, provider);
|
49116
49378
|
this.bytes = predicateBytes;
|
49117
49379
|
this.interface = predicateInterface;
|
49118
|
-
this.loaderBytecode = loaderBytecode;
|
49119
49380
|
if (data !== void 0 && data.length > 0) {
|
49120
49381
|
this.predicateData = data;
|
49121
49382
|
}
|
@@ -49178,15 +49439,12 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
49178
49439
|
*/
|
49179
49440
|
static processPredicateData(bytes2, jsonAbi, configurableConstants) {
|
49180
49441
|
let predicateBytes = arrayify(bytes2);
|
49181
|
-
|
49182
|
-
if (
|
49183
|
-
|
49184
|
-
|
49185
|
-
|
49186
|
-
|
49187
|
-
'Cannot use ABI without "main" function.'
|
49188
|
-
);
|
49189
|
-
}
|
49442
|
+
const abiInterface = new Interface(jsonAbi);
|
49443
|
+
if (abiInterface.functions.main === void 0) {
|
49444
|
+
throw new FuelError(
|
49445
|
+
ErrorCode.ABI_MAIN_METHOD_MISSING,
|
49446
|
+
'Cannot use ABI without "main" function.'
|
49447
|
+
);
|
49190
49448
|
}
|
49191
49449
|
if (configurableConstants && Object.keys(configurableConstants).length) {
|
49192
49450
|
predicateBytes = Predicate.setConfigurableConstants(
|
@@ -49240,15 +49498,9 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
49240
49498
|
* @param abiInterface - The ABI interface of the predicate.
|
49241
49499
|
* @returns The mutated bytes with the configurable constants set.
|
49242
49500
|
*/
|
49243
|
-
static setConfigurableConstants(bytes2, configurableConstants, abiInterface
|
49501
|
+
static setConfigurableConstants(bytes2, configurableConstants, abiInterface) {
|
49244
49502
|
const mutatedBytes = bytes2;
|
49245
49503
|
try {
|
49246
|
-
if (!abiInterface) {
|
49247
|
-
throw new FuelError(
|
49248
|
-
ErrorCode.INVALID_CONFIGURABLE_CONSTANTS,
|
49249
|
-
"Cannot validate configurable constants because the Predicate was instantiated without a JSON ABI"
|
49250
|
-
);
|
49251
|
-
}
|
49252
49504
|
if (Object.keys(abiInterface.configurables).length === 0) {
|
49253
49505
|
throw new FuelError(
|
49254
49506
|
ErrorCode.INVALID_CONFIGURABLE_CONSTANTS,
|
@@ -49266,15 +49518,6 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
49266
49518
|
const encoded = abiInterface.encodeConfigurable(key, value);
|
49267
49519
|
mutatedBytes.set(encoded, offset);
|
49268
49520
|
});
|
49269
|
-
if (loaderBytecode) {
|
49270
|
-
const offset = getDataOffset(bytes2);
|
49271
|
-
const dataSection = mutatedBytes.slice(offset);
|
49272
|
-
const dataSectionLen = dataSection.length;
|
49273
|
-
const dataSectionLenBytes = new Uint8Array(8);
|
49274
|
-
const dataSectionLenDataView = new DataView(dataSectionLenBytes.buffer);
|
49275
|
-
dataSectionLenDataView.setBigUint64(0, BigInt(dataSectionLen), false);
|
49276
|
-
mutatedBytes.set(concat([loaderBytecode, dataSectionLenBytes, dataSection]));
|
49277
|
-
}
|
49278
49521
|
} catch (err) {
|
49279
49522
|
throw new FuelError(
|
49280
49523
|
ErrorCode.INVALID_CONFIGURABLE_CONSTANTS,
|
@@ -49305,6 +49548,28 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
49305
49548
|
}
|
49306
49549
|
return index;
|
49307
49550
|
}
|
49551
|
+
/**
|
49552
|
+
*
|
49553
|
+
* @param account - The account used to pay the deployment costs.
|
49554
|
+
* @returns The _blobId_ and a _waitForResult_ callback that returns the deployed predicate
|
49555
|
+
* once the blob deployment transaction finishes.
|
49556
|
+
*
|
49557
|
+
* The returned loader predicate will have the same configurable constants
|
49558
|
+
* as the original predicate which was used to generate the loader predicate.
|
49559
|
+
*/
|
49560
|
+
async deploy(account) {
|
49561
|
+
return deployScriptOrPredicate({
|
49562
|
+
deployer: account,
|
49563
|
+
abi: this.interface.jsonAbi,
|
49564
|
+
bytecode: this.bytes,
|
49565
|
+
loaderInstanceCallback: (loaderBytecode, newAbi) => new Predicate({
|
49566
|
+
bytecode: loaderBytecode,
|
49567
|
+
abi: newAbi,
|
49568
|
+
provider: this.provider,
|
49569
|
+
data: this.predicateData
|
49570
|
+
})
|
49571
|
+
});
|
49572
|
+
}
|
49308
49573
|
};
|
49309
49574
|
|
49310
49575
|
// src/connectors/fuel-connector.ts
|