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.js CHANGED
@@ -5408,8 +5408,8 @@ function computeContractClassHash(contract) {
5408
5408
  }
5409
5409
  return computeLegacyContractClassHash(compiledContract);
5410
5410
  }
5411
- function computeCompiledClassHash(casm, specVersion) {
5412
- if (specVersion && compareVersions(specVersion, "0.10.0") >= 0) {
5411
+ function computeCompiledClassHash(casm, starknetVersion) {
5412
+ if (starknetVersion && compareVersions(starknetVersion, "0.14.1") >= 0) {
5413
5413
  return computeCompiledClassHashBlake(casm);
5414
5414
  }
5415
5415
  return computeCompiledClassHashPoseidon(casm);
@@ -5619,11 +5619,11 @@ function isSierra(contract) {
5619
5619
  const compiledContract = isString(contract) ? parse2(contract) : contract;
5620
5620
  return "sierra_program" in compiledContract;
5621
5621
  }
5622
- function extractContractHashes(payload, specVersion) {
5622
+ function extractContractHashes(payload, starknetVersion) {
5623
5623
  const response = { ...payload };
5624
5624
  if (isSierra(payload.contract)) {
5625
5625
  if (!payload.compiledClassHash && payload.casm) {
5626
- response.compiledClassHash = computeCompiledClassHash(payload.casm, specVersion);
5626
+ response.compiledClassHash = computeCompiledClassHash(payload.casm, starknetVersion);
5627
5627
  }
5628
5628
  if (!response.compiledClassHash)
5629
5629
  throw new Error(
@@ -6095,6 +6095,14 @@ var RpcChannel = class {
6095
6095
  block_id
6096
6096
  });
6097
6097
  }
6098
+ /**
6099
+ * Helper method to get the starknet version from the block, default latest block
6100
+ * @returns Starknet version
6101
+ */
6102
+ async getStarknetVersion(blockIdentifier = this.blockIdentifier) {
6103
+ const block = await this.getBlockWithTxHashes(blockIdentifier);
6104
+ return block.starknet_version;
6105
+ }
6098
6106
  /**
6099
6107
  * Get the most recent accepted block hash and number
6100
6108
  */
@@ -6684,6 +6692,14 @@ var RpcChannel2 = class {
6684
6692
  block_id
6685
6693
  });
6686
6694
  }
6695
+ /**
6696
+ * Helper method to get the starknet version from the block, default latest block
6697
+ * @returns Starknet version
6698
+ */
6699
+ async getStarknetVersion(blockIdentifier = this.blockIdentifier) {
6700
+ const block = await this.getBlockWithTxHashes(blockIdentifier);
6701
+ return block.starknet_version;
6702
+ }
6687
6703
  /**
6688
6704
  * Get the most recent accepted block hash and number
6689
6705
  */
@@ -8623,6 +8639,9 @@ var RpcProvider = class {
8623
8639
  setUpSpecVersion() {
8624
8640
  return this.channel.setUpSpecVersion();
8625
8641
  }
8642
+ async getStarknetVersion(blockIdentifier) {
8643
+ return this.channel.getStarknetVersion(blockIdentifier);
8644
+ }
8626
8645
  async getNonceForAddress(contractAddress, blockIdentifier) {
8627
8646
  return this.channel.getNonceForAddress(contractAddress, blockIdentifier);
8628
8647
  }
@@ -8862,7 +8881,7 @@ var RpcProvider = class {
8862
8881
  if (!contractClassIdentifier.classHash && "contract" in contractClassIdentifier) {
8863
8882
  const hashes = extractContractHashes(
8864
8883
  contractClassIdentifier,
8865
- await this.channel.setUpSpecVersion()
8884
+ await this.channel.getStarknetVersion()
8866
8885
  );
8867
8886
  classHash = hashes.classHash;
8868
8887
  } else if (contractClassIdentifier.classHash) {
@@ -11236,7 +11255,7 @@ var Account = class extends RpcProvider2 {
11236
11255
  const invocations = [
11237
11256
  {
11238
11257
  type: api_exports.ETransactionType.DECLARE,
11239
- payload: extractContractHashes(payload, await this.channel.setUpSpecVersion())
11258
+ payload: extractContractHashes(payload, await this.channel.getStarknetVersion())
11240
11259
  }
11241
11260
  ];
11242
11261
  const estimateBulk = await this.estimateFeeBulk(invocations, details);
@@ -11402,7 +11421,7 @@ var Account = class extends RpcProvider2 {
11402
11421
  async declareIfNot(payload, transactionsDetail = {}) {
11403
11422
  const declareContractPayload = extractContractHashes(
11404
11423
  payload,
11405
- await this.channel.setUpSpecVersion()
11424
+ await this.channel.getStarknetVersion()
11406
11425
  );
11407
11426
  try {
11408
11427
  await this.getClassByHash(declareContractPayload.classHash);
@@ -11418,7 +11437,7 @@ var Account = class extends RpcProvider2 {
11418
11437
  assert(isSierra(payload.contract), SYSTEM_MESSAGES.declareNonSierra);
11419
11438
  const declareContractPayload = extractContractHashes(
11420
11439
  payload,
11421
- await this.channel.setUpSpecVersion()
11440
+ await this.channel.getStarknetVersion()
11422
11441
  );
11423
11442
  const detailsWithTip = await this.resolveDetailsWithTip(details);
11424
11443
  const { resourceBounds: providedResourceBounds } = details;
@@ -11728,7 +11747,7 @@ var Account = class extends RpcProvider2 {
11728
11747
  async buildDeclarePayload(payload, details) {
11729
11748
  const { classHash, contract, compiledClassHash } = extractContractHashes(
11730
11749
  payload,
11731
- await this.channel.setUpSpecVersion()
11750
+ await this.channel.getStarknetVersion()
11732
11751
  );
11733
11752
  const compressedCompiledContract = parseContract(contract);
11734
11753
  assert(
@@ -12078,7 +12097,7 @@ var WalletAccount = class _WalletAccount extends Account {
12078
12097
  async declare(payload) {
12079
12098
  const declareContractPayload = extractContractHashes(
12080
12099
  payload,
12081
- await this.channel.setUpSpecVersion()
12100
+ await this.channel.getStarknetVersion()
12082
12101
  );
12083
12102
  const pContract = payload.contract;
12084
12103
  const cairo1Contract = {