genlayer-js 0.21.3 → 0.21.4

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.
@@ -3,11 +3,11 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkCX76PQR5cjs = require('../chunk-CX76PQR5.cjs');
6
+ var _chunkMXWQMAOOcjs = require('../chunk-MXWQMAOO.cjs');
7
7
  require('../chunk-75ZPJI57.cjs');
8
8
 
9
9
 
10
10
 
11
11
 
12
12
 
13
- exports.localnet = _chunkCX76PQR5cjs.localnet; exports.studionet = _chunkCX76PQR5cjs.studionet; exports.testnetAsimov = _chunkCX76PQR5cjs.testnetAsimov; exports.testnetBradbury = _chunkCX76PQR5cjs.testnetBradbury;
13
+ exports.localnet = _chunkMXWQMAOOcjs.localnet; exports.studionet = _chunkMXWQMAOOcjs.studionet; exports.testnetAsimov = _chunkMXWQMAOOcjs.testnetAsimov; exports.testnetBradbury = _chunkMXWQMAOOcjs.testnetBradbury;
@@ -1,3 +1,3 @@
1
- export { l as localnet, s as studionet, t as testnetAsimov, a as testnetBradbury } from '../index-DjR-MFPr.cjs';
2
- import '../chains-B7B7UXdn.cjs';
1
+ export { l as localnet, s as studionet, t as testnetAsimov, a as testnetBradbury } from '../index-BvRcfXce.cjs';
2
+ import '../chains-DqSbucSW.cjs';
3
3
  import 'viem';
@@ -1,3 +1,3 @@
1
- export { l as localnet, s as studionet, t as testnetAsimov, a as testnetBradbury } from '../index-HRqj9M3K.js';
2
- import '../chains-B7B7UXdn.js';
1
+ export { l as localnet, s as studionet, t as testnetAsimov, a as testnetBradbury } from '../index-BZj9d30J.js';
2
+ import '../chains-DqSbucSW.js';
3
3
  import 'viem';
@@ -3,7 +3,7 @@ import {
3
3
  studionet,
4
4
  testnetAsimov,
5
5
  testnetBradbury
6
- } from "../chunk-T3O6IXYQ.js";
6
+ } from "../chunk-SHD4AYCN.js";
7
7
  import "../chunk-MLKGABMK.js";
8
8
  export {
9
9
  localnet,
@@ -16,6 +16,14 @@ type GenLayerChain = Chain & {
16
16
  address: Address;
17
17
  abi: readonly unknown[];
18
18
  } | null;
19
+ feeManagerContract: {
20
+ address: Address;
21
+ abi: readonly unknown[];
22
+ } | null;
23
+ roundsStorageContract: {
24
+ address: Address;
25
+ abi: readonly unknown[];
26
+ } | null;
19
27
  defaultNumberOfInitialValidators: number;
20
28
  defaultConsensusMaxRotations: number;
21
29
  };
@@ -16,6 +16,14 @@ type GenLayerChain = Chain & {
16
16
  address: Address;
17
17
  abi: readonly unknown[];
18
18
  } | null;
19
+ feeManagerContract: {
20
+ address: Address;
21
+ abi: readonly unknown[];
22
+ } | null;
23
+ roundsStorageContract: {
24
+ address: Address;
25
+ abi: readonly unknown[];
26
+ } | null;
19
27
  defaultNumberOfInitialValidators: number;
20
28
  defaultConsensusMaxRotations: number;
21
29
  };
@@ -4020,6 +4020,8 @@ var localnet = _viem.defineChain.call(void 0, {
4020
4020
  consensusMainContract: CONSENSUS_MAIN_CONTRACT,
4021
4021
  consensusDataContract: CONSENSUS_DATA_CONTRACT,
4022
4022
  stakingContract: null,
4023
+ feeManagerContract: null,
4024
+ roundsStorageContract: null,
4023
4025
  defaultNumberOfInitialValidators: 5,
4024
4026
  defaultConsensusMaxRotations: 3
4025
4027
  });
@@ -8034,6 +8036,8 @@ var studionet = _viem.defineChain.call(void 0, {
8034
8036
  consensusMainContract: CONSENSUS_MAIN_CONTRACT2,
8035
8037
  consensusDataContract: CONSENSUS_DATA_CONTRACT2,
8036
8038
  stakingContract: null,
8039
+ feeManagerContract: null,
8040
+ roundsStorageContract: null,
8037
8041
  defaultNumberOfInitialValidators: 5,
8038
8042
  defaultConsensusMaxRotations: 3
8039
8043
  });
@@ -13518,6 +13522,8 @@ var testnetAsimov = _viem.defineChain.call(void 0, {
13518
13522
  consensusMainContract: CONSENSUS_MAIN_CONTRACT3,
13519
13523
  consensusDataContract: CONSENSUS_DATA_CONTRACT3,
13520
13524
  stakingContract: STAKING_CONTRACT,
13525
+ feeManagerContract: null,
13526
+ roundsStorageContract: null,
13521
13527
  defaultNumberOfInitialValidators: 5,
13522
13528
  defaultConsensusMaxRotations: 3
13523
13529
  });
@@ -13529,6 +13535,34 @@ var STAKING_CONTRACT2 = {
13529
13535
  address: "0x4A4449E617F8D10FDeD0b461CadEf83939E821A5",
13530
13536
  abi: STAKING_ABI
13531
13537
  };
13538
+ var FEE_MANAGER_CONTRACT = {
13539
+ address: "0xF205868bf5db79d2162843742D18D0900A9E462a",
13540
+ abi: [
13541
+ {
13542
+ type: "function",
13543
+ name: "calculateMinAppealBond",
13544
+ stateMutability: "view",
13545
+ inputs: [
13546
+ { name: "_txId", type: "bytes32" },
13547
+ { name: "_round", type: "uint256" },
13548
+ { name: "_status", type: "uint8" }
13549
+ ],
13550
+ outputs: [{ name: "totalFeesToPay", type: "uint256" }]
13551
+ }
13552
+ ]
13553
+ };
13554
+ var ROUNDS_STORAGE_CONTRACT = {
13555
+ address: "0x7134D05af13A14c0b66Fe129fb930b1d0C420e33",
13556
+ abi: [
13557
+ {
13558
+ type: "function",
13559
+ name: "getRoundNumber",
13560
+ stateMutability: "view",
13561
+ inputs: [{ name: "_txId", type: "bytes32" }],
13562
+ outputs: [{ name: "", type: "uint256" }]
13563
+ }
13564
+ ]
13565
+ };
13532
13566
  var EXPLORER_URL3 = "https://explorer-bradbury.genlayer.com/";
