genlayer-js 0.27.8 → 0.28.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.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-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-9P6HoP_s.cjs';
3
+ import { G as GenLayerChain } from './chains-D6DgvIVA.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-DQCfqVjw.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-BvRcfXce.cjs';
8
+ export { i as chains } from './index-_c6eHw3s.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-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-Bf1V-aai.js';
3
+ import { G as GenLayerChain } from './chains-D6DgvIVA.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-DDgbU3hK.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-BZj9d30J.js';
8
+ export { i as chains } from './index-BCPb0x30.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-C4Z24PT6.js";
9
+ } from "./chunk-SGAVFNGA.js";
10
10
  import {
11
11
  CalldataAddress,
12
12
  executionResultNumberToName,
@@ -533,7 +533,7 @@ var contractActions = (client, publicClient) => {
533
533
  /** Retrieves the source code of a deployed contract. Localnet only. */
534
534
  getContractCode: async (address) => {
535
535
  if (client.chain.id !== localnet.id) {
536
- throw new Error("Getting contract code is not supported on this network");
536
+ throw new Error(`getContractCode is only available on localnet (current chain: ${client.chain.name})`);
537
537
  }
538
538
  const result = await client.request({
539
539
  method: "gen_getContractCode",
@@ -545,7 +545,7 @@ var contractActions = (client, publicClient) => {
545
545
  /** Gets the schema (methods and constructor) of a deployed contract. Localnet only. */
546
546
  getContractSchema: async (address) => {
547
547
  if (client.chain.id !== localnet.id) {
548
- throw new Error("Contract schema is not supported on this network");
548
+ throw new Error(`getContractSchema is only available on localnet (current chain: ${client.chain.name})`);
549
549
  }
550
550
  const schema = await client.request({
551
551
  method: "gen_getContractSchema",
@@ -556,7 +556,7 @@ var contractActions = (client, publicClient) => {
556
556
  /** Generates a schema for contract code without deploying it. Localnet only. */
557
557
  getContractSchemaForCode: async (contractCode) => {
558
558
  if (client.chain.id !== localnet.id) {
559
- throw new Error("Contract schema is not supported on this network");
559
+ throw new Error(`getContractSchema is only available on localnet (current chain: ${client.chain.name})`);
560
560
  }
561
561
  const schema = await client.request({
562
562
  method: "gen_getContractSchemaForCode",
@@ -718,6 +718,54 @@ var contractActions = (client, publicClient) => {
718
718
  });
719
719
  return minBond;
720
720
  },
721
+ /** Returns the current consensus round number for a transaction. */
722
+ getRoundNumber: async (args) => {
723
+ if (!client.chain.roundsStorageContract?.address) {
724
+ throw new Error("getRoundNumber not supported on this chain (missing roundsStorageContract)");
725
+ }
726
+ return publicClient.readContract({
727
+ address: client.chain.roundsStorageContract.address,
728
+ abi: client.chain.roundsStorageContract.abi,
729
+ functionName: "getRoundNumber",
730
+ args: [args.txId]
731
+ });
732
+ },
733
+ /** Returns detailed data for a specific consensus round. */
734
+ getRoundData: async (args) => {
735
+ if (!client.chain.roundsStorageContract?.address) {
736
+ throw new Error("getRoundData not supported on this chain (missing roundsStorageContract)");
737
+ }
738
+ return publicClient.readContract({
739
+ address: client.chain.roundsStorageContract.address,
740
+ abi: client.chain.roundsStorageContract.abi,
741
+ functionName: "getRoundData",
742
+ args: [args.txId, args.round]
743
+ });
744
+ },
745
+ /** Returns the current round number and its data for a transaction. */
746
+ getLastRoundData: async (args) => {
747
+ if (!client.chain.roundsStorageContract?.address) {
748
+ throw new Error("getLastRoundData not supported on this chain (missing roundsStorageContract)");
749
+ }
750
+ return publicClient.readContract({
751
+ address: client.chain.roundsStorageContract.address,
752
+ abi: client.chain.roundsStorageContract.abi,
753
+ functionName: "getLastRoundData",
754
+ args: [args.txId]
755
+ });
756
+ },
757
+ /** Checks if a transaction can be appealed. */
758
+ canAppeal: async (args) => {
759
+ if (!client.chain.appealsContract?.address) {
760
+ throw new Error("canAppeal not supported on this chain (missing appealsContract)");
761
+ }
762
+ return publicClient.readContract({
763
+ address: client.chain.appealsContract.address,
764
+ abi: client.chain.appealsContract.abi,
765
+ functionName: "canAppeal",
766
+ args: [args.txId]
767
+ });
768
+ },
721
769
  /** Appeals a consensus transaction to trigger a new round of validation. */
722
770
  appealTransaction: async (args) => {
723
771
  const { account, txId } = args;
@@ -744,13 +792,61 @@ var contractActions = (client, publicClient) => {
744
792
  }
745
793
  const senderAccount = account || client.account;
746
794
  const encodedData = _encodeSubmitAppealData({ client, txId });
747
- return _sendTransaction({
748
- client,
749
- publicClient,
750
- encodedData,
751
- senderAccount,
752
- value
753
- });
795
+ const validatedAccount = validateAccount(senderAccount);
796
+ if (!client.chain.consensusMainContract?.address) {
797
+ throw new Error("Consensus main contract not initialized.");
798
+ }
799
+ const nonce = await client.getCurrentNonce({ address: validatedAccount.address });
800
+ let estimatedGas;
801
+ try {
802
+ estimatedGas = await client.estimateTransactionGas({
803
+ to: client.chain.consensusMainContract.address,
804
+ data: encodedData,
805
+ value,
806
+ nonce
807
+ });
808
+ } catch (err) {
809
+ console.error("Gas estimation failed, using default 200_000:", err);
810
+ estimatedGas = 200000n;
811
+ }
812
+ const gasPriceHex = await client.request({ method: "eth_gasPrice" });
813
+ const txRequest = {
814
+ account: validatedAccount,
815
+ to: client.chain.consensusMainContract.address,
816
+ data: encodedData,
817
+ value,
818
+ gas: estimatedGas,
819
+ gasPrice: BigInt(gasPriceHex),
820
+ nonce,
821
+ chainId: client.chain.id
822
+ };
823
+ if (validatedAccount.type === "local") {
824
+ if (!validatedAccount.signTransaction) {
825
+ throw new Error("Local account does not support signTransaction.");
826
+ }
827
+ const serializedTransaction = await validatedAccount.signTransaction(txRequest);
828
+ const evmHash = await client.sendRawTransaction({ serializedTransaction });
829
+ const receipt = await publicClient.waitForTransactionReceipt({ hash: evmHash });
830
+ if (receipt.status === "reverted") {
831
+ throw new Error(`Appeal reverted: EVM tx ${evmHash}`);
832
+ }
833
+ } else {
834
+ const evmHash = await client.request({
835
+ method: "eth_sendTransaction",
836
+ params: [{
837
+ from: validatedAccount.address,
838
+ to: client.chain.consensusMainContract.address,
839
+ data: encodedData,
840
+ value: value ? `0x${value.toString(16)}` : void 0,
841
+ gas: `0x${estimatedGas.toString(16)}`
842
+ }]
843
+ });
844
+ const receipt = await publicClient.waitForTransactionReceipt({ hash: evmHash });
845
+ if (receipt.status === "reverted") {
846
+ throw new Error(`Appeal reverted: EVM tx ${evmHash}`);
847
+ }
848
+ }
849
+ return txId;
754
850
  }
755
851
  };
756
852
  };
@@ -762,6 +858,17 @@ var validateAccount = (Account4) => {
762
858
  }
763
859
  return Account4;
764
860
  };
861
+ var CREATED_TRANSACTION_EVENT_ABI = [
862
+ {
863
+ anonymous: false,
864
+ inputs: [
865
+ { indexed: true, internalType: "bytes32", name: "txId", type: "bytes32" },
866
+ { indexed: false, internalType: "uint256", name: "txSlot", type: "uint256" }
867
+ ],
868
+ name: "CreatedTransaction",
869
+ type: "event"
870
+ }
871
+ ];
765
872
  var ADD_TRANSACTION_ABI_V5 = [
766
873
  {
767
874
  type: "function",
@@ -876,6 +983,25 @@ var isAddTransactionAbiMismatchError = (error) => {
876
983
  ].filter(Boolean).join(" ").toLowerCase();
877
984
  return errorMessage.includes("invalid pointer in tuple") || errorMessage.includes("invalid pointer") || errorMessage.includes("could not decode") || errorMessage.includes("invalid arrayify value") || errorMessage.includes("types/value length mismatch");
878
985
  };
986
+ var extractTxIdFromLogs = (client, logs) => {
987
+ const newTxEvents = parseEventLogs({
988
+ abi: client.chain.consensusMainContract?.abi,
989
+ eventName: "NewTransaction",
990
+ logs
991
+ });
992
+ if (newTxEvents.length > 0) {
993
+ return newTxEvents[0].args["txId"];
994
+ }
995
+ const createdTxEvents = parseEventLogs({
996
+ abi: CREATED_TRANSACTION_EVENT_ABI,
997
+ eventName: "CreatedTransaction",
998
+ logs
999
+ });
1000
+ if (createdTxEvents.length > 0) {
1001
+ return createdTxEvents[0].args["txId"];
1002
+ }
1003
+ return null;
1004
+ };
879
1005
  var _sendTransaction = async ({
880
1006
  client,
881
1007
  publicClient,
@@ -885,7 +1011,7 @@ var _sendTransaction = async ({
885
1011
  value = 0n
886
1012
  }) => {
887
1013
  if (!client.chain.consensusMainContract?.address) {
888
- throw new Error("Consensus main contract not initialized. Please ensure client is properly initialized.");
1014
+ throw new Error(`Consensus main contract address not found in chain config for "${client.chain.name}".`);
889
1015
  }
890
1016
  const validatedSenderAccount = validateAccount(senderAccount);
891
1017
  const nonce = await client.getCurrentNonce({ address: validatedSenderAccount.address });
@@ -904,7 +1030,7 @@ var _sendTransaction = async ({
904
1030
  }
905
1031
  if (validatedSenderAccount?.type === "local") {
906
1032
  if (!validatedSenderAccount?.signTransaction) {
907
- throw new Error("Account does not support signTransaction");
1033
+ throw new Error("Local account does not support signTransaction. Use a private key account created via privateKeyToAccount().");
908
1034
  }
909
1035
  const gasPriceHex2 = await client.request({
910
1036
  method: "eth_gasPrice"
@@ -924,17 +1050,15 @@ var _sendTransaction = async ({
924
1050
  const txHash = await client.sendRawTransaction({ serializedTransaction });
925
1051
  const receipt = await publicClient.waitForTransactionReceipt({ hash: txHash });
926
1052
  if (receipt.status === "reverted") {
927
- throw new Error("Transaction reverted");
1053
+ throw new Error(`Transaction reverted: EVM tx ${txHash} to consensus contract ${client.chain.consensusMainContract?.address} was reverted.`);
928
1054
  }
929
- const newTxEvents = parseEventLogs({
930
- abi: client.chain.consensusMainContract?.abi,
931
- eventName: "NewTransaction",
932
- logs: receipt.logs
933
- });
934
- if (newTxEvents.length === 0) {
935
- throw new Error("Transaction not processed by consensus");
1055
+ const txId = extractTxIdFromLogs(client, receipt.logs);
1056
+ if (!txId) {
1057
+ throw new Error(
1058
+ `Transaction not processed by consensus: EVM tx ${txHash} succeeded but no NewTransaction or CreatedTransaction event was found in the receipt logs.`
1059
+ );
936
1060
  }
937
- return newTxEvents[0].args["txId"];
1061
+ return txId;
938
1062
  }
939
1063
  let gasPriceHex;
940
1064
  try {
@@ -966,17 +1090,15 @@ var _sendTransaction = async ({
966
1090
  });
967
1091
  const externalReceipt = await publicClient.waitForTransactionReceipt({ hash: evmTxHash });
968
1092
  if (externalReceipt.status === "reverted") {
969
- throw new Error("Transaction reverted");
1093
+ throw new Error(`Transaction reverted: EVM tx ${evmTxHash} to consensus contract ${client.chain.consensusMainContract?.address} was reverted.`);
970
1094
  }
971
- const externalNewTxEvents = parseEventLogs({
972
- abi: client.chain.consensusMainContract?.abi,
973
- eventName: "NewTransaction",
974
- logs: externalReceipt.logs
975
- });
976
- if (externalNewTxEvents.length === 0) {
977
- throw new Error("Transaction not processed by consensus");
1095
+ const externalTxId = extractTxIdFromLogs(client, externalReceipt.logs);
1096
+ if (!externalTxId) {
1097
+ throw new Error(
1098
+ `Transaction not processed by consensus: EVM tx ${evmTxHash} succeeded but no NewTransaction or CreatedTransaction event was found in the receipt logs.`
1099
+ );
978
1100
  }
979
- return externalNewTxEvents[0].args["txId"];
1101
+ return externalTxId;
980
1102
  };
981
1103
  try {
982
1104
  return await sendWithEncodedData(encodedData);
@@ -1256,7 +1378,7 @@ var receiptActions = (client, publicClient) => ({
1256
1378
  hash
1257
1379
  });
1258
1380
  if (!transaction) {
1259
- throw new Error("Transaction not found");
1381
+ throw new Error(`Transaction not found: ${hash}`);
1260
1382
  }
1261
1383
  const transactionStatusString = String(transaction.status);
1262
1384
  const requestedStatus = transactionsStatusNameToNumber[status];
@@ -1271,7 +1393,7 @@ var receiptActions = (client, publicClient) => ({
1271
1393
  return finalTransaction;
1272
1394
  }
1273
1395
  if (retries === 0) {
1274
- throw new Error("Transaction status is not " + status);
1396
+ throw new Error(`Timed out waiting for transaction ${hash} to reach status "${status}" (current status: ${transactionStatusString}).`);
1275
1397
  }
1276
1398
  await sleep(interval);
1277
1399
  return receiptActions(client, publicClient).waitForTransactionReceipt({
@@ -1376,6 +1498,32 @@ var transactionActions = (client, publicClient) => ({
1376
1498
  params: [hash, signature]
1377
1499
  });
1378
1500
  },
1501
+ /** Returns the queue slot position of a transaction in the pending queue. */
1502
+ getTransactionQueuePosition: async ({ hash }) => {
1503
+ const consensusAddress = client.chain.consensusMainContract?.address;
1504
+ const consensusAbi = client.chain.consensusMainContract?.abi;
1505
+ const queuesAddress = await publicClient.readContract({
1506
+ address: consensusAddress,
1507
+ abi: consensusAbi,
1508
+ functionName: "queues"
1509
+ });
1510
+ const QUEUES_ABI = [
1511
+ {
1512
+ inputs: [{ internalType: "bytes32", name: "txId", type: "bytes32" }],
1513
+ name: "getTransactionQueuePosition",
1514
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
1515
+ stateMutability: "view",
1516
+ type: "function"
1517
+ }
1518
+ ];
1519
+ const position = await publicClient.readContract({
1520
+ address: queuesAddress,
1521
+ abi: QUEUES_ABI,
1522
+ functionName: "getTransactionQueuePosition",
1523
+ args: [hash]
1524
+ });
1525
+ return Number(position);
1526
+ },
1379
1527
  /** Estimates gas required for a transaction. */
1380
1528
  estimateTransactionGas: async (transactionParams) => {
1381
1529
  const formattedParams = {
@@ -1,3 +1,3 @@
1
1
  export { Account, Address } from 'viem';
2
- export { O 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, z as DebugTraceResult, a as DecodedCallData, D as DecodedDeployData, a7 as DelegatorClaimOptions, a6 as DelegatorExitOptions, a5 as DelegatorJoinOptions, Z as DelegatorJoinResult, R as EpochData, U as EpochInfo, E as ExecutionResult, 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, K as PendingWithdrawal, a4 as SetIdentityOptions, a3 as SetOperatorOptions, A as SnapSource, Q as StakeInfo, a8 as StakingActions, B as StakingContract, X as StakingTransactionResult, k as TransactionHash, y as TransactionHashVariant, m as TransactionResult, r as TransactionResultNameToNumber, l as TransactionStatus, x as TransactionType, a1 as ValidatorClaimOptions, $ as ValidatorDepositOptions, a0 as ValidatorExitOptions, I as ValidatorIdentity, J as ValidatorInfo, _ as ValidatorJoinOptions, Y as ValidatorJoinResult, a2 as ValidatorPrimeOptions, F as ValidatorView, u as VoteType, W as WithdrawalCommit, s as executionResultNumberToName, p as isDecidedState, q as transactionResultNumberToName, n as transactionsStatusNameToNumber, t as transactionsStatusNumberToName, w as voteTypeNameToNumber, v as voteTypeNumberToName } from '../index-9P6HoP_s.cjs';
3
- export { G as GenLayerChain } from '../chains-DqSbucSW.cjs';
2
+ export { O 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, z as DebugTraceResult, a as DecodedCallData, D as DecodedDeployData, a7 as DelegatorClaimOptions, a6 as DelegatorExitOptions, a5 as DelegatorJoinOptions, Z as DelegatorJoinResult, R as EpochData, U as EpochInfo, E as ExecutionResult, 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, K as PendingWithdrawal, a4 as SetIdentityOptions, a3 as SetOperatorOptions, A as SnapSource, Q as StakeInfo, a8 as StakingActions, B as StakingContract, X as StakingTransactionResult, k as TransactionHash, y as TransactionHashVariant, m as TransactionResult, r as TransactionResultNameToNumber, l as TransactionStatus, x as TransactionType, a1 as ValidatorClaimOptions, $ as ValidatorDepositOptions, a0 as ValidatorExitOptions, I as ValidatorIdentity, J as ValidatorInfo, _ as ValidatorJoinOptions, Y as ValidatorJoinResult, a2 as ValidatorPrimeOptions, F as ValidatorView, u as VoteType, W as WithdrawalCommit, s as executionResultNumberToName, p as isDecidedState, q as transactionResultNumberToName, n as transactionsStatusNameToNumber, t as transactionsStatusNumberToName, w as voteTypeNameToNumber, v as voteTypeNumberToName } from '../index-DQCfqVjw.cjs';
3
+ export { G as GenLayerChain } from '../chains-D6DgvIVA.cjs';
@@ -1,3 +1,3 @@
1
1
  export { Account, Address } from 'viem';
2
- export { O 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, z as DebugTraceResult, a as DecodedCallData, D as DecodedDeployData, a7 as DelegatorClaimOptions, a6 as DelegatorExitOptions, a5 as DelegatorJoinOptions, Z as DelegatorJoinResult, R as EpochData, U as EpochInfo, E as ExecutionResult, 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, K as PendingWithdrawal, a4 as SetIdentityOptions, a3 as SetOperatorOptions, A as SnapSource, Q as StakeInfo, a8 as StakingActions, B as StakingContract, X as StakingTransactionResult, k as TransactionHash, y as TransactionHashVariant, m as TransactionResult, r as TransactionResultNameToNumber, l as TransactionStatus, x as TransactionType, a1 as ValidatorClaimOptions, $ as ValidatorDepositOptions, a0 as ValidatorExitOptions, I as ValidatorIdentity, J as ValidatorInfo, _ as ValidatorJoinOptions, Y as ValidatorJoinResult, a2 as ValidatorPrimeOptions, F as ValidatorView, u as VoteType, W as WithdrawalCommit, s as executionResultNumberToName, p as isDecidedState, q as transactionResultNumberToName, n as transactionsStatusNameToNumber, t as transactionsStatusNumberToName, w as voteTypeNameToNumber, v as voteTypeNumberToName } from '../index-Bf1V-aai.js';
3
- export { G as GenLayerChain } from '../chains-DqSbucSW.js';
2
+ export { O 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, z as DebugTraceResult, a as DecodedCallData, D as DecodedDeployData, a7 as DelegatorClaimOptions, a6 as DelegatorExitOptions, a5 as DelegatorJoinOptions, Z as DelegatorJoinResult, R as EpochData, U as EpochInfo, E as ExecutionResult, 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, K as PendingWithdrawal, a4 as SetIdentityOptions, a3 as SetOperatorOptions, A as SnapSource, Q as StakeInfo, a8 as StakingActions, B as StakingContract, X as StakingTransactionResult, k as TransactionHash, y as TransactionHashVariant, m as TransactionResult, r as TransactionResultNameToNumber, l as TransactionStatus, x as TransactionType, a1 as ValidatorClaimOptions, $ as ValidatorDepositOptions, a0 as ValidatorExitOptions, I as ValidatorIdentity, J as ValidatorInfo, _ as ValidatorJoinOptions, Y as ValidatorJoinResult, a2 as ValidatorPrimeOptions, F as ValidatorView, u as VoteType, W as WithdrawalCommit, s as executionResultNumberToName, p as isDecidedState, q as transactionResultNumberToName, n as transactionsStatusNameToNumber, t as transactionsStatusNumberToName, w as voteTypeNameToNumber, v as voteTypeNumberToName } from '../index-DDgbU3hK.js';
3
+ export { G as GenLayerChain } from '../chains-D6DgvIVA.js';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "genlayer-js",
3
3
  "type": "module",
4
- "version": "0.27.8",
4
+ "version": "0.28.0",
5
5
  "description": "GenLayer JavaScript SDK",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",