@fuel-ts/account 0.0.0-pr-2930-20240813211727 → 0.0.0-pr-2942-20240816061339

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.

Potentially problematic release.


This version of @fuel-ts/account might be problematic. Click here for more details.

Files changed (85) hide show
  1. package/README.md +9 -29
  2. package/dist/account.d.ts +15 -4
  3. package/dist/account.d.ts.map +1 -1
  4. package/dist/configs.d.ts +0 -2
  5. package/dist/configs.d.ts.map +1 -1
  6. package/dist/configs.global.js +0 -2
  7. package/dist/configs.global.js.map +1 -1
  8. package/dist/configs.js +0 -6
  9. package/dist/configs.js.map +1 -1
  10. package/dist/configs.mjs +0 -4
  11. package/dist/configs.mjs.map +1 -1
  12. package/dist/connectors/fuel-connector.d.ts +24 -1
  13. package/dist/connectors/fuel-connector.d.ts.map +1 -1
  14. package/dist/connectors/fuel.d.ts +14 -4
  15. package/dist/connectors/fuel.d.ts.map +1 -1
  16. package/dist/connectors/types/connector-metadata.d.ts.map +1 -1
  17. package/dist/connectors/utils/promises.d.ts.map +1 -1
  18. package/dist/index.global.js +1387 -1033
  19. package/dist/index.global.js.map +1 -1
  20. package/dist/index.js +705 -528
  21. package/dist/index.js.map +1 -1
  22. package/dist/index.mjs +533 -367
  23. package/dist/index.mjs.map +1 -1
  24. package/dist/predicate/predicate.d.ts +15 -9
  25. package/dist/predicate/predicate.d.ts.map +1 -1
  26. package/dist/providers/__generated__/operations.d.ts +119 -0
  27. package/dist/providers/__generated__/operations.d.ts.map +1 -1
  28. package/dist/providers/fuel-graphql-subscriber.d.ts +1 -0
  29. package/dist/providers/fuel-graphql-subscriber.d.ts.map +1 -1
  30. package/dist/providers/provider.d.ts +14 -47
  31. package/dist/providers/provider.d.ts.map +1 -1
  32. package/dist/providers/resource-cache.d.ts +14 -0
  33. package/dist/providers/resource-cache.d.ts.map +1 -0
  34. package/dist/providers/transaction-request/blob-transaction-request.d.ts +48 -0
  35. package/dist/providers/transaction-request/blob-transaction-request.d.ts.map +1 -0
  36. package/dist/providers/transaction-request/index.d.ts +1 -0
  37. package/dist/providers/transaction-request/index.d.ts.map +1 -1
  38. package/dist/providers/transaction-request/transaction-request.d.ts +4 -3
  39. package/dist/providers/transaction-request/transaction-request.d.ts.map +1 -1
  40. package/dist/providers/transaction-request/types.d.ts +5 -2
  41. package/dist/providers/transaction-request/types.d.ts.map +1 -1
  42. package/dist/providers/transaction-request/utils.d.ts +9 -0
  43. package/dist/providers/transaction-request/utils.d.ts.map +1 -1
  44. package/dist/providers/transaction-response/transaction-response.d.ts +3 -0
  45. package/dist/providers/transaction-response/transaction-response.d.ts.map +1 -1
  46. package/dist/providers/transaction-summary/assemble-transaction-summary.d.ts.map +1 -1
  47. package/dist/providers/transaction-summary/call.d.ts +4 -3
  48. package/dist/providers/transaction-summary/call.d.ts.map +1 -1
  49. package/dist/providers/transaction-summary/input.d.ts +1 -1
  50. package/dist/providers/transaction-summary/input.d.ts.map +1 -1
  51. package/dist/providers/transaction-summary/operations.d.ts +3 -1
  52. package/dist/providers/transaction-summary/operations.d.ts.map +1 -1
  53. package/dist/providers/transaction-summary/types.d.ts +3 -1
  54. package/dist/providers/transaction-summary/types.d.ts.map +1 -1
  55. package/dist/providers/utils/gas.d.ts +6 -0
  56. package/dist/providers/utils/gas.d.ts.map +1 -1
  57. package/dist/test-utils/launchNode.d.ts +0 -16
  58. package/dist/test-utils/launchNode.d.ts.map +1 -1
  59. package/dist/test-utils/setup-test-provider-and-wallets.d.ts.map +1 -1
  60. package/dist/test-utils/test-asset-id.d.ts +8 -0
  61. package/dist/test-utils/test-asset-id.d.ts.map +1 -0
  62. package/dist/test-utils/test-message.d.ts +4 -2
  63. package/dist/test-utils/test-message.d.ts.map +1 -1
  64. package/dist/test-utils/wallet-config.d.ts +3 -3
  65. package/dist/test-utils/wallet-config.d.ts.map +1 -1
  66. package/dist/test-utils.d.ts +1 -3
  67. package/dist/test-utils.d.ts.map +1 -1
  68. package/dist/test-utils.global.js +39070 -38743
  69. package/dist/test-utils.global.js.map +1 -1
  70. package/dist/test-utils.js +1314 -1201
  71. package/dist/test-utils.js.map +1 -1
  72. package/dist/test-utils.mjs +1031 -919
  73. package/dist/test-utils.mjs.map +1 -1
  74. package/dist/wallet/base-wallet-unlocked.d.ts +1 -2
  75. package/dist/wallet/base-wallet-unlocked.d.ts.map +1 -1
  76. package/dist/wallet/keystore-wallet.d.ts.map +1 -1
  77. package/package.json +19 -21
  78. package/dist/providers/memory-cache.d.ts +0 -11
  79. package/dist/providers/memory-cache.d.ts.map +0 -1
  80. package/dist/test-utils/asset-id.d.ts +0 -8
  81. package/dist/test-utils/asset-id.d.ts.map +0 -1
  82. package/dist/test-utils/generateTestWallet.d.ts +0 -4
  83. package/dist/test-utils/generateTestWallet.d.ts.map +0 -1
  84. package/dist/test-utils/seedTestWallet.d.ts +0 -4
  85. package/dist/test-utils/seedTestWallet.d.ts.map +0 -1
@@ -3035,7 +3035,7 @@
3035
3035
  }
3036
3036
  return chk;
3037
3037
  }
3038
- function convert2(data, inBits, outBits, pad3) {
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 (pad3) {
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.55.0/node_modules/@fuels/vm-asm/dist/node/index.cjs
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.55.0/node_modules/@fuels/vm-asm/dist/node/index.cjs"(exports) {
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, msg_hash_addr) {
20666
- const ret3 = wasm$1.ed19(pub_key_addr, sig_addr, msg_hash_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,56 +21661,165 @@ spurious results.`);
21601
21661
  SHR: 7,
21602
21662
  "7": "SHR"
21603
21663
  });
21604
- var CompareMode = Object.freeze({
21664
+ var ADDFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
21665
+ }, unregister: () => {
21666
+ } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_add_free(ptr >>> 0));
21667
+ var ADD = class {
21668
+ __destroy_into_raw() {
21669
+ const ptr = this.__wbg_ptr;
21670
+ this.__wbg_ptr = 0;
21671
+ ADDFinalization.unregister(this);
21672
+ return ptr;
21673
+ }
21674
+ free() {
21675
+ const ptr = this.__destroy_into_raw();
21676
+ wasm$1.__wbg_add_free(ptr);
21677
+ }
21605
21678
  /**
21606
- * Equality (`==`)
21679
+ * Construct the instruction from its parts.
21680
+ * @param {RegId} dst
21681
+ * @param {RegId} lhs
21682
+ * @param {RegId} rhs
21607
21683
  */
21608
- EQ: 0,
21609
- "0": "EQ",
21684
+ constructor(dst, lhs, rhs) {
21685
+ _assertClass(dst, RegId);
21686
+ var ptr0 = dst.__destroy_into_raw();
21687
+ _assertClass(lhs, RegId);
21688
+ var ptr1 = lhs.__destroy_into_raw();
21689
+ _assertClass(rhs, RegId);
21690
+ var ptr2 = rhs.__destroy_into_raw();
21691
+ const ret3 = wasm$1.add_new_typescript(ptr0, ptr1, ptr2);
21692
+ this.__wbg_ptr = ret3 >>> 0;
21693
+ return this;
21694
+ }
21610
21695
  /**
21611
- * Inequality (`!=`)
21696
+ * Access the ID for register A.
21697
+ * @returns {RegId}
21612
21698
  */
21613
- NE: 1,
21614
- "1": "NE",
21699
+ ra() {
21700
+ const ret3 = wasm$1.add_ra(this.__wbg_ptr);
21701
+ return RegId.__wrap(ret3);
21702
+ }
21615
21703
  /**
21616
- * Less than (`<`)
21704
+ * Access the ID for register B.
21705
+ * @returns {RegId}
21617
21706
  */
21618
- LT: 2,
21619
- "2": "LT",
21707
+ rb() {
21708
+ const ret3 = wasm$1.add_rb(this.__wbg_ptr);
21709
+ return RegId.__wrap(ret3);
21710
+ }
21620
21711
  /**
21621
- * Greater than (`>`)
21712
+ * Access the ID for register C.
21713
+ * @returns {RegId}
21622
21714
  */
21623
- GT: 3,
21624
- "3": "GT",
21715
+ rc() {
21716
+ const ret3 = wasm$1.add_rc(this.__wbg_ptr);
21717
+ return RegId.__wrap(ret3);
21718
+ }
21719
+ };
21720
+ var ADDIFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
21721
+ }, unregister: () => {
21722
+ } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_addi_free(ptr >>> 0));
21723
+ var ADDI = class {
21724
+ __destroy_into_raw() {
21725
+ const ptr = this.__wbg_ptr;
21726
+ this.__wbg_ptr = 0;
21727
+ ADDIFinalization.unregister(this);
21728
+ return ptr;
21729
+ }
21730
+ free() {
21731
+ const ptr = this.__destroy_into_raw();
21732
+ wasm$1.__wbg_addi_free(ptr);
21733
+ }
21625
21734
  /**
21626
- * Less than or equals (`>=`)
21735
+ * Construct the instruction from its parts.
21736
+ * @param {RegId} dst
21737
+ * @param {RegId} lhs
21738
+ * @param {Imm12} rhs
21627
21739
  */
21628
- LTE: 4,
21629
- "4": "LTE",
21740
+ constructor(dst, lhs, rhs) {
21741
+ _assertClass(dst, RegId);
21742
+ var ptr0 = dst.__destroy_into_raw();
21743
+ _assertClass(lhs, RegId);
21744
+ var ptr1 = lhs.__destroy_into_raw();
21745
+ _assertClass(rhs, Imm12);
21746
+ var ptr2 = rhs.__destroy_into_raw();
21747
+ const ret3 = wasm$1.addi_new_typescript(ptr0, ptr1, ptr2);
21748
+ this.__wbg_ptr = ret3 >>> 0;
21749
+ return this;
21750
+ }
21630
21751
  /**
21631
- * Greater than or equals (`>=`)
21752
+ * Access the ID for register A.
21753
+ * @returns {RegId}
21632
21754
  */
21633
- GTE: 5,
21634
- "5": "GTE",
21755
+ ra() {
21756
+ const ret3 = wasm$1.add_ra(this.__wbg_ptr);
21757
+ return RegId.__wrap(ret3);
21758
+ }
21635
21759
  /**
21636
- * Number of leading zeroes in lhs (`lzcnt`) (discards rhs)
21760
+ * Access the ID for register B.
21761
+ * @returns {RegId}
21637
21762
  */
21638
- LZC: 6,
21639
- "6": "LZC"
21640
- });
21641
- var ADDFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
21763
+ rb() {
21764
+ const ret3 = wasm$1.add_rb(this.__wbg_ptr);
21765
+ return RegId.__wrap(ret3);
21766
+ }
21767
+ /**
21768
+ * Access the 12-bit immediate value.
21769
+ * @returns {Imm12}
21770
+ */
21771
+ imm12() {
21772
+ const ret3 = wasm$1.addi_imm12(this.__wbg_ptr);
21773
+ return Imm12.__wrap(ret3);
21774
+ }
21775
+ };
21776
+ var ALOCFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
21642
21777
  }, unregister: () => {
21643
- } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_add_free(ptr >>> 0));
21644
- var ADD = class {
21778
+ } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_aloc_free(ptr >>> 0));
21779
+ var ALOC = class {
21645
21780
  __destroy_into_raw() {
21646
21781
  const ptr = this.__wbg_ptr;
21647
21782
  this.__wbg_ptr = 0;
21648
- ADDFinalization.unregister(this);
21783
+ ALOCFinalization.unregister(this);
21649
21784
  return ptr;
21650
21785
  }
21651
21786
  free() {
21652
21787
  const ptr = this.__destroy_into_raw();
21653
- wasm$1.__wbg_add_free(ptr);
21788
+ wasm$1.__wbg_aloc_free(ptr);
21789
+ }
21790
+ /**
21791
+ * Construct the instruction from its parts.
21792
+ * @param {RegId} bytes
21793
+ */
21794
+ constructor(bytes3) {
21795
+ _assertClass(bytes3, RegId);
21796
+ var ptr0 = bytes3.__destroy_into_raw();
21797
+ const ret3 = wasm$1.aloc_new_typescript(ptr0);
21798
+ this.__wbg_ptr = ret3 >>> 0;
21799
+ return this;
21800
+ }
21801
+ /**
21802
+ * Access the ID for register A.
21803
+ * @returns {RegId}
21804
+ */
21805
+ ra() {
21806
+ const ret3 = wasm$1.aloc_ra(this.__wbg_ptr);
21807
+ return RegId.__wrap(ret3);
21808
+ }
21809
+ };
21810
+ var ANDFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
21811
+ }, unregister: () => {
21812
+ } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_and_free(ptr >>> 0));
21813
+ var AND = class {
21814
+ __destroy_into_raw() {
21815
+ const ptr = this.__wbg_ptr;
21816
+ this.__wbg_ptr = 0;
21817
+ ANDFinalization.unregister(this);
21818
+ return ptr;
21819
+ }
21820
+ free() {
21821
+ const ptr = this.__destroy_into_raw();
21822
+ wasm$1.__wbg_and_free(ptr);
21654
21823
  }
21655
21824
  /**
21656
21825
  * Construct the instruction from its parts.
@@ -21694,83 +21863,139 @@ spurious results.`);
21694
21863
  return RegId.__wrap(ret3);
21695
21864
  }
21696
21865
  };
