starknet 8.7.0 → 8.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -5233,8 +5233,8 @@ function computeContractClassHash(contract) {
5233
5233
  }
5234
5234
  return computeLegacyContractClassHash(compiledContract);
5235
5235
  }
5236
- function computeCompiledClassHash(casm, specVersion) {
5237
- if (specVersion && compareVersions(specVersion, "0.10.0") >= 0) {
5236
+ function computeCompiledClassHash(casm, starknetVersion) {
5237
+ if (starknetVersion && compareVersions(starknetVersion, "0.14.1") >= 0) {
5238
5238
  return computeCompiledClassHashBlake(casm);
5239
5239
  }
5240
5240
  return computeCompiledClassHashPoseidon(casm);
@@ -5444,11 +5444,11 @@ function isSierra(contract) {
5444
5444
  const compiledContract = isString(contract) ? parse2(contract) : contract;
5445
5445
  return "sierra_program" in compiledContract;
5446
5446
  }
5447
- function extractContractHashes(payload, specVersion) {
5447
+ function extractContractHashes(payload, starknetVersion) {
5448
5448
  const response = { ...payload };
5449
5449
  if (isSierra(payload.contract)) {
5450
5450
  if (!payload.compiledClassHash && payload.casm) {
5451
- response.compiledClassHash = computeCompiledClassHash(payload.casm, specVersion);
5451
+ response.compiledClassHash = computeCompiledClassHash(payload.casm, starknetVersion);
5452
5452
  }
5453
5453
  if (!response.compiledClassHash)
5454
5454
  throw new Error(
@@ -5920,6 +5920,14 @@ var RpcChannel = class {
5920
5920
  block_id
5921
5921
  });
5922
5922
  }
5923
+ /**
5924
+ * Helper method to get the starknet version from the block, default latest block
5925
+ * @returns Starknet version
5926
+ */
5927
+ async getStarknetVersion(blockIdentifier = this.blockIdentifier) {
5928
+ const block = await this.getBlockWithTxHashes(blockIdentifier);
5929
+ return block.starknet_version;
5930
+ }
5923
5931
  /**
5924
5932
  * Get the most recent accepted block hash and number
5925
5933
  */
@@ -6509,6 +6517,14 @@ var RpcChannel2 = class {
6509
6517
  block_id
6510
6518
  });
6511
6519
  }
6520
+ /**
6521
+ * Helper method to get the starknet version from the block, default latest block
6522
+ * @returns Starknet version
6523
+ */
6524
+ async getStarknetVersion(blockIdentifier = this.blockIdentifier) {
6525
+ const block = await this.getBlockWithTxHashes(blockIdentifier);
6526
+ return block.starknet_version;
6527
+ }
6512
6528
  /**
6513
6529
  * Get the most recent accepted block hash and number
6514
6530
  */
@@ -8448,6 +8464,9 @@ var RpcProvider = class {
8448
8464
  setUpSpecVersion() {
8449
8465
  return this.channel.setUpSpecVersion();
8450
8466
  }
8467
+ async getStarknetVersion(blockIdentifier) {
8468
+ return this.channel.getStarknetVersion(blockIdentifier);
8469
+ }
8451
8470
  async getNonceForAddress(contractAddress, blockIdentifier) {
8452
8471
  return this.channel.getNonceForAddress(contractAddress, blockIdentifier);
8453
8472
  }
@@ -8687,7 +8706,7 @@ var RpcProvider = class {
8687
8706
  if (!contractClassIdentifier.classHash && "contract" in contractClassIdentifier) {
8688
8707
  const hashes = extractContractHashes(
8689
8708
  contractClassIdentifier,
8690
- await this.channel.setUpSpecVersion()
8709
+ await this.channel.getStarknetVersion()
8691
8710
  );
8692
8711
  classHash = hashes.classHash;
8693
8712
  } else if (contractClassIdentifier.classHash) {
@@ -11061,7 +11080,7 @@ var Account = class extends RpcProvider2 {
11061
11080
  const invocations = [
11062
11081
  {
11063
11082
  type: api_exports.ETransactionType.DECLARE,
11064
- payload: extractContractHashes(payload, await this.channel.setUpSpecVersion())
11083
+ payload: extractContractHashes(payload, await this.channel.getStarknetVersion())
11065
11084
  }
11066
11085
  ];
11067
11086
  const estimateBulk = await this.estimateFeeBulk(invocations, details);
@@ -11227,7 +11246,7 @@ var Account = class extends RpcProvider2 {
11227
11246
  async declareIfNot(payload, transactionsDetail = {}) {
11228
11247
  const declareContractPayload = extractContractHashes(
11229
11248
  payload,
11230
- await this.channel.setUpSpecVersion()
11249
+ await this.channel.getStarknetVersion()
11231
11250
  );
11232
11251
  try {
11233
11252
  await this.getClassByHash(declareContractPayload.classHash);
@@ -11243,7 +11262,7 @@ var Account = class extends RpcProvider2 {
11243
11262
  assert(isSierra(payload.contract), SYSTEM_MESSAGES.declareNonSierra);
11244
11263
  const declareContractPayload = extractContractHashes(
11245
11264
  payload,
11246
- await this.channel.setUpSpecVersion()
11265
+ await this.channel.getStarknetVersion()
11247
11266
  );
11248
11267
  const detailsWithTip = await this.resolveDetailsWithTip(details);
11249
11268
  const { resourceBounds: providedResourceBounds } = details;
@@ -11553,7 +11572,7 @@ var Account = class extends RpcProvider2 {
11553
11572
  async buildDeclarePayload(payload, details) {
11554
11573
  const { classHash, contract, compiledClassHash } = extractContractHashes(
11555
11574
  payload,
11556
- await this.channel.setUpSpecVersion()
11575
+ await this.channel.getStarknetVersion()
11557
11576
  );
11558
11577
  const compressedCompiledContract = parseContract(contract);
11559
11578
  assert(
@@ -11903,7 +11922,7 @@ var WalletAccount = class _WalletAccount extends Account {
11903
11922
  async declare(payload) {
11904
11923
  const declareContractPayload = extractContractHashes(
11905
11924
  payload,
11906
- await this.channel.setUpSpecVersion()
11925
+ await this.channel.getStarknetVersion()
11907
11926
  );
11908
11927
  const pContract = payload.contract;
11909
11928
  const cairo1Contract = {