13533
13567
  var CONSENSUS_MAIN_CONTRACT4 = {
13534
13568
  address: "0x0112Bf6e83497965A5fdD6Dad1E447a6E004271D",
@@ -16870,6 +16904,8 @@ var testnetBradbury = _viem.defineChain.call(void 0, {
16870
16904
  consensusMainContract: CONSENSUS_MAIN_CONTRACT4,
16871
16905
  consensusDataContract: CONSENSUS_DATA_CONTRACT4,
16872
16906
  stakingContract: STAKING_CONTRACT2,
16907
+ feeManagerContract: FEE_MANAGER_CONTRACT,
16908
+ roundsStorageContract: ROUNDS_STORAGE_CONTRACT,
16873
16909
  defaultNumberOfInitialValidators: 5,
16874
16910
  defaultConsensusMaxRotations: 3
16875
16911
  });
@@ -4020,6 +4020,8 @@ var localnet = defineChain({
4020
4020
  consensusMainContract: CONSENSUS_MAIN_CONTRACT,
4021
4021
  consensusDataContract: CONSENSUS_DATA_CONTRACT,
4022
4022
  stakingContract: null,
4023
+ feeManagerContract: null,
4024
+ roundsStorageContract: null,
4023
4025
  defaultNumberOfInitialValidators: 5,
4024
4026
  defaultConsensusMaxRotations: 3
4025
4027
  });
@@ -8034,6 +8036,8 @@ var studionet = defineChain2({
8034
8036
  consensusMainContract: CONSENSUS_MAIN_CONTRACT2,
8035
8037
  consensusDataContract: CONSENSUS_DATA_CONTRACT2,
8036
8038
  stakingContract: null,
8039
+ feeManagerContract: null,
8040
+ roundsStorageContract: null,
8037
8041
  defaultNumberOfInitialValidators: 5,
8038
8042
  defaultConsensusMaxRotations: 3
8039
8043
  });
@@ -13518,6 +13522,8 @@ var testnetAsimov = defineChain3({
13518
13522
  consensusMainContract: CONSENSUS_MAIN_CONTRACT3,
13519
13523
  consensusDataContract: CONSENSUS_DATA_CONTRACT3,
13520
13524
  stakingContract: STAKING_CONTRACT,
13525
+ feeManagerContract: null,
13526
+ roundsStorageContract: null,
13521
13527
  defaultNumberOfInitialValidators: 5,
13522
13528
  defaultConsensusMaxRotations: 3
13523
13529
  });
@@ -13529,6 +13535,34 @@ var STAKING_CONTRACT2 = {
13529
13535
  address: "0x4A4449E617F8D10FDeD0b461CadEf83939E821A5",
13530
13536
  abi: STAKING_ABI
13531
13537
  };
13538
+ var FEE_MANAGER_CONTRACT = {
13539
+ address: "0xF205868bf5db79d2162843742D18D0900A9E462a",
13540
+ abi: [
13541
+ {
13542
+ type: "function",
13543
+ name: "calculateMinAppealBond",
13544
+ stateMutability: "view",
13545
+ inputs: [
13546
+ { name: "_txId", type: "bytes32" },
13547
+ { name: "_round", type: "uint256" },
13548
+ { name: "_status", type: "uint8" }
13549
+ ],
13550
+ outputs: [{ name: "totalFeesToPay", type: "uint256" }]
13551
+ }
13552
+ ]
13553
+ };
13554
+ var ROUNDS_STORAGE_CONTRACT = {
13555
+ address: "0x7134D05af13A14c0b66Fe129fb930b1d0C420e33",
13556
+ abi: [
13557
+ {
13558
+ type: "function",
13559
+ name: "getRoundNumber",
13560
+ stateMutability: "view",
13561
+ inputs: [{ name: "_txId", type: "bytes32" }],
13562
+ outputs: [{ name: "", type: "uint256" }]
13563
+ }
13564
+ ]
13565
+ };
13532
13566
  var EXPLORER_URL3 = "https://explorer-bradbury.genlayer.com/";
13533
13567
  var CONSENSUS_MAIN_CONTRACT4 = {
13534
13568
  address: "0x0112Bf6e83497965A5fdD6Dad1E447a6E004271D",
@@ -16870,6 +16904,8 @@ var testnetBradbury = defineChain4({
16870
16904
  consensusMainContract: CONSENSUS_MAIN_CONTRACT4,
16871
16905
  consensusDataContract: CONSENSUS_DATA_CONTRACT4,
16872
16906
  stakingContract: STAKING_CONTRACT2,
16907
+ feeManagerContract: FEE_MANAGER_CONTRACT,
16908
+ roundsStorageContract: ROUNDS_STORAGE_CONTRACT,
16873
16909
  defaultNumberOfInitialValidators: 5,
16874
16910
  defaultConsensusMaxRotations: 3
16875
16911
  });
@@ -1,5 +1,5 @@
1
1
  import { Hex, Address, GetContractReturnType, PublicClient, Client, Transport, Chain, Account, WalletActions, PublicActions } from 'viem';
2
- import { G as GenLayerChain } from './chains-B7B7UXdn.js';
2
+ import { G as GenLayerChain } from './chains-DqSbucSW.js';
3
3
 
4
4
  declare class CalldataAddress {
5
5
  bytes: Uint8Array;
@@ -2844,7 +2844,11 @@ type GenLayerClient<TGenLayerChain extends GenLayerChain> = Omit<Client<Transpor
2844
2844
  appealTransaction: (args: {
2845
2845
  account?: Account;
2846
2846
  txId: `0x${string}`;
2847
+ value?: bigint;
2847
2848
  }) => Promise<any>;
2849
+ getMinAppealBond: (args: {
2850
+ txId: `0x${string}`;
2851
+ }) => Promise<bigint>;
2848
2852
  } & StakingActions;
2849
2853
 
2850
2854
  export { type ValidatorPrimeOptions as $, type ValidatorView as A, type ValidatorIdentity as B, type CalldataEncodable as C, type DecodedDeployData as D, type ValidatorInfo as E, type PendingWithdrawal as F, type GenLayerClient as G, type Hash as H, type BannedValidatorInfo as I, type StakeInfo as J, type EpochData as K, type LeaderReceipt as L, type MethodDescription as M, type Network as N, type EpochInfo as O, type PendingDeposit as P, type StakingTransactionResult as Q, type ValidatorJoinResult as R, STAKING_ABI as S, type TransactionDataElement as T, type DelegatorJoinResult as U, VALIDATOR_WALLET_ABI as V, type WithdrawalCommit as W, type ValidatorJoinOptions as X, type ValidatorDepositOptions as Y, type ValidatorExitOptions as Z, type ValidatorClaimOptions as _, type DecodedCallData as a, type SetOperatorOptions as a0, type SetIdentityOptions as a1, type DelegatorJoinOptions as a2, type DelegatorExitOptions as a3, type DelegatorClaimOptions as a4, type StakingActions as a5, type GenLayerRawTransaction as b, type GenLayerTransaction as c, type ContractSchema as d, CalldataAddress as e, type GenLayerMethod as f, type ContractParamsArraySchemaElement as g, type ContractParamsSchema as h, type ContractMethodBase as i, type ContractMethod as j, type TransactionHash as k, TransactionStatus as l, TransactionResult as m, transactionsStatusNameToNumber as n, DECIDED_STATES as o, isDecidedState as p, transactionResultNumberToName as q, TransactionResultNameToNumber as r, VoteType as s, transactionsStatusNumberToName as t, voteTypeNameToNumber as u, voteTypeNumberToName as v, type TransactionType as w, TransactionHashVariant as x, type SnapSource as y, type StakingContract as z };
@@ -1,4 +1,4 @@
1
- import { G as GenLayerChain } from './chains-B7B7UXdn.js';
1
+ import { G as GenLayerChain } from './chains-DqSbucSW.js';
2
2
 
3
3
  declare const localnet: GenLayerChain;
4
4
 
@@ -1,4 +1,4 @@
1
- import { G as GenLayerChain } from './chains-B7B7UXdn.cjs';
1
+ import { G as GenLayerChain } from './chains-DqSbucSW.cjs';
2
2
 
3
3
  declare const localnet: GenLayerChain;
4
4
 
@@ -1,5 +1,5 @@
1
1
  import { Hex, Address, GetContractReturnType, PublicClient, Client, Transport, Chain, Account, WalletActions, PublicActions } from 'viem';
2
- import { G as GenLayerChain } from './chains-B7B7UXdn.cjs';
2
+ import { G as GenLayerChain } from './chains-DqSbucSW.cjs';
3
3
 
4
4
  declare class CalldataAddress {
5
5
  bytes: Uint8Array;
@@ -2844,7 +2844,11 @@ type GenLayerClient<TGenLayerChain extends GenLayerChain> = Omit<Client<Transpor
2844
2844
  appealTransaction: (args: {
2845
2845
  account?: Account;
2846
2846
  txId: `0x${string}`;
2847
+ value?: bigint;
2847
2848
  }) => Promise<any>;
2849
+ getMinAppealBond: (args: {
2850
+ txId: `0x${string}`;
2851
+ }) => Promise<bigint>;
2848
2852
  } & StakingActions;
2849
2853
 
2850
2854
  export { type ValidatorPrimeOptions as $, type ValidatorView as A, type ValidatorIdentity as B, type CalldataEncodable as C, type DecodedDeployData as D, type ValidatorInfo as E, type PendingWithdrawal as F, type GenLayerClient as G, type Hash as H, type BannedValidatorInfo as I, type StakeInfo as J, type EpochData as K, type LeaderReceipt as L, type MethodDescription as M, type Network as N, type EpochInfo as O, type PendingDeposit as P, type StakingTransactionResult as Q, type ValidatorJoinResult as R, STAKING_ABI as S, type TransactionDataElement as T, type DelegatorJoinResult as U, VALIDATOR_WALLET_ABI as V, type WithdrawalCommit as W, type ValidatorJoinOptions as X, type ValidatorDepositOptions as Y, type ValidatorExitOptions as Z, type ValidatorClaimOptions as _, type DecodedCallData as a, type SetOperatorOptions as a0, type SetIdentityOptions as a1, type DelegatorJoinOptions as a2, type DelegatorExitOptions as a3, type DelegatorClaimOptions as a4, type StakingActions as a5, type GenLayerRawTransaction as b, type GenLayerTransaction as c, type ContractSchema as d, CalldataAddress as e, type GenLayerMethod as f, type ContractParamsArraySchemaElement as g, type ContractParamsSchema as h, type ContractMethodBase as i, type ContractMethod as j, type TransactionHash as k, TransactionStatus as l, TransactionResult as m, transactionsStatusNameToNumber as n, DECIDED_STATES as o, isDecidedState as p, transactionResultNumberToName as q, TransactionResultNameToNumber as r, VoteType as s, transactionsStatusNumberToName as t, voteTypeNameToNumber as u, voteTypeNumberToName as v, type TransactionType as w, TransactionHashVariant as x, type SnapSource as y, type StakingContract as z };
package/dist/index.cjs CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- var _chunkCX76PQR5cjs = require('./chunk-CX76PQR5.cjs');
9
+ var _chunkMXWQMAOOcjs = require('./chunk-MXWQMAOO.cjs');
10
10
 
11
11
 
12
12
 
@@ -32,7 +32,7 @@ var _viem = require('viem');
32
32
  function accountActions(client) {
33
33
  return {
34
34
  fundAccount: async ({ address, amount }) => {
35
- if (_optionalChain([client, 'access', _ => _.chain, 'optionalAccess', _2 => _2.id]) !== _chunkCX76PQR5cjs.localnet.id) {
35
+ if (_optionalChain([client, 'access', _ => _.chain, 'optionalAccess', _2 => _2.id]) !== _chunkMXWQMAOOcjs.localnet.id) {
36
36
  throw new Error("Client is not connected to the localnet");
37
37
  }
38
38
  return client.request({
@@ -416,8 +416,8 @@ function serialize(data) {
416
416
  // src/abi/index.ts
417
417
  var abi_exports = {};
418
418
  _chunk75ZPJI57cjs.__export.call(void 0, abi_exports, {
419
- STAKING_ABI: () => _chunkCX76PQR5cjs.STAKING_ABI,
420
- VALIDATOR_WALLET_ABI: () => _chunkCX76PQR5cjs.VALIDATOR_WALLET_ABI,
419
+ STAKING_ABI: () => _chunkMXWQMAOOcjs.STAKING_ABI,
420
+ VALIDATOR_WALLET_ABI: () => _chunkMXWQMAOOcjs.VALIDATOR_WALLET_ABI,
421
421
  calldata: () => calldata,
422
422
  transactions: () => transactions
423
423
  });
@@ -530,7 +530,7 @@ function extractGenCallResult(result) {
530
530
  var contractActions = (client, publicClient) => {
531
531
  return {
532
532
  getContractCode: async (address) => {
533
- if (client.chain.id !== _chunkCX76PQR5cjs.localnet.id) {
533
+ if (client.chain.id !== _chunkMXWQMAOOcjs.localnet.id) {
534
534
  throw new Error("Getting contract code is not supported on this network");
535
535
  }
536
536
  const result = await client.request({
@@ -541,7 +541,7 @@ var contractActions = (client, publicClient) => {
541
541
  return new TextDecoder().decode(codeBytes);
542
542
  },
543
543
  getContractSchema: async (address) => {
544
- if (client.chain.id !== _chunkCX76PQR5cjs.localnet.id) {
544
+ if (client.chain.id !== _chunkMXWQMAOOcjs.localnet.id) {
545
545
  throw new Error("Contract schema is not supported on this network");
546
546
  }
547
547
  const schema = await client.request({
@@ -551,7 +551,7 @@ var contractActions = (client, publicClient) => {
551
551
  return schema;
552
552
  },
553
553
  getContractSchemaForCode: async (contractCode) => {
554
- if (client.chain.id !== _chunkCX76PQR5cjs.localnet.id) {
554
+ if (client.chain.id !== _chunkMXWQMAOOcjs.localnet.id) {
555
555
  throw new Error("Contract schema is not supported on this network");
556
556
  }
557
557
  const schema = await client.request({
@@ -688,15 +688,58 @@ var contractActions = (client, publicClient) => {
688
688
  senderAccount
689
689
  });
690
690
  },
691
+ getMinAppealBond: async (args) => {
692
+ const { txId } = args;
693
+ if (!_optionalChain([client, 'access', _11 => _11.chain, 'access', _12 => _12.feeManagerContract, 'optionalAccess', _13 => _13.address]) || !_optionalChain([client, 'access', _14 => _14.chain, 'access', _15 => _15.roundsStorageContract, 'optionalAccess', _16 => _16.address])) {
694
+ throw new Error("Appeal bond calculation not supported on this chain (missing feeManagerContract/roundsStorageContract)");
695
+ }
696
+ const roundNumber = await publicClient.readContract({
697
+ address: client.chain.roundsStorageContract.address,
698
+ abi: client.chain.roundsStorageContract.abi,
699
+ functionName: "getRoundNumber",
700
+ args: [txId]
701
+ });
702
+ const transaction = await client.getTransaction({ hash: txId });
703
+ const txStatus = Number(transaction.status);
704
+ const minBond = await publicClient.readContract({
705
+ address: client.chain.feeManagerContract.address,
706
+ abi: client.chain.feeManagerContract.abi,
707
+ functionName: "calculateMinAppealBond",
708
+ args: [txId, roundNumber, txStatus]
709
+ });
710
+ return minBond;
711
+ },
691
712
  appealTransaction: async (args) => {
692
713
  const { account, txId } = args;
714
+ let { value } = args;
715
+ if (value === void 0) {
716
+ if (_optionalChain([client, 'access', _17 => _17.chain, 'access', _18 => _18.feeManagerContract, 'optionalAccess', _19 => _19.address]) && _optionalChain([client, 'access', _20 => _20.chain, 'access', _21 => _21.roundsStorageContract, 'optionalAccess', _22 => _22.address])) {
717
+ const roundNumber = await publicClient.readContract({
718
+ address: client.chain.roundsStorageContract.address,
719
+ abi: client.chain.roundsStorageContract.abi,
720
+ functionName: "getRoundNumber",
721
+ args: [txId]
722
+ });
723
+ const transaction = await client.getTransaction({ hash: txId });
724
+ const txStatus = Number(transaction.status);
725
+ value = await publicClient.readContract({
726
+ address: client.chain.feeManagerContract.address,
727
+ abi: client.chain.feeManagerContract.abi,
728
+ functionName: "calculateMinAppealBond",
729
+ args: [txId, roundNumber, txStatus]
730
+ });
731
+ } else {
732
+ value = 0n;
733
+ }
734
+ }
693
735
  const senderAccount = account || client.account;
694
736
  const encodedData = _encodeSubmitAppealData({ client, txId });
695
737
  return _sendTransaction({
696
738
  client,
697
739
  publicClient,
698
740
  encodedData,
699
- senderAccount
741
+ senderAccount,
742
+ value
700
743
  });
701
744
  }
702
745
  };
@@ -751,7 +794,7 @@ var getAddTransactionInputCount = (abi) => {
751
794
  const candidate = item;
752
795
  return candidate.type === "function" && candidate.name === "addTransaction";
753
796
  });
754
- return Array.isArray(_optionalChain([addTransactionFunction, 'optionalAccess', _11 => _11.inputs])) ? addTransactionFunction.inputs.length : 0;
797
+ return Array.isArray(_optionalChain([addTransactionFunction, 'optionalAccess', _23 => _23.inputs])) ? addTransactionFunction.inputs.length : 0;
755
798
  };
756
799
  var _encodeAddTransactionData = ({
757
800
  client,
@@ -778,7 +821,7 @@ var _encodeAddTransactionData = ({
778
821
  functionName: "addTransaction",
779
822
  args: [...addTransactionArgs, 0n]
780
823
  });
781
- if (getAddTransactionInputCount(_optionalChain([client, 'access', _12 => _12.chain, 'access', _13 => _13.consensusMainContract, 'optionalAccess', _14 => _14.abi])) >= 6) {
824
+ if (getAddTransactionInputCount(_optionalChain([client, 'access', _24 => _24.chain, 'access', _25 => _25.consensusMainContract, 'optionalAccess', _26 => _26.abi])) >= 6) {
782
825
  return {
783
826
  primaryEncodedData: encodedDataV6,
784
827
  fallbackEncodedData: encodedDataV5
@@ -794,7 +837,7 @@ var _encodeSubmitAppealData = ({
794
837
  txId
795
838
  }) => {
796
839
  return _viem.encodeFunctionData.call(void 0, {
797
- abi: _optionalChain([client, 'access', _15 => _15.chain, 'access', _16 => _16.consensusMainContract, 'optionalAccess', _17 => _17.abi]),
840
+ abi: _optionalChain([client, 'access', _27 => _27.chain, 'access', _28 => _28.consensusMainContract, 'optionalAccess', _29 => _29.abi]),
798
841
  functionName: "submitAppeal",
799
842
  args: [txId]
800
843
  });
@@ -815,9 +858,9 @@ var isAddTransactionAbiMismatchError = (error) => {
815
858
  }) : "";
816
859
  const errorObject = error;
817
860
  const errorMessage = [
818
- _optionalChain([errorObject, 'optionalAccess', _18 => _18.shortMessage]),
819
- _optionalChain([errorObject, 'optionalAccess', _19 => _19.details]),
820
- _optionalChain([errorObject, 'optionalAccess', _20 => _20.message]),
861
+ _optionalChain([errorObject, 'optionalAccess', _30 => _30.shortMessage]),
862
+ _optionalChain([errorObject, 'optionalAccess', _31 => _31.details]),
863
+ _optionalChain([errorObject, 'optionalAccess', _32 => _32.message]),
821
864
  serializedError,
822
865
  String(_nullishCoalesce(error, () => ( "")))
823
866
  ].filter(Boolean).join(" ").toLowerCase();
@@ -831,7 +874,7 @@ var _sendTransaction = async ({
831
874
  senderAccount,
832
875
  value = 0n
833
876
  }) => {
834
- if (!_optionalChain([client, 'access', _21 => _21.chain, 'access', _22 => _22.consensusMainContract, 'optionalAccess', _23 => _23.address])) {
877
+ if (!_optionalChain([client, 'access', _33 => _33.chain, 'access', _34 => _34.consensusMainContract, 'optionalAccess', _35 => _35.address])) {
835
878
  throw new Error("Consensus main contract not initialized. Please ensure client is properly initialized.");
836
879
  }
837
880
  const validatedSenderAccount = validateAccount(senderAccount);
@@ -841,7 +884,7 @@ var _sendTransaction = async ({
841
884
  try {
842
885
  estimatedGas = await client.estimateTransactionGas({
843
886
  from: validatedSenderAccount.address,
844
- to: _optionalChain([client, 'access', _24 => _24.chain, 'access', _25 => _25.consensusMainContract, 'optionalAccess', _26 => _26.address]),
887
+ to: _optionalChain([client, 'access', _36 => _36.chain, 'access', _37 => _37.consensusMainContract, 'optionalAccess', _38 => _38.address]),
845
888
  data: encodedDataForSend,
846
889
  value
847
890
  });
@@ -849,8 +892,8 @@ var _sendTransaction = async ({
849
892
  console.error("Gas estimation failed, using default 200_000:", err);
850
893
  estimatedGas = 200000n;
851
894
  }
852
- if (_optionalChain([validatedSenderAccount, 'optionalAccess', _27 => _27.type]) === "local") {
853
- if (!_optionalChain([validatedSenderAccount, 'optionalAccess', _28 => _28.signTransaction])) {
895
+ if (_optionalChain([validatedSenderAccount, 'optionalAccess', _39 => _39.type]) === "local") {
896
+ if (!_optionalChain([validatedSenderAccount, 'optionalAccess', _40 => _40.signTransaction])) {
854
897
  throw new Error("Account does not support signTransaction");
855
898
  }
856
899
  const gasPriceHex2 = await client.request({
@@ -858,7 +901,7 @@ var _sendTransaction = async ({
858
901
  });
859
902
  const transactionRequest = {
860
903
  account: validatedSenderAccount,
861
- to: _optionalChain([client, 'access', _29 => _29.chain, 'access', _30 => _30.consensusMainContract, 'optionalAccess', _31 => _31.address]),
904
+ to: _optionalChain([client, 'access', _41 => _41.chain, 'access', _42 => _42.consensusMainContract, 'optionalAccess', _43 => _43.address]),
862
905
  data: encodedDataForSend,
863
906
  type: "legacy",
864
907
  nonce: Number(nonce),
@@ -874,7 +917,7 @@ var _sendTransaction = async ({
874
917
  throw new Error("Transaction reverted");
875
918
  }
876
919
  const newTxEvents = _viem.parseEventLogs.call(void 0, {
877
- abi: _optionalChain([client, 'access', _32 => _32.chain, 'access', _33 => _33.consensusMainContract, 'optionalAccess', _34 => _34.abi]),
920
+ abi: _optionalChain([client, 'access', _44 => _44.chain, 'access', _45 => _45.consensusMainContract, 'optionalAccess', _46 => _46.abi]),
878
921
  eventName: "NewTransaction",
879
922
  logs: receipt.logs
880
923
  });
@@ -897,7 +940,7 @@ var _sendTransaction = async ({
897
940
  const nonceBigInt = typeof nonce === "bigint" ? nonce : typeof nonce === "string" ? BigInt(nonce) : BigInt(Number(nonce));
898
941
  const formattedRequest = {
899
942
  from: validatedSenderAccount.address,
900
- to: _optionalChain([client, 'access', _35 => _35.chain, 'access', _36 => _36.consensusMainContract, 'optionalAccess', _37 => _37.address]),
943
+ to: _optionalChain([client, 'access', _47 => _47.chain, 'access', _48 => _48.consensusMainContract, 'optionalAccess', _49 => _49.address]),
901
944
  data: encodedDataForSend,
902
945
  value: `0x${value.toString(16)}`,
903
946
  gas: `0x${estimatedGas.toString(16)}`,
@@ -1027,7 +1070,7 @@ var decodeTransaction = (tx) => {
1027
1070
  txData,
1028
1071
  txDataDecoded,
1029
1072
  currentTimestamp: tx.currentTimestamp.toString(),
1030
- numOfInitialValidators: _nullishCoalesce(_optionalChain([numOfInitialValidators, 'optionalAccess', _38 => _38.toString, 'call', _39 => _39()]), () => ( "0")),
1073
+ numOfInitialValidators: _nullishCoalesce(_optionalChain([numOfInitialValidators, 'optionalAccess', _50 => _50.toString, 'call', _51 => _51()]), () => ( "0")),
1031
1074
  txSlot: tx.txSlot.toString(),
1032
1075
  createdTimestamp: tx.createdTimestamp.toString(),
1033
1076
  lastVoteTimestamp: tx.lastVoteTimestamp.toString(),
@@ -1035,21 +1078,21 @@ var decodeTransaction = (tx) => {
1035
1078
  numOfRounds: tx.numOfRounds.toString(),
1036
1079
  readStateBlockRange: {
1037
1080
  ...tx.readStateBlockRange,
1038
- activationBlock: _nullishCoalesce(_optionalChain([tx, 'access', _40 => _40.readStateBlockRange, 'optionalAccess', _41 => _41.activationBlock, 'optionalAccess', _42 => _42.toString, 'call', _43 => _43()]), () => ( "0")),
1039
- processingBlock: _nullishCoalesce(_optionalChain([tx, 'access', _44 => _44.readStateBlockRange, 'optionalAccess', _45 => _45.processingBlock, 'optionalAccess', _46 => _46.toString, 'call', _47 => _47()]), () => ( "0")),
1040
- proposalBlock: _nullishCoalesce(_optionalChain([tx, 'access', _48 => _48.readStateBlockRange, 'optionalAccess', _49 => _49.proposalBlock, 'optionalAccess', _50 => _50.toString, 'call', _51 => _51()]), () => ( "0"))
1081
+ activationBlock: _nullishCoalesce(_optionalChain([tx, 'access', _52 => _52.readStateBlockRange, 'optionalAccess', _53 => _53.activationBlock, 'optionalAccess', _54 => _54.toString, 'call', _55 => _55()]), () => ( "0")),
1082
+ processingBlock: _nullishCoalesce(_optionalChain([tx, 'access', _56 => _56.readStateBlockRange, 'optionalAccess', _57 => _57.processingBlock, 'optionalAccess', _58 => _58.toString, 'call', _59 => _59()]), () => ( "0")),
1083
+ proposalBlock: _nullishCoalesce(_optionalChain([tx, 'access', _60 => _60.readStateBlockRange, 'optionalAccess', _61 => _61.proposalBlock, 'optionalAccess', _62 => _62.toString, 'call', _63 => _63()]), () => ( "0"))
1041
1084
  },
1042
1085
  statusName: _chunkW4V73RPNcjs.transactionsStatusNumberToName[String(tx.status)],
1043
1086
  resultName: _chunkW4V73RPNcjs.transactionResultNumberToName[String(tx.result)],
1044
1087
  lastRound: {
1045
1088
  ...tx.lastRound,
1046
- round: _nullishCoalesce(_optionalChain([tx, 'access', _52 => _52.lastRound, 'optionalAccess', _53 => _53.round, 'optionalAccess', _54 => _54.toString, 'call', _55 => _55()]), () => ( "0")),
1047
- leaderIndex: _nullishCoalesce(_optionalChain([tx, 'access', _56 => _56.lastRound, 'optionalAccess', _57 => _57.leaderIndex, 'optionalAccess', _58 => _58.toString, 'call', _59 => _59()]), () => ( "0")),
1048
- votesCommitted: _nullishCoalesce(_optionalChain([tx, 'access', _60 => _60.lastRound, 'optionalAccess', _61 => _61.votesCommitted, 'optionalAccess', _62 => _62.toString, 'call', _63 => _63()]), () => ( "0")),
1049
- votesRevealed: _nullishCoalesce(_optionalChain([tx, 'access', _64 => _64.lastRound, 'optionalAccess', _65 => _65.votesRevealed, 'optionalAccess', _66 => _66.toString, 'call', _67 => _67()]), () => ( "0")),
1050
- appealBond: _nullishCoalesce(_optionalChain([tx, 'access', _68 => _68.lastRound, 'optionalAccess', _69 => _69.appealBond, 'optionalAccess', _70 => _70.toString, 'call', _71 => _71()]), () => ( "0")),
1051
- rotationsLeft: _nullishCoalesce(_optionalChain([tx, 'access', _72 => _72.lastRound, 'optionalAccess', _73 => _73.rotationsLeft, 'optionalAccess', _74 => _74.toString, 'call', _75 => _75()]), () => ( "0")),
1052
- validatorVotesName: (_nullishCoalesce(_optionalChain([tx, 'access', _76 => _76.lastRound, 'optionalAccess', _77 => _77.validatorVotes]), () => ( []))).map(
1089
+ round: _nullishCoalesce(_optionalChain([tx, 'access', _64 => _64.lastRound, 'optionalAccess', _65 => _65.round, 'optionalAccess', _66 => _66.toString, 'call', _67 => _67()]), () => ( "0")),
1090
+ leaderIndex: _nullishCoalesce(_optionalChain([tx, 'access', _68 => _68.lastRound, 'optionalAccess', _69 => _69.leaderIndex, 'optionalAccess', _70 => _70.toString, 'call', _71 => _71()]), () => ( "0")),
1091
+ votesCommitted: _nullishCoalesce(_optionalChain([tx, 'access', _72 => _72.lastRound, 'optionalAccess', _73 => _73.votesCommitted, 'optionalAccess', _74 => _74.toString, 'call', _75 => _75()]), () => ( "0")),
1092
+ votesRevealed: _nullishCoalesce(_optionalChain([tx, 'access', _76 => _76.lastRound, 'optionalAccess', _77 => _77.votesRevealed, 'optionalAccess', _78 => _78.toString, 'call', _79 => _79()]), () => ( "0")),
1093
+ appealBond: _nullishCoalesce(_optionalChain([tx, 'access', _80 => _80.lastRound, 'optionalAccess', _81 => _81.appealBond, 'optionalAccess', _82 => _82.toString, 'call', _83 => _83()]), () => ( "0")),
1094
+ rotationsLeft: _nullishCoalesce(_optionalChain([tx, 'access', _84 => _84.lastRound, 'optionalAccess', _85 => _85.rotationsLeft, 'optionalAccess', _86 => _86.toString, 'call', _87 => _87()]), () => ( "0")),
1095
+ validatorVotesName: (_nullishCoalesce(_optionalChain([tx, 'access', _88 => _88.lastRound, 'optionalAccess', _89 => _89.validatorVotes]), () => ( []))).map(
1053
1096
  (vote) => _chunkW4V73RPNcjs.voteTypeNumberToName[String(vote)]
1054
1097
  )
1055
1098
  }
@@ -1131,7 +1174,7 @@ var simplifyTransactionReceipt = (tx) => {
1131
1174
  var decodeLocalnetTransaction = (tx) => {
1132
1175
  if (!tx.data) return tx;
1133
1176
  try {
1134
- const leaderReceipt = _optionalChain([tx, 'access', _78 => _78.consensus_data, 'optionalAccess', _79 => _79.leader_receipt]);
1177
+ const leaderReceipt = _optionalChain([tx, 'access', _90 => _90.consensus_data, 'optionalAccess', _91 => _91.leader_receipt]);
1135
1178
  if (leaderReceipt) {
1136
1179
  const receipts = Array.isArray(leaderReceipt) ? leaderReceipt : [leaderReceipt];
1137
1180
  receipts.forEach((receipt) => {
@@ -1162,7 +1205,7 @@ var decodeLocalnetTransaction = (tx) => {
1162
1205
  }
1163
1206
  });
1164
1207
  }
1165
- if (_optionalChain([tx, 'access', _80 => _80.data, 'optionalAccess', _81 => _81.calldata]) && typeof tx.data.calldata === "string") {
1208
+ if (_optionalChain([tx, 'access', _92 => _92.data, 'optionalAccess', _93 => _93.calldata]) && typeof tx.data.calldata === "string") {
1166
1209
  tx.data.calldata = {
1167
1210
  base64: tx.data.calldata,
1168
1211
  ...calldataToUserFriendlyJson(b64ToArray(tx.data.calldata))
@@ -1193,7 +1236,7 @@ var receiptActions = (client, publicClient) => ({
1193
1236
  const requestedStatus = _chunkW4V73RPNcjs.transactionsStatusNameToNumber[status];
1194
1237
  if (transactionStatusString === requestedStatus || status === "ACCEPTED" /* ACCEPTED */ && _chunkW4V73RPNcjs.isDecidedState.call(void 0, transactionStatusString)) {
1195
1238
  let finalTransaction = transaction;
1196
- if (client.chain.id === _chunkCX76PQR5cjs.localnet.id) {
1239
+ if (client.chain.id === _chunkMXWQMAOOcjs.localnet.id) {
1197
1240
  finalTransaction = decodeLocalnetTransaction(transaction);
1198
1241
  }
1199
1242
  if (!fullTransaction) {
@@ -1224,8 +1267,8 @@ var transactionActions = (client, publicClient) => ({
1224
1267
  return decodeLocalnetTransaction(transaction2);
1225
1268
  }
1226
1269
  const transaction = await publicClient.readContract({
1227
- address: _optionalChain([client, 'access', _82 => _82.chain, 'access', _83 => _83.consensusDataContract, 'optionalAccess', _84 => _84.address]),
1228
- abi: _optionalChain([client, 'access', _85 => _85.chain, 'access', _86 => _86.consensusDataContract, 'optionalAccess', _87 => _87.abi]),
1270
+ address: _optionalChain([client, 'access', _94 => _94.chain, 'access', _95 => _95.consensusDataContract, 'optionalAccess', _96 => _96.address]),
1271
+ abi: _optionalChain([client, 'access', _97 => _97.chain, 'access', _98 => _98.consensusDataContract, 'optionalAccess', _99 => _99.abi]),
1229
1272
  functionName: "getTransactionData",
1230
1273
  args: [
1231
1274
  hash,
@@ -1264,7 +1307,7 @@ var transactionActions = (client, publicClient) => ({
1264
1307
  },
1265
1308
  estimateTransactionGas: async (transactionParams) => {
1266
1309
  const formattedParams = {
1267
- from: transactionParams.from || _optionalChain([client, 'access', _88 => _88.account, 'optionalAccess', _89 => _89.address]),
1310
+ from: transactionParams.from || _optionalChain([client, 'access', _100 => _100.account, 'optionalAccess', _101 => _101.address]),
1268
1311
  to: transactionParams.to,
1269
1312
  data: transactionParams.data || "0x",
1270
1313
  value: transactionParams.value ? `0x${transactionParams.value.toString(16)}` : "0x0"
@@ -1285,10 +1328,10 @@ var snapID = {
1285
1328
 
1286
1329
  // src/wallet/connect.ts
1287
1330
  var networks = {
1288
- localnet: _chunkCX76PQR5cjs.localnet,
1289
- studionet: _chunkCX76PQR5cjs.studionet,
1290
- testnetAsimov: _chunkCX76PQR5cjs.testnetAsimov,
1291
- testnetBradbury: _chunkCX76PQR5cjs.testnetBradbury
1331
+ localnet: _chunkMXWQMAOOcjs.localnet,
1332
+ studionet: _chunkMXWQMAOOcjs.studionet,
1333
+ testnetAsimov: _chunkMXWQMAOOcjs.testnetAsimov,
1334
+ testnetBradbury: _chunkMXWQMAOOcjs.testnetBradbury
1292
1335
  };
1293
1336
  var connect = async (client, network = "studionet", snapSource = "npm") => {
1294
1337
  if (!window.ethereum) {
@@ -1307,7 +1350,7 @@ var connect = async (client, network = "studionet", snapSource = "npm") => {
1307
1350
  chainName: selectedNetwork.name,
1308
1351
  rpcUrls: selectedNetwork.rpcUrls.default.http,
1309
1352
  nativeCurrency: selectedNetwork.nativeCurrency,
1310
- blockExplorerUrls: [_optionalChain([selectedNetwork, 'access', _90 => _90.blockExplorers, 'optionalAccess', _91 => _91.default, 'access', _92 => _92.url])]
1353
+ blockExplorerUrls: [_optionalChain([selectedNetwork, 'access', _102 => _102.blockExplorers, 'optionalAccess', _103 => _103.default, 'access', _104 => _104.url])]
1311
1354
  };
1312
1355
  const currentChainId = await window.ethereum.request({ method: "eth_chainId" });
1313
1356
  if (currentChainId !== chainIdHex) {
@@ -1341,10 +1384,10 @@ var metamaskClient = async (snapSource = "npm") => {
1341
1384
  }
1342
1385
  const isFlask = async () => {
1343
1386
  try {
1344
- const clientVersion = await _optionalChain([window, 'access', _93 => _93.ethereum, 'optionalAccess', _94 => _94.request, 'call', _95 => _95({
1387
+ const clientVersion = await _optionalChain([window, 'access', _105 => _105.ethereum, 'optionalAccess', _106 => _106.request, 'call', _107 => _107({
1345
1388
  method: "web3_clientVersion"
1346
1389
  })]);
1347
- return _optionalChain([clientVersion, 'optionalAccess', _96 => _96.includes, 'call', _97 => _97("flask")]);
1390
+ return _optionalChain([clientVersion, 'optionalAccess', _108 => _108.includes, 'call', _109 => _109("flask")]);
1348
1391
  } catch (error) {
1349
1392
  console.error("Error detecting Flask:", error);
1350
1393
  return false;
@@ -1352,7 +1395,7 @@ var metamaskClient = async (snapSource = "npm") => {
1352
1395
  };
1353
1396
  const installedSnaps = async () => {
1354
1397
  try {
1355
- return await _optionalChain([window, 'access', _98 => _98.ethereum, 'optionalAccess', _99 => _99.request, 'call', _100 => _100({
1398
+ return await _optionalChain([window, 'access', _110 => _110.ethereum, 'optionalAccess', _111 => _111.request, 'call', _112 => _112({
1356
1399
  method: "wallet_getSnaps"
1357
1400
  })]);
1358
1401
  } catch (error) {
@@ -1404,7 +1447,7 @@ function formatStakingAmount(amount) {
1404
1447
  // src/staking/actions.ts
1405
1448
  var FALLBACK_GAS = 1000000n;
1406
1449
  var GAS_BUFFER_MULTIPLIER = 2n;
1407
- var COMBINED_ERROR_ABI = [..._chunkCX76PQR5cjs.STAKING_ABI, ..._chunkCX76PQR5cjs.VALIDATOR_WALLET_ABI];
1450
+ var COMBINED_ERROR_ABI = [..._chunkMXWQMAOOcjs.STAKING_ABI, ..._chunkMXWQMAOOcjs.VALIDATOR_WALLET_ABI];
1408
1451
  function extractRevertReason(err) {
1409
1452
  if (err instanceof _viem.BaseError) {
1410
1453
  const rawError = err.walk((e) => e instanceof _viem.RawContractError);
@@ -1439,7 +1482,7 @@ function extractRevertReason(err) {
1439
1482
  }
1440
1483
  const revertError = err.walk((e) => e instanceof _viem.ContractFunctionRevertedError);
1441
1484
  if (revertError instanceof _viem.ContractFunctionRevertedError) {
1442
- if (_optionalChain([revertError, 'access', _101 => _101.data, 'optionalAccess', _102 => _102.errorName])) {
1485
+ if (_optionalChain([revertError, 'access', _113 => _113.data, 'optionalAccess', _114 => _114.errorName])) {
1443
1486
  return revertError.data.errorName;
1444
1487
  }
1445
1488
  return revertError.reason || "Unknown reason";
@@ -1527,7 +1570,7 @@ var stakingActions = (client, publicClient) => {
1527
1570
  };
1528
1571
  const getStakingAddress = () => {
1529
1572
  const stakingConfig = client.chain.stakingContract;
1530
- if (!_optionalChain([stakingConfig, 'optionalAccess', _103 => _103.address]) || stakingConfig.address === "0x0000000000000000000000000000000000000000") {
1573
+ if (!_optionalChain([stakingConfig, 'optionalAccess', _115 => _115.address]) || stakingConfig.address === "0x0000000000000000000000000000000000000000") {
1531
1574
  throw new Error("Staking is not supported on studio-based networks. Use testnet-asimov for staking operations.");
1532
1575
  }
1533
1576
  return stakingConfig.address;
@@ -1536,7 +1579,7 @@ var stakingActions = (client, publicClient) => {
1536
1579
  const address = getStakingAddress();
1537
1580
  return _viem.getContract.call(void 0, {
1538
1581
  address,
1539
- abi: _chunkCX76PQR5cjs.STAKING_ABI,
1582
+ abi: _chunkMXWQMAOOcjs.STAKING_ABI,
1540
1583
  client: { public: publicClient, wallet: client }
1541
1584
  });
1542
1585
  };
@@ -1544,7 +1587,7 @@ var stakingActions = (client, publicClient) => {
1544
1587
  const address = getStakingAddress();
1545
1588
  return _viem.getContract.call(void 0, {
1546
1589
  address,
1547
- abi: _chunkCX76PQR5cjs.STAKING_ABI,
1590
+ abi: _chunkMXWQMAOOcjs.STAKING_ABI,
1548
1591
  client: publicClient
1549
1592
  });
1550
1593
  };
@@ -1553,11 +1596,11 @@ var stakingActions = (client, publicClient) => {
1553
1596
  const amount = parseStakingAmount(options.amount);
1554
1597
  const stakingAddress = getStakingAddress();
1555
1598
  const data = options.operator ? _viem.encodeFunctionData.call(void 0, {
1556
- abi: _chunkCX76PQR5cjs.STAKING_ABI,
1599
+ abi: _chunkMXWQMAOOcjs.STAKING_ABI,
1557
1600
  functionName: "validatorJoin",
1558
1601
  args: [options.operator]
1559
1602
  }) : _viem.encodeFunctionData.call(void 0, {
1560
- abi: _chunkCX76PQR5cjs.STAKING_ABI,
1603
+ abi: _chunkMXWQMAOOcjs.STAKING_ABI,
1561
1604
  functionName: "validatorJoin"
1562
1605
  });
1563
1606
  const result = await executeWrite({ to: stakingAddress, data, value: amount });
@@ -1566,7 +1609,7 @@ var stakingActions = (client, publicClient) => {
1566
1609
  let eventFound = false;
1567
1610
  for (const log of receipt.logs) {
1568
1611
  try {
1569
- const decoded = _viem.decodeEventLog.call(void 0, { abi: _chunkCX76PQR5cjs.STAKING_ABI, data: log.data, topics: log.topics });
1612
+ const decoded = _viem.decodeEventLog.call(void 0, { abi: _chunkMXWQMAOOcjs.STAKING_ABI, data: log.data, topics: log.topics });
1570
1613
  if (decoded.eventName === "ValidatorJoin") {
1571
1614
  validatorWallet = decoded.args.validator;
1572
1615
  eventFound = true;
@@ -1593,7 +1636,7 @@ var stakingActions = (client, publicClient) => {
1593
1636
  validatorDeposit: async (options) => {
1594
1637
  const amount = parseStakingAmount(options.amount);
1595
1638
  const data = _viem.encodeFunctionData.call(void 0, {
1596
- abi: _chunkCX76PQR5cjs.STAKING_ABI,
1639
+ abi: _chunkMXWQMAOOcjs.STAKING_ABI,
1597
1640
  functionName: "validatorDeposit"
1598
1641
  });
1599
1642
  return executeWrite({ to: getStakingAddress(), data, value: amount });
@@ -1601,19 +1644,19 @@ var stakingActions = (client, publicClient) => {
1601
1644
  validatorExit: async (options) => {
1602
1645
  const shares = typeof options.shares === "string" ? BigInt(options.shares) : options.shares;
1603
1646
  const data = _viem.encodeFunctionData.call(void 0, {
1604
- abi: _chunkCX76PQR5cjs.STAKING_ABI,
1647
+ abi: _chunkMXWQMAOOcjs.STAKING_ABI,
1605
1648
  functionName: "validatorExit",
1606
1649
  args: [shares]
1607
1650
  });
1608
1651
  return executeWrite({ to: getStakingAddress(), data });
1609
1652
  },
1610
1653
  validatorClaim: async (options) => {
1611
- if (!_optionalChain([options, 'optionalAccess', _104 => _104.validator]) && !client.account) {
1654
+ if (!_optionalChain([options, 'optionalAccess', _116 => _116.validator]) && !client.account) {
1612
1655
  throw new Error("Either provide validator address or initialize client with an account");
1613
1656
  }
1614
- const validatorAddress = _optionalChain([options, 'optionalAccess', _105 => _105.validator]) || client.account.address;
1657
+ const validatorAddress = _optionalChain([options, 'optionalAccess', _117 => _117.validator]) || client.account.address;
1615
1658
  const data = _viem.encodeFunctionData.call(void 0, {
1616
- abi: _chunkCX76PQR5cjs.STAKING_ABI,
1659
+ abi: _chunkMXWQMAOOcjs.STAKING_ABI,
1617
1660
  functionName: "validatorClaim",
1618
1661
  args: [validatorAddress]
1619
1662
  });
@@ -1622,7 +1665,7 @@ var stakingActions = (client, publicClient) => {
1622
1665
  },
1623
1666
  validatorPrime: async (options) => {
1624
1667
  const data = _viem.encodeFunctionData.call(void 0, {
1625
- abi: _chunkCX76PQR5cjs.STAKING_ABI,
1668
+ abi: _chunkMXWQMAOOcjs.STAKING_ABI,
1626
1669
  functionName: "validatorPrime",
1627
1670
  args: [options.validator]
1628
1671
  });
@@ -1630,7 +1673,7 @@ var stakingActions = (client, publicClient) => {
1630
1673
  },
1631
1674
  setOperator: async (options) => {
1632
1675
  const data = _viem.encodeFunctionData.call(void 0, {
1633
- abi: _chunkCX76PQR5cjs.VALIDATOR_WALLET_ABI,
1676
+ abi: _chunkMXWQMAOOcjs.VALIDATOR_WALLET_ABI,
1634
1677
  functionName: "setOperator",
1635
1678
  args: [options.operator]
1636
1679
  });
@@ -1646,7 +1689,7 @@ var stakingActions = (client, publicClient) => {
1646
1689
  }
1647
1690
  }
1648
1691
  const data = _viem.encodeFunctionData.call(void 0, {
1649
- abi: _chunkCX76PQR5cjs.VALIDATOR_WALLET_ABI,
1692
+ abi: _chunkMXWQMAOOcjs.VALIDATOR_WALLET_ABI,
1650
1693
  functionName: "setIdentity",
1651
1694
  args: [
1652
1695
  options.moniker,
@@ -1665,7 +1708,7 @@ var stakingActions = (client, publicClient) => {
1665
1708
  delegatorJoin: async (options) => {
1666
1709
  const amount = parseStakingAmount(options.amount);
1667
1710
  const data = _viem.encodeFunctionData.call(void 0, {
1668
- abi: _chunkCX76PQR5cjs.STAKING_ABI,
1711
+ abi: _chunkMXWQMAOOcjs.STAKING_ABI,
1669
1712
  functionName: "delegatorJoin",
1670
1713
  args: [options.validator]
1671
1714
  });
@@ -1681,7 +1724,7 @@ var stakingActions = (client, publicClient) => {
1681
1724
  delegatorExit: async (options) => {
1682
1725
  const shares = typeof options.shares === "string" ? BigInt(options.shares) : options.shares;
1683
1726
  const data = _viem.encodeFunctionData.call(void 0, {
1684
- abi: _chunkCX76PQR5cjs.STAKING_ABI,
1727
+ abi: _chunkMXWQMAOOcjs.STAKING_ABI,
1685
1728
  functionName: "delegatorExit",
1686
1729
  args: [options.validator, shares]
1687
1730
  });
@@ -1693,7 +1736,7 @@ var stakingActions = (client, publicClient) => {
1693
1736
  }
1694
1737
  const delegatorAddress = options.delegator || client.account.address;
1695
1738
  const data = _viem.encodeFunctionData.call(void 0, {
1696
- abi: _chunkCX76PQR5cjs.STAKING_ABI,
1739
+ abi: _chunkMXWQMAOOcjs.STAKING_ABI,
1697
1740
  functionName: "delegatorClaim",
1698
1741
  args: [delegatorAddress, options.validator]
1699
1742
  });
@@ -1711,7 +1754,7 @@ var stakingActions = (client, publicClient) => {
1711
1754
  }
1712
1755
  const walletContract = _viem.getContract.call(void 0, {
1713
1756
  address: validator,
1714
- abi: _chunkCX76PQR5cjs.VALIDATOR_WALLET_ABI,
1757
+ abi: _chunkMXWQMAOOcjs.VALIDATOR_WALLET_ABI,
1715
1758
  client: publicClient
1716
1759
  });
1717
1760
  const [view, owner, operator, identityRaw, currentEpoch] = await Promise.all([
@@ -2006,8 +2049,8 @@ var getCustomTransportConfig = (config, chainConfig) => {
2006
2049
  }
2007
2050
  };
2008
2051
  };
2009
- var createClient = (config = { chain: _chunkCX76PQR5cjs.localnet }) => {
2010
- const chainConfig = config.chain || _chunkCX76PQR5cjs.localnet;
2052
+ var createClient = (config = { chain: _chunkMXWQMAOOcjs.localnet }) => {
2053
+ const chainConfig = config.chain || _chunkMXWQMAOOcjs.localnet;
2011
2054
  if (config.endpoint) {
2012
2055
  chainConfig.rpcUrls.default.http = [config.endpoint];
2013
2056
  }
@@ -2144,4 +2187,4 @@ function validateValueAgainstType(value, type) {
2144
2187
 
2145
2188
 
2146
2189
 
2147
- exports.abi = abi_exports; exports.buildGenVmPositionalArgs = buildGenVmPositionalArgs; exports.chains = _chunkCX76PQR5cjs.chains_exports; exports.createAccount = createAccount; exports.createClient = createClient; exports.decodeInputData = decodeInputData; exports.decodeLocalnetTransaction = decodeLocalnetTransaction; exports.decodeTransaction = decodeTransaction; exports.formatStakingAmount = formatStakingAmount; exports.generatePrivateKey = generatePrivateKey; exports.parseStakingAmount = parseStakingAmount; exports.simplifyTransactionReceipt = simplifyTransactionReceipt;
2190
+ exports.abi = abi_exports; exports.buildGenVmPositionalArgs = buildGenVmPositionalArgs; exports.chains = _chunkMXWQMAOOcjs.chains_exports; exports.createAccount = createAccount; exports.createClient = createClient; exports.decodeInputData = decodeInputData; exports.decodeLocalnetTransaction = decodeLocalnetTransaction; exports.decodeTransaction = decodeTransaction; exports.formatStakingAmount = formatStakingAmount; exports.generatePrivateKey = generatePrivateKey; exports.parseStakingAmount = parseStakingAmount; exports.simplifyTransactionReceipt = simplifyTransactionReceipt;
package/dist/index.d.cts CHANGED
@@ -1,11 +1,11 @@
1
1
  import * as viem from 'viem';
2
2
  import { Account, Address, Hex } from 'viem';
3
- import { G as GenLayerChain } from './chains-B7B7UXdn.cjs';
4
- import { G as GenLayerClient, D as DecodedDeployData, a as DecodedCallData, b as GenLayerRawTransaction, c as GenLayerTransaction, C as CalldataEncodable, T as TransactionDataElement, S as STAKING_ABI, V as VALIDATOR_WALLET_ABI, d as ContractSchema } from './index-Dja_Xmq_.cjs';
3
+ import { G as GenLayerChain } from './chains-DqSbucSW.cjs';
4
+ import { G as GenLayerClient, D as DecodedDeployData, a as DecodedCallData, b as GenLayerRawTransaction, c as GenLayerTransaction, C as CalldataEncodable, T as TransactionDataElement, S as STAKING_ABI, V as VALIDATOR_WALLET_ABI, d as ContractSchema } from './index-DIh568LH.cjs';
5
5
  import * as abitype from 'abitype';
6
6
  import * as viem__types_types_authorization from 'viem/_types/types/authorization';
7
7
  import * as viem_accounts from 'viem/accounts';
8
- export { i as chains } from './index-DjR-MFPr.cjs';
8
+ export { i as chains } from './index-BvRcfXce.cjs';
9
9
 
10
10
  interface ClientConfig {
11
11
  chain?: {
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import * as viem from 'viem';
2
2
  import { Account, Address, Hex } from 'viem';
3
- import { G as GenLayerChain } from './chains-B7B7UXdn.js';
4
- import { G as GenLayerClient, D as DecodedDeployData, a as DecodedCallData, b as GenLayerRawTransaction, c as GenLayerTransaction, C as CalldataEncodable, T as TransactionDataElement, S as STAKING_ABI, V as VALIDATOR_WALLET_ABI, d as ContractSchema } from './index-CsIdmK96.js';
3
+ import { G as GenLayerChain } from './chains-DqSbucSW.js';
4
+ import { G as GenLayerClient, D as DecodedDeployData, a as DecodedCallData, b as GenLayerRawTransaction, c as GenLayerTransaction, C as CalldataEncodable, T as TransactionDataElement, S as STAKING_ABI, V as VALIDATOR_WALLET_ABI, d as ContractSchema } from './index-BJ_hU-bk.js';
5
5
  import * as abitype from 'abitype';
6
6
  import * as viem__types_types_authorization from 'viem/_types/types/authorization';
7
7
  import * as viem_accounts from 'viem/accounts';
8
- export { i as chains } from './index-HRqj9M3K.js';
8
+ export { i as chains } from './index-BZj9d30J.js';
9
9
 
10
10
  interface ClientConfig {
11
11
  chain?: {
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  studionet,
7
7
  testnetAsimov,
8
8
  testnetBradbury
9
- } from "./chunk-T3O6IXYQ.js";
9
+ } from "./chunk-SHD4AYCN.js";
10
10
  import {
11
11
  CalldataAddress,
12
12
  isDecidedState,
@@ -688,15 +688,58 @@ var contractActions = (client, publicClient) => {
688
688
  senderAccount
689
689
  });
690
690
  },
691
+ getMinAppealBond: async (args) => {
692
+ const { txId } = args;
693
+ if (!client.chain.feeManagerContract?.address || !client.chain.roundsStorageContract?.address) {
694
+ throw new Error("Appeal bond calculation not supported on this chain (missing feeManagerContract/roundsStorageContract)");
695
+ }
696
+ const roundNumber = await publicClient.readContract({
697
+ address: client.chain.roundsStorageContract.address,
698
+ abi: client.chain.roundsStorageContract.abi,
699
+ functionName: "getRoundNumber",
700
+ args: [txId]
701
+ });
702
+ const transaction = await client.getTransaction({ hash: txId });
703
+ const txStatus = Number(transaction.status);
704
+ const minBond = await publicClient.readContract({
705
+ address: client.chain.feeManagerContract.address,
706
+ abi: client.chain.feeManagerContract.abi,
707
+ functionName: "calculateMinAppealBond",
708
+ args: [txId, roundNumber, txStatus]
709
+ });
710
+ return minBond;
711
+ },
691
712
  appealTransaction: async (args) => {
692
713
  const { account, txId } = args;
714
+ let { value } = args;
715
+ if (value === void 0) {
716
+ if (client.chain.feeManagerContract?.address && client.chain.roundsStorageContract?.address) {
717
+ const roundNumber = await publicClient.readContract({
718
+ address: client.chain.roundsStorageContract.address,
719
+ abi: client.chain.roundsStorageContract.abi,
720
+ functionName: "getRoundNumber",
721
+ args: [txId]
722
+ });
723
+ const transaction = await client.getTransaction({ hash: txId });
724
+ const txStatus = Number(transaction.status);
725
+ value = await publicClient.readContract({
726
+ address: client.chain.feeManagerContract.address,
727
+ abi: client.chain.feeManagerContract.abi,
728
+ functionName: "calculateMinAppealBond",
729
+ args: [txId, roundNumber, txStatus]
730
+ });
731
+ } else {
732
+ value = 0n;
733
+ }
734
+ }
693
735
  const senderAccount = account || client.account;
694
736
  const encodedData = _encodeSubmitAppealData({ client, txId });
695
737
  return _sendTransaction({
696
738
  client,
697
739
  publicClient,
698
740
  encodedData,
699
- senderAccount
741
+ senderAccount,
742
+ value
700
743
  });
701
744
  }
702
745
  };
@@ -1,3 +1,3 @@
1
1
  export { Account, Address } from 'viem';
2
- export { I as BannedValidatorInfo, e as CalldataAddress, C as CalldataEncodable, j as ContractMethod, i as ContractMethodBase, g as ContractParamsArraySchemaElement, h as ContractParamsSchema, d as ContractSchema, o as DECIDED_STATES, a as DecodedCallData, D as DecodedDeployData, a4 as DelegatorClaimOptions, a3 as DelegatorExitOptions, a2 as DelegatorJoinOptions, U as DelegatorJoinResult, K as EpochData, O as EpochInfo, G as GenLayerClient, f as GenLayerMethod, b as GenLayerRawTransaction, c as GenLayerTransaction, H as Hash, L as LeaderReceipt, M as MethodDescription, N as Network, P as PendingDeposit, F as PendingWithdrawal, a1 as SetIdentityOptions, a0 as SetOperatorOptions, y as SnapSource, J as StakeInfo, a5 as StakingActions, z as StakingContract, Q as StakingTransactionResult, k as TransactionHash, x as TransactionHashVariant, m as TransactionResult, r as TransactionResultNameToNumber, l as TransactionStatus, w as TransactionType, _ as ValidatorClaimOptions, Y as ValidatorDepositOptions, Z as ValidatorExitOptions, B as ValidatorIdentity, E as ValidatorInfo, X as ValidatorJoinOptions, R as ValidatorJoinResult, $ as ValidatorPrimeOptions, A as ValidatorView, s as VoteType, W as WithdrawalCommit, p as isDecidedState, q as transactionResultNumberToName, n as transactionsStatusNameToNumber, t as transactionsStatusNumberToName, u as voteTypeNameToNumber, v as voteTypeNumberToName } from '../index-Dja_Xmq_.cjs';
3
- export { G as GenLayerChain } from '../chains-B7B7UXdn.cjs';
2
+ export { I as BannedValidatorInfo, e as CalldataAddress, C as CalldataEncodable, j as ContractMethod, i as ContractMethodBase, g as ContractParamsArraySchemaElement, h as ContractParamsSchema, d as ContractSchema, o as DECIDED_STATES, a as DecodedCallData, D as DecodedDeployData, a4 as DelegatorClaimOptions, a3 as DelegatorExitOptions, a2 as DelegatorJoinOptions, U as DelegatorJoinResult, K as EpochData, O as EpochInfo, G as GenLayerClient, f as GenLayerMethod, b as GenLayerRawTransaction, c as GenLayerTransaction, H as Hash, L as LeaderReceipt, M as MethodDescription, N as Network, P as PendingDeposit, F as PendingWithdrawal, a1 as SetIdentityOptions, a0 as SetOperatorOptions, y as SnapSource, J as StakeInfo, a5 as StakingActions, z as StakingContract, Q as StakingTransactionResult, k as TransactionHash, x as TransactionHashVariant, m as TransactionResult, r as TransactionResultNameToNumber, l as TransactionStatus, w as TransactionType, _ as ValidatorClaimOptions, Y as ValidatorDepositOptions, Z as ValidatorExitOptions, B as ValidatorIdentity, E as ValidatorInfo, X as ValidatorJoinOptions, R as ValidatorJoinResult, $ as ValidatorPrimeOptions, A as ValidatorView, s as VoteType, W as WithdrawalCommit, p as isDecidedState, q as transactionResultNumberToName, n as transactionsStatusNameToNumber, t as transactionsStatusNumberToName, u as voteTypeNameToNumber, v as voteTypeNumberToName } from '../index-DIh568LH.cjs';
3
+ export { G as GenLayerChain } from '../chains-DqSbucSW.cjs';
@@ -1,3 +1,3 @@
1
1
  export { Account, Address } from 'viem';
2
- export { I as BannedValidatorInfo, e as CalldataAddress, C as CalldataEncodable, j as ContractMethod, i as ContractMethodBase, g as ContractParamsArraySchemaElement, h as ContractParamsSchema, d as ContractSchema, o as DECIDED_STATES, a as DecodedCallData, D as DecodedDeployData, a4 as DelegatorClaimOptions, a3 as DelegatorExitOptions, a2 as DelegatorJoinOptions, U as DelegatorJoinResult, K as EpochData, O as EpochInfo, G as GenLayerClient, f as GenLayerMethod, b as GenLayerRawTransaction, c as GenLayerTransaction, H as Hash, L as LeaderReceipt, M as MethodDescription, N as Network, P as PendingDeposit, F as PendingWithdrawal, a1 as SetIdentityOptions, a0 as SetOperatorOptions, y as SnapSource, J as StakeInfo, a5 as StakingActions, z as StakingContract, Q as StakingTransactionResult, k as TransactionHash, x as TransactionHashVariant, m as TransactionResult, r as TransactionResultNameToNumber, l as TransactionStatus, w as TransactionType, _ as ValidatorClaimOptions, Y as ValidatorDepositOptions, Z as ValidatorExitOptions, B as ValidatorIdentity, E as ValidatorInfo, X as ValidatorJoinOptions, R as ValidatorJoinResult, $ as ValidatorPrimeOptions, A as ValidatorView, s as VoteType, W as WithdrawalCommit, p as isDecidedState, q as transactionResultNumberToName, n as transactionsStatusNameToNumber, t as transactionsStatusNumberToName, u as voteTypeNameToNumber, v as voteTypeNumberToName } from '../index-CsIdmK96.js';
3
- export { G as GenLayerChain } from '../chains-B7B7UXdn.js';
2
+ export { I as BannedValidatorInfo, e as CalldataAddress, C as CalldataEncodable, j as ContractMethod, i as ContractMethodBase, g as ContractParamsArraySchemaElement, h as ContractParamsSchema, d as ContractSchema, o as DECIDED_STATES, a as DecodedCallData, D as DecodedDeployData, a4 as DelegatorClaimOptions, a3 as DelegatorExitOptions, a2 as DelegatorJoinOptions, U as DelegatorJoinResult, K as EpochData, O as EpochInfo, G as GenLayerClient, f as GenLayerMethod, b as GenLayerRawTransaction, c as GenLayerTransaction, H as Hash, L as LeaderReceipt, M as MethodDescription, N as Network, P as PendingDeposit, F as PendingWithdrawal, a1 as SetIdentityOptions, a0 as SetOperatorOptions, y as SnapSource, J as StakeInfo, a5 as StakingActions, z as StakingContract, Q as StakingTransactionResult, k as TransactionHash, x as TransactionHashVariant, m as TransactionResult, r as TransactionResultNameToNumber, l as TransactionStatus, w as TransactionType, _ as ValidatorClaimOptions, Y as ValidatorDepositOptions, Z as ValidatorExitOptions, B as ValidatorIdentity, E as ValidatorInfo, X as ValidatorJoinOptions, R as ValidatorJoinResult, $ as ValidatorPrimeOptions, A as ValidatorView, s as VoteType, W as WithdrawalCommit, p as isDecidedState, q as transactionResultNumberToName, n as transactionsStatusNameToNumber, t as transactionsStatusNumberToName, u as voteTypeNameToNumber, v as voteTypeNumberToName } from '../index-BJ_hU-bk.js';
3
+ export { G as GenLayerChain } from '../chains-DqSbucSW.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "genlayer-js",
3
3
  "type": "module",
4
- "version": "0.21.3",
4
+ "version": "0.21.4",
5
5
  "description": "GenLayer JavaScript SDK",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",