@fuel-ts/account 0.92.1 → 0.94.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/README.md +9 -29
- package/dist/account.d.ts +15 -4
- package/dist/account.d.ts.map +1 -1
- package/dist/configs.d.ts +0 -2
- package/dist/configs.d.ts.map +1 -1
- package/dist/configs.global.js +0 -2
- package/dist/configs.global.js.map +1 -1
- package/dist/configs.js +0 -6
- package/dist/configs.js.map +1 -1
- package/dist/configs.mjs +0 -4
- package/dist/configs.mjs.map +1 -1
- package/dist/connectors/fuel-connector.d.ts +24 -1
- package/dist/connectors/fuel-connector.d.ts.map +1 -1
- package/dist/connectors/fuel.d.ts +14 -1
- package/dist/connectors/fuel.d.ts.map +1 -1
- package/dist/connectors/types/connector-metadata.d.ts.map +1 -1
- package/dist/connectors/utils/promises.d.ts.map +1 -1
- package/dist/index.global.js +1645 -985
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +1034 -673
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +771 -423
- package/dist/index.mjs.map +1 -1
- package/dist/predicate/predicate.d.ts +15 -9
- package/dist/predicate/predicate.d.ts.map +1 -1
- package/dist/providers/__generated__/operations.d.ts +614 -1
- package/dist/providers/__generated__/operations.d.ts.map +1 -1
- package/dist/providers/fuel-graphql-subscriber.d.ts +3 -3
- package/dist/providers/fuel-graphql-subscriber.d.ts.map +1 -1
- package/dist/providers/provider.d.ts +19 -47
- package/dist/providers/provider.d.ts.map +1 -1
- package/dist/providers/resource-cache.d.ts +14 -0
- package/dist/providers/resource-cache.d.ts.map +1 -0
- package/dist/providers/transaction-request/blob-transaction-request.d.ts +48 -0
- package/dist/providers/transaction-request/blob-transaction-request.d.ts.map +1 -0
- package/dist/providers/transaction-request/index.d.ts +1 -0
- package/dist/providers/transaction-request/index.d.ts.map +1 -1
- package/dist/providers/transaction-request/transaction-request.d.ts +4 -3
- package/dist/providers/transaction-request/transaction-request.d.ts.map +1 -1
- package/dist/providers/transaction-request/types.d.ts +5 -2
- package/dist/providers/transaction-request/types.d.ts.map +1 -1
- package/dist/providers/transaction-request/utils.d.ts +9 -0
- package/dist/providers/transaction-request/utils.d.ts.map +1 -1
- package/dist/providers/transaction-response/transaction-response.d.ts +10 -5
- package/dist/providers/transaction-response/transaction-response.d.ts.map +1 -1
- package/dist/providers/transaction-summary/assemble-transaction-summary.d.ts +1 -1
- package/dist/providers/transaction-summary/assemble-transaction-summary.d.ts.map +1 -1
- package/dist/providers/transaction-summary/call.d.ts +4 -3
- package/dist/providers/transaction-summary/call.d.ts.map +1 -1
- package/dist/providers/transaction-summary/get-transaction-summary.d.ts.map +1 -1
- package/dist/providers/transaction-summary/input.d.ts +6 -1
- package/dist/providers/transaction-summary/input.d.ts.map +1 -1
- package/dist/providers/transaction-summary/operations.d.ts +4 -2
- package/dist/providers/transaction-summary/operations.d.ts.map +1 -1
- package/dist/providers/transaction-summary/types.d.ts +5 -2
- package/dist/providers/transaction-summary/types.d.ts.map +1 -1
- package/dist/providers/utils/gas.d.ts +6 -0
- package/dist/providers/utils/gas.d.ts.map +1 -1
- package/dist/test-utils/launchNode.d.ts +0 -16
- package/dist/test-utils/launchNode.d.ts.map +1 -1
- package/dist/test-utils/setup-test-provider-and-wallets.d.ts.map +1 -1
- package/dist/test-utils/test-asset-id.d.ts +8 -0
- package/dist/test-utils/test-asset-id.d.ts.map +1 -0
- package/dist/test-utils/test-message.d.ts +4 -2
- package/dist/test-utils/test-message.d.ts.map +1 -1
- package/dist/test-utils/wallet-config.d.ts +3 -3
- package/dist/test-utils/wallet-config.d.ts.map +1 -1
- package/dist/test-utils.d.ts +1 -3
- package/dist/test-utils.d.ts.map +1 -1
- package/dist/test-utils.global.js +43613 -42984
- package/dist/test-utils.global.js.map +1 -1
- package/dist/test-utils.js +1560 -1271
- package/dist/test-utils.js.map +1 -1
- package/dist/test-utils.mjs +1282 -994
- package/dist/test-utils.mjs.map +1 -1
- package/dist/wallet/base-wallet-unlocked.d.ts +1 -2
- package/dist/wallet/base-wallet-unlocked.d.ts.map +1 -1
- package/dist/wallet/keystore-wallet.d.ts.map +1 -1
- package/package.json +19 -21
- package/dist/providers/memory-cache.d.ts +0 -11
- package/dist/providers/memory-cache.d.ts.map +0 -1
- package/dist/test-utils/asset-id.d.ts +0 -8
- package/dist/test-utils/asset-id.d.ts.map +0 -1
- package/dist/test-utils/generateTestWallet.d.ts +0 -4
- package/dist/test-utils/generateTestWallet.d.ts.map +0 -1
- package/dist/test-utils/seedTestWallet.d.ts +0 -4
- package/dist/test-utils/seedTestWallet.d.ts.map +0 -1
package/dist/index.global.js
CHANGED
@@ -3035,7 +3035,7 @@
|
|
3035
3035
|
}
|
3036
3036
|
return chk;
|
3037
3037
|
}
|
3038
|
-
function convert2(data, inBits, outBits,
|
3038
|
+
function convert2(data, inBits, outBits, pad) {
|
3039
3039
|
let value = 0;
|
3040
3040
|
let bits = 0;
|
3041
3041
|
const maxV = (1 << outBits) - 1;
|
@@ -3048,7 +3048,7 @@
|
|
3048
3048
|
result.push(value >> bits & maxV);
|
3049
3049
|
}
|
3050
3050
|
}
|
3051
|
-
if (
|
3051
|
+
if (pad) {
|
3052
3052
|
if (bits > 0) {
|
3053
3053
|
result.push(value << outBits - bits & maxV);
|
3054
3054
|
}
|
@@ -20390,9 +20390,9 @@ spurious results.`);
|
|
20390
20390
|
}
|
20391
20391
|
});
|
20392
20392
|
|
20393
|
-
// ../../node_modules/.pnpm/@fuels+vm-asm@0.
|
20393
|
+
// ../../node_modules/.pnpm/@fuels+vm-asm@0.56.0/node_modules/@fuels/vm-asm/dist/node/index.cjs
|
20394
20394
|
var require_node = __commonJS({
|
20395
|
-
"../../node_modules/.pnpm/@fuels+vm-asm@0.
|
20395
|
+
"../../node_modules/.pnpm/@fuels+vm-asm@0.56.0/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: () => {
|
@@ -20606,8 +20606,8 @@ spurious results.`);
|
|
20606
20606
|
const ret3 = wasm$1.cb(dst);
|
20607
20607
|
return Instruction.__wrap(ret3);
|
20608
20608
|
}
|
20609
|
-
function ldc(contract_id_addr, offset, len) {
|
20610
|
-
const ret3 = wasm$1.ldc(contract_id_addr, offset, len);
|
20609
|
+
function ldc(contract_id_addr, offset, len, mode) {
|
20610
|
+
const ret3 = wasm$1.ldc(contract_id_addr, offset, len, mode);
|
20611
20611
|
return Instruction.__wrap(ret3);
|
20612
20612
|
}
|
20613
20613
|
function log(a, b, c, d) {
|
@@ -20662,8 +20662,8 @@ spurious results.`);
|
|
20662
20662
|
const ret3 = wasm$1.ecr1(dst_addr, sig_addr, msg_hash_addr);
|
20663
20663
|
return Instruction.__wrap(ret3);
|
20664
20664
|
}
|
20665
|
-
function ed19(pub_key_addr, sig_addr,
|
20666
|
-
const ret3 = wasm$1.ed19(pub_key_addr, sig_addr,
|
20665
|
+
function ed19(pub_key_addr, sig_addr, msg_addr, msg_len) {
|
20666
|
+
const ret3 = wasm$1.ed19(pub_key_addr, sig_addr, msg_addr, msg_len);
|
20667
20667
|
return Instruction.__wrap(ret3);
|
20668
20668
|
}
|
20669
20669
|
function k256(dst_addr, src_addr, len) {
|
@@ -20910,6 +20910,14 @@ spurious results.`);
|
|
20910
20910
|
const ret3 = wasm$1.ecal(a, b, c, d);
|
20911
20911
|
return Instruction.__wrap(ret3);
|
20912
20912
|
}
|
20913
|
+
function bsiz(dst, blob_id_ptr) {
|
20914
|
+
const ret3 = wasm$1.bsiz(dst, blob_id_ptr);
|
20915
|
+
return Instruction.__wrap(ret3);
|
20916
|
+
}
|
20917
|
+
function bldd(dst_ptr, blob_id_ptr, offset, len) {
|
20918
|
+
const ret3 = wasm$1.bldd(dst_ptr, blob_id_ptr, offset, len);
|
20919
|
+
return Instruction.__wrap(ret3);
|
20920
|
+
}
|
20913
20921
|
var cachedInt32Memory0 = null;
|
20914
20922
|
function getInt32Memory0() {
|
20915
20923
|
if (cachedInt32Memory0 === null || cachedInt32Memory0.byteLength === 0) {
|
@@ -20921,6 +20929,369 @@ spurious results.`);
|
|
20921
20929
|
ptr = ptr >>> 0;
|
20922
20930
|
return getUint8Memory0().subarray(ptr / 1, ptr / 1 + len);
|
20923
20931
|
}
|
20932
|
+
var GMArgs = Object.freeze({
|
20933
|
+
/**
|
20934
|
+
*r" Get if caller is external.
|
20935
|
+
*/
|
20936
|
+
IsCallerExternal: 1,
|
20937
|
+
"1": "IsCallerExternal",
|
20938
|
+
/**
|
20939
|
+
*r" Get caller's contract ID.
|
20940
|
+
*/
|
20941
|
+
GetCaller: 2,
|
20942
|
+
"2": "GetCaller",
|
20943
|
+
/**
|
20944
|
+
*r" Get index of current predicate.
|
20945
|
+
*/
|
20946
|
+
GetVerifyingPredicate: 3,
|
20947
|
+
"3": "GetVerifyingPredicate",
|
20948
|
+
/**
|
20949
|
+
*r" Get the Chain ID this VM is operating within
|
20950
|
+
*/
|
20951
|
+
GetChainId: 4,
|
20952
|
+
"4": "GetChainId",
|
20953
|
+
/**
|
20954
|
+
*r" Get memory address where the transaction is located
|
20955
|
+
*/
|
20956
|
+
TxStart: 5,
|
20957
|
+
"5": "TxStart",
|
20958
|
+
/**
|
20959
|
+
*r" Get memory address of base asset ID
|
20960
|
+
*/
|
20961
|
+
BaseAssetId: 6,
|
20962
|
+
"6": "BaseAssetId"
|
20963
|
+
});
|
20964
|
+
var CompareMode = Object.freeze({
|
20965
|
+
/**
|
20966
|
+
* Equality (`==`)
|
20967
|
+
*/
|
20968
|
+
EQ: 0,
|
20969
|
+
"0": "EQ",
|
20970
|
+
/**
|
20971
|
+
* Inequality (`!=`)
|
20972
|
+
*/
|
20973
|
+
NE: 1,
|
20974
|
+
"1": "NE",
|
20975
|
+
/**
|
20976
|
+
* Less than (`<`)
|
20977
|
+
*/
|
20978
|
+
LT: 2,
|
20979
|
+
"2": "LT",
|
20980
|
+
/**
|
20981
|
+
* Greater than (`>`)
|
20982
|
+
*/
|
20983
|
+
GT: 3,
|
20984
|
+
"3": "GT",
|
20985
|
+
/**
|
20986
|
+
* Less than or equals (`>=`)
|
20987
|
+
*/
|
20988
|
+
LTE: 4,
|
20989
|
+
"4": "LTE",
|
20990
|
+
/**
|
20991
|
+
* Greater than or equals (`>=`)
|
20992
|
+
*/
|
20993
|
+
GTE: 5,
|
20994
|
+
"5": "GTE",
|
20995
|
+
/**
|
20996
|
+
* Number of leading zeroes in lhs (`lzcnt`) (discards rhs)
|
20997
|
+
*/
|
20998
|
+
LZC: 6,
|
20999
|
+
"6": "LZC"
|
21000
|
+
});
|
21001
|
+
var PanicReason = Object.freeze({
|
21002
|
+
/**
|
21003
|
+
*r" The byte can't be mapped to any known `PanicReason`.
|
21004
|
+
*/
|
21005
|
+
UnknownPanicReason: 0,
|
21006
|
+
"0": "UnknownPanicReason",
|
21007
|
+
/**
|
21008
|
+
*r" Found `RVRT` instruction.
|
21009
|
+
*/
|
21010
|
+
Revert: 1,
|
21011
|
+
"1": "Revert",
|
21012
|
+
/**
|
21013
|
+
*r" Execution ran out of gas.
|
21014
|
+
*/
|
21015
|
+
OutOfGas: 2,
|
21016
|
+
"2": "OutOfGas",
|
21017
|
+
/**
|
21018
|
+
*r" The transaction validity is violated.
|
21019
|
+
*/
|
21020
|
+
TransactionValidity: 3,
|
21021
|
+
"3": "TransactionValidity",
|
21022
|
+
/**
|
21023
|
+
*r" Attempt to write outside interpreter memory boundaries.
|
21024
|
+
*/
|
21025
|
+
MemoryOverflow: 4,
|
21026
|
+
"4": "MemoryOverflow",
|
21027
|
+
/**
|
21028
|
+
*r" Overflow while executing arithmetic operation.
|
21029
|
+
*r" These errors are ignored using the WRAPPING flag.
|
21030
|
+
*/
|
21031
|
+
ArithmeticOverflow: 5,
|
21032
|
+
"5": "ArithmeticOverflow",
|
21033
|
+
/**
|
21034
|
+
*r" Designed contract was not found in the storage.
|
21035
|
+
*/
|
21036
|
+
ContractNotFound: 6,
|
21037
|
+
"6": "ContractNotFound",
|
21038
|
+
/**
|
21039
|
+
*r" Memory ownership rules are violated.
|
21040
|
+
*/
|
21041
|
+
MemoryOwnership: 7,
|
21042
|
+
"7": "MemoryOwnership",
|
21043
|
+
/**
|
21044
|
+
*r" The asset ID balance isn't enough for the instruction.
|
21045
|
+
*/
|
21046
|
+
NotEnoughBalance: 8,
|
21047
|
+
"8": "NotEnoughBalance",
|
21048
|
+
/**
|
21049
|
+
*r" The interpreter is expected to be in internal context.
|
21050
|
+
*/
|
21051
|
+
ExpectedInternalContext: 9,
|
21052
|
+
"9": "ExpectedInternalContext",
|
21053
|
+
/**
|
21054
|
+
*r" The queried asset ID was not found in the state.
|
21055
|
+
*/
|
21056
|
+
AssetIdNotFound: 10,
|
21057
|
+
"10": "AssetIdNotFound",
|
21058
|
+
/**
|
21059
|
+
*r" The provided input is not found in the transaction.
|
21060
|
+
*/
|
21061
|
+
InputNotFound: 11,
|
21062
|
+
"11": "InputNotFound",
|
21063
|
+
/**
|
21064
|
+
*r" The provided output is not found in the transaction.
|
21065
|
+
*/
|
21066
|
+
OutputNotFound: 12,
|
21067
|
+
"12": "OutputNotFound",
|
21068
|
+
/**
|
21069
|
+
*r" The provided witness is not found in the transaction.
|
21070
|
+
*/
|
21071
|
+
WitnessNotFound: 13,
|
21072
|
+
"13": "WitnessNotFound",
|
21073
|
+
/**
|
21074
|
+
*r" The transaction maturity is not valid for this request.
|
21075
|
+
*/
|
21076
|
+
TransactionMaturity: 14,
|
21077
|
+
"14": "TransactionMaturity",
|
21078
|
+
/**
|
21079
|
+
*r" The metadata identifier is invalid.
|
21080
|
+
*/
|
21081
|
+
InvalidMetadataIdentifier: 15,
|
21082
|
+
"15": "InvalidMetadataIdentifier",
|
21083
|
+
/**
|
21084
|
+
*r" The call structure is not valid.
|
21085
|
+
*/
|
21086
|
+
MalformedCallStructure: 16,
|
21087
|
+
"16": "MalformedCallStructure",
|
21088
|
+
/**
|
21089
|
+
*r" The provided register does not allow write operations.
|
21090
|
+
*/
|
21091
|
+
ReservedRegisterNotWritable: 17,
|
21092
|
+
"17": "ReservedRegisterNotWritable",
|
21093
|
+
/**
|
21094
|
+
*r" The execution resulted in an erroneous state of the interpreter.
|
21095
|
+
*/
|
21096
|
+
InvalidFlags: 18,
|
21097
|
+
"18": "InvalidFlags",
|
21098
|
+
/**
|
21099
|
+
*r" The provided immediate value is not valid for this instruction.
|
21100
|
+
*/
|
21101
|
+
InvalidImmediateValue: 19,
|
21102
|
+
"19": "InvalidImmediateValue",
|
21103
|
+
/**
|
21104
|
+
*r" The provided transaction input is not of type `Coin`.
|
21105
|
+
*/
|
21106
|
+
ExpectedCoinInput: 20,
|
21107
|
+
"20": "ExpectedCoinInput",
|
21108
|
+
/**
|
21109
|
+
*r" `ECAL` instruction failed.
|
21110
|
+
*/
|
21111
|
+
EcalError: 21,
|
21112
|
+
"21": "EcalError",
|
21113
|
+
/**
|
21114
|
+
*r" Two segments of the interpreter memory should not intersect for write operations.
|
21115
|
+
*/
|
21116
|
+
MemoryWriteOverlap: 22,
|
21117
|
+
"22": "MemoryWriteOverlap",
|
21118
|
+
/**
|
21119
|
+
*r" The requested contract is not listed in the transaction inputs.
|
21120
|
+
*/
|
21121
|
+
ContractNotInInputs: 23,
|
21122
|
+
"23": "ContractNotInInputs",
|
21123
|
+
/**
|
21124
|
+
*r" The internal asset ID balance overflowed with the provided instruction.
|
21125
|
+
*/
|
21126
|
+
InternalBalanceOverflow: 24,
|
21127
|
+
"24": "InternalBalanceOverflow",
|
21128
|
+
/**
|
21129
|
+
*r" The maximum allowed contract size is violated.
|
21130
|
+
*/
|
21131
|
+
ContractMaxSize: 25,
|
21132
|
+
"25": "ContractMaxSize",
|
21133
|
+
/**
|
21134
|
+
*r" This instruction expects the stack area to be unallocated for this call.
|
21135
|
+
*/
|
21136
|
+
ExpectedUnallocatedStack: 26,
|
21137
|
+
"26": "ExpectedUnallocatedStack",
|
21138
|
+
/**
|
21139
|
+
*r" The maximum allowed number of static contracts was reached for this transaction.
|
21140
|
+
*/
|
21141
|
+
MaxStaticContractsReached: 27,
|
21142
|
+
"27": "MaxStaticContractsReached",
|
21143
|
+
/**
|
21144
|
+
*r" The requested transfer amount cannot be zero.
|
21145
|
+
*/
|
21146
|
+
TransferAmountCannotBeZero: 28,
|
21147
|
+
"28": "TransferAmountCannotBeZero",
|
21148
|
+
/**
|
21149
|
+
*r" The provided transaction output should be of type `Variable`.
|
21150
|
+
*/
|
21151
|
+
ExpectedOutputVariable: 29,
|
21152
|
+
"29": "ExpectedOutputVariable",
|
21153
|
+
/**
|
21154
|
+
*r" The expected context of the stack parent is internal.
|
21155
|
+
*/
|
21156
|
+
ExpectedParentInternalContext: 30,
|
21157
|
+
"30": "ExpectedParentInternalContext",
|
21158
|
+
/**
|
21159
|
+
*r" The predicate returned non `1`. The `1` means successful verification
|
21160
|
+
*r" of the predicate, all other values means unsuccessful.
|
21161
|
+
*/
|
21162
|
+
PredicateReturnedNonOne: 31,
|
21163
|
+
"31": "PredicateReturnedNonOne",
|
21164
|
+
/**
|
21165
|
+
*r" The contract ID is already deployed and can't be overwritten.
|
21166
|
+
*/
|
21167
|
+
ContractIdAlreadyDeployed: 32,
|
21168
|
+
"32": "ContractIdAlreadyDeployed",
|
21169
|
+
/**
|
21170
|
+
*r" The loaded contract mismatch expectations.
|
21171
|
+
*/
|
21172
|
+
ContractMismatch: 33,
|
21173
|
+
"33": "ContractMismatch",
|
21174
|
+
/**
|
21175
|
+
*r" Attempting to send message data longer than `MAX_MESSAGE_DATA_LENGTH`
|
21176
|
+
*/
|
21177
|
+
MessageDataTooLong: 34,
|
21178
|
+
"34": "MessageDataTooLong",
|
21179
|
+
/**
|
21180
|
+
*r" Mathematically invalid arguments where given to an arithmetic instruction.
|
21181
|
+
*r" For instance, division by zero produces this.
|
21182
|
+
*r" These errors are ignored using the UNSAFEMATH flag.
|
21183
|
+
*/
|
21184
|
+
ArithmeticError: 35,
|
21185
|
+
"35": "ArithmeticError",
|
21186
|
+
/**
|
21187
|
+
*r" The contract instruction is not allowed in predicates.
|
21188
|
+
*/
|
21189
|
+
ContractInstructionNotAllowed: 36,
|
21190
|
+
"36": "ContractInstructionNotAllowed",
|
21191
|
+
/**
|
21192
|
+
*r" Transfer of zero coins is not allowed.
|
21193
|
+
*/
|
21194
|
+
TransferZeroCoins: 37,
|
21195
|
+
"37": "TransferZeroCoins",
|
21196
|
+
/**
|
21197
|
+
*r" Attempted to execute an invalid instruction
|
21198
|
+
*/
|
21199
|
+
InvalidInstruction: 38,
|
21200
|
+
"38": "InvalidInstruction",
|
21201
|
+
/**
|
21202
|
+
*r" Memory outside $is..$ssp range is not executable
|
21203
|
+
*/
|
21204
|
+
MemoryNotExecutable: 39,
|
21205
|
+
"39": "MemoryNotExecutable",
|
21206
|
+
/**
|
21207
|
+
*r" The policy is not set.
|
21208
|
+
*/
|
21209
|
+
PolicyIsNotSet: 40,
|
21210
|
+
"40": "PolicyIsNotSet",
|
21211
|
+
/**
|
21212
|
+
*r" The policy is not found across policies.
|
21213
|
+
*/
|
21214
|
+
PolicyNotFound: 41,
|
21215
|
+
"41": "PolicyNotFound",
|
21216
|
+
/**
|
21217
|
+
*r" Receipt context is full
|
21218
|
+
*/
|
21219
|
+
TooManyReceipts: 42,
|
21220
|
+
"42": "TooManyReceipts",
|
21221
|
+
/**
|
21222
|
+
*r" Balance of a contract overflowed
|
21223
|
+
*/
|
21224
|
+
BalanceOverflow: 43,
|
21225
|
+
"43": "BalanceOverflow",
|
21226
|
+
/**
|
21227
|
+
*r" Block height value is invalid, typically because it is too large
|
21228
|
+
*/
|
21229
|
+
InvalidBlockHeight: 44,
|
21230
|
+
"44": "InvalidBlockHeight",
|
21231
|
+
/**
|
21232
|
+
*r" Attempt to use sequential memory instructions with too large slot count,
|
21233
|
+
*r" typically because it cannot fit into usize
|
21234
|
+
*/
|
21235
|
+
TooManySlots: 45,
|
21236
|
+
"45": "TooManySlots",
|
21237
|
+
/**
|
21238
|
+
*r" Caller of this internal context is also expected to be internal,
|
21239
|
+
*r" i.e. $fp->$fp must be non-zero.
|
21240
|
+
*/
|
21241
|
+
ExpectedNestedCaller: 46,
|
21242
|
+
"46": "ExpectedNestedCaller",
|
21243
|
+
/**
|
21244
|
+
*r" During memory growth, the stack overlapped with the heap
|
21245
|
+
*/
|
21246
|
+
MemoryGrowthOverlap: 47,
|
21247
|
+
"47": "MemoryGrowthOverlap",
|
21248
|
+
/**
|
21249
|
+
*r" Attempting to read or write uninitialized memory.
|
21250
|
+
*r" Also occurs when boundary crosses from stack to heap.
|
21251
|
+
*/
|
21252
|
+
UninitalizedMemoryAccess: 48,
|
21253
|
+
"48": "UninitalizedMemoryAccess",
|
21254
|
+
/**
|
21255
|
+
*r" Overriding consensus parameters is not allowed.
|
21256
|
+
*/
|
21257
|
+
OverridingConsensusParameters: 49,
|
21258
|
+
"49": "OverridingConsensusParameters",
|
21259
|
+
/**
|
21260
|
+
*r" The storage doesn't know about the hash of the state transition bytecode.
|
21261
|
+
*/
|
21262
|
+
UnknownStateTransactionBytecodeRoot: 50,
|
21263
|
+
"50": "UnknownStateTransactionBytecodeRoot",
|
21264
|
+
/**
|
21265
|
+
*r" Overriding the state transition bytecode is not allowed.
|
21266
|
+
*/
|
21267
|
+
OverridingStateTransactionBytecode: 51,
|
21268
|
+
"51": "OverridingStateTransactionBytecode",
|
21269
|
+
/**
|
21270
|
+
*r" The bytecode is already uploaded and cannot be uploaded again.
|
21271
|
+
*/
|
21272
|
+
BytecodeAlreadyUploaded: 52,
|
21273
|
+
"52": "BytecodeAlreadyUploaded",
|
21274
|
+
/**
|
21275
|
+
*r" The part of the bytecode is not sequentially connected to the previous parts.
|
21276
|
+
*/
|
21277
|
+
ThePartIsNotSequentiallyConnected: 53,
|
21278
|
+
"53": "ThePartIsNotSequentiallyConnected",
|
21279
|
+
/**
|
21280
|
+
*r" The requested blob is not found.
|
21281
|
+
*/
|
21282
|
+
BlobNotFound: 54,
|
21283
|
+
"54": "BlobNotFound",
|
21284
|
+
/**
|
21285
|
+
*r" The blob was already
|
21286
|
+
*/
|
21287
|
+
BlobIdAlreadyUploaded: 55,
|
21288
|
+
"55": "BlobIdAlreadyUploaded",
|
21289
|
+
/**
|
21290
|
+
*r" Active gas costs do not define the cost for this instruction.
|
21291
|
+
*/
|
21292
|
+
GasCostNotDefined: 56,
|
21293
|
+
"56": "GasCostNotDefined"
|
21294
|
+
});
|
20924
21295
|
var GTFArgs2 = Object.freeze({
|
20925
21296
|
/**
|
20926
21297
|
*r" Set `$rA` to `tx.type`
|
@@ -21248,317 +21619,6 @@ spurious results.`);
|
|
21248
21619
|
PolicyMaxFee: 1284,
|
21249
21620
|
"1284": "PolicyMaxFee"
|
21250
21621
|
});
|
21251
|
-
var PanicReason = Object.freeze({
|
21252
|
-
/**
|
21253
|
-
*r" The byte can't be mapped to any known `PanicReason`.
|
21254
|
-
*/
|
21255
|
-
UnknownPanicReason: 0,
|
21256
|
-
"0": "UnknownPanicReason",
|
21257
|
-
/**
|
21258
|
-
*r" Found `RVRT` instruction.
|
21259
|
-
*/
|
21260
|
-
Revert: 1,
|
21261
|
-
"1": "Revert",
|
21262
|
-
/**
|
21263
|
-
*r" Execution ran out of gas.
|
21264
|
-
*/
|
21265
|
-
OutOfGas: 2,
|
21266
|
-
"2": "OutOfGas",
|
21267
|
-
/**
|
21268
|
-
*r" The transaction validity is violated.
|
21269
|
-
*/
|
21270
|
-
TransactionValidity: 3,
|
21271
|
-
"3": "TransactionValidity",
|
21272
|
-
/**
|
21273
|
-
*r" Attempt to write outside interpreter memory boundaries.
|
21274
|
-
*/
|
21275
|
-
MemoryOverflow: 4,
|
21276
|
-
"4": "MemoryOverflow",
|
21277
|
-
/**
|
21278
|
-
*r" Overflow while executing arithmetic operation.
|
21279
|
-
*r" These errors are ignored using the WRAPPING flag.
|
21280
|
-
*/
|
21281
|
-
ArithmeticOverflow: 5,
|
21282
|
-
"5": "ArithmeticOverflow",
|
21283
|
-
/**
|
21284
|
-
*r" Designed contract was not found in the storage.
|
21285
|
-
*/
|
21286
|
-
ContractNotFound: 6,
|
21287
|
-
"6": "ContractNotFound",
|
21288
|
-
/**
|
21289
|
-
*r" Memory ownership rules are violated.
|
21290
|
-
*/
|
21291
|
-
MemoryOwnership: 7,
|
21292
|
-
"7": "MemoryOwnership",
|
21293
|
-
/**
|
21294
|
-
*r" The asset ID balance isn't enough for the instruction.
|
21295
|
-
*/
|
21296
|
-
NotEnoughBalance: 8,
|
21297
|
-
"8": "NotEnoughBalance",
|
21298
|
-
/**
|
21299
|
-
*r" The interpreter is expected to be in internal context.
|
21300
|
-
*/
|
21301
|
-
ExpectedInternalContext: 9,
|
21302
|
-
"9": "ExpectedInternalContext",
|
21303
|
-
/**
|
21304
|
-
*r" The queried asset ID was not found in the state.
|
21305
|
-
*/
|
21306
|
-
AssetIdNotFound: 10,
|
21307
|
-
"10": "AssetIdNotFound",
|
21308
|
-
/**
|
21309
|
-
*r" The provided input is not found in the transaction.
|
21310
|
-
*/
|
21311
|
-
InputNotFound: 11,
|
21312
|
-
"11": "InputNotFound",
|
21313
|
-
/**
|
21314
|
-
*r" The provided output is not found in the transaction.
|
21315
|
-
*/
|
21316
|
-
OutputNotFound: 12,
|
21317
|
-
"12": "OutputNotFound",
|
21318
|
-
/**
|
21319
|
-
*r" The provided witness is not found in the transaction.
|
21320
|
-
*/
|
21321
|
-
WitnessNotFound: 13,
|
21322
|
-
"13": "WitnessNotFound",
|
21323
|
-
/**
|
21324
|
-
*r" The transaction maturity is not valid for this request.
|
21325
|
-
*/
|
21326
|
-
TransactionMaturity: 14,
|
21327
|
-
"14": "TransactionMaturity",
|
21328
|
-
/**
|
21329
|
-
*r" The metadata identifier is invalid.
|
21330
|
-
*/
|
21331
|
-
InvalidMetadataIdentifier: 15,
|
21332
|
-
"15": "InvalidMetadataIdentifier",
|
21333
|
-
/**
|
21334
|
-
*r" The call structure is not valid.
|
21335
|
-
*/
|
21336
|
-
MalformedCallStructure: 16,
|
21337
|
-
"16": "MalformedCallStructure",
|
21338
|
-
/**
|
21339
|
-
*r" The provided register does not allow write operations.
|
21340
|
-
*/
|
21341
|
-
ReservedRegisterNotWritable: 17,
|
21342
|
-
"17": "ReservedRegisterNotWritable",
|
21343
|
-
/**
|
21344
|
-
*r" The execution resulted in an erroneous state of the interpreter.
|
21345
|
-
*/
|
21346
|
-
InvalidFlags: 18,
|
21347
|
-
"18": "InvalidFlags",
|
21348
|
-
/**
|
21349
|
-
*r" The provided immediate value is not valid for this instruction.
|
21350
|
-
*/
|
21351
|
-
InvalidImmediateValue: 19,
|
21352
|
-
"19": "InvalidImmediateValue",
|
21353
|
-
/**
|
21354
|
-
*r" The provided transaction input is not of type `Coin`.
|
21355
|
-
*/
|
21356
|
-
ExpectedCoinInput: 20,
|
21357
|
-
"20": "ExpectedCoinInput",
|
21358
|
-
/**
|
21359
|
-
*r" `ECAL` instruction failed.
|
21360
|
-
*/
|
21361
|
-
EcalError: 21,
|
21362
|
-
"21": "EcalError",
|
21363
|
-
/**
|
21364
|
-
*r" Two segments of the interpreter memory should not intersect for write operations.
|
21365
|
-
*/
|
21366
|
-
MemoryWriteOverlap: 22,
|
21367
|
-
"22": "MemoryWriteOverlap",
|
21368
|
-
/**
|
21369
|
-
*r" The requested contract is not listed in the transaction inputs.
|
21370
|
-
*/
|
21371
|
-
ContractNotInInputs: 23,
|
21372
|
-
"23": "ContractNotInInputs",
|
21373
|
-
/**
|
21374
|
-
*r" The internal asset ID balance overflowed with the provided instruction.
|
21375
|
-
*/
|
21376
|
-
InternalBalanceOverflow: 24,
|
21377
|
-
"24": "InternalBalanceOverflow",
|
21378
|
-
/**
|
21379
|
-
*r" The maximum allowed contract size is violated.
|
21380
|
-
*/
|
21381
|
-
ContractMaxSize: 25,
|
21382
|
-
"25": "ContractMaxSize",
|
21383
|
-
/**
|
21384
|
-
*r" This instruction expects the stack area to be unallocated for this call.
|
21385
|
-
*/
|
21386
|
-
ExpectedUnallocatedStack: 26,
|
21387
|
-
"26": "ExpectedUnallocatedStack",
|
21388
|
-
/**
|
21389
|
-
*r" The maximum allowed number of static contracts was reached for this transaction.
|
21390
|
-
*/
|
21391
|
-
MaxStaticContractsReached: 27,
|
21392
|
-
"27": "MaxStaticContractsReached",
|
21393
|
-
/**
|
21394
|
-
*r" The requested transfer amount cannot be zero.
|
21395
|
-
*/
|
21396
|
-
TransferAmountCannotBeZero: 28,
|
21397
|
-
"28": "TransferAmountCannotBeZero",
|
21398
|
-
/**
|
21399
|
-
*r" The provided transaction output should be of type `Variable`.
|
21400
|
-
*/
|
21401
|
-
ExpectedOutputVariable: 29,
|
21402
|
-
"29": "ExpectedOutputVariable",
|
21403
|
-
/**
|
21404
|
-
*r" The expected context of the stack parent is internal.
|
21405
|
-
*/
|
21406
|
-
ExpectedParentInternalContext: 30,
|
21407
|
-
"30": "ExpectedParentInternalContext",
|
21408
|
-
/**
|
21409
|
-
*r" The predicate returned non `1`. The `1` means successful verification
|
21410
|
-
*r" of the predicate, all other values means unsuccessful.
|
21411
|
-
*/
|
21412
|
-
PredicateReturnedNonOne: 31,
|
21413
|
-
"31": "PredicateReturnedNonOne",
|
21414
|
-
/**
|
21415
|
-
*r" The contract ID is already deployed and can't be overwritten.
|
21416
|
-
*/
|
21417
|
-
ContractIdAlreadyDeployed: 32,
|
21418
|
-
"32": "ContractIdAlreadyDeployed",
|
21419
|
-
/**
|
21420
|
-
*r" The loaded contract mismatch expectations.
|
21421
|
-
*/
|
21422
|
-
ContractMismatch: 33,
|
21423
|
-
"33": "ContractMismatch",
|
21424
|
-
/**
|
21425
|
-
*r" Attempting to send message data longer than `MAX_MESSAGE_DATA_LENGTH`
|
21426
|
-
*/
|
21427
|
-
MessageDataTooLong: 34,
|
21428
|
-
"34": "MessageDataTooLong",
|
21429
|
-
/**
|
21430
|
-
*r" Mathematically invalid arguments where given to an arithmetic instruction.
|
21431
|
-
*r" For instance, division by zero produces this.
|
21432
|
-
*r" These errors are ignored using the UNSAFEMATH flag.
|
21433
|
-
*/
|
21434
|
-
ArithmeticError: 35,
|
21435
|
-
"35": "ArithmeticError",
|
21436
|
-
/**
|
21437
|
-
*r" The contract instruction is not allowed in predicates.
|
21438
|
-
*/
|
21439
|
-
ContractInstructionNotAllowed: 36,
|
21440
|
-
"36": "ContractInstructionNotAllowed",
|
21441
|
-
/**
|
21442
|
-
*r" Transfer of zero coins is not allowed.
|
21443
|
-
*/
|
21444
|
-
TransferZeroCoins: 37,
|
21445
|
-
"37": "TransferZeroCoins",
|
21446
|
-
/**
|
21447
|
-
*r" Attempted to execute an invalid instruction
|
21448
|
-
*/
|
21449
|
-
InvalidInstruction: 38,
|
21450
|
-
"38": "InvalidInstruction",
|
21451
|
-
/**
|
21452
|
-
*r" Memory outside $is..$ssp range is not executable
|
21453
|
-
*/
|
21454
|
-
MemoryNotExecutable: 39,
|
21455
|
-
"39": "MemoryNotExecutable",
|
21456
|
-
/**
|
21457
|
-
*r" The policy is not set.
|
21458
|
-
*/
|
21459
|
-
PolicyIsNotSet: 40,
|
21460
|
-
"40": "PolicyIsNotSet",
|
21461
|
-
/**
|
21462
|
-
*r" The policy is not found across policies.
|
21463
|
-
*/
|
21464
|
-
PolicyNotFound: 41,
|
21465
|
-
"41": "PolicyNotFound",
|
21466
|
-
/**
|
21467
|
-
*r" Receipt context is full
|
21468
|
-
*/
|
21469
|
-
TooManyReceipts: 42,
|
21470
|
-
"42": "TooManyReceipts",
|
21471
|
-
/**
|
21472
|
-
*r" Balance of a contract overflowed
|
21473
|
-
*/
|
21474
|
-
BalanceOverflow: 43,
|
21475
|
-
"43": "BalanceOverflow",
|
21476
|
-
/**
|
21477
|
-
*r" Block height value is invalid, typically because it is too large
|
21478
|
-
*/
|
21479
|
-
InvalidBlockHeight: 44,
|
21480
|
-
"44": "InvalidBlockHeight",
|
21481
|
-
/**
|
21482
|
-
*r" Attempt to use sequential memory instructions with too large slot count,
|
21483
|
-
*r" typically because it cannot fit into usize
|
21484
|
-
*/
|
21485
|
-
TooManySlots: 45,
|
21486
|
-
"45": "TooManySlots",
|
21487
|
-
/**
|
21488
|
-
*r" Caller of this internal context is also expected to be internal,
|
21489
|
-
*r" i.e. $fp->$fp must be non-zero.
|
21490
|
-
*/
|
21491
|
-
ExpectedNestedCaller: 46,
|
21492
|
-
"46": "ExpectedNestedCaller",
|
21493
|
-
/**
|
21494
|
-
*r" During memory growth, the stack overlapped with the heap
|
21495
|
-
*/
|
21496
|
-
MemoryGrowthOverlap: 47,
|
21497
|
-
"47": "MemoryGrowthOverlap",
|
21498
|
-
/**
|
21499
|
-
*r" Attempting to read or write uninitialized memory.
|
21500
|
-
*r" Also occurs when boundary crosses from stack to heap.
|
21501
|
-
*/
|
21502
|
-
UninitalizedMemoryAccess: 48,
|
21503
|
-
"48": "UninitalizedMemoryAccess",
|
21504
|
-
/**
|
21505
|
-
*r" Overriding consensus parameters is not allowed.
|
21506
|
-
*/
|
21507
|
-
OverridingConsensusParameters: 49,
|
21508
|
-
"49": "OverridingConsensusParameters",
|
21509
|
-
/**
|
21510
|
-
*r" The storage doesn't know about the hash of the state transition bytecode.
|
21511
|
-
*/
|
21512
|
-
UnknownStateTransactionBytecodeRoot: 50,
|
21513
|
-
"50": "UnknownStateTransactionBytecodeRoot",
|
21514
|
-
/**
|
21515
|
-
*r" Overriding the state transition bytecode is not allowed.
|
21516
|
-
*/
|
21517
|
-
OverridingStateTransactionBytecode: 51,
|
21518
|
-
"51": "OverridingStateTransactionBytecode",
|
21519
|
-
/**
|
21520
|
-
*r" The bytecode is already uploaded and cannot be uploaded again.
|
21521
|
-
*/
|
21522
|
-
BytecodeAlreadyUploaded: 52,
|
21523
|
-
"52": "BytecodeAlreadyUploaded",
|
21524
|
-
/**
|
21525
|
-
*r" The part of the bytecode is not sequentially connected to the previous parts.
|
21526
|
-
*/
|
21527
|
-
ThePartIsNotSequentiallyConnected: 53,
|
21528
|
-
"53": "ThePartIsNotSequentiallyConnected"
|
21529
|
-
});
|
21530
|
-
var GMArgs = Object.freeze({
|
21531
|
-
/**
|
21532
|
-
*r" Get if caller is external.
|
21533
|
-
*/
|
21534
|
-
IsCallerExternal: 1,
|
21535
|
-
"1": "IsCallerExternal",
|
21536
|
-
/**
|
21537
|
-
*r" Get caller's contract ID.
|
21538
|
-
*/
|
21539
|
-
GetCaller: 2,
|
21540
|
-
"2": "GetCaller",
|
21541
|
-
/**
|
21542
|
-
*r" Get index of current predicate.
|
21543
|
-
*/
|
21544
|
-
GetVerifyingPredicate: 3,
|
21545
|
-
"3": "GetVerifyingPredicate",
|
21546
|
-
/**
|
21547
|
-
*r" Get the Chain ID this VM is operating within
|
21548
|
-
*/
|
21549
|
-
GetChainId: 4,
|
21550
|
-
"4": "GetChainId",
|
21551
|
-
/**
|
21552
|
-
*r" Get memory address where the transaction is located
|
21553
|
-
*/
|
21554
|
-
TxStart: 5,
|
21555
|
-
"5": "TxStart",
|
21556
|
-
/**
|
21557
|
-
*r" Get memory address of base asset ID
|
21558
|
-
*/
|
21559
|
-
BaseAssetId: 6,
|
21560
|
-
"6": "BaseAssetId"
|
21561
|
-
});
|
21562
21622
|
var MathOp = Object.freeze({
|
21563
21623
|
/**
|
21564
21624
|
* Add
|
@@ -21601,43 +21661,6 @@ spurious results.`);
|
|
21601
21661
|
SHR: 7,
|
21602
21662
|
"7": "SHR"
|
21603
21663
|
});
|
21604
|
-
var CompareMode = Object.freeze({
|
21605
|
-
/**
|
21606
|
-
* Equality (`==`)
|
21607
|
-
*/
|
21608
|
-
EQ: 0,
|
21609
|
-
"0": "EQ",
|
21610
|
-
/**
|
21611
|
-
* Inequality (`!=`)
|
21612
|
-
*/
|
21613
|
-
NE: 1,
|
21614
|
-
"1": "NE",
|
21615
|
-
/**
|
21616
|
-
* Less than (`<`)
|
21617
|
-
*/
|
21618
|
-
LT: 2,
|
21619
|
-
"2": "LT",
|
21620
|
-
/**
|
21621
|
-
* Greater than (`>`)
|
21622
|
-
*/
|
21623
|
-
GT: 3,
|
21624
|
-
"3": "GT",
|
21625
|
-
/**
|
21626
|
-
* Less than or equals (`>=`)
|
21627
|
-
*/
|
21628
|
-
LTE: 4,
|
21629
|
-
"4": "LTE",
|
21630
|
-
/**
|
21631
|
-
* Greater than or equals (`>=`)
|
21632
|
-
*/
|
21633
|
-
GTE: 5,
|
21634
|
-
"5": "GTE",
|
21635
|
-
/**
|
21636
|
-
* Number of leading zeroes in lhs (`lzcnt`) (discards rhs)
|
21637
|
-
*/
|
21638
|
-
LZC: 6,
|
21639
|
-
"6": "LZC"
|
21640
|
-
});
|
21641
21664
|
var ADDFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
21642
21665
|
}, unregister: () => {
|
21643
21666
|
} } : new FinalizationRegistry((ptr) => wasm$1.__wbg_add_free(ptr >>> 0));
|
@@ -21951,65 +21974,177 @@ spurious results.`);
|
|
21951
21974
|
const ret3 = wasm$1.add_rc(this.__wbg_ptr);
|
21952
21975
|
return RegId.__wrap(ret3);
|
21953
21976
|
}
|
21954
|
-
};
|
21955
|
-
var BHEIFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
21956
|
-
}, unregister: () => {
|
21957
|
-
} } : new FinalizationRegistry((ptr) => wasm$1.__wbg_bhei_free(ptr >>> 0));
|
21958
|
-
var BHEI = class {
|
21959
|
-
__destroy_into_raw() {
|
21960
|
-
const ptr = this.__wbg_ptr;
|
21961
|
-
this.__wbg_ptr = 0;
|
21962
|
-
BHEIFinalization.unregister(this);
|
21963
|
-
return ptr;
|
21964
|
-
}
|
21965
|
-
free() {
|
21966
|
-
const ptr = this.__destroy_into_raw();
|
21967
|
-
wasm$1.__wbg_bhei_free(ptr);
|
21968
|
-
}
|
21977
|
+
};
|
21978
|
+
var BHEIFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
21979
|
+
}, unregister: () => {
|
21980
|
+
} } : new FinalizationRegistry((ptr) => wasm$1.__wbg_bhei_free(ptr >>> 0));
|
21981
|
+
var BHEI = class {
|
21982
|
+
__destroy_into_raw() {
|
21983
|
+
const ptr = this.__wbg_ptr;
|
21984
|
+
this.__wbg_ptr = 0;
|
21985
|
+
BHEIFinalization.unregister(this);
|
21986
|
+
return ptr;
|
21987
|
+
}
|
21988
|
+
free() {
|
21989
|
+
const ptr = this.__destroy_into_raw();
|
21990
|
+
wasm$1.__wbg_bhei_free(ptr);
|
21991
|
+
}
|
21992
|
+
/**
|
21993
|
+
* Construct the instruction from its parts.
|
21994
|
+
* @param {RegId} dst
|
21995
|
+
*/
|
21996
|
+
constructor(dst) {
|
21997
|
+
_assertClass(dst, RegId);
|
21998
|
+
var ptr0 = dst.__destroy_into_raw();
|
21999
|
+
const ret3 = wasm$1.aloc_new_typescript(ptr0);
|
22000
|
+
this.__wbg_ptr = ret3 >>> 0;
|
22001
|
+
return this;
|
22002
|
+
}
|
22003
|
+
/**
|
22004
|
+
* Access the ID for register A.
|
22005
|
+
* @returns {RegId}
|
22006
|
+
*/
|
22007
|
+
ra() {
|
22008
|
+
const ret3 = wasm$1.aloc_ra(this.__wbg_ptr);
|
22009
|
+
return RegId.__wrap(ret3);
|
22010
|
+
}
|
22011
|
+
};
|
22012
|
+
var BHSHFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
22013
|
+
}, unregister: () => {
|
22014
|
+
} } : new FinalizationRegistry((ptr) => wasm$1.__wbg_bhsh_free(ptr >>> 0));
|
22015
|
+
var BHSH = class {
|
22016
|
+
__destroy_into_raw() {
|
22017
|
+
const ptr = this.__wbg_ptr;
|
22018
|
+
this.__wbg_ptr = 0;
|
22019
|
+
BHSHFinalization.unregister(this);
|
22020
|
+
return ptr;
|
22021
|
+
}
|
22022
|
+
free() {
|
22023
|
+
const ptr = this.__destroy_into_raw();
|
22024
|
+
wasm$1.__wbg_bhsh_free(ptr);
|
22025
|
+
}
|
22026
|
+
/**
|
22027
|
+
* Construct the instruction from its parts.
|
22028
|
+
* @param {RegId} dst
|
22029
|
+
* @param {RegId} heigth
|
22030
|
+
*/
|
22031
|
+
constructor(dst, heigth) {
|
22032
|
+
_assertClass(dst, RegId);
|
22033
|
+
var ptr0 = dst.__destroy_into_raw();
|
22034
|
+
_assertClass(heigth, RegId);
|
22035
|
+
var ptr1 = heigth.__destroy_into_raw();
|
22036
|
+
const ret3 = wasm$1.bhsh_new_typescript(ptr0, ptr1);
|
22037
|
+
this.__wbg_ptr = ret3 >>> 0;
|
22038
|
+
return this;
|
22039
|
+
}
|
22040
|
+
/**
|
22041
|
+
* Access the ID for register A.
|
22042
|
+
* @returns {RegId}
|
22043
|
+
*/
|
22044
|
+
ra() {
|
22045
|
+
const ret3 = wasm$1.add_ra(this.__wbg_ptr);
|
22046
|
+
return RegId.__wrap(ret3);
|
22047
|
+
}
|
22048
|
+
/**
|
22049
|
+
* Access the ID for register B.
|
22050
|
+
* @returns {RegId}
|
22051
|
+
*/
|
22052
|
+
rb() {
|
22053
|
+
const ret3 = wasm$1.add_rb(this.__wbg_ptr);
|
22054
|
+
return RegId.__wrap(ret3);
|
22055
|
+
}
|
22056
|
+
};
|
22057
|
+
var BLDDFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
22058
|
+
}, unregister: () => {
|
22059
|
+
} } : new FinalizationRegistry((ptr) => wasm$1.__wbg_bldd_free(ptr >>> 0));
|
22060
|
+
var BLDD = class {
|
22061
|
+
__destroy_into_raw() {
|
22062
|
+
const ptr = this.__wbg_ptr;
|
22063
|
+
this.__wbg_ptr = 0;
|
22064
|
+
BLDDFinalization.unregister(this);
|
22065
|
+
return ptr;
|
22066
|
+
}
|
22067
|
+
free() {
|
22068
|
+
const ptr = this.__destroy_into_raw();
|
22069
|
+
wasm$1.__wbg_bldd_free(ptr);
|
22070
|
+
}
|
22071
|
+
/**
|
22072
|
+
* Construct the instruction from its parts.
|
22073
|
+
* @param {RegId} dst_ptr
|
22074
|
+
* @param {RegId} blob_id_ptr
|
22075
|
+
* @param {RegId} offset
|
22076
|
+
* @param {RegId} len
|
22077
|
+
*/
|
22078
|
+
constructor(dst_ptr, blob_id_ptr, offset, len) {
|
22079
|
+
_assertClass(dst_ptr, RegId);
|
22080
|
+
var ptr0 = dst_ptr.__destroy_into_raw();
|
22081
|
+
_assertClass(blob_id_ptr, RegId);
|
22082
|
+
var ptr1 = blob_id_ptr.__destroy_into_raw();
|
22083
|
+
_assertClass(offset, RegId);
|
22084
|
+
var ptr2 = offset.__destroy_into_raw();
|
22085
|
+
_assertClass(len, RegId);
|
22086
|
+
var ptr3 = len.__destroy_into_raw();
|
22087
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
22088
|
+
this.__wbg_ptr = ret3 >>> 0;
|
22089
|
+
return this;
|
22090
|
+
}
|
22091
|
+
/**
|
22092
|
+
* Access the ID for register A.
|
22093
|
+
* @returns {RegId}
|
22094
|
+
*/
|
22095
|
+
ra() {
|
22096
|
+
const ret3 = wasm$1.add_ra(this.__wbg_ptr);
|
22097
|
+
return RegId.__wrap(ret3);
|
22098
|
+
}
|
22099
|
+
/**
|
22100
|
+
* Access the ID for register B.
|
22101
|
+
* @returns {RegId}
|
22102
|
+
*/
|
22103
|
+
rb() {
|
22104
|
+
const ret3 = wasm$1.add_rb(this.__wbg_ptr);
|
22105
|
+
return RegId.__wrap(ret3);
|
22106
|
+
}
|
22107
|
+
/**
|
22108
|
+
* Access the ID for register C.
|
22109
|
+
* @returns {RegId}
|
22110
|
+
*/
|
22111
|
+
rc() {
|
22112
|
+
const ret3 = wasm$1.add_rc(this.__wbg_ptr);
|
22113
|
+
return RegId.__wrap(ret3);
|
22114
|
+
}
|
21969
22115
|
/**
|
21970
|
-
*
|
21971
|
-
* @param {RegId} dst
|
21972
|
-
*/
|
21973
|
-
constructor(dst) {
|
21974
|
-
_assertClass(dst, RegId);
|
21975
|
-
var ptr0 = dst.__destroy_into_raw();
|
21976
|
-
const ret3 = wasm$1.aloc_new_typescript(ptr0);
|
21977
|
-
this.__wbg_ptr = ret3 >>> 0;
|
21978
|
-
return this;
|
21979
|
-
}
|
21980
|
-
/**
|
21981
|
-
* Access the ID for register A.
|
22116
|
+
* Access the ID for register D.
|
21982
22117
|
* @returns {RegId}
|
21983
22118
|
*/
|
21984
|
-
|
21985
|
-
const ret3 = wasm$1.
|
22119
|
+
rd() {
|
22120
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
21986
22121
|
return RegId.__wrap(ret3);
|
21987
22122
|
}
|
21988
22123
|
};
|
21989
|
-
var
|
22124
|
+
var BSIZFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
21990
22125
|
}, unregister: () => {
|
21991
|
-
} } : new FinalizationRegistry((ptr) => wasm$1.
|
21992
|
-
var
|
22126
|
+
} } : new FinalizationRegistry((ptr) => wasm$1.__wbg_bsiz_free(ptr >>> 0));
|
22127
|
+
var BSIZ = class {
|
21993
22128
|
__destroy_into_raw() {
|
21994
22129
|
const ptr = this.__wbg_ptr;
|
21995
22130
|
this.__wbg_ptr = 0;
|
21996
|
-
|
22131
|
+
BSIZFinalization.unregister(this);
|
21997
22132
|
return ptr;
|
21998
22133
|
}
|
21999
22134
|
free() {
|
22000
22135
|
const ptr = this.__destroy_into_raw();
|
22001
|
-
wasm$1.
|
22136
|
+
wasm$1.__wbg_bsiz_free(ptr);
|
22002
22137
|
}
|
22003
22138
|
/**
|
22004
22139
|
* Construct the instruction from its parts.
|
22005
22140
|
* @param {RegId} dst
|
22006
|
-
* @param {RegId}
|
22141
|
+
* @param {RegId} blob_id_ptr
|
22007
22142
|
*/
|
22008
|
-
constructor(dst,
|
22143
|
+
constructor(dst, blob_id_ptr) {
|
22009
22144
|
_assertClass(dst, RegId);
|
22010
22145
|
var ptr0 = dst.__destroy_into_raw();
|
22011
|
-
_assertClass(
|
22012
|
-
var ptr1 =
|
22146
|
+
_assertClass(blob_id_ptr, RegId);
|
22147
|
+
var ptr1 = blob_id_ptr.__destroy_into_raw();
|
22013
22148
|
const ret3 = wasm$1.bhsh_new_typescript(ptr0, ptr1);
|
22014
22149
|
this.__wbg_ptr = ret3 >>> 0;
|
22015
22150
|
return this;
|
@@ -22106,7 +22241,7 @@ spurious results.`);
|
|
22106
22241
|
var ptr2 = asset_id_addr.__destroy_into_raw();
|
22107
22242
|
_assertClass(fwd_gas, RegId);
|
22108
22243
|
var ptr3 = fwd_gas.__destroy_into_raw();
|
22109
|
-
const ret3 = wasm$1.
|
22244
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
22110
22245
|
this.__wbg_ptr = ret3 >>> 0;
|
22111
22246
|
return this;
|
22112
22247
|
}
|
@@ -22139,7 +22274,7 @@ spurious results.`);
|
|
22139
22274
|
* @returns {RegId}
|
22140
22275
|
*/
|
22141
22276
|
rd() {
|
22142
|
-
const ret3 = wasm$1.
|
22277
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
22143
22278
|
return RegId.__wrap(ret3);
|
22144
22279
|
}
|
22145
22280
|
};
|
@@ -22207,7 +22342,7 @@ spurious results.`);
|
|
22207
22342
|
var ptr2 = offset.__destroy_into_raw();
|
22208
22343
|
_assertClass(len, RegId);
|
22209
22344
|
var ptr3 = len.__destroy_into_raw();
|
22210
|
-
const ret3 = wasm$1.
|
22345
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
22211
22346
|
this.__wbg_ptr = ret3 >>> 0;
|
22212
22347
|
return this;
|
22213
22348
|
}
|
@@ -22240,7 +22375,7 @@ spurious results.`);
|
|
22240
22375
|
* @returns {RegId}
|
22241
22376
|
*/
|
22242
22377
|
rd() {
|
22243
|
-
const ret3 = wasm$1.
|
22378
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
22244
22379
|
return RegId.__wrap(ret3);
|
22245
22380
|
}
|
22246
22381
|
};
|
@@ -22714,7 +22849,7 @@ spurious results.`);
|
|
22714
22849
|
var ptr2 = c.__destroy_into_raw();
|
22715
22850
|
_assertClass(d, RegId);
|
22716
22851
|
var ptr3 = d.__destroy_into_raw();
|
22717
|
-
const ret3 = wasm$1.
|
22852
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
22718
22853
|
this.__wbg_ptr = ret3 >>> 0;
|
22719
22854
|
return this;
|
22720
22855
|
}
|
@@ -22747,7 +22882,7 @@ spurious results.`);
|
|
22747
22882
|
* @returns {RegId}
|
22748
22883
|
*/
|
22749
22884
|
rd() {
|
22750
|
-
const ret3 = wasm$1.
|
22885
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
22751
22886
|
return RegId.__wrap(ret3);
|
22752
22887
|
}
|
22753
22888
|
};
|
@@ -22881,16 +23016,19 @@ spurious results.`);
|
|
22881
23016
|
* Construct the instruction from its parts.
|
22882
23017
|
* @param {RegId} pub_key_addr
|
22883
23018
|
* @param {RegId} sig_addr
|
22884
|
-
* @param {RegId}
|
23019
|
+
* @param {RegId} msg_addr
|
23020
|
+
* @param {RegId} msg_len
|
22885
23021
|
*/
|
22886
|
-
constructor(pub_key_addr, sig_addr,
|
23022
|
+
constructor(pub_key_addr, sig_addr, msg_addr, msg_len) {
|
22887
23023
|
_assertClass(pub_key_addr, RegId);
|
22888
23024
|
var ptr0 = pub_key_addr.__destroy_into_raw();
|
22889
23025
|
_assertClass(sig_addr, RegId);
|
22890
23026
|
var ptr1 = sig_addr.__destroy_into_raw();
|
22891
|
-
_assertClass(
|
22892
|
-
var ptr2 =
|
22893
|
-
|
23027
|
+
_assertClass(msg_addr, RegId);
|
23028
|
+
var ptr2 = msg_addr.__destroy_into_raw();
|
23029
|
+
_assertClass(msg_len, RegId);
|
23030
|
+
var ptr3 = msg_len.__destroy_into_raw();
|
23031
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
22894
23032
|
this.__wbg_ptr = ret3 >>> 0;
|
22895
23033
|
return this;
|
22896
23034
|
}
|
@@ -22918,6 +23056,14 @@ spurious results.`);
|
|
22918
23056
|
const ret3 = wasm$1.add_rc(this.__wbg_ptr);
|
22919
23057
|
return RegId.__wrap(ret3);
|
22920
23058
|
}
|
23059
|
+
/**
|
23060
|
+
* Access the ID for register D.
|
23061
|
+
* @returns {RegId}
|
23062
|
+
*/
|
23063
|
+
rd() {
|
23064
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
23065
|
+
return RegId.__wrap(ret3);
|
23066
|
+
}
|
22921
23067
|
};
|
22922
23068
|
var EQFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
22923
23069
|
}, unregister: () => {
|
@@ -23698,7 +23844,7 @@ spurious results.`);
|
|
23698
23844
|
var ptr2 = dynamic.__destroy_into_raw();
|
23699
23845
|
_assertClass(fixed, Imm06);
|
23700
23846
|
var ptr3 = fixed.__destroy_into_raw();
|
23701
|
-
const ret3 = wasm$1.
|
23847
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
23702
23848
|
this.__wbg_ptr = ret3 >>> 0;
|
23703
23849
|
return this;
|
23704
23850
|
}
|
@@ -23765,7 +23911,7 @@ spurious results.`);
|
|
23765
23911
|
var ptr2 = dynamic.__destroy_into_raw();
|
23766
23912
|
_assertClass(fixed, Imm06);
|
23767
23913
|
var ptr3 = fixed.__destroy_into_raw();
|
23768
|
-
const ret3 = wasm$1.
|
23914
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
23769
23915
|
this.__wbg_ptr = ret3 >>> 0;
|
23770
23916
|
return this;
|
23771
23917
|
}
|
@@ -24146,15 +24292,18 @@ spurious results.`);
|
|
24146
24292
|
* @param {RegId} contract_id_addr
|
24147
24293
|
* @param {RegId} offset
|
24148
24294
|
* @param {RegId} len
|
24295
|
+
* @param {Imm06} mode
|
24149
24296
|
*/
|
24150
|
-
constructor(contract_id_addr, offset, len) {
|
24297
|
+
constructor(contract_id_addr, offset, len, mode) {
|
24151
24298
|
_assertClass(contract_id_addr, RegId);
|
24152
24299
|
var ptr0 = contract_id_addr.__destroy_into_raw();
|
24153
24300
|
_assertClass(offset, RegId);
|
24154
24301
|
var ptr1 = offset.__destroy_into_raw();
|
24155
24302
|
_assertClass(len, RegId);
|
24156
24303
|
var ptr2 = len.__destroy_into_raw();
|
24157
|
-
|
24304
|
+
_assertClass(mode, Imm06);
|
24305
|
+
var ptr3 = mode.__destroy_into_raw();
|
24306
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
24158
24307
|
this.__wbg_ptr = ret3 >>> 0;
|
24159
24308
|
return this;
|
24160
24309
|
}
|
@@ -24182,6 +24331,14 @@ spurious results.`);
|
|
24182
24331
|
const ret3 = wasm$1.add_rc(this.__wbg_ptr);
|
24183
24332
|
return RegId.__wrap(ret3);
|
24184
24333
|
}
|
24334
|
+
/**
|
24335
|
+
* Access the 6-bit immediate value.
|
24336
|
+
* @returns {Imm06}
|
24337
|
+
*/
|
24338
|
+
imm06() {
|
24339
|
+
const ret3 = wasm$1.jneb_imm06(this.__wbg_ptr);
|
24340
|
+
return Imm06.__wrap(ret3);
|
24341
|
+
}
|
24185
24342
|
};
|
24186
24343
|
var LOGFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
|
24187
24344
|
}, unregister: () => {
|
@@ -24213,7 +24370,7 @@ spurious results.`);
|
|
24213
24370
|
var ptr2 = c.__destroy_into_raw();
|
24214
24371
|
_assertClass(d, RegId);
|
24215
24372
|
var ptr3 = d.__destroy_into_raw();
|
24216
|
-
const ret3 = wasm$1.
|
24373
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
24217
24374
|
this.__wbg_ptr = ret3 >>> 0;
|
24218
24375
|
return this;
|
24219
24376
|
}
|
@@ -24246,7 +24403,7 @@ spurious results.`);
|
|
24246
24403
|
* @returns {RegId}
|
24247
24404
|
*/
|
24248
24405
|
rd() {
|
24249
|
-
const ret3 = wasm$1.
|
24406
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
24250
24407
|
return RegId.__wrap(ret3);
|
24251
24408
|
}
|
24252
24409
|
};
|
@@ -24280,7 +24437,7 @@ spurious results.`);
|
|
24280
24437
|
var ptr2 = addr.__destroy_into_raw();
|
24281
24438
|
_assertClass(len, RegId);
|
24282
24439
|
var ptr3 = len.__destroy_into_raw();
|
24283
|
-
const ret3 = wasm$1.
|
24440
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
24284
24441
|
this.__wbg_ptr = ret3 >>> 0;
|
24285
24442
|
return this;
|
24286
24443
|
}
|
@@ -24313,7 +24470,7 @@ spurious results.`);
|
|
24313
24470
|
* @returns {RegId}
|
24314
24471
|
*/
|
24315
24472
|
rd() {
|
24316
|
-
const ret3 = wasm$1.
|
24473
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
24317
24474
|
return RegId.__wrap(ret3);
|
24318
24475
|
}
|
24319
24476
|
};
|
@@ -24661,7 +24818,7 @@ spurious results.`);
|
|
24661
24818
|
var ptr2 = rhs_addr.__destroy_into_raw();
|
24662
24819
|
_assertClass(len, RegId);
|
24663
24820
|
var ptr3 = len.__destroy_into_raw();
|
24664
|
-
const ret3 = wasm$1.
|
24821
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
24665
24822
|
this.__wbg_ptr = ret3 >>> 0;
|
24666
24823
|
return this;
|
24667
24824
|
}
|
@@ -24694,7 +24851,7 @@ spurious results.`);
|
|
24694
24851
|
* @returns {RegId}
|
24695
24852
|
*/
|
24696
24853
|
rd() {
|
24697
|
-
const ret3 = wasm$1.
|
24854
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
24698
24855
|
return RegId.__wrap(ret3);
|
24699
24856
|
}
|
24700
24857
|
};
|
@@ -24773,7 +24930,7 @@ spurious results.`);
|
|
24773
24930
|
var ptr2 = mul_rhs.__destroy_into_raw();
|
24774
24931
|
_assertClass(divisor, RegId);
|
24775
24932
|
var ptr3 = divisor.__destroy_into_raw();
|
24776
|
-
const ret3 = wasm$1.
|
24933
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
24777
24934
|
this.__wbg_ptr = ret3 >>> 0;
|
24778
24935
|
return this;
|
24779
24936
|
}
|
@@ -24806,7 +24963,7 @@ spurious results.`);
|
|
24806
24963
|
* @returns {RegId}
|
24807
24964
|
*/
|
24808
24965
|
rd() {
|
24809
|
-
const ret3 = wasm$1.
|
24966
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
24810
24967
|
return RegId.__wrap(ret3);
|
24811
24968
|
}
|
24812
24969
|
};
|
@@ -26297,7 +26454,7 @@ spurious results.`);
|
|
26297
26454
|
var ptr2 = data_len.__destroy_into_raw();
|
26298
26455
|
_assertClass(coins, RegId);
|
26299
26456
|
var ptr3 = coins.__destroy_into_raw();
|
26300
|
-
const ret3 = wasm$1.
|
26457
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
26301
26458
|
this.__wbg_ptr = ret3 >>> 0;
|
26302
26459
|
return this;
|
26303
26460
|
}
|
@@ -26330,7 +26487,7 @@ spurious results.`);
|
|
26330
26487
|
* @returns {RegId}
|
26331
26488
|
*/
|
26332
26489
|
rd() {
|
26333
|
-
const ret3 = wasm$1.
|
26490
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
26334
26491
|
return RegId.__wrap(ret3);
|
26335
26492
|
}
|
26336
26493
|
};
|
@@ -26532,7 +26689,7 @@ spurious results.`);
|
|
26532
26689
|
var ptr2 = key_addr.__destroy_into_raw();
|
26533
26690
|
_assertClass(lenq, RegId);
|
26534
26691
|
var ptr3 = lenq.__destroy_into_raw();
|
26535
|
-
const ret3 = wasm$1.
|
26692
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
26536
26693
|
this.__wbg_ptr = ret3 >>> 0;
|
26537
26694
|
return this;
|
26538
26695
|
}
|
@@ -26565,7 +26722,7 @@ spurious results.`);
|
|
26565
26722
|
* @returns {RegId}
|
26566
26723
|
*/
|
26567
26724
|
rd() {
|
26568
|
-
const ret3 = wasm$1.
|
26725
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
26569
26726
|
return RegId.__wrap(ret3);
|
26570
26727
|
}
|
26571
26728
|
};
|
@@ -26823,7 +26980,7 @@ spurious results.`);
|
|
26823
26980
|
var ptr2 = src_addr.__destroy_into_raw();
|
26824
26981
|
_assertClass(lenq, RegId);
|
26825
26982
|
var ptr3 = lenq.__destroy_into_raw();
|
26826
|
-
const ret3 = wasm$1.
|
26983
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
26827
26984
|
this.__wbg_ptr = ret3 >>> 0;
|
26828
26985
|
return this;
|
26829
26986
|
}
|
@@ -26856,7 +27013,7 @@ spurious results.`);
|
|
26856
27013
|
* @returns {RegId}
|
26857
27014
|
*/
|
26858
27015
|
rd() {
|
26859
|
-
const ret3 = wasm$1.
|
27016
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
26860
27017
|
return RegId.__wrap(ret3);
|
26861
27018
|
}
|
26862
27019
|
};
|
@@ -26991,7 +27148,7 @@ spurious results.`);
|
|
26991
27148
|
var ptr2 = amount.__destroy_into_raw();
|
26992
27149
|
_assertClass(asset_id_addr, RegId);
|
26993
27150
|
var ptr3 = asset_id_addr.__destroy_into_raw();
|
26994
|
-
const ret3 = wasm$1.
|
27151
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
26995
27152
|
this.__wbg_ptr = ret3 >>> 0;
|
26996
27153
|
return this;
|
26997
27154
|
}
|
@@ -27024,7 +27181,7 @@ spurious results.`);
|
|
27024
27181
|
* @returns {RegId}
|
27025
27182
|
*/
|
27026
27183
|
rd() {
|
27027
|
-
const ret3 = wasm$1.
|
27184
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
27028
27185
|
return RegId.__wrap(ret3);
|
27029
27186
|
}
|
27030
27187
|
};
|
@@ -27058,7 +27215,7 @@ spurious results.`);
|
|
27058
27215
|
var ptr2 = add_rhs.__destroy_into_raw();
|
27059
27216
|
_assertClass(modulo, RegId);
|
27060
27217
|
var ptr3 = modulo.__destroy_into_raw();
|
27061
|
-
const ret3 = wasm$1.
|
27218
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
27062
27219
|
this.__wbg_ptr = ret3 >>> 0;
|
27063
27220
|
return this;
|
27064
27221
|
}
|
@@ -27091,7 +27248,7 @@ spurious results.`);
|
|
27091
27248
|
* @returns {RegId}
|
27092
27249
|
*/
|
27093
27250
|
rd() {
|
27094
|
-
const ret3 = wasm$1.
|
27251
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
27095
27252
|
return RegId.__wrap(ret3);
|
27096
27253
|
}
|
27097
27254
|
};
|
@@ -27313,7 +27470,7 @@ spurious results.`);
|
|
27313
27470
|
var ptr2 = mul_rhs.__destroy_into_raw();
|
27314
27471
|
_assertClass(divisor, RegId);
|
27315
27472
|
var ptr3 = divisor.__destroy_into_raw();
|
27316
|
-
const ret3 = wasm$1.
|
27473
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
27317
27474
|
this.__wbg_ptr = ret3 >>> 0;
|
27318
27475
|
return this;
|
27319
27476
|
}
|
@@ -27346,7 +27503,7 @@ spurious results.`);
|
|
27346
27503
|
* @returns {RegId}
|
27347
27504
|
*/
|
27348
27505
|
rd() {
|
27349
|
-
const ret3 = wasm$1.
|
27506
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
27350
27507
|
return RegId.__wrap(ret3);
|
27351
27508
|
}
|
27352
27509
|
};
|
@@ -27474,7 +27631,7 @@ spurious results.`);
|
|
27474
27631
|
var ptr2 = mul_rhs.__destroy_into_raw();
|
27475
27632
|
_assertClass(modulo, RegId);
|
27476
27633
|
var ptr3 = modulo.__destroy_into_raw();
|
27477
|
-
const ret3 = wasm$1.
|
27634
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
27478
27635
|
this.__wbg_ptr = ret3 >>> 0;
|
27479
27636
|
return this;
|
27480
27637
|
}
|
@@ -27507,7 +27664,7 @@ spurious results.`);
|
|
27507
27664
|
* @returns {RegId}
|
27508
27665
|
*/
|
27509
27666
|
rd() {
|
27510
|
-
const ret3 = wasm$1.
|
27667
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
27511
27668
|
return RegId.__wrap(ret3);
|
27512
27669
|
}
|
27513
27670
|
};
|
@@ -27635,7 +27792,7 @@ spurious results.`);
|
|
27635
27792
|
var ptr2 = add_rhs.__destroy_into_raw();
|
27636
27793
|
_assertClass(modulo, RegId);
|
27637
27794
|
var ptr3 = modulo.__destroy_into_raw();
|
27638
|
-
const ret3 = wasm$1.
|
27795
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
27639
27796
|
this.__wbg_ptr = ret3 >>> 0;
|
27640
27797
|
return this;
|
27641
27798
|
}
|
@@ -27668,7 +27825,7 @@ spurious results.`);
|
|
27668
27825
|
* @returns {RegId}
|
27669
27826
|
*/
|
27670
27827
|
rd() {
|
27671
|
-
const ret3 = wasm$1.
|
27828
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
27672
27829
|
return RegId.__wrap(ret3);
|
27673
27830
|
}
|
27674
27831
|
};
|
@@ -27890,7 +28047,7 @@ spurious results.`);
|
|
27890
28047
|
var ptr2 = mul_rhs.__destroy_into_raw();
|
27891
28048
|
_assertClass(divisor, RegId);
|
27892
28049
|
var ptr3 = divisor.__destroy_into_raw();
|
27893
|
-
const ret3 = wasm$1.
|
28050
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
27894
28051
|
this.__wbg_ptr = ret3 >>> 0;
|
27895
28052
|
return this;
|
27896
28053
|
}
|
@@ -27923,7 +28080,7 @@ spurious results.`);
|
|
27923
28080
|
* @returns {RegId}
|
27924
28081
|
*/
|
27925
28082
|
rd() {
|
27926
|
-
const ret3 = wasm$1.
|
28083
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
27927
28084
|
return RegId.__wrap(ret3);
|
27928
28085
|
}
|
27929
28086
|
};
|
@@ -28051,7 +28208,7 @@ spurious results.`);
|
|
28051
28208
|
var ptr2 = mul_rhs.__destroy_into_raw();
|
28052
28209
|
_assertClass(modulo, RegId);
|
28053
28210
|
var ptr3 = modulo.__destroy_into_raw();
|
28054
|
-
const ret3 = wasm$1.
|
28211
|
+
const ret3 = wasm$1.bldd_new_typescript(ptr0, ptr1, ptr2, ptr3);
|
28055
28212
|
this.__wbg_ptr = ret3 >>> 0;
|
28056
28213
|
return this;
|
28057
28214
|
}
|
@@ -28084,7 +28241,7 @@ spurious results.`);
|
|
28084
28241
|
* @returns {RegId}
|
28085
28242
|
*/
|
28086
28243
|
rd() {
|
28087
|
-
const ret3 = wasm$1.
|
28244
|
+
const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
|
28088
28245
|
return RegId.__wrap(ret3);
|
28089
28246
|
}
|
28090
28247
|
};
|
@@ -28380,7 +28537,7 @@ spurious results.`);
|
|
28380
28537
|
}
|
28381
28538
|
}
|
28382
28539
|
function wasm(imports) {
|
28383
|
-
return _loadWasmModule(1, null, "AGFzbQEAAAABQAtgA39/fwF/YAF/AX9gBH9/f38Bf2ACf38Bf2AAAX9gAn9/AGABfwBgBX9/f39/AX9gA39/fwBgAABgAn5/AX8CGAEDd2JnEF9fd2JpbmRnZW5fdGhyb3cABQP7AfkBAQMKBgEFBQUBBQEBAQEBAQECBQICAQEDAgICAgUCAwMDAwMDAwIBBQEFAAMDAwMDAwMDAwMDAQABAQUFAQEBAQEBAQEBAQIBBQUFAwIBAAABAQEFAgIBAQYABgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGAwcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBAQEBAQEBAQEDBgADAQEBBwICAAIABgEEAwEDBQgBCQkDAwMFAQEBBgYGBgQEBAQEBAQEBAQEBAQEBAQEBAQGBwcCAgIDBwcACAADBAUBcAEHBwUDAQARBgkBfwFBgIDAAAsHxEvBBQZtZW1vcnkCABZfX3diZ19jb21wYXJlYXJnc19mcmVlAHcaX193YmdfZ2V0X2NvbXBhcmVhcmdzX21vZGUAORpfX3diZ19zZXRfY29tcGFyZWFyZ3NfbW9kZQAoIl9fd2JnX2dldF9jb21wYXJlYXJnc19pbmRpcmVjdF9yaHMAOiJfX3diZ19zZXRfY29tcGFyZWFyZ3NfaW5kaXJlY3RfcmhzADsSY29tcGFyZWFyZ3NfdG9faW1tAEgUY29tcGFyZWFyZ3NfZnJvbV9pbW0AKRVfX3diZ19nZXRfbWF0aGFyZ3Nfb3AAORVfX3diZ19zZXRfbWF0aGFyZ3Nfb3AAKhJfX3diZ19tdWxhcmdzX2ZyZWUAeB5fX3diZ19nZXRfbXVsYXJnc19pbmRpcmVjdF9yaHMAOR5fX3diZ19zZXRfbXVsYXJnc19pbmRpcmVjdF9yaHMAPBJfX3diZ19kaXZhcmdzX2ZyZWUA1gEeX193YmdfZ2V0X2RpdmFyZ3NfaW5kaXJlY3RfcmhzAK0BIXBhbmljaW5zdHJ1Y3Rpb25fZXJyb3JfdHlwZXNjcmlwdABMF3BhbmljaW5zdHJ1Y3Rpb25fcmVhc29uAD4ccGFuaWNpbnN0cnVjdGlvbl9pbnN0cnVjdGlvbgA/DGdtX2Zyb21fYXJncwDJAQ1ndGZfZnJvbV9hcmdzAMEBB2dtX2FyZ3MAeQhndGZfYXJncwBaDndkY21fZnJvbV9hcmdzACYOd2RvcF9mcm9tX2FyZ3MAJg53ZG1sX2Zyb21fYXJncwAeDndkZHZfZnJvbV9hcmdzAL8BCXdkY21fYXJncwAZCXdxY21fYXJncwAaCXdkb3BfYXJncwAbCXdxb3BfYXJncwAcCXdkbWxfYXJncwAUCXdxbWxfYXJncwAVCXdkZHZfYXJncwBVCXdxZHZfYXJncwBWEF9fd2JnX2ltbTA2X2ZyZWUA1wEQX193YmdfaW1tMTJfZnJlZQDYARBfX3diZ19pbW0xOF9mcmVlANkBDl9fd2JnX2FkZF9mcmVlALgBD19fd2JnX25vb3BfZnJlZQBbEmFkZF9uZXdfdHlwZXNjcmlwdABPBmFkZF9yYQAWBmFkZF9yYgALBmFkZF9yYwAPA2FkZAC5AQNhbmQAewNkaXYAfAJlcQB9A2V4cAB+Amd0AH8CbHQAgAEEbWxvZwCBAQRtcm9vAIIBBG1vZF8AgwEFbW92ZV8ALANtdWwAhAEDbm90AC0Cb3IAhQEDc2xsAIYBA3NybACHAQNzdWIAiAEDeG9yAIkBBG1sZHYAXANyZXQArgEEcmV0ZAAuE2Fsb2NfbmV3X3R5cGVzY3JpcHQAVwdhbG9jX3JhAE4EYWxvYwCvAQNtY2wALwNtY3AAigEDbWVxAF0TYmhzaF9uZXdfdHlwZXNjcmlwdAAfBGJoc2gAMARiaGVpALABBGJ1cm4AMRNjYWxsX25ld190eXBlc2NyaXB0AE0HY2FsbF9yZAAXBGNhbGwAXgNjY3AAXwRjcm9vADIEY3NpegAzAmNiALEBA2xkYwCLAQNsb2cAYARsb2dkAGEEbWludAA0BHJ2cnQAsgEEc2N3cQCMAQNzcncAjQEEc3J3cQBiA3N3dwCOAQRzd3dxAGMCdHIAjwEDdHJvAGQEZWNrMQCQAQRlY3IxAJEBBGVkMTkAkgEEazI1NgCTAQRzMjU2AJQBBHRpbWUANRNub29wX25ld190eXBlc2NyaXB0AMYBBG5vb3AA2gEEZmxhZwCzAQNiYWwAlQEDam1wALQBA2puZQCWAQNzbW8AZRNhZGRpX25ld190eXBlc2NyaXB0AFAKYWRkaV9pbW0xMgAMBGFkZGkAlwEEYW5kaQCYAQRkaXZpAJkBBGV4cGkAmgEEbW9kaQCbAQRtdWxpAJwBA29yaQCdAQRzbGxpAJ4BBHNybGkAnwEEc3ViaQCgAQR4b3JpAKEBBGpuZWkAogECbGIAowECbHcApAECc2IApQECc3cApgEEbWNwaQCnARJndGZfbmV3X3R5cGVzY3JpcHQAwwEDZ3RmAKgBBG1jbGkAIBFnbV9uZXdfdHlwZXNjcmlwdAA2CGdtX2ltbTE4AAkCZ20AIQRtb3ZpACIEam56aQAjBGptcGYAJBNqbXBiX25ld190eXBlc2NyaXB0ABgEam1wYgAlBGpuemYAqQEEam56YgCqAQRqbmVmAGYKam5lYl9pbW0wNgAXBGpuZWIAZwJqaQBAE2NmZWlfbmV3X3R5cGVzY3JpcHQANwpjZmVpX2ltbTI0ACcEY2ZlaQBBBGNmc2kAQgNjZmUAtQEDY2ZzALYBBHBzaGwAQwRwc2hoAEQEcG9wbABFBHBvcGgARhN3ZGNtX25ld190eXBlc2NyaXB0AMABBHdkY20AaAR3cWNtAGkEd2RvcABqBHdxb3AAawR3ZG1sAGwEd3FtbABtBHdkZHYAbgR3cWR2AG8Ed2RtZABwBHdxbWQAcQR3ZGFtAHIEd3FhbQBzBHdkbW0AdAR3cW1tAHUEZWNhbAB2Fl9fd2JnX2luc3RydWN0aW9uX2ZyZWUAWRRpbnN0cnVjdGlvbl90b19ieXRlcwAKEGluc3RydWN0aW9uX3NpemUA7AERcmVnaWRfbmV3X2NoZWNrZWQAqwEJcmVnaWRfYmFsANsBCnJlZ2lkX2NnYXMA3AEJcmVnaWRfZXJyAN0BCnJlZ2lkX2ZsYWcA3gEIcmVnaWRfZnAA3wEKcmVnaWRfZ2dhcwDgAQhyZWdpZF9ocADhAQhyZWdpZF9pcwDiAQhyZWdpZF9vZgDjAQlyZWdpZF9vbmUA5AEIcmVnaWRfcGMA5QEJcmVnaWRfcmV0AOYBCnJlZ2lkX3JldGwA5wEIcmVnaWRfc3AA6AEJcmVnaWRfc3BwAOkBDnJlZ2lkX3dyaXRhYmxlAOoBCnJlZ2lkX3plcm8A6wEUcmVnaWRfbmV3X3R5cGVzY3JpcHQA0wELcmVnaWRfdG9fdTgA1AETbW92aV9uZXdfdHlwZXNjcmlwdAAYE21jbGlfbmV3X3R5cGVzY3JpcHQAGBNqbnppX25ld190eXBlc2NyaXB0ABgTam1wZl9uZXdfdHlwZXNjcmlwdAAYEm5vdF9uZXdfdHlwZXNjcmlwdAAfE3JldGRfbmV3X3R5cGVzY3JpcHQAHxNtb3ZlX25ld190eXBlc2NyaXB0AB8SbWNsX25ld190eXBlc2NyaXB0AB8TYnVybl9uZXdfdHlwZXNjcmlwdAAfE2Nyb29fbmV3X3R5cGVzY3JpcHQAHxNjc2l6X25ld190eXBlc2NyaXB0AB8TbWludF9uZXdfdHlwZXNjcmlwdAAfE3RpbWVfbmV3X3R5cGVzY3JpcHQAHxJyZXRfbmV3X3R5cGVzY3JpcHQAVxNiaGVpX25ld190eXBlc2NyaXB0AFcRY2JfbmV3X3R5cGVzY3JpcHQAVxNydnJ0X25ld190eXBlc2NyaXB0AFcTZmxhZ19uZXdfdHlwZXNjcmlwdABXEmptcF9uZXdfdHlwZXNjcmlwdABXEmNmZV9uZXdfdHlwZXNjcmlwdABXEmNmc19uZXdfdHlwZXNjcmlwdABXE21sZHZfbmV3X3R5cGVzY3JpcHQATRJtZXFfbmV3X3R5cGVzY3JpcHQATRJjY3BfbmV3X3R5cGVzY3JpcHQATRJsb2dfbmV3X3R5cGVzY3JpcHQATRNsb2dkX25ld190eXBlc2NyaXB0AE0Tc3J3cV9uZXdfdHlwZXNjcmlwdABNE3N3d3FfbmV3X3R5cGVzY3JpcHQATRJ0cm9fbmV3X3R5cGVzY3JpcHQATRJzbW9fbmV3X3R5cGVzY3JpcHQATRNqbmVmX25ld190eXBlc2NyaXB0AE0Td2RtZF9uZXdfdHlwZXNjcmlwdABNE3dxbWRfbmV3X3R5cGVzY3JpcHQATRN3ZGFtX25ld190eXBlc2NyaXB0AE0Td3FhbV9uZXdfdHlwZXNjcmlwdABNE3dkbW1fbmV3X3R5cGVzY3JpcHQATRN3cW1tX25ld190eXBlc2NyaXB0AE0TZWNhbF9uZXdfdHlwZXNjcmlwdABNEmFuZF9uZXdfdHlwZXNjcmlwdABPEmRpdl9uZXdfdHlwZXNjcmlwdABPEWVxX25ld190eXBlc2NyaXB0AE8SZXhwX25ld190eXBlc2NyaXB0AE8RZ3RfbmV3X3R5cGVzY3JpcHQATxFsdF9uZXdfdHlwZXNjcmlwdABPE21sb2dfbmV3X3R5cGVzY3JpcHQATxNtcm9vX25ld190eXBlc2NyaXB0AE8SbW9kX25ld190eXBlc2NyaXB0AE8SbXVsX25ld190eXBlc2NyaXB0AE8Rb3JfbmV3X3R5cGVzY3JpcHQATxJzbGxfbmV3X3R5cGVzY3JpcHQATxJzcmxfbmV3X3R5cGVzY3JpcHQATxJzdWJfbmV3X3R5cGVzY3JpcHQATxJ4b3JfbmV3X3R5cGVzY3JpcHQATxJtY3BfbmV3X3R5cGVzY3JpcHQATxJsZGNfbmV3X3R5cGVzY3JpcHQATxNzY3dxX25ld190eXBlc2NyaXB0AE8Sc3J3X25ld190eXBlc2NyaXB0AE8Sc3d3X25ld190eXBlc2NyaXB0AE8RdHJfbmV3X3R5cGVzY3JpcHQATxNlY2sxX25ld190eXBlc2NyaXB0AE8TZWNyMV9uZXdfdHlwZXNjcmlwdABPE2VkMTlfbmV3X3R5cGVzY3JpcHQATxNrMjU2X25ld190eXBlc2NyaXB0AE8TczI1Nl9uZXdfdHlwZXNjcmlwdABPEmJhbF9uZXdfdHlwZXNjcmlwdABPEmpuZV9uZXdfdHlwZXNjcmlwdABPE2FuZGlfbmV3X3R5cGVzY3JpcHQAUBNkaXZpX25ld190eXBlc2NyaXB0AFATZXhwaV9uZXdfdHlwZXNjcmlwdABQE21vZGlfbmV3X3R5cGVzY3JpcHQAUBNtdWxpX25ld190eXBlc2NyaXB0AFASb3JpX25ld190eXBlc2NyaXB0AFATc2xsaV9uZXdfdHlwZXNjcmlwdABQE3NybGlfbmV3X3R5cGVzY3JpcHQAUBNzdWJpX25ld190eXBlc2NyaXB0AFATeG9yaV9uZXdfdHlwZXNjcmlwdABQE2puZWlfbmV3X3R5cGVzY3JpcHQAUBFsYl9uZXdfdHlwZXNjcmlwdABQEWx3X25ld190eXBlc2NyaXB0AFARc2JfbmV3X3R5cGVzY3JpcHQAUBFzd19uZXdfdHlwZXNjcmlwdABQE21jcGlfbmV3X3R5cGVzY3JpcHQAUBNqbnpmX25ld190eXBlc2NyaXB0AFATam56Yl9uZXdfdHlwZXNjcmlwdABQDndxY21fZnJvbV9hcmdzACYOd3FvcF9mcm9tX2FyZ3MAJh9fX3diZ19zZXRfbWF0aGFyZ3NfaW5kaXJlY3RfcmhzADseX193Ymdfc2V0X211bGFyZ3NfaW5kaXJlY3RfbGhzADseX193Ymdfc2V0X2RpdmFyZ3NfaW5kaXJlY3RfcmhzADsRamlfbmV3X3R5cGVzY3JpcHQANxNjZnNpX25ld190eXBlc2NyaXB0ADcTcHNobF9uZXdfdHlwZXNjcmlwdAA3E3BzaGhfbmV3X3R5cGVzY3JpcHQANxNwb3BsX25ld190eXBlc2NyaXB0ADcTcG9waF9uZXdfdHlwZXNjcmlwdAA3E3dkbWxfbmV3X3R5cGVzY3JpcHQAwAETd3FtbF9uZXdfdHlwZXNjcmlwdADAAQ53cW1sX2Zyb21fYXJncwAeE3dxb3BfbmV3X3R5cGVzY3JpcHQAwAETd2Rkdl9uZXdfdHlwZXNjcmlwdADAARN3cWNtX25ld190eXBlc2NyaXB0AMABE3dkb3BfbmV3X3R5cGVzY3JpcHQAwAETd3Fkdl9uZXdfdHlwZXNjcmlwdADAARBfX3diZ19yZWdpZF9mcmVlANcBDndxZHZfZnJvbV9hcmdzAL8BEF9fd2JnX2ltbTI0X2ZyZWUA2QEPX193YmdfbW92aV9mcmVlALgBD19fd2JnX21sZHZfZnJlZQC4AQ9fX3diZ19mbGFnX2ZyZWUAuAEPX193YmdfZWNhbF9mcmVlALgBDl9fd2JnX2d0Zl9mcmVlALgBDl9fd2JnX3Nyd19mcmVlALgBDl9fd2JnX2Rpdl9mcmVlALgBD19fd2JnX3Njd3FfZnJlZQC4AQ5fX3diZ19leHBfZnJlZQC4AQZqbXBfcmEATg5fX3diZ19qbXBfZnJlZQC4AQ5fX3diZ19tdWxfZnJlZQC4AQ5fX3diZ19zcmxfZnJlZQC4AQ9fX3diZ19zd3dxX2ZyZWUAuAEOX193YmdfbWNwX2ZyZWUAuAENX193Ymdfc3dfZnJlZQC4AQ9fX3diZ19jZmVpX2ZyZWUAuAEPX193YmdfbG9nZF9mcmVlALgBDV9fd2JnX29yX2ZyZWUAuAEOX193YmdfbWVxX2ZyZWUAuAEPX193Ymdfd3FhbV9mcmVlALgBD19fd2JnX2puemJfZnJlZQC4AQ5fX3diZ19sZGNfZnJlZQC4AQ9fX3diZ19tY3BpX2ZyZWUAuAEPX193Ymdfam1wZl9mcmVlALgBDV9fd2JnX2xiX2ZyZWUAuAEPX193Ymdfd3FjbV9mcmVlALgBD19fd2JnX3dxb3BfZnJlZQC4AQ9fX3diZ19tcm9vX2ZyZWUAuAEPX193Ymdfd2RtbF9mcmVlALgBDV9fd2JnX3RyX2ZyZWUAuAEPX193Ymdfam5laV9mcmVlALgBD19fd2JnX2NhbGxfZnJlZQC4AQ9fX3diZ19hbmRpX2ZyZWUAuAEPX193YmdfYmhzaF9mcmVlALgBDl9fd2JnX3N3d19mcmVlALgBD19fd2JnX3N1YmlfZnJlZQC4AQ1fX3diZ19lcV9mcmVlALgBD19fd2JnX3dkbW1fZnJlZQC4AQ9fX3diZ19zbGxpX2ZyZWUAuAEOX193Ymdfam5lX2ZyZWUAuAEPX193YmdfbW92ZV9mcmVlALgBD19fd2JnX2RpdmlfZnJlZQC4AQ9fX3diZ19lY3IxX2ZyZWUAuAEKY2ZzaV9pbW0yNAAnD19fd2JnX2Nmc2lfZnJlZQC4AQ9fX3diZ19jc2l6X2ZyZWUAuAEPX193YmdfcmV0ZF9mcmVlALgBHl9fd2JnX2dldF9tdWxhcmdzX2luZGlyZWN0X2xocwA6B2ZsYWdfcmEATg9fX3diZ19iaGVpX2ZyZWUAuAEPX193YmdfbW9kaV9mcmVlALgBDV9fd2JnX2d0X2ZyZWUAuAEfX193YmdfZ2V0X21hdGhhcmdzX2luZGlyZWN0X3JocwA6Dl9fd2JnX2NjcF9mcmVlALgBD19fd2JnX2VjazFfZnJlZQC4AQdiaGVpX3JhAE4OX193YmdfYW5kX2ZyZWUAuAEPX193YmdfazI1Nl9mcmVlALgBD19fd2JnX2Fsb2NfZnJlZQC4AQ1fX3diZ19sdF9mcmVlALgBDl9fd2JnX3Ntb19mcmVlALgBD19fd2JnX2puemZfZnJlZQC4AQ5fX3diZ19tY2xfZnJlZQC4AQZyZXRfcmEATg5fX3diZ19yZXRfZnJlZQC4AQ9fX3diZ19taW50X2ZyZWUAuAEPX193Ymdfd2RvcF9mcmVlALgBD19fd2JnX2Nyb29fZnJlZQC4AQ5fX3diZ190cm9fZnJlZQC4AQ9fX3diZ193cW1kX2ZyZWUAuAEPX193Ymdfd3Fkdl9mcmVlALgBD19fd2JnX2V4cGlfZnJlZQC4AQ9fX3diZ19zcndxX2ZyZWUAuAEPX193Ymdfd3FtbF9mcmVlALgBD19fd2JnX3dkbWRfZnJlZQC4AQ5fX3diZ19tb2RfZnJlZQC4AQ9fX3diZ19qbnppX2ZyZWUAuAEPX193YmdfYnVybl9mcmVlALgBB3J2cnRfcmEATg9fX3diZ19ydnJ0X2ZyZWUAuAEOX193Ymdfb3JpX2ZyZWUAuAEKcHNobF9pbW0yNAAnD19fd2JnX3BzaGxfZnJlZQC4AQ9fX3diZ19hZGRpX2ZyZWUAuAEOX193YmdfeG9yX2ZyZWUAuAENX193YmdfbHdfZnJlZQC4AQpwb3BsX2ltbTI0ACcPX193YmdfcG9wbF9mcmVlALgBDV9fd2JnX3NiX2ZyZWUAuAEPX193YmdfbXVsaV9mcmVlALgBDl9fd2JnX2xvZ19mcmVlALgBCGppX2ltbTI0ACcNX193YmdfamlfZnJlZQC4AQ9fX3diZ19tbG9nX2ZyZWUAuAEPX193YmdfbWNsaV9mcmVlALgBDl9fd2JnX3N1Yl9mcmVlALgBDl9fd2JnX3NsbF9mcmVlALgBDl9fd2JnX25vdF9mcmVlALgBD19fd2JnX2puZWJfZnJlZQC4AQ9fX3diZ19zcmxpX2ZyZWUAuAEPX193YmdfczI1Nl9mcmVlALgBDl9fd2JnX2JhbF9mcmVlALgBD19fd2JnX2ptcGJfZnJlZQC4AQZjZnNfcmEATg5fX3diZ19jZnNfZnJlZQC4AQZjZmVfcmEATg5fX3diZ19jZmVfZnJlZQC4AQ9fX3diZ193ZGFtX2ZyZWUAuAENX193YmdfZ21fZnJlZQC4AQ9fX3diZ193cW1tX2ZyZWUAuAEKcG9waF9pbW0yNAAnD19fd2JnX3BvcGhfZnJlZQC4AQ9fX3diZ193ZGR2X2ZyZWUAuAEPX193YmdfdGltZV9mcmVlALgBD19fd2JnX3hvcmlfZnJlZQC4AQVjYl9yYQBODV9fd2JnX2NiX2ZyZWUAuAEPX193Ymdfam5lZl9mcmVlALgBD19fd2JnX2VkMTlfZnJlZQC4AQ9fX3diZ193ZGNtX2ZyZWUAuAEKcHNoaF9pbW0yNAAnD19fd2JnX3BzaGhfZnJlZQC4ARNqbmViX25ld190eXBlc2NyaXB0AE0Kd3Fkdl9pbW0wNgAXCndxbWxfaW1tMDYAFwp3ZG1sX2ltbTA2ABcKd3FvcF9pbW0wNgAXCndkb3BfaW1tMDYAFwp3cWNtX2ltbTA2ABcKd2Rkdl9pbW0wNgAXCndkY21faW1tMDYAFwpqbmVmX2ltbTA2ABcHbW92aV9yYQAWB21sZHZfcmQAFwdtbGR2X3JjAA8HbWxkdl9yYgALB21sZHZfcmEAFgZndGZfcmIACwZndGZfcmEAFgZzcndfcmMADwZzcndfcmIACwZzcndfcmEAFgdlY2FsX3JjAA8HZWNhbF9yYgALB2VjYWxfcmEAFgdzY3dxX3JjAA8Hc2N3cV9yYgALB3Njd3FfcmEAFgZleHBfcmMADwZleHBfcmIACwZleHBfcmEAFgZtdWxfcmMADwZtdWxfcmIACwZtdWxfcmEAFgZzcmxfcmMADwZzcmxfcmIACwZzcmxfcmEAFgdzd3dxX3JkABcHc3d3cV9yYwAPB3N3d3FfcmIACwdzd3dxX3JhABYGbWNwX3JjAA8GbWNwX3JiAAsGbWNwX3JhABYIc3dfaW1tMTIADAVzd19yYgALBXN3X3JhABYJZ3RmX2ltbTEyAAwGZGl2X3JiAAsGZGl2X3JhABYHbG9nZF9yZAAXB2xvZ2RfcmMADwdsb2dkX3JiAAsHbG9nZF9yYQAWBW9yX3JjAA8Fb3JfcmIACwVvcl9yYQAWBm1lcV9yZAAXBm1lcV9yYwAPBm1lcV9yYgALBm1lcV9yYQAWB3dxYW1fcmQAFwd3cWFtX3JjAA8Hd3FhbV9yYgALB3dxYW1fcmEAFgpqbnpiX2ltbTEyAAwHam56Yl9yYgALB2puemJfcmEAFgZsZGNfcmMADwZsZGNfcmIACwZsZGNfcmEAFgptY3BpX2ltbTEyAAwHbWNwaV9yYgALB21jcGlfcmEAFgptb3ZpX2ltbTE4AAkHam1wZl9yYQAWCGxiX2ltbTEyAAwFbGJfcmIACwVsYl9yYQAWB3dxY21fcmMADwd3cWNtX3JiAAsHd3FjbV9yYQAWB3dxb3BfcmMADwd3cW9wX3JiAAsHd3FvcF9yYQAWB21yb29fcmMADwdtcm9vX3JiAAsHbXJvb19yYQAWB3dkbWxfcmMADwd3ZG1sX3JiAAsHd2RtbF9yYQAWBXRyX3JjAA8FdHJfcmIACwV0cl9yYQAWCmpuZWlfaW1tMTIADAdqbmVpX3JiAAsHam5laV9yYQAWB2VjYWxfcmQAFwZkaXZfcmMADwdjYWxsX3JiAAsHY2FsbF9yYQAWB2NhbGxfcmMADwdhbmRpX3JiAAsHYW5kaV9yYQAWB2Joc2hfcmIACwdiaHNoX3JhABYGc3d3X3JjAA8Gc3d3X3JiAAsGc3d3X3JhABYKc3ViaV9pbW0xMgAMB3N1YmlfcmIACwdzdWJpX3JhABYFZXFfcmMADwVlcV9yYgALBWVxX3JhABYHd2RtbV9yZAAXB3dkbW1fcmMADwd3ZG1tX3JiAAsHd2RtbV9yYQAWCnNsbGlfaW1tMTIADAdzbGxpX3JiAAsHc2xsaV9yYQAWBmpuZV9yYwAPBmpuZV9yYgALBmpuZV9yYQAWB21vdmVfcmIACwdtb3ZlX3JhABYKZGl2aV9pbW0xMgAMB2RpdmlfcmIACwdkaXZpX3JhABYHZWNyMV9yYwAPB2VjcjFfcmIACwdlY3IxX3JhABYHY3Npel9yYgALB2NzaXpfcmEAFgdyZXRkX3JiAAsHcmV0ZF9yYQAWCm1vZGlfaW1tMTIADAdtb2RpX3JiAAsHbW9kaV9yYQAWBWd0X3JjAA8FZ3RfcmIACwVndF9yYQAWE19fd2JnX21hdGhhcmdzX2ZyZWUAdwZjY3BfcmQAFwZjY3BfcmMADwZjY3BfcmIACwZjY3BfcmEAFgdlY2sxX3JjAA8HZWNrMV9yYgALB2VjazFfcmEAFgdrMjU2X3JjAA8HazI1Nl9yYgALB2syNTZfcmEAFgphbmRpX2ltbTEyAAwGYW5kX3JiAAsGYW5kX3JhABYFbHRfcmMADwVsdF9yYgALBWx0X3JhABYGc21vX3JkABcGc21vX3JjAA8Gc21vX3JiAAsGc21vX3JhABYKam56Zl9pbW0xMgAMB2puemZfcmIACwdqbnpmX3JhABYGbWNsX3JiAAsGbWNsX3JhABYHbWludF9yYgALB21pbnRfcmEAFgd3ZG9wX3JjAA8Hd2RvcF9yYgALB3dkb3BfcmEAFgdjcm9vX3JiAAsHY3Jvb19yYQAWBnRyb19yZAAXBnRyb19yYwAPBnRyb19yYgALBnRyb19yYQAWB3dxbWRfcmQAFwd3cW1kX3JjAA8Hd3FtZF9yYgALB3dxbWRfcmEAFgd3cWR2X3JjAA8Hd3Fkdl9yYgALB3dxZHZfcmEAFgpleHBpX2ltbTEyAAwHZXhwaV9yYgALB2V4cGlfcmEAFgdzcndxX3JkABcHc3J3cV9yYwAPB3Nyd3FfcmIACwdzcndxX3JhABYHd3FtbF9yYwAPB3dxbWxfcmIACwd3cW1sX3JhABYHd2RtZF9yZAAXB3dkbWRfcmMADwd3ZG1kX3JiAAsHd2RtZF9yYQAWBm1vZF9yYwAPBm1vZF9yYgALBm1vZF9yYQAWCmpuemlfaW1tMTgACQdqbnppX3JhABYHYnVybl9yYgALB2J1cm5fcmEAFglvcmlfaW1tMTIADAZvcmlfcmIACwZvcmlfcmEAFgZhbmRfcmMADwdhZGRpX3JiAAsHYWRkaV9yYQAWBnhvcl9yYwAPBnhvcl9yYgALBnhvcl9yYQAWCGx3X2ltbTEyAAwFbHdfcmIACwVsd19yYQAWCHNiX2ltbTEyAAwFc2JfcmIACwVzYl9yYQAWCm11bGlfaW1tMTIADAdtdWxpX3JiAAsHbXVsaV9yYQAWBmxvZ19yZAAXBmxvZ19yYwAPBmxvZ19yYgALBmxvZ19yYQAWB21sb2dfcmMADwdtbG9nX3JiAAsHbWxvZ19yYQAWCm1jbGlfaW1tMTgACQdtY2xpX3JhABYGc3ViX3JjAA8Gc3ViX3JiAAsGc3ViX3JhABYGc2xsX3JjAA8Gc2xsX3JiAAsGc2xsX3JhABYGbm90X3JiAAsGbm90X3JhABYHam5lYl9yYwAPB2puZWJfcmIACwdqbmViX3JhABYKc3JsaV9pbW0xMgAMB3NybGlfcmIACwdzcmxpX3JhABYHczI1Nl9yYwAPB3MyNTZfcmIACwdzMjU2X3JhABYGYmFsX3JjAA8GYmFsX3JiAAsGYmFsX3JhABYKam1wZl9pbW0xOAAJB2ptcGJfcmEAFgd3ZGFtX3JkABcHd2RhbV9yYwAPB3dkYW1fcmIACwd3ZGFtX3JhABYKam1wYl9pbW0xOAAJBWdtX3JhABYHd3FtbV9yZAAXB3dxbW1fcmMADwd3cW1tX3JiAAsHd3FtbV9yYQAWB3dkZHZfcmMADwd3ZGR2X3JiAAsHd2Rkdl9yYQAWB3RpbWVfcmIACwd0aW1lX3JhABYKeG9yaV9pbW0xMgAMB3hvcmlfcmIACwd4b3JpX3JhABYHam5lZl9yYwAPB2puZWZfcmIACwdqbmVmX3JhABYHZWQxOV9yYwAPB2VkMTlfcmIACwdlZDE5X3JhABYHd2RjbV9yYwAPB3dkY21fcmIACwd3ZGNtX3JhABYbX193YmdfcGFuaWNpbnN0cnVjdGlvbl9mcmVlALgBH19fd2JpbmRnZW5fYWRkX3RvX3N0YWNrX3BvaW50ZXIAzAETX193YmluZGdlbl9leHBvcnRfMADLAQkRAQBBAQsGAs8B0AHRAe0BygEK0IEB+QGJIwIIfwF+AkACQAJAAkACQAJAAkACQCAAQfUBTwRAIABBzf97Tw0FIABBC2oiAEF4cSEFQfiMwAAoAgAiCEUNBEEAIAVrIQQCf0EAIAVBgAJJDQAaQR8gBUH///8HSw0AGiAFQQYgAEEIdmciAGt2QQFxIABBAXRrQT5qCyIHQQJ0QdyJwABqKAIAIgFFBEBBACEADAILQQAhACAFQRkgB0EBdmtBACAHQR9HG3QhAwNAAkAgASgCBEF4cSIGIAVJDQAgBiAFayIGIARPDQAgASECIAYiBA0AQQAhBCABIQAMBAsgAUEUaigCACIGIAAgBiABIANBHXZBBHFqQRBqKAIAIgFHGyAAIAYbIQAgA0EBdCEDIAENAAsMAQtB9IzAACgCACICQRAgAEELakF4cSAAQQtJGyIFQQN2IgB2IgFBA3EEQAJAIAFBf3NBAXEgAGoiAUEDdCIAQeyKwABqIgMgAEH0isAAaigCACIAKAIIIgRHBEAgBCADNgIMIAMgBDYCCAwBC0H0jMAAIAJBfiABd3E2AgALIAAgAUEDdCIBQQNyNgIEIAAgAWoiASABKAIEQQFyNgIEDAgLIAVB/IzAACgCAE0NAwJAAkAgAUUEQEH4jMAAKAIAIgBFDQYgAGhBAnRB3InAAGooAgAiASgCBEF4cSAFayEEIAEhAgNAAkAgASgCECIADQAgAUEUaigCACIADQAgAigCGCEHAkACQCACIAIoAgwiAEYEQCACQRRBECACQRRqIgAoAgAiAxtqKAIAIgENAUEAIQAMAgsgAigCCCIBIAA2AgwgACABNgIIDAELIAAgAkEQaiADGyEDA0AgAyEGIAEiAEEUaiIBIABBEGogASgCACIBGyEDIABBFEEQIAEbaigCACIBDQALIAZBADYCAAsgB0UNBCACIAIoAhxBAnRB3InAAGoiASgCAEcEQCAHQRBBFCAHKAIQIAJGG2ogADYCACAARQ0FDAQLIAEgADYCACAADQNB+IzAAEH4jMAAKAIAQX4gAigCHHdxNgIADAQLIAAoAgRBeHEgBWsiASAEIAEgBEkiARshBCAAIAIgARshAiAAIQEMAAsACwJAQQIgAHQiA0EAIANrciABIAB0cWgiAEEDdCIBQeyKwABqIgMgAUH0isAAaigCACIBKAIIIgRHBEAgBCADNgIMIAMgBDYCCAwBC0H0jMAAIAJBfiAAd3E2AgALIAEgBUEDcjYCBCABIAVqIgYgAEEDdCIAIAVrIgRBAXI2AgQgACABaiAENgIAQfyMwAAoAgAiAgRAIAJBeHFB7IrAAGohAEGEjcAAKAIAIQMCf0H0jMAAKAIAIgVBASACQQN2dCICcUUEQEH0jMAAIAIgBXI2AgAgAAwBCyAAKAIICyECIAAgAzYCCCACIAM2AgwgAyAANgIMIAMgAjYCCAtBhI3AACAGNgIAQfyMwAAgBDYCACABQQhqDwsgACAHNgIYIAIoAhAiAQRAIAAgATYCECABIAA2AhgLIAJBFGooAgAiAUUNACAAQRRqIAE2AgAgASAANgIYCwJAAkAgBEEQTwRAIAIgBUEDcjYCBCACIAVqIgUgBEEBcjYCBCAEIAVqIAQ2AgBB/IzAACgCACIDRQ0BIANBeHFB7IrAAGohAEGEjcAAKAIAIQECf0H0jMAAKAIAIgZBASADQQN2dCIDcUUEQEH0jMAAIAMgBnI2AgAgAAwBCyAAKAIICyEDIAAgATYCCCADIAE2AgwgASAANgIMIAEgAzYCCAwBCyACIAQgBWoiAEEDcjYCBCAAIAJqIgAgACgCBEEBcjYCBAwBC0GEjcAAIAU2AgBB/IzAACAENgIACyACQQhqDwsgACACckUEQEEAIQJBAiAHdCIAQQAgAGtyIAhxIgBFDQMgAGhBAnRB3InAAGooAgAhAAsgAEUNAQsDQCAAIAIgACgCBEF4cSIDIAVrIgYgBEkiBxshCCAAKAIQIgFFBEAgAEEUaigCACEBCyACIAggAyAFSSIAGyECIAQgBiAEIAcbIAAbIQQgASIADQALCyACRQ0AIAVB/IzAACgCACIATSAEIAAgBWtPcQ0AIAIoAhghBwJAAkAgAiACKAIMIgBGBEAgAkEUQRAgAkEUaiIAKAIAIgMbaigCACIBDQFBACEADAILIAIoAggiASAANgIMIAAgATYCCAwBCyAAIAJBEGogAxshAwNAIAMhBiABIgBBFGoiASAAQRBqIAEoAgAiARshAyAAQRRBECABG2ooAgAiAQ0ACyAGQQA2AgALIAdFDQMgAiACKAIcQQJ0QdyJwABqIgEoAgBHBEAgB0EQQRQgBygCECACRhtqIAA2AgAgAEUNBAwDCyABIAA2AgAgAA0CQfiMwABB+IzAACgCAEF+IAIoAhx3cTYCAAwDCwJAAkACQAJAAkAgBUH8jMAAKAIAIgFLBEAgBUGAjcAAKAIAIgBPBEBBACEEIAVBr4AEaiIAQRB2QAAiAUF/RiIDDQcgAUEQdCICRQ0HQYyNwABBACAAQYCAfHEgAxsiBEGMjcAAKAIAaiIANgIAQZCNwABBkI3AACgCACIBIAAgACABSRs2AgACQAJAQYiNwAAoAgAiAwRAQdyKwAAhAANAIAAoAgAiASAAKAIEIgZqIAJGDQIgACgCCCIADQALDAILQZiNwAAoAgAiAEEAIAAgAk0bRQRAQZiNwAAgAjYCAAtBnI3AAEH/HzYCAEHgisAAIAQ2AgBB3IrAACACNgIAQfiKwABB7IrAADYCAEGAi8AAQfSKwAA2AgBB9IrAAEHsisAANgIAQYiLwABB/IrAADYCAEH8isAAQfSKwAA2AgBBkIvAAEGEi8AANgIAQYSLwABB/IrAADYCAEGYi8AAQYyLwAA2AgBBjIvAAEGEi8AANgIAQaCLwABBlIvAADYCAEGUi8AAQYyLwAA2AgBBqIvAAEGci8AANgIAQZyLwABBlIvAADYCAEGwi8AAQaSLwAA2AgBBpIvAAEGci8AANgIAQeiKwABBADYCAEG4i8AAQayLwAA2AgBBrIvAAEGki8AANgIAQbSLwABBrIvAADYCAEHAi8AAQbSLwAA2AgBBvIvAAEG0i8AANgIAQciLwABBvIvAADYCAEHEi8AAQbyLwAA2AgBB0IvAAEHEi8AANgIAQcyLwABBxIvAADYCAEHYi8AAQcyLwAA2AgBB1IvAAEHMi8AANgIAQeCLwABB1IvAADYCAEHci8AAQdSLwAA2AgBB6IvAAEHci8AANgIAQeSLwABB3IvAADYCAEHwi8AAQeSLwAA2AgBB7IvAAEHki8AANgIAQfiLwABB7IvAADYCAEGAjMAAQfSLwAA2AgBB9IvAAEHsi8AANgIAQYiMwABB/IvAADYCAEH8i8AAQfSLwAA2AgBBkIzAAEGEjMAANgIAQYSMwABB/IvAADYCAEGYjMAAQYyMwAA2AgBBjIzAAEGEjMAANgIAQaCMwABBlIzAADYCAEGUjMAAQYyMwAA2AgBBqIzAAEGcjMAANgIAQZyMwABBlIzAADYCAEGwjMAAQaSMwAA2AgBBpIzAAEGcjMAANgIAQbiMwABBrIzAADYCAEGsjMAAQaSMwAA2AgBBwIzAAEG0jMAANgIAQbSMwABBrIzAADYCAEHIjMAAQbyMwAA2AgBBvIzAAEG0jMAANgIAQdCMwABBxIzAADYCAEHEjMAAQbyMwAA2AgBB2IzAAEHMjMAANgIAQcyMwABBxIzAADYCAEHgjMAAQdSMwAA2AgBB1IzAAEHMjMAANgIAQeiMwABB3IzAADYCAEHcjMAAQdSMwAA2AgBB8IzAAEHkjMAANgIAQeSMwABB3IzAADYCAEGIjcAAIAI2AgBB7IzAAEHkjMAANgIAQYCNwAAgBEEoayIANgIAIAIgAEEBcjYCBCAAIAJqQSg2AgRBlI3AAEGAgIABNgIADAgLIAIgA00gASADS3INACAAKAIMRQ0DC0GYjcAAQZiNwAAoAgAiACACIAAgAkkbNgIAIAIgBGohAUHcisAAIQACQAJAA0AgASAAKAIARwRAIAAoAggiAA0BDAILCyAAKAIMRQ0BC0HcisAAIQADQAJAIAMgACgCACIBTwRAIAEgACgCBGoiBiADSw0BCyAAKAIIIQAMAQsLQYiNwAAgAjYCAEGAjcAAIARBKGsiADYCACACIABBAXI2AgQgACACakEoNgIEQZSNwABBgICAATYCACADIAZBIGtBeHFBCGsiACAAIANBEGpJGyIBQRs2AgRB3IrAACkCACEJIAFBEGpB5IrAACkCADcCACABIAk3AghB4IrAACAENgIAQdyKwAAgAjYCAEHkisAAIAFBCGo2AgBB6IrAAEEANgIAIAFBHGohAANAIABBBzYCACAAQQRqIgAgBkkNAAsgASADRg0HIAEgASgCBEF+cTYCBCADIAEgA2siAEEBcjYCBCABIAA2AgAgAEGAAk8EQCADIAAQCAwICyAAQXhxQeyKwABqIQECf0H0jMAAKAIAIgJBASAAQQN2dCIAcUUEQEH0jMAAIAAgAnI2AgAgAQwBCyABKAIICyEAIAEgAzYCCCAAIAM2AgwgAyABNgIMIAMgADYCCAwHCyAAIAI2AgAgACAAKAIEIARqNgIEIAIgBUEDcjYCBCABIAIgBWoiA2shBSABQYiNwAAoAgBGDQMgAUGEjcAAKAIARg0EIAEoAgQiBEEDcUEBRgRAIAEgBEF4cSIAEAcgACAFaiEFIAAgAWoiASgCBCEECyABIARBfnE2AgQgAyAFQQFyNgIEIAMgBWogBTYCACAFQYACTwRAIAMgBRAIDAYLIAVBeHFB7IrAAGohAAJ/QfSMwAAoAgAiAUEBIAVBA3Z0IgRxRQRAQfSMwAAgASAEcjYCACAADAELIAAoAggLIQUgACADNgIIIAUgAzYCDCADIAA2AgwgAyAFNgIIDAULQYCNwAAgACAFayIBNgIAQYiNwABBiI3AACgCACIAIAVqIgI2AgAgAiABQQFyNgIEIAAgBUEDcjYCBCAAQQhqIQQMBgtBhI3AACgCACEAAkAgASAFayICQQ9NBEBBhI3AAEEANgIAQfyMwABBADYCACAAIAFBA3I2AgQgACABaiIBIAEoAgRBAXI2AgQMAQtB/IzAACACNgIAQYSNwAAgACAFaiIDNgIAIAMgAkEBcjYCBCAAIAFqIAI2AgAgACAFQQNyNgIECwwICyAAIAQgBmo2AgRBiI3AAEGIjcAAKAIAIgBBD2pBeHEiAUEIayICNgIAQYCNwABBgI3AACgCACAEaiIDIAAgAWtqQQhqIgE2AgAgAiABQQFyNgIEIAAgA2pBKDYCBEGUjcAAQYCAgAE2AgAMAwtBiI3AACADNgIAQYCNwABBgI3AACgCACAFaiIANgIAIAMgAEEBcjYCBAwBC0GEjcAAIAM2AgBB/IzAAEH8jMAAKAIAIAVqIgA2AgAgAyAAQQFyNgIEIAAgA2ogADYCAAsgAkEIag8LQQAhBEGAjcAAKAIAIgAgBU0NAEGAjcAAIAAgBWsiATYCAEGIjcAAQYiNwAAoAgAiACAFaiICNgIAIAIgAUEBcjYCBCAAIAVBA3I2AgQMAwsgBA8LIAAgBzYCGCACKAIQIgEEQCAAIAE2AhAgASAANgIYCyACQRRqKAIAIgFFDQAgAEEUaiABNgIAIAEgADYCGAsCQCAEQRBPBEAgAiAFQQNyNgIEIAIgBWoiASAEQQFyNgIEIAEgBGogBDYCACAEQYACTwRAIAEgBBAIDAILIARBeHFB7IrAAGohAAJ/QfSMwAAoAgAiA0EBIARBA3Z0IgRxRQRAQfSMwAAgAyAEcjYCACAADAELIAAoAggLIQQgACABNgIIIAQgATYCDCABIAA2AgwgASAENgIIDAELIAIgBCAFaiIAQQNyNgIEIAAgAmoiACAAKAIEQQFyNgIECyACQQhqDwsgAEEIagvtCwELfyAAKAIEIQcgACgCACEFAkACQAJAIAEoAgAiCiABKAIIIgByBEACQCAARQ0AIAUgB2ohCSABQQxqKAIAQQFqIQYgBSECA0ACQCACIQAgBkEBayIGRQ0AIAAgCUYNAgJ/IAAsAAAiBEEATgRAIARB/wFxIQQgAEEBagwBCyAALQABQT9xIQggBEEfcSECIARBX00EQCACQQZ0IAhyIQQgAEECagwBCyAALQACQT9xIAhBBnRyIQggBEFwSQRAIAggAkEMdHIhBCAAQQNqDAELIAJBEnRBgIDwAHEgAC0AA0E/cSAIQQZ0cnIiBEGAgMQARg0DIABBBGoLIgIgAyAAa2ohAyAEQYCAxABHDQEMAgsLIAAgCUYNACAALAAAIgJBAE4gAkFgSXIgAkFwSXJFBEAgAkH/AXFBEnRBgIDwAHEgAC0AA0E/cSAALQACQT9xQQZ0IAAtAAFBP3FBDHRycnJBgIDEAEYNAQsCQAJAIANFDQAgAyAHTwRAQQAhACADIAdGDQEMAgtBACEAIAMgBWosAABBQEgNAQsgBSEACyADIAcgABshByAAIAUgABshBQsgCkUNAyABKAIEIQsgB0EQTwRAIAcgBSAFQQNqQXxxIgRrIgZqIgpBA3EhCEEAIQlBACEAIAQgBUcEQCAEIAVBf3NqQQNPBEBBACEDA0AgACADIAVqIgIsAABBv39KaiACQQFqLAAAQb9/SmogAkECaiwAAEG/f0pqIAJBA2osAABBv39KaiEAIANBBGoiAw0ACwsgBSECA0AgACACLAAAQb9/SmohACACQQFqIQIgBkEBaiIGDQALCwJAIAhFDQAgBCAKQXxxaiICLAAAQb9/SiEJIAhBAUYNACAJIAIsAAFBv39KaiEJIAhBAkYNACAJIAIsAAJBv39KaiEJCyAKQQJ2IQggACAJaiEDA0AgBCEGIAhFDQRBwAEgCCAIQcABTxsiCUEDcSEKIAlBAnQhBEEAIQIgCUEETwRAIAYgBEHwB3FqIQwgBiEAA0AgAiAAKAIAIgJBf3NBB3YgAkEGdnJBgYKECHFqIABBBGooAgAiAkF/c0EHdiACQQZ2ckGBgoQIcWogAEEIaigCACICQX9zQQd2IAJBBnZyQYGChAhxaiAAQQxqKAIAIgJBf3NBB3YgAkEGdnJBgYKECHFqIQIgAEEQaiIAIAxHDQALCyAIIAlrIQggBCAGaiEEIAJBCHZB/4H8B3EgAkH/gfwHcWpBgYAEbEEQdiADaiEDIApFDQALIAYgCUH8AXFBAnRqIgIoAgAiAEF/c0EHdiAAQQZ2ckGBgoQIcSEAIApBAUYNAiAAIAIoAgQiAEF/c0EHdiAAQQZ2ckGBgoQIcWohACAKQQJGDQIgACACKAIIIgBBf3NBB3YgAEEGdnJBgYKECHFqIQAMAgsgB0UEQEEAIQMMAwsgB0EDcSECAkAgB0EESQRAQQAhA0EAIQYMAQtBACEDIAUhACAHQXxxIgYhBANAIAMgACwAAEG/f0pqIABBAWosAABBv39KaiAAQQJqLAAAQb9/SmogAEEDaiwAAEG/f0pqIQMgAEEEaiEAIARBBGsiBA0ACwsgAkUNAiAFIAZqIQADQCADIAAsAABBv39KaiEDIABBAWohACACQQFrIgINAAsMAgsMAgsgAEEIdkH/gRxxIABB/4H8B3FqQYGABGxBEHYgA2ohAwsCQCADIAtJBEAgCyADayEDQQAhAAJAAkACQCABLQAgQQFrDgIAAQILIAMhAEEAIQMMAQsgA0EBdiEAIANBAWpBAXYhAwsgAEEBaiEAIAFBGGooAgAhAiABKAIQIQYgASgCFCEBA0AgAEEBayIARQ0CIAEgBiACKAIQEQMARQ0AC0EBDwsMAQtBASEAIAEgBSAHIAIoAgwRAAAEf0EBBUEAIQACfwNAIAMgACADRg0BGiAAQQFqIQAgASAGIAIoAhARAwBFDQALIABBAWsLIANJCw8LIAEoAhQgBSAHIAFBGGooAgAoAgwRAAALpgYCDX8BfiMAQTBrIgckAEEnIQICQCAAQpDOAFQEQCAAIQ8MAQsDQCAHQQlqIAJqIgZBBGsgAEKQzgCAIg9C8LEDfiAAfKciBEH//wNxQeQAbiIDQQF0QciGwABqLwAAOwAAIAZBAmsgA0Gcf2wgBGpB//8DcUEBdEHIhsAAai8AADsAACACQQRrIQIgAEL/wdcvViAPIQANAAsLIA+nIgRB4wBLBEAgAkECayICIAdBCWpqIA+nIgNB//8DcUHkAG4iBEGcf2wgA2pB//8DcUEBdEHIhsAAai8AADsAAAsCQCAEQQpPBEAgAkECayICIAdBCWpqIARBAXRByIbAAGovAAA7AAAMAQsgAkEBayICIAdBCWpqIARBMGo6AAALQScgAmshCEEBIQVBK0GAgMQAIAEoAhwiBEEBcSIMGyEJIARBHXRBH3VB6IjAAHEhCiAHQQlqIAJqIQsCQCABKAIARQRAIAEoAhQiAyABKAIYIgEgCSAKEEcNASADIAsgCCABKAIMEQAAIQUMAQsgASgCBCINIAggDGoiA00EQCABKAIUIgMgASgCGCIBIAkgChBHDQEgAyALIAggASgCDBEAACEFDAELIARBCHEEQCABKAIQIQQgAUEwNgIQIAEtACAhAyABQQE6ACAgASgCFCIOIAEoAhgiBiAJIAoQRw0BIAIgDWogDGtBJmshAgNAIAJBAWsiAgRAIA5BMCAGKAIQEQMARQ0BDAMLCyAOIAsgCCAGKAIMEQAADQEgASADOgAgIAEgBDYCEEEAIQUMAQsgDSADayEDAkACQAJAIAEtACAiAkEBaw4DAAEAAgsgAyECQQAhAwwBCyADQQF2IQIgA0EBakEBdiEDCyACQQFqIQIgAUEYaigCACEGIAEoAhAhBCABKAIUIQECQANAIAJBAWsiAkUNASABIAQgBigCEBEDAEUNAAsMAQsgASAGIAkgChBHDQAgASALIAggBigCDBEAAA0AQQAhAgNAIAIgA0YEQEEAIQUMAgsgAkEBaiECIAEgBCAGKAIQEQMARQ0ACyACQQFrIANJIQULIAdBMGokACAFC/wFAQV/IABBCGsiASAAQQRrKAIAIgNBeHEiAGohAgJAAkACQAJAIANBAXENACADQQNxRQ0BIAEoAgAiAyAAaiEAIAEgA2siAUGEjcAAKAIARgRAIAIoAgRBA3FBA0cNAUH8jMAAIAA2AgAgAiACKAIEQX5xNgIEIAEgAEEBcjYCBCACIAA2AgAPCyABIAMQBwsCQAJAIAIoAgQiA0ECcUUEQCACQYiNwAAoAgBGDQIgAkGEjcAAKAIARg0FIAIgA0F4cSICEAcgASAAIAJqIgBBAXI2AgQgACABaiAANgIAIAFBhI3AACgCAEcNAUH8jMAAIAA2AgAPCyACIANBfnE2AgQgASAAQQFyNgIEIAAgAWogADYCAAsgAEGAAkkNAiABIAAQCEEAIQFBnI3AAEGcjcAAKAIAQQFrIgA2AgAgAA0BQeSKwAAoAgAiAARAA0AgAUEBaiEBIAAoAggiAA0ACwtBnI3AAEH/HyABIAFB/x9NGzYCAA8LQYiNwAAgATYCAEGAjcAAQYCNwAAoAgAgAGoiADYCACABIABBAXI2AgRBhI3AACgCACABRgRAQfyMwABBADYCAEGEjcAAQQA2AgALIABBlI3AACgCACIDTQ0AQYiNwAAoAgAiAkUNAEEAIQECQEGAjcAAKAIAIgRBKUkNAEHcisAAIQADQCACIAAoAgAiBU8EQCAFIAAoAgRqIAJLDQILIAAoAggiAA0ACwtB5IrAACgCACIABEADQCABQQFqIQEgACgCCCIADQALC0GcjcAAQf8fIAEgAUH/H00bNgIAIAMgBE8NAEGUjcAAQX82AgALDwsgAEF4cUHsisAAaiECAn9B9IzAACgCACIDQQEgAEEDdnQiAHFFBEBB9IzAACAAIANyNgIAIAIMAQsgAigCCAshACACIAE2AgggACABNgIMIAEgAjYCDCABIAA2AggPC0GEjcAAIAE2AgBB/IzAAEH8jMAAKAIAIABqIgA2AgAgASAAQQFyNgIEIAAgAWogADYCAAv7BAEBfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAAQYAEaw4mAQIDBAUGBwgsCQoLDA0sLCwsLCwsLCwsLCwsLCwsLCwODywsLBAAC0EBIQECQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIABBAWsODkEBAgMEBQZCBwgJCgsMAAsCQCAAQcAEaw4MJygpKissLS4vMDEyAAsCQCAAQYECaw4KDQ4PEBESExQVFgALAkAgAEGABmsOCTM0NTY3QkI4OQALAkAgAEGACmsOBTw9Pj9AAAsgAEGACGsOAjk6QQtBAg8LQQMPC0EEDwtBBQ8LQQYPC0EHDwtBCQ8LQQoPC0ELDwtBDA8LQQ0PC0EODwtBgQIPC0GCAg8LQYMCDwtBhAIPC0GFAg8LQYYCDwtBhwIPC0GIAg8LQYkCDwtBigIPC0GABA8LQYEEDwtBggQPC0GDBA8LQYQEDwtBhQQPC0GGBA8LQYcEDwtBiQQPC0GKBA8LQYsEDwtBjAQPC0GNBA8LQaAEDwtBoQQPC0GlBA8LQcAEDwtBwQQPC0HCBA8LQcMEDwtBxAQPC0HFBA8LQcYEDwtBxwQPC0HIBA8LQckEDwtBygQPC0HLBA8LQYAGDwtBgQYPC0GCBg8LQYMGDwtBhAYPC0GHBg8LQYgGDwtBgAgPC0GBCA8LQYAKDwtBgQoPC0GCCg8LQYMKDwtBhAohAQsgAQ8LQeCCwABBGRDSAQAL+AMBAn8gACABaiECAkACQCAAKAIEIgNBAXENACADQQNxRQ0BIAAoAgAiAyABaiEBIAAgA2siAEGEjcAAKAIARgRAIAIoAgRBA3FBA0cNAUH8jMAAIAE2AgAgAiACKAIEQX5xNgIEIAAgAUEBcjYCBCACIAE2AgAPCyAAIAMQBwsCQAJAAkAgAigCBCIDQQJxRQRAIAJBiI3AACgCAEYNAiACQYSNwAAoAgBGDQMgAiADQXhxIgIQByAAIAEgAmoiAUEBcjYCBCAAIAFqIAE2AgAgAEGEjcAAKAIARw0BQfyMwAAgATYCAA8LIAIgA0F+cTYCBCAAIAFBAXI2AgQgACABaiABNgIACyABQYACTwRAIAAgARAIDAMLIAFBeHFB7IrAAGohAgJ/QfSMwAAoAgAiA0EBIAFBA3Z0IgFxRQRAQfSMwAAgASADcjYCACACDAELIAIoAggLIQEgAiAANgIIIAEgADYCDCAAIAI2AgwgACABNgIIDwtBiI3AACAANgIAQYCNwABBgI3AACgCACABaiIBNgIAIAAgAUEBcjYCBCAAQYSNwAAoAgBHDQFB/IzAAEEANgIAQYSNwABBADYCAA8LQYSNwAAgADYCAEH8jMAAQfyMwAAoAgAgAWoiATYCACAAIAFBAXI2AgQgACABaiABNgIACwv7AgEEfyAAKAIMIQICQAJAIAFBgAJPBEAgACgCGCEDAkACQCAAIAJGBEAgAEEUQRAgAEEUaiICKAIAIgQbaigCACIBDQFBACECDAILIAAoAggiASACNgIMIAIgATYCCAwBCyACIABBEGogBBshBANAIAQhBSABIgJBFGoiASACQRBqIAEoAgAiARshBCACQRRBECABG2ooAgAiAQ0ACyAFQQA2AgALIANFDQIgACAAKAIcQQJ0QdyJwABqIgEoAgBHBEAgA0EQQRQgAygCECAARhtqIAI2AgAgAkUNAwwCCyABIAI2AgAgAg0BQfiMwABB+IzAACgCAEF+IAAoAhx3cTYCAAwCCyAAKAIIIgAgAkcEQCAAIAI2AgwgAiAANgIIDwtB9IzAAEH0jMAAKAIAQX4gAUEDdndxNgIADwsgAiADNgIYIAAoAhAiAQRAIAIgATYCECABIAI2AhgLIABBFGooAgAiAEUNACACQRRqIAA2AgAgACACNgIYCwusAgEEf0EfIQIgAEIANwIQIAFB////B00EQCABQQYgAUEIdmciA2t2QQFxIANBAXRrQT5qIQILIAAgAjYCHCACQQJ0QdyJwABqIQQCQEH4jMAAKAIAIgVBASACdCIDcUUEQEH4jMAAIAMgBXI2AgAgBCAANgIAIAAgBDYCGAwBCwJAAkAgASAEKAIAIgMoAgRBeHFGBEAgAyECDAELIAFBGSACQQF2a0EAIAJBH0cbdCEEA0AgAyAEQR12QQRxakEQaiIFKAIAIgJFDQIgBEEBdCEEIAIhAyACKAIEQXhxIAFHDQALCyACKAIIIgEgADYCDCACIAA2AgggAEEANgIYIAAgAjYCDCAAIAE2AggPCyAFIAA2AgAgACADNgIYCyAAIAA2AgwgACAANgIIC2kBA38jAEEQayIBJAAgAUEIaiAAEEogASgCCCIAQQJqLQAAIQIgAC8AACABKAIMIgMgAygCAEEBazYCACACQRB0chDVASIAQYAGcUEIdCAAQQh2QYD+A3EgAEEYdnJyELsBIAFBEGokAAt5AQN/IAEQxAECQCABKAIAIgJBf0cEQCABIAJBAWo2AgAgASgCBCgAACIDQRh0QRZ1QfyCwABqKAIAIQRBAUEEEMcBIgJFDQEgAiAEIANBgH5xcjYAACABIAEoAgBBAWs2AgAgAEEENgIEIAAgAjYCAA8LEM4BAAsAC2YBA38jAEEQayIBJAAgAUEIaiAAEEogASgCCCIAQQJqLQAAIQIgAC8AACABKAIMIgMgAygCAEEBazYCACACQRB0chDVASIAQYAGcUEIdCAAQQh2QYDgA3FyQQx2ELwBIAFBEGokAAtuAQJ/IwBBEGsiASQAIAFBCGogABBKIAEoAggiAC8AACAAQQJqLQAAQRB0chDVASEAIAEoAgwiAiACKAIAQQFrNgIAQQhBBBC6ASICIABBCHZBgB5xIABBGHZyOwEEIAJBADYCACABQRBqJAAgAgttAQF/IwBBMGsiASQAIAEgADoADyAAQf8BcUHAAE8EQCABQRxqQgE3AgAgAUECNgIUIAFB9IDAADYCECABQQI2AiwgASABQShqNgIYIAEgAUEPajYCKCABQRBqQYSBwAAQSQALIAFBMGokACAAC24BAX8jAEEwayIBJAAgASAAOwEOIABB//8DcUGAIE8EQCABQRxqQgE3AgAgAUECNgIUIAFBuIHAADYCECABQQM2AiwgASABQShqNgIYIAEgAUEOajYCKCABQRBqQciBwAAQSQALIAFBMGokACAAC10BA38jAEEQayIBJAAgAUEIaiAAEEogASgCCCIAQQJqLQAAIQIgAC8AACABKAIMIgMgAygCAEEBazYCACACQRB0chDVASIAQR52IABBDnZBPHFyELwBIAFBEGokAAsVACAAQYyCwABB/IHAAEGAgBAQ8gELFgAgAEHQgsAAQcCCwABBgICACBDyAQtMACADQf8BcSABQf8BcUEMdCAAQf8BcUESdHIiACACQf8BcUEGdHJyIgFBEHRBgID8B3EgAEEIdkGA/gNxIAFBgP4DcUEIdHJBCHZyC1UCAX8BfiMAQRBrIgIkACABEMQBIAJBCGogARBUIAIoAgxBADYCACABKQIAIQMgARAEIAAgA0IoiKdBAXE6AAEgACADQiCIp0EBcToAACACQRBqJAALEAAgACABIAIgA0HiABD0AQsQACAAIAEgAiADQeMAEPQBC08BA38jAEEQayIBJAAgAUEIaiAAEEogASgCCCIAQQJqLQAAIQIgAC8AACABKAIMIgMgAygCAEEBazYCACACQRB0chDIARC8ASABQRBqJAALVQEDfyMAQRBrIgEkACABQQhqIAAQSiABKAIIIgBBAmotAAAhAiAALwAAIAEoAgwiAyADKAIAQQFrNgIAIAJBEHRyENUBQRh2QT9xELwBIAFBEGokAAtSAQF/IAAQUSECIAEQUyEAQQhBBBC6ASIBIABBEHRBgID8B3EgACACQf8BcUESdHIiAEGA/gNxQQh0IABBCHZBgP4DcXJBCHZyrUIghjcCACABCxAAIAAgASACIANB3gAQ9QELEAAgACABIAIgA0HfABD1AQsQACAAIAEgAiADQeAAEPUBCxAAIAAgASACIANB4QAQ9QELUQIBfwF+IwBBEGsiAiQAIAEQxAEgAkEIaiABEFQgAigCDEEANgIAIAEpAgAhAyABEAQgACADQiiIPAABIAAgA0IgiKdBAXE6AAAgAkEQaiQACz4BAX8jAEEQayIEJAAgABBRIAEQUSACEFEgBEEIaiADEBMgBC0ACEEBcSAELQAJQQFxEHoQrAEgBEEQaiQAC0kBAX8gABBRIQAgARBRIQFBCEEEELoBIgIgAUH/AXFBDHQgAEESdHIiAEGA4ANxQQh0IABBCHZBgP4DcXJBCHatQiCGNwIAIAILDAAgACABQcsAEPYBCwwAIAAgAUHMABD2AQsMACAAIAFBzQAQ9gELDAAgACABQc4AEPYBCwwAIAAgAUHPABD2AQsMACAAIAFB0AAQ9gELPAEBfyMAQRBrIgQkACAAEFEgARBRIAIQUSAEQQhqIAMQHSAELQAIQQFxIAQtAAkQvgEQrAEgBEEQaiQAC0gAIAAQxAEgACgCAEF/RgRAEM4BAAsgAC8ABCAAQQZqLQAAQRB0chDVASIAQYD+A3FBCHQgAEEIdkGA/gNxIABBGHZychC7AQsLACAAIAFBBxD3AQs/AQJ/AkAgABBRIgBBGHENACAAQQdxIgJBB0YNAEEIQQQQugEiASAAQQV2QQFxrUIghiACrUIohoQ3AgALIAELCwAgACABQQgQ9wELPwAgAkEWdEGAgIAGcSABQf8BcUEMdCIBIAJB/AFxQQZ0ckGA/gNxQQh0IAEgAEESdHJBCHZBgP4DcXJBCHZyCwsAIAAgAUEKEPgBCwsAIAAgAUEMEPgBCwsAIAAgAUEUEPgBCwsAIAAgAUEWEPgBCwsAIAAgAUEZEPgBCwsAIAAgAUEbEPgBCwsAIAAgAUEeEPgBCwsAIAAgAUEfEPgBCwsAIAAgAUEkEPgBCwsAIAAgAUEyEPgBCz8AIAAQUSEAIAEQUyIBQRB0QYCA/AdxIABB/wFxQRJ0IAFyIgBBgP4DcUEIdCAAQQh2QYD+A3FyQQh2chCsAQtAAQF/IAAQUyEAQQhBBBC6ASIBIABBEHRBgID8B3EgAEEIdkGA/gNxIABBgP4DcUEIdHJBCHZyrUIghjcCACABCzgAIAJBEHRBgID8B3EgAUH/AXFBDHQiASACckGA/gNxQQh0IAEgAEESdHJBCHZBgP4DcXJBCHZyCzwBAn8jAEEQayIBJAAgABDEASABQQhqIAAQSyABKAIILQABIAEoAgwiAiACKAIAQQFrNgIAIAFBEGokAAs8AQJ/IwBBEGsiASQAIAAQxAEgAUEIaiAAEEsgASgCCC0AACABKAIMIgIgAigCAEEBazYCACABQRBqJAALOQEBfyMAQRBrIgIkACAAEMQBIAJBCGogABBUIAIoAgwgAigCCCABQQBHOgAAQQA2AgAgAkEQaiQACzkBAX8jAEEQayICJAAgABDEASACQQhqIAAQVCACKAIMIAIoAgggAUEARzoAAUEANgIAIAJBEGokAAs4AQJ/IwBBEGsiASQAIAAQxAEgAUEIaiAAEFQgASgCDEEANgIAIAAtAAQgABAEIAFBEGokAEEBcQs3AQJ/IwBBEGsiASQAIAFBCGogABBKIAEoAggtAAQgASgCDCICIAIoAgBBAWs2AgAgAUEQaiQACzcBAn8jAEEQayIBJAAgAUEIaiAAEEogASgCCCgCACABKAIMIgIgAigCAEEBazYCACABQRBqJAALCgAgAEHVABD5AQsKACAAQdYAEPkBCwoAIABB1wAQ+QELCgAgAEHaABD5AQsKACAAQdsAEPkBCwoAIABB3AAQ+QELCgAgAEHdABD5AQs5AAJAAn8gAkGAgMQARwRAQQEgACACIAEoAhARAwANARoLIAMNAUEACw8LIAAgA0EAIAEoAgwRAAALMQEBfyMAQRBrIgEkACABQQhqIAAQHSABLQAJIAEtAAhBBXRBIHFyELwBIAFBEGokAAuhAgEBfyMAQSBrIgIkACACQQE7ARwgAiABNgIYIAIgADYCFCACQbiGwAA2AhAgAkHoiMAANgIMIAJBDGoiACgCCCIBRQRAIwBBIGsiACQAIABBDGpCADcCACAAQQE2AgQgAEHoiMAANgIIIABBKzYCHCAAQZCIwAA2AhggACAAQRhqNgIAIABB2IjAABBJAAsgAUEMaigCACECAkACQCABKAIEDgIAAAELIAINAAsgAC0AECEBIAAtABEaQdiJwABB2InAACgCACIAQQFqNgIAAkAgAEEASA0AQaSNwAAtAABBAXENAEGkjcAAQQE6AABBoI3AAEGgjcAAKAIAQQFqNgIAQdSJwAAoAgBBAEgNAEGkjcAAQQA6AAAgAUUNAAALAAs1AQF/IAEQxAEgASgCACICQX9GBEAQzgEACyABIAJBAWo2AgAgACABNgIEIAAgAUEEajYCAAsxAQF/IAEoAgAiAkF/RwRAIAEgAkEBajYCACAAIAE2AgQgACABQQRqNgIADwsQzgEACzUBAX8gAEE2TwRAQeCCwABBGRDSAQALQQxBBBC6ASICIAA6AAggAiABNgIEIAJBADYCACACCzAAIAAQUSABEFEgAhBRIAMQURASIQBBCEEEELoBIgEgAK1C////B4NCIIY3AgAgAQstACAAEMQBIAAoAgBBf0YEQBDOAQALIAAvAAQgAEEGai0AAEEQdHIQyAEQvAELLAAgABBRIAEQUSACEFEQKyEAQQhBBBC6ASIBIACtQv///weDQiCGNwIAIAELLAAgABBRIAEQUSACEFIQOCEAQQhBBBC6ASIBIACtQv///weDQiCGNwIAIAELJQEBfwJAIAAEQCAAKAIADQEgAC0ABCAAEAQPCxDNAQALEM4BAAslAQF/AkAgAARAIAAoAgANASAALwEEIAAQBA8LEM0BAAsQzgEACyUBAX8CQCAABEAgACgCAA0BIAAoAgQgABAEDwsQzQEACxDOAQALKAAgASgCAEUEQCABQX82AgAgACABNgIEIAAgAUEEajYCAA8LEM4BAAspACADED0hAyAAEL0BIAEQvQEgAhC9ASADEMIBQQh0QeQAchDFARC7AQspACADED0hAyAAEL0BIAEQvQEgAhC9ASADEMIBQQh0QeUAchDFARC7AQslAQF/IAAQUSEAQQhBBBC6ASIBIABBAnRB/AFxrUIghjcCACABCyAAIABBAWsiAEEFTQRAIABBAWoPC0HggsAAQRkQ0gEACyABAX8gABDEASAAKAIABEAQzgEACyAAKAIEIAAQBBAECyMAIAIQBSECIAAQvQEgARC9ASACEDhBCHRBygByEMUBELsBCx4AAkAgAARAIAAoAgANASAAEAQPCxDNAQALEM4BAAsPACAAIAEgAiADQRIQ7gELDwAgACABIAIgA0EYEO4BCw8AIAAgASACIANBHBDuAQsPACAAIAEgAiADQR0Q7gELDwAgACABIAIgA0EiEO4BCw8AIAAgASACIANBIxDuAQsPACAAIAEgAiADQSgQ7gELDwAgACABIAIgA0EqEO4BCw8AIAAgASACIANBLBDuAQsPACAAIAEgAiADQTgQ7gELEAAgACABIAIgA0HTABDvAQsQACAAIAEgAiADQdQAEO8BCxAAIAAgASACIANB3gAQ7wELEAAgACABIAIgA0HfABDvAQsQACAAIAEgAiADQeAAEO8BCxAAIAAgASACIANB4QAQ7wELEAAgACABIAIgA0HiABDvAQsQACAAIAEgAiADQeMAEO8BCxAAIAAgASACIANB5AAQ7wELEAAgACABIAIgA0HlABDvAQsQACAAIAEgAiADQeYAEO4BCxAAIAAgASACIANB5wAQ7gELEAAgACABIAIgA0HoABDuAQsQACAAIAEgAiADQekAEO4BCxAAIAAgASACIANB6gAQ7gELEAAgACABIAIgA0HrABDuAQsQACAAIAEgAiADQewAEO4BCx0BAX8jAEEQayIBJAAgAUEIaiAAEB0gAUEQaiQACx0BAX8jAEEQayIBJAAgAUEIaiAAEBMgAUEQaiQACx8AIAEQWCEBIAAQvQEgARC3AUEIdEHMAHIQxQEQuwELGQAgACABIAJBIEEAIAQbQRBBACADG3IQEgsNACAAIAEgAkEBEPABCw0AIAAgASACQQIQ8AELDQAgACABIAJBAxDwAQsNACAAIAEgAkEEEPABCw0AIAAgASACQQUQ8AELDQAgACABIAJBBhDwAQsNACAAIAEgAkEHEPABCw0AIAAgASACQQgQ8AELDQAgACABIAJBCRDwAQsNACAAIAEgAkELEPABCw0AIAAgASACQQ0Q8AELDQAgACABIAJBDhDwAQsNACAAIAEgAkEPEPABCw0AIAAgASACQRAQ8AELDQAgACABIAJBERDwAQsNACAAIAEgAkEXEPABCw0AIAAgASACQSEQ8AELDQAgACABIAJBJhDwAQsNACAAIAEgAkEnEPABCw0AIAAgASACQSkQ8AELDQAgACABIAJBKxDwAQsNACAAIAEgAkEtEPABCw0AIAAgASACQS4Q8AELDQAgACABIAJBLxDwAQsNACAAIAEgAkEwEPABCw0AIAAgASACQTEQ8AELDQAgACABIAJBNRDwAQsNACAAIAEgAkE3EPABCw0AIAAgASACQTkQ8QELDQAgACABIAJBOhDxAQsNACAAIAEgAkE7EPEBCw0AIAAgASACQTwQ8QELDQAgACABIAJBPRDxAQsNACAAIAEgAkE+EPEBCw0AIAAgASACQT8Q8QELDgAgACABIAJBwAAQ8QELDgAgACABIAJBwQAQ8QELDgAgACABIAJBwgAQ8QELDgAgACABIAJBwwAQ8QELDgAgACABIAJBxAAQ8QELDgAgACABIAJBxQAQ8QELDgAgACABIAJBxgAQ8QELDgAgACABIAJBxwAQ8QELDgAgACABIAJByAAQ8QELDgAgACABIAJByQAQ8QELDgAgACABIAJBygAQ8QELDgAgACABIAJB0QAQ8QELDgAgACABIAJB0gAQ8QELGAEBfyAAQf8BcUE/TQR/IAAQvAEFQQALCx4BAX9BCEEEELoBIgEgAK1C////B4NCIIY3AgAgAQsbACAAEMQBIAAoAgBBf0YEQBDOAQALIAAtAAQLCQAgAEETEPMBCwkAIABBFRDzAQsJACAAQRoQ8wELCQAgAEEgEPMBCwkAIABBJRDzAQsJACAAQTQQ8wELCQAgAEE2EPMBCwoAIABB2AAQ8wELCgAgAEHZABDzAQsXACABQRB0QYCA/AdxIABBAnRB/AFxcgsXACAAEMQBIAAoAgAEQBDOAQALIAAQBAscACAAEL0BIAEQvQEgAhC9ARArQQh0EMUBELsBCxIAIAEgABDHASIABEAgAA8LAAsbAQF/QQhBBBC6ASIBIAA2AgQgAUEANgIAIAELGwEBf0EIQQQQugEiASAAOgAEIAFBADYCACABC24AIABB/wFxQcAATwRAIwBBMGsiACQAIABBIjYCDCAAQYCAwAA2AgggAEEcakIBNwIAIABBATYCFCAAQbCGwAA2AhAgAEEBNgIsIAAgAEEoajYCGCAAIABBCGo2AiggAEEQakG4gMAAEEkACyAACxQAIAAgASACQSBBACADGyAEchASCxgAIAAQUSABEFEgAhBRIAMQPRDCARCsAQsXACAAEFEgARBRIAIQUSADEFEQEhCsAQsTACAAEFEgARBRIAIQBRA4EKwBCxEAIAAgASACQSBBACADGxASCxMAIAAQUSABEFEgAhBSEDgQrAELDAAgAARADwsQzQEACxQBAX9BBEEBELoBIgEgADYAACABCxQBAX9BCEEEELoBIgBCADcCACAAC4ED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", imports);
|
28540
|
+
return _loadWasmModule(1, null, "AGFzbQEAAAABQAtgA39/fwF/YAF/AX9gBH9/f38Bf2ACf38Bf2AAAX9gAn9/AGABfwBgBX9/f39/AX9gA39/fwBgAABgAn5/AX8CGAEDd2JnEF9fd2JpbmRnZW5fdGhyb3cABQP9AfsBAQMKBgEFBQUBBQEBAQEBAQECBQICAQMBAgICAgUCAwMDAwMDAwIBBQEFAAMDAwMDAwMDAwMDAwEAAQEFBQEBAQEBAQEBAQECAQUFBQMCAQAAAQEBBQICAQEGAAYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgMHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQEBAQEBAQEBAQMGAAMBAQEHAgIAAgAGAQQDAQMFCAEJCQMDAwUBAQEGBgYGBAQEBAQEBAQEBAQEBAQEBAQEBAYHBwICAgMHBwAIAAMEBQFwAQcHBQMBABEGCQF/AUGAgMAACwf4TM8FBm1lbW9yeQIAFl9fd2JnX2NvbXBhcmVhcmdzX2ZyZWUAexpfX3diZ19nZXRfY29tcGFyZWFyZ3NfbW9kZQA6Gl9fd2JnX3NldF9jb21wYXJlYXJnc19tb2RlACgiX193YmdfZ2V0X2NvbXBhcmVhcmdzX2luZGlyZWN0X3JocwA7Il9fd2JnX3NldF9jb21wYXJlYXJnc19pbmRpcmVjdF9yaHMAPBJjb21wYXJlYXJnc190b19pbW0ASRRjb21wYXJlYXJnc19mcm9tX2ltbQApFV9fd2JnX2dldF9tYXRoYXJnc19vcAA6FV9fd2JnX3NldF9tYXRoYXJnc19vcAAqEl9fd2JnX211bGFyZ3NfZnJlZQB8Hl9fd2JnX2dldF9tdWxhcmdzX2luZGlyZWN0X3JocwA6Hl9fd2JnX3NldF9tdWxhcmdzX2luZGlyZWN0X3JocwA9El9fd2JnX2RpdmFyZ3NfZnJlZQDYAR5fX3diZ19nZXRfZGl2YXJnc19pbmRpcmVjdF9yaHMArwEhcGFuaWNpbnN0cnVjdGlvbl9lcnJvcl90eXBlc2NyaXB0AE0XcGFuaWNpbnN0cnVjdGlvbl9yZWFzb24APxxwYW5pY2luc3RydWN0aW9uX2luc3RydWN0aW9uAEAMZ21fZnJvbV9hcmdzAMsBDWd0Zl9mcm9tX2FyZ3MAwwEHZ21fYXJncwB9CGd0Zl9hcmdzAFsOd2RjbV9mcm9tX2FyZ3MAJg53ZG9wX2Zyb21fYXJncwAmDndkbWxfZnJvbV9hcmdzAB4Od2Rkdl9mcm9tX2FyZ3MAwQEJd2RjbV9hcmdzABkJd3FjbV9hcmdzABoJd2RvcF9hcmdzABsJd3FvcF9hcmdzABwJd2RtbF9hcmdzABQJd3FtbF9hcmdzABUJd2Rkdl9hcmdzAFYJd3Fkdl9hcmdzAFcQX193YmdfaW1tMDZfZnJlZQDZARBfX3diZ19pbW0xMl9mcmVlANoBEF9fd2JnX2ltbTE4X2ZyZWUA2wEOX193YmdfYWRkX2ZyZWUAugEPX193Ymdfbm9vcF9mcmVlAFwSYWRkX25ld190eXBlc2NyaXB0AFAGYWRkX3JhABYGYWRkX3JiAAsGYWRkX3JjAA8DYWRkALsBA2FuZAB/A2RpdgCAAQJlcQCBAQNleHAAggECZ3QAgwECbHQAhAEEbWxvZwCFAQRtcm9vAIYBBG1vZF8AhwEFbW92ZV8ALANtdWwAiAEDbm90AC0Cb3IAiQEDc2xsAIoBA3NybACLAQNzdWIAjAEDeG9yAI0BBG1sZHYAXQNyZXQAsAEEcmV0ZAAuE2Fsb2NfbmV3X3R5cGVzY3JpcHQAWAdhbG9jX3JhAE8EYWxvYwCxAQNtY2wALwNtY3AAjgEDbWVxAF4TYmhzaF9uZXdfdHlwZXNjcmlwdAAfBGJoc2gAMARiaGVpALIBBGJ1cm4AMQRjYWxsAF8DY2NwAGAEY3JvbwAyBGNzaXoAMwJjYgCzAQNsZGMAYQNsb2cAYgRsb2dkAGMEbWludAA0BHJ2cnQAtAEEc2N3cQCPAQNzcncAkAEEc3J3cQBkA3N3dwCRAQRzd3dxAGUCdHIAkgEDdHJvAGYEZWNrMQCTAQRlY3IxAJQBBGVkMTkAZwRrMjU2AJUBBHMyNTYAlgEEdGltZQA1E25vb3BfbmV3X3R5cGVzY3JpcHQAyAEEbm9vcADcAQRmbGFnALUBA2JhbACXAQNqbXAAtgEDam5lAJgBA3NtbwBoE2FkZGlfbmV3X3R5cGVzY3JpcHQAUQphZGRpX2ltbTEyAAwEYWRkaQCZAQRhbmRpAJoBBGRpdmkAmwEEZXhwaQCcAQRtb2RpAJ0BBG11bGkAngEDb3JpAJ8BBHNsbGkAoAEEc3JsaQChAQRzdWJpAKIBBHhvcmkAowEEam5laQCkAQJsYgClAQJsdwCmAQJzYgCnAQJzdwCoAQRtY3BpAKkBEmd0Zl9uZXdfdHlwZXNjcmlwdADFAQNndGYAqgEEbWNsaQAgEWdtX25ld190eXBlc2NyaXB0ADYIZ21faW1tMTgACQJnbQAhBG1vdmkAIgRqbnppACMEam1wZgAkE2ptcGJfbmV3X3R5cGVzY3JpcHQAFwRqbXBiACUEam56ZgCrAQRqbnpiAKwBBGpuZWYAaQpqbmViX2ltbTA2ABgEam5lYgBqAmppAEETY2ZlaV9uZXdfdHlwZXNjcmlwdAA4CmNmZWlfaW1tMjQAJwRjZmVpAEIEY2ZzaQBDA2NmZQC3AQNjZnMAuAEEcHNobABEBHBzaGgARQRwb3BsAEYEcG9waABHE3dkY21fbmV3X3R5cGVzY3JpcHQAwgEEd2RjbQBrBHdxY20AbAR3ZG9wAG0Ed3FvcABuBHdkbWwAbwR3cW1sAHAEd2RkdgBxBHdxZHYAcgR3ZG1kAHMEd3FtZAB0BHdkYW0AdQR3cWFtAHYEd2RtbQB3BHdxbW0AeARlY2FsAHkEYnNpegA3E2JsZGRfbmV3X3R5cGVzY3JpcHQATgdibGRkX3JkABgEYmxkZAB6Fl9fd2JnX2luc3RydWN0aW9uX2ZyZWUAWhRpbnN0cnVjdGlvbl90b19ieXRlcwAKEGluc3RydWN0aW9uX3NpemUA7gERcmVnaWRfbmV3X2NoZWNrZWQArQEJcmVnaWRfYmFsAN0BCnJlZ2lkX2NnYXMA3gEJcmVnaWRfZXJyAN8BCnJlZ2lkX2ZsYWcA4AEIcmVnaWRfZnAA4QEKcmVnaWRfZ2dhcwDiAQhyZWdpZF9ocADjAQhyZWdpZF9pcwDkAQhyZWdpZF9vZgDlAQlyZWdpZF9vbmUA5gEIcmVnaWRfcGMA5wEJcmVnaWRfcmV0AOgBCnJlZ2lkX3JldGwA6QEIcmVnaWRfc3AA6gEJcmVnaWRfc3BwAOsBDnJlZ2lkX3dyaXRhYmxlAOwBCnJlZ2lkX3plcm8A7QEUcmVnaWRfbmV3X3R5cGVzY3JpcHQA1QELcmVnaWRfdG9fdTgA1gETbW92aV9uZXdfdHlwZXNjcmlwdAAXE21jbGlfbmV3X3R5cGVzY3JpcHQAFxNqbnppX25ld190eXBlc2NyaXB0ABcTam1wZl9uZXdfdHlwZXNjcmlwdAAXEm5vdF9uZXdfdHlwZXNjcmlwdAAfE3JldGRfbmV3X3R5cGVzY3JpcHQAHxNtb3ZlX25ld190eXBlc2NyaXB0AB8SbWNsX25ld190eXBlc2NyaXB0AB8TYnVybl9uZXdfdHlwZXNjcmlwdAAfE2Nyb29fbmV3X3R5cGVzY3JpcHQAHxNjc2l6X25ld190eXBlc2NyaXB0AB8TbWludF9uZXdfdHlwZXNjcmlwdAAfE3RpbWVfbmV3X3R5cGVzY3JpcHQAHxNic2l6X25ld190eXBlc2NyaXB0AB8ScmV0X25ld190eXBlc2NyaXB0AFgTYmhlaV9uZXdfdHlwZXNjcmlwdABYEWNiX25ld190eXBlc2NyaXB0AFgTcnZydF9uZXdfdHlwZXNjcmlwdABYE2ZsYWdfbmV3X3R5cGVzY3JpcHQAWBJqbXBfbmV3X3R5cGVzY3JpcHQAWBJjZmVfbmV3X3R5cGVzY3JpcHQAWBJjZnNfbmV3X3R5cGVzY3JpcHQAWBNtbGR2X25ld190eXBlc2NyaXB0AE4SbWVxX25ld190eXBlc2NyaXB0AE4SY2NwX25ld190eXBlc2NyaXB0AE4SbG9nX25ld190eXBlc2NyaXB0AE4TbG9nZF9uZXdfdHlwZXNjcmlwdABOE3Nyd3FfbmV3X3R5cGVzY3JpcHQAThNzd3dxX25ld190eXBlc2NyaXB0AE4SdHJvX25ld190eXBlc2NyaXB0AE4TZWQxOV9uZXdfdHlwZXNjcmlwdABOEnNtb19uZXdfdHlwZXNjcmlwdABOEmxkY19uZXdfdHlwZXNjcmlwdABOE2puZWZfbmV3X3R5cGVzY3JpcHQAThN3ZG1kX25ld190eXBlc2NyaXB0AE4Td3FtZF9uZXdfdHlwZXNjcmlwdABOE3dkYW1fbmV3X3R5cGVzY3JpcHQAThN3cWFtX25ld190eXBlc2NyaXB0AE4Td2RtbV9uZXdfdHlwZXNjcmlwdABOE3dxbW1fbmV3X3R5cGVzY3JpcHQAThNlY2FsX25ld190eXBlc2NyaXB0AE4TY2FsbF9uZXdfdHlwZXNjcmlwdABOEmFuZF9uZXdfdHlwZXNjcmlwdABQEmRpdl9uZXdfdHlwZXNjcmlwdABQEWVxX25ld190eXBlc2NyaXB0AFASZXhwX25ld190eXBlc2NyaXB0AFARZ3RfbmV3X3R5cGVzY3JpcHQAUBFsdF9uZXdfdHlwZXNjcmlwdABQE21sb2dfbmV3X3R5cGVzY3JpcHQAUBNtcm9vX25ld190eXBlc2NyaXB0AFASbW9kX25ld190eXBlc2NyaXB0AFASbXVsX25ld190eXBlc2NyaXB0AFARb3JfbmV3X3R5cGVzY3JpcHQAUBJzbGxfbmV3X3R5cGVzY3JpcHQAUBJzcmxfbmV3X3R5cGVzY3JpcHQAUBJzdWJfbmV3X3R5cGVzY3JpcHQAUBJ4b3JfbmV3X3R5cGVzY3JpcHQAUBJtY3BfbmV3X3R5cGVzY3JpcHQAUBNzY3dxX25ld190eXBlc2NyaXB0AFASc3J3X25ld190eXBlc2NyaXB0AFASc3d3X25ld190eXBlc2NyaXB0AFARdHJfbmV3X3R5cGVzY3JpcHQAUBNlY2sxX25ld190eXBlc2NyaXB0AFATZWNyMV9uZXdfdHlwZXNjcmlwdABQE2syNTZfbmV3X3R5cGVzY3JpcHQAUBNzMjU2X25ld190eXBlc2NyaXB0AFASYmFsX25ld190eXBlc2NyaXB0AFASam5lX25ld190eXBlc2NyaXB0AFATYW5kaV9uZXdfdHlwZXNjcmlwdABRE2RpdmlfbmV3X3R5cGVzY3JpcHQAURNleHBpX25ld190eXBlc2NyaXB0AFETbW9kaV9uZXdfdHlwZXNjcmlwdABRE211bGlfbmV3X3R5cGVzY3JpcHQAURJvcmlfbmV3X3R5cGVzY3JpcHQAURNzbGxpX25ld190eXBlc2NyaXB0AFETc3JsaV9uZXdfdHlwZXNjcmlwdABRE3N1YmlfbmV3X3R5cGVzY3JpcHQAURN4b3JpX25ld190eXBlc2NyaXB0AFETam5laV9uZXdfdHlwZXNjcmlwdABREWxiX25ld190eXBlc2NyaXB0AFERbHdfbmV3X3R5cGVzY3JpcHQAURFzYl9uZXdfdHlwZXNjcmlwdABREXN3X25ld190eXBlc2NyaXB0AFETbWNwaV9uZXdfdHlwZXNjcmlwdABRE2puemZfbmV3X3R5cGVzY3JpcHQAURNqbnpiX25ld190eXBlc2NyaXB0AFEOd3FjbV9mcm9tX2FyZ3MAJg53cW9wX2Zyb21fYXJncwAmH19fd2JnX3NldF9tYXRoYXJnc19pbmRpcmVjdF9yaHMAPB5fX3diZ19zZXRfbXVsYXJnc19pbmRpcmVjdF9saHMAPB5fX3diZ19zZXRfZGl2YXJnc19pbmRpcmVjdF9yaHMAPBFqaV9uZXdfdHlwZXNjcmlwdAA4E2Nmc2lfbmV3X3R5cGVzY3JpcHQAOBNwc2hsX25ld190eXBlc2NyaXB0ADgTcHNoaF9uZXdfdHlwZXNjcmlwdAA4E3BvcGxfbmV3X3R5cGVzY3JpcHQAOBNwb3BoX25ld190eXBlc2NyaXB0ADgTd3FvcF9uZXdfdHlwZXNjcmlwdADCARN3ZG1sX25ld190eXBlc2NyaXB0AMIBE3dkZHZfbmV3X3R5cGVzY3JpcHQAwgETd2RvcF9uZXdfdHlwZXNjcmlwdADCARN3cW1sX25ld190eXBlc2NyaXB0AMIBDndxbWxfZnJvbV9hcmdzAB4Td3Fkdl9uZXdfdHlwZXNjcmlwdADCAQ53cWR2X2Zyb21fYXJncwDBARN3cWNtX25ld190eXBlc2NyaXB0AMIBEF9fd2JnX3JlZ2lkX2ZyZWUA2QEQX193YmdfaW1tMjRfZnJlZQDbAQ5fX3diZ19tdWxfZnJlZQC6AQZqbXBfcmEATw5fX3diZ19qbXBfZnJlZQC6AQZjZmVfcmEATw5fX3diZ19jZmVfZnJlZQC6AQ1fX3diZ19nbV9mcmVlALoBD19fd2JnX2puemlfZnJlZQC6AQ9fX3diZ193ZGNtX2ZyZWUAugEOX193Ymdfc3J3X2ZyZWUAugEPX193YmdfbG9nZF9mcmVlALoBDl9fd2JnX3NybF9mcmVlALoBD19fd2JnX2Nyb29fZnJlZQC6AQ9fX3diZ19yZXRkX2ZyZWUAugEPX193Ymdfd3FtbV9mcmVlALoBDV9fd2JnX3NiX2ZyZWUAugEPX193YmdfdGltZV9mcmVlALoBD19fd2JnX3dxbWxfZnJlZQC6AQ9fX3diZ19zdWJpX2ZyZWUAugEOX193Ymdfc3ViX2ZyZWUAugEOX193Ymdfbm90X2ZyZWUAugENX193YmdfbGJfZnJlZQC6AQ9fX3diZ193cWFtX2ZyZWUAugEPX193YmdfczI1Nl9mcmVlALoBBWNiX3JhAE8NX193YmdfY2JfZnJlZQC6AQ9fX3diZ19wb3BoX2ZyZWUAugEPX193YmdfZGl2aV9mcmVlALoBD19fd2JnX21vZGlfZnJlZQC6AQ5fX3diZ19zd3dfZnJlZQC6AQ5fX3diZ19ndGZfZnJlZQC6AQpwb3BoX2ltbTI0ACcNX193YmdfamlfZnJlZQC6AQ9fX3diZ19zcndxX2ZyZWUAugEPX193Ymdfam1wZl9mcmVlALoBD19fd2JnX2syNTZfZnJlZQC6AQ9fX3diZ193ZG9wX2ZyZWUAugEPX193YmdfYW5kaV9mcmVlALoBD19fd2JnX3NsbGlfZnJlZQC6AQ5fX3diZ19tb2RfZnJlZQC6AQpwb3BsX2ltbTI0ACcPX193YmdfcG9wbF9mcmVlALoBD19fd2JnX2Fsb2NfZnJlZQC6AQ9fX3diZ193ZG1kX2ZyZWUAugEPX193YmdfbWxkdl9mcmVlALoBDV9fd2JnX3N3X2ZyZWUAugEPX193Ymdfam5lYl9mcmVlALoBDl9fd2JnX3Ryb19mcmVlALoBDl9fd2JnX29yaV9mcmVlALoBDl9fd2JnX3NsbF9mcmVlALoBD19fd2JnX3dxZHZfZnJlZQC6AQ9fX3diZ193cW1kX2ZyZWUAugEOX193Ymdfam5lX2ZyZWUAugEPX193YmdfbWxvZ19mcmVlALoBD19fd2JnX21pbnRfZnJlZQC6AQ9fX3diZ193cWNtX2ZyZWUAugEPX193YmdfbXVsaV9mcmVlALoBHl9fd2JnX2dldF9tdWxhcmdzX2luZGlyZWN0X2xocwA7D19fd2JnX21jbGlfZnJlZQC6AQ9fX3diZ19qbmVpX2ZyZWUAugEPX193YmdfY3Npel9mcmVlALoBDV9fd2JnX3RyX2ZyZWUAugEPX193YmdfYmxkZF9mcmVlALoBD19fd2JnX2V4cGlfZnJlZQC6AQ9fX3diZ194b3JpX2ZyZWUAugENX193Ymdfb3JfZnJlZQC6AQ9fX3diZ19lY2sxX2ZyZWUAugEHYmhlaV9yYQBPD19fd2JnX2JoZWlfZnJlZQC6AQhqaV9pbW0yNAAnD19fd2JnX2Nmc2lfZnJlZQC6AQ5fX3diZ19tY2xfZnJlZQC6AQ9fX3diZ19qbnpmX2ZyZWUAugEPX193Ymdfc3d3cV9mcmVlALoBDV9fd2JnX2d0X2ZyZWUAugEPX193Ymdfam1wYl9mcmVlALoBDl9fd2JnX2Rpdl9mcmVlALoBD19fd2JnX2J1cm5fZnJlZQC6AR9fX3diZ19nZXRfbWF0aGFyZ3NfaW5kaXJlY3RfcmhzADsOX193YmdfeG9yX2ZyZWUAugEHcnZydF9yYQBPD19fd2JnX3J2cnRfZnJlZQC6AQZyZXRfcmEATw5fX3diZ19yZXRfZnJlZQC6AQ9fX3diZ193ZG1sX2ZyZWUAugEPX193YmdfY2FsbF9mcmVlALoBD19fd2JnX3dkbW1fZnJlZQC6AQ9fX3diZ19tY3BpX2ZyZWUAugEPX193YmdfYWRkaV9mcmVlALoBD19fd2JnX2puemJfZnJlZQC6AQ9fX3diZ19tcm9vX2ZyZWUAugEOX193YmdfZXhwX2ZyZWUAugEOX193YmdfYmFsX2ZyZWUAugEGY2ZzX3JhAE8OX193YmdfY2ZzX2ZyZWUAugEPX193YmdfZWQxOV9mcmVlALoBD19fd2JnX3NybGlfZnJlZQC6AQpwc2hsX2ltbTI0ACcPX193YmdfcHNobF9mcmVlALoBDl9fd2JnX21lcV9mcmVlALoBD19fd2JnX2Joc2hfZnJlZQC6AQ5fX3diZ19sZGNfZnJlZQC6AQ9fX3diZ19qbmVmX2ZyZWUAugEKcHNoaF9pbW0yNAAnD19fd2JnX3BzaGhfZnJlZQC6AQ9fX3diZ193ZGFtX2ZyZWUAugEOX193YmdfbWNwX2ZyZWUAugENX193YmdfbHRfZnJlZQC6AQ9fX3diZ193cW9wX2ZyZWUAugEOX193YmdfYW5kX2ZyZWUAugEPX193YmdfYnNpel9mcmVlALoBD19fd2JnX3dkZHZfZnJlZQC6AQ9fX3diZ19lY2FsX2ZyZWUAugEKY2ZzaV9pbW0yNAAnD19fd2JnX2NmZWlfZnJlZQC6AQ9fX3diZ19lY3IxX2ZyZWUAugEPX193YmdfbW92aV9mcmVlALoBB2ZsYWdfcmEATw9fX3diZ19mbGFnX2ZyZWUAugEPX193YmdfbW92ZV9mcmVlALoBD19fd2JnX3Njd3FfZnJlZQC6AQ1fX3diZ19lcV9mcmVlALoBDl9fd2JnX3Ntb19mcmVlALoBDl9fd2JnX2xvZ19mcmVlALoBDl9fd2JnX2NjcF9mcmVlALoBDV9fd2JnX2x3X2ZyZWUAugETam5lYl9uZXdfdHlwZXNjcmlwdABOCndxZHZfaW1tMDYAGAp3cW1sX2ltbTA2ABgKd2RtbF9pbW0wNgAYCndxb3BfaW1tMDYAGAp3ZG9wX2ltbTA2ABgKd3FjbV9pbW0wNgAYCndkZHZfaW1tMDYAGAp3ZGNtX2ltbTA2ABgKam5lZl9pbW0wNgAYCWxkY19pbW0wNgAYBm11bF9yYQAWB3dkY21fcmMADwd3ZGNtX3JiAAsHd2RjbV9yYQAWBnNyd19yYwAPBnNyd19yYgALBnNyd19yYQAWBm11bF9yYwAPBm11bF9yYgALB2xvZ2RfcmEAFgZzcmxfcmMADwZzcmxfcmIACwZzcmxfcmEAFgdsb2dkX3JiAAsHam56aV9yYQAWB3JldGRfcmIACwdyZXRkX3JhABYHd3FtbV9yZAAYB3dxbW1fcmMADwd3cW1tX3JiAAsHd3FtbV9yYQAWBXNiX3JiAAsFc2JfcmEAFgd0aW1lX3JiAAsHdGltZV9yYQAWB3dxbWxfcmMADwd3cW1sX3JiAAsHd3FtbF9yYQAWCnN1YmlfaW1tMTIADAdzdWJpX3JiAAsHc3ViaV9yYQAWBnN1Yl9yYwAPBnN1Yl9yYgALBnN1Yl9yYQAWBm5vdF9yYgALBm5vdF9yYQAWCHNiX2ltbTEyAAwFbGJfcmIACwVsYl9yYQAWB3dxYW1fcmQAGAd3cWFtX3JjAA8Hd3FhbV9yYgALB3dxYW1fcmEAFgdzMjU2X3JjAA8HczI1Nl9yYgALB3MyNTZfcmEAFghsYl9pbW0xMgAMB2RpdmlfcmIACwdkaXZpX3JhABYKbW9kaV9pbW0xMgAMB21vZGlfcmIACwdtb2RpX3JhABYGc3d3X3JjAA8Gc3d3X3JiAAsGc3d3X3JhABYJZ3RmX2ltbTEyAAwGZ3RmX3JiAAsGZ3RmX3JhABYHc3J3cV9yZAAYB3Nyd3FfcmMADwdzcndxX3JiAAsHc3J3cV9yYQAWCmpuemlfaW1tMTgACQdqbXBmX3JhABYHbG9nZF9yYwAPB2syNTZfcmIACwdrMjU2X3JhABYHd2RvcF9yYwAPB3dkb3BfcmIACwd3ZG9wX3JhABYKZGl2aV9pbW0xMgAMB2Nyb29fcmIACwdjcm9vX3JhABYKc2xsaV9pbW0xMgAMB3NsbGlfcmIACwdzbGxpX3JhABYGbW9kX3JjAA8GbW9kX3JiAAsGbW9kX3JhABYKYW5kaV9pbW0xMgAMB2FuZGlfcmIACwdhbmRpX3JhABYHd2RtZF9yZAAYB3dkbWRfcmMADwd3ZG1kX3JiAAsHd2RtZF9yYQAWB21sZHZfcmQAGAdtbGR2X3JjAA8HbWxkdl9yYgALB21sZHZfcmEAFghzd19pbW0xMgAMBXN3X3JiAAsFc3dfcmEAFgdrMjU2X3JjAA8Ham5lYl9yYgALB2puZWJfcmEAFgZ0cm9fcmQAGAZ0cm9fcmMADwZ0cm9fcmIACwZ0cm9fcmEAFglvcmlfaW1tMTIADAZvcmlfcmIACwZvcmlfcmEAFgZzbGxfcmMADwZzbGxfcmIACwZzbGxfcmEAFgd3cWR2X3JjAA8Hd3Fkdl9yYgALB3dxZHZfcmEAFgd3cW1kX3JkABgHd3FtZF9yYwAPB3dxbWRfcmIACwd3cW1kX3JhABYHam5lYl9yYwAPBmpuZV9yYgALBmpuZV9yYQAWB21sb2dfcmMADwdtbG9nX3JiAAsHbWxvZ19yYQAWB21pbnRfcmIACwdtaW50X3JhABYHd3FjbV9yYwAPB3dxY21fcmIACwd3cWNtX3JhABYKbXVsaV9pbW0xMgAMB211bGlfcmIACwdtdWxpX3JhABYKbWNsaV9pbW0xOAAJB21jbGlfcmEAFgpqbmVpX2ltbTEyAAwHam5laV9yYgALB2puZWlfcmEAFgdjc2l6X3JiAAsHY3Npel9yYQAWBXRyX3JjAA8FdHJfcmIACwV0cl9yYQAWB2xvZ2RfcmQAGAZqbmVfcmMADwdibGRkX3JiAAsHYmxkZF9yYQAWCmV4cGlfaW1tMTIADAdleHBpX3JiAAsHZXhwaV9yYQAWCnhvcmlfaW1tMTIADAd4b3JpX3JiAAsHeG9yaV9yYQAWBW9yX3JjAA8Fb3JfcmIACwVvcl9yYQAWB2VjazFfcmMADwdlY2sxX3JiAAsHZWNrMV9yYQAWBm1jbF9yYgALBm1jbF9yYQAWCmpuemZfaW1tMTIADAdqbnpmX3JiAAsHam56Zl9yYQAWB3N3d3FfcmQAGAdzd3dxX3JjAA8Hc3d3cV9yYgALB3N3d3FfcmEAFgVndF9yYwAPBWd0X3JiAAsFZ3RfcmEAFgpqbXBmX2ltbTE4AAkHam1wYl9yYQAWBmRpdl9yYwAPBmRpdl9yYgALBmRpdl9yYQAWB2J1cm5fcmIACwdidXJuX3JhABYTX193YmdfbWF0aGFyZ3NfZnJlZQB7Bnhvcl9yYwAPBnhvcl9yYgALBnhvcl9yYQAWB3dkbWxfcmMADwd3ZG1sX3JiAAsHd2RtbF9yYQAWB2NhbGxfcmQAGAdjYWxsX3JjAA8HY2FsbF9yYgALB2NhbGxfcmEAFgd3ZG1tX3JkABgHd2RtbV9yYwAPB3dkbW1fcmIACwd3ZG1tX3JhABYKbWNwaV9pbW0xMgAMB21jcGlfcmIACwdtY3BpX3JhABYHYmxkZF9yYwAPB2FkZGlfcmIACwdhZGRpX3JhABYKam56Yl9pbW0xMgAMB2puemJfcmIACwdqbnpiX3JhABYHbXJvb19yYwAPB21yb29fcmIACwdtcm9vX3JhABYGZXhwX3JjAA8GZXhwX3JiAAsGZXhwX3JhABYGYmFsX3JjAA8GYmFsX3JiAAsGYmFsX3JhABYHZWQxOV9yZAAYB2VkMTlfcmMADwdlZDE5X3JiAAsHZWQxOV9yYQAWCnNybGlfaW1tMTIADAdzcmxpX3JiAAsHc3JsaV9yYQAWBm1lcV9yZAAYBm1lcV9yYwAPBm1lcV9yYgALBm1lcV9yYQAWB2Joc2hfcmIACwdiaHNoX3JhABYGbGRjX3JjAA8GbGRjX3JiAAsGbGRjX3JhABYHam5lZl9yYwAPB2puZWZfcmIACwdqbmVmX3JhABYHd2RhbV9yZAAYB3dkYW1fcmMADwd3ZGFtX3JiAAsHd2RhbV9yYQAWBm1jcF9yYwAPBm1jcF9yYgALBm1jcF9yYQAWBWx0X3JjAA8FbHRfcmIACwVsdF9yYQAWB3dxb3BfcmMADwd3cW9wX3JiAAsHd3FvcF9yYQAWBmFuZF9yYwAPBmFuZF9yYgALBmFuZF9yYQAWB2JzaXpfcmIACwdic2l6X3JhABYHd2Rkdl9yYwAPB3dkZHZfcmIACwd3ZGR2X3JhABYHZWNhbF9yZAAYB2VjYWxfcmMADwdlY2FsX3JiAAsHZWNhbF9yYQAWB2VjcjFfcmMADwdlY3IxX3JiAAsHZWNyMV9yYQAWCm1vdmlfaW1tMTgA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NgIYIAIgADYCFCACQcCGwAA2AhAgAkHwiMAANgIMIAJBDGoiACgCCCIBRQRAIwBBIGsiACQAIABBDGpCADcCACAAQQE2AgQgAEHwiMAANgIIIABBKzYCHCAAQZiIwAA2AhggACAAQRhqNgIAIABB4IjAABBKAAsgAUEMaigCACECAkACQCABKAIEDgIAAAELIAINAAsgAC0AECEBIAAtABEaQeCJwABB4InAACgCACIAQQFqNgIAAkAgAEEASA0AQayNwAAtAABBAXENAEGsjcAAQQE6AABBqI3AAEGojcAAKAIAQQFqNgIAQdyJwAAoAgBBAEgNAEGsjcAAQQA6AAAgAUUNAAALAAs1AQF/IAEQxgEgASgCACICQX9GBEAQ0AEACyABIAJBAWo2AgAgACABNgIEIAAgAUEEajYCAAsxAQF/IAEoAgAiAkF/RwRAIAEgAkEBajYCACAAIAE2AgQgACABQQRqNgIADwsQ0AEACzUBAX8gAEE5TwRAQeCCwABBGRDUAQALQQxBBBC8ASICIAA6AAggAiABNgIEIAJBADYCACACCzAAIAAQUiABEFIgAhBSIAMQUhASIQBBCEEEELwBIgEgAK1C////B4NCIIY3AgAgAQstACAAEMYBIAAoAgBBf0YEQBDQAQALIAAvAAQgAEEGai0AAEEQdHIQygEQvQELLAAgABBSIAEQUiACEFIQKyEAQQhBBBC8ASIBIACtQv///weDQiCGNwIAIAELLAAgABBSIAEQUiACEFMQOSEAQQhBBBC8ASIBIACtQv///weDQiCGNwIAIAELJQEBfwJAIAAEQCAAKAIADQEgAC0ABCAAEAQPCxDPAQALENABAAslAQF/AkAgAARAIAAoAgANASAALwEEIAAQBA8LEM8BAAsQ0AEACyUBAX8CQCAABEAgACgCAA0BIAAoAgQgABAEDwsQzwEACxDQAQALKAAgASgCAEUEQCABQX82AgAgACABNgIEIAAgAUEEajYCAA8LENABAAspACADED4hAyAAEL8BIAEQvwEgAhC/ASADEMQBQQh0QeQAchDHARC+AQspACADED4hAyAAEL8BIAEQvwEgAhC/ASADEMQBQQh0QeUAchDHARC+AQslAQF/IAAQUiEAQQhBBBC8ASIBIABBAnRB/AFxrUIghjcCACABCyAAIABBAWsiAEEFTQRAIABBAWoPC0HggsAAQRkQ1AEACyABAX8gABDGASAAKAIABEAQ0AEACyAAKAIEIAAQBBAECyMAIAIQBSECIAAQvwEgARC/ASACEDlBCHRBygByEMcBEL4BCx4AAkAgAARAIAAoAgANASAAEAQPCxDPAQALENABAAsPACAAIAEgAiADQRIQ8AELDwAgACABIAIgA0EYEPABCw8AIAAgASACIANBHBDwAQsPACAAIAEgAiADQR0Q8AELDwAgACABIAIgA0EhEPEBCw8AIAAgASACIANBIhDwAQsPACAAIAEgAiADQSMQ8AELDwAgACABIAIgA0EoEPABCw8AIAAgASACIANBKhDwAQsPACAAIAEgAiADQSwQ8AELDwAgACABIAIgA0EvEPABCw8AIAAgASACIANBOBDwAQsQACAAIAEgAiADQdMAEPEBCxAAIAAgASACIANB1AAQ8QELEAAgACABIAIgA0HeABDxAQsQACAAIAEgAiADQd8AEPEBCxAAIAAgASACIANB4AAQ8QELEAAgACABIAIgA0HhABDxAQsQACAAIAEgAiADQeIAEPEBCxAAIAAgASACIANB4wAQ8QELEAAgACABIAIgA0HkABDxAQsQACAAIAEgAiADQeUAEPEBCxAAIAAgASACIANB5gAQ8AELEAAgACABIAIgA0HnABDwAQsQACAAIAEgAiADQegAEPABCxAAIAAgASACIANB6QAQ8AELEAAgACABIAIgA0HqABDwAQsQACAAIAEgAiADQesAEPABCxAAIAAgASACIANB7AAQ8AELEAAgACABIAIgA0HuABDwAQsdAQF/IwBBEGsiASQAIAFBCGogABAdIAFBEGokAAsdAQF/IwBBEGsiASQAIAFBCGogABATIAFBEGokAAsfACABEFkhASAAEL8BIAEQuQFBCHRBzAByEMcBEL4BCxkAIAAgASACQSBBACAEG0EQQQAgAxtyEBILDQAgACABIAJBARDyAQsNACAAIAEgAkECEPIBCw0AIAAgASACQQMQ8gELDQAgACABIAJBBBDyAQsNACAAIAEgAkEFEPIBCw0AIAAgASACQQYQ8gELDQAgACABIAJBBxDyAQsNACAAIAEgAkEIEPIBCw0AIAAgASACQQkQ8gELDQAgACABIAJBCxDyAQsNACAAIAEgAkENEPIBCw0AIAAgASACQQ4Q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ZGlhdGUAAABIABAABwAAAE8AEAAiAAAAIgAQABMAAACuAwAAHAAAAGAgb3V0IG9mIHJhbmdlIGZvciAxMi1iaXQgaW1tZWRpYXRlAEgAEAAHAAAAlAAQACMAAAAiABAAEwAAALMDAAAcAAAAYCBvdXQgb2YgcmFuZ2UgZm9yIDE4LWJpdCBpbW1lZGlhdGUASAAQAAcAAADYABAAIwAAACIAEAATAAAAuAMAABwAAABgIG91dCBvZiByYW5nZSBmb3IgMjQtYml0IGltbWVkaWF0ZQBIABAABwAAABwBEAAjAAAAIgAQABMAAAC9AwAAHAAAAGludmFsaWQgZW51bSB2YWx1ZSBwYXNzZWQAAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAJAAAACUAAAAmAAAAJwAAACgAAAApAAAAKgAAACsAAAAsAAAALQAAAC4AAAAvAAAAMAAAADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADoAAAA7AAAAPAAAAD0AAAA+AAAAPwAAAEAAAABBAAAAQgAAAEMAAABHAAAASAAAAEkAAABKAAAASwAAAEwAAABQAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAABZAAAAWgAAAFsAAABcAAAAXQAAAF4AAABfAAAAYAAAAGEAAABwAAAAcQAAAHIAAABzAAAAdAAAAHUAAAB2AAAAdwAAAHgAAAB5AAAAkAAAAJEAAACSAAAAkwAAAJQAAACVAAAAlgAAAJcAAACYAAAAoAAAAKEAAACiAAAAowAAAKQAAAClAAAApgAAAKcAAACoAAAAqQAAAKoAAACrAAAArAAAAK0AAACwAAAAugAAALsAAABwBBAAAAAAAAUAAAAAAAAAAQAAAAYAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OWNhbGxlZCBgT3B0aW9uOjp1bndyYXAoKWAgb24gYSBgTm9uZWAgdmFsdWVsaWJyYXJ5L3N0ZC9zcmMvcGFuaWNraW5nLnJzAEMEEAAcAAAAhAIAAB4AAABudWxsIHBvaW50ZXIgcGFzc2VkIHRvIHJ1c3RyZWN1cnNpdmUgdXNlIG9mIGFuIG9iamVjdCBkZXRlY3RlZCB3aGljaCB3b3VsZCBsZWFkIHRvIHVuc2FmZSBhbGlhc2luZyBpbiBydXN0ADsJcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkCBndhbHJ1cwYwLjIwLjMMd2FzbS1iaW5kZ2VuBjAuMi45Mg==", imports);
|
28384
28541
|
}
|
28385
28542
|
async function initWasm2() {
|
28386
28543
|
return await __wbg_init(wasm());
|
@@ -28394,6 +28551,8 @@ spurious results.`);
|
|
28394
28551
|
exports.BAL = BAL;
|
28395
28552
|
exports.BHEI = BHEI;
|
28396
28553
|
exports.BHSH = BHSH;
|
28554
|
+
exports.BLDD = BLDD;
|
28555
|
+
exports.BSIZ = BSIZ;
|
28397
28556
|
exports.BURN = BURN;
|
28398
28557
|
exports.CALL = CALL;
|
28399
28558
|
exports.CB = CB;
|
@@ -28519,6 +28678,8 @@ spurious results.`);
|
|
28519
28678
|
exports.bal = bal;
|
28520
28679
|
exports.bhei = bhei;
|
28521
28680
|
exports.bhsh = bhsh;
|
28681
|
+
exports.bldd = bldd;
|
28682
|
+
exports.bsiz = bsiz;
|
28522
28683
|
exports.burn = burn;
|
28523
28684
|
exports.call = call;
|
28524
28685
|
exports.cb = cb;
|
@@ -28638,9 +28799,9 @@ spurious results.`);
|
|
28638
28799
|
// ../versions/dist/index.mjs
|
28639
28800
|
function getBuiltinVersions() {
|
28640
28801
|
return {
|
28641
|
-
FORC: "0.
|
28642
|
-
FUEL_CORE: "0.
|
28643
|
-
FUELS: "0.
|
28802
|
+
FORC: "0.63.1",
|
28803
|
+
FUEL_CORE: "0.33.0",
|
28804
|
+
FUELS: "0.94.0"
|
28644
28805
|
};
|
28645
28806
|
}
|
28646
28807
|
function parseVersion(version) {
|
@@ -28711,6 +28872,10 @@ This unreleased fuel-core build may include features and updates not yet support
|
|
28711
28872
|
ErrorCode2["INVALID_DATA"] = "invalid-data";
|
28712
28873
|
ErrorCode2["FUNCTION_NOT_FOUND"] = "function-not-found";
|
28713
28874
|
ErrorCode2["UNSUPPORTED_ENCODING_VERSION"] = "unsupported-encoding-version";
|
28875
|
+
ErrorCode2["TIMEOUT_EXCEEDED"] = "timeout-exceeded";
|
28876
|
+
ErrorCode2["CONFIG_FILE_NOT_FOUND"] = "config-file-not-found";
|
28877
|
+
ErrorCode2["CONFIG_FILE_ALREADY_EXISTS"] = "config-file-already-exists";
|
28878
|
+
ErrorCode2["WORKSPACE_NOT_DETECTED"] = "workspace-not-detected";
|
28714
28879
|
ErrorCode2["INVALID_BECH32_ADDRESS"] = "invalid-bech32-address";
|
28715
28880
|
ErrorCode2["INVALID_EVM_ADDRESS"] = "invalid-evm-address";
|
28716
28881
|
ErrorCode2["INVALID_B256_ADDRESS"] = "invalid-b256-address";
|
@@ -28736,6 +28901,7 @@ This unreleased fuel-core build may include features and updates not yet support
|
|
28736
28901
|
ErrorCode2["MISSING_REQUIRED_PARAMETER"] = "missing-required-parameter";
|
28737
28902
|
ErrorCode2["INVALID_REQUEST"] = "invalid-request";
|
28738
28903
|
ErrorCode2["INVALID_TRANSFER_AMOUNT"] = "invalid-transfer-amount";
|
28904
|
+
ErrorCode2["NOT_ENOUGH_FUNDS"] = "not-enough-funds";
|
28739
28905
|
ErrorCode2["INVALID_CREDENTIALS"] = "invalid-credentials";
|
28740
28906
|
ErrorCode2["HASHER_LOCKED"] = "hasher-locked";
|
28741
28907
|
ErrorCode2["GAS_PRICE_TOO_LOW"] = "gas-price-too-low";
|
@@ -28747,11 +28913,16 @@ This unreleased fuel-core build may include features and updates not yet support
|
|
28747
28913
|
ErrorCode2["INVALID_TRANSACTION_INPUT"] = "invalid-transaction-input";
|
28748
28914
|
ErrorCode2["INVALID_TRANSACTION_OUTPUT"] = "invalid-transaction-output";
|
28749
28915
|
ErrorCode2["INVALID_TRANSACTION_STATUS"] = "invalid-transaction-status";
|
28750
|
-
ErrorCode2["
|
28916
|
+
ErrorCode2["UNSUPPORTED_TRANSACTION_TYPE"] = "unsupported-transaction-type";
|
28751
28917
|
ErrorCode2["TRANSACTION_ERROR"] = "transaction-error";
|
28752
28918
|
ErrorCode2["INVALID_POLICY_TYPE"] = "invalid-policy-type";
|
28753
28919
|
ErrorCode2["DUPLICATED_POLICY"] = "duplicated-policy";
|
28754
28920
|
ErrorCode2["TRANSACTION_SQUEEZED_OUT"] = "transaction-squeezed-out";
|
28921
|
+
ErrorCode2["CONTRACT_SIZE_EXCEEDS_LIMIT"] = "contract-size-exceeds-limit";
|
28922
|
+
ErrorCode2["INVALID_CHUNK_SIZE_MULTIPLIER"] = "invalid-chunk-size-multiplier";
|
28923
|
+
ErrorCode2["MAX_INPUTS_EXCEEDED"] = "max-inputs-exceeded";
|
28924
|
+
ErrorCode2["FUNDS_TOO_LOW"] = "funds-too-low";
|
28925
|
+
ErrorCode2["MAX_OUTPUTS_EXCEEDED"] = "max-outputs-exceeded";
|
28755
28926
|
ErrorCode2["INVALID_RECEIPT_TYPE"] = "invalid-receipt-type";
|
28756
28927
|
ErrorCode2["INVALID_WORD_LIST"] = "invalid-word-list";
|
28757
28928
|
ErrorCode2["INVALID_MNEMONIC"] = "invalid-mnemonic";
|
@@ -29334,6 +29505,9 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
29334
29505
|
function toUtf8String(bytes3) {
|
29335
29506
|
return helper(getUtf8CodePoints(bytes3));
|
29336
29507
|
}
|
29508
|
+
function assertUnreachable(_x) {
|
29509
|
+
throw new Error("Didn't expect to get here");
|
29510
|
+
}
|
29337
29511
|
|
29338
29512
|
// ../../node_modules/.pnpm/@noble+hashes@1.3.3/node_modules/@noble/hashes/esm/_assert.js
|
29339
29513
|
function number(n) {
|
@@ -29687,16 +29861,16 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
29687
29861
|
this.blockLen = this.iHash.blockLen;
|
29688
29862
|
this.outputLen = this.iHash.outputLen;
|
29689
29863
|
const blockLen = this.blockLen;
|
29690
|
-
const
|
29691
|
-
|
29692
|
-
for (let i = 0; i <
|
29693
|
-
|
29694
|
-
this.iHash.update(
|
29864
|
+
const pad = new Uint8Array(blockLen);
|
29865
|
+
pad.set(key.length > blockLen ? hash4.create().update(key).digest() : key);
|
29866
|
+
for (let i = 0; i < pad.length; i++)
|
29867
|
+
pad[i] ^= 54;
|
29868
|
+
this.iHash.update(pad);
|
29695
29869
|
this.oHash = hash4.create();
|
29696
|
-
for (let i = 0; i <
|
29697
|
-
|
29698
|
-
this.oHash.update(
|
29699
|
-
|
29870
|
+
for (let i = 0; i < pad.length; i++)
|
29871
|
+
pad[i] ^= 54 ^ 92;
|
29872
|
+
this.oHash.update(pad);
|
29873
|
+
pad.fill(0);
|
29700
29874
|
}
|
29701
29875
|
update(buf) {
|
29702
29876
|
exists(this);
|
@@ -30241,6 +30415,7 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
30241
30415
|
var import_crypto3 = __toESM(__require("crypto"), 1);
|
30242
30416
|
var import_crypto4 = __toESM(__require("crypto"), 1);
|
30243
30417
|
var import_crypto5 = __require("crypto");
|
30418
|
+
var import_crypto6 = __require("crypto");
|
30244
30419
|
var scrypt2 = (params) => {
|
30245
30420
|
const { password, salt, n, p, r, dklen } = params;
|
30246
30421
|
const derivedKey = scrypt(password, salt, { N: n, r, p, dkLen: dklen });
|
@@ -30354,6 +30529,7 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
30354
30529
|
computeHMAC = func;
|
30355
30530
|
};
|
30356
30531
|
Object.freeze(computeHmac);
|
30532
|
+
var randomUUID = () => (0, import_crypto6.randomUUID)();
|
30357
30533
|
var api = {
|
30358
30534
|
bufferFromString,
|
30359
30535
|
stringFromBuffer,
|
@@ -30367,7 +30543,8 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
30367
30543
|
encryptJsonWalletData,
|
30368
30544
|
computeHmac,
|
30369
30545
|
pbkdf2: pbkdf22,
|
30370
|
-
ripemd160: ripemd1602
|
30546
|
+
ripemd160: ripemd1602,
|
30547
|
+
randomUUID
|
30371
30548
|
};
|
30372
30549
|
var node_default = api;
|
30373
30550
|
var {
|
@@ -30383,7 +30560,8 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
30383
30560
|
encryptJsonWalletData: encryptJsonWalletData2,
|
30384
30561
|
computeHmac: computeHmac2,
|
30385
30562
|
pbkdf2: pbkdf222,
|
30386
|
-
ripemd160: ripemd16022
|
30563
|
+
ripemd160: ripemd16022,
|
30564
|
+
randomUUID: randomUUID2
|
30387
30565
|
} = node_default;
|
30388
30566
|
|
30389
30567
|
// ../hasher/dist/index.mjs
|
@@ -30430,18 +30608,21 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
30430
30608
|
var RAW_SLICE_CODER_TYPE = "raw untyped slice";
|
30431
30609
|
var BOOL_CODER_TYPE = "bool";
|
30432
30610
|
var B256_CODER_TYPE = "b256";
|
30433
|
-
var B512_CODER_TYPE = "struct B512";
|
30434
|
-
var OPTION_CODER_TYPE = "enum Option";
|
30435
|
-
var VEC_CODER_TYPE = "struct Vec";
|
30436
|
-
var BYTES_CODER_TYPE = "struct Bytes";
|
30437
|
-
var STD_STRING_CODER_TYPE = "struct String";
|
30611
|
+
var B512_CODER_TYPE = "struct std::b512::B512";
|
30612
|
+
var OPTION_CODER_TYPE = "enum std::option::Option";
|
30613
|
+
var VEC_CODER_TYPE = "struct std::vec::Vec";
|
30614
|
+
var BYTES_CODER_TYPE = "struct std::bytes::Bytes";
|
30615
|
+
var STD_STRING_CODER_TYPE = "struct std::string::String";
|
30438
30616
|
var STR_SLICE_CODER_TYPE = "str";
|
30617
|
+
var VOID_TYPE = "()";
|
30618
|
+
var optionRegEx = /^enum (std::option::)?Option$/m;
|
30439
30619
|
var stringRegEx = /str\[(?<length>[0-9]+)\]/;
|
30440
30620
|
var arrayRegEx = /\[(?<item>[\w\s\\[\]]+);\s*(?<length>[0-9]+)\]/;
|
30441
|
-
var structRegEx =
|
30442
|
-
var enumRegEx = /^enum
|
30621
|
+
var structRegEx = /struct.+/;
|
30622
|
+
var enumRegEx = /^enum.+$/;
|
30443
30623
|
var tupleRegEx = /^\((?<items>.*)\)$/;
|
30444
|
-
var genericRegEx = /^generic
|
30624
|
+
var genericRegEx = /^generic.+$/;
|
30625
|
+
var fullNameRegExMatch = /([^\s]+)$/m;
|
30445
30626
|
var ENCODING_V1 = "1";
|
30446
30627
|
var WORD_SIZE = 8;
|
30447
30628
|
var BYTES_32 = 32;
|
@@ -30695,16 +30876,11 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
30695
30876
|
this.coders = coders;
|
30696
30877
|
this.#caseIndexCoder = caseIndexCoder;
|
30697
30878
|
this.#encodedValueSize = encodedValueSize;
|
30698
|
-
this.#shouldValidateLength = !(this.type
|
30879
|
+
this.#shouldValidateLength = !(optionRegEx.test(this.type) || hasNestedOption(coders));
|
30699
30880
|
}
|
30700
|
-
//
|
30701
|
-
// The '()' is enough but the child coders is a stricter check.
|
30881
|
+
// Checks that we're handling a native enum that is of type void.
|
30702
30882
|
#isNativeEnum(coder) {
|
30703
|
-
|
30704
|
-
const tupleCoder = coder;
|
30705
|
-
return tupleCoder.coders.length === 0;
|
30706
|
-
}
|
30707
|
-
return false;
|
30883
|
+
return this.type !== OPTION_CODER_TYPE && coder.type === VOID_TYPE;
|
30708
30884
|
}
|
30709
30885
|
#encodeNativeEnum(value) {
|
30710
30886
|
const valueCoder = this.coders[value];
|
@@ -31059,16 +31235,6 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31059
31235
|
);
|
31060
31236
|
}
|
31061
31237
|
};
|
31062
|
-
var findFunctionByName = (abi, name) => {
|
31063
|
-
const fn = abi.functions.find((f2) => f2.name === name);
|
31064
|
-
if (!fn) {
|
31065
|
-
throw new FuelError(
|
31066
|
-
ErrorCode.FUNCTION_NOT_FOUND,
|
31067
|
-
`Function with name '${name}' doesn't exist in the ABI`
|
31068
|
-
);
|
31069
|
-
}
|
31070
|
-
return fn;
|
31071
|
-
};
|
31072
31238
|
var findTypeById = (abi, typeId) => {
|
31073
31239
|
const type3 = abi.types.find((t) => t.typeId === typeId);
|
31074
31240
|
if (!type3) {
|
@@ -31079,7 +31245,7 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31079
31245
|
}
|
31080
31246
|
return type3;
|
31081
31247
|
};
|
31082
|
-
var
|
31248
|
+
var findNonVoidInputs = (abi, inputs) => inputs.filter((input) => findTypeById(abi, input.type).type !== VOID_TYPE);
|
31083
31249
|
var findVectorBufferArgument = (components) => {
|
31084
31250
|
const bufferComponent = components.find((c) => c.name === "buf");
|
31085
31251
|
const bufferTypeArgument = bufferComponent?.originalTypeArguments?.[0];
|
@@ -31230,6 +31396,17 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31230
31396
|
return `${typeArgumentsSignature}${componentsSignature}`;
|
31231
31397
|
}
|
31232
31398
|
};
|
31399
|
+
var VoidCoder = class extends Coder {
|
31400
|
+
constructor() {
|
31401
|
+
super("void", VOID_TYPE, 0);
|
31402
|
+
}
|
31403
|
+
encode(_value) {
|
31404
|
+
return new Uint8Array([]);
|
31405
|
+
}
|
31406
|
+
decode(_data, offset) {
|
31407
|
+
return [void 0, offset];
|
31408
|
+
}
|
31409
|
+
};
|
31233
31410
|
function getCoders(components, options) {
|
31234
31411
|
const { getCoder: getCoder2 } = options;
|
31235
31412
|
return components.reduce((obj, component) => {
|
@@ -31263,6 +31440,8 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31263
31440
|
return new StdStringCoder();
|
31264
31441
|
case STR_SLICE_CODER_TYPE:
|
31265
31442
|
return new StrSliceCoder();
|
31443
|
+
case VOID_TYPE:
|
31444
|
+
return new VoidCoder();
|
31266
31445
|
default:
|
31267
31446
|
break;
|
31268
31447
|
}
|
@@ -31291,19 +31470,20 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31291
31470
|
const itemCoder = getCoder(argType, { encoding: ENCODING_V1 });
|
31292
31471
|
return new VecCoder(itemCoder);
|
31293
31472
|
}
|
31294
|
-
const
|
31295
|
-
|
31473
|
+
const coderName = resolvedAbiType.type.match(fullNameRegExMatch)?.[0];
|
31474
|
+
const structMatch = structRegEx.test(resolvedAbiType.type);
|
31475
|
+
if (structMatch && coderName) {
|
31296
31476
|
const coders = getCoders(components, { getCoder });
|
31297
|
-
return new StructCoder(
|
31477
|
+
return new StructCoder(coderName, coders);
|
31298
31478
|
}
|
31299
|
-
const enumMatch = enumRegEx.
|
31300
|
-
if (enumMatch) {
|
31479
|
+
const enumMatch = enumRegEx.test(resolvedAbiType.type);
|
31480
|
+
if (enumMatch && coderName) {
|
31301
31481
|
const coders = getCoders(components, { getCoder });
|
31302
31482
|
const isOptionEnum = resolvedAbiType.type === OPTION_CODER_TYPE;
|
31303
31483
|
if (isOptionEnum) {
|
31304
|
-
return new OptionCoder(
|
31484
|
+
return new OptionCoder(coderName, coders);
|
31305
31485
|
}
|
31306
|
-
return new EnumCoder(
|
31486
|
+
return new EnumCoder(coderName, coders);
|
31307
31487
|
}
|
31308
31488
|
const tupleMatch = tupleRegEx.exec(resolvedAbiType.type)?.groups;
|
31309
31489
|
if (tupleMatch) {
|
@@ -31340,6 +31520,24 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31340
31520
|
return this.getCoder(abi, argument, options).decode(data, offset);
|
31341
31521
|
}
|
31342
31522
|
};
|
31523
|
+
var getFunctionInputs = (params) => {
|
31524
|
+
const { jsonAbi, inputs } = params;
|
31525
|
+
let isMandatory = false;
|
31526
|
+
return inputs.reduceRight((result, input) => {
|
31527
|
+
const type3 = findTypeById(jsonAbi, input.type);
|
31528
|
+
isMandatory = isMandatory || type3.type !== VOID_TYPE && !optionRegEx.test(type3.type);
|
31529
|
+
return [{ ...input, isOptional: !isMandatory }, ...result];
|
31530
|
+
}, []);
|
31531
|
+
};
|
31532
|
+
var padValuesWithUndefined = (values, inputs) => {
|
31533
|
+
if (values.length >= inputs.length) {
|
31534
|
+
return values;
|
31535
|
+
}
|
31536
|
+
const paddedValues = values.slice();
|
31537
|
+
paddedValues.length = inputs.length;
|
31538
|
+
paddedValues.fill(void 0, values.length);
|
31539
|
+
return paddedValues;
|
31540
|
+
};
|
31343
31541
|
var FunctionFragment = class {
|
31344
31542
|
signature;
|
31345
31543
|
selector;
|
@@ -31348,14 +31546,16 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31348
31546
|
name;
|
31349
31547
|
jsonFn;
|
31350
31548
|
attributes;
|
31351
|
-
|
31352
|
-
|
31353
|
-
|
31354
|
-
this.jsonFn =
|
31355
|
-
this.
|
31356
|
-
this.
|
31549
|
+
jsonAbiOld;
|
31550
|
+
jsonFnOld;
|
31551
|
+
constructor(jsonAbi, fn) {
|
31552
|
+
this.jsonFn = fn;
|
31553
|
+
this.jsonAbiOld = jsonAbi;
|
31554
|
+
this.jsonFnOld = jsonAbi.functions.find((f2) => f2.name === fn.name);
|
31555
|
+
this.name = fn.name;
|
31556
|
+
this.signature = FunctionFragment.getSignature(this.jsonAbiOld, this.jsonFnOld);
|
31357
31557
|
this.selector = FunctionFragment.getFunctionSelector(this.signature);
|
31358
|
-
this.selectorBytes = new StdStringCoder().encode(name);
|
31558
|
+
this.selectorBytes = new StdStringCoder().encode(this.name);
|
31359
31559
|
this.encoding = getEncodingVersion(jsonAbi.encoding);
|
31360
31560
|
this.attributes = this.jsonFn.attributes ?? [];
|
31361
31561
|
}
|
@@ -31370,41 +31570,26 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31370
31570
|
return bn(hashedFunctionSignature.slice(0, 10)).toHex(8);
|
31371
31571
|
}
|
31372
31572
|
encodeArguments(values) {
|
31373
|
-
|
31374
|
-
const
|
31375
|
-
|
31376
|
-
|
31377
|
-
|
31378
|
-
|
31379
|
-
|
31380
|
-
|
31381
|
-
|
31573
|
+
const inputs = getFunctionInputs({ jsonAbi: this.jsonAbiOld, inputs: this.jsonFnOld.inputs });
|
31574
|
+
const mandatoryInputLength = inputs.filter((i) => !i.isOptional).length;
|
31575
|
+
if (values.length < mandatoryInputLength) {
|
31576
|
+
throw new FuelError(
|
31577
|
+
ErrorCode.ABI_TYPES_AND_VALUES_MISMATCH,
|
31578
|
+
`Invalid number of arguments. Expected a minimum of ${mandatoryInputLength} arguments, received ${values.length}`
|
31579
|
+
);
|
31580
|
+
}
|
31581
|
+
const coders = this.jsonFnOld.inputs.map(
|
31582
|
+
(t) => AbiCoder.getCoder(this.jsonAbiOld, t, {
|
31382
31583
|
encoding: this.encoding
|
31383
31584
|
})
|
31384
31585
|
);
|
31385
|
-
|
31386
|
-
|
31387
|
-
static verifyArgsAndInputsAlign(args, inputs, abi) {
|
31388
|
-
if (args.length === inputs.length) {
|
31389
|
-
return;
|
31390
|
-
}
|
31391
|
-
const inputTypes = inputs.map((input) => findTypeById(abi, input.type));
|
31392
|
-
const optionalInputs = inputTypes.filter(
|
31393
|
-
(x) => x.type === OPTION_CODER_TYPE || x.type === "()"
|
31394
|
-
);
|
31395
|
-
if (optionalInputs.length === inputTypes.length) {
|
31396
|
-
return;
|
31397
|
-
}
|
31398
|
-
if (inputTypes.length - optionalInputs.length === args.length) {
|
31399
|
-
return;
|
31400
|
-
}
|
31401
|
-
const errorMsg = `Mismatch between provided arguments and expected ABI inputs. Provided ${args.length} arguments, but expected ${inputs.length - optionalInputs.length} (excluding ${optionalInputs.length} optional inputs).`;
|
31402
|
-
throw new FuelError(ErrorCode.ABI_TYPES_AND_VALUES_MISMATCH, errorMsg);
|
31586
|
+
const argumentValues = padValuesWithUndefined(values, this.jsonFn.inputs);
|
31587
|
+
return new TupleCoder(coders).encode(argumentValues);
|
31403
31588
|
}
|
31404
31589
|
decodeArguments(data) {
|
31405
31590
|
const bytes3 = arrayify(data);
|
31406
|
-
const
|
31407
|
-
if (
|
31591
|
+
const nonVoidInputs = findNonVoidInputs(this.jsonAbiOld, this.jsonFnOld.inputs);
|
31592
|
+
if (nonVoidInputs.length === 0) {
|
31408
31593
|
if (bytes3.length === 0) {
|
31409
31594
|
return void 0;
|
31410
31595
|
}
|
@@ -31413,20 +31598,20 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31413
31598
|
`Types/values length mismatch during decode. ${JSON.stringify({
|
31414
31599
|
count: {
|
31415
31600
|
types: this.jsonFn.inputs.length,
|
31416
|
-
|
31601
|
+
nonVoidInputs: nonVoidInputs.length,
|
31417
31602
|
values: bytes3.length
|
31418
31603
|
},
|
31419
31604
|
value: {
|
31420
31605
|
args: this.jsonFn.inputs,
|
31421
|
-
|
31606
|
+
nonVoidInputs,
|
31422
31607
|
values: bytes3
|
31423
31608
|
}
|
31424
31609
|
})}`
|
31425
31610
|
);
|
31426
31611
|
}
|
31427
|
-
const result =
|
31612
|
+
const result = this.jsonFnOld.inputs.reduce(
|
31428
31613
|
(obj, input) => {
|
31429
|
-
const coder = AbiCoder.getCoder(this.
|
31614
|
+
const coder = AbiCoder.getCoder(this.jsonAbiOld, input, { encoding: this.encoding });
|
31430
31615
|
const [decodedValue, decodedValueByteSize] = coder.decode(bytes3, obj.offset);
|
31431
31616
|
return {
|
31432
31617
|
decoded: [...obj.decoded, decodedValue],
|
@@ -31438,12 +31623,8 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31438
31623
|
return result.decoded;
|
31439
31624
|
}
|
31440
31625
|
decodeOutput(data) {
|
31441
|
-
const outputAbiType = findTypeById(this.jsonAbi, this.jsonFn.output.type);
|
31442
|
-
if (outputAbiType.type === "()") {
|
31443
|
-
return [void 0, 0];
|
31444
|
-
}
|
31445
31626
|
const bytes3 = arrayify(data);
|
31446
|
-
const coder = AbiCoder.getCoder(this.
|
31627
|
+
const coder = AbiCoder.getCoder(this.jsonAbiOld, this.jsonFnOld.output, {
|
31447
31628
|
encoding: this.encoding
|
31448
31629
|
});
|
31449
31630
|
return coder.decode(bytes3, 0);
|
@@ -31455,19 +31636,119 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31455
31636
|
*/
|
31456
31637
|
isReadOnly() {
|
31457
31638
|
const storageAttribute = this.attributes.find((attr) => attr.name === "storage");
|
31458
|
-
return !storageAttribute?.arguments
|
31639
|
+
return !storageAttribute?.arguments?.includes("write");
|
31459
31640
|
}
|
31460
31641
|
};
|
31642
|
+
var findTypeByConcreteId = (types, id) => types.find((x) => x.concreteTypeId === id);
|
31643
|
+
var findConcreteTypeById = (abi, id) => abi.concreteTypes.find((x) => x.concreteTypeId === id);
|
31644
|
+
function finsertTypeIdByConcreteTypeId(abi, types, id) {
|
31645
|
+
const concreteType = findConcreteTypeById(abi, id);
|
31646
|
+
if (concreteType.metadataTypeId !== void 0) {
|
31647
|
+
return concreteType.metadataTypeId;
|
31648
|
+
}
|
31649
|
+
const type3 = findTypeByConcreteId(types, id);
|
31650
|
+
if (type3) {
|
31651
|
+
return type3.typeId;
|
31652
|
+
}
|
31653
|
+
types.push({
|
31654
|
+
typeId: types.length,
|
31655
|
+
type: concreteType.type,
|
31656
|
+
components: parseComponents(concreteType.components),
|
31657
|
+
concreteTypeId: id,
|
31658
|
+
typeParameters: concreteType.typeParameters ?? null,
|
31659
|
+
originalConcreteTypeId: concreteType?.concreteTypeId
|
31660
|
+
});
|
31661
|
+
return types.length - 1;
|
31662
|
+
}
|
31663
|
+
function parseFunctionTypeArguments(abi, types, concreteType) {
|
31664
|
+
return concreteType.typeArguments?.map((cTypeId) => {
|
31665
|
+
const self = findConcreteTypeById(abi, cTypeId);
|
31666
|
+
const type3 = !isNaN(cTypeId) ? cTypeId : finsertTypeIdByConcreteTypeId(abi, types, cTypeId);
|
31667
|
+
return {
|
31668
|
+
name: "",
|
31669
|
+
type: type3,
|
31670
|
+
// originalTypeId: cTypeId,
|
31671
|
+
typeArguments: parseFunctionTypeArguments(abi, types, self)
|
31672
|
+
};
|
31673
|
+
}) ?? null;
|
31674
|
+
}
|
31675
|
+
function parseConcreteType(abi, types, concreteTypeId, name) {
|
31676
|
+
const type3 = finsertTypeIdByConcreteTypeId(abi, types, concreteTypeId);
|
31677
|
+
const concrete = findConcreteTypeById(abi, concreteTypeId);
|
31678
|
+
return {
|
31679
|
+
name: name ?? "",
|
31680
|
+
type: type3,
|
31681
|
+
// concreteTypeId,
|
31682
|
+
typeArguments: parseFunctionTypeArguments(abi, types, concrete)
|
31683
|
+
};
|
31684
|
+
}
|
31685
|
+
function parseComponents(abi, types, components) {
|
31686
|
+
return components?.map((component) => {
|
31687
|
+
const { typeId, name, typeArguments } = component;
|
31688
|
+
const type3 = !isNaN(typeId) ? typeId : finsertTypeIdByConcreteTypeId(abi, types, typeId);
|
31689
|
+
return {
|
31690
|
+
name,
|
31691
|
+
type: type3,
|
31692
|
+
// originalTypeId: typeId,
|
31693
|
+
typeArguments: parseComponents(abi, types, typeArguments)
|
31694
|
+
};
|
31695
|
+
}) ?? null;
|
31696
|
+
}
|
31697
|
+
function transpileAbi(abi) {
|
31698
|
+
if (!abi.specVersion) {
|
31699
|
+
return abi;
|
31700
|
+
}
|
31701
|
+
const types = [];
|
31702
|
+
abi.metadataTypes.forEach((m) => {
|
31703
|
+
const t = {
|
31704
|
+
typeId: m.metadataTypeId,
|
31705
|
+
type: m.type,
|
31706
|
+
components: m.components ?? (m.type === "()" ? [] : null),
|
31707
|
+
typeParameters: m.typeParameters ?? null
|
31708
|
+
};
|
31709
|
+
types.push(t);
|
31710
|
+
});
|
31711
|
+
types.forEach((t) => {
|
31712
|
+
t.components = parseComponents(abi, types, t.components);
|
31713
|
+
});
|
31714
|
+
const functions = abi.functions.map((fn) => {
|
31715
|
+
const inputs = fn.inputs.map(
|
31716
|
+
({ concreteTypeId, name }) => parseConcreteType(abi, types, concreteTypeId, name)
|
31717
|
+
);
|
31718
|
+
const output3 = parseConcreteType(abi, types, fn.output, "");
|
31719
|
+
return { ...fn, inputs, output: output3 };
|
31720
|
+
});
|
31721
|
+
const configurables = abi.configurables.map((conf) => ({
|
31722
|
+
name: conf.name,
|
31723
|
+
configurableType: parseConcreteType(abi, types, conf.concreteTypeId),
|
31724
|
+
offset: conf.offset
|
31725
|
+
}));
|
31726
|
+
const loggedTypes = abi.loggedTypes.map((log) => ({
|
31727
|
+
logId: log.logId,
|
31728
|
+
loggedType: parseConcreteType(abi, types, log.concreteTypeId)
|
31729
|
+
}));
|
31730
|
+
const transpiled = {
|
31731
|
+
encoding: abi.encodingVersion,
|
31732
|
+
types,
|
31733
|
+
functions,
|
31734
|
+
loggedTypes,
|
31735
|
+
messagesTypes: abi.messagesTypes,
|
31736
|
+
configurables
|
31737
|
+
};
|
31738
|
+
return transpiled;
|
31739
|
+
}
|
31461
31740
|
var Interface = class {
|
31462
31741
|
functions;
|
31463
31742
|
configurables;
|
31464
31743
|
jsonAbi;
|
31465
31744
|
encoding;
|
31745
|
+
jsonAbiOld;
|
31466
31746
|
constructor(jsonAbi) {
|
31467
31747
|
this.jsonAbi = jsonAbi;
|
31468
|
-
this.encoding = getEncodingVersion(jsonAbi.
|
31748
|
+
this.encoding = getEncodingVersion(jsonAbi.encodingVersion);
|
31749
|
+
this.jsonAbiOld = transpileAbi(jsonAbi);
|
31469
31750
|
this.functions = Object.fromEntries(
|
31470
|
-
this.jsonAbi.functions.map((
|
31751
|
+
this.jsonAbi.functions.map((fn) => [fn.name, new FunctionFragment(this.jsonAbiOld, fn)])
|
31471
31752
|
);
|
31472
31753
|
this.configurables = Object.fromEntries(this.jsonAbi.configurables.map((x) => [x.name, x]));
|
31473
31754
|
}
|
@@ -31493,31 +31774,48 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31493
31774
|
return fragment.decodeOutput(data);
|
31494
31775
|
}
|
31495
31776
|
decodeLog(data, logId) {
|
31496
|
-
const loggedType = this.
|
31777
|
+
const loggedType = this.jsonAbiOld.loggedTypes.find((type3) => type3.logId === logId);
|
31497
31778
|
if (!loggedType) {
|
31498
31779
|
throw new FuelError(
|
31499
31780
|
ErrorCode.LOG_TYPE_NOT_FOUND,
|
31500
31781
|
`Log type with logId '${logId}' doesn't exist in the ABI.`
|
31501
31782
|
);
|
31502
31783
|
}
|
31503
|
-
return AbiCoder.decode(this.
|
31784
|
+
return AbiCoder.decode(this.jsonAbiOld, loggedType.loggedType, arrayify(data), 0, {
|
31504
31785
|
encoding: this.encoding
|
31505
31786
|
});
|
31506
31787
|
}
|
31507
31788
|
encodeConfigurable(name, value) {
|
31508
|
-
const configurable = this.
|
31789
|
+
const configurable = this.jsonAbiOld.configurables.find((c) => c.name === name);
|
31509
31790
|
if (!configurable) {
|
31510
31791
|
throw new FuelError(
|
31511
31792
|
ErrorCode.CONFIGURABLE_NOT_FOUND,
|
31512
31793
|
`A configurable with the '${name}' was not found in the ABI.`
|
31513
31794
|
);
|
31514
31795
|
}
|
31515
|
-
return AbiCoder.encode(this.
|
31796
|
+
return AbiCoder.encode(this.jsonAbiOld, configurable.configurableType, value, {
|
31797
|
+
encoding: this.encoding
|
31798
|
+
});
|
31799
|
+
}
|
31800
|
+
encodeType(concreteTypeId, value) {
|
31801
|
+
const typeArg = parseConcreteType(
|
31802
|
+
this.jsonAbi,
|
31803
|
+
this.jsonAbiOld.types,
|
31804
|
+
concreteTypeId,
|
31805
|
+
""
|
31806
|
+
);
|
31807
|
+
return AbiCoder.encode(this.jsonAbiOld, typeArg, value, {
|
31516
31808
|
encoding: this.encoding
|
31517
31809
|
});
|
31518
31810
|
}
|
31519
|
-
|
31520
|
-
|
31811
|
+
decodeType(concreteTypeId, data) {
|
31812
|
+
const typeArg = parseConcreteType(
|
31813
|
+
this.jsonAbi,
|
31814
|
+
this.jsonAbiOld.types,
|
31815
|
+
concreteTypeId,
|
31816
|
+
""
|
31817
|
+
);
|
31818
|
+
return AbiCoder.decode(this.jsonAbiOld, typeArg, data, 0, { encoding: this.encoding });
|
31521
31819
|
}
|
31522
31820
|
};
|
31523
31821
|
|
@@ -31807,12 +32105,12 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31807
32105
|
}
|
31808
32106
|
};
|
31809
32107
|
|
31810
|
-
// ../../node_modules/.pnpm/ramda@0.
|
32108
|
+
// ../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isPlaceholder.js
|
31811
32109
|
function _isPlaceholder(a) {
|
31812
32110
|
return a != null && typeof a === "object" && a["@@functional/placeholder"] === true;
|
31813
32111
|
}
|
31814
32112
|
|
31815
|
-
// ../../node_modules/.pnpm/ramda@0.
|
32113
|
+
// ../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_curry1.js
|
31816
32114
|
function _curry1(fn) {
|
31817
32115
|
return function f1(a) {
|
31818
32116
|
if (arguments.length === 0 || _isPlaceholder(a)) {
|
@@ -31823,38 +32121,18 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31823
32121
|
};
|
31824
32122
|
}
|
31825
32123
|
|
31826
|
-
// ../../node_modules/.pnpm/ramda@0.
|
31827
|
-
var isArray_default = Array.isArray || function _isArray(val) {
|
31828
|
-
return val != null && val.length >= 0 && Object.prototype.toString.call(val) === "[object Array]";
|
31829
|
-
};
|
31830
|
-
|
31831
|
-
// ../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/type.js
|
32124
|
+
// ../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/type.js
|
31832
32125
|
var type = /* @__PURE__ */ _curry1(function type2(val) {
|
31833
32126
|
return val === null ? "Null" : val === void 0 ? "Undefined" : Object.prototype.toString.call(val).slice(8, -1);
|
31834
32127
|
});
|
31835
32128
|
var type_default = type;
|
31836
32129
|
|
31837
|
-
// ../../node_modules/.pnpm/ramda@0.
|
31838
|
-
var pad = function pad2(n) {
|
31839
|
-
return (n < 10 ? "0" : "") + n;
|
31840
|
-
};
|
31841
|
-
var _toISOString = typeof Date.prototype.toISOString === "function" ? function _toISOString2(d) {
|
31842
|
-
return d.toISOString();
|
31843
|
-
} : function _toISOString3(d) {
|
31844
|
-
return d.getUTCFullYear() + "-" + pad(d.getUTCMonth() + 1) + "-" + pad(d.getUTCDate()) + "T" + pad(d.getUTCHours()) + ":" + pad(d.getUTCMinutes()) + ":" + pad(d.getUTCSeconds()) + "." + (d.getUTCMilliseconds() / 1e3).toFixed(3).slice(2, 5) + "Z";
|
31845
|
-
};
|
31846
|
-
|
31847
|
-
// ../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/internal/_isInteger.js
|
31848
|
-
var isInteger_default = Number.isInteger || function _isInteger(n) {
|
31849
|
-
return n << 0 === n;
|
31850
|
-
};
|
31851
|
-
|
31852
|
-
// ../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/internal/_cloneRegExp.js
|
32130
|
+
// ../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_cloneRegExp.js
|
31853
32131
|
function _cloneRegExp(pattern) {
|
31854
32132
|
return new RegExp(pattern.source, pattern.flags ? pattern.flags : (pattern.global ? "g" : "") + (pattern.ignoreCase ? "i" : "") + (pattern.multiline ? "m" : "") + (pattern.sticky ? "y" : "") + (pattern.unicode ? "u" : "") + (pattern.dotAll ? "s" : ""));
|
31855
32133
|
}
|
31856
32134
|
|
31857
|
-
// ../../node_modules/.pnpm/ramda@0.
|
32135
|
+
// ../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_clone.js
|
31858
32136
|
function _clone(value, deep, map) {
|
31859
32137
|
map || (map = new _ObjectMap());
|
31860
32138
|
if (_isPrimitive(value)) {
|
@@ -31877,7 +32155,7 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31877
32155
|
case "Object":
|
31878
32156
|
return copy(Object.create(Object.getPrototypeOf(value)));
|
31879
32157
|
case "Array":
|
31880
|
-
return copy(
|
32158
|
+
return copy(Array(value.length));
|
31881
32159
|
case "Date":
|
31882
32160
|
return new Date(value.valueOf());
|
31883
32161
|
case "RegExp":
|
@@ -31908,8 +32186,8 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31908
32186
|
this.length = 0;
|
31909
32187
|
}
|
31910
32188
|
_ObjectMap2.prototype.set = function(key, value) {
|
31911
|
-
|
31912
|
-
|
32189
|
+
var hashedKey = this.hash(key);
|
32190
|
+
var bucket = this.map[hashedKey];
|
31913
32191
|
if (!bucket) {
|
31914
32192
|
this.map[hashedKey] = bucket = [];
|
31915
32193
|
}
|
@@ -31917,7 +32195,7 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31917
32195
|
this.length += 1;
|
31918
32196
|
};
|
31919
32197
|
_ObjectMap2.prototype.hash = function(key) {
|
31920
|
-
|
32198
|
+
var hashedKey = [];
|
31921
32199
|
for (var value in key) {
|
31922
32200
|
hashedKey.push(Object.prototype.toString.call(key[value]));
|
31923
32201
|
}
|
@@ -31925,10 +32203,10 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31925
32203
|
};
|
31926
32204
|
_ObjectMap2.prototype.get = function(key) {
|
31927
32205
|
if (this.length <= 180) {
|
31928
|
-
for (
|
31929
|
-
|
31930
|
-
for (
|
31931
|
-
|
32206
|
+
for (var p in this.map) {
|
32207
|
+
var bucket = this.map[p];
|
32208
|
+
for (var i = 0; i < bucket.length; i += 1) {
|
32209
|
+
var element = bucket[i];
|
31932
32210
|
if (element[0] === key) {
|
31933
32211
|
return element[1];
|
31934
32212
|
}
|
@@ -31936,13 +32214,13 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31936
32214
|
}
|
31937
32215
|
return;
|
31938
32216
|
}
|
31939
|
-
|
31940
|
-
|
32217
|
+
var hashedKey = this.hash(key);
|
32218
|
+
var bucket = this.map[hashedKey];
|
31941
32219
|
if (!bucket) {
|
31942
32220
|
return;
|
31943
32221
|
}
|
31944
|
-
for (
|
31945
|
-
|
32222
|
+
for (var i = 0; i < bucket.length; i += 1) {
|
32223
|
+
var element = bucket[i];
|
31946
32224
|
if (element[0] === key) {
|
31947
32225
|
return element[1];
|
31948
32226
|
}
|
@@ -31951,15 +32229,12 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
31951
32229
|
return _ObjectMap2;
|
31952
32230
|
}();
|
31953
32231
|
|
31954
|
-
// ../../node_modules/.pnpm/ramda@0.
|
32232
|
+
// ../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/clone.js
|
31955
32233
|
var clone = /* @__PURE__ */ _curry1(function clone2(value) {
|
31956
32234
|
return value != null && typeof value.clone === "function" ? value.clone() : _clone(value, true);
|
31957
32235
|
});
|
31958
32236
|
var clone_default = clone;
|
31959
32237
|
|
31960
|
-
// ../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/trim.js
|
31961
|
-
var hasProtoTrim = typeof String.prototype.trim === "function";
|
31962
|
-
|
31963
32238
|
// src/providers/coin-quantity.ts
|
31964
32239
|
var coinQuantityfy = (coinQuantityLike) => {
|
31965
32240
|
let assetId;
|
@@ -32039,6 +32314,19 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
32039
32314
|
txIndex: new NumberCoder("u16", { padToWordSize: true })
|
32040
32315
|
});
|
32041
32316
|
}
|
32317
|
+
static decodeFromGqlScalar(value) {
|
32318
|
+
if (value.length !== 12) {
|
32319
|
+
throw new FuelError(
|
32320
|
+
ErrorCode.DECODE_ERROR,
|
32321
|
+
`Invalid TxPointer scalar string length ${value.length}. It must have length 12.`
|
32322
|
+
);
|
32323
|
+
}
|
32324
|
+
const [blockHeight, txIndex] = [value.substring(0, 8), value.substring(8)];
|
32325
|
+
return {
|
32326
|
+
blockHeight: parseInt(blockHeight, 16),
|
32327
|
+
txIndex: parseInt(txIndex, 16)
|
32328
|
+
};
|
32329
|
+
}
|
32042
32330
|
};
|
32043
32331
|
var InputType = /* @__PURE__ */ ((InputType2) => {
|
32044
32332
|
InputType2[InputType2["Coin"] = 0] = "Coin";
|
@@ -32801,8 +33089,8 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
32801
33089
|
}
|
32802
33090
|
default: {
|
32803
33091
|
throw new FuelError(
|
32804
|
-
ErrorCode.
|
32805
|
-
`
|
33092
|
+
ErrorCode.UNSUPPORTED_TRANSACTION_TYPE,
|
33093
|
+
`Unsupported transaction type: ${type3}`
|
32806
33094
|
);
|
32807
33095
|
}
|
32808
33096
|
}
|
@@ -32828,8 +33116,8 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
32828
33116
|
}
|
32829
33117
|
default: {
|
32830
33118
|
throw new FuelError(
|
32831
|
-
ErrorCode.
|
32832
|
-
`
|
33119
|
+
ErrorCode.UNSUPPORTED_TRANSACTION_TYPE,
|
33120
|
+
`Unsupported transaction type: ${type3}`
|
32833
33121
|
);
|
32834
33122
|
}
|
32835
33123
|
}
|
@@ -32872,6 +33160,7 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
32872
33160
|
TransactionType2[TransactionType2["Mint"] = 2] = "Mint";
|
32873
33161
|
TransactionType2[TransactionType2["Upgrade"] = 3] = "Upgrade";
|
32874
33162
|
TransactionType2[TransactionType2["Upload"] = 4] = "Upload";
|
33163
|
+
TransactionType2[TransactionType2["Blob"] = 5] = "Blob";
|
32875
33164
|
return TransactionType2;
|
32876
33165
|
})(TransactionType || {});
|
32877
33166
|
var TransactionScriptCoder = class extends Coder {
|
@@ -33196,6 +33485,65 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
33196
33485
|
];
|
33197
33486
|
}
|
33198
33487
|
};
|
33488
|
+
var TransactionBlobCoder = class extends Coder {
|
33489
|
+
constructor() {
|
33490
|
+
super("TransactionBlob", "struct TransactionBlob", 0);
|
33491
|
+
}
|
33492
|
+
encode(value) {
|
33493
|
+
const parts = [];
|
33494
|
+
parts.push(new B256Coder().encode(value.blobId));
|
33495
|
+
parts.push(new NumberCoder("u16", { padToWordSize: true }).encode(value.witnessIndex));
|
33496
|
+
parts.push(new NumberCoder("u32", { padToWordSize: true }).encode(value.policyTypes));
|
33497
|
+
parts.push(new NumberCoder("u16", { padToWordSize: true }).encode(value.inputsCount));
|
33498
|
+
parts.push(new NumberCoder("u16", { padToWordSize: true }).encode(value.outputsCount));
|
33499
|
+
parts.push(new NumberCoder("u16", { padToWordSize: true }).encode(value.witnessesCount));
|
33500
|
+
parts.push(new PoliciesCoder().encode(value.policies));
|
33501
|
+
parts.push(new ArrayCoder(new InputCoder(), value.inputsCount).encode(value.inputs));
|
33502
|
+
parts.push(new ArrayCoder(new OutputCoder(), value.outputsCount).encode(value.outputs));
|
33503
|
+
parts.push(new ArrayCoder(new WitnessCoder(), value.witnessesCount).encode(value.witnesses));
|
33504
|
+
return concat(parts);
|
33505
|
+
}
|
33506
|
+
decode(data, offset) {
|
33507
|
+
let decoded;
|
33508
|
+
let o = offset;
|
33509
|
+
[decoded, o] = new B256Coder().decode(data, o);
|
33510
|
+
const blobId = decoded;
|
33511
|
+
[decoded, o] = new NumberCoder("u16", { padToWordSize: true }).decode(data, o);
|
33512
|
+
const witnessIndex = decoded;
|
33513
|
+
[decoded, o] = new NumberCoder("u32", { padToWordSize: true }).decode(data, o);
|
33514
|
+
const policyTypes = decoded;
|
33515
|
+
[decoded, o] = new NumberCoder("u16", { padToWordSize: true }).decode(data, o);
|
33516
|
+
const inputsCount = decoded;
|
33517
|
+
[decoded, o] = new NumberCoder("u16", { padToWordSize: true }).decode(data, o);
|
33518
|
+
const outputsCount = decoded;
|
33519
|
+
[decoded, o] = new NumberCoder("u16", { padToWordSize: true }).decode(data, o);
|
33520
|
+
const witnessesCount = decoded;
|
33521
|
+
[decoded, o] = new PoliciesCoder().decode(data, o, policyTypes);
|
33522
|
+
const policies = decoded;
|
33523
|
+
[decoded, o] = new ArrayCoder(new InputCoder(), inputsCount).decode(data, o);
|
33524
|
+
const inputs = decoded;
|
33525
|
+
[decoded, o] = new ArrayCoder(new OutputCoder(), outputsCount).decode(data, o);
|
33526
|
+
const outputs = decoded;
|
33527
|
+
[decoded, o] = new ArrayCoder(new WitnessCoder(), witnessesCount).decode(data, o);
|
33528
|
+
const witnesses = decoded;
|
33529
|
+
return [
|
33530
|
+
{
|
33531
|
+
type: 5,
|
33532
|
+
blobId,
|
33533
|
+
witnessIndex,
|
33534
|
+
policyTypes,
|
33535
|
+
inputsCount,
|
33536
|
+
outputsCount,
|
33537
|
+
witnessesCount,
|
33538
|
+
policies,
|
33539
|
+
inputs,
|
33540
|
+
outputs,
|
33541
|
+
witnesses
|
33542
|
+
},
|
33543
|
+
o
|
33544
|
+
];
|
33545
|
+
}
|
33546
|
+
};
|
33199
33547
|
var TransactionCoder = class extends Coder {
|
33200
33548
|
constructor() {
|
33201
33549
|
super("Transaction", "struct Transaction", 0);
|
@@ -33233,10 +33581,14 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
33233
33581
|
);
|
33234
33582
|
break;
|
33235
33583
|
}
|
33584
|
+
case 5: {
|
33585
|
+
parts.push(new TransactionBlobCoder().encode(value));
|
33586
|
+
break;
|
33587
|
+
}
|
33236
33588
|
default: {
|
33237
33589
|
throw new FuelError(
|
33238
|
-
ErrorCode.
|
33239
|
-
`
|
33590
|
+
ErrorCode.UNSUPPORTED_TRANSACTION_TYPE,
|
33591
|
+
`Unsupported transaction type: ${type3}`
|
33240
33592
|
);
|
33241
33593
|
}
|
33242
33594
|
}
|
@@ -33268,10 +33620,14 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
33268
33620
|
[decoded, o] = new TransactionUploadCoder().decode(data, o);
|
33269
33621
|
return [decoded, o];
|
33270
33622
|
}
|
33623
|
+
case 5: {
|
33624
|
+
[decoded, o] = new TransactionBlobCoder().decode(data, o);
|
33625
|
+
return [decoded, o];
|
33626
|
+
}
|
33271
33627
|
default: {
|
33272
33628
|
throw new FuelError(
|
33273
|
-
ErrorCode.
|
33274
|
-
`
|
33629
|
+
ErrorCode.UNSUPPORTED_TRANSACTION_TYPE,
|
33630
|
+
`Unsupported transaction type: ${type3}`
|
33275
33631
|
);
|
33276
33632
|
}
|
33277
33633
|
}
|
@@ -33402,10 +33758,10 @@ If you are attempting to transform a hex value, please make sure it is being pas
|
|
33402
33758
|
sum += a.length;
|
33403
33759
|
}
|
33404
33760
|
const res = new Uint8Array(sum);
|
33405
|
-
for (let i = 0,
|
33761
|
+
for (let i = 0, pad = 0; i < arrays.length; i++) {
|
33406
33762
|
const a = arrays[i];
|
33407
|
-
res.set(a,
|
33408
|
-
|
33763
|
+
res.set(a, pad);
|
33764
|
+
pad += a.length;
|
33409
33765
|
}
|
33410
33766
|
return res;
|
33411
33767
|
}
|
@@ -36684,14 +37040,6 @@ spurious results.`);
|
|
36684
37040
|
var lib_default2 = gql;
|
36685
37041
|
|
36686
37042
|
// src/providers/__generated__/operations.ts
|
36687
|
-
var TransactionStatusSubscriptionFragmentDoc = lib_default2`
|
36688
|
-
fragment transactionStatusSubscriptionFragment on TransactionStatus {
|
36689
|
-
type: __typename
|
36690
|
-
... on SqueezedOutStatus {
|
36691
|
-
reason
|
36692
|
-
}
|
36693
|
-
}
|
36694
|
-
`;
|
36695
37043
|
var SubmittedStatusFragmentDoc = lib_default2`
|
36696
37044
|
fragment SubmittedStatusFragment on SubmittedStatus {
|
36697
37045
|
type: __typename
|
@@ -36748,6 +37096,47 @@ spurious results.`);
|
|
36748
37096
|
totalFee
|
36749
37097
|
}
|
36750
37098
|
${ReceiptFragmentDoc}`;
|
37099
|
+
var MalleableTransactionFieldsFragmentDoc = lib_default2`
|
37100
|
+
fragment malleableTransactionFieldsFragment on Transaction {
|
37101
|
+
receiptsRoot
|
37102
|
+
inputs {
|
37103
|
+
type: __typename
|
37104
|
+
... on InputCoin {
|
37105
|
+
txPointer
|
37106
|
+
}
|
37107
|
+
... on InputContract {
|
37108
|
+
txPointer
|
37109
|
+
}
|
37110
|
+
}
|
37111
|
+
outputs {
|
37112
|
+
type: __typename
|
37113
|
+
... on CoinOutput {
|
37114
|
+
to
|
37115
|
+
amount
|
37116
|
+
assetId
|
37117
|
+
}
|
37118
|
+
... on ContractOutput {
|
37119
|
+
inputIndex
|
37120
|
+
balanceRoot
|
37121
|
+
stateRoot
|
37122
|
+
}
|
37123
|
+
... on ChangeOutput {
|
37124
|
+
to
|
37125
|
+
amount
|
37126
|
+
assetId
|
37127
|
+
}
|
37128
|
+
... on VariableOutput {
|
37129
|
+
to
|
37130
|
+
amount
|
37131
|
+
assetId
|
37132
|
+
}
|
37133
|
+
... on ContractCreated {
|
37134
|
+
contract
|
37135
|
+
stateRoot
|
37136
|
+
}
|
37137
|
+
}
|
37138
|
+
}
|
37139
|
+
`;
|
36751
37140
|
var FailureStatusFragmentDoc = lib_default2`
|
36752
37141
|
fragment FailureStatusFragment on FailureStatus {
|
36753
37142
|
type: __typename
|
@@ -36769,6 +37158,32 @@ spurious results.`);
|
|
36769
37158
|
reason
|
36770
37159
|
}
|
36771
37160
|
`;
|
37161
|
+
var TransactionStatusSubscriptionFragmentDoc = lib_default2`
|
37162
|
+
fragment transactionStatusSubscriptionFragment on TransactionStatus {
|
37163
|
+
... on SubmittedStatus {
|
37164
|
+
...SubmittedStatusFragment
|
37165
|
+
}
|
37166
|
+
... on SuccessStatus {
|
37167
|
+
...SuccessStatusFragment
|
37168
|
+
transaction {
|
37169
|
+
...malleableTransactionFieldsFragment
|
37170
|
+
}
|
37171
|
+
}
|
37172
|
+
... on FailureStatus {
|
37173
|
+
...FailureStatusFragment
|
37174
|
+
transaction {
|
37175
|
+
...malleableTransactionFieldsFragment
|
37176
|
+
}
|
37177
|
+
}
|
37178
|
+
... on SqueezedOutStatus {
|
37179
|
+
...SqueezedOutStatusFragment
|
37180
|
+
}
|
37181
|
+
}
|
37182
|
+
${SubmittedStatusFragmentDoc}
|
37183
|
+
${SuccessStatusFragmentDoc}
|
37184
|
+
${MalleableTransactionFieldsFragmentDoc}
|
37185
|
+
${FailureStatusFragmentDoc}
|
37186
|
+
${SqueezedOutStatusFragmentDoc}`;
|
36772
37187
|
var TransactionStatusFragmentDoc = lib_default2`
|
36773
37188
|
fragment transactionStatusFragment on TransactionStatus {
|
36774
37189
|
... on SubmittedStatus {
|
@@ -37109,6 +37524,12 @@ ${ReceiptFragmentDoc}`;
|
|
37109
37524
|
alocDependentCost {
|
37110
37525
|
...DependentCostFragment
|
37111
37526
|
}
|
37527
|
+
bldd {
|
37528
|
+
...DependentCostFragment
|
37529
|
+
}
|
37530
|
+
bsiz {
|
37531
|
+
...DependentCostFragment
|
37532
|
+
}
|
37112
37533
|
cfe {
|
37113
37534
|
...DependentCostFragment
|
37114
37535
|
}
|
@@ -37127,6 +37548,9 @@ ${ReceiptFragmentDoc}`;
|
|
37127
37548
|
csiz {
|
37128
37549
|
...DependentCostFragment
|
37129
37550
|
}
|
37551
|
+
ed19DependentCost {
|
37552
|
+
...DependentCostFragment
|
37553
|
+
}
|
37130
37554
|
k256 {
|
37131
37555
|
...DependentCostFragment
|
37132
37556
|
}
|
@@ -37656,12 +38080,11 @@ ${MessageFragmentDoc}`;
|
|
37656
38080
|
|
37657
38081
|
// src/providers/fuel-graphql-subscriber.ts
|
37658
38082
|
var _FuelGraphqlSubscriber = class {
|
37659
|
-
constructor(
|
37660
|
-
this.
|
38083
|
+
constructor(stream) {
|
38084
|
+
this.stream = stream;
|
37661
38085
|
}
|
37662
|
-
|
37663
|
-
|
37664
|
-
const { url, query, variables, fetchFn } = this.options;
|
38086
|
+
static async create(options) {
|
38087
|
+
const { url, query, variables, fetchFn } = options;
|
37665
38088
|
const response = await fetchFn(`${url}-sub`, {
|
37666
38089
|
method: "POST",
|
37667
38090
|
body: JSON.stringify({
|
@@ -37673,14 +38096,11 @@ ${MessageFragmentDoc}`;
|
|
37673
38096
|
Accept: "text/event-stream"
|
37674
38097
|
}
|
37675
38098
|
});
|
37676
|
-
|
38099
|
+
return new _FuelGraphqlSubscriber(response.body.getReader());
|
37677
38100
|
}
|
37678
38101
|
events = [];
|
37679
38102
|
parsingLeftover = "";
|
37680
38103
|
async next() {
|
37681
|
-
if (!this.stream) {
|
37682
|
-
await this.setStream();
|
37683
|
-
}
|
37684
38104
|
while (true) {
|
37685
38105
|
if (this.events.length > 0) {
|
37686
38106
|
const { data, errors } = this.events.shift();
|
@@ -37731,60 +38151,63 @@ ${MessageFragmentDoc}`;
|
|
37731
38151
|
var FuelGraphqlSubscriber = _FuelGraphqlSubscriber;
|
37732
38152
|
__publicField(FuelGraphqlSubscriber, "textDecoder", new TextDecoder());
|
37733
38153
|
|
37734
|
-
// src/providers/
|
37735
|
-
var cache =
|
37736
|
-
var
|
37737
|
-
var MemoryCache = class {
|
38154
|
+
// src/providers/resource-cache.ts
|
38155
|
+
var cache = /* @__PURE__ */ new Map();
|
38156
|
+
var ResourceCache = class {
|
37738
38157
|
ttl;
|
37739
|
-
constructor(
|
37740
|
-
this.ttl =
|
37741
|
-
if (typeof
|
38158
|
+
constructor(ttl) {
|
38159
|
+
this.ttl = ttl;
|
38160
|
+
if (typeof ttl !== "number" || this.ttl <= 0) {
|
37742
38161
|
throw new FuelError(
|
37743
38162
|
ErrorCode.INVALID_TTL,
|
37744
38163
|
`Invalid TTL: ${this.ttl}. Use a value greater than zero.`
|
37745
38164
|
);
|
37746
38165
|
}
|
37747
38166
|
}
|
37748
|
-
|
37749
|
-
|
37750
|
-
|
37751
|
-
|
37752
|
-
|
37753
|
-
|
37754
|
-
|
37755
|
-
}
|
37756
|
-
return void 0;
|
37757
|
-
}
|
37758
|
-
set(value) {
|
37759
|
-
const expiresAt = Date.now() + this.ttl;
|
37760
|
-
const key = hexlify(value);
|
37761
|
-
cache[key] = {
|
37762
|
-
expires: expiresAt,
|
37763
|
-
value
|
38167
|
+
// Add resources to the cache
|
38168
|
+
set(transactionId, resources) {
|
38169
|
+
const currentTime = Date.now();
|
38170
|
+
const existingResources = cache.get(transactionId) || {
|
38171
|
+
utxos: /* @__PURE__ */ new Set(),
|
38172
|
+
messages: /* @__PURE__ */ new Set(),
|
38173
|
+
timestamp: currentTime
|
37764
38174
|
};
|
37765
|
-
|
38175
|
+
resources.utxos.forEach((utxo) => existingResources.utxos.add(hexlify(utxo)));
|
38176
|
+
resources.messages.forEach((message) => existingResources.messages.add(hexlify(message)));
|
38177
|
+
cache.set(transactionId, existingResources);
|
37766
38178
|
}
|
37767
|
-
|
37768
|
-
|
37769
|
-
|
37770
|
-
if (data) {
|
37771
|
-
list.push(data);
|
37772
|
-
}
|
37773
|
-
return list;
|
37774
|
-
}, []);
|
38179
|
+
// Remove resources from the cache for a given transaction ID
|
38180
|
+
unset(transactionId) {
|
38181
|
+
cache.delete(transactionId);
|
37775
38182
|
}
|
38183
|
+
// Get all cached resources and remove expired ones
|
37776
38184
|
getActiveData() {
|
37777
|
-
|
37778
|
-
|
37779
|
-
|
37780
|
-
|
38185
|
+
const allResources = { utxos: [], messages: [] };
|
38186
|
+
const currentTime = Date.now();
|
38187
|
+
cache.forEach((resource, transactionId) => {
|
38188
|
+
if (currentTime - resource.timestamp < this.ttl) {
|
38189
|
+
allResources.utxos.push(...resource.utxos);
|
38190
|
+
allResources.messages.push(...resource.messages);
|
38191
|
+
} else {
|
38192
|
+
cache.delete(transactionId);
|
38193
|
+
}
|
38194
|
+
});
|
38195
|
+
return allResources;
|
38196
|
+
}
|
38197
|
+
// Check if a UTXO ID or message nonce is already cached and not expired
|
38198
|
+
isCached(key) {
|
38199
|
+
const currentTime = Date.now();
|
38200
|
+
for (const [transactionId, resourceData] of cache.entries()) {
|
38201
|
+
if (currentTime - resourceData.timestamp > this.ttl) {
|
38202
|
+
cache.delete(transactionId);
|
38203
|
+
} else if (resourceData.utxos.has(key) || resourceData.messages.has(key)) {
|
38204
|
+
return true;
|
37781
38205
|
}
|
37782
|
-
|
37783
|
-
|
38206
|
+
}
|
38207
|
+
return false;
|
37784
38208
|
}
|
37785
|
-
|
37786
|
-
|
37787
|
-
delete cache[key];
|
38209
|
+
clear() {
|
38210
|
+
cache.clear();
|
37788
38211
|
}
|
37789
38212
|
};
|
37790
38213
|
|
@@ -37975,7 +38398,18 @@ ${MessageFragmentDoc}`;
|
|
37975
38398
|
"TooManyReceipts",
|
37976
38399
|
"BalanceOverflow",
|
37977
38400
|
"InvalidBlockHeight",
|
37978
|
-
"TooManySlots"
|
38401
|
+
"TooManySlots",
|
38402
|
+
"ExpectedNestedCaller",
|
38403
|
+
"MemoryGrowthOverlap",
|
38404
|
+
"UninitalizedMemoryAccess",
|
38405
|
+
"OverridingConsensusParameters",
|
38406
|
+
"UnknownStateTransactionBytecodeRoot",
|
38407
|
+
"OverridingStateTransactionBytecode",
|
38408
|
+
"BytecodeAlreadyUploaded",
|
38409
|
+
"ThePartIsNotSequentiallyConnected",
|
38410
|
+
"BlobIdAlreadyUploaded",
|
38411
|
+
"BlobNotFound",
|
38412
|
+
"GasCostNotDefined"
|
37979
38413
|
];
|
37980
38414
|
var PANIC_DOC_URL = "https://docs.rs/fuel-asm/latest/fuel_asm/enum.PanicReason.html";
|
37981
38415
|
|
@@ -38328,6 +38762,15 @@ ${MessageFragmentDoc}`;
|
|
38328
38762
|
}) {
|
38329
38763
|
return resolveGasDependentCosts(txBytesSize, gasCosts.s256);
|
38330
38764
|
}
|
38765
|
+
function calculateMetadataGasForTxBlob({
|
38766
|
+
gasCosts,
|
38767
|
+
txBytesSize,
|
38768
|
+
witnessBytesSize
|
38769
|
+
}) {
|
38770
|
+
const txId = resolveGasDependentCosts(txBytesSize, gasCosts.s256);
|
38771
|
+
const blobLen = resolveGasDependentCosts(witnessBytesSize, gasCosts.s256);
|
38772
|
+
return txId.add(blobLen);
|
38773
|
+
}
|
38331
38774
|
var calculateGasFee = (params) => {
|
38332
38775
|
const { gas, gasPrice, priceFactor, tip } = params;
|
38333
38776
|
return gas.mul(gasPrice).div(priceFactor).add(bn(tip));
|
@@ -38887,7 +39330,7 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
38887
39330
|
* @hidden
|
38888
39331
|
*/
|
38889
39332
|
metadataGas(_gasCosts) {
|
38890
|
-
throw new
|
39333
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Not implemented");
|
38891
39334
|
}
|
38892
39335
|
/**
|
38893
39336
|
* @hidden
|
@@ -38962,6 +39405,7 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
38962
39405
|
};
|
38963
39406
|
updateAssetInput(baseAssetId, bn(1e11));
|
38964
39407
|
quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
|
39408
|
+
return this;
|
38965
39409
|
}
|
38966
39410
|
/**
|
38967
39411
|
* Retrieves an array of CoinQuantity for each coin output present in the transaction.
|
@@ -39008,6 +39452,9 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
39008
39452
|
}
|
39009
39453
|
});
|
39010
39454
|
}
|
39455
|
+
byteLength() {
|
39456
|
+
return this.toTransactionBytes().byteLength;
|
39457
|
+
}
|
39011
39458
|
};
|
39012
39459
|
|
39013
39460
|
// src/providers/transaction-request/hash-transaction.ts
|
@@ -39075,6 +39522,70 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
39075
39522
|
return sha2562(concatenatedData);
|
39076
39523
|
}
|
39077
39524
|
|
39525
|
+
// src/providers/transaction-request/blob-transaction-request.ts
|
39526
|
+
var BlobTransactionRequest = class extends BaseTransactionRequest {
|
39527
|
+
static from(obj) {
|
39528
|
+
if (obj instanceof this) {
|
39529
|
+
return obj;
|
39530
|
+
}
|
39531
|
+
return new this(obj);
|
39532
|
+
}
|
39533
|
+
/** Type of the transaction */
|
39534
|
+
type = TransactionType.Blob;
|
39535
|
+
/** Blob ID */
|
39536
|
+
blobId;
|
39537
|
+
/** Witness index of contract bytecode to create */
|
39538
|
+
witnessIndex;
|
39539
|
+
/**
|
39540
|
+
* Creates an instance `BlobTransactionRequest`.
|
39541
|
+
*
|
39542
|
+
* @param blobTransactionRequestLike - The initial values for the instance
|
39543
|
+
*/
|
39544
|
+
constructor({ witnessIndex, blobId, ...rest }) {
|
39545
|
+
super(rest);
|
39546
|
+
this.blobId = blobId;
|
39547
|
+
this.witnessIndex = witnessIndex ?? 0;
|
39548
|
+
}
|
39549
|
+
/**
|
39550
|
+
* Converts the transaction request to a `TransactionBlob`.
|
39551
|
+
*
|
39552
|
+
* @returns The transaction create object.
|
39553
|
+
*/
|
39554
|
+
toTransaction() {
|
39555
|
+
const baseTransaction = this.getBaseTransaction();
|
39556
|
+
const { witnessIndex, blobId } = this;
|
39557
|
+
return {
|
39558
|
+
type: TransactionType.Blob,
|
39559
|
+
...baseTransaction,
|
39560
|
+
blobId,
|
39561
|
+
witnessIndex
|
39562
|
+
};
|
39563
|
+
}
|
39564
|
+
/**
|
39565
|
+
* Gets the Transaction Request by hashing the transaction.
|
39566
|
+
*
|
39567
|
+
* @param chainId - The chain ID.
|
39568
|
+
*
|
39569
|
+
* @returns - A hash of the transaction, which is the transaction ID.
|
39570
|
+
*/
|
39571
|
+
getTransactionId(chainId) {
|
39572
|
+
return hashTransaction(this, chainId);
|
39573
|
+
}
|
39574
|
+
/**
|
39575
|
+
* Calculates the metadata gas cost for a blob transaction.
|
39576
|
+
*
|
39577
|
+
* @param gasCosts - gas costs passed from the chain.
|
39578
|
+
* @returns metadata gas cost for the blob transaction.
|
39579
|
+
*/
|
39580
|
+
metadataGas(gasCosts) {
|
39581
|
+
return calculateMetadataGasForTxBlob({
|
39582
|
+
gasCosts,
|
39583
|
+
txBytesSize: this.byteSize(),
|
39584
|
+
witnessBytesSize: this.witnesses[this.witnessIndex].length
|
39585
|
+
});
|
39586
|
+
}
|
39587
|
+
};
|
39588
|
+
|
39078
39589
|
// src/providers/transaction-request/storage-slot.ts
|
39079
39590
|
var getStorageValue = (value) => {
|
39080
39591
|
const v = new Uint8Array(32);
|
@@ -39394,7 +39905,7 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
39394
39905
|
|
39395
39906
|
// src/providers/transaction-request/utils.ts
|
39396
39907
|
var transactionRequestify = (obj) => {
|
39397
|
-
if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
|
39908
|
+
if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest || obj instanceof BlobTransactionRequest) {
|
39398
39909
|
return obj;
|
39399
39910
|
}
|
39400
39911
|
const { type: type3 } = obj;
|
@@ -39405,11 +39916,20 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
39405
39916
|
case TransactionType.Create: {
|
39406
39917
|
return CreateTransactionRequest.from(obj);
|
39407
39918
|
}
|
39919
|
+
case TransactionType.Blob: {
|
39920
|
+
return BlobTransactionRequest.from(obj);
|
39921
|
+
}
|
39408
39922
|
default: {
|
39409
|
-
throw new FuelError(
|
39923
|
+
throw new FuelError(
|
39924
|
+
ErrorCode.UNSUPPORTED_TRANSACTION_TYPE,
|
39925
|
+
`Unsupported transaction type: ${type3}.`
|
39926
|
+
);
|
39410
39927
|
}
|
39411
39928
|
}
|
39412
39929
|
};
|
39930
|
+
var isTransactionTypeScript = (request) => request.type === TransactionType.Script;
|
39931
|
+
var isTransactionTypeCreate = (request) => request.type === TransactionType.Create;
|
39932
|
+
var isTransactionTypeBlob = (request) => request.type === TransactionType.Blob;
|
39413
39933
|
|
39414
39934
|
// src/providers/transaction-summary/calculate-tx-fee-for-summary.ts
|
39415
39935
|
var calculateTXFeeForSummary = (params) => {
|
@@ -39526,17 +40046,47 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
39526
40046
|
function getInputsCoinAndMessage(inputs) {
|
39527
40047
|
return getInputsByTypes(inputs, [InputType.Coin, InputType.Message]);
|
39528
40048
|
}
|
40049
|
+
function isInputCoin(input) {
|
40050
|
+
return input.type === InputType.Coin;
|
40051
|
+
}
|
39529
40052
|
function getInputsContract(inputs) {
|
39530
40053
|
return getInputsByType(inputs, InputType.Contract);
|
39531
40054
|
}
|
39532
|
-
function
|
40055
|
+
function findCoinInput(inputs, assetId) {
|
39533
40056
|
const coinInputs = getInputsCoin(inputs);
|
39534
|
-
|
39535
|
-
|
39536
|
-
|
39537
|
-
|
39538
|
-
)
|
39539
|
-
|
40057
|
+
return coinInputs.find((i) => i.assetId === assetId);
|
40058
|
+
}
|
40059
|
+
function aggregateInputsAmountsByAssetAndOwner(inputs, baseAssetID) {
|
40060
|
+
const aggregated = /* @__PURE__ */ new Map();
|
40061
|
+
getInputsCoinAndMessage(inputs).forEach((input) => {
|
40062
|
+
const assetId = isInputCoin(input) ? input.assetId : baseAssetID;
|
40063
|
+
const owner = isInputCoin(input) ? input.owner : input.recipient;
|
40064
|
+
let ownersMap = aggregated.get(assetId);
|
40065
|
+
if (!ownersMap) {
|
40066
|
+
ownersMap = /* @__PURE__ */ new Map();
|
40067
|
+
aggregated.set(assetId, ownersMap);
|
40068
|
+
}
|
40069
|
+
let ownerBalance = ownersMap.get(owner);
|
40070
|
+
if (!ownerBalance) {
|
40071
|
+
ownerBalance = new BN(0);
|
40072
|
+
ownersMap.set(owner, ownerBalance);
|
40073
|
+
}
|
40074
|
+
ownersMap.set(owner, ownerBalance.add(input.amount));
|
40075
|
+
});
|
40076
|
+
return aggregated;
|
40077
|
+
}
|
40078
|
+
function findMessageInput(inputs) {
|
40079
|
+
return getInputsMessage(inputs)?.[0];
|
40080
|
+
}
|
40081
|
+
function getInputFromAssetId(inputs, assetId, isBaseAsset = false) {
|
40082
|
+
const coinInput = findCoinInput(inputs, assetId);
|
40083
|
+
if (coinInput) {
|
40084
|
+
return coinInput;
|
40085
|
+
}
|
40086
|
+
if (isBaseAsset) {
|
40087
|
+
return findMessageInput(inputs);
|
40088
|
+
}
|
40089
|
+
return void 0;
|
39540
40090
|
}
|
39541
40091
|
function getInputContractFromIndex(inputs, inputIndex) {
|
39542
40092
|
if (inputIndex == null) {
|
@@ -39591,6 +40141,7 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
39591
40141
|
TransactionTypeName2["Script"] = "Script";
|
39592
40142
|
TransactionTypeName2["Upgrade"] = "Upgrade";
|
39593
40143
|
TransactionTypeName2["Upload"] = "Upload";
|
40144
|
+
TransactionTypeName2["Blob"] = "Blob";
|
39594
40145
|
return TransactionTypeName2;
|
39595
40146
|
})(TransactionTypeName || {});
|
39596
40147
|
var TransactionStatus = /* @__PURE__ */ ((TransactionStatus2) => {
|
@@ -39636,10 +40187,12 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
39636
40187
|
return "Create" /* Create */;
|
39637
40188
|
case TransactionType.Script:
|
39638
40189
|
return "Script" /* Script */;
|
40190
|
+
case TransactionType.Blob:
|
40191
|
+
return "Blob" /* Blob */;
|
39639
40192
|
default:
|
39640
40193
|
throw new FuelError(
|
39641
|
-
ErrorCode.
|
39642
|
-
`
|
40194
|
+
ErrorCode.UNSUPPORTED_TRANSACTION_TYPE,
|
40195
|
+
`Unsupported transaction type: ${transactionType}.`
|
39643
40196
|
);
|
39644
40197
|
}
|
39645
40198
|
}
|
@@ -39662,6 +40215,9 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
39662
40215
|
function isTypeUpload(transactionType) {
|
39663
40216
|
return isType(transactionType, "Upload" /* Upload */);
|
39664
40217
|
}
|
40218
|
+
function isTypeBlob(transactionType) {
|
40219
|
+
return isType(transactionType, "Blob" /* Blob */);
|
40220
|
+
}
|
39665
40221
|
function hasSameAssetId(a) {
|
39666
40222
|
return (b) => a.assetId === b.assetId;
|
39667
40223
|
}
|
@@ -39671,41 +40227,51 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
39671
40227
|
function getReceiptsMessageOut(receipts) {
|
39672
40228
|
return getReceiptsByType(receipts, ReceiptType.MessageOut);
|
39673
40229
|
}
|
39674
|
-
|
40230
|
+
function mergeAssets(op1, op2) {
|
39675
40231
|
const assets1 = op1.assetsSent || [];
|
39676
40232
|
const assets2 = op2.assetsSent || [];
|
39677
|
-
const
|
39678
|
-
|
39679
|
-
|
39680
|
-
|
39681
|
-
|
39682
|
-
|
39683
|
-
|
40233
|
+
const assetMap = /* @__PURE__ */ new Map();
|
40234
|
+
assets1.forEach((asset) => {
|
40235
|
+
assetMap.set(asset.assetId, { ...asset });
|
40236
|
+
});
|
40237
|
+
assets2.forEach((asset) => {
|
40238
|
+
const existingAsset = assetMap.get(asset.assetId);
|
40239
|
+
if (existingAsset) {
|
40240
|
+
existingAsset.amount = bn(existingAsset.amount).add(asset.amount);
|
40241
|
+
} else {
|
40242
|
+
assetMap.set(asset.assetId, { ...asset });
|
39684
40243
|
}
|
39685
|
-
const mergedAmount = bn(asset1.amount).add(matchingAsset.amount);
|
39686
|
-
return { ...asset1, amount: mergedAmount };
|
39687
40244
|
});
|
39688
|
-
return
|
39689
|
-
}
|
40245
|
+
return Array.from(assetMap.values());
|
40246
|
+
}
|
39690
40247
|
function isSameOperation(a, b) {
|
39691
40248
|
return a.name === b.name && a.from?.address === b.from?.address && a.to?.address === b.to?.address && a.from?.type === b.from?.type && a.to?.type === b.to?.type;
|
39692
40249
|
}
|
40250
|
+
function mergeAssetsSent(existing, toAdd) {
|
40251
|
+
if (!toAdd.assetsSent?.length) {
|
40252
|
+
return existing.assetsSent;
|
40253
|
+
}
|
40254
|
+
return existing.assetsSent?.length ? mergeAssets(existing, toAdd) : toAdd.assetsSent;
|
40255
|
+
}
|
40256
|
+
function mergeCalls(existing, toAdd) {
|
40257
|
+
if (!toAdd.calls?.length) {
|
40258
|
+
return existing.calls;
|
40259
|
+
}
|
40260
|
+
return [...existing.calls || [], ...toAdd.calls];
|
40261
|
+
}
|
40262
|
+
function mergeOperations(existing, toAdd) {
|
40263
|
+
return {
|
40264
|
+
...existing,
|
40265
|
+
assetsSent: mergeAssetsSent(existing, toAdd),
|
40266
|
+
calls: mergeCalls(existing, toAdd)
|
40267
|
+
};
|
40268
|
+
}
|
39693
40269
|
function addOperation(operations, toAdd) {
|
39694
|
-
const
|
39695
|
-
|
39696
|
-
|
39697
|
-
const existentOperation = { ...allOperations[index] };
|
39698
|
-
if (toAdd.assetsSent?.length) {
|
39699
|
-
existentOperation.assetsSent = existentOperation.assetsSent?.length ? mergeAssets(existentOperation, toAdd) : toAdd.assetsSent;
|
39700
|
-
}
|
39701
|
-
if (toAdd.calls?.length) {
|
39702
|
-
existentOperation.calls = [...existentOperation.calls || [], ...toAdd.calls];
|
39703
|
-
}
|
39704
|
-
allOperations[index] = existentOperation;
|
39705
|
-
} else {
|
39706
|
-
allOperations.push(toAdd);
|
40270
|
+
const existingIndex = operations.findIndex((op) => isSameOperation(op, toAdd));
|
40271
|
+
if (existingIndex === -1) {
|
40272
|
+
return [...operations, toAdd];
|
39707
40273
|
}
|
39708
|
-
return
|
40274
|
+
return operations.map((op, index) => index === existingIndex ? mergeOperations(op, toAdd) : op);
|
39709
40275
|
}
|
39710
40276
|
function getReceiptsTransferOut(receipts) {
|
39711
40277
|
return getReceiptsByType(receipts, ReceiptType.TransferOut);
|
@@ -39718,7 +40284,7 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
39718
40284
|
const messageOutReceipts = getReceiptsMessageOut(receipts);
|
39719
40285
|
const withdrawFromFuelOperations = messageOutReceipts.reduce(
|
39720
40286
|
(prevWithdrawFromFuelOps, receipt) => {
|
39721
|
-
const input = getInputFromAssetId(inputs, baseAssetId);
|
40287
|
+
const input = getInputFromAssetId(inputs, baseAssetId, true);
|
39722
40288
|
if (input) {
|
39723
40289
|
const inputAddress = getInputAccountAddress(input);
|
39724
40290
|
const newWithdrawFromFuelOps = addOperation(prevWithdrawFromFuelOps, {
|
@@ -39747,65 +40313,80 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
39747
40313
|
);
|
39748
40314
|
return withdrawFromFuelOperations;
|
39749
40315
|
}
|
40316
|
+
function getContractCalls(contractInput, abiMap, receipt, rawPayload, maxInputs) {
|
40317
|
+
const abi = abiMap?.[contractInput.contractID];
|
40318
|
+
if (!abi) {
|
40319
|
+
return [];
|
40320
|
+
}
|
40321
|
+
return [
|
40322
|
+
getFunctionCall({
|
40323
|
+
abi,
|
40324
|
+
receipt,
|
40325
|
+
rawPayload,
|
40326
|
+
maxInputs
|
40327
|
+
})
|
40328
|
+
];
|
40329
|
+
}
|
40330
|
+
function getAssetsSent(receipt) {
|
40331
|
+
return receipt.amount?.isZero() ? void 0 : [
|
40332
|
+
{
|
40333
|
+
amount: receipt.amount,
|
40334
|
+
assetId: receipt.assetId
|
40335
|
+
}
|
40336
|
+
];
|
40337
|
+
}
|
40338
|
+
function processCallReceipt(receipt, contractInput, inputs, abiMap, rawPayload, maxInputs, baseAssetId) {
|
40339
|
+
const assetId = receipt.assetId === ZeroBytes32 ? baseAssetId : receipt.assetId;
|
40340
|
+
const input = getInputFromAssetId(inputs, assetId, assetId === baseAssetId);
|
40341
|
+
if (!input) {
|
40342
|
+
return [];
|
40343
|
+
}
|
40344
|
+
const inputAddress = getInputAccountAddress(input);
|
40345
|
+
const calls = getContractCalls(contractInput, abiMap, receipt, rawPayload, maxInputs);
|
40346
|
+
return [
|
40347
|
+
{
|
40348
|
+
name: "Contract call" /* contractCall */,
|
40349
|
+
from: {
|
40350
|
+
type: 1 /* account */,
|
40351
|
+
address: inputAddress
|
40352
|
+
},
|
40353
|
+
to: {
|
40354
|
+
type: 0 /* contract */,
|
40355
|
+
address: receipt.to
|
40356
|
+
},
|
40357
|
+
assetsSent: getAssetsSent(receipt),
|
40358
|
+
calls
|
40359
|
+
}
|
40360
|
+
];
|
40361
|
+
}
|
39750
40362
|
function getContractCallOperations({
|
39751
40363
|
inputs,
|
39752
40364
|
outputs,
|
39753
40365
|
receipts,
|
39754
40366
|
abiMap,
|
39755
40367
|
rawPayload,
|
39756
|
-
maxInputs
|
40368
|
+
maxInputs,
|
40369
|
+
baseAssetId
|
39757
40370
|
}) {
|
39758
40371
|
const contractCallReceipts = getReceiptsCall(receipts);
|
39759
40372
|
const contractOutputs = getOutputsContract(outputs);
|
39760
|
-
|
40373
|
+
return contractOutputs.flatMap((output3) => {
|
39761
40374
|
const contractInput = getInputContractFromIndex(inputs, output3.inputIndex);
|
39762
|
-
if (contractInput) {
|
39763
|
-
|
39764
|
-
if (receipt.to === contractInput.contractID) {
|
39765
|
-
const input = getInputFromAssetId(inputs, receipt.assetId);
|
39766
|
-
if (input) {
|
39767
|
-
const inputAddress = getInputAccountAddress(input);
|
39768
|
-
const calls = [];
|
39769
|
-
const abi = abiMap?.[contractInput.contractID];
|
39770
|
-
if (abi) {
|
39771
|
-
calls.push(
|
39772
|
-
getFunctionCall({
|
39773
|
-
abi,
|
39774
|
-
receipt,
|
39775
|
-
rawPayload,
|
39776
|
-
maxInputs
|
39777
|
-
})
|
39778
|
-
);
|
39779
|
-
}
|
39780
|
-
const newContractCallOps = addOperation(prevContractCallOps, {
|
39781
|
-
name: "Contract call" /* contractCall */,
|
39782
|
-
from: {
|
39783
|
-
type: 1 /* account */,
|
39784
|
-
address: inputAddress
|
39785
|
-
},
|
39786
|
-
to: {
|
39787
|
-
type: 0 /* contract */,
|
39788
|
-
address: receipt.to
|
39789
|
-
},
|
39790
|
-
// if no amount is forwarded to the contract, skip showing assetsSent
|
39791
|
-
assetsSent: receipt.amount?.isZero() ? void 0 : [
|
39792
|
-
{
|
39793
|
-
amount: receipt.amount,
|
39794
|
-
assetId: receipt.assetId
|
39795
|
-
}
|
39796
|
-
],
|
39797
|
-
calls
|
39798
|
-
});
|
39799
|
-
return newContractCallOps;
|
39800
|
-
}
|
39801
|
-
}
|
39802
|
-
return prevContractCallOps;
|
39803
|
-
}, prevOutputCallOps);
|
39804
|
-
return newCallOps;
|
40375
|
+
if (!contractInput) {
|
40376
|
+
return [];
|
39805
40377
|
}
|
39806
|
-
return
|
39807
|
-
|
39808
|
-
|
40378
|
+
return contractCallReceipts.filter((receipt) => receipt.to === contractInput.contractID).flatMap(
|
40379
|
+
(receipt) => processCallReceipt(
|
40380
|
+
receipt,
|
40381
|
+
contractInput,
|
40382
|
+
inputs,
|
40383
|
+
abiMap,
|
40384
|
+
rawPayload,
|
40385
|
+
maxInputs,
|
40386
|
+
baseAssetId
|
40387
|
+
)
|
40388
|
+
);
|
40389
|
+
});
|
39809
40390
|
}
|
39810
40391
|
function extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs) {
|
39811
40392
|
const { to: toAddress, assetId, amount } = receipt;
|
@@ -39837,32 +40418,40 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
39837
40418
|
function getTransferOperations({
|
39838
40419
|
inputs,
|
39839
40420
|
outputs,
|
39840
|
-
receipts
|
40421
|
+
receipts,
|
40422
|
+
baseAssetId
|
39841
40423
|
}) {
|
39842
40424
|
let operations = [];
|
39843
40425
|
const coinOutputs = getOutputsCoin(outputs);
|
39844
40426
|
const contractInputs = getInputsContract(inputs);
|
39845
40427
|
const changeOutputs = getOutputsChange(outputs);
|
39846
|
-
|
39847
|
-
|
39848
|
-
const
|
39849
|
-
|
40428
|
+
const aggregated = aggregateInputsAmountsByAssetAndOwner(inputs, baseAssetId);
|
40429
|
+
coinOutputs.forEach(({ amount, assetId, to }) => {
|
40430
|
+
const txPayers = aggregated.get(assetId) || /* @__PURE__ */ new Map();
|
40431
|
+
let selectedPayer;
|
40432
|
+
let fallbackPayer;
|
40433
|
+
for (const [address, payedAmount] of txPayers) {
|
40434
|
+
if (!fallbackPayer) {
|
40435
|
+
fallbackPayer = address;
|
40436
|
+
}
|
40437
|
+
if (payedAmount.gte(amount)) {
|
40438
|
+
selectedPayer = address;
|
40439
|
+
break;
|
40440
|
+
}
|
40441
|
+
}
|
40442
|
+
selectedPayer = selectedPayer || fallbackPayer;
|
40443
|
+
if (selectedPayer) {
|
39850
40444
|
operations = addOperation(operations, {
|
39851
40445
|
name: "Transfer asset" /* transfer */,
|
39852
40446
|
from: {
|
39853
40447
|
type: 1 /* account */,
|
39854
|
-
address:
|
40448
|
+
address: selectedPayer
|
39855
40449
|
},
|
39856
40450
|
to: {
|
39857
40451
|
type: 1 /* account */,
|
39858
40452
|
address: to
|
39859
40453
|
},
|
39860
|
-
assetsSent: [
|
39861
|
-
{
|
39862
|
-
assetId,
|
39863
|
-
amount
|
39864
|
-
}
|
39865
|
-
]
|
40454
|
+
assetsSent: [{ assetId, amount }]
|
39866
40455
|
});
|
39867
40456
|
}
|
39868
40457
|
});
|
@@ -39935,21 +40524,19 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
39935
40524
|
baseAssetId
|
39936
40525
|
}) {
|
39937
40526
|
if (isTypeCreate(transactionType)) {
|
39938
|
-
return [
|
39939
|
-
...getContractCreatedOperations({ inputs, outputs }),
|
39940
|
-
...getTransferOperations({ inputs, outputs, receipts })
|
39941
|
-
];
|
40527
|
+
return [...getContractCreatedOperations({ inputs, outputs })];
|
39942
40528
|
}
|
39943
40529
|
if (isTypeScript(transactionType)) {
|
39944
40530
|
return [
|
39945
|
-
...getTransferOperations({ inputs, outputs, receipts }),
|
40531
|
+
...getTransferOperations({ inputs, outputs, receipts, baseAssetId }),
|
39946
40532
|
...getContractCallOperations({
|
39947
40533
|
inputs,
|
39948
40534
|
outputs,
|
39949
40535
|
receipts,
|
39950
40536
|
abiMap,
|
39951
40537
|
rawPayload,
|
39952
|
-
maxInputs
|
40538
|
+
maxInputs,
|
40539
|
+
baseAssetId
|
39953
40540
|
}),
|
39954
40541
|
...getWithdrawFromFuelOperations({ inputs, receipts, baseAssetId })
|
39955
40542
|
];
|
@@ -40140,6 +40727,7 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
40140
40727
|
isTypeScript: isTypeScript(transaction.type),
|
40141
40728
|
isTypeUpgrade: isTypeUpgrade(transaction.type),
|
40142
40729
|
isTypeUpload: isTypeUpload(transaction.type),
|
40730
|
+
isTypeBlob: isTypeBlob(transaction.type),
|
40143
40731
|
isStatusFailure,
|
40144
40732
|
isStatusSuccess,
|
40145
40733
|
isStatusPending,
|
@@ -40163,6 +40751,36 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
40163
40751
|
}
|
40164
40752
|
|
40165
40753
|
// src/providers/transaction-response/transaction-response.ts
|
40754
|
+
function mapGqlOutputsToTxOutputs(outputs) {
|
40755
|
+
return outputs.map((o) => {
|
40756
|
+
const obj = "amount" in o ? { ...o, amount: bn(o.amount) } : o;
|
40757
|
+
switch (obj.type) {
|
40758
|
+
case "CoinOutput":
|
40759
|
+
return { ...obj, type: OutputType.Coin };
|
40760
|
+
case "ContractOutput":
|
40761
|
+
return {
|
40762
|
+
...obj,
|
40763
|
+
type: OutputType.Contract,
|
40764
|
+
inputIndex: parseInt(obj.inputIndex, 10)
|
40765
|
+
};
|
40766
|
+
case "ChangeOutput":
|
40767
|
+
return {
|
40768
|
+
...obj,
|
40769
|
+
type: OutputType.Change
|
40770
|
+
};
|
40771
|
+
case "VariableOutput":
|
40772
|
+
return { ...obj, type: OutputType.Variable };
|
40773
|
+
case "ContractCreated":
|
40774
|
+
return {
|
40775
|
+
...obj,
|
40776
|
+
type: OutputType.ContractCreated,
|
40777
|
+
contractId: obj.contract
|
40778
|
+
};
|
40779
|
+
default:
|
40780
|
+
return assertUnreachable(obj);
|
40781
|
+
}
|
40782
|
+
});
|
40783
|
+
}
|
40166
40784
|
var TransactionResponse = class {
|
40167
40785
|
/** Transaction ID */
|
40168
40786
|
id;
|
@@ -40172,17 +40790,20 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
40172
40790
|
gasUsed = bn(0);
|
40173
40791
|
/** The graphql Transaction with receipts object. */
|
40174
40792
|
gqlTransaction;
|
40793
|
+
request;
|
40794
|
+
status;
|
40175
40795
|
abis;
|
40176
40796
|
/**
|
40177
40797
|
* Constructor for `TransactionResponse`.
|
40178
40798
|
*
|
40179
|
-
* @param
|
40799
|
+
* @param tx - The transaction ID or TransactionRequest.
|
40180
40800
|
* @param provider - The provider.
|
40181
40801
|
*/
|
40182
|
-
constructor(
|
40183
|
-
this.id =
|
40802
|
+
constructor(tx, provider, abis) {
|
40803
|
+
this.id = typeof tx === "string" ? tx : tx.getTransactionId(provider.getChainId());
|
40184
40804
|
this.provider = provider;
|
40185
40805
|
this.abis = abis;
|
40806
|
+
this.request = typeof tx === "string" ? void 0 : tx;
|
40186
40807
|
}
|
40187
40808
|
/**
|
40188
40809
|
* Async constructor for `TransactionResponse`. This method can be used to create
|
@@ -40197,6 +40818,54 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
40197
40818
|
await response.fetch();
|
40198
40819
|
return response;
|
40199
40820
|
}
|
40821
|
+
applyMalleableSubscriptionFields(transaction) {
|
40822
|
+
const status = this.status;
|
40823
|
+
if (!status) {
|
40824
|
+
return;
|
40825
|
+
}
|
40826
|
+
const tx = transaction;
|
40827
|
+
if (status.type === "SuccessStatus" || status.type === "FailureStatus") {
|
40828
|
+
tx.inputs = tx.inputs.map((input, idx) => {
|
40829
|
+
if ("txPointer" in input) {
|
40830
|
+
const correspondingInput = status.transaction.inputs?.[idx];
|
40831
|
+
return {
|
40832
|
+
...input,
|
40833
|
+
txPointer: TxPointerCoder.decodeFromGqlScalar(correspondingInput.txPointer)
|
40834
|
+
};
|
40835
|
+
}
|
40836
|
+
return input;
|
40837
|
+
});
|
40838
|
+
tx.outputs = mapGqlOutputsToTxOutputs(status.transaction.outputs);
|
40839
|
+
if ("receiptsRoot" in status.transaction) {
|
40840
|
+
tx.receiptsRoot = status.transaction.receiptsRoot;
|
40841
|
+
}
|
40842
|
+
}
|
40843
|
+
}
|
40844
|
+
async getTransaction() {
|
40845
|
+
if (this.request) {
|
40846
|
+
const tx = this.request.toTransaction();
|
40847
|
+
this.applyMalleableSubscriptionFields(tx);
|
40848
|
+
return {
|
40849
|
+
tx,
|
40850
|
+
bytes: this.request.toTransactionBytes()
|
40851
|
+
};
|
40852
|
+
}
|
40853
|
+
const gqlTransaction = this.gqlTransaction ?? await this.fetch();
|
40854
|
+
return {
|
40855
|
+
tx: this.decodeTransaction(gqlTransaction),
|
40856
|
+
bytes: arrayify(gqlTransaction.rawPayload)
|
40857
|
+
};
|
40858
|
+
}
|
40859
|
+
getReceipts() {
|
40860
|
+
const status = this.status ?? this.gqlTransaction?.status;
|
40861
|
+
switch (status?.type) {
|
40862
|
+
case "SuccessStatus":
|
40863
|
+
case "FailureStatus":
|
40864
|
+
return status.receipts.map(processGqlReceipt);
|
40865
|
+
default:
|
40866
|
+
return [];
|
40867
|
+
}
|
40868
|
+
}
|
40200
40869
|
/**
|
40201
40870
|
* Fetch the transaction with receipts from the provider.
|
40202
40871
|
*
|
@@ -40207,11 +40876,12 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
40207
40876
|
transactionId: this.id
|
40208
40877
|
});
|
40209
40878
|
if (!response.transaction) {
|
40210
|
-
const subscription = this.provider.operations.statusChange({
|
40879
|
+
const subscription = await this.provider.operations.statusChange({
|
40211
40880
|
transactionId: this.id
|
40212
40881
|
});
|
40213
40882
|
for await (const { statusChange } of subscription) {
|
40214
40883
|
if (statusChange) {
|
40884
|
+
this.status = statusChange;
|
40215
40885
|
break;
|
40216
40886
|
}
|
40217
40887
|
}
|
@@ -40240,28 +40910,17 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
40240
40910
|
* @returns
|
40241
40911
|
*/
|
40242
40912
|
async getTransactionSummary(contractsAbiMap) {
|
40243
|
-
|
40244
|
-
if (!transaction) {
|
40245
|
-
transaction = await this.fetch();
|
40246
|
-
}
|
40247
|
-
const decodedTransaction = this.decodeTransaction(
|
40248
|
-
transaction
|
40249
|
-
);
|
40250
|
-
let txReceipts = [];
|
40251
|
-
if (transaction?.status && "receipts" in transaction.status) {
|
40252
|
-
txReceipts = transaction.status.receipts;
|
40253
|
-
}
|
40254
|
-
const receipts = txReceipts.map(processGqlReceipt) || [];
|
40913
|
+
const { tx: transaction, bytes: transactionBytes } = await this.getTransaction();
|
40255
40914
|
const { gasPerByte, gasPriceFactor, gasCosts, maxGasPerTx } = this.provider.getGasConfig();
|
40256
40915
|
const gasPrice = await this.provider.getLatestGasPrice();
|
40257
40916
|
const maxInputs = this.provider.getChain().consensusParameters.txParameters.maxInputs;
|
40258
40917
|
const baseAssetId = this.provider.getBaseAssetId();
|
40259
40918
|
const transactionSummary = assembleTransactionSummary({
|
40260
40919
|
id: this.id,
|
40261
|
-
receipts,
|
40262
|
-
transaction
|
40263
|
-
transactionBytes
|
40264
|
-
gqlTransactionStatus:
|
40920
|
+
receipts: this.getReceipts(),
|
40921
|
+
transaction,
|
40922
|
+
transactionBytes,
|
40923
|
+
gqlTransactionStatus: this.status ?? this.gqlTransaction?.status,
|
40265
40924
|
gasPerByte,
|
40266
40925
|
gasPriceFactor,
|
40267
40926
|
abiMap: contractsAbiMap,
|
@@ -40278,11 +40937,13 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
40278
40937
|
if (status && status !== "SubmittedStatus") {
|
40279
40938
|
return;
|
40280
40939
|
}
|
40281
|
-
const subscription = this.provider.operations.statusChange({
|
40940
|
+
const subscription = await this.provider.operations.statusChange({
|
40282
40941
|
transactionId: this.id
|
40283
40942
|
});
|
40284
40943
|
for await (const { statusChange } of subscription) {
|
40944
|
+
this.status = statusChange;
|
40285
40945
|
if (statusChange.type === "SqueezedOutStatus") {
|
40946
|
+
this.unsetResourceCache();
|
40286
40947
|
throw new FuelError(
|
40287
40948
|
ErrorCode.TRANSACTION_SQUEEZED_OUT,
|
40288
40949
|
`Transaction Squeezed Out with reason: ${statusChange.reason}`
|
@@ -40292,7 +40953,6 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
40292
40953
|
break;
|
40293
40954
|
}
|
40294
40955
|
}
|
40295
|
-
await this.fetch();
|
40296
40956
|
}
|
40297
40957
|
/**
|
40298
40958
|
* Assembles the result of a transaction by retrieving the transaction summary,
|
@@ -40309,7 +40969,6 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
40309
40969
|
async assembleResult(contractsAbiMap) {
|
40310
40970
|
const transactionSummary = await this.getTransactionSummary(contractsAbiMap);
|
40311
40971
|
const transactionResult = {
|
40312
|
-
gqlTransaction: this.gqlTransaction,
|
40313
40972
|
...transactionSummary
|
40314
40973
|
};
|
40315
40974
|
let logs = [];
|
@@ -40321,9 +40980,11 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
40321
40980
|
);
|
40322
40981
|
transactionResult.logs = logs;
|
40323
40982
|
}
|
40324
|
-
const {
|
40325
|
-
|
40326
|
-
|
40983
|
+
const { receipts } = transactionResult;
|
40984
|
+
const status = this.status ?? this.gqlTransaction?.status;
|
40985
|
+
if (status?.type === "FailureStatus") {
|
40986
|
+
this.unsetResourceCache();
|
40987
|
+
const { reason } = status;
|
40327
40988
|
throw extractTxError({
|
40328
40989
|
receipts,
|
40329
40990
|
statusReason: reason,
|
@@ -40349,6 +41010,9 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
40349
41010
|
async wait(contractsAbiMap) {
|
40350
41011
|
return this.waitForResult(contractsAbiMap);
|
40351
41012
|
}
|
41013
|
+
unsetResourceCache() {
|
41014
|
+
this.provider.cache?.unset(this.id);
|
41015
|
+
}
|
40352
41016
|
};
|
40353
41017
|
|
40354
41018
|
// src/providers/utils/auto-retry-fetch.ts
|
@@ -40387,24 +41051,11 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
40387
41051
|
};
|
40388
41052
|
}
|
40389
41053
|
|
40390
|
-
// src/providers/utils/merge-quantities.ts
|
40391
|
-
var mergeQuantities = (...coinQuantities) => {
|
40392
|
-
const resultMap = {};
|
40393
|
-
function addToMap({ amount, assetId }) {
|
40394
|
-
if (resultMap[assetId]) {
|
40395
|
-
resultMap[assetId] = resultMap[assetId].add(amount);
|
40396
|
-
} else {
|
40397
|
-
resultMap[assetId] = amount;
|
40398
|
-
}
|
40399
|
-
}
|
40400
|
-
coinQuantities.forEach((arr) => arr.forEach(addToMap));
|
40401
|
-
return Object.entries(resultMap).map(([assetId, amount]) => ({ assetId, amount }));
|
40402
|
-
};
|
40403
|
-
|
40404
41054
|
// src/providers/provider.ts
|
40405
41055
|
var MAX_RETRIES = 10;
|
40406
41056
|
var RESOURCES_PAGE_SIZE_LIMIT = 512;
|
40407
41057
|
var BLOCKS_PAGE_SIZE_LIMIT = 5;
|
41058
|
+
var DEFAULT_RESOURCE_CACHE_TTL = 2e4;
|
40408
41059
|
var processGqlChain = (chain) => {
|
40409
41060
|
const { name, daHeight, consensusParameters, latestBlock } = chain;
|
40410
41061
|
const {
|
@@ -40487,14 +41138,23 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
40487
41138
|
__publicField(this, "cache");
|
40488
41139
|
__publicField(this, "options", {
|
40489
41140
|
timeout: void 0,
|
40490
|
-
|
41141
|
+
resourceCacheTTL: void 0,
|
40491
41142
|
fetch: void 0,
|
40492
41143
|
retryOptions: void 0
|
40493
41144
|
});
|
40494
41145
|
this.options = { ...this.options, ...options };
|
40495
41146
|
this.url = url;
|
40496
41147
|
this.operations = this.createOperations();
|
40497
|
-
|
41148
|
+
const { resourceCacheTTL } = this.options;
|
41149
|
+
if (isDefined(resourceCacheTTL)) {
|
41150
|
+
if (resourceCacheTTL !== -1) {
|
41151
|
+
this.cache = new ResourceCache(resourceCacheTTL);
|
41152
|
+
} else {
|
41153
|
+
this.cache = void 0;
|
41154
|
+
}
|
41155
|
+
} else {
|
41156
|
+
this.cache = new ResourceCache(DEFAULT_RESOURCE_CACHE_TTL);
|
41157
|
+
}
|
40498
41158
|
}
|
40499
41159
|
/** @hidden */
|
40500
41160
|
static clearChainAndNodeCaches() {
|
@@ -40596,9 +41256,9 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
|
|
40596
41256
|
* @returns A promise that resolves to the Chain and NodeInfo.
|
40597
41257
|
*/
|
40598
41258
|
async fetchChainAndNodeInfo() {
|
40599
|
-
const chain = await this.fetchChain();
|
40600
41259
|
const nodeInfo = await this.fetchNode();
|
40601
41260
|
_Provider.ensureClientVersionIsSupported(nodeInfo);
|
41261
|
+
const chain = await this.fetchChain();
|
40602
41262
|
return {
|
40603
41263
|
chain,
|
40604
41264
|
nodeInfo
|
@@ -40644,7 +41304,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
40644
41304
|
const opDefinition = query.definitions.find((x) => x.kind === "OperationDefinition");
|
40645
41305
|
const isSubscription = opDefinition?.operation === "subscription";
|
40646
41306
|
if (isSubscription) {
|
40647
|
-
return
|
41307
|
+
return FuelGraphqlSubscriber.create({
|
40648
41308
|
url: this.url,
|
40649
41309
|
query,
|
40650
41310
|
fetchFn: (url, requestInit) => fetchFn(url, requestInit, this.options),
|
@@ -40725,6 +41385,21 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
40725
41385
|
} = this.getChain();
|
40726
41386
|
return baseAssetId;
|
40727
41387
|
}
|
41388
|
+
validateTransaction(tx, consensusParameters) {
|
41389
|
+
const { maxOutputs, maxInputs } = consensusParameters.txParameters;
|
41390
|
+
if (bn(tx.inputs.length).gt(maxInputs)) {
|
41391
|
+
throw new FuelError(
|
41392
|
+
ErrorCode.MAX_INPUTS_EXCEEDED,
|
41393
|
+
"The transaction exceeds the maximum allowed number of inputs."
|
41394
|
+
);
|
41395
|
+
}
|
41396
|
+
if (bn(tx.outputs.length).gt(maxOutputs)) {
|
41397
|
+
throw new FuelError(
|
41398
|
+
ErrorCode.MAX_OUTPUTS_EXCEEDED,
|
41399
|
+
"The transaction exceeds the maximum allowed number of outputs."
|
41400
|
+
);
|
41401
|
+
}
|
41402
|
+
}
|
40728
41403
|
/**
|
40729
41404
|
* Submits a transaction to the chain to be executed.
|
40730
41405
|
*
|
@@ -40736,39 +41411,23 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
40736
41411
|
* @returns A promise that resolves to the transaction response object.
|
40737
41412
|
*/
|
40738
41413
|
// #region Provider-sendTransaction
|
40739
|
-
async sendTransaction(transactionRequestLike, { estimateTxDependencies = true
|
41414
|
+
async sendTransaction(transactionRequestLike, { estimateTxDependencies = true } = {}) {
|
40740
41415
|
const transactionRequest = transactionRequestify(transactionRequestLike);
|
40741
|
-
__privateMethod(this, _cacheInputs, cacheInputs_fn).call(this, transactionRequest.inputs);
|
40742
41416
|
if (estimateTxDependencies) {
|
40743
41417
|
await this.estimateTxDependencies(transactionRequest);
|
40744
41418
|
}
|
41419
|
+
const { consensusParameters } = this.getChain();
|
41420
|
+
this.validateTransaction(transactionRequest, consensusParameters);
|
40745
41421
|
const encodedTransaction = hexlify(transactionRequest.toTransactionBytes());
|
40746
41422
|
let abis;
|
40747
|
-
if (transactionRequest
|
41423
|
+
if (isTransactionTypeScript(transactionRequest)) {
|
40748
41424
|
abis = transactionRequest.abis;
|
40749
41425
|
}
|
40750
|
-
if (awaitExecution) {
|
40751
|
-
const subscription = this.operations.submitAndAwait({ encodedTransaction });
|
40752
|
-
for await (const { submitAndAwait } of subscription) {
|
40753
|
-
if (submitAndAwait.type === "SqueezedOutStatus") {
|
40754
|
-
throw new FuelError(
|
40755
|
-
ErrorCode.TRANSACTION_SQUEEZED_OUT,
|
40756
|
-
`Transaction Squeezed Out with reason: ${submitAndAwait.reason}`
|
40757
|
-
);
|
40758
|
-
}
|
40759
|
-
if (submitAndAwait.type !== "SubmittedStatus") {
|
40760
|
-
break;
|
40761
|
-
}
|
40762
|
-
}
|
40763
|
-
const transactionId2 = transactionRequest.getTransactionId(this.getChainId());
|
40764
|
-
const response = new TransactionResponse(transactionId2, this, abis);
|
40765
|
-
await response.fetch();
|
40766
|
-
return response;
|
40767
|
-
}
|
40768
41426
|
const {
|
40769
41427
|
submit: { id: transactionId }
|
40770
41428
|
} = await this.operations.submit({ encodedTransaction });
|
40771
|
-
|
41429
|
+
__privateMethod(this, _cacheInputs, cacheInputs_fn).call(this, transactionRequest.inputs, transactionId);
|
41430
|
+
return new TransactionResponse(transactionRequest, this, abis);
|
40772
41431
|
}
|
40773
41432
|
/**
|
40774
41433
|
* Executes a transaction without actually submitting it to the chain.
|
@@ -40837,7 +41496,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
40837
41496
|
* @returns A promise that resolves to the estimate transaction dependencies.
|
40838
41497
|
*/
|
40839
41498
|
async estimateTxDependencies(transactionRequest) {
|
40840
|
-
if (transactionRequest
|
41499
|
+
if (isTransactionTypeCreate(transactionRequest)) {
|
40841
41500
|
return {
|
40842
41501
|
receipts: [],
|
40843
41502
|
outputVariables: 0,
|
@@ -40859,7 +41518,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
40859
41518
|
dryRunStatus = status;
|
40860
41519
|
const { missingOutputVariables, missingOutputContractIds } = getReceiptsWithMissingData(receipts);
|
40861
41520
|
const hasMissingOutputs = missingOutputVariables.length !== 0 || missingOutputContractIds.length !== 0;
|
40862
|
-
if (hasMissingOutputs) {
|
41521
|
+
if (hasMissingOutputs && isTransactionTypeScript(transactionRequest)) {
|
40863
41522
|
outputVariables += missingOutputVariables.length;
|
40864
41523
|
transactionRequest.addVariableOutputs(missingOutputVariables.length);
|
40865
41524
|
missingOutputContractIds.forEach(({ contractId }) => {
|
@@ -40901,7 +41560,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
40901
41560
|
const allRequests = clone_default(transactionRequests);
|
40902
41561
|
const serializedTransactionsMap = /* @__PURE__ */ new Map();
|
40903
41562
|
allRequests.forEach((req, index) => {
|
40904
|
-
if (req
|
41563
|
+
if (isTransactionTypeScript(req)) {
|
40905
41564
|
serializedTransactionsMap.set(index, hexlify(req.toTransactionBytes()));
|
40906
41565
|
}
|
40907
41566
|
});
|
@@ -40927,7 +41586,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
40927
41586
|
);
|
40928
41587
|
const hasMissingOutputs = missingOutputVariables.length > 0 || missingOutputContractIds.length > 0;
|
40929
41588
|
const request = allRequests[requestIdx];
|
40930
|
-
if (hasMissingOutputs && request
|
41589
|
+
if (hasMissingOutputs && isTransactionTypeScript(request)) {
|
40931
41590
|
result.outputVariables += missingOutputVariables.length;
|
40932
41591
|
request.addVariableOutputs(missingOutputVariables.length);
|
40933
41592
|
missingOutputContractIds.forEach(({ contractId }) => {
|
@@ -40991,7 +41650,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
40991
41650
|
tip: transactionRequest.tip
|
40992
41651
|
}).add(1);
|
40993
41652
|
let gasLimit = bn(0);
|
40994
|
-
if (transactionRequest
|
41653
|
+
if (isTransactionTypeScript(transactionRequest)) {
|
40995
41654
|
gasLimit = transactionRequest.gasLimit;
|
40996
41655
|
if (transactionRequest.gasLimit.eq(0)) {
|
40997
41656
|
transactionRequest.gasLimit = minGas;
|
@@ -41046,6 +41705,8 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
41046
41705
|
return { receipts: callResult[0].receipts };
|
41047
41706
|
}
|
41048
41707
|
/**
|
41708
|
+
* @hidden
|
41709
|
+
*
|
41049
41710
|
* Returns a transaction cost to enable user
|
41050
41711
|
* to set gasLimit and also reserve balance amounts
|
41051
41712
|
* on the transaction.
|
@@ -41055,23 +41716,16 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
41055
41716
|
*
|
41056
41717
|
* @returns A promise that resolves to the transaction cost object.
|
41057
41718
|
*/
|
41058
|
-
async getTransactionCost(transactionRequestLike, {
|
41719
|
+
async getTransactionCost(transactionRequestLike, { signatureCallback } = {}) {
|
41059
41720
|
const txRequestClone = clone_default(transactionRequestify(transactionRequestLike));
|
41060
|
-
const isScriptTransaction = txRequestClone.type === TransactionType.Script;
|
41061
|
-
const baseAssetId = this.getBaseAssetId();
|
41062
41721
|
const updateMaxFee = txRequestClone.maxFee.eq(0);
|
41063
|
-
const
|
41064
|
-
const allQuantities = mergeQuantities(coinOutputsQuantities, quantitiesToContract);
|
41065
|
-
txRequestClone.fundWithFakeUtxos(allQuantities, baseAssetId, resourcesOwner?.address);
|
41722
|
+
const isScriptTransaction = isTransactionTypeScript(txRequestClone);
|
41066
41723
|
if (isScriptTransaction) {
|
41067
41724
|
txRequestClone.gasLimit = bn(0);
|
41068
41725
|
}
|
41069
|
-
if (resourcesOwner && "populateTransactionPredicateData" in resourcesOwner) {
|
41070
|
-
resourcesOwner.populateTransactionPredicateData(txRequestClone);
|
41071
|
-
}
|
41072
41726
|
const signedRequest = clone_default(txRequestClone);
|
41073
41727
|
let addedSignatures = 0;
|
41074
|
-
if (signatureCallback &&
|
41728
|
+
if (signatureCallback && isTransactionTypeScript(signedRequest)) {
|
41075
41729
|
const lengthBefore = signedRequest.witnesses.length;
|
41076
41730
|
await signatureCallback(signedRequest);
|
41077
41731
|
addedSignatures = signedRequest.witnesses.length - lengthBefore;
|
@@ -41104,7 +41758,6 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
41104
41758
|
}));
|
41105
41759
|
}
|
41106
41760
|
return {
|
41107
|
-
requiredQuantities: allQuantities,
|
41108
41761
|
receipts,
|
41109
41762
|
gasUsed,
|
41110
41763
|
gasPrice,
|
@@ -41120,34 +41773,6 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
41120
41773
|
updateMaxFee
|
41121
41774
|
};
|
41122
41775
|
}
|
41123
|
-
/**
|
41124
|
-
* Get the required quantities and associated resources for a transaction.
|
41125
|
-
*
|
41126
|
-
* @param owner - address to add resources from.
|
41127
|
-
* @param transactionRequestLike - transaction request to populate resources for.
|
41128
|
-
* @param quantitiesToContract - quantities for the contract (optional).
|
41129
|
-
*
|
41130
|
-
* @returns a promise resolving to the required quantities for the transaction.
|
41131
|
-
*/
|
41132
|
-
async getResourcesForTransaction(owner, transactionRequestLike, quantitiesToContract = []) {
|
41133
|
-
const ownerAddress = Address.fromAddressOrString(owner);
|
41134
|
-
const transactionRequest = transactionRequestify(clone_default(transactionRequestLike));
|
41135
|
-
const transactionCost = await this.getTransactionCost(transactionRequest, {
|
41136
|
-
quantitiesToContract
|
41137
|
-
});
|
41138
|
-
transactionRequest.addResources(
|
41139
|
-
await this.getResourcesToSpend(ownerAddress, transactionCost.requiredQuantities)
|
41140
|
-
);
|
41141
|
-
const { requiredQuantities, ...txCost } = await this.getTransactionCost(transactionRequest, {
|
41142
|
-
quantitiesToContract
|
41143
|
-
});
|
41144
|
-
const resources = await this.getResourcesToSpend(ownerAddress, requiredQuantities);
|
41145
|
-
return {
|
41146
|
-
resources,
|
41147
|
-
requiredQuantities,
|
41148
|
-
...txCost
|
41149
|
-
};
|
41150
|
-
}
|
41151
41776
|
/**
|
41152
41777
|
* Returns coins for the given owner.
|
41153
41778
|
*
|
@@ -41196,10 +41821,9 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
41196
41821
|
utxos: excludedIds?.utxos?.map((id) => hexlify(id)) || []
|
41197
41822
|
};
|
41198
41823
|
if (this.cache) {
|
41199
|
-
const
|
41200
|
-
|
41201
|
-
);
|
41202
|
-
excludeInput.utxos = Array.from(uniqueUtxos);
|
41824
|
+
const cached = this.cache.getActiveData();
|
41825
|
+
excludeInput.messages.push(...cached.messages);
|
41826
|
+
excludeInput.utxos.push(...cached.utxos);
|
41203
41827
|
}
|
41204
41828
|
const coinsQuery = {
|
41205
41829
|
owner: ownerAddress.toB256(),
|
@@ -41684,15 +42308,22 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
41684
42308
|
};
|
41685
42309
|
var Provider = _Provider;
|
41686
42310
|
_cacheInputs = new WeakSet();
|
41687
|
-
cacheInputs_fn = function(inputs) {
|
42311
|
+
cacheInputs_fn = function(inputs, transactionId) {
|
41688
42312
|
if (!this.cache) {
|
41689
42313
|
return;
|
41690
42314
|
}
|
41691
|
-
inputs.
|
41692
|
-
|
41693
|
-
|
41694
|
-
|
41695
|
-
|
42315
|
+
const inputsToCache = inputs.reduce(
|
42316
|
+
(acc, input) => {
|
42317
|
+
if (input.type === InputType.Coin) {
|
42318
|
+
acc.utxos.push(input.id);
|
42319
|
+
} else if (input.type === InputType.Message) {
|
42320
|
+
acc.messages.push(input.nonce);
|
42321
|
+
}
|
42322
|
+
return acc;
|
42323
|
+
},
|
42324
|
+
{ utxos: [], messages: [] }
|
42325
|
+
);
|
42326
|
+
this.cache.set(transactionId, inputsToCache);
|
41696
42327
|
};
|
41697
42328
|
/** @hidden */
|
41698
42329
|
__publicField(Provider, "chainInfoCache", {});
|
@@ -41745,7 +42376,6 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
41745
42376
|
baseAssetId
|
41746
42377
|
});
|
41747
42378
|
return {
|
41748
|
-
gqlTransaction,
|
41749
42379
|
...transactionInfo
|
41750
42380
|
};
|
41751
42381
|
}
|
@@ -41759,6 +42389,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
41759
42389
|
const gasPrice = await provider.getLatestGasPrice();
|
41760
42390
|
const baseAssetId = provider.getBaseAssetId();
|
41761
42391
|
const transactionSummary = assembleTransactionSummary({
|
42392
|
+
id: transactionRequest.getTransactionId(provider.getChainId()),
|
41762
42393
|
receipts,
|
41763
42394
|
transaction,
|
41764
42395
|
transactionBytes,
|
@@ -41811,7 +42442,6 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
41811
42442
|
baseAssetId
|
41812
42443
|
});
|
41813
42444
|
const output3 = {
|
41814
|
-
gqlTransaction,
|
41815
42445
|
...transactionSummary
|
41816
42446
|
};
|
41817
42447
|
return output3;
|
@@ -41947,6 +42577,20 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
41947
42577
|
];
|
41948
42578
|
var assets = resolveIconPaths(rawAssets, fuelAssetsBaseUrl);
|
41949
42579
|
|
42580
|
+
// src/providers/utils/merge-quantities.ts
|
42581
|
+
var mergeQuantities = (...coinQuantities) => {
|
42582
|
+
const resultMap = {};
|
42583
|
+
function addToMap({ amount, assetId }) {
|
42584
|
+
if (resultMap[assetId]) {
|
42585
|
+
resultMap[assetId] = resultMap[assetId].add(amount);
|
42586
|
+
} else {
|
42587
|
+
resultMap[assetId] = amount;
|
42588
|
+
}
|
42589
|
+
}
|
42590
|
+
coinQuantities.forEach((arr) => arr.forEach(addToMap));
|
42591
|
+
return Object.entries(resultMap).map(([assetId, amount]) => ({ assetId, amount }));
|
42592
|
+
};
|
42593
|
+
|
41950
42594
|
// src/utils/formatTransferToContractScriptData.ts
|
41951
42595
|
var asm = __toESM(require_node());
|
41952
42596
|
var formatTransferToContractScriptData = (params) => {
|
@@ -41981,7 +42625,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
41981
42625
|
};
|
41982
42626
|
|
41983
42627
|
// src/account.ts
|
41984
|
-
var MAX_FUNDING_ATTEMPTS =
|
42628
|
+
var MAX_FUNDING_ATTEMPTS = 5;
|
41985
42629
|
var Account = class extends AbstractAccount {
|
41986
42630
|
/**
|
41987
42631
|
* The address associated with the account.
|
@@ -42094,7 +42738,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42094
42738
|
* @returns A promise that resolves to the funded transaction request.
|
42095
42739
|
*/
|
42096
42740
|
async fund(request, params) {
|
42097
|
-
const { addedSignatures, estimatedPredicates, requiredQuantities, updateMaxFee } = params;
|
42741
|
+
const { addedSignatures, estimatedPredicates, requiredQuantities, updateMaxFee, gasPrice } = params;
|
42098
42742
|
const fee = request.maxFee;
|
42099
42743
|
const baseAssetId = this.provider.getBaseAssetId();
|
42100
42744
|
const requiredInBaseAsset = requiredQuantities.find((quantity) => quantity.assetId === baseAssetId)?.amount || bn(0);
|
@@ -42142,10 +42786,12 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42142
42786
|
);
|
42143
42787
|
}
|
42144
42788
|
if (!updateMaxFee) {
|
42789
|
+
needsToBeFunded = false;
|
42145
42790
|
break;
|
42146
42791
|
}
|
42147
42792
|
const { maxFee: newFee } = await this.provider.estimateTxGasAndFee({
|
42148
|
-
transactionRequest: requestToReestimate2
|
42793
|
+
transactionRequest: requestToReestimate2,
|
42794
|
+
gasPrice
|
42149
42795
|
});
|
42150
42796
|
const totalBaseAssetOnInputs = getAssetAmountInRequestInputs(
|
42151
42797
|
request.inputs,
|
@@ -42165,6 +42811,12 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42165
42811
|
}
|
42166
42812
|
fundingAttempts += 1;
|
42167
42813
|
}
|
42814
|
+
if (needsToBeFunded) {
|
42815
|
+
throw new FuelError(
|
42816
|
+
ErrorCode.NOT_ENOUGH_FUNDS,
|
42817
|
+
`The account ${this.address} does not have enough base asset funds to cover the transaction execution.`
|
42818
|
+
);
|
42819
|
+
}
|
42168
42820
|
request.updatePredicateGasUsed(estimatedPredicates);
|
42169
42821
|
const requestToReestimate = clone_default(request);
|
42170
42822
|
if (addedSignatures) {
|
@@ -42284,9 +42936,8 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42284
42936
|
scriptData
|
42285
42937
|
});
|
42286
42938
|
request.addContractInputAndOutput(contractAddress);
|
42287
|
-
const txCost = await this.
|
42288
|
-
|
42289
|
-
quantitiesToContract: [{ amount: bn(amount), assetId: String(assetIdToTransfer) }]
|
42939
|
+
const txCost = await this.getTransactionCost(request, {
|
42940
|
+
quantities: [{ amount: bn(amount), assetId: String(assetIdToTransfer) }]
|
42290
42941
|
});
|
42291
42942
|
request = this.validateGasLimitAndMaxFee({
|
42292
42943
|
transactionRequest: request,
|
@@ -42321,8 +42972,8 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42321
42972
|
const params = { script, ...txParams };
|
42322
42973
|
const baseAssetId = this.provider.getBaseAssetId();
|
42323
42974
|
let request = new ScriptTransactionRequest(params);
|
42324
|
-
const
|
42325
|
-
const txCost = await this.
|
42975
|
+
const quantities = [{ amount: bn(amount), assetId: baseAssetId }];
|
42976
|
+
const txCost = await this.getTransactionCost(request, { quantities });
|
42326
42977
|
request = this.validateGasLimitAndMaxFee({
|
42327
42978
|
transactionRequest: request,
|
42328
42979
|
gasUsed: txCost.gasUsed,
|
@@ -42332,6 +42983,58 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42332
42983
|
await this.fund(request, txCost);
|
42333
42984
|
return this.sendTransaction(request);
|
42334
42985
|
}
|
42986
|
+
/**
|
42987
|
+
* Returns a transaction cost to enable user
|
42988
|
+
* to set gasLimit and also reserve balance amounts
|
42989
|
+
* on the transaction.
|
42990
|
+
*
|
42991
|
+
* @param transactionRequestLike - The transaction request object.
|
42992
|
+
* @param transactionCostParams - The transaction cost parameters (optional).
|
42993
|
+
*
|
42994
|
+
* @returns A promise that resolves to the transaction cost object.
|
42995
|
+
*/
|
42996
|
+
async getTransactionCost(transactionRequestLike, { signatureCallback, quantities = [] } = {}) {
|
42997
|
+
const txRequestClone = clone_default(transactionRequestify(transactionRequestLike));
|
42998
|
+
const baseAssetId = this.provider.getBaseAssetId();
|
42999
|
+
const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
|
43000
|
+
const requiredQuantities = mergeQuantities(coinOutputsQuantities, quantities);
|
43001
|
+
const transactionFeeForDryRun = [{ assetId: baseAssetId, amount: bn("100000000000000000") }];
|
43002
|
+
const findAssetInput = (assetId) => txRequestClone.inputs.find((input) => {
|
43003
|
+
if ("assetId" in input) {
|
43004
|
+
return input.assetId === assetId;
|
43005
|
+
}
|
43006
|
+
if ("recipient" in input) {
|
43007
|
+
return baseAssetId === assetId;
|
43008
|
+
}
|
43009
|
+
return false;
|
43010
|
+
});
|
43011
|
+
const updateAssetInput = (assetId, quantity) => {
|
43012
|
+
const assetInput = findAssetInput(assetId);
|
43013
|
+
const usedQuantity = quantity;
|
43014
|
+
if (assetInput && "amount" in assetInput) {
|
43015
|
+
assetInput.amount = usedQuantity;
|
43016
|
+
} else {
|
43017
|
+
txRequestClone.addResources(
|
43018
|
+
this.generateFakeResources([
|
43019
|
+
{
|
43020
|
+
amount: quantity,
|
43021
|
+
assetId
|
43022
|
+
}
|
43023
|
+
])
|
43024
|
+
);
|
43025
|
+
}
|
43026
|
+
};
|
43027
|
+
mergeQuantities(requiredQuantities, transactionFeeForDryRun).forEach(
|
43028
|
+
({ amount, assetId }) => updateAssetInput(assetId, amount)
|
43029
|
+
);
|
43030
|
+
const txCost = await this.provider.getTransactionCost(txRequestClone, {
|
43031
|
+
signatureCallback
|
43032
|
+
});
|
43033
|
+
return {
|
43034
|
+
...txCost,
|
43035
|
+
requiredQuantities
|
43036
|
+
};
|
43037
|
+
}
|
42335
43038
|
/**
|
42336
43039
|
* Sign a message from the account via the connector.
|
42337
43040
|
*
|
@@ -42368,7 +43071,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42368
43071
|
* @param sendTransactionParams - The provider send transaction parameters (optional).
|
42369
43072
|
* @returns A promise that resolves to the transaction response.
|
42370
43073
|
*/
|
42371
|
-
async sendTransaction(transactionRequestLike, { estimateTxDependencies = true
|
43074
|
+
async sendTransaction(transactionRequestLike, { estimateTxDependencies = true } = {}) {
|
42372
43075
|
if (this._connector) {
|
42373
43076
|
return this.provider.getTransactionResponse(
|
42374
43077
|
await this._connector.sendTransaction(this.address.toString(), transactionRequestLike)
|
@@ -42379,7 +43082,6 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42379
43082
|
await this.provider.estimateTxDependencies(transactionRequest);
|
42380
43083
|
}
|
42381
43084
|
return this.provider.sendTransaction(transactionRequest, {
|
42382
|
-
awaitExecution,
|
42383
43085
|
estimateTxDependencies: false
|
42384
43086
|
});
|
42385
43087
|
}
|
@@ -42424,9 +43126,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42424
43126
|
/** @hidden * */
|
42425
43127
|
async estimateAndFundTransaction(transactionRequest, txParams) {
|
42426
43128
|
let request = transactionRequest;
|
42427
|
-
const txCost = await this.
|
42428
|
-
resourcesOwner: this
|
42429
|
-
});
|
43129
|
+
const txCost = await this.getTransactionCost(request);
|
42430
43130
|
request = this.validateGasLimitAndMaxFee({
|
42431
43131
|
transactionRequest: request,
|
42432
43132
|
gasUsed: txCost.gasUsed,
|
@@ -42525,10 +43225,10 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42525
43225
|
sum += a.length;
|
42526
43226
|
}
|
42527
43227
|
const res = new Uint8Array(sum);
|
42528
|
-
for (let i = 0,
|
43228
|
+
for (let i = 0, pad = 0; i < arrays.length; i++) {
|
42529
43229
|
const a = arrays[i];
|
42530
|
-
res.set(a,
|
42531
|
-
|
43230
|
+
res.set(a, pad);
|
43231
|
+
pad += a.length;
|
42532
43232
|
}
|
42533
43233
|
return res;
|
42534
43234
|
}
|
@@ -42820,16 +43520,16 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
42820
43520
|
this.blockLen = this.iHash.blockLen;
|
42821
43521
|
this.outputLen = this.iHash.outputLen;
|
42822
43522
|
const blockLen = this.blockLen;
|
42823
|
-
const
|
42824
|
-
|
42825
|
-
for (let i = 0; i <
|
42826
|
-
|
42827
|
-
this.iHash.update(
|
43523
|
+
const pad = new Uint8Array(blockLen);
|
43524
|
+
pad.set(key.length > blockLen ? hash4.create().update(key).digest() : key);
|
43525
|
+
for (let i = 0; i < pad.length; i++)
|
43526
|
+
pad[i] ^= 54;
|
43527
|
+
this.iHash.update(pad);
|
42828
43528
|
this.oHash = hash4.create();
|
42829
|
-
for (let i = 0; i <
|
42830
|
-
|
42831
|
-
this.oHash.update(
|
42832
|
-
|
43529
|
+
for (let i = 0; i < pad.length; i++)
|
43530
|
+
pad[i] ^= 54 ^ 92;
|
43531
|
+
this.oHash.update(pad);
|
43532
|
+
pad.fill(0);
|
42833
43533
|
}
|
42834
43534
|
update(buf) {
|
42835
43535
|
exists2(this);
|
@@ -44248,53 +44948,6 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
44248
44948
|
}
|
44249
44949
|
};
|
44250
44950
|
|
44251
|
-
// ../../node_modules/.pnpm/uuid@10.0.0/node_modules/uuid/dist/esm-node/stringify.js
|
44252
|
-
var byteToHex = [];
|
44253
|
-
for (let i = 0; i < 256; ++i) {
|
44254
|
-
byteToHex.push((i + 256).toString(16).slice(1));
|
44255
|
-
}
|
44256
|
-
function unsafeStringify(arr, offset = 0) {
|
44257
|
-
return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
|
44258
|
-
}
|
44259
|
-
|
44260
|
-
// ../../node_modules/.pnpm/uuid@10.0.0/node_modules/uuid/dist/esm-node/rng.js
|
44261
|
-
var import_node_crypto = __toESM(__require("crypto"));
|
44262
|
-
var rnds8Pool = new Uint8Array(256);
|
44263
|
-
var poolPtr = rnds8Pool.length;
|
44264
|
-
function rng() {
|
44265
|
-
if (poolPtr > rnds8Pool.length - 16) {
|
44266
|
-
import_node_crypto.default.randomFillSync(rnds8Pool);
|
44267
|
-
poolPtr = 0;
|
44268
|
-
}
|
44269
|
-
return rnds8Pool.slice(poolPtr, poolPtr += 16);
|
44270
|
-
}
|
44271
|
-
|
44272
|
-
// ../../node_modules/.pnpm/uuid@10.0.0/node_modules/uuid/dist/esm-node/native.js
|
44273
|
-
var import_node_crypto2 = __toESM(__require("crypto"));
|
44274
|
-
var native_default = {
|
44275
|
-
randomUUID: import_node_crypto2.default.randomUUID
|
44276
|
-
};
|
44277
|
-
|
44278
|
-
// ../../node_modules/.pnpm/uuid@10.0.0/node_modules/uuid/dist/esm-node/v4.js
|
44279
|
-
function v4(options, buf, offset) {
|
44280
|
-
if (native_default.randomUUID && !buf && !options) {
|
44281
|
-
return native_default.randomUUID();
|
44282
|
-
}
|
44283
|
-
options = options || {};
|
44284
|
-
const rnds = options.random || (options.rng || rng)();
|
44285
|
-
rnds[6] = rnds[6] & 15 | 64;
|
44286
|
-
rnds[8] = rnds[8] & 63 | 128;
|
44287
|
-
if (buf) {
|
44288
|
-
offset = offset || 0;
|
44289
|
-
for (let i = 0; i < 16; ++i) {
|
44290
|
-
buf[offset + i] = rnds[i];
|
44291
|
-
}
|
44292
|
-
return buf;
|
44293
|
-
}
|
44294
|
-
return unsafeStringify(rnds);
|
44295
|
-
}
|
44296
|
-
var v4_default = v4;
|
44297
|
-
|
44298
44951
|
// src/wallet/keystore-wallet.ts
|
44299
44952
|
var DEFAULT_KDF_PARAMS_LOG_N = 13;
|
44300
44953
|
var DEFAULT_KDF_PARAMS_R = 8;
|
@@ -44325,7 +44978,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
44325
44978
|
const macHashUint8Array = keccak2562(data);
|
44326
44979
|
const mac = stringFromBuffer2(macHashUint8Array, "hex");
|
44327
44980
|
const keystore = {
|
44328
|
-
id:
|
44981
|
+
id: randomUUID2(),
|
44329
44982
|
version: 3,
|
44330
44983
|
address: removeHexPrefix(ownerAddress.toHexString()),
|
44331
44984
|
crypto: {
|
@@ -44454,17 +45107,16 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
44454
45107
|
*
|
44455
45108
|
* @param transactionRequestLike - The transaction request to send.
|
44456
45109
|
* @param estimateTxDependencies - Whether to estimate the transaction dependencies.
|
44457
|
-
* @param awaitExecution - Whether to wait for the transaction to be executed.
|
44458
45110
|
* @returns A promise that resolves to the TransactionResponse object.
|
44459
45111
|
*/
|
44460
|
-
async sendTransaction(transactionRequestLike, { estimateTxDependencies = false
|
45112
|
+
async sendTransaction(transactionRequestLike, { estimateTxDependencies = false } = {}) {
|
44461
45113
|
const transactionRequest = transactionRequestify(transactionRequestLike);
|
44462
45114
|
if (estimateTxDependencies) {
|
44463
45115
|
await this.provider.estimateTxDependencies(transactionRequest);
|
44464
45116
|
}
|
44465
45117
|
return this.provider.sendTransaction(
|
44466
45118
|
await this.populateTransactionWitnessesSignature(transactionRequest),
|
44467
|
-
{
|
45119
|
+
{ estimateTxDependencies: false }
|
44468
45120
|
);
|
44469
45121
|
}
|
44470
45122
|
/**
|
@@ -47675,14 +48327,14 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
47675
48327
|
* @param bytecode - The bytecode of the predicate.
|
47676
48328
|
* @param abi - The JSON ABI of the predicate.
|
47677
48329
|
* @param provider - The provider used to interact with the blockchain.
|
47678
|
-
* @param
|
48330
|
+
* @param data - The predicate input data (optional).
|
47679
48331
|
* @param configurableConstants - Optional configurable constants for the predicate.
|
47680
48332
|
*/
|
47681
48333
|
constructor({
|
47682
48334
|
bytecode,
|
47683
48335
|
abi,
|
47684
48336
|
provider,
|
47685
|
-
|
48337
|
+
data,
|
47686
48338
|
configurableConstants
|
47687
48339
|
}) {
|
47688
48340
|
const { predicateBytes, predicateInterface } = Predicate.processPredicateData(
|
@@ -47694,8 +48346,8 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
47694
48346
|
super(address, provider);
|
47695
48347
|
this.bytes = predicateBytes;
|
47696
48348
|
this.interface = predicateInterface;
|
47697
|
-
if (
|
47698
|
-
this.predicateData =
|
48349
|
+
if (data !== void 0 && data.length > 0) {
|
48350
|
+
this.predicateData = data;
|
47699
48351
|
}
|
47700
48352
|
}
|
47701
48353
|
/**
|
@@ -47822,16 +48474,23 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
47822
48474
|
const mutatedBytes = bytes3;
|
47823
48475
|
try {
|
47824
48476
|
if (!abiInterface) {
|
47825
|
-
throw new
|
48477
|
+
throw new FuelError(
|
48478
|
+
ErrorCode.INVALID_CONFIGURABLE_CONSTANTS,
|
47826
48479
|
"Cannot validate configurable constants because the Predicate was instantiated without a JSON ABI"
|
47827
48480
|
);
|
47828
48481
|
}
|
47829
48482
|
if (Object.keys(abiInterface.configurables).length === 0) {
|
47830
|
-
throw new
|
48483
|
+
throw new FuelError(
|
48484
|
+
ErrorCode.INVALID_CONFIGURABLE_CONSTANTS,
|
48485
|
+
"Predicate has no configurable constants to be set"
|
48486
|
+
);
|
47831
48487
|
}
|
47832
48488
|
Object.entries(configurableConstants).forEach(([key, value]) => {
|
47833
48489
|
if (!abiInterface?.configurables[key]) {
|
47834
|
-
throw new
|
48490
|
+
throw new FuelError(
|
48491
|
+
ErrorCode.CONFIGURABLE_NOT_FOUND,
|
48492
|
+
`No configurable constant named '${key}' found in the Predicate`
|
48493
|
+
);
|
47835
48494
|
}
|
47836
48495
|
const { offset } = abiInterface.configurables[key];
|
47837
48496
|
const encoded = abiInterface.encodeConfigurable(key, value);
|
@@ -47943,7 +48602,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
47943
48602
|
* @returns Always true.
|
47944
48603
|
*/
|
47945
48604
|
async ping() {
|
47946
|
-
throw new
|
48605
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
47947
48606
|
}
|
47948
48607
|
/**
|
47949
48608
|
* Should return the current version of the connector
|
@@ -47952,7 +48611,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
47952
48611
|
* @returns boolean - connection status.
|
47953
48612
|
*/
|
47954
48613
|
async version() {
|
47955
|
-
throw new
|
48614
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
47956
48615
|
}
|
47957
48616
|
/**
|
47958
48617
|
* Should return true if the connector is connected
|
@@ -47961,7 +48620,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
47961
48620
|
* @returns The connection status.
|
47962
48621
|
*/
|
47963
48622
|
async isConnected() {
|
47964
|
-
throw new
|
48623
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
47965
48624
|
}
|
47966
48625
|
/**
|
47967
48626
|
* Should return all the accounts authorized for the
|
@@ -47970,7 +48629,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
47970
48629
|
* @returns The accounts addresses strings
|
47971
48630
|
*/
|
47972
48631
|
async accounts() {
|
47973
|
-
throw new
|
48632
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
47974
48633
|
}
|
47975
48634
|
/**
|
47976
48635
|
* Should start the connection process and return
|
@@ -47982,7 +48641,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
47982
48641
|
* @returns boolean - connection status.
|
47983
48642
|
*/
|
47984
48643
|
async connect() {
|
47985
|
-
throw new
|
48644
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
47986
48645
|
}
|
47987
48646
|
/**
|
47988
48647
|
* Should disconnect the current connection and
|
@@ -47992,7 +48651,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
47992
48651
|
* @returns The connection status.
|
47993
48652
|
*/
|
47994
48653
|
async disconnect() {
|
47995
|
-
throw new
|
48654
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
47996
48655
|
}
|
47997
48656
|
/**
|
47998
48657
|
* Should start the sign message process and return
|
@@ -48004,7 +48663,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48004
48663
|
* @returns Message signature
|
48005
48664
|
*/
|
48006
48665
|
async signMessage(_address, _message) {
|
48007
|
-
throw new
|
48666
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
48008
48667
|
}
|
48009
48668
|
/**
|
48010
48669
|
* Should start the sign transaction process and return
|
@@ -48016,7 +48675,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48016
48675
|
* @returns Transaction signature
|
48017
48676
|
*/
|
48018
48677
|
async signTransaction(_address, _transaction) {
|
48019
|
-
throw new
|
48678
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
48020
48679
|
}
|
48021
48680
|
/**
|
48022
48681
|
* Should start the send transaction process and return
|
@@ -48032,7 +48691,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48032
48691
|
* @returns The transaction id
|
48033
48692
|
*/
|
48034
48693
|
async sendTransaction(_address, _transaction) {
|
48035
|
-
throw new
|
48694
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
48036
48695
|
}
|
48037
48696
|
/**
|
48038
48697
|
* Should return the current account selected inside the connector, if the account
|
@@ -48043,7 +48702,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48043
48702
|
* @returns The current account selected otherwise null.
|
48044
48703
|
*/
|
48045
48704
|
async currentAccount() {
|
48046
|
-
throw new
|
48705
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
48047
48706
|
}
|
48048
48707
|
/**
|
48049
48708
|
* Should add the assets metadata to the connector and return true if the asset
|
@@ -48057,7 +48716,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48057
48716
|
* @returns True if the asset was added successfully
|
48058
48717
|
*/
|
48059
48718
|
async addAssets(_assets) {
|
48060
|
-
throw new
|
48719
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
48061
48720
|
}
|
48062
48721
|
/**
|
48063
48722
|
* Should add the asset metadata to the connector and return true if the asset
|
@@ -48071,7 +48730,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48071
48730
|
* @returns True if the asset was added successfully
|
48072
48731
|
*/
|
48073
48732
|
async addAsset(_asset) {
|
48074
|
-
throw new
|
48733
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
48075
48734
|
}
|
48076
48735
|
/**
|
48077
48736
|
* Should return all the assets added to the connector. If a connection is already established.
|
@@ -48079,7 +48738,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48079
48738
|
* @returns Array of assets metadata from the connector vinculated to the all accounts from a specific Wallet.
|
48080
48739
|
*/
|
48081
48740
|
async assets() {
|
48082
|
-
throw new
|
48741
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
48083
48742
|
}
|
48084
48743
|
/**
|
48085
48744
|
* Should start the add network process and return true if the network was added successfully.
|
@@ -48090,7 +48749,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48090
48749
|
* @returns Return true if the network was added successfully
|
48091
48750
|
*/
|
48092
48751
|
async addNetwork(_networkUrl) {
|
48093
|
-
throw new
|
48752
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
48094
48753
|
}
|
48095
48754
|
/**
|
48096
48755
|
* Should start the select network process and return true if the network has change successfully.
|
@@ -48101,7 +48760,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48101
48760
|
* @returns Return true if the network was added successfully
|
48102
48761
|
*/
|
48103
48762
|
async selectNetwork(_network) {
|
48104
|
-
throw new
|
48763
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
48105
48764
|
}
|
48106
48765
|
/**
|
48107
48766
|
* Should return all the networks available from the connector. If the connection is already established.
|
@@ -48109,7 +48768,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48109
48768
|
* @returns Return all the networks added to the connector.
|
48110
48769
|
*/
|
48111
48770
|
async networks() {
|
48112
|
-
throw new
|
48771
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
48113
48772
|
}
|
48114
48773
|
/**
|
48115
48774
|
* Should return the current network selected inside the connector. Even if the connection is not established.
|
@@ -48117,7 +48776,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48117
48776
|
* @returns Return the current network selected inside the connector.
|
48118
48777
|
*/
|
48119
48778
|
async currentNetwork() {
|
48120
|
-
throw new
|
48779
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
48121
48780
|
}
|
48122
48781
|
/**
|
48123
48782
|
* Should add the ABI to the connector and return true if the ABI was added successfully.
|
@@ -48127,7 +48786,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48127
48786
|
* @returns Return true if the ABI was added successfully.
|
48128
48787
|
*/
|
48129
48788
|
async addABI(_contractId, _abi) {
|
48130
|
-
throw new
|
48789
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
48131
48790
|
}
|
48132
48791
|
/**
|
48133
48792
|
* Should return the ABI from the connector vinculated to the all accounts from a specific Wallet.
|
@@ -48136,7 +48795,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48136
48795
|
* @returns The ABI if it exists, otherwise return null.
|
48137
48796
|
*/
|
48138
48797
|
async getABI(_id) {
|
48139
|
-
throw new
|
48798
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
48140
48799
|
}
|
48141
48800
|
/**
|
48142
48801
|
* Should return true if the abi exists in the connector vinculated to the all accounts from a specific Wallet.
|
@@ -48145,7 +48804,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48145
48804
|
* @returns Returns true if the abi exists or false if not.
|
48146
48805
|
*/
|
48147
48806
|
async hasABI(_id) {
|
48148
|
-
throw new
|
48807
|
+
throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
|
48149
48808
|
}
|
48150
48809
|
/**
|
48151
48810
|
* Event listener for the connector.
|
@@ -48200,7 +48859,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48200
48859
|
async function withTimeout(promise, timeout = 1050) {
|
48201
48860
|
const timeoutPromise = new Promise((resolve, reject) => {
|
48202
48861
|
setTimeout(() => {
|
48203
|
-
reject(new
|
48862
|
+
reject(new FuelError(FuelError.CODES.TIMEOUT_EXCEEDED, "Promise timed out"));
|
48204
48863
|
}, timeout);
|
48205
48864
|
});
|
48206
48865
|
return Promise.race([timeoutPromise, promise]);
|
@@ -48287,7 +48946,8 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48287
48946
|
const hasConnector = await this.hasConnector();
|
48288
48947
|
await this.pingConnector();
|
48289
48948
|
if (!this._currentConnector || !hasConnector) {
|
48290
|
-
throw new
|
48949
|
+
throw new FuelError(
|
48950
|
+
ErrorCode.MISSING_CONNECTOR,
|
48291
48951
|
`No connector selected for calling ${method}. Use hasConnector before executing other methods.`
|
48292
48952
|
);
|
48293
48953
|
}
|
@@ -48351,7 +49011,7 @@ Supported fuel-core version: ${supportedVersion}.`
|
|
48351
49011
|
cacheTime: PING_CACHE_TIME
|
48352
49012
|
})();
|
48353
49013
|
} catch {
|
48354
|
-
throw new
|
49014
|
+
throw new FuelError(ErrorCode.INVALID_PROVIDER, "Current connector is not available.");
|
48355
49015
|
}
|
48356
49016
|
}
|
48357
49017
|
/**
|