21697
- var ADDIFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
21866
+ var ANDIFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
21867
+ }, unregister: () => {
21868
+ } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_andi_free(ptr >>> 0));
21869
+ var ANDI = class {
21870
+ __destroy_into_raw() {
21871
+ const ptr = this.__wbg_ptr;
21872
+ this.__wbg_ptr = 0;
21873
+ ANDIFinalization.unregister(this);
21874
+ return ptr;
21875
+ }
21876
+ free() {
21877
+ const ptr = this.__destroy_into_raw();
21878
+ wasm$1.__wbg_andi_free(ptr);
21879
+ }
21880
+ /**
21881
+ * Construct the instruction from its parts.
21882
+ * @param {RegId} dst
21883
+ * @param {RegId} lhs
21884
+ * @param {Imm12} rhs
21885
+ */
21886
+ constructor(dst, lhs, rhs) {
21887
+ _assertClass(dst, RegId);
21888
+ var ptr0 = dst.__destroy_into_raw();
21889
+ _assertClass(lhs, RegId);
21890
+ var ptr1 = lhs.__destroy_into_raw();
21891
+ _assertClass(rhs, Imm12);
21892
+ var ptr2 = rhs.__destroy_into_raw();
21893
+ const ret3 = wasm$1.addi_new_typescript(ptr0, ptr1, ptr2);
21894
+ this.__wbg_ptr = ret3 >>> 0;
21895
+ return this;
21896
+ }
21897
+ /**
21898
+ * Access the ID for register A.
21899
+ * @returns {RegId}
21900
+ */
21901
+ ra() {
21902
+ const ret3 = wasm$1.add_ra(this.__wbg_ptr);
21903
+ return RegId.__wrap(ret3);
21904
+ }
21905
+ /**
21906
+ * Access the ID for register B.
21907
+ * @returns {RegId}
21908
+ */
21909
+ rb() {
21910
+ const ret3 = wasm$1.add_rb(this.__wbg_ptr);
21911
+ return RegId.__wrap(ret3);
21912
+ }
21913
+ /**
21914
+ * Access the 12-bit immediate value.
21915
+ * @returns {Imm12}
21916
+ */
21917
+ imm12() {
21918
+ const ret3 = wasm$1.addi_imm12(this.__wbg_ptr);
21919
+ return Imm12.__wrap(ret3);
21920
+ }
21921
+ };
21922
+ var BALFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
21923
+ }, unregister: () => {
21924
+ } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_bal_free(ptr >>> 0));
21925
+ var BAL = class {
21926
+ __destroy_into_raw() {
21927
+ const ptr = this.__wbg_ptr;
21928
+ this.__wbg_ptr = 0;
21929
+ BALFinalization.unregister(this);
21930
+ return ptr;
21931
+ }
21932
+ free() {
21933
+ const ptr = this.__destroy_into_raw();
21934
+ wasm$1.__wbg_bal_free(ptr);
21935
+ }
21936
+ /**
21937
+ * Construct the instruction from its parts.
21938
+ * @param {RegId} dst
21939
+ * @param {RegId} asset_id_addr
21940
+ * @param {RegId} contract_id_addr
21941
+ */
21942
+ constructor(dst, asset_id_addr, contract_id_addr) {
21943
+ _assertClass(dst, RegId);
21944
+ var ptr0 = dst.__destroy_into_raw();
21945
+ _assertClass(asset_id_addr, RegId);
21946
+ var ptr1 = asset_id_addr.__destroy_into_raw();
21947
+ _assertClass(contract_id_addr, RegId);
21948
+ var ptr2 = contract_id_addr.__destroy_into_raw();
21949
+ const ret3 = wasm$1.add_new_typescript(ptr0, ptr1, ptr2);
21950
+ this.__wbg_ptr = ret3 >>> 0;
21951
+ return this;
21952
+ }
21953
+ /**
21954
+ * Access the ID for register A.
21955
+ * @returns {RegId}
21956
+ */
21957
+ ra() {
21958
+ const ret3 = wasm$1.add_ra(this.__wbg_ptr);
21959
+ return RegId.__wrap(ret3);
21960
+ }
21961
+ /**
21962
+ * Access the ID for register B.
21963
+ * @returns {RegId}
21964
+ */
21965
+ rb() {
21966
+ const ret3 = wasm$1.add_rb(this.__wbg_ptr);
21967
+ return RegId.__wrap(ret3);
21968
+ }
21969
+ /**
21970
+ * Access the ID for register C.
21971
+ * @returns {RegId}
21972
+ */
21973
+ rc() {
21974
+ const ret3 = wasm$1.add_rc(this.__wbg_ptr);
21975
+ return RegId.__wrap(ret3);
21976
+ }
21977
+ };
21978
+ var BHEIFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
21698
21979
  }, unregister: () => {
21699
- } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_addi_free(ptr >>> 0));
21700
- var ADDI = class {
21980
+ } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_bhei_free(ptr >>> 0));
21981
+ var BHEI = class {
21701
21982
  __destroy_into_raw() {
21702
21983
  const ptr = this.__wbg_ptr;
21703
21984
  this.__wbg_ptr = 0;
21704
- ADDIFinalization.unregister(this);
21985
+ BHEIFinalization.unregister(this);
21705
21986
  return ptr;
21706
21987
  }
21707
21988
  free() {
21708
21989
  const ptr = this.__destroy_into_raw();
21709
- wasm$1.__wbg_addi_free(ptr);
21990
+ wasm$1.__wbg_bhei_free(ptr);
21710
21991
  }
21711
21992
  /**
21712
21993
  * Construct the instruction from its parts.
21713
21994
  * @param {RegId} dst
21714
- * @param {RegId} lhs
21715
- * @param {Imm12} rhs
21716
21995
  */
21717
- constructor(dst, lhs, rhs) {
21996
+ constructor(dst) {
21718
21997
  _assertClass(dst, RegId);
21719
21998
  var ptr0 = dst.__destroy_into_raw();
21720
- _assertClass(lhs, RegId);
21721
- var ptr1 = lhs.__destroy_into_raw();
21722
- _assertClass(rhs, Imm12);
21723
- var ptr2 = rhs.__destroy_into_raw();
21724
- const ret3 = wasm$1.addi_new_typescript(ptr0, ptr1, ptr2);
21725
- this.__wbg_ptr = ret3 >>> 0;
21726
- return this;
21727
- }
21728
- /**
21729
- * Access the ID for register A.
21730
- * @returns {RegId}
21731
- */
21732
- ra() {
21733
- const ret3 = wasm$1.add_ra(this.__wbg_ptr);
21734
- return RegId.__wrap(ret3);
21735
- }
21736
- /**
21737
- * Access the ID for register B.
21738
- * @returns {RegId}
21739
- */
21740
- rb() {
21741
- const ret3 = wasm$1.add_rb(this.__wbg_ptr);
21742
- return RegId.__wrap(ret3);
21743
- }
21744
- /**
21745
- * Access the 12-bit immediate value.
21746
- * @returns {Imm12}
21747
- */
21748
- imm12() {
21749
- const ret3 = wasm$1.addi_imm12(this.__wbg_ptr);
21750
- return Imm12.__wrap(ret3);
21751
- }
21752
- };
21753
- var ALOCFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
21754
- }, unregister: () => {
21755
- } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_aloc_free(ptr >>> 0));
21756
- var ALOC = class {
21757
- __destroy_into_raw() {
21758
- const ptr = this.__wbg_ptr;
21759
- this.__wbg_ptr = 0;
21760
- ALOCFinalization.unregister(this);
21761
- return ptr;
21762
- }
21763
- free() {
21764
- const ptr = this.__destroy_into_raw();
21765
- wasm$1.__wbg_aloc_free(ptr);
21766
- }
21767
- /**
21768
- * Construct the instruction from its parts.
21769
- * @param {RegId} bytes
21770
- */
21771
- constructor(bytes3) {
21772
- _assertClass(bytes3, RegId);
21773
- var ptr0 = bytes3.__destroy_into_raw();
21774
21999
  const ret3 = wasm$1.aloc_new_typescript(ptr0);
21775
22000
  this.__wbg_ptr = ret3 >>> 0;
21776
22001
  return this;
@@ -21784,90 +22009,31 @@ spurious results.`);
21784
22009
  return RegId.__wrap(ret3);
21785
22010
  }
21786
22011
  };
21787
- var ANDFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
21788
- }, unregister: () => {
21789
- } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_and_free(ptr >>> 0));
21790
- var AND = class {
21791
- __destroy_into_raw() {
21792
- const ptr = this.__wbg_ptr;
21793
- this.__wbg_ptr = 0;
21794
- ANDFinalization.unregister(this);
21795
- return ptr;
21796
- }
21797
- free() {
21798
- const ptr = this.__destroy_into_raw();
21799
- wasm$1.__wbg_and_free(ptr);
21800
- }
21801
- /**
21802
- * Construct the instruction from its parts.
21803
- * @param {RegId} dst
21804
- * @param {RegId} lhs
21805
- * @param {RegId} rhs
21806
- */
21807
- constructor(dst, lhs, rhs) {
21808
- _assertClass(dst, RegId);
21809
- var ptr0 = dst.__destroy_into_raw();
21810
- _assertClass(lhs, RegId);
21811
- var ptr1 = lhs.__destroy_into_raw();
21812
- _assertClass(rhs, RegId);
21813
- var ptr2 = rhs.__destroy_into_raw();
21814
- const ret3 = wasm$1.add_new_typescript(ptr0, ptr1, ptr2);
21815
- this.__wbg_ptr = ret3 >>> 0;
21816
- return this;
21817
- }
21818
- /**
21819
- * Access the ID for register A.
21820
- * @returns {RegId}
21821
- */
21822
- ra() {
21823
- const ret3 = wasm$1.add_ra(this.__wbg_ptr);
21824
- return RegId.__wrap(ret3);
21825
- }
21826
- /**
21827
- * Access the ID for register B.
21828
- * @returns {RegId}
21829
- */
21830
- rb() {
21831
- const ret3 = wasm$1.add_rb(this.__wbg_ptr);
21832
- return RegId.__wrap(ret3);
21833
- }
21834
- /**
21835
- * Access the ID for register C.
21836
- * @returns {RegId}
21837
- */
21838
- rc() {
21839
- const ret3 = wasm$1.add_rc(this.__wbg_ptr);
21840
- return RegId.__wrap(ret3);
21841
- }
21842
- };
21843
- var ANDIFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
22012
+ var BHSHFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
21844
22013
  }, unregister: () => {
21845
- } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_andi_free(ptr >>> 0));
21846
- var ANDI = class {
22014
+ } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_bhsh_free(ptr >>> 0));
22015
+ var BHSH = class {
21847
22016
  __destroy_into_raw() {
21848
22017
  const ptr = this.__wbg_ptr;
21849
22018
  this.__wbg_ptr = 0;
21850
- ANDIFinalization.unregister(this);
22019
+ BHSHFinalization.unregister(this);
21851
22020
  return ptr;
21852
22021
  }
21853
22022
  free() {
21854
22023
  const ptr = this.__destroy_into_raw();
21855
- wasm$1.__wbg_andi_free(ptr);
22024
+ wasm$1.__wbg_bhsh_free(ptr);
21856
22025
  }
21857
22026
  /**
21858
22027
  * Construct the instruction from its parts.
21859
22028
  * @param {RegId} dst
21860
- * @param {RegId} lhs
21861
- * @param {Imm12} rhs
22029
+ * @param {RegId} heigth
21862
22030
  */
21863
- constructor(dst, lhs, rhs) {
22031
+ constructor(dst, heigth) {
21864
22032
  _assertClass(dst, RegId);
21865
22033
  var ptr0 = dst.__destroy_into_raw();
21866
- _assertClass(lhs, RegId);
21867
- var ptr1 = lhs.__destroy_into_raw();
21868
- _assertClass(rhs, Imm12);
21869
- var ptr2 = rhs.__destroy_into_raw();
21870
- const ret3 = wasm$1.addi_new_typescript(ptr0, ptr1, ptr2);
22034
+ _assertClass(heigth, RegId);
22035
+ var ptr1 = heigth.__destroy_into_raw();
22036
+ const ret3 = wasm$1.bhsh_new_typescript(ptr0, ptr1);
21871
22037
  this.__wbg_ptr = ret3 >>> 0;
21872
22038
  return this;
21873
22039
  }
@@ -21887,43 +22053,38 @@ spurious results.`);
21887
22053
  const ret3 = wasm$1.add_rb(this.__wbg_ptr);
21888
22054
  return RegId.__wrap(ret3);
21889
22055
  }
21890
- /**
21891
- * Access the 12-bit immediate value.
21892
- * @returns {Imm12}
21893
- */
21894
- imm12() {
21895
- const ret3 = wasm$1.addi_imm12(this.__wbg_ptr);
21896
- return Imm12.__wrap(ret3);
21897
- }
21898
22056
  };
21899
- var BALFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
22057
+ var BLDDFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
21900
22058
  }, unregister: () => {
21901
- } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_bal_free(ptr >>> 0));
21902
- var BAL = class {
22059
+ } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_bldd_free(ptr >>> 0));
22060
+ var BLDD = class {
21903
22061
  __destroy_into_raw() {
21904
22062
  const ptr = this.__wbg_ptr;
21905
22063
  this.__wbg_ptr = 0;
21906
- BALFinalization.unregister(this);
22064
+ BLDDFinalization.unregister(this);
21907
22065
  return ptr;
21908
22066
  }
21909
22067
  free() {
21910
22068
  const ptr = this.__destroy_into_raw();
21911
- wasm$1.__wbg_bal_free(ptr);
22069
+ wasm$1.__wbg_bldd_free(ptr);
21912
22070
  }
21913
22071
  /**
21914
22072
  * Construct the instruction from its parts.
21915
- * @param {RegId} dst
21916
- * @param {RegId} asset_id_addr
21917
- * @param {RegId} contract_id_addr
22073
+ * @param {RegId} dst_ptr
22074
+ * @param {RegId} blob_id_ptr
22075
+ * @param {RegId} offset
22076
+ * @param {RegId} len
21918
22077
  */
21919
- constructor(dst, asset_id_addr, contract_id_addr) {
21920
- _assertClass(dst, RegId);
21921
- var ptr0 = dst.__destroy_into_raw();
21922
- _assertClass(asset_id_addr, RegId);
21923
- var ptr1 = asset_id_addr.__destroy_into_raw();
21924
- _assertClass(contract_id_addr, RegId);
21925
- var ptr2 = contract_id_addr.__destroy_into_raw();
21926
- const ret3 = wasm$1.add_new_typescript(ptr0, ptr1, ptr2);
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);
21927
22088
  this.__wbg_ptr = ret3 >>> 0;
21928
22089
  return this;
21929
22090
  }
