starknet 6.2.1 → 6.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17807,6 +17807,7 @@ var starknet = (() => {
17807
17807
  formatSpaces: () => formatSpaces,
17808
17808
  getSelector: () => getSelector,
17809
17809
  getSelectorFromName: () => getSelectorFromName,
17810
+ hashByteCodeSegments: () => hashByteCodeSegments,
17810
17811
  keccakBn: () => keccakBn,
17811
17812
  poseidon: () => poseidon_exports,
17812
17813
  starknetKeccak: () => starknetKeccak
@@ -18728,13 +18729,23 @@ var starknet = (() => {
18728
18729
  });
18729
18730
  return poseidonHashMany(base2);
18730
18731
  }
18732
+ function hashByteCodeSegments(casm) {
18733
+ const byteCode = casm.bytecode.map((n) => BigInt(n));
18734
+ const bytecodeSegmentLengths = casm.bytecode_segment_lengths ?? [];
18735
+ let segmentStart = 0;
18736
+ const hashLeaves = bytecodeSegmentLengths.flatMap((len) => {
18737
+ const segment = byteCode.slice(segmentStart, segmentStart += len);
18738
+ return [BigInt(len), poseidonHashMany(segment)];
18739
+ });
18740
+ return 1n + poseidonHashMany(hashLeaves);
18741
+ }
18731
18742
  function computeCompiledClassHash(casm) {
18732
18743
  const COMPILED_CLASS_VERSION = "COMPILED_CLASS_V1";
18733
18744
  const compiledClassVersion = BigInt(encodeShortString(COMPILED_CLASS_VERSION));
18734
18745
  const externalEntryPointsHash = hashEntryPoint(casm.entry_points_by_type.EXTERNAL);
18735
18746
  const l1Handlers = hashEntryPoint(casm.entry_points_by_type.L1_HANDLER);
18736
18747
  const constructor = hashEntryPoint(casm.entry_points_by_type.CONSTRUCTOR);
18737
- const bytecode = poseidonHashMany(casm.bytecode.map((it) => BigInt(it)));
18748
+ const bytecode = casm.bytecode_segment_lengths ? hashByteCodeSegments(casm) : poseidonHashMany(casm.bytecode.map((it) => BigInt(it)));
18738
18749
  return toHex(
18739
18750
  poseidonHashMany([
18740
18751
  compiledClassVersion,
@@ -25034,7 +25045,20 @@ var starknet = (() => {
25034
25045
  var starknetId_exports = {};
25035
25046
  __export(starknetId_exports, {
25036
25047
  StarknetIdContract: () => StarknetIdContract,
25048
+ StarknetIdIdentityContract: () => StarknetIdIdentityContract,
25049
+ StarknetIdMulticallContract: () => StarknetIdMulticallContract,
25050
+ StarknetIdPfpContract: () => StarknetIdPfpContract,
25051
+ StarknetIdPopContract: () => StarknetIdPopContract,
25052
+ StarknetIdVerifierContract: () => StarknetIdVerifierContract,
25053
+ dynamicCallData: () => dynamicCallData,
25054
+ dynamicFelt: () => dynamicFelt,
25055
+ execution: () => execution,
25037
25056
  getStarknetIdContract: () => getStarknetIdContract,
25057
+ getStarknetIdIdentityContract: () => getStarknetIdIdentityContract,
25058
+ getStarknetIdMulticallContract: () => getStarknetIdMulticallContract,
25059
+ getStarknetIdPfpContract: () => getStarknetIdPfpContract,
25060
+ getStarknetIdPopContract: () => getStarknetIdPopContract,
25061
+ getStarknetIdVerifierContract: () => getStarknetIdVerifierContract,
25038
25062
  useDecoded: () => useDecoded,
25039
25063
  useEncoded: () => useEncoded
25040
25064
  });
@@ -25122,6 +25146,7 @@ var starknet = (() => {
25122
25146
  var StarknetIdContract = /* @__PURE__ */ ((StarknetIdContract2) => {
25123
25147
  StarknetIdContract2["MAINNET"] = "0x6ac597f8116f886fa1c97a23fa4e08299975ecaf6b598873ca6792b9bbfb678";
25124
25148
  StarknetIdContract2["TESTNET"] = "0x3bab268e932d2cecd1946f100ae67ce3dff9fd234119ea2f6da57d16d29fce";
25149
+ StarknetIdContract2["TESTNET_SEPOLIA"] = "0x5847d20f9757de24395a7b3b47303684003753858737bf288716855dfb0aaf2";
25125
25150
  return StarknetIdContract2;
25126
25151
  })(StarknetIdContract || {});
25127
25152
  function getStarknetIdContract(chainId) {
@@ -25130,10 +25155,121 @@ var starknet = (() => {
25130
25155
  return "0x6ac597f8116f886fa1c97a23fa4e08299975ecaf6b598873ca6792b9bbfb678" /* MAINNET */;
25131
25156
  case "0x534e5f474f45524c49" /* SN_GOERLI */:
25132
25157
  return "0x3bab268e932d2cecd1946f100ae67ce3dff9fd234119ea2f6da57d16d29fce" /* TESTNET */;
25158
+ case "0x534e5f5345504f4c4941" /* SN_SEPOLIA */:
25159
+ return "0x5847d20f9757de24395a7b3b47303684003753858737bf288716855dfb0aaf2" /* TESTNET_SEPOLIA */;
25133
25160
  default:
25134
25161
  throw new Error("Starknet.id is not yet deployed on this network");
25135
25162
  }
25136
25163
  }
25164
+ var StarknetIdIdentityContract = /* @__PURE__ */ ((StarknetIdIdentityContract2) => {
25165
+ StarknetIdIdentityContract2["MAINNET"] = "0x05dbdedc203e92749e2e746e2d40a768d966bd243df04a6b712e222bc040a9af";
25166
+ StarknetIdIdentityContract2["TESTNET"] = "0x783a9097b26eae0586373b2ce0ed3529ddc44069d1e0fbc4f66d42b69d6850d";
25167
+ StarknetIdIdentityContract2["TESTNET_SEPOLIA"] = "0x718d9172f6e36183abeeff1a0db76a1851cef4ed9b9c13896da79ef4bfcb4d0";
25168
+ return StarknetIdIdentityContract2;
25169
+ })(StarknetIdIdentityContract || {});
25170
+ function getStarknetIdIdentityContract(chainId) {
25171
+ switch (chainId) {
25172
+ case "0x534e5f4d41494e" /* SN_MAIN */:
25173
+ return "0x05dbdedc203e92749e2e746e2d40a768d966bd243df04a6b712e222bc040a9af" /* MAINNET */;
25174
+ case "0x534e5f474f45524c49" /* SN_GOERLI */:
25175
+ return "0x783a9097b26eae0586373b2ce0ed3529ddc44069d1e0fbc4f66d42b69d6850d" /* TESTNET */;
25176
+ case "0x534e5f5345504f4c4941" /* SN_SEPOLIA */:
25177
+ return "0x718d9172f6e36183abeeff1a0db76a1851cef4ed9b9c13896da79ef4bfcb4d0" /* TESTNET_SEPOLIA */;
25178
+ default:
25179
+ throw new Error("Starknet.id verifier contract is not yet deployed on this network");
25180
+ }
25181
+ }
25182
+ var StarknetIdMulticallContract = "0x034ffb8f4452df7a613a0210824d6414dbadcddce6c6e19bf4ddc9e22ce5f970";
25183
+ function getStarknetIdMulticallContract(chainId) {
25184
+ switch (chainId) {
25185
+ case "0x534e5f4d41494e" /* SN_MAIN */:
25186
+ return StarknetIdMulticallContract;
25187
+ case "0x534e5f474f45524c49" /* SN_GOERLI */:
25188
+ return StarknetIdMulticallContract;
25189
+ case "0x534e5f5345504f4c4941" /* SN_SEPOLIA */:
25190
+ return StarknetIdMulticallContract;
25191
+ default:
25192
+ throw new Error("Starknet.id multicall contract is not yet deployed on this network");
25193
+ }
25194
+ }
25195
+ var StarknetIdVerifierContract = /* @__PURE__ */ ((StarknetIdVerifierContract2) => {
25196
+ StarknetIdVerifierContract2["MAINNET"] = "0x07d14dfd8ee95b41fce179170d88ba1f0d5a512e13aeb232f19cfeec0a88f8bf";
25197
+ StarknetIdVerifierContract2["TESTNET"] = "0x057c942544063c3aea6ea6c37009cc9d1beacd750cb6801549a129c7265f0f11";
25198
+ StarknetIdVerifierContract2["TESTNET_SEPOLIA"] = "0x041a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf";
25199
+ return StarknetIdVerifierContract2;
25200
+ })(StarknetIdVerifierContract || {});
25201
+ function getStarknetIdVerifierContract(chainId) {
25202
+ switch (chainId) {
25203
+ case "0x534e5f4d41494e" /* SN_MAIN */:
25204
+ return "0x07d14dfd8ee95b41fce179170d88ba1f0d5a512e13aeb232f19cfeec0a88f8bf" /* MAINNET */;
25205
+ case "0x534e5f474f45524c49" /* SN_GOERLI */:
25206
+ return "0x057c942544063c3aea6ea6c37009cc9d1beacd750cb6801549a129c7265f0f11" /* TESTNET */;
25207
+ case "0x534e5f5345504f4c4941" /* SN_SEPOLIA */:
25208
+ return "0x041a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf" /* TESTNET_SEPOLIA */;
25209
+ default:
25210
+ throw new Error("Starknet.id verifier contract is not yet deployed on this network");
25211
+ }
25212
+ }
25213
+ var StarknetIdPfpContract = /* @__PURE__ */ ((StarknetIdPfpContract2) => {
25214
+ StarknetIdPfpContract2["MAINNET"] = "0x070aaa20ec4a46da57c932d9fd89ca5e6bb9ca3188d3df361a32306aff7d59c7";
25215
+ StarknetIdPfpContract2["TESTNET"] = "0x03cac3228b434259734ee0e4ff445f642206ea11adace7e4f45edd2596748698";
25216
+ StarknetIdPfpContract2["TESTNET_SEPOLIA"] = "0x070c035557d6fed57eed2ed7fa861616b487f8a95439347b805639ca076f29f0";
25217
+ return StarknetIdPfpContract2;
25218
+ })(StarknetIdPfpContract || {});
25219
+ function getStarknetIdPfpContract(chainId) {
25220
+ switch (chainId) {
25221
+ case "0x534e5f4d41494e" /* SN_MAIN */:
25222
+ return "0x070aaa20ec4a46da57c932d9fd89ca5e6bb9ca3188d3df361a32306aff7d59c7" /* MAINNET */;
25223
+ case "0x534e5f474f45524c49" /* SN_GOERLI */:
25224
+ return "0x03cac3228b434259734ee0e4ff445f642206ea11adace7e4f45edd2596748698" /* TESTNET */;
25225
+ case "0x534e5f5345504f4c4941" /* SN_SEPOLIA */:
25226
+ return "0x070c035557d6fed57eed2ed7fa861616b487f8a95439347b805639ca076f29f0" /* TESTNET_SEPOLIA */;
25227
+ default:
25228
+ throw new Error(
25229
+ "Starknet.id profile picture verifier contract is not yet deployed on this network"
25230
+ );
25231
+ }
25232
+ }
25233
+ var StarknetIdPopContract = /* @__PURE__ */ ((StarknetIdPopContract2) => {
25234
+ StarknetIdPopContract2["MAINNET"] = "0x0293eb2ba9862f762bd3036586d5755a782bd22e6f5028320f1d0405fd47bff4";
25235
+ StarknetIdPopContract2["TESTNET"] = "0x03528caf090179e337931ee669a5b0214041e1bae30d460ff07d2cea2c7a9106";
25236
+ StarknetIdPopContract2["TESTNET_SEPOLIA"] = "0x00f80f68443becd0e0a4a08ff5734e36dd8028507333e4a0ec034dcfdf1b793e";
25237
+ return StarknetIdPopContract2;
25238
+ })(StarknetIdPopContract || {});
25239
+ function getStarknetIdPopContract(chainId) {
25240
+ switch (chainId) {
25241
+ case "0x534e5f4d41494e" /* SN_MAIN */:
25242
+ return "0x0293eb2ba9862f762bd3036586d5755a782bd22e6f5028320f1d0405fd47bff4" /* MAINNET */;
25243
+ case "0x534e5f474f45524c49" /* SN_GOERLI */:
25244
+ return "0x03528caf090179e337931ee669a5b0214041e1bae30d460ff07d2cea2c7a9106" /* TESTNET */;
25245
+ case "0x534e5f5345504f4c4941" /* SN_SEPOLIA */:
25246
+ return "0x00f80f68443becd0e0a4a08ff5734e36dd8028507333e4a0ec034dcfdf1b793e" /* TESTNET_SEPOLIA */;
25247
+ default:
25248
+ throw new Error(
25249
+ "Starknet.id proof of personhood verifier contract is not yet deployed on this network"
25250
+ );
25251
+ }
25252
+ }
25253
+ function execution(staticEx, ifEqual = void 0, ifNotEqual = void 0) {
25254
+ return new CairoCustomEnum({
25255
+ Static: staticEx,
25256
+ IfEqual: ifEqual ? tuple(ifEqual[0], ifEqual[1], ifEqual[2]) : void 0,
25257
+ IfNotEqual: ifNotEqual ? tuple(ifNotEqual[0], ifNotEqual[1], ifNotEqual[2]) : void 0
25258
+ });
25259
+ }
25260
+ function dynamicFelt(hardcoded, reference = void 0) {
25261
+ return new CairoCustomEnum({
25262
+ Hardcoded: hardcoded,
25263
+ Reference: reference ? tuple(reference[0], reference[1]) : void 0
25264
+ });
25265
+ }
25266
+ function dynamicCallData(hardcoded, reference = void 0, arrayReference = void 0) {
25267
+ return new CairoCustomEnum({
25268
+ Hardcoded: hardcoded,
25269
+ Reference: reference ? tuple(reference[0], reference[1]) : void 0,
25270
+ ArrayReference: arrayReference ? tuple(arrayReference[0], arrayReference[1]) : void 0
25271
+ });
25272
+ }
25137
25273
 
25138
25274
  // src/provider/extensions/starknetId.ts
25139
25275
  var StarknetId = class _StarknetId {
@@ -25153,6 +25289,19 @@ var starknet = (() => {
25153
25289
  StarknetIdContract2
25154
25290
  );
25155
25291
  }
25292
+ async getStarkProfile(address, StarknetIdContract2, StarknetIdIdentityContract2, StarknetIdVerifierContract2, StarknetIdPfpContract2, StarknetIdPopContract2, StarknetIdMulticallContract2) {
25293
+ return _StarknetId.getStarkProfile(
25294
+ // After Mixin, this is ProviderInterface
25295
+ this,
25296
+ address,
25297
+ StarknetIdContract2,
25298
+ StarknetIdIdentityContract2,
25299
+ StarknetIdVerifierContract2,
25300
+ StarknetIdPfpContract2,
25301
+ StarknetIdPopContract2,
25302
+ StarknetIdMulticallContract2
25303
+ );
25304
+ }
25156
25305
  static async getStarkName(provider, address, StarknetIdContract2) {
25157
25306
  const chainId = await provider.getChainId();
25158
25307
  const contract = StarknetIdContract2 ?? getStarknetIdContract(chainId);
@@ -25181,18 +25330,159 @@ var starknet = (() => {
25181
25330
  const chainId = await provider.getChainId();
25182
25331
  const contract = StarknetIdContract2 ?? getStarknetIdContract(chainId);
25183
25332
  try {
25333
+ const encodedDomain = name.replace(".stark", "").split(".").map((part) => useEncoded(part).toString(10));
25184
25334
  const addressData = await provider.callContract({
25185
25335
  contractAddress: contract,
25186
25336
  entrypoint: "domain_to_address",
25187
- calldata: CallData.compile({
25188
- domain: [useEncoded(name.replace(".stark", "")).toString(10)]
25189
- })
25337
+ calldata: CallData.compile({ domain: encodedDomain, hint: [] })
25190
25338
  });
25191
25339
  return addressData[0];
25192
25340
  } catch {
25193
25341
  throw Error("Could not get address from stark name");
25194
25342
  }
25195
25343
  }
25344
+ static async getStarkProfile(provider, address, StarknetIdContract2, StarknetIdIdentityContract2, StarknetIdVerifierContract2, StarknetIdPfpContract2, StarknetIdPopContract2, StarknetIdMulticallContract2) {
25345
+ const chainId = await provider.getChainId();
25346
+ const contract = StarknetIdContract2 ?? getStarknetIdContract(chainId);
25347
+ const identityContract = StarknetIdIdentityContract2 ?? getStarknetIdIdentityContract(chainId);
25348
+ const verifierContract = StarknetIdVerifierContract2 ?? getStarknetIdVerifierContract(chainId);
25349
+ const pfpContract = StarknetIdPfpContract2 ?? getStarknetIdPfpContract(chainId);
25350
+ const popContract = StarknetIdPopContract2 ?? getStarknetIdPopContract(chainId);
25351
+ const multicallAddress = StarknetIdMulticallContract2 ?? getStarknetIdMulticallContract(chainId);
25352
+ try {
25353
+ const data = await provider.callContract({
25354
+ contractAddress: multicallAddress,
25355
+ entrypoint: "aggregate",
25356
+ calldata: CallData.compile({
25357
+ calls: [
25358
+ {
25359
+ execution: execution({}),
25360
+ to: dynamicFelt(contract),
25361
+ selector: dynamicFelt(getSelectorFromName("address_to_domain")),
25362
+ calldata: [dynamicCallData(address)]
25363
+ },
25364
+ {
25365
+ execution: execution({}),
25366
+ to: dynamicFelt(contract),
25367
+ selector: dynamicFelt(getSelectorFromName("domain_to_id")),
25368
+ calldata: [dynamicCallData(void 0, void 0, [0, 0])]
25369
+ },
25370
+ {
25371
+ execution: execution({}),
25372
+ to: dynamicFelt(identityContract),
25373
+ selector: dynamicFelt(getSelectorFromName("get_verifier_data")),
25374
+ calldata: [
25375
+ dynamicCallData(void 0, [1, 0]),
25376
+ dynamicCallData(encodeShortString("twitter")),
25377
+ dynamicCallData(verifierContract),
25378
+ dynamicCallData("0")
25379
+ ]
25380
+ },
25381
+ {
25382
+ execution: execution({}),
25383
+ to: dynamicFelt(identityContract),
25384
+ selector: dynamicFelt(getSelectorFromName("get_verifier_data")),
25385
+ calldata: [
25386
+ dynamicCallData(void 0, [1, 0]),
25387
+ dynamicCallData(encodeShortString("github")),
25388
+ dynamicCallData(verifierContract),
25389
+ dynamicCallData("0")
25390
+ ]
25391
+ },
25392
+ {
25393
+ execution: execution({}),
25394
+ to: dynamicFelt(identityContract),
25395
+ selector: dynamicFelt(getSelectorFromName("get_verifier_data")),
25396
+ calldata: [
25397
+ dynamicCallData(void 0, [1, 0]),
25398
+ dynamicCallData(encodeShortString("discord")),
25399
+ dynamicCallData(verifierContract),
25400
+ dynamicCallData("0")
25401
+ ]
25402
+ },
25403
+ {
25404
+ execution: execution({}),
25405
+ to: dynamicFelt(identityContract),
25406
+ selector: dynamicFelt(getSelectorFromName("get_verifier_data")),
25407
+ calldata: [
25408
+ dynamicCallData(void 0, [1, 0]),
25409
+ dynamicCallData(encodeShortString("proof_of_personhood")),
25410
+ dynamicCallData(popContract),
25411
+ dynamicCallData("0")
25412
+ ]
25413
+ },
25414
+ // PFP
25415
+ {
25416
+ execution: execution({}),
25417
+ to: dynamicFelt(identityContract),
25418
+ selector: dynamicFelt(getSelectorFromName("get_verifier_data")),
25419
+ calldata: [
25420
+ dynamicCallData(void 0, [1, 0]),
25421
+ dynamicCallData(encodeShortString("nft_pp_contract")),
25422
+ dynamicCallData(pfpContract),
25423
+ dynamicCallData("0")
25424
+ ]
25425
+ },
25426
+ {
25427
+ execution: execution({}),
25428
+ to: dynamicFelt(identityContract),
25429
+ selector: dynamicFelt(getSelectorFromName("get_extended_verifier_data")),
25430
+ calldata: [
25431
+ dynamicCallData(void 0, [1, 0]),
25432
+ dynamicCallData(encodeShortString("nft_pp_id")),
25433
+ dynamicCallData("2"),
25434
+ dynamicCallData(pfpContract),
25435
+ dynamicCallData("0")
25436
+ ]
25437
+ },
25438
+ {
25439
+ execution: execution(void 0, void 0, [6, 0, 0]),
25440
+ to: dynamicFelt(void 0, [6, 0]),
25441
+ selector: dynamicFelt(getSelectorFromName("tokenURI")),
25442
+ calldata: [dynamicCallData(void 0, [7, 1]), dynamicCallData(void 0, [7, 2])]
25443
+ }
25444
+ ]
25445
+ })
25446
+ });
25447
+ if (Array.isArray(data)) {
25448
+ const size = parseInt(data[0], 16);
25449
+ const finalArray = [];
25450
+ let index = 1;
25451
+ for (let i = 0; i < size; i += 1) {
25452
+ if (index < data.length) {
25453
+ const subArraySize = parseInt(data[index], 16);
25454
+ index += 1;
25455
+ const subArray = data.slice(index, index + subArraySize);
25456
+ finalArray.push(subArray);
25457
+ index += subArraySize;
25458
+ } else {
25459
+ break;
25460
+ }
25461
+ }
25462
+ const name = useDecoded(finalArray[0].slice(1).map((hexString) => BigInt(hexString)));
25463
+ const twitter = finalArray[2][0] !== "0x0" ? BigInt(finalArray[2][0]).toString() : void 0;
25464
+ const github = finalArray[3][0] !== "0x0" ? BigInt(finalArray[3][0]).toString() : void 0;
25465
+ const discord = finalArray[4][0] !== "0x0" ? BigInt(finalArray[4][0]).toString() : void 0;
25466
+ const proofOfPersonhood = finalArray[5][0] === "0x1";
25467
+ const profilePictureMetadata = data[0] === "0x9" ? finalArray[8].slice(1).map((val) => decodeShortString(val)).join("") : void 0;
25468
+ const profilePicture = profilePictureMetadata || `https://starknet.id/api/identicons/${BigInt(finalArray[1][0]).toString()}`;
25469
+ return {
25470
+ name,
25471
+ twitter,
25472
+ github,
25473
+ discord,
25474
+ proofOfPersonhood,
25475
+ profilePicture
25476
+ };
25477
+ }
25478
+ throw Error("Error while calling aggregate function");
25479
+ } catch (e) {
25480
+ if (e instanceof Error) {
25481
+ throw e;
25482
+ }
25483
+ throw Error("Could not get user stark profile data from address");
25484
+ }
25485
+ }
25196
25486
  };
25197
25487
 
25198
25488
  // src/provider/extensions/default.ts
@@ -25415,11 +25705,18 @@ var starknet = (() => {
25415
25705
  return "raw";
25416
25706
  }
25417
25707
  function encodeType(types, type, revision = "0" /* Legacy */) {
25418
- const [primary, ...dependencies] = getDependencies(types, type, void 0, void 0, revision);
25708
+ const allTypes = revision === "1" /* Active */ ? { ...types, ...revisionConfiguration[revision].presetTypes } : types;
25709
+ const [primary, ...dependencies] = getDependencies(
25710
+ allTypes,
25711
+ type,
25712
+ void 0,
25713
+ void 0,
25714
+ revision
25715
+ );
25419
25716
  const newTypes = !primary ? [] : [primary, ...dependencies.sort()];
25420
25717
  const esc = revisionConfiguration[revision].escapeTypeString;
25421
25718
  return newTypes.map((dependency) => {
25422
- const dependencyElements = types[dependency].map((t) => {
25719
+ const dependencyElements = allTypes[dependency].map((t) => {
25423
25720
  const targetType = t.type === "enum" && revision === "1" /* Active */ ? t.contains : t.type;
25424
25721
  const typeString = targetType.match(/^\(.*\)$/) ? `(${targetType.slice(1, -1).split(",").map((e) => e ? esc(e) : e).join(",")})` : esc(targetType);
25425
25722
  return `${esc(t.name)}:${typeString}`;
@@ -25893,7 +26190,12 @@ var starknet = (() => {
25893
26190
  return this.estimateInvokeFee(calls, estimateFeeDetails);
25894
26191
  }
25895
26192
  async estimateInvokeFee(calls, details = {}) {
25896
- const { nonce: providedNonce, blockIdentifier, version: providedVersion } = details;
26193
+ const {
26194
+ nonce: providedNonce,
26195
+ blockIdentifier,
26196
+ version: providedVersion,
26197
+ skipValidate = true
26198
+ } = details;
25897
26199
  const transactions = Array.isArray(calls) ? calls : [calls];
25898
26200
  const nonce = toBigInt(providedNonce ?? await this.getNonce());
25899
26201
  const version = toTransactionVersion(
@@ -25908,7 +26210,8 @@ var starknet = (() => {
25908
26210
  maxFee: ZERO,
25909
26211
  version,
25910
26212
  chainId,
25911
- cairoVersion: await this.getCairoVersion()
26213
+ cairoVersion: await this.getCairoVersion(),
26214
+ skipValidate
25912
26215
  };
25913
26216
  const invocation = await this.buildInvocation(transactions, signerDetails);
25914
26217
  return super.getInvokeEstimateFee(
@@ -25919,7 +26222,12 @@ var starknet = (() => {
25919
26222
  );
25920
26223
  }
25921
26224
  async estimateDeclareFee(payload, details = {}) {
25922
- const { blockIdentifier, nonce: providedNonce, version: providedVersion } = details;
26225
+ const {
26226
+ blockIdentifier,
26227
+ nonce: providedNonce,
26228
+ version: providedVersion,
26229
+ skipValidate = true
26230
+ } = details;
25923
26231
  const nonce = toBigInt(providedNonce ?? await this.getNonce());
25924
26232
  const version = toTransactionVersion(
25925
26233
  !isSierra(payload.contract) ? "0x100000000000000000000000000000001" /* F1 */ : this.getPreferredVersion("0x100000000000000000000000000000002" /* F2 */, "0x100000000000000000000000000000003" /* F3 */),
@@ -25933,8 +26241,9 @@ var starknet = (() => {
25933
26241
  version,
25934
26242
  walletAddress: this.address,
25935
26243
  maxFee: ZERO,
25936
- cairoVersion: void 0
26244
+ cairoVersion: void 0,
25937
26245
  // unused parameter
26246
+ skipValidate
25938
26247
  });
25939
26248
  return super.getDeclareEstimateFee(
25940
26249
  declareContractTransaction,
@@ -25949,7 +26258,7 @@ var starknet = (() => {
25949
26258
  constructorCalldata = [],
25950
26259
  contractAddress
25951
26260
  }, details = {}) {
25952
- const { blockIdentifier, version: providedVersion } = details;
26261
+ const { blockIdentifier, version: providedVersion, skipValidate = true } = details;
25953
26262
  const version = toTransactionVersion(
25954
26263
  this.getPreferredVersion("0x100000000000000000000000000000001" /* F1 */, "0x100000000000000000000000000000003" /* F3 */),
25955
26264
  toFeeVersion(providedVersion)
@@ -25966,8 +26275,9 @@ var starknet = (() => {
25966
26275
  walletAddress: this.address,
25967
26276
  // unused parameter
25968
26277
  maxFee: ZERO,
25969
- cairoVersion: void 0
26278
+ cairoVersion: void 0,
25970
26279
  // unused parameter,
26280
+ skipValidate
25971
26281
  }
25972
26282
  );
25973
26283
  return super.getDeployAccountEstimateFee(
@@ -26003,7 +26313,7 @@ var starknet = (() => {
26003
26313
  });
26004
26314
  }
26005
26315
  async simulateTransaction(invocations, details = {}) {
26006
- const { nonce, blockIdentifier, skipValidate, skipExecute, version } = details;
26316
+ const { nonce, blockIdentifier, skipValidate = true, skipExecute, version } = details;
26007
26317
  const accountInvocations = await this.accountInvocationsFactory(invocations, {
26008
26318
  ...v3Details(details),
26009
26319
  versions: [
@@ -26015,7 +26325,8 @@ var starknet = (() => {
26015
26325
  )
26016
26326
  ],
26017
26327
  nonce,
26018
- blockIdentifier
26328
+ blockIdentifier,
26329
+ skipValidate
26019
26330
  });
26020
26331
  return super.getSimulateTransaction(accountInvocations, {
26021
26332
  blockIdentifier,
@@ -26301,7 +26612,7 @@ var starknet = (() => {
26301
26612
  }
26302
26613
  async buildInvocation(call, details) {
26303
26614
  const calldata = getExecuteCalldata(call, await this.getCairoVersion());
26304
- const signature = await this.signer.signTransaction(call, details);
26615
+ const signature = !details.skipValidate ? await this.signer.signTransaction(call, details) : [];
26305
26616
  return {
26306
26617
  ...v3Details(details),
26307
26618
  contractAddress: this.address,
@@ -26315,14 +26626,14 @@ var starknet = (() => {
26315
26626
  if (typeof compiledClassHash === "undefined" && (details.version === "0x100000000000000000000000000000003" /* F3 */ || details.version === "0x3" /* V3 */)) {
26316
26627
  throw Error("V3 Transaction work with Cairo1 Contracts and require compiledClassHash");
26317
26628
  }
26318
- const signature = await this.signer.signDeclareTransaction({
26629
+ const signature = !details.skipValidate ? await this.signer.signDeclareTransaction({
26319
26630
  ...details,
26320
26631
  ...v3Details(details),
26321
26632
  classHash,
26322
26633
  compiledClassHash,
26323
- // TODO: TS Nekuzi da v2 nemora imat a v3 mora i da je throvano ako nije definiran
26634
+ // TODO: TS, cast because optional for v2 and required for v3, thrown if not present
26324
26635
  senderAddress: details.walletAddress
26325
- });
26636
+ }) : [];
26326
26637
  return {
26327
26638
  senderAddress: details.walletAddress,
26328
26639
  signature,
@@ -26338,14 +26649,14 @@ var starknet = (() => {
26338
26649
  }, details) {
26339
26650
  const compiledCalldata = CallData.compile(constructorCalldata);
26340
26651
  const contractAddress = providedContractAddress ?? calculateContractAddressFromHash(addressSalt, classHash, compiledCalldata, 0);
26341
- const signature = await this.signer.signDeployAccountTransaction({
26652
+ const signature = !details.skipValidate ? await this.signer.signDeployAccountTransaction({
26342
26653
  ...details,
26343
26654
  ...v3Details(details),
26344
26655
  classHash,
26345
26656
  contractAddress,
26346
26657
  addressSalt,
26347
26658
  constructorCalldata: compiledCalldata
26348
- });
26659
+ }) : [];
26349
26660
  return {
26350
26661
  ...v3Details(details),
26351
26662
  classHash,
@@ -26378,7 +26689,7 @@ var starknet = (() => {
26378
26689
  return calls;
26379
26690
  }
26380
26691
  async accountInvocationsFactory(invocations, details) {
26381
- const { nonce, blockIdentifier } = details;
26692
+ const { nonce, blockIdentifier, skipValidate = true } = details;
26382
26693
  const safeNonce = await this.getNonceSafe(nonce);
26383
26694
  const chainId = await this.getChainId();
26384
26695
  const versions = details.versions.map((it) => toTransactionVersion(it));
@@ -26394,7 +26705,8 @@ var starknet = (() => {
26394
26705
  maxFee: ZERO,
26395
26706
  chainId,
26396
26707
  cairoVersion,
26397
- version: ""
26708
+ version: "",
26709
+ skipValidate
26398
26710
  };
26399
26711
  const common2 = {
26400
26712
  type: transaction.type,