@@ -21951,65 +22112,39 @@ spurious results.`);
21951
22112
  const ret3 = wasm$1.add_rc(this.__wbg_ptr);
21952
22113
  return RegId.__wrap(ret3);
21953
22114
  }
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
- }
21969
22115
  /**
21970
- * Construct the instruction from its parts.
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
- ra() {
21985
- const ret3 = wasm$1.aloc_ra(this.__wbg_ptr);
22119
+ rd() {
22120
+ const ret3 = wasm$1.bldd_rd(this.__wbg_ptr);
21986
22121
  return RegId.__wrap(ret3);
21987
22122
  }
21988
22123
  };
21989
- var BHSHFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
22124
+ var BSIZFinalization = typeof FinalizationRegistry === "undefined" ? { register: () => {
21990
22125
  }, unregister: () => {
21991
- } } : new FinalizationRegistry((ptr) => wasm$1.__wbg_bhsh_free(ptr >>> 0));
21992
- var BHSH = class {
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
- BHSHFinalization.unregister(this);
22131
+ BSIZFinalization.unregister(this);
21997
22132
  return ptr;
21998
22133
  }
21999
22134
  free() {
22000
22135
  const ptr = this.__destroy_into_raw();
22001
- wasm$1.__wbg_bhsh_free(ptr);
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} heigth
22141
+ * @param {RegId} blob_id_ptr
22007
22142
  */
22008
- constructor(dst, heigth) {
22143
+ constructor(dst, blob_id_ptr) {
22009
22144
  _assertClass(dst, RegId);
22010
22145
  var ptr0 = dst.__destroy_into_raw();
22011
- _assertClass(heigth, RegId);
22012
- var ptr1 = heigth.__destroy_into_raw();
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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} msg_hash_addr
23019
+ * @param {RegId} msg_addr
23020
+ * @param {RegId} msg_len
22885
23021
  */
22886
- constructor(pub_key_addr, sig_addr, msg_hash_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(msg_hash_addr, RegId);
22892
- var ptr2 = msg_hash_addr.__destroy_into_raw();
22893
- const ret3 = wasm$1.add_new_typescript(ptr0, ptr1, ptr2);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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
- const ret3 = wasm$1.add_new_typescript(ptr0, ptr1, ptr2);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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.call_new_typescript(ptr0, ptr1, ptr2, ptr3);
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.call_rd(this.__wbg_ptr);
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+Amd0AH8CbHQAgAEEbWxvZwCBAQRtcm9vAIIBBG1vZF8AgwEFbW92ZV8ALANtdWwAhAEDbm90AC0Cb3IAhQEDc2xsAIYBA3NybACHAQNzdWIAiAEDeG9yAIkBBG1sZHYAXANyZXQArgEEcmV0ZAAuE2Fsb2NfbmV3X3R5cGVzY3JpcHQAVwdhbG9jX3JhAE4EYWxvYwCvAQNtY2wALwNtY3AAigEDbWVxAF0TYmhzaF9uZXdfdHlwZXNjcmlwdAAfBGJoc2gAMARiaGVpALABBGJ1cm4AMRNjYWxsX25ld190eXBlc2NyaXB0AE0HY2FsbF9yZAAXBGNhbGwAXgNjY3AAXwRjcm9vADIEY3NpegAzAmNiALEBA2xkYwCLAQNsb2cAYARsb2dkAGEEbWludAA0BHJ2cnQAsgEEc2N3cQCMAQNzcncAjQEEc3J3cQBiA3N3dwCOAQRzd3dxAGMCdHIAjwEDdHJvAGQEZWNrMQCQAQRlY3IxAJEBBGVkMTkAkgEEazI1NgCTAQRzMjU2AJQBBHRpbWUANRNub29wX25ld190eXBlc2NyaXB0AMYBBG5vb3AA2gEEZmxhZwCzAQNiYWwAlQEDam1wALQBA2puZQCWAQNzbW8AZRNhZGRpX25ld190eXBlc2NyaXB0AFAKYWRkaV9pbW0xMgAMBGFkZGkAlwEEYW5kaQCYAQRkaXZpAJkBBGV4cGkAmgEEbW9kaQCbAQRtdWxpAJwBA29yaQCdAQRzbGxpAJ4BBHNybGkAnwEEc3ViaQCgAQR4b3JpAKEBBGpuZWkAogECbGIAowECbHcApAECc2IApQECc3cApgEEbWNwaQCnARJndGZfbmV3X3R5cGVzY3JpcHQAwwEDZ3RmAKgBBG1jbGkAIBFnbV9uZXdfdHlwZXNjcmlwdAA2CGdtX2ltbTE4AAkCZ20AIQRtb3ZpACIEam56aQAjBGptcGYAJBNqbXBiX25ld190eXBlc2NyaXB0ABgEam1wYgAlBGpuemYAqQEEam56YgCqAQRqbmVmAGYKam5lYl9pbW0wNgAXBGpuZWIAZwJqaQBAE2NmZWlfbmV3X3R5cGVzY3JpcHQANwpjZmVpX2ltbTI0ACcEY2ZlaQBBBGNmc2kAQgNjZmUAtQEDY2ZzALYBBHBzaGwAQwRwc2hoAEQEcG9wbABFBHBvcGgARhN3ZGNtX25ld190eXBlc2NyaXB0AMABBHdkY20AaAR3cWNtAGkEd2RvcABqBHdxb3AAawR3ZG1sAGwEd3FtbABtBHdkZHYAbgR3cWR2AG8Ed2RtZABwBHdxbWQAcQR3ZGFtAHIEd3FhbQBzBHdkbW0AdAR3cW1tAHUEZWNhbAB2Fl9fd2JnX2luc3RydWN0aW9uX2ZyZWUAWRRpbnN0cnVjdGlvbl90b19ieXRlcwAKEGluc3RydWN0aW9uX3NpemUA7AERcmVnaWRfbmV3X2NoZWNrZWQAqwEJcmVnaWRfYmFsANsBCnJlZ2lkX2NnYXMA3AEJcmVnaWRfZXJyAN0BCnJlZ2lkX2ZsYWcA3gEIcmVnaWRfZnAA3wEKcmVnaWRfZ2dhcwDgAQhyZWdpZF9ocADhAQhyZWdpZF9pcwDiAQhyZWdpZF9vZgDjAQlyZWdpZF9vbmUA5AEIcmVnaWRfcGMA5QEJcmVnaWRfcmV0AOYBCnJlZ2lkX3JldGwA5wEIcmVnaWRfc3AA6AEJcmVnaWRfc3BwAOkBDnJlZ2lkX3dyaXRhYmxlAOoBCnJlZ2lkX3plcm8A6wEUcmVnaWRfbmV3X3R5cGVzY3JpcHQA0wELcmVnaWRfdG9fdTgA1AETbW92aV9uZXdfdHlwZXNjcmlwdAAYE21jbGlfbmV3X3R5cGVzY3JpcHQAGBNqbnppX25ld190eXBlc2NyaXB0ABgTam1wZl9uZXdfdHlwZXNjcmlwdAAYEm5vdF9uZXdfdHlwZXNjcmlwdAAfE3JldGRfbmV3X3R5cGVzY3JpcHQAHxNtb3ZlX25ld190eXBlc2NyaXB0AB8SbWNsX25ld190eXBlc2NyaXB0AB8TYnVybl9uZXdfdHlwZXNjcmlwdAAfE2Nyb29fbmV3X3R5cGVzY3JpcHQAHxNjc2l6X25ld190eXBlc2NyaXB0AB8TbWludF9uZXdfdHlwZXNjcmlwdAAfE3RpbWVfbmV3X3R5cGVzY3JpcHQAHxJyZXRfbmV3X3R5cGVzY3JpcHQAVxNiaGVpX25ld190eXBlc2NyaXB0AFcRY2JfbmV3X3R5cGVzY3JpcHQAVxNydnJ0X25ld190eXBlc2NyaXB0AFcTZmxhZ19uZXdfdHlwZXNjcmlwdABXEmptcF9uZXdfdHlwZXNjcmlwdABXEmNmZV9uZXdfdHlwZXNjcmlwdABXEmNmc19uZXdfdHlwZXNjcmlwdABXE21sZHZfbmV3X3R5cGVzY3JpcHQATRJtZXFfbmV3X3R5cGVzY3JpcHQATRJjY3BfbmV3X3R5cGVzY3JpcHQATRJsb2dfbmV3X3R5cGVzY3JpcHQATRNsb2dkX25ld190eXBlc2NyaXB0AE0Tc3J3cV9uZXdfdHlwZXNjcmlwdABNE3N3d3FfbmV3X3R5cGVzY3JpcHQATRJ0cm9fbmV3X3R5cGVzY3JpcHQATRJzbW9fbmV3X3R5cGVzY3JpcHQATRNqbmVmX25ld190eXBlc2NyaXB0AE0Td2RtZF9uZXdfdHlwZXNjcmlwdABNE3dxbWRfbmV3X3R5cGVzY3JpcHQATRN3ZGFtX25ld190eXBlc2NyaXB0AE0Td3FhbV9uZXdfdHlwZXNjcmlwdABNE3dkbW1fbmV3X3R5cGVzY3JpcHQATRN3cW1tX25ld190eXBlc2NyaXB0AE0TZWNhbF9uZXdfdHlwZXNjcmlwdABNEmFuZF9uZXdfdHlwZXNjcmlwdABPEmRpdl9uZXdfdHlwZXNjcmlwdABPEWVxX25ld190eXBlc2NyaXB0AE8SZXhwX25ld190eXBlc2NyaXB0AE8RZ3RfbmV3X3R5cGVzY3JpcHQATxFsdF9uZXdfdHlwZXNjcmlwdABPE21sb2dfbmV3X3R5cGVzY3JpcHQATxNtcm9vX25ld190eXBlc2NyaXB0AE8SbW9kX25ld190eXBlc2NyaXB0AE8SbXVsX25ld190eXBlc2NyaXB0AE8Rb3JfbmV3X3R5cGVzY3JpcHQATxJzbGxfbmV3X3R5cGVzY3JpcHQATxJzcmxfbmV3X3R5cGVzY3JpcHQATxJzdWJfbmV3X3R5cGVzY3JpcHQATxJ4b3JfbmV3X3R5cGVzY3JpcHQATxJtY3BfbmV3X3R5cGVzY3JpcHQATxJsZGNfbmV3X3R5cGVzY3JpcHQATxNzY3dxX25ld190eXBlc2NyaXB0AE8Sc3J3X25ld190eXBlc2NyaXB0AE8Sc3d3X25ld190eXBlc2NyaXB0AE8RdHJfbmV3X3R5cGVzY3JpcHQATxNlY2sxX25ld190eXBlc2NyaXB0AE8TZWNyMV9uZXdfdHlwZXNjcmlwdABPE2VkMTlfbmV3X3R5cGVzY3JpcHQATxNrMjU2X25ld190eXBlc2NyaXB0AE8TczI1Nl9uZXdfdHlwZXNjcmlwdABPEmJhbF9uZXdfdHlwZXNjcmlwdABPEmpuZV9uZXdfdHlwZXNjcmlwdABPE2FuZGlfbmV3X3R5cGVzY3JpcHQAUBNkaXZpX25ld190eXBlc2NyaXB0AFATZXhwaV9uZXdfdHlwZXNjcmlwdABQE21vZGlfbmV3X3R5cGVzY3JpcHQAUBNtdWxpX25ld190eXBlc2NyaXB0AFASb3JpX25ld190eXBlc2NyaXB0AFATc2xsaV9uZXdfdHlwZXNjcmlwdABQE3NybGlfbmV3X3R5cGVzY3JpcHQAUBNzdWJpX25ld190eXBlc2NyaXB0AFATeG9yaV9uZXdfdHlwZXNjcmlwdABQE2puZWlfbmV3X3R5cGVzY3JpcHQAUBFsYl9uZXdfdHlwZXNjcmlwdABQEWx3X25ld190eXBlc2NyaXB0AFARc2JfbmV3X3R5cGVzY3JpcHQAUBFzd19uZXdfdHlwZXNjcmlwdABQE21jcGlfbmV3X3R5cGVzY3JpcHQAUBNqbnpmX25ld190eXBlc2NyaXB0AFATam56Yl9uZXdfdHlwZXNjcmlwdABQDndxY21fZnJvbV9hcmdzACYOd3FvcF9mcm9tX2FyZ3MAJh9fX3diZ19zZXRfbWF0aGFyZ3NfaW5kaXJlY3RfcmhzADseX193Ymdfc2V0X211bGFyZ3NfaW5kaXJlY3RfbGhzADseX193Ymdfc2V0X2RpdmFyZ3NfaW5kaXJlY3RfcmhzADsRamlfbmV3X3R5cGVzY3JpcHQANxNjZnNpX25ld190eXBlc2NyaXB0ADcTcHNobF9uZXdfdHlwZXNjcmlwdAA3E3BzaGhfbmV3X3R5cGVzY3JpcHQANxNwb3BsX25ld190eXBlc2NyaXB0ADcTcG9waF9uZXdfdHlwZXNjcmlwdAA3E3dkbWxfbmV3X3R5cGVzY3JpcHQAwAETd3FtbF9uZXdfdHlwZXNjcmlwdADAAQ53cW1sX2Zyb21fYXJncwAeE3dxb3BfbmV3X3R5cGVzY3JpcHQAwAETd2Rkdl9uZXdfdHlwZXNjcmlwdADAARN3cWNtX25ld190eXBlc2NyaXB0AMABE3dkb3BfbmV3X3R5cGVzY3JpcHQAwAETd3Fkdl9uZXdfdHlwZXNjcmlwdADAARBfX3diZ19yZWdpZF9mcmVlANcBDndxZHZfZnJvbV9hcmdzAL8BEF9fd2JnX2ltbTI0X2ZyZWUA2QEPX193YmdfbW92aV9mcmVlALgBD19fd2JnX21sZHZfZnJlZQC4AQ9fX3diZ19mbGFnX2ZyZWUAuAEPX193YmdfZWNhbF9mcmVlALgBDl9fd2JnX2d0Zl9mcmVlALgBDl9fd2JnX3Nyd19mcmVlALgBDl9fd2JnX2Rpdl9mcmVlALgBD19fd2JnX3Njd3FfZnJlZQC4AQ5fX3diZ19leHBfZnJlZQC4AQZqbXBfcmEATg5fX3diZ19qbXBfZnJlZQC4AQ5fX3diZ19tdWxfZnJlZQC4AQ5fX3diZ19zcmxfZnJlZQC4AQ9fX3diZ19zd3dxX2ZyZWUAuAEOX193YmdfbWNwX2ZyZWUAuAENX193Ymdfc3dfZnJlZQC4AQ9fX3diZ19jZmVpX2ZyZWUAuAEPX193YmdfbG9nZF9mcmVlALgBDV9fd2JnX29yX2ZyZWUAuAEOX193YmdfbWVxX2ZyZWUAuAEPX193Ymdfd3FhbV9mcmVlALgBD19fd2JnX2puemJfZnJlZQC4AQ5fX3diZ19sZGNfZnJlZQC4AQ9fX3diZ19tY3BpX2ZyZWUAuAEPX193Ymdfam1wZl9mcmVlALgBDV9fd2JnX2xiX2ZyZWUAuAEPX193Ymdfd3FjbV9mcmVlALgBD19fd2JnX3dxb3BfZnJlZQC4AQ9fX3diZ19tcm9vX2ZyZWUAuAEPX193Ymdfd2RtbF9mcmVlALgBDV9fd2JnX3RyX2ZyZWUAuAEPX193Ymdfam5laV9mcmVlALgBD19fd2JnX2NhbGxfZnJlZQC4AQ9fX3diZ19hbmRpX2ZyZWUAuAEPX193YmdfYmhzaF9mcmVlALgBDl9fd2JnX3N3d19mcmVlALgBD19fd2JnX3N1YmlfZnJlZQC4AQ1fX3diZ19lcV9mcmVlALgBD19fd2JnX3dkbW1fZnJlZQC4AQ9fX3diZ19zbGxpX2ZyZWUAuAEOX193Ymdfam5lX2ZyZWUAuAEPX193YmdfbW92ZV9mcmVlALgBD19fd2JnX2RpdmlfZnJlZQC4AQ9fX3diZ19lY3IxX2ZyZWUAuAEKY2ZzaV9pbW0yNAAnD19fd2JnX2Nmc2lfZnJlZQC4AQ9fX3diZ19jc2l6X2ZyZWUAuAEPX193YmdfcmV0ZF9mcmVlALgBHl9fd2JnX2dldF9tdWxhcmdzX2luZGlyZWN0X2xocwA6B2ZsYWdfcmEATg9fX3diZ19iaGVpX2ZyZWUAuAEPX193YmdfbW9kaV9mcmVlALgBDV9fd2JnX2d0X2ZyZWUAuAEfX193YmdfZ2V0X21hdGhhcmdzX2luZGlyZWN0X3JocwA6Dl9fd2JnX2NjcF9mcmVlALgBD19fd2JnX2VjazFfZnJlZQC4AQdiaGVpX3JhAE4OX193YmdfYW5kX2ZyZWUAuAEPX193YmdfazI1Nl9mcmVlALgBD19fd2JnX2Fsb2NfZnJlZQC4AQ1fX3diZ19sdF9mcmVlALgBDl9fd2JnX3Ntb19mcmVlALgBD19fd2JnX2puemZfZnJlZQC4AQ5fX3diZ19tY2xfZnJlZQC4AQZyZXRfcmEATg5fX3diZ19yZXRfZnJlZQC4AQ9fX3diZ19taW50X2ZyZWUAuAEPX193Ymdfd2RvcF9mcmVlALgBD19fd2JnX2Nyb29fZnJlZQC4AQ5fX3diZ190cm9fZnJlZQC4AQ9fX3diZ193cW1kX2ZyZWUAuAEPX193Ymdfd3Fkdl9mcmVlALgBD19fd2JnX2V4cGlfZnJlZQC4AQ9fX3diZ19zcndxX2ZyZWUAuAEPX193Ymdfd3FtbF9mcmVlALgBD19fd2JnX3dkbWRfZnJlZQC4AQ5fX3diZ19tb2RfZnJlZQC4AQ9fX3diZ19qbnppX2ZyZWUAuAEPX193YmdfYnVybl9mcmVlALgBB3J2cnRfcmEATg9fX3diZ19ydnJ0X2ZyZWUAuAEOX193Ymdfb3JpX2ZyZWUAuAEKcHNobF9pbW0yNAAnD19fd2JnX3BzaGxfZnJlZQC4AQ9fX3diZ19hZGRpX2ZyZWUAuAEOX193YmdfeG9yX2ZyZWUAuAENX193YmdfbHdfZnJlZQC4AQpwb3BsX2ltbTI0ACcPX193YmdfcG9wbF9mcmVlALgBDV9fd2JnX3NiX2ZyZWUAuAEPX193YmdfbXVsaV9mcmVlALgBDl9fd2JnX2xvZ19mcmVlALgBCGppX2ltbTI0ACcNX193YmdfamlfZnJlZQC4AQ9fX3diZ19tbG9nX2ZyZWUAuAEPX193YmdfbWNsaV9mcmVlALgBDl9fd2JnX3N1Yl9mcmVlALgBDl9fd2JnX3NsbF9mcmVlALgBDl9fd2JnX25vdF9mcmVlALgBD19fd2JnX2puZWJfZnJlZQC4AQ9fX3diZ19zcmxpX2ZyZWUAuAEPX193YmdfczI1Nl9mcmVlALgBDl9fd2JnX2JhbF9mcmVlALgBD19fd2JnX2ptcGJfZnJlZQC4AQZjZnNfcmEATg5fX3diZ19jZnNfZnJlZQC4AQZjZmVfcmEATg5fX3diZ19jZmVfZnJlZQC4AQ9fX3diZ193ZGFtX2ZyZWUAuAENX193YmdfZ21fZnJlZQC4AQ9fX3diZ193cW1tX2ZyZWUAuAEKcG9waF9pbW0yNAAnD19fd2JnX3BvcGhfZnJlZQC4AQ9fX3diZ193ZGR2X2ZyZWUAuAEPX193YmdfdGltZV9mcmVlALgBD19fd2JnX3hvcmlfZnJlZQC4AQVjYl9yYQBODV9fd2JnX2NiX2ZyZWUAuAEPX193Ymdfam5lZl9mcmVlALgBD19fd2JnX2VkMTlfZnJlZQC4AQ9fX3diZ193ZGNtX2ZyZWUAuAEKcHNoaF9pbW0yNAAnD19fd2JnX3BzaGhfZnJlZQC4ARNqbmViX25ld190eXBlc2NyaXB0AE0Kd3Fkdl9pbW0wNgAXCndxbWxfaW1tMDYAFwp3ZG1sX2ltbTA2ABcKd3FvcF9pbW0wNgAXCndkb3BfaW1tMDYAFwp3cWNtX2ltbTA2ABcKd2Rkdl9pbW0wNgAXCndkY21faW1tMDYAFwpqbmVmX2ltbTA2ABcHbW92aV9yYQAWB21sZHZfcmQAFwdtbGR2X3JjAA8HbWxkdl9yYgALB21sZHZfcmEAFgZndGZfcmIACwZndGZfcmEAFgZzcndfcmMADwZzcndfcmIACwZzcndfcmEAFgdlY2FsX3JjAA8HZWNhbF9yYgALB2VjYWxfcmEAFgdzY3dxX3JjAA8Hc2N3cV9yYgALB3Njd3FfcmEAFgZleHBfcmMADwZleHBfcmIACwZleHBfcmEAFgZtdWxfcmMADwZtdWxfcmIACwZtdWxfcmEAFgZzcmxfcmMADwZzcmxfcmIACwZzcmxfcmEAFgdzd3dxX3JkABcHc3d3cV9yYwAPB3N3d3FfcmIACwdzd3dxX3JhABYGbWNwX3JjAA8GbWNwX3JiAAsGbWNwX3JhABYIc3dfaW1tMTIADAVzd19yYgALBXN3X3JhABYJZ3RmX2ltbTEyAAwGZGl2X3JiAAsGZGl2X3JhABYHbG9nZF9yZAAXB2xvZ2RfcmMADwdsb2dkX3JiAAsHbG9nZF9yYQAWBW9yX3JjAA8Fb3JfcmIACwVvcl9yYQAWBm1lcV9yZAAXBm1lcV9yYwAPBm1lcV9yYgALBm1lcV9yYQAWB3dxYW1fcmQAFwd3cWFtX3JjAA8Hd3FhbV9yYgALB3dxYW1fcmEAFgpqbnpiX2ltbTEyAAwHam56Yl9yYgALB2puemJfcmEAFgZsZGNfcmMADwZsZGNfcmIACwZsZGNfcmEAFgptY3BpX2ltbTEyAAwHbWNwaV9yYgALB21jcGlfcmEAFgptb3ZpX2ltbTE4AAkHam1wZl9yYQAWCGxiX2ltbTEyAAwFbGJfcmIACwVsYl9yYQAWB3dxY21fcmMADwd3cWNtX3JiAAsHd3FjbV9yYQAWB3dxb3BfcmMADwd3cW9wX3JiAAsHd3FvcF9yYQAWB21yb29fcmMADwdtcm9vX3JiAAsHbXJvb19yYQAWB3dkbWxfcmMADwd3ZG1sX3JiAAsHd2RtbF9yYQAWBXRyX3JjAA8FdHJfcmIACwV0cl9yYQAWCmpuZWlfaW1tMTIADAdqbmVpX3JiAAsHam5laV9yYQAWB2VjYWxfcmQAFwZkaXZfcmMADwdjYWxsX3JiAAsHY2FsbF9yYQAWB2NhbGxfcmMADwdhbmRpX3JiAAsHYW5kaV9yYQAWB2Joc2hfcmIACwdiaHNoX3JhABYGc3d3X3JjAA8Gc3d3X3JiAAsGc3d3X3JhABYKc3ViaV9pbW0xMgAMB3N1YmlfcmIACwdzdWJpX3JhABYFZXFfcmMADwVlcV9yYgALBWVxX3JhABYHd2RtbV9yZAAXB3dkbW1fcmMADwd3ZG1tX3JiAAsHd2RtbV9yYQAWCnNsbGlfaW1tMTIADAdzbGxpX3JiAAsHc2xsaV9yYQAWBmpuZV9yYwAPBmpuZV9yYgALBmpuZV9yYQAWB21vdmVfcmIACwdtb3ZlX3JhABYKZGl2aV9pbW0xMgAMB2RpdmlfcmIACwdkaXZpX3JhABYHZWNyMV9yYwAPB2VjcjFfcmIACwdlY3IxX3JhABYHY3Npel9yYgALB2NzaXpfcmEAFgdyZXRkX3JiAAsHcmV0ZF9yYQAWCm1vZGlfaW1tMTIADAdtb2RpX3JiAAsHbW9kaV9yYQAWBWd0X3JjAA8FZ3RfcmIACwVndF9yYQAWE19fd2JnX21hdGhhcmdzX2ZyZWUAdwZjY3BfcmQAFwZjY3BfcmMADwZjY3BfcmIACwZjY3BfcmEAFgdlY2sxX3JjAA8HZWNrMV9yYgALB2VjazFfcmEAFgdrMjU2X3JjAA8HazI1Nl9yYgALB2syNTZfcmEAFgphbmRpX2ltbTEyAAwGYW5kX3JiAAsGYW5kX3JhABYFbHRfcmMADwVsdF9yYgALBWx0X3JhABYGc21vX3JkABcGc21vX3JjAA8Gc21vX3JiAAsGc21vX3JhABYKam56Zl9pbW0xMgAMB2puemZfcmIACwdqbnpmX3JhABYGbWNsX3JiAAsGbWNsX3JhABYHbWludF9yYgALB21pbnRfcmEAFgd3ZG9wX3JjAA8Hd2RvcF9yYgALB3dkb3BfcmEAFgdjcm9vX3JiAAsHY3Jvb19yYQAWBnRyb19yZAAXBnRyb19yYwAPBnRyb19yYgALBnRyb19yYQAWB3dxbWRfcmQAFwd3cW1kX3JjAA8Hd3FtZF9yYgALB3dxbWRfcmEAFgd3cWR2X3JjAA8Hd3Fkdl9yYgALB3dxZHZfcmEAFgpleHBpX2ltbTEyAAwHZXhwaV9yYgALB2V4cGlfcmEAFgdzcndxX3JkABcHc3J3cV9yYwAPB3Nyd3FfcmIACwdzcndxX3JhABYHd3FtbF9yYwAPB3dxbWxfcmIACwd3cW1sX3JhABYHd2RtZF9yZAAXB3dkbWRfcmMADwd3ZG1kX3JiAAsHd2RtZF9yYQAWBm1vZF9yYwAPBm1vZF9yYgALBm1vZF9yYQAWCmpuemlfaW1tMTgACQdqbnppX3JhABYHYnVybl9yYgALB2J1cm5fcmEAFglvcmlfaW1tMTIADAZvcmlfcmIACwZvcmlfcmEAFgZhbmRfcmMADwdhZGRpX3JiAAsHYWRkaV9yYQAWBnhvcl9yYwAPBnhvcl9yYgALBnhvcl9yYQAWCGx3X2ltbTEyAAwFbHdfcmIACwVsd19yYQAWCHNiX2ltbTEyAAwFc2JfcmIACwVzYl9yYQAWCm11bGlfaW1tMTIADAdtdWxpX3JiAAsHbXVsaV9yYQAWBmxvZ19yZAAXBmxvZ19yYwAPBmxvZ19yYgALBmxvZ19yYQAWB21sb2dfcmMADwdtbG9nX3JiAAsHbWxvZ19yYQAWCm1jbGlfaW1tMTgACQdtY2xpX3JhABYGc3ViX3JjAA8Gc3ViX3JiAAsGc3ViX3JhABYGc2xsX3JjAA8Gc2xsX3JiAAsGc2xsX3JhABYGbm90X3JiAAsGbm90X3JhABYHam5lYl9yYwAPB2puZWJfcmIACwdqbmViX3JhABYKc3JsaV9pbW0xMgAMB3NybGlfcmIACwdzcmxpX3JhABYHczI1Nl9yYwAPB3MyNTZfcmIACwdzMjU2X3JhABYGYmFsX3JjAA8GYmFsX3JiAAsGYmFsX3JhABYKam1wZl9pbW0xOAAJB2ptcGJfcmEAFgd3ZGFtX3JkABcHd2RhbV9yYwAPB3dkYW1fcmIACwd3ZGFtX3JhABYKam1wYl9pbW0xOAAJBWdtX3JhABYHd3FtbV9yZAAXB3dxbW1fcmMADwd3cW1tX3JiAAsHd3FtbV9yYQAWB3dkZHZfcmMADwd3ZGR2X3JiAAsHd2Rkdl9yYQAWB3RpbWVfcmIACwd0aW1lX3JhABYKeG9yaV9pbW0xMgAMB3hvcmlfcmIACwd4b3JpX3JhABYHam5lZl9yYwAPB2puZWZfcmIACwdqbmVmX3JhABYH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QQx2ELwBIAFBEGokAAtuAQJ/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.61.2",
28642
- FUEL_CORE: "0.31.0",
28643
- FUELS: "0.92.1"
28802
+ FORC: "0.62.0",
28803
+ FUEL_CORE: "0.32.1",
28804
+ FUELS: "0.93.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["INVALID_TRANSACTION_TYPE"] = "invalid-transaction-type";
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";
@@ -29687,16 +29858,16 @@ If you are attempting to transform a hex value, please make sure it is being pas
29687
29858
  this.blockLen = this.iHash.blockLen;
29688
29859
  this.outputLen = this.iHash.outputLen;
29689
29860
  const blockLen = this.blockLen;
29690
- const pad3 = new Uint8Array(blockLen);
29691
- pad3.set(key.length > blockLen ? hash4.create().update(key).digest() : key);
29692
- for (let i = 0; i < pad3.length; i++)
29693
- pad3[i] ^= 54;
29694
- this.iHash.update(pad3);
29861
+ const pad = new Uint8Array(blockLen);
29862
+ pad.set(key.length > blockLen ? hash4.create().update(key).digest() : key);
29863
+ for (let i = 0; i < pad.length; i++)
29864
+ pad[i] ^= 54;
29865
+ this.iHash.update(pad);
29695
29866
  this.oHash = hash4.create();
29696
- for (let i = 0; i < pad3.length; i++)
29697
- pad3[i] ^= 54 ^ 92;
29698
- this.oHash.update(pad3);
29699
- pad3.fill(0);
29867
+ for (let i = 0; i < pad.length; i++)
29868
+ pad[i] ^= 54 ^ 92;
29869
+ this.oHash.update(pad);
29870
+ pad.fill(0);
29700
29871
  }
29701
29872
  update(buf) {
29702
29873
  exists(this);
@@ -30241,6 +30412,7 @@ If you are attempting to transform a hex value, please make sure it is being pas
30241
30412
  var import_crypto3 = __toESM(__require("crypto"), 1);
30242
30413
  var import_crypto4 = __toESM(__require("crypto"), 1);
30243
30414
  var import_crypto5 = __require("crypto");
30415
+ var import_crypto6 = __require("crypto");
30244
30416
  var scrypt2 = (params) => {
30245
30417
  const { password, salt, n, p, r, dklen } = params;
30246
30418
  const derivedKey = scrypt(password, salt, { N: n, r, p, dkLen: dklen });
@@ -30354,6 +30526,7 @@ If you are attempting to transform a hex value, please make sure it is being pas
30354
30526
  computeHMAC = func;
30355
30527
  };
30356
30528
  Object.freeze(computeHmac);
30529
+ var randomUUID = () => (0, import_crypto6.randomUUID)();
30357
30530
  var api = {
30358
30531
  bufferFromString,
30359
30532
  stringFromBuffer,
@@ -30367,7 +30540,8 @@ If you are attempting to transform a hex value, please make sure it is being pas
30367
30540
  encryptJsonWalletData,
30368
30541
  computeHmac,
30369
30542
  pbkdf2: pbkdf22,
30370
- ripemd160: ripemd1602
30543
+ ripemd160: ripemd1602,
30544
+ randomUUID
30371
30545
  };
30372
30546
  var node_default = api;
30373
30547
  var {
@@ -30383,7 +30557,8 @@ If you are attempting to transform a hex value, please make sure it is being pas
30383
30557
  encryptJsonWalletData: encryptJsonWalletData2,
30384
30558
  computeHmac: computeHmac2,
30385
30559
  pbkdf2: pbkdf222,
30386
- ripemd160: ripemd16022
30560
+ ripemd160: ripemd16022,
30561
+ randomUUID: randomUUID2
30387
30562
  } = node_default;
30388
30563
 
30389
30564
  // ../hasher/dist/index.mjs
@@ -30436,6 +30611,8 @@ If you are attempting to transform a hex value, please make sure it is being pas
30436
30611
  var BYTES_CODER_TYPE = "struct Bytes";
30437
30612
  var STD_STRING_CODER_TYPE = "struct String";
30438
30613
  var STR_SLICE_CODER_TYPE = "str";
30614
+ var VOID_TYPE = "()";
30615
+ var OPTION_REGEX = /^enum (std::option::)?Option$/m;
30439
30616
  var stringRegEx = /str\[(?<length>[0-9]+)\]/;
30440
30617
  var arrayRegEx = /\[(?<item>[\w\s\\[\]]+);\s*(?<length>[0-9]+)\]/;
30441
30618
  var structRegEx = /^struct (?<name>\w+)$/;
@@ -30697,14 +30874,9 @@ If you are attempting to transform a hex value, please make sure it is being pas
30697
30874
  this.#encodedValueSize = encodedValueSize;
30698
30875
  this.#shouldValidateLength = !(this.type === OPTION_CODER_TYPE || hasNestedOption(coders));
30699
30876
  }
30700
- // We parse a native enum as an empty tuple, so we are looking for a tuple with no child coders.
30701
- // The '()' is enough but the child coders is a stricter check.
30877
+ // Checks that we're handling a native enum that is of type void.
30702
30878
  #isNativeEnum(coder) {
30703
- if (this.type !== OPTION_CODER_TYPE && coder.type === "()") {
30704
- const tupleCoder = coder;
30705
- return tupleCoder.coders.length === 0;
30706
- }
30707
- return false;
30879
+ return this.type !== OPTION_CODER_TYPE && coder.type === VOID_TYPE;
30708
30880
  }
30709
30881
  #encodeNativeEnum(value) {
30710
30882
  const valueCoder = this.coders[value];
@@ -31079,7 +31251,7 @@ If you are attempting to transform a hex value, please make sure it is being pas
31079
31251
  }
31080
31252
  return type3;
31081
31253
  };
31082
- var findNonEmptyInputs = (abi, inputs) => inputs.filter((input) => findTypeById(abi, input.type).type !== "()");
31254
+ var findNonVoidInputs = (abi, inputs) => inputs.filter((input) => findTypeById(abi, input.type).type !== VOID_TYPE);
31083
31255
  var findVectorBufferArgument = (components) => {
31084
31256
  const bufferComponent = components.find((c) => c.name === "buf");
31085
31257
  const bufferTypeArgument = bufferComponent?.originalTypeArguments?.[0];
@@ -31230,6 +31402,17 @@ If you are attempting to transform a hex value, please make sure it is being pas
31230
31402
  return `${typeArgumentsSignature}${componentsSignature}`;
31231
31403
  }
31232
31404
  };
31405
+ var VoidCoder = class extends Coder {
31406
+ constructor() {
31407
+ super("void", VOID_TYPE, 0);
31408
+ }
31409
+ encode(_value) {
31410
+ return new Uint8Array([]);
31411
+ }
31412
+ decode(_data, offset) {
31413
+ return [void 0, offset];
31414
+ }
31415
+ };
31233
31416
  function getCoders(components, options) {
31234
31417
  const { getCoder: getCoder2 } = options;
31235
31418
  return components.reduce((obj, component) => {
@@ -31263,6 +31446,8 @@ If you are attempting to transform a hex value, please make sure it is being pas
31263
31446
  return new StdStringCoder();
31264
31447
  case STR_SLICE_CODER_TYPE:
31265
31448
  return new StrSliceCoder();
31449
+ case VOID_TYPE:
31450
+ return new VoidCoder();
31266
31451
  default:
31267
31452
  break;
31268
31453
  }
@@ -31340,6 +31525,24 @@ If you are attempting to transform a hex value, please make sure it is being pas
31340
31525
  return this.getCoder(abi, argument, options).decode(data, offset);
31341
31526
  }
31342
31527
  };
31528
+ var getFunctionInputs = (params) => {
31529
+ const { jsonAbi, inputs } = params;
31530
+ let isMandatory = false;
31531
+ return inputs.reduceRight((result, input) => {
31532
+ const type3 = findTypeById(jsonAbi, input.type);
31533
+ isMandatory = isMandatory || type3.type !== VOID_TYPE && !OPTION_REGEX.test(type3.type);
31534
+ return [{ ...input, isOptional: !isMandatory }, ...result];
31535
+ }, []);
31536
+ };
31537
+ var padValuesWithUndefined = (values, inputs) => {
31538
+ if (values.length >= inputs.length) {
31539
+ return values;
31540
+ }
31541
+ const paddedValues = values.slice();
31542
+ paddedValues.length = inputs.length;
31543
+ paddedValues.fill(void 0, values.length);
31544
+ return paddedValues;
31545
+ };
31343
31546
  var FunctionFragment = class {
31344
31547
  signature;
31345
31548
  selector;
@@ -31370,41 +31573,26 @@ If you are attempting to transform a hex value, please make sure it is being pas
31370
31573
  return bn(hashedFunctionSignature.slice(0, 10)).toHex(8);
31371
31574
  }
31372
31575
  encodeArguments(values) {
31373
- FunctionFragment.verifyArgsAndInputsAlign(values, this.jsonFn.inputs, this.jsonAbi);
31374
- const shallowCopyValues = values.slice();
31375
- const nonEmptyInputs = findNonEmptyInputs(this.jsonAbi, this.jsonFn.inputs);
31376
- if (Array.isArray(values) && nonEmptyInputs.length !== values.length) {
31377
- shallowCopyValues.length = this.jsonFn.inputs.length;
31378
- shallowCopyValues.fill(void 0, values.length);
31379
- }
31380
- const coders = nonEmptyInputs.map(
31576
+ const inputs = getFunctionInputs({ jsonAbi: this.jsonAbi, inputs: this.jsonFn.inputs });
31577
+ const mandatoryInputLength = inputs.filter((i) => !i.isOptional).length;
31578
+ if (values.length < mandatoryInputLength) {
31579
+ throw new FuelError(
31580
+ ErrorCode.ABI_TYPES_AND_VALUES_MISMATCH,
31581
+ `Invalid number of arguments. Expected a minimum of ${mandatoryInputLength} arguments, received ${values.length}`
31582
+ );
31583
+ }
31584
+ const coders = this.jsonFn.inputs.map(
31381
31585
  (t) => AbiCoder.getCoder(this.jsonAbi, t, {
31382
31586
  encoding: this.encoding
31383
31587
  })
31384
31588
  );
31385
- return new TupleCoder(coders).encode(shallowCopyValues);
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);
31589
+ const argumentValues = padValuesWithUndefined(values, this.jsonFn.inputs);
31590
+ return new TupleCoder(coders).encode(argumentValues);
31403
31591
  }
31404
31592
  decodeArguments(data) {
31405
31593
  const bytes3 = arrayify(data);
31406
- const nonEmptyInputs = findNonEmptyInputs(this.jsonAbi, this.jsonFn.inputs);
31407
- if (nonEmptyInputs.length === 0) {
31594
+ const nonVoidInputs = findNonVoidInputs(this.jsonAbi, this.jsonFn.inputs);
31595
+ if (nonVoidInputs.length === 0) {
31408
31596
  if (bytes3.length === 0) {
31409
31597
  return void 0;
31410
31598
  }
@@ -31413,18 +31601,18 @@ If you are attempting to transform a hex value, please make sure it is being pas
31413
31601
  `Types/values length mismatch during decode. ${JSON.stringify({
31414
31602
  count: {
31415
31603
  types: this.jsonFn.inputs.length,
31416
- nonEmptyInputs: nonEmptyInputs.length,
31604
+ nonVoidInputs: nonVoidInputs.length,
31417
31605
  values: bytes3.length
31418
31606
  },
31419
31607
  value: {
31420
31608
  args: this.jsonFn.inputs,
31421
- nonEmptyInputs,
31609
+ nonVoidInputs,
31422
31610
  values: bytes3
31423
31611
  }
31424
31612
  })}`
31425
31613
  );
31426
31614
  }
31427
- const result = nonEmptyInputs.reduce(
31615
+ const result = this.jsonFn.inputs.reduce(
31428
31616
  (obj, input) => {
31429
31617
  const coder = AbiCoder.getCoder(this.jsonAbi, input, { encoding: this.encoding });
31430
31618
  const [decodedValue, decodedValueByteSize] = coder.decode(bytes3, obj.offset);
@@ -31438,10 +31626,6 @@ If you are attempting to transform a hex value, please make sure it is being pas
31438
31626
  return result.decoded;
31439
31627
  }
31440
31628
  decodeOutput(data) {
31441
- const outputAbiType = findTypeById(this.jsonAbi, this.jsonFn.output.type);
31442
- if (outputAbiType.type === "()") {
31443
- return [void 0, 0];
31444
- }
31445
31629
  const bytes3 = arrayify(data);
31446
31630
  const coder = AbiCoder.getCoder(this.jsonAbi, this.jsonFn.output, {
31447
31631
  encoding: this.encoding
@@ -31807,12 +31991,12 @@ If you are attempting to transform a hex value, please make sure it is being pas
31807
31991
  }
31808
31992
  };
31809
31993
 
31810
- // ../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/internal/_isPlaceholder.js
31994
+ // ../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_isPlaceholder.js
31811
31995
  function _isPlaceholder(a) {
31812
31996
  return a != null && typeof a === "object" && a["@@functional/placeholder"] === true;
31813
31997
  }
31814
31998
 
31815
- // ../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/internal/_curry1.js
31999
+ // ../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_curry1.js
31816
32000
  function _curry1(fn) {
31817
32001
  return function f1(a) {
31818
32002
  if (arguments.length === 0 || _isPlaceholder(a)) {
@@ -31823,38 +32007,18 @@ If you are attempting to transform a hex value, please make sure it is being pas
31823
32007
  };
31824
32008
  }
31825
32009
 
31826
- // ../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/internal/_isArray.js
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
32010
+ // ../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/type.js
31832
32011
  var type = /* @__PURE__ */ _curry1(function type2(val) {
31833
32012
  return val === null ? "Null" : val === void 0 ? "Undefined" : Object.prototype.toString.call(val).slice(8, -1);
31834
32013
  });
31835
32014
  var type_default = type;
31836
32015
 
31837
- // ../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/internal/_toISOString.js
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
32016
+ // ../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_cloneRegExp.js
31853
32017
  function _cloneRegExp(pattern) {
31854
32018
  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
32019
  }
31856
32020
 
31857
- // ../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/internal/_clone.js
32021
+ // ../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/internal/_clone.js
31858
32022
  function _clone(value, deep, map) {
31859
32023
  map || (map = new _ObjectMap());
31860
32024
  if (_isPrimitive(value)) {
@@ -31877,7 +32041,7 @@ If you are attempting to transform a hex value, please make sure it is being pas
31877
32041
  case "Object":
31878
32042
  return copy(Object.create(Object.getPrototypeOf(value)));
31879
32043
  case "Array":
31880
- return copy([]);
32044
+ return copy(Array(value.length));
31881
32045
  case "Date":
31882
32046
  return new Date(value.valueOf());
31883
32047
  case "RegExp":
@@ -31908,8 +32072,8 @@ If you are attempting to transform a hex value, please make sure it is being pas
31908
32072
  this.length = 0;
31909
32073
  }
31910
32074
  _ObjectMap2.prototype.set = function(key, value) {
31911
- const hashedKey = this.hash(key);
31912
- let bucket = this.map[hashedKey];
32075
+ var hashedKey = this.hash(key);
32076
+ var bucket = this.map[hashedKey];
31913
32077
  if (!bucket) {
31914
32078
  this.map[hashedKey] = bucket = [];
31915
32079
  }
@@ -31917,7 +32081,7 @@ If you are attempting to transform a hex value, please make sure it is being pas
31917
32081
  this.length += 1;
31918
32082
  };
31919
32083
  _ObjectMap2.prototype.hash = function(key) {
31920
- let hashedKey = [];
32084
+ var hashedKey = [];
31921
32085
  for (var value in key) {
31922
32086
  hashedKey.push(Object.prototype.toString.call(key[value]));
31923
32087
  }
@@ -31925,10 +32089,10 @@ If you are attempting to transform a hex value, please make sure it is being pas
31925
32089
  };
31926
32090
  _ObjectMap2.prototype.get = function(key) {
31927
32091
  if (this.length <= 180) {
31928
- for (const p in this.map) {
31929
- const bucket2 = this.map[p];
31930
- for (let i = 0; i < bucket2.length; i += 1) {
31931
- const element = bucket2[i];
32092
+ for (var p in this.map) {
32093
+ var bucket = this.map[p];
32094
+ for (var i = 0; i < bucket.length; i += 1) {
32095
+ var element = bucket[i];
31932
32096
  if (element[0] === key) {
31933
32097
  return element[1];
31934
32098
  }
@@ -31936,13 +32100,13 @@ If you are attempting to transform a hex value, please make sure it is being pas
31936
32100
  }
31937
32101
  return;
31938
32102
  }
31939
- const hashedKey = this.hash(key);
31940
- const bucket = this.map[hashedKey];
32103
+ var hashedKey = this.hash(key);
32104
+ var bucket = this.map[hashedKey];
31941
32105
  if (!bucket) {
31942
32106
  return;
31943
32107
  }
31944
- for (let i = 0; i < bucket.length; i += 1) {
31945
- const element = bucket[i];
32108
+ for (var i = 0; i < bucket.length; i += 1) {
32109
+ var element = bucket[i];
31946
32110
  if (element[0] === key) {
31947
32111
  return element[1];
31948
32112
  }
@@ -31951,15 +32115,12 @@ If you are attempting to transform a hex value, please make sure it is being pas
31951
32115
  return _ObjectMap2;
31952
32116
  }();
31953
32117
 
31954
- // ../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/clone.js
32118
+ // ../../node_modules/.pnpm/ramda@0.30.1/node_modules/ramda/es/clone.js
31955
32119
  var clone = /* @__PURE__ */ _curry1(function clone2(value) {
31956
32120
  return value != null && typeof value.clone === "function" ? value.clone() : _clone(value, true);
31957
32121
  });
31958
32122
  var clone_default = clone;
31959
32123
 
31960
- // ../../node_modules/.pnpm/ramda@0.29.0/node_modules/ramda/es/trim.js
31961
- var hasProtoTrim = typeof String.prototype.trim === "function";
31962
-
31963
32124
  // src/providers/coin-quantity.ts
31964
32125
  var coinQuantityfy = (coinQuantityLike) => {
31965
32126
  let assetId;
@@ -32801,8 +32962,8 @@ If you are attempting to transform a hex value, please make sure it is being pas
32801
32962
  }
32802
32963
  default: {
32803
32964
  throw new FuelError(
32804
- ErrorCode.INVALID_TRANSACTION_TYPE,
32805
- `Invalid transaction type: ${type3}`
32965
+ ErrorCode.UNSUPPORTED_TRANSACTION_TYPE,
32966
+ `Unsupported transaction type: ${type3}`
32806
32967
  );
32807
32968
  }
32808
32969
  }
@@ -32828,8 +32989,8 @@ If you are attempting to transform a hex value, please make sure it is being pas
32828
32989
  }
32829
32990
  default: {
32830
32991
  throw new FuelError(
32831
- ErrorCode.INVALID_TRANSACTION_TYPE,
32832
- `Invalid transaction type: ${type3}`
32992
+ ErrorCode.UNSUPPORTED_TRANSACTION_TYPE,
32993
+ `Unsupported transaction type: ${type3}`
32833
32994
  );
32834
32995
  }
32835
32996
  }
@@ -32872,6 +33033,7 @@ If you are attempting to transform a hex value, please make sure it is being pas
32872
33033
  TransactionType2[TransactionType2["Mint"] = 2] = "Mint";
32873
33034
  TransactionType2[TransactionType2["Upgrade"] = 3] = "Upgrade";
32874
33035
  TransactionType2[TransactionType2["Upload"] = 4] = "Upload";
33036
+ TransactionType2[TransactionType2["Blob"] = 5] = "Blob";
32875
33037
  return TransactionType2;
32876
33038
  })(TransactionType || {});
32877
33039
  var TransactionScriptCoder = class extends Coder {
@@ -33196,6 +33358,65 @@ If you are attempting to transform a hex value, please make sure it is being pas
33196
33358
  ];
33197
33359
  }
33198
33360
  };
33361
+ var TransactionBlobCoder = class extends Coder {
33362
+ constructor() {
33363
+ super("TransactionBlob", "struct TransactionBlob", 0);
33364
+ }
33365
+ encode(value) {
33366
+ const parts = [];
33367
+ parts.push(new B256Coder().encode(value.blobId));
33368
+ parts.push(new NumberCoder("u16", { padToWordSize: true }).encode(value.witnessIndex));
33369
+ parts.push(new NumberCoder("u32", { padToWordSize: true }).encode(value.policyTypes));
33370
+ parts.push(new NumberCoder("u16", { padToWordSize: true }).encode(value.inputsCount));
33371
+ parts.push(new NumberCoder("u16", { padToWordSize: true }).encode(value.outputsCount));
33372
+ parts.push(new NumberCoder("u16", { padToWordSize: true }).encode(value.witnessesCount));
33373
+ parts.push(new PoliciesCoder().encode(value.policies));
33374
+ parts.push(new ArrayCoder(new InputCoder(), value.inputsCount).encode(value.inputs));
33375
+ parts.push(new ArrayCoder(new OutputCoder(), value.outputsCount).encode(value.outputs));
33376
+ parts.push(new ArrayCoder(new WitnessCoder(), value.witnessesCount).encode(value.witnesses));
33377
+ return concat(parts);
33378
+ }
33379
+ decode(data, offset) {
33380
+ let decoded;
33381
+ let o = offset;
33382
+ [decoded, o] = new B256Coder().decode(data, o);
33383
+ const blobId = decoded;
33384
+ [decoded, o] = new NumberCoder("u16", { padToWordSize: true }).decode(data, o);
33385
+ const witnessIndex = decoded;
33386
+ [decoded, o] = new NumberCoder("u32", { padToWordSize: true }).decode(data, o);
33387
+ const policyTypes = decoded;
33388
+ [decoded, o] = new NumberCoder("u16", { padToWordSize: true }).decode(data, o);
33389
+ const inputsCount = decoded;
33390
+ [decoded, o] = new NumberCoder("u16", { padToWordSize: true }).decode(data, o);
33391
+ const outputsCount = decoded;
33392
+ [decoded, o] = new NumberCoder("u16", { padToWordSize: true }).decode(data, o);
33393
+ const witnessesCount = decoded;
33394
+ [decoded, o] = new PoliciesCoder().decode(data, o, policyTypes);
33395
+ const policies = decoded;
33396
+ [decoded, o] = new ArrayCoder(new InputCoder(), inputsCount).decode(data, o);
33397
+ const inputs = decoded;
33398
+ [decoded, o] = new ArrayCoder(new OutputCoder(), outputsCount).decode(data, o);
33399
+ const outputs = decoded;
33400
+ [decoded, o] = new ArrayCoder(new WitnessCoder(), witnessesCount).decode(data, o);
33401
+ const witnesses = decoded;
33402
+ return [
33403
+ {
33404
+ type: 5,
33405
+ blobId,
33406
+ witnessIndex,
33407
+ policyTypes,
33408
+ inputsCount,
33409
+ outputsCount,
33410
+ witnessesCount,
33411
+ policies,
33412
+ inputs,
33413
+ outputs,
33414
+ witnesses
33415
+ },
33416
+ o
33417
+ ];
33418
+ }
33419
+ };
33199
33420
  var TransactionCoder = class extends Coder {
33200
33421
  constructor() {
33201
33422
  super("Transaction", "struct Transaction", 0);
@@ -33233,10 +33454,14 @@ If you are attempting to transform a hex value, please make sure it is being pas
33233
33454
  );
33234
33455
  break;
33235
33456
  }
33457
+ case 5: {
33458
+ parts.push(new TransactionBlobCoder().encode(value));
33459
+ break;
33460
+ }
33236
33461
  default: {
33237
33462
  throw new FuelError(
33238
- ErrorCode.INVALID_TRANSACTION_TYPE,
33239
- `Invalid transaction type: ${type3}`
33463
+ ErrorCode.UNSUPPORTED_TRANSACTION_TYPE,
33464
+ `Unsupported transaction type: ${type3}`
33240
33465
  );
33241
33466
  }
33242
33467
  }
@@ -33268,10 +33493,14 @@ If you are attempting to transform a hex value, please make sure it is being pas
33268
33493
  [decoded, o] = new TransactionUploadCoder().decode(data, o);
33269
33494
  return [decoded, o];
33270
33495
  }
33496
+ case 5: {
33497
+ [decoded, o] = new TransactionBlobCoder().decode(data, o);
33498
+ return [decoded, o];
33499
+ }
33271
33500
  default: {
33272
33501
  throw new FuelError(
33273
- ErrorCode.INVALID_TRANSACTION_TYPE,
33274
- `Invalid transaction type: ${type3}`
33502
+ ErrorCode.UNSUPPORTED_TRANSACTION_TYPE,
33503
+ `Unsupported transaction type: ${type3}`
33275
33504
  );
33276
33505
  }
33277
33506
  }
@@ -33402,10 +33631,10 @@ If you are attempting to transform a hex value, please make sure it is being pas
33402
33631
  sum += a.length;
33403
33632
  }
33404
33633
  const res = new Uint8Array(sum);
33405
- for (let i = 0, pad3 = 0; i < arrays.length; i++) {
33634
+ for (let i = 0, pad = 0; i < arrays.length; i++) {
33406
33635
  const a = arrays[i];
33407
- res.set(a, pad3);
33408
- pad3 += a.length;
33636
+ res.set(a, pad);
33637
+ pad += a.length;
33409
33638
  }
33410
33639
  return res;
33411
33640
  }
@@ -37109,6 +37338,12 @@ ${ReceiptFragmentDoc}`;
37109
37338
  alocDependentCost {
37110
37339
  ...DependentCostFragment
37111
37340
  }
37341
+ bldd {
37342
+ ...DependentCostFragment
37343
+ }
37344
+ bsiz {
37345
+ ...DependentCostFragment
37346
+ }
37112
37347
  cfe {
37113
37348
  ...DependentCostFragment
37114
37349
  }
@@ -37127,6 +37362,9 @@ ${ReceiptFragmentDoc}`;
37127
37362
  csiz {
37128
37363
  ...DependentCostFragment
37129
37364
  }
37365
+ ed19DependentCost {
37366
+ ...DependentCostFragment
37367
+ }
37130
37368
  k256 {
37131
37369
  ...DependentCostFragment
37132
37370
  }
@@ -37731,60 +37969,63 @@ ${MessageFragmentDoc}`;
37731
37969
  var FuelGraphqlSubscriber = _FuelGraphqlSubscriber;
37732
37970
  __publicField(FuelGraphqlSubscriber, "textDecoder", new TextDecoder());
37733
37971
 
37734
- // src/providers/memory-cache.ts
37735
- var cache = {};
37736
- var DEFAULT_TTL_IN_MS = 30 * 1e3;
37737
- var MemoryCache = class {
37972
+ // src/providers/resource-cache.ts
37973
+ var cache = /* @__PURE__ */ new Map();
37974
+ var ResourceCache = class {
37738
37975
  ttl;
37739
- constructor(ttlInMs = DEFAULT_TTL_IN_MS) {
37740
- this.ttl = ttlInMs;
37741
- if (typeof ttlInMs !== "number" || this.ttl <= 0) {
37976
+ constructor(ttl) {
37977
+ this.ttl = ttl;
37978
+ if (typeof ttl !== "number" || this.ttl <= 0) {
37742
37979
  throw new FuelError(
37743
37980
  ErrorCode.INVALID_TTL,
37744
37981
  `Invalid TTL: ${this.ttl}. Use a value greater than zero.`
37745
37982
  );
37746
37983
  }
37747
37984
  }
37748
- get(value, isAutoExpiring = true) {
37749
- const key = hexlify(value);
37750
- if (cache[key]) {
37751
- if (!isAutoExpiring || cache[key].expires > Date.now()) {
37752
- return cache[key].value;
37753
- }
37754
- this.del(value);
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
37985
+ // Add resources to the cache
37986
+ set(transactionId, resources) {
37987
+ const currentTime = Date.now();
37988
+ const existingResources = cache.get(transactionId) || {
37989
+ utxos: /* @__PURE__ */ new Set(),
37990
+ messages: /* @__PURE__ */ new Set(),
37991
+ timestamp: currentTime
37764
37992
  };
37765
- return expiresAt;
37993
+ resources.utxos.forEach((utxo) => existingResources.utxos.add(hexlify(utxo)));
37994
+ resources.messages.forEach((message) => existingResources.messages.add(hexlify(message)));
37995
+ cache.set(transactionId, existingResources);
37766
37996
  }
37767
- getAllData() {
37768
- return Object.keys(cache).reduce((list, key) => {
37769
- const data = this.get(key, false);
37770
- if (data) {
37771
- list.push(data);
37772
- }
37773
- return list;
37774
- }, []);
37997
+ // Remove resources from the cache for a given transaction ID
37998
+ unset(transactionId) {
37999
+ cache.delete(transactionId);
37775
38000
  }
38001
+ // Get all cached resources and remove expired ones
37776
38002
  getActiveData() {
37777
- return Object.keys(cache).reduce((list, key) => {
37778
- const data = this.get(key);
37779
- if (data) {
37780
- list.push(data);
38003
+ const allResources = { utxos: [], messages: [] };
38004
+ const currentTime = Date.now();
38005
+ cache.forEach((resource, transactionId) => {
38006
+ if (currentTime - resource.timestamp < this.ttl) {
38007
+ allResources.utxos.push(...resource.utxos);
38008
+ allResources.messages.push(...resource.messages);
38009
+ } else {
38010
+ cache.delete(transactionId);
37781
38011
  }
37782
- return list;
37783
- }, []);
38012
+ });
38013
+ return allResources;
38014
+ }
38015
+ // Check if a UTXO ID or message nonce is already cached and not expired
38016
+ isCached(key) {
38017
+ const currentTime = Date.now();
38018
+ for (const [transactionId, resourceData] of cache.entries()) {
38019
+ if (currentTime - resourceData.timestamp > this.ttl) {
38020
+ cache.delete(transactionId);
38021
+ } else if (resourceData.utxos.has(key) || resourceData.messages.has(key)) {
38022
+ return true;
38023
+ }
38024
+ }
38025
+ return false;
37784
38026
  }
37785
- del(value) {
37786
- const key = hexlify(value);
37787
- delete cache[key];
38027
+ clear() {
38028
+ cache.clear();
37788
38029
  }
37789
38030
  };
37790
38031
 
@@ -37975,7 +38216,18 @@ ${MessageFragmentDoc}`;
37975
38216
  "TooManyReceipts",
37976
38217
  "BalanceOverflow",
37977
38218
  "InvalidBlockHeight",
37978
- "TooManySlots"
38219
+ "TooManySlots",
38220
+ "ExpectedNestedCaller",
38221
+ "MemoryGrowthOverlap",
38222
+ "UninitalizedMemoryAccess",
38223
+ "OverridingConsensusParameters",
38224
+ "UnknownStateTransactionBytecodeRoot",
38225
+ "OverridingStateTransactionBytecode",
38226
+ "BytecodeAlreadyUploaded",
38227
+ "ThePartIsNotSequentiallyConnected",
38228
+ "BlobIdAlreadyUploaded",
38229
+ "BlobNotFound",
38230
+ "GasCostNotDefined"
37979
38231
  ];
37980
38232
  var PANIC_DOC_URL = "https://docs.rs/fuel-asm/latest/fuel_asm/enum.PanicReason.html";
37981
38233
 
@@ -38328,6 +38580,15 @@ ${MessageFragmentDoc}`;
38328
38580
  }) {
38329
38581
  return resolveGasDependentCosts(txBytesSize, gasCosts.s256);
38330
38582
  }
38583
+ function calculateMetadataGasForTxBlob({
38584
+ gasCosts,
38585
+ txBytesSize,
38586
+ witnessBytesSize
38587
+ }) {
38588
+ const txId = resolveGasDependentCosts(txBytesSize, gasCosts.s256);
38589
+ const blobLen = resolveGasDependentCosts(witnessBytesSize, gasCosts.s256);
38590
+ return txId.add(blobLen);
38591
+ }
38331
38592
  var calculateGasFee = (params) => {
38332
38593
  const { gas, gasPrice, priceFactor, tip } = params;
38333
38594
  return gas.mul(gasPrice).div(priceFactor).add(bn(tip));
@@ -38887,7 +39148,7 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
38887
39148
  * @hidden
38888
39149
  */
38889
39150
  metadataGas(_gasCosts) {
38890
- throw new Error("Not implemented");
39151
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Not implemented");
38891
39152
  }
38892
39153
  /**
38893
39154
  * @hidden
@@ -38962,6 +39223,7 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
38962
39223
  };
38963
39224
  updateAssetInput(baseAssetId, bn(1e11));
38964
39225
  quantities.forEach((q) => updateAssetInput(q.assetId, q.amount));
39226
+ return this;
38965
39227
  }
38966
39228
  /**
38967
39229
  * Retrieves an array of CoinQuantity for each coin output present in the transaction.
@@ -39008,6 +39270,9 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
39008
39270
  }
39009
39271
  });
39010
39272
  }
39273
+ byteLength() {
39274
+ return this.toTransactionBytes().byteLength;
39275
+ }
39011
39276
  };
39012
39277
 
39013
39278
  // src/providers/transaction-request/hash-transaction.ts
@@ -39075,6 +39340,70 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
39075
39340
  return sha2562(concatenatedData);
39076
39341
  }
39077
39342
 
39343
+ // src/providers/transaction-request/blob-transaction-request.ts
39344
+ var BlobTransactionRequest = class extends BaseTransactionRequest {
39345
+ static from(obj) {
39346
+ if (obj instanceof this) {
39347
+ return obj;
39348
+ }
39349
+ return new this(obj);
39350
+ }
39351
+ /** Type of the transaction */
39352
+ type = TransactionType.Blob;
39353
+ /** Blob ID */
39354
+ blobId;
39355
+ /** Witness index of contract bytecode to create */
39356
+ witnessIndex;
39357
+ /**
39358
+ * Creates an instance `BlobTransactionRequest`.
39359
+ *
39360
+ * @param blobTransactionRequestLike - The initial values for the instance
39361
+ */
39362
+ constructor({ witnessIndex, blobId, ...rest }) {
39363
+ super(rest);
39364
+ this.blobId = blobId;
39365
+ this.witnessIndex = witnessIndex ?? 0;
39366
+ }
39367
+ /**
39368
+ * Converts the transaction request to a `TransactionBlob`.
39369
+ *
39370
+ * @returns The transaction create object.
39371
+ */
39372
+ toTransaction() {
39373
+ const baseTransaction = this.getBaseTransaction();
39374
+ const { witnessIndex, blobId } = this;
39375
+ return {
39376
+ type: TransactionType.Blob,
39377
+ ...baseTransaction,
39378
+ blobId,
39379
+ witnessIndex
39380
+ };
39381
+ }
39382
+ /**
39383
+ * Gets the Transaction Request by hashing the transaction.
39384
+ *
39385
+ * @param chainId - The chain ID.
39386
+ *
39387
+ * @returns - A hash of the transaction, which is the transaction ID.
39388
+ */
39389
+ getTransactionId(chainId) {
39390
+ return hashTransaction(this, chainId);
39391
+ }
39392
+ /**
39393
+ * Calculates the metadata gas cost for a blob transaction.
39394
+ *
39395
+ * @param gasCosts - gas costs passed from the chain.
39396
+ * @returns metadata gas cost for the blob transaction.
39397
+ */
39398
+ metadataGas(gasCosts) {
39399
+ return calculateMetadataGasForTxBlob({
39400
+ gasCosts,
39401
+ txBytesSize: this.byteSize(),
39402
+ witnessBytesSize: this.witnesses[this.witnessIndex].length
39403
+ });
39404
+ }
39405
+ };
39406
+
39078
39407
  // src/providers/transaction-request/storage-slot.ts
39079
39408
  var getStorageValue = (value) => {
39080
39409
  const v = new Uint8Array(32);
@@ -39394,7 +39723,7 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
39394
39723
 
39395
39724
  // src/providers/transaction-request/utils.ts
39396
39725
  var transactionRequestify = (obj) => {
39397
- if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest) {
39726
+ if (obj instanceof ScriptTransactionRequest || obj instanceof CreateTransactionRequest || obj instanceof BlobTransactionRequest) {
39398
39727
  return obj;
39399
39728
  }
39400
39729
  const { type: type3 } = obj;
@@ -39405,11 +39734,20 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
39405
39734
  case TransactionType.Create: {
39406
39735
  return CreateTransactionRequest.from(obj);
39407
39736
  }
39737
+ case TransactionType.Blob: {
39738
+ return BlobTransactionRequest.from(obj);
39739
+ }
39408
39740
  default: {
39409
- throw new FuelError(ErrorCode.INVALID_TRANSACTION_TYPE, `Invalid transaction type: ${type3}.`);
39741
+ throw new FuelError(
39742
+ ErrorCode.UNSUPPORTED_TRANSACTION_TYPE,
39743
+ `Unsupported transaction type: ${type3}.`
39744
+ );
39410
39745
  }
39411
39746
  }
39412
39747
  };
39748
+ var isTransactionTypeScript = (request) => request.type === TransactionType.Script;
39749
+ var isTransactionTypeCreate = (request) => request.type === TransactionType.Create;
39750
+ var isTransactionTypeBlob = (request) => request.type === TransactionType.Blob;
39413
39751
 
39414
39752
  // src/providers/transaction-summary/calculate-tx-fee-for-summary.ts
39415
39753
  var calculateTXFeeForSummary = (params) => {
@@ -39529,14 +39867,22 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
39529
39867
  function getInputsContract(inputs) {
39530
39868
  return getInputsByType(inputs, InputType.Contract);
39531
39869
  }
39532
- function getInputFromAssetId(inputs, assetId) {
39870
+ function findCoinInput(inputs, assetId) {
39533
39871
  const coinInputs = getInputsCoin(inputs);
39534
- const messageInputs = getInputsMessage(inputs);
39535
- const coinInput = coinInputs.find((i) => i.assetId === assetId);
39536
- const messageInput = messageInputs.find(
39537
- (_) => assetId === "0x0000000000000000000000000000000000000000000000000000000000000000"
39538
- );
39539
- return coinInput || messageInput;
39872
+ return coinInputs.find((i) => i.assetId === assetId);
39873
+ }
39874
+ function findMessageInput(inputs) {
39875
+ return getInputsMessage(inputs)?.[0];
39876
+ }
39877
+ function getInputFromAssetId(inputs, assetId, isBaseAsset = false) {
39878
+ const coinInput = findCoinInput(inputs, assetId);
39879
+ if (coinInput) {
39880
+ return coinInput;
39881
+ }
39882
+ if (isBaseAsset) {
39883
+ return findMessageInput(inputs);
39884
+ }
39885
+ return void 0;
39540
39886
  }
39541
39887
  function getInputContractFromIndex(inputs, inputIndex) {
39542
39888
  if (inputIndex == null) {
@@ -39591,6 +39937,7 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
39591
39937
  TransactionTypeName2["Script"] = "Script";
39592
39938
  TransactionTypeName2["Upgrade"] = "Upgrade";
39593
39939
  TransactionTypeName2["Upload"] = "Upload";
39940
+ TransactionTypeName2["Blob"] = "Blob";
39594
39941
  return TransactionTypeName2;
39595
39942
  })(TransactionTypeName || {});
39596
39943
  var TransactionStatus = /* @__PURE__ */ ((TransactionStatus2) => {
@@ -39636,10 +39983,12 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
39636
39983
  return "Create" /* Create */;
39637
39984
  case TransactionType.Script:
39638
39985
  return "Script" /* Script */;
39986
+ case TransactionType.Blob:
39987
+ return "Blob" /* Blob */;
39639
39988
  default:
39640
39989
  throw new FuelError(
39641
- ErrorCode.INVALID_TRANSACTION_TYPE,
39642
- `Invalid transaction type: ${transactionType}.`
39990
+ ErrorCode.UNSUPPORTED_TRANSACTION_TYPE,
39991
+ `Unsupported transaction type: ${transactionType}.`
39643
39992
  );
39644
39993
  }
39645
39994
  }
@@ -39662,6 +40011,9 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
39662
40011
  function isTypeUpload(transactionType) {
39663
40012
  return isType(transactionType, "Upload" /* Upload */);
39664
40013
  }
40014
+ function isTypeBlob(transactionType) {
40015
+ return isType(transactionType, "Blob" /* Blob */);
40016
+ }
39665
40017
  function hasSameAssetId(a) {
39666
40018
  return (b) => a.assetId === b.assetId;
39667
40019
  }
@@ -39671,41 +40023,51 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
39671
40023
  function getReceiptsMessageOut(receipts) {
39672
40024
  return getReceiptsByType(receipts, ReceiptType.MessageOut);
39673
40025
  }
39674
- var mergeAssets = (op1, op2) => {
40026
+ function mergeAssets(op1, op2) {
39675
40027
  const assets1 = op1.assetsSent || [];
39676
40028
  const assets2 = op2.assetsSent || [];
39677
- const filteredAssets = assets2.filter(
39678
- (asset2) => !assets1.some((asset1) => asset1.assetId === asset2.assetId)
39679
- );
39680
- const mergedAssets = assets1.map((asset1) => {
39681
- const matchingAsset = assets2.find((asset2) => asset2.assetId === asset1.assetId);
39682
- if (!matchingAsset) {
39683
- return asset1;
40029
+ const assetMap = /* @__PURE__ */ new Map();
40030
+ assets1.forEach((asset) => {
40031
+ assetMap.set(asset.assetId, { ...asset });
40032
+ });
40033
+ assets2.forEach((asset) => {
40034
+ const existingAsset = assetMap.get(asset.assetId);
40035
+ if (existingAsset) {
40036
+ existingAsset.amount = bn(existingAsset.amount).add(asset.amount);
40037
+ } else {
40038
+ assetMap.set(asset.assetId, { ...asset });
39684
40039
  }
39685
- const mergedAmount = bn(asset1.amount).add(matchingAsset.amount);
39686
- return { ...asset1, amount: mergedAmount };
39687
40040
  });
39688
- return mergedAssets.concat(filteredAssets);
39689
- };
40041
+ return Array.from(assetMap.values());
40042
+ }
39690
40043
  function isSameOperation(a, b) {
39691
40044
  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
40045
  }
40046
+ function mergeAssetsSent(existing, toAdd) {
40047
+ if (!toAdd.assetsSent?.length) {
40048
+ return existing.assetsSent;
40049
+ }
40050
+ return existing.assetsSent?.length ? mergeAssets(existing, toAdd) : toAdd.assetsSent;
40051
+ }
40052
+ function mergeCalls(existing, toAdd) {
40053
+ if (!toAdd.calls?.length) {
40054
+ return existing.calls;
40055
+ }
40056
+ return [...existing.calls || [], ...toAdd.calls];
40057
+ }
40058
+ function mergeOperations(existing, toAdd) {
40059
+ return {
40060
+ ...existing,
40061
+ assetsSent: mergeAssetsSent(existing, toAdd),
40062
+ calls: mergeCalls(existing, toAdd)
40063
+ };
40064
+ }
39693
40065
  function addOperation(operations, toAdd) {
39694
- const allOperations = [...operations];
39695
- const index = allOperations.findIndex((op) => isSameOperation(op, toAdd));
39696
- if (allOperations[index]) {
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);
40066
+ const existingIndex = operations.findIndex((op) => isSameOperation(op, toAdd));
40067
+ if (existingIndex === -1) {
40068
+ return [...operations, toAdd];
39707
40069
  }
39708
- return allOperations;
40070
+ return operations.map((op, index) => index === existingIndex ? mergeOperations(op, toAdd) : op);
39709
40071
  }
39710
40072
  function getReceiptsTransferOut(receipts) {
39711
40073
  return getReceiptsByType(receipts, ReceiptType.TransferOut);
@@ -39718,7 +40080,7 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
39718
40080
  const messageOutReceipts = getReceiptsMessageOut(receipts);
39719
40081
  const withdrawFromFuelOperations = messageOutReceipts.reduce(
39720
40082
  (prevWithdrawFromFuelOps, receipt) => {
39721
- const input = getInputFromAssetId(inputs, baseAssetId);
40083
+ const input = getInputFromAssetId(inputs, baseAssetId, true);
39722
40084
  if (input) {
39723
40085
  const inputAddress = getInputAccountAddress(input);
39724
40086
  const newWithdrawFromFuelOps = addOperation(prevWithdrawFromFuelOps, {
@@ -39747,65 +40109,80 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
39747
40109
  );
39748
40110
  return withdrawFromFuelOperations;
39749
40111
  }
40112
+ function getContractCalls(contractInput, abiMap, receipt, rawPayload, maxInputs) {
40113
+ const abi = abiMap?.[contractInput.contractID];
40114
+ if (!abi) {
40115
+ return [];
40116
+ }
40117
+ return [
40118
+ getFunctionCall({
40119
+ abi,
40120
+ receipt,
40121
+ rawPayload,
40122
+ maxInputs
40123
+ })
40124
+ ];
40125
+ }
40126
+ function getAssetsSent(receipt) {
40127
+ return receipt.amount?.isZero() ? void 0 : [
40128
+ {
40129
+ amount: receipt.amount,
40130
+ assetId: receipt.assetId
40131
+ }
40132
+ ];
40133
+ }
40134
+ function processCallReceipt(receipt, contractInput, inputs, abiMap, rawPayload, maxInputs, baseAssetId) {
40135
+ const assetId = receipt.assetId === ZeroBytes32 ? baseAssetId : receipt.assetId;
40136
+ const input = getInputFromAssetId(inputs, assetId, assetId === baseAssetId);
40137
+ if (!input) {
40138
+ return [];
40139
+ }
40140
+ const inputAddress = getInputAccountAddress(input);
40141
+ const calls = getContractCalls(contractInput, abiMap, receipt, rawPayload, maxInputs);
40142
+ return [
40143
+ {
40144
+ name: "Contract call" /* contractCall */,
40145
+ from: {
40146
+ type: 1 /* account */,
40147
+ address: inputAddress
40148
+ },
40149
+ to: {
40150
+ type: 0 /* contract */,
40151
+ address: receipt.to
40152
+ },
40153
+ assetsSent: getAssetsSent(receipt),
40154
+ calls
40155
+ }
40156
+ ];
40157
+ }
39750
40158
  function getContractCallOperations({
39751
40159
  inputs,
39752
40160
  outputs,
39753
40161
  receipts,
39754
40162
  abiMap,
39755
40163
  rawPayload,
39756
- maxInputs
40164
+ maxInputs,
40165
+ baseAssetId
39757
40166
  }) {
39758
40167
  const contractCallReceipts = getReceiptsCall(receipts);
39759
40168
  const contractOutputs = getOutputsContract(outputs);
39760
- const contractCallOperations = contractOutputs.reduce((prevOutputCallOps, output3) => {
40169
+ return contractOutputs.flatMap((output3) => {
39761
40170
  const contractInput = getInputContractFromIndex(inputs, output3.inputIndex);
39762
- if (contractInput) {
39763
- const newCallOps = contractCallReceipts.reduce((prevContractCallOps, receipt) => {
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;
40171
+ if (!contractInput) {
40172
+ return [];
39805
40173
  }
39806
- return prevOutputCallOps;
39807
- }, []);
39808
- return contractCallOperations;
40174
+ return contractCallReceipts.filter((receipt) => receipt.to === contractInput.contractID).flatMap(
40175
+ (receipt) => processCallReceipt(
40176
+ receipt,
40177
+ contractInput,
40178
+ inputs,
40179
+ abiMap,
40180
+ rawPayload,
40181
+ maxInputs,
40182
+ baseAssetId
40183
+ )
40184
+ );
40185
+ });
39809
40186
  }
39810
40187
  function extractTransferOperationFromReceipt(receipt, contractInputs, changeOutputs) {
39811
40188
  const { to: toAddress, assetId, amount } = receipt;
@@ -39949,7 +40326,8 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
39949
40326
  receipts,
39950
40327
  abiMap,
39951
40328
  rawPayload,
39952
- maxInputs
40329
+ maxInputs,
40330
+ baseAssetId
39953
40331
  }),
39954
40332
  ...getWithdrawFromFuelOperations({ inputs, receipts, baseAssetId })
39955
40333
  ];
@@ -40140,6 +40518,7 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
40140
40518
  isTypeScript: isTypeScript(transaction.type),
40141
40519
  isTypeUpgrade: isTypeUpgrade(transaction.type),
40142
40520
  isTypeUpload: isTypeUpload(transaction.type),
40521
+ isTypeBlob: isTypeBlob(transaction.type),
40143
40522
  isStatusFailure,
40144
40523
  isStatusSuccess,
40145
40524
  isStatusPending,
@@ -40173,6 +40552,8 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
40173
40552
  /** The graphql Transaction with receipts object. */
40174
40553
  gqlTransaction;
40175
40554
  abis;
40555
+ /** The expected status from the getTransactionWithReceipts response */
40556
+ expectedStatus;
40176
40557
  /**
40177
40558
  * Constructor for `TransactionResponse`.
40178
40559
  *
@@ -40212,11 +40593,16 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
40212
40593
  });
40213
40594
  for await (const { statusChange } of subscription) {
40214
40595
  if (statusChange) {
40596
+ this.expectedStatus = statusChange.type;
40215
40597
  break;
40216
40598
  }
40217
40599
  }
40218
40600
  return this.fetch();
40219
40601
  }
40602
+ if (this.expectedStatus && response.transaction.status?.type !== this.expectedStatus) {
40603
+ await sleep(100);
40604
+ return this.fetch();
40605
+ }
40220
40606
  this.gqlTransaction = response.transaction;
40221
40607
  return response.transaction;
40222
40608
  }
@@ -40283,12 +40669,14 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
40283
40669
  });
40284
40670
  for await (const { statusChange } of subscription) {
40285
40671
  if (statusChange.type === "SqueezedOutStatus") {
40672
+ this.unsetResourceCache();
40286
40673
  throw new FuelError(
40287
40674
  ErrorCode.TRANSACTION_SQUEEZED_OUT,
40288
40675
  `Transaction Squeezed Out with reason: ${statusChange.reason}`
40289
40676
  );
40290
40677
  }
40291
40678
  if (statusChange.type !== "SubmittedStatus") {
40679
+ this.expectedStatus = statusChange.type;
40292
40680
  break;
40293
40681
  }
40294
40682
  }
@@ -40323,6 +40711,7 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
40323
40711
  }
40324
40712
  const { gqlTransaction, receipts } = transactionResult;
40325
40713
  if (gqlTransaction.status?.type === "FailureStatus") {
40714
+ this.unsetResourceCache();
40326
40715
  const { reason } = gqlTransaction.status;
40327
40716
  throw extractTxError({
40328
40717
  receipts,
@@ -40349,6 +40738,9 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
40349
40738
  async wait(contractsAbiMap) {
40350
40739
  return this.waitForResult(contractsAbiMap);
40351
40740
  }
40741
+ unsetResourceCache() {
40742
+ this.provider.cache?.unset(this.id);
40743
+ }
40352
40744
  };
40353
40745
 
40354
40746
  // src/providers/utils/auto-retry-fetch.ts
@@ -40387,24 +40779,11 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
40387
40779
  };
40388
40780
  }
40389
40781
 
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
40782
  // src/providers/provider.ts
40405
40783
  var MAX_RETRIES = 10;
40406
40784
  var RESOURCES_PAGE_SIZE_LIMIT = 512;
40407
40785
  var BLOCKS_PAGE_SIZE_LIMIT = 5;
40786
+ var DEFAULT_RESOURCE_CACHE_TTL = 2e4;
40408
40787
  var processGqlChain = (chain) => {
40409
40788
  const { name, daHeight, consensusParameters, latestBlock } = chain;
40410
40789
  const {
@@ -40487,14 +40866,23 @@ ${PANIC_DOC_URL}#variant.${statusReason}`;
40487
40866
  __publicField(this, "cache");
40488
40867
  __publicField(this, "options", {
40489
40868
  timeout: void 0,
40490
- cacheUtxo: void 0,
40869
+ resourceCacheTTL: void 0,
40491
40870
  fetch: void 0,
40492
40871
  retryOptions: void 0
40493
40872
  });
40494
40873
  this.options = { ...this.options, ...options };
40495
40874
  this.url = url;
40496
40875
  this.operations = this.createOperations();
40497
- this.cache = options.cacheUtxo ? new MemoryCache(options.cacheUtxo) : void 0;
40876
+ const { resourceCacheTTL } = this.options;
40877
+ if (isDefined(resourceCacheTTL)) {
40878
+ if (resourceCacheTTL !== -1) {
40879
+ this.cache = new ResourceCache(resourceCacheTTL);
40880
+ } else {
40881
+ this.cache = void 0;
40882
+ }
40883
+ } else {
40884
+ this.cache = new ResourceCache(DEFAULT_RESOURCE_CACHE_TTL);
40885
+ }
40498
40886
  }
40499
40887
  /** @hidden */
40500
40888
  static clearChainAndNodeCaches() {
@@ -40725,6 +41113,21 @@ Supported fuel-core version: ${supportedVersion}.`
40725
41113
  } = this.getChain();
40726
41114
  return baseAssetId;
40727
41115
  }
41116
+ validateTransaction(tx, consensusParameters) {
41117
+ const { maxOutputs, maxInputs } = consensusParameters.txParameters;
41118
+ if (bn(tx.inputs.length).gt(maxInputs)) {
41119
+ throw new FuelError(
41120
+ ErrorCode.MAX_INPUTS_EXCEEDED,
41121
+ "The transaction exceeds the maximum allowed number of inputs."
41122
+ );
41123
+ }
41124
+ if (bn(tx.outputs.length).gt(maxOutputs)) {
41125
+ throw new FuelError(
41126
+ ErrorCode.MAX_OUTPUTS_EXCEEDED,
41127
+ "The transaction exceeds the maximum allowed number of outputs."
41128
+ );
41129
+ }
41130
+ }
40728
41131
  /**
40729
41132
  * Submits a transaction to the chain to be executed.
40730
41133
  *
@@ -40736,38 +41139,22 @@ Supported fuel-core version: ${supportedVersion}.`
40736
41139
  * @returns A promise that resolves to the transaction response object.
40737
41140
  */
40738
41141
  // #region Provider-sendTransaction
40739
- async sendTransaction(transactionRequestLike, { estimateTxDependencies = true, awaitExecution = false } = {}) {
41142
+ async sendTransaction(transactionRequestLike, { estimateTxDependencies = true } = {}) {
40740
41143
  const transactionRequest = transactionRequestify(transactionRequestLike);
40741
- __privateMethod(this, _cacheInputs, cacheInputs_fn).call(this, transactionRequest.inputs);
40742
41144
  if (estimateTxDependencies) {
40743
41145
  await this.estimateTxDependencies(transactionRequest);
40744
41146
  }
41147
+ const { consensusParameters } = this.getChain();
41148
+ this.validateTransaction(transactionRequest, consensusParameters);
40745
41149
  const encodedTransaction = hexlify(transactionRequest.toTransactionBytes());
40746
41150
  let abis;
40747
- if (transactionRequest.type === TransactionType.Script) {
41151
+ if (isTransactionTypeScript(transactionRequest)) {
40748
41152
  abis = transactionRequest.abis;
40749
41153
  }
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
41154
  const {
40769
41155
  submit: { id: transactionId }
40770
41156
  } = await this.operations.submit({ encodedTransaction });
41157
+ __privateMethod(this, _cacheInputs, cacheInputs_fn).call(this, transactionRequest.inputs, transactionId);
40771
41158
  return new TransactionResponse(transactionId, this, abis);
40772
41159
  }
40773
41160
  /**
@@ -40837,7 +41224,7 @@ Supported fuel-core version: ${supportedVersion}.`
40837
41224
  * @returns A promise that resolves to the estimate transaction dependencies.
40838
41225
  */
40839
41226
  async estimateTxDependencies(transactionRequest) {
40840
- if (transactionRequest.type === TransactionType.Create) {
41227
+ if (isTransactionTypeCreate(transactionRequest)) {
40841
41228
  return {
40842
41229
  receipts: [],
40843
41230
  outputVariables: 0,
@@ -40859,7 +41246,7 @@ Supported fuel-core version: ${supportedVersion}.`
40859
41246
  dryRunStatus = status;
40860
41247
  const { missingOutputVariables, missingOutputContractIds } = getReceiptsWithMissingData(receipts);
40861
41248
  const hasMissingOutputs = missingOutputVariables.length !== 0 || missingOutputContractIds.length !== 0;
40862
- if (hasMissingOutputs) {
41249
+ if (hasMissingOutputs && isTransactionTypeScript(transactionRequest)) {
40863
41250
  outputVariables += missingOutputVariables.length;
40864
41251
  transactionRequest.addVariableOutputs(missingOutputVariables.length);
40865
41252
  missingOutputContractIds.forEach(({ contractId }) => {
@@ -40901,7 +41288,7 @@ Supported fuel-core version: ${supportedVersion}.`
40901
41288
  const allRequests = clone_default(transactionRequests);
40902
41289
  const serializedTransactionsMap = /* @__PURE__ */ new Map();
40903
41290
  allRequests.forEach((req, index) => {
40904
- if (req.type === TransactionType.Script) {
41291
+ if (isTransactionTypeScript(req)) {
40905
41292
  serializedTransactionsMap.set(index, hexlify(req.toTransactionBytes()));
40906
41293
  }
40907
41294
  });
@@ -40927,7 +41314,7 @@ Supported fuel-core version: ${supportedVersion}.`
40927
41314
  );
40928
41315
  const hasMissingOutputs = missingOutputVariables.length > 0 || missingOutputContractIds.length > 0;
40929
41316
  const request = allRequests[requestIdx];
40930
- if (hasMissingOutputs && request?.type === TransactionType.Script) {
41317
+ if (hasMissingOutputs && isTransactionTypeScript(request)) {
40931
41318
  result.outputVariables += missingOutputVariables.length;
40932
41319
  request.addVariableOutputs(missingOutputVariables.length);
40933
41320
  missingOutputContractIds.forEach(({ contractId }) => {
@@ -40991,7 +41378,7 @@ Supported fuel-core version: ${supportedVersion}.`
40991
41378
  tip: transactionRequest.tip
40992
41379
  }).add(1);
40993
41380
  let gasLimit = bn(0);
40994
- if (transactionRequest.type === TransactionType.Script) {
41381
+ if (isTransactionTypeScript(transactionRequest)) {
40995
41382
  gasLimit = transactionRequest.gasLimit;
40996
41383
  if (transactionRequest.gasLimit.eq(0)) {
40997
41384
  transactionRequest.gasLimit = minGas;
@@ -41046,6 +41433,8 @@ Supported fuel-core version: ${supportedVersion}.`
41046
41433
  return { receipts: callResult[0].receipts };
41047
41434
  }
41048
41435
  /**
41436
+ * @hidden
41437
+ *
41049
41438
  * Returns a transaction cost to enable user
41050
41439
  * to set gasLimit and also reserve balance amounts
41051
41440
  * on the transaction.
@@ -41055,23 +41444,16 @@ Supported fuel-core version: ${supportedVersion}.`
41055
41444
  *
41056
41445
  * @returns A promise that resolves to the transaction cost object.
41057
41446
  */
41058
- async getTransactionCost(transactionRequestLike, { resourcesOwner, signatureCallback, quantitiesToContract = [] } = {}) {
41447
+ async getTransactionCost(transactionRequestLike, { signatureCallback } = {}) {
41059
41448
  const txRequestClone = clone_default(transactionRequestify(transactionRequestLike));
41060
- const isScriptTransaction = txRequestClone.type === TransactionType.Script;
41061
- const baseAssetId = this.getBaseAssetId();
41062
41449
  const updateMaxFee = txRequestClone.maxFee.eq(0);
41063
- const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
41064
- const allQuantities = mergeQuantities(coinOutputsQuantities, quantitiesToContract);
41065
- txRequestClone.fundWithFakeUtxos(allQuantities, baseAssetId, resourcesOwner?.address);
41450
+ const isScriptTransaction = isTransactionTypeScript(txRequestClone);
41066
41451
  if (isScriptTransaction) {
41067
41452
  txRequestClone.gasLimit = bn(0);
41068
41453
  }
41069
- if (resourcesOwner && "populateTransactionPredicateData" in resourcesOwner) {
41070
- resourcesOwner.populateTransactionPredicateData(txRequestClone);
41071
- }
41072
41454
  const signedRequest = clone_default(txRequestClone);
41073
41455
  let addedSignatures = 0;
41074
- if (signatureCallback && isScriptTransaction) {
41456
+ if (signatureCallback && isTransactionTypeScript(signedRequest)) {
41075
41457
  const lengthBefore = signedRequest.witnesses.length;
41076
41458
  await signatureCallback(signedRequest);
41077
41459
  addedSignatures = signedRequest.witnesses.length - lengthBefore;
@@ -41104,7 +41486,6 @@ Supported fuel-core version: ${supportedVersion}.`
41104
41486
  }));
41105
41487
  }
41106
41488
  return {
41107
- requiredQuantities: allQuantities,
41108
41489
  receipts,
41109
41490
  gasUsed,
41110
41491
  gasPrice,
@@ -41120,34 +41501,6 @@ Supported fuel-core version: ${supportedVersion}.`
41120
41501
  updateMaxFee
41121
41502
  };
41122
41503
  }
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
41504
  /**
41152
41505
  * Returns coins for the given owner.
41153
41506
  *
@@ -41196,10 +41549,9 @@ Supported fuel-core version: ${supportedVersion}.`
41196
41549
  utxos: excludedIds?.utxos?.map((id) => hexlify(id)) || []
41197
41550
  };
41198
41551
  if (this.cache) {
41199
- const uniqueUtxos = new Set(
41200
- excludeInput.utxos.concat(this.cache?.getActiveData().map((id) => hexlify(id)))
41201
- );
41202
- excludeInput.utxos = Array.from(uniqueUtxos);
41552
+ const cached = this.cache.getActiveData();
41553
+ excludeInput.messages.push(...cached.messages);
41554
+ excludeInput.utxos.push(...cached.utxos);
41203
41555
  }
41204
41556
  const coinsQuery = {
41205
41557
  owner: ownerAddress.toB256(),
@@ -41684,15 +42036,22 @@ Supported fuel-core version: ${supportedVersion}.`
41684
42036
  };
41685
42037
  var Provider = _Provider;
41686
42038
  _cacheInputs = new WeakSet();
41687
- cacheInputs_fn = function(inputs) {
42039
+ cacheInputs_fn = function(inputs, transactionId) {
41688
42040
  if (!this.cache) {
41689
42041
  return;
41690
42042
  }
41691
- inputs.forEach((input) => {
41692
- if (input.type === InputType.Coin) {
41693
- this.cache?.set(input.id);
41694
- }
41695
- });
42043
+ const inputsToCache = inputs.reduce(
42044
+ (acc, input) => {
42045
+ if (input.type === InputType.Coin) {
42046
+ acc.utxos.push(input.id);
42047
+ } else if (input.type === InputType.Message) {
42048
+ acc.messages.push(input.nonce);
42049
+ }
42050
+ return acc;
42051
+ },
42052
+ { utxos: [], messages: [] }
42053
+ );
42054
+ this.cache.set(transactionId, inputsToCache);
41696
42055
  };
41697
42056
  /** @hidden */
41698
42057
  __publicField(Provider, "chainInfoCache", {});
@@ -41947,6 +42306,20 @@ Supported fuel-core version: ${supportedVersion}.`
41947
42306
  ];
41948
42307
  var assets = resolveIconPaths(rawAssets, fuelAssetsBaseUrl);
41949
42308
 
42309
+ // src/providers/utils/merge-quantities.ts
42310
+ var mergeQuantities = (...coinQuantities) => {
42311
+ const resultMap = {};
42312
+ function addToMap({ amount, assetId }) {
42313
+ if (resultMap[assetId]) {
42314
+ resultMap[assetId] = resultMap[assetId].add(amount);
42315
+ } else {
42316
+ resultMap[assetId] = amount;
42317
+ }
42318
+ }
42319
+ coinQuantities.forEach((arr) => arr.forEach(addToMap));
42320
+ return Object.entries(resultMap).map(([assetId, amount]) => ({ assetId, amount }));
42321
+ };
42322
+
41950
42323
  // src/utils/formatTransferToContractScriptData.ts
41951
42324
  var asm = __toESM(require_node());
41952
42325
  var formatTransferToContractScriptData = (params) => {
@@ -41981,7 +42354,7 @@ Supported fuel-core version: ${supportedVersion}.`
41981
42354
  };
41982
42355
 
41983
42356
  // src/account.ts
41984
- var MAX_FUNDING_ATTEMPTS = 2;
42357
+ var MAX_FUNDING_ATTEMPTS = 5;
41985
42358
  var Account = class extends AbstractAccount {
41986
42359
  /**
41987
42360
  * The address associated with the account.
@@ -42094,7 +42467,7 @@ Supported fuel-core version: ${supportedVersion}.`
42094
42467
  * @returns A promise that resolves to the funded transaction request.
42095
42468
  */
42096
42469
  async fund(request, params) {
42097
- const { addedSignatures, estimatedPredicates, requiredQuantities, updateMaxFee } = params;
42470
+ const { addedSignatures, estimatedPredicates, requiredQuantities, updateMaxFee, gasPrice } = params;
42098
42471
  const fee = request.maxFee;
42099
42472
  const baseAssetId = this.provider.getBaseAssetId();
42100
42473
  const requiredInBaseAsset = requiredQuantities.find((quantity) => quantity.assetId === baseAssetId)?.amount || bn(0);
@@ -42142,10 +42515,12 @@ Supported fuel-core version: ${supportedVersion}.`
42142
42515
  );
42143
42516
  }
42144
42517
  if (!updateMaxFee) {
42518
+ needsToBeFunded = false;
42145
42519
  break;
42146
42520
  }
42147
42521
  const { maxFee: newFee } = await this.provider.estimateTxGasAndFee({
42148
- transactionRequest: requestToReestimate2
42522
+ transactionRequest: requestToReestimate2,
42523
+ gasPrice
42149
42524
  });
42150
42525
  const totalBaseAssetOnInputs = getAssetAmountInRequestInputs(
42151
42526
  request.inputs,
@@ -42165,6 +42540,12 @@ Supported fuel-core version: ${supportedVersion}.`
42165
42540
  }
42166
42541
  fundingAttempts += 1;
42167
42542
  }
42543
+ if (needsToBeFunded) {
42544
+ throw new FuelError(
42545
+ ErrorCode.NOT_ENOUGH_FUNDS,
42546
+ `The account ${this.address} does not have enough base asset funds to cover the transaction execution.`
42547
+ );
42548
+ }
42168
42549
  request.updatePredicateGasUsed(estimatedPredicates);
42169
42550
  const requestToReestimate = clone_default(request);
42170
42551
  if (addedSignatures) {
@@ -42284,9 +42665,8 @@ Supported fuel-core version: ${supportedVersion}.`
42284
42665
  scriptData
42285
42666
  });
42286
42667
  request.addContractInputAndOutput(contractAddress);
42287
- const txCost = await this.provider.getTransactionCost(request, {
42288
- resourcesOwner: this,
42289
- quantitiesToContract: [{ amount: bn(amount), assetId: String(assetIdToTransfer) }]
42668
+ const txCost = await this.getTransactionCost(request, {
42669
+ quantities: [{ amount: bn(amount), assetId: String(assetIdToTransfer) }]
42290
42670
  });
42291
42671
  request = this.validateGasLimitAndMaxFee({
42292
42672
  transactionRequest: request,
@@ -42321,8 +42701,8 @@ Supported fuel-core version: ${supportedVersion}.`
42321
42701
  const params = { script, ...txParams };
42322
42702
  const baseAssetId = this.provider.getBaseAssetId();
42323
42703
  let request = new ScriptTransactionRequest(params);
42324
- const quantitiesToContract = [{ amount: bn(amount), assetId: baseAssetId }];
42325
- const txCost = await this.provider.getTransactionCost(request, { quantitiesToContract });
42704
+ const quantities = [{ amount: bn(amount), assetId: baseAssetId }];
42705
+ const txCost = await this.getTransactionCost(request, { quantities });
42326
42706
  request = this.validateGasLimitAndMaxFee({
42327
42707
  transactionRequest: request,
42328
42708
  gasUsed: txCost.gasUsed,
@@ -42332,6 +42712,34 @@ Supported fuel-core version: ${supportedVersion}.`
42332
42712
  await this.fund(request, txCost);
42333
42713
  return this.sendTransaction(request);
42334
42714
  }
42715
+ /**
42716
+ * Returns a transaction cost to enable user
42717
+ * to set gasLimit and also reserve balance amounts
42718
+ * on the transaction.
42719
+ *
42720
+ * @param transactionRequestLike - The transaction request object.
42721
+ * @param transactionCostParams - The transaction cost parameters (optional).
42722
+ *
42723
+ * @returns A promise that resolves to the transaction cost object.
42724
+ */
42725
+ async getTransactionCost(transactionRequestLike, { signatureCallback, quantities = [] } = {}) {
42726
+ const txRequestClone = clone_default(transactionRequestify(transactionRequestLike));
42727
+ const baseAssetId = this.provider.getBaseAssetId();
42728
+ const coinOutputsQuantities = txRequestClone.getCoinOutputsQuantities();
42729
+ const requiredQuantities = mergeQuantities(coinOutputsQuantities, quantities);
42730
+ const transactionFeeForDryRun = [{ assetId: baseAssetId, amount: bn("100000000000000000") }];
42731
+ const resources = this.generateFakeResources(
42732
+ mergeQuantities(requiredQuantities, transactionFeeForDryRun)
42733
+ );
42734
+ txRequestClone.addResources(resources);
42735
+ const txCost = await this.provider.getTransactionCost(txRequestClone, {
42736
+ signatureCallback
42737
+ });
42738
+ return {
42739
+ ...txCost,
42740
+ requiredQuantities
42741
+ };
42742
+ }
42335
42743
  /**
42336
42744
  * Sign a message from the account via the connector.
42337
42745
  *
@@ -42368,7 +42776,7 @@ Supported fuel-core version: ${supportedVersion}.`
42368
42776
  * @param sendTransactionParams - The provider send transaction parameters (optional).
42369
42777
  * @returns A promise that resolves to the transaction response.
42370
42778
  */
42371
- async sendTransaction(transactionRequestLike, { estimateTxDependencies = true, awaitExecution } = {}) {
42779
+ async sendTransaction(transactionRequestLike, { estimateTxDependencies = true } = {}) {
42372
42780
  if (this._connector) {
42373
42781
  return this.provider.getTransactionResponse(
42374
42782
  await this._connector.sendTransaction(this.address.toString(), transactionRequestLike)
@@ -42379,7 +42787,6 @@ Supported fuel-core version: ${supportedVersion}.`
42379
42787
  await this.provider.estimateTxDependencies(transactionRequest);
42380
42788
  }
42381
42789
  return this.provider.sendTransaction(transactionRequest, {
42382
- awaitExecution,
42383
42790
  estimateTxDependencies: false
42384
42791
  });
42385
42792
  }
@@ -42424,9 +42831,7 @@ Supported fuel-core version: ${supportedVersion}.`
42424
42831
  /** @hidden * */
42425
42832
  async estimateAndFundTransaction(transactionRequest, txParams) {
42426
42833
  let request = transactionRequest;
42427
- const txCost = await this.provider.getTransactionCost(request, {
42428
- resourcesOwner: this
42429
- });
42834
+ const txCost = await this.getTransactionCost(request);
42430
42835
  request = this.validateGasLimitAndMaxFee({
42431
42836
  transactionRequest: request,
42432
42837
  gasUsed: txCost.gasUsed,
@@ -42525,10 +42930,10 @@ Supported fuel-core version: ${supportedVersion}.`
42525
42930
  sum += a.length;
42526
42931
  }
42527
42932
  const res = new Uint8Array(sum);
42528
- for (let i = 0, pad3 = 0; i < arrays.length; i++) {
42933
+ for (let i = 0, pad = 0; i < arrays.length; i++) {
42529
42934
  const a = arrays[i];
42530
- res.set(a, pad3);
42531
- pad3 += a.length;
42935
+ res.set(a, pad);
42936
+ pad += a.length;
42532
42937
  }
42533
42938
  return res;
42534
42939
  }
@@ -42820,16 +43225,16 @@ Supported fuel-core version: ${supportedVersion}.`
42820
43225
  this.blockLen = this.iHash.blockLen;
42821
43226
  this.outputLen = this.iHash.outputLen;
42822
43227
  const blockLen = this.blockLen;
42823
- const pad3 = new Uint8Array(blockLen);
42824
- pad3.set(key.length > blockLen ? hash4.create().update(key).digest() : key);
42825
- for (let i = 0; i < pad3.length; i++)
42826
- pad3[i] ^= 54;
42827
- this.iHash.update(pad3);
43228
+ const pad = new Uint8Array(blockLen);
43229
+ pad.set(key.length > blockLen ? hash4.create().update(key).digest() : key);
43230
+ for (let i = 0; i < pad.length; i++)
43231
+ pad[i] ^= 54;
43232
+ this.iHash.update(pad);
42828
43233
  this.oHash = hash4.create();
42829
- for (let i = 0; i < pad3.length; i++)
42830
- pad3[i] ^= 54 ^ 92;
42831
- this.oHash.update(pad3);
42832
- pad3.fill(0);
43234
+ for (let i = 0; i < pad.length; i++)
43235
+ pad[i] ^= 54 ^ 92;
43236
+ this.oHash.update(pad);
43237
+ pad.fill(0);
42833
43238
  }
42834
43239
  update(buf) {
42835
43240
  exists2(this);
@@ -44248,53 +44653,6 @@ Supported fuel-core version: ${supportedVersion}.`
44248
44653
  }
44249
44654
  };
44250
44655
 
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
44656
  // src/wallet/keystore-wallet.ts
44299
44657
  var DEFAULT_KDF_PARAMS_LOG_N = 13;
44300
44658
  var DEFAULT_KDF_PARAMS_R = 8;
@@ -44325,7 +44683,7 @@ Supported fuel-core version: ${supportedVersion}.`
44325
44683
  const macHashUint8Array = keccak2562(data);
44326
44684
  const mac = stringFromBuffer2(macHashUint8Array, "hex");
44327
44685
  const keystore = {
44328
- id: v4_default(),
44686
+ id: randomUUID2(),
44329
44687
  version: 3,
44330
44688
  address: removeHexPrefix(ownerAddress.toHexString()),
44331
44689
  crypto: {
@@ -44454,17 +44812,16 @@ Supported fuel-core version: ${supportedVersion}.`
44454
44812
  *
44455
44813
  * @param transactionRequestLike - The transaction request to send.
44456
44814
  * @param estimateTxDependencies - Whether to estimate the transaction dependencies.
44457
- * @param awaitExecution - Whether to wait for the transaction to be executed.
44458
44815
  * @returns A promise that resolves to the TransactionResponse object.
44459
44816
  */
44460
- async sendTransaction(transactionRequestLike, { estimateTxDependencies = false, awaitExecution } = {}) {
44817
+ async sendTransaction(transactionRequestLike, { estimateTxDependencies = false } = {}) {
44461
44818
  const transactionRequest = transactionRequestify(transactionRequestLike);
44462
44819
  if (estimateTxDependencies) {
44463
44820
  await this.provider.estimateTxDependencies(transactionRequest);
44464
44821
  }
44465
44822
  return this.provider.sendTransaction(
44466
44823
  await this.populateTransactionWitnessesSignature(transactionRequest),
44467
- { awaitExecution, estimateTxDependencies: false }
44824
+ { estimateTxDependencies: false }
44468
44825
  );
44469
44826
  }
44470
44827
  /**
@@ -47675,14 +48032,14 @@ Supported fuel-core version: ${supportedVersion}.`
47675
48032
  * @param bytecode - The bytecode of the predicate.
47676
48033
  * @param abi - The JSON ABI of the predicate.
47677
48034
  * @param provider - The provider used to interact with the blockchain.
47678
- * @param inputData - The predicate input data (optional).
48035
+ * @param data - The predicate input data (optional).
47679
48036
  * @param configurableConstants - Optional configurable constants for the predicate.
47680
48037
  */
47681
48038
  constructor({
47682
48039
  bytecode,
47683
48040
  abi,
47684
48041
  provider,
47685
- inputData,
48042
+ data,
47686
48043
  configurableConstants
47687
48044
  }) {
47688
48045
  const { predicateBytes, predicateInterface } = Predicate.processPredicateData(
@@ -47694,8 +48051,8 @@ Supported fuel-core version: ${supportedVersion}.`
47694
48051
  super(address, provider);
47695
48052
  this.bytes = predicateBytes;
47696
48053
  this.interface = predicateInterface;
47697
- if (inputData !== void 0 && inputData.length > 0) {
47698
- this.predicateData = inputData;
48054
+ if (data !== void 0 && data.length > 0) {
48055
+ this.predicateData = data;
47699
48056
  }
47700
48057
  }
47701
48058
  /**
@@ -47822,16 +48179,23 @@ Supported fuel-core version: ${supportedVersion}.`
47822
48179
  const mutatedBytes = bytes3;
47823
48180
  try {
47824
48181
  if (!abiInterface) {
47825
- throw new Error(
48182
+ throw new FuelError(
48183
+ ErrorCode.INVALID_CONFIGURABLE_CONSTANTS,
47826
48184
  "Cannot validate configurable constants because the Predicate was instantiated without a JSON ABI"
47827
48185
  );
47828
48186
  }
47829
48187
  if (Object.keys(abiInterface.configurables).length === 0) {
47830
- throw new Error("Predicate has no configurable constants to be set");
48188
+ throw new FuelError(
48189
+ ErrorCode.INVALID_CONFIGURABLE_CONSTANTS,
48190
+ "Predicate has no configurable constants to be set"
48191
+ );
47831
48192
  }
47832
48193
  Object.entries(configurableConstants).forEach(([key, value]) => {
47833
48194
  if (!abiInterface?.configurables[key]) {
47834
- throw new Error(`No configurable constant named '${key}' found in the Predicate`);
48195
+ throw new FuelError(
48196
+ ErrorCode.CONFIGURABLE_NOT_FOUND,
48197
+ `No configurable constant named '${key}' found in the Predicate`
48198
+ );
47835
48199
  }
47836
48200
  const { offset } = abiInterface.configurables[key];
47837
48201
  const encoded = abiInterface.encodeConfigurable(key, value);
@@ -47943,7 +48307,7 @@ Supported fuel-core version: ${supportedVersion}.`
47943
48307
  * @returns Always true.
47944
48308
  */
47945
48309
  async ping() {
47946
- throw new Error("Method not implemented.");
48310
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
47947
48311
  }
47948
48312
  /**
47949
48313
  * Should return the current version of the connector
@@ -47952,7 +48316,7 @@ Supported fuel-core version: ${supportedVersion}.`
47952
48316
  * @returns boolean - connection status.
47953
48317
  */
47954
48318
  async version() {
47955
- throw new Error("Method not implemented.");
48319
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
47956
48320
  }
47957
48321
  /**
47958
48322
  * Should return true if the connector is connected
@@ -47961,7 +48325,7 @@ Supported fuel-core version: ${supportedVersion}.`
47961
48325
  * @returns The connection status.
47962
48326
  */
47963
48327
  async isConnected() {
47964
- throw new Error("Method not implemented.");
48328
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
47965
48329
  }
47966
48330
  /**
47967
48331
  * Should return all the accounts authorized for the
@@ -47970,7 +48334,7 @@ Supported fuel-core version: ${supportedVersion}.`
47970
48334
  * @returns The accounts addresses strings
47971
48335
  */
47972
48336
  async accounts() {
47973
- throw new Error("Method not implemented.");
48337
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
47974
48338
  }
47975
48339
  /**
47976
48340
  * Should start the connection process and return
@@ -47982,7 +48346,7 @@ Supported fuel-core version: ${supportedVersion}.`
47982
48346
  * @returns boolean - connection status.
47983
48347
  */
47984
48348
  async connect() {
47985
- throw new Error("Method not implemented.");
48349
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
47986
48350
  }
47987
48351
  /**
47988
48352
  * Should disconnect the current connection and
@@ -47992,7 +48356,7 @@ Supported fuel-core version: ${supportedVersion}.`
47992
48356
  * @returns The connection status.
47993
48357
  */
47994
48358
  async disconnect() {
47995
- throw new Error("Method not implemented.");
48359
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
47996
48360
  }
47997
48361
  /**
47998
48362
  * Should start the sign message process and return
@@ -48004,7 +48368,7 @@ Supported fuel-core version: ${supportedVersion}.`
48004
48368
  * @returns Message signature
48005
48369
  */
48006
48370
  async signMessage(_address, _message) {
48007
- throw new Error("Method not implemented.");
48371
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
48008
48372
  }
48009
48373
  /**
48010
48374
  * Should start the sign transaction process and return
@@ -48016,7 +48380,7 @@ Supported fuel-core version: ${supportedVersion}.`
48016
48380
  * @returns Transaction signature
48017
48381
  */
48018
48382
  async signTransaction(_address, _transaction) {
48019
- throw new Error("Method not implemented.");
48383
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
48020
48384
  }
48021
48385
  /**
48022
48386
  * Should start the send transaction process and return
@@ -48032,7 +48396,7 @@ Supported fuel-core version: ${supportedVersion}.`
48032
48396
  * @returns The transaction id
48033
48397
  */
48034
48398
  async sendTransaction(_address, _transaction) {
48035
- throw new Error("Method not implemented.");
48399
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
48036
48400
  }
48037
48401
  /**
48038
48402
  * Should return the current account selected inside the connector, if the account
@@ -48043,7 +48407,7 @@ Supported fuel-core version: ${supportedVersion}.`
48043
48407
  * @returns The current account selected otherwise null.
48044
48408
  */
48045
48409
  async currentAccount() {
48046
- throw new Error("Method not implemented.");
48410
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
48047
48411
  }
48048
48412
  /**
48049
48413
  * Should add the assets metadata to the connector and return true if the asset
@@ -48057,7 +48421,7 @@ Supported fuel-core version: ${supportedVersion}.`
48057
48421
  * @returns True if the asset was added successfully
48058
48422
  */
48059
48423
  async addAssets(_assets) {
48060
- throw new Error("Method not implemented.");
48424
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
48061
48425
  }
48062
48426
  /**
48063
48427
  * Should add the asset metadata to the connector and return true if the asset
@@ -48071,7 +48435,7 @@ Supported fuel-core version: ${supportedVersion}.`
48071
48435
  * @returns True if the asset was added successfully
48072
48436
  */
48073
48437
  async addAsset(_asset) {
48074
- throw new Error("Method not implemented.");
48438
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
48075
48439
  }
48076
48440
  /**
48077
48441
  * Should return all the assets added to the connector. If a connection is already established.
@@ -48079,7 +48443,7 @@ Supported fuel-core version: ${supportedVersion}.`
48079
48443
  * @returns Array of assets metadata from the connector vinculated to the all accounts from a specific Wallet.
48080
48444
  */
48081
48445
  async assets() {
48082
- throw new Error("Method not implemented.");
48446
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
48083
48447
  }
48084
48448
  /**
48085
48449
  * Should start the add network process and return true if the network was added successfully.
@@ -48090,7 +48454,7 @@ Supported fuel-core version: ${supportedVersion}.`
48090
48454
  * @returns Return true if the network was added successfully
48091
48455
  */
48092
48456
  async addNetwork(_networkUrl) {
48093
- throw new Error("Method not implemented.");
48457
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
48094
48458
  }
48095
48459
  /**
48096
48460
  * Should start the select network process and return true if the network has change successfully.
@@ -48101,7 +48465,7 @@ Supported fuel-core version: ${supportedVersion}.`
48101
48465
  * @returns Return true if the network was added successfully
48102
48466
  */
48103
48467
  async selectNetwork(_network) {
48104
- throw new Error("Method not implemented.");
48468
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
48105
48469
  }
48106
48470
  /**
48107
48471
  * Should return all the networks available from the connector. If the connection is already established.
@@ -48109,7 +48473,7 @@ Supported fuel-core version: ${supportedVersion}.`
48109
48473
  * @returns Return all the networks added to the connector.
48110
48474
  */
48111
48475
  async networks() {
48112
- throw new Error("Method not implemented.");
48476
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
48113
48477
  }
48114
48478
  /**
48115
48479
  * Should return the current network selected inside the connector. Even if the connection is not established.
@@ -48117,7 +48481,7 @@ Supported fuel-core version: ${supportedVersion}.`
48117
48481
  * @returns Return the current network selected inside the connector.
48118
48482
  */
48119
48483
  async currentNetwork() {
48120
- throw new Error("Method not implemented.");
48484
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
48121
48485
  }
48122
48486
  /**
48123
48487
  * Should add the ABI to the connector and return true if the ABI was added successfully.
@@ -48127,7 +48491,7 @@ Supported fuel-core version: ${supportedVersion}.`
48127
48491
  * @returns Return true if the ABI was added successfully.
48128
48492
  */
48129
48493
  async addABI(_contractId, _abi) {
48130
- throw new Error("Method not implemented.");
48494
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
48131
48495
  }
48132
48496
  /**
48133
48497
  * Should return the ABI from the connector vinculated to the all accounts from a specific Wallet.
@@ -48136,7 +48500,7 @@ Supported fuel-core version: ${supportedVersion}.`
48136
48500
  * @returns The ABI if it exists, otherwise return null.
48137
48501
  */
48138
48502
  async getABI(_id) {
48139
- throw new Error("Method not implemented.");
48503
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
48140
48504
  }
48141
48505
  /**
48142
48506
  * Should return true if the abi exists in the connector vinculated to the all accounts from a specific Wallet.
@@ -48145,7 +48509,7 @@ Supported fuel-core version: ${supportedVersion}.`
48145
48509
  * @returns Returns true if the abi exists or false if not.
48146
48510
  */
48147
48511
  async hasABI(_id) {
48148
- throw new Error("Method not implemented.");
48512
+ throw new FuelError(FuelError.CODES.NOT_IMPLEMENTED, "Method not implemented.");
48149
48513
  }
48150
48514
  /**
48151
48515
  * Event listener for the connector.
@@ -48200,7 +48564,7 @@ Supported fuel-core version: ${supportedVersion}.`
48200
48564
  async function withTimeout(promise, timeout = 1050) {
48201
48565
  const timeoutPromise = new Promise((resolve, reject) => {
48202
48566
  setTimeout(() => {
48203
- reject(new Error("Promise timed out"));
48567
+ reject(new FuelError(FuelError.CODES.TIMEOUT_EXCEEDED, "Promise timed out"));
48204
48568
  }, timeout);
48205
48569
  });
48206
48570
  return Promise.race([timeoutPromise, promise]);
@@ -48218,7 +48582,6 @@ Supported fuel-core version: ${supportedVersion}.`
48218
48582
  _targetUnsubscribe;
48219
48583
  _pingCache = {};
48220
48584
  _currentConnector;
48221
- _initializationPromise;
48222
48585
  constructor(config = _Fuel.defaultConfig) {
48223
48586
  super();
48224
48587
  this.setMaxListeners(1e3);
@@ -48226,15 +48589,9 @@ Supported fuel-core version: ${supportedVersion}.`
48226
48589
  this._targetObject = this.getTargetObject(config.targetObject);
48227
48590
  this._storage = config.storage === void 0 ? this.getStorage() : config.storage;
48228
48591
  this.setupMethods();
48229
- this._initializationPromise = this.initialize();
48592
+ this.setDefaultConnector();
48230
48593
  this._targetUnsubscribe = this.setupConnectorListener();
48231
48594
  }
48232
- async initialize() {
48233
- await this.setDefaultConnector();
48234
- }
48235
- async ensureInitialized() {
48236
- await this._initializationPromise;
48237
- }
48238
48595
  /**
48239
48596
  * Return the target object to listen for global events.
48240
48597
  */
@@ -48294,7 +48651,8 @@ Supported fuel-core version: ${supportedVersion}.`
48294
48651
  const hasConnector = await this.hasConnector();
48295
48652
  await this.pingConnector();
48296
48653
  if (!this._currentConnector || !hasConnector) {
48297
- throw new Error(
48654
+ throw new FuelError(
48655
+ ErrorCode.MISSING_CONNECTOR,
48298
48656
  `No connector selected for calling ${method}. Use hasConnector before executing other methods.`
48299
48657
  );
48300
48658
  }
@@ -48358,7 +48716,7 @@ Supported fuel-core version: ${supportedVersion}.`
48358
48716
  cacheTime: PING_CACHE_TIME
48359
48717
  })();
48360
48718
  } catch {
48361
- throw new Error("Current connector is not available.");
48719
+ throw new FuelError(ErrorCode.INVALID_PROVIDER, "Current connector is not available.");
48362
48720
  }
48363
48721
  }
48364
48722
  /**
@@ -48430,7 +48788,6 @@ Supported fuel-core version: ${supportedVersion}.`
48430
48788
  * Return the list of connectors with the status of installed and connected.
48431
48789
  */
48432
48790
  async connectors() {
48433
- await this.ensureInitialized();
48434
48791
  await this.fetchConnectorsStatus();
48435
48792
  return this._connectors;
48436
48793
  }
@@ -48440,7 +48797,6 @@ Supported fuel-core version: ${supportedVersion}.`
48440
48797
  async selectConnector(connectorName, options = {
48441
48798
  emitEvents: true
48442
48799
  }) {
48443
- await this.ensureInitialized();
48444
48800
  const connector = this.getConnector(connectorName);
48445
48801
  if (!connector) {
48446
48802
  return false;
@@ -48471,7 +48827,6 @@ Supported fuel-core version: ${supportedVersion}.`
48471
48827
  * Return true if any connector is available.
48472
48828
  */
48473
48829
  async hasConnector() {
48474
- await this.ensureInitialized();
48475
48830
  if (this._currentConnector) {
48476
48831
  return true;
48477
48832
  }
@@ -48482,7 +48837,6 @@ Supported fuel-core version: ${supportedVersion}.`
48482
48837
  return withTimeout(defer.promise, HAS_CONNECTOR_TIMEOUT).then(() => true).catch(() => false);
48483
48838
  }
48484
48839
  async hasWallet() {
48485
- await this.ensureInitialized();
48486
48840
  return this.hasConnector();
48487
48841
  }
48488
48842
  /**