genlayer 0.35.4 → 0.36.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 +125 -12
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -20078,7 +20078,7 @@ var require_cli_table3 = __commonJS({
|
|
|
20078
20078
|
import { program } from "commander";
|
|
20079
20079
|
|
|
20080
20080
|
// package.json
|
|
20081
|
-
var version = "0.
|
|
20081
|
+
var version = "0.36.0";
|
|
20082
20082
|
var package_default = {
|
|
20083
20083
|
name: "genlayer",
|
|
20084
20084
|
version,
|
|
@@ -20156,7 +20156,7 @@ var package_default = {
|
|
|
20156
20156
|
dotenv: "^17.0.0",
|
|
20157
20157
|
ethers: "^6.13.4",
|
|
20158
20158
|
"fs-extra": "^11.3.0",
|
|
20159
|
-
"genlayer-js": "^0.
|
|
20159
|
+
"genlayer-js": "^0.22.1",
|
|
20160
20160
|
inquirer: "^12.0.0",
|
|
20161
20161
|
keytar: "^7.9.0",
|
|
20162
20162
|
"node-fetch": "^3.0.0",
|
|
@@ -33746,7 +33746,7 @@ init_toHex();
|
|
|
33746
33746
|
init_keccak256();
|
|
33747
33747
|
init_formatEther();
|
|
33748
33748
|
|
|
33749
|
-
// node_modules/genlayer-js/dist/chunk-
|
|
33749
|
+
// node_modules/genlayer-js/dist/chunk-BU7ME7KN.js
|
|
33750
33750
|
var chains_exports = {};
|
|
33751
33751
|
__export2(chains_exports, {
|
|
33752
33752
|
localnet: () => localnet,
|
|
@@ -37761,6 +37761,8 @@ var localnet = defineChain({
|
|
|
37761
37761
|
consensusMainContract: CONSENSUS_MAIN_CONTRACT,
|
|
37762
37762
|
consensusDataContract: CONSENSUS_DATA_CONTRACT,
|
|
37763
37763
|
stakingContract: null,
|
|
37764
|
+
feeManagerContract: null,
|
|
37765
|
+
roundsStorageContract: null,
|
|
37764
37766
|
defaultNumberOfInitialValidators: 5,
|
|
37765
37767
|
defaultConsensusMaxRotations: 3
|
|
37766
37768
|
});
|
|
@@ -41772,6 +41774,8 @@ var studionet = defineChain({
|
|
|
41772
41774
|
consensusMainContract: CONSENSUS_MAIN_CONTRACT2,
|
|
41773
41775
|
consensusDataContract: CONSENSUS_DATA_CONTRACT2,
|
|
41774
41776
|
stakingContract: null,
|
|
41777
|
+
feeManagerContract: null,
|
|
41778
|
+
roundsStorageContract: null,
|
|
41775
41779
|
defaultNumberOfInitialValidators: 5,
|
|
41776
41780
|
defaultConsensusMaxRotations: 3
|
|
41777
41781
|
});
|
|
@@ -43249,7 +43253,7 @@ var STAKING_ABI = [
|
|
|
43249
43253
|
outputs: [{ name: "", type: "address" }]
|
|
43250
43254
|
}
|
|
43251
43255
|
];
|
|
43252
|
-
var TESTNET_JSON_RPC_URL = "
|
|
43256
|
+
var TESTNET_JSON_RPC_URL = "https://rpc-asimov.genlayer.com";
|
|
43253
43257
|
var STAKING_CONTRACT = {
|
|
43254
43258
|
address: "0x63Fa5E0bb10fb6fA98F44726C5518223F767687A",
|
|
43255
43259
|
abi: STAKING_ABI
|
|
@@ -47249,14 +47253,44 @@ var testnetAsimov = defineChain({
|
|
|
47249
47253
|
consensusMainContract: CONSENSUS_MAIN_CONTRACT3,
|
|
47250
47254
|
consensusDataContract: CONSENSUS_DATA_CONTRACT3,
|
|
47251
47255
|
stakingContract: STAKING_CONTRACT,
|
|
47256
|
+
feeManagerContract: null,
|
|
47257
|
+
roundsStorageContract: null,
|
|
47252
47258
|
defaultNumberOfInitialValidators: 5,
|
|
47253
47259
|
defaultConsensusMaxRotations: 3
|
|
47254
47260
|
});
|
|
47255
|
-
var TESTNET_JSON_RPC_URL2 = "
|
|
47261
|
+
var TESTNET_JSON_RPC_URL2 = "https://rpc-bradbury.genlayer.com";
|
|
47256
47262
|
var STAKING_CONTRACT2 = {
|
|
47257
47263
|
address: "0x4A4449E617F8D10FDeD0b461CadEf83939E821A5",
|
|
47258
47264
|
abi: STAKING_ABI
|
|
47259
47265
|
};
|
|
47266
|
+
var FEE_MANAGER_CONTRACT = {
|
|
47267
|
+
address: "0xF205868bf5db79d2162843742D18D0900A9E462a",
|
|
47268
|
+
abi: [
|
|
47269
|
+
{
|
|
47270
|
+
type: "function",
|
|
47271
|
+
name: "calculateMinAppealBond",
|
|
47272
|
+
stateMutability: "view",
|
|
47273
|
+
inputs: [
|
|
47274
|
+
{ name: "_txId", type: "bytes32" },
|
|
47275
|
+
{ name: "_round", type: "uint256" },
|
|
47276
|
+
{ name: "_status", type: "uint8" }
|
|
47277
|
+
],
|
|
47278
|
+
outputs: [{ name: "totalFeesToPay", type: "uint256" }]
|
|
47279
|
+
}
|
|
47280
|
+
]
|
|
47281
|
+
};
|
|
47282
|
+
var ROUNDS_STORAGE_CONTRACT = {
|
|
47283
|
+
address: "0x7134D05af13A14c0b66Fe129fb930b1d0C420e33",
|
|
47284
|
+
abi: [
|
|
47285
|
+
{
|
|
47286
|
+
type: "function",
|
|
47287
|
+
name: "getRoundNumber",
|
|
47288
|
+
stateMutability: "view",
|
|
47289
|
+
inputs: [{ name: "_txId", type: "bytes32" }],
|
|
47290
|
+
outputs: [{ name: "", type: "uint256" }]
|
|
47291
|
+
}
|
|
47292
|
+
]
|
|
47293
|
+
};
|
|
47260
47294
|
var EXPLORER_URL3 = "https://explorer-bradbury.genlayer.com/";
|
|
47261
47295
|
var CONSENSUS_MAIN_CONTRACT4 = {
|
|
47262
47296
|
address: "0x0112Bf6e83497965A5fdD6Dad1E447a6E004271D",
|
|
@@ -50598,6 +50632,8 @@ var testnetBradbury = defineChain({
|
|
|
50598
50632
|
consensusMainContract: CONSENSUS_MAIN_CONTRACT4,
|
|
50599
50633
|
consensusDataContract: CONSENSUS_DATA_CONTRACT4,
|
|
50600
50634
|
stakingContract: STAKING_CONTRACT2,
|
|
50635
|
+
feeManagerContract: FEE_MANAGER_CONTRACT,
|
|
50636
|
+
roundsStorageContract: ROUNDS_STORAGE_CONTRACT,
|
|
50601
50637
|
defaultNumberOfInitialValidators: 5,
|
|
50602
50638
|
defaultConsensusMaxRotations: 3
|
|
50603
50639
|
});
|
|
@@ -51523,15 +51559,58 @@ var contractActions = (client, publicClient) => {
|
|
|
51523
51559
|
senderAccount
|
|
51524
51560
|
});
|
|
51525
51561
|
},
|
|
51562
|
+
getMinAppealBond: async (args) => {
|
|
51563
|
+
const { txId } = args;
|
|
51564
|
+
if (!client.chain.feeManagerContract?.address || !client.chain.roundsStorageContract?.address) {
|
|
51565
|
+
throw new Error("Appeal bond calculation not supported on this chain (missing feeManagerContract/roundsStorageContract)");
|
|
51566
|
+
}
|
|
51567
|
+
const roundNumber = await publicClient.readContract({
|
|
51568
|
+
address: client.chain.roundsStorageContract.address,
|
|
51569
|
+
abi: client.chain.roundsStorageContract.abi,
|
|
51570
|
+
functionName: "getRoundNumber",
|
|
51571
|
+
args: [txId]
|
|
51572
|
+
});
|
|
51573
|
+
const transaction = await client.getTransaction({ hash: txId });
|
|
51574
|
+
const txStatus = Number(transaction.status);
|
|
51575
|
+
const minBond = await publicClient.readContract({
|
|
51576
|
+
address: client.chain.feeManagerContract.address,
|
|
51577
|
+
abi: client.chain.feeManagerContract.abi,
|
|
51578
|
+
functionName: "calculateMinAppealBond",
|
|
51579
|
+
args: [txId, roundNumber, txStatus]
|
|
51580
|
+
});
|
|
51581
|
+
return minBond;
|
|
51582
|
+
},
|
|
51526
51583
|
appealTransaction: async (args) => {
|
|
51527
51584
|
const { account, txId } = args;
|
|
51585
|
+
let { value } = args;
|
|
51586
|
+
if (value === void 0) {
|
|
51587
|
+
if (client.chain.feeManagerContract?.address && client.chain.roundsStorageContract?.address) {
|
|
51588
|
+
const roundNumber = await publicClient.readContract({
|
|
51589
|
+
address: client.chain.roundsStorageContract.address,
|
|
51590
|
+
abi: client.chain.roundsStorageContract.abi,
|
|
51591
|
+
functionName: "getRoundNumber",
|
|
51592
|
+
args: [txId]
|
|
51593
|
+
});
|
|
51594
|
+
const transaction = await client.getTransaction({ hash: txId });
|
|
51595
|
+
const txStatus = Number(transaction.status);
|
|
51596
|
+
value = await publicClient.readContract({
|
|
51597
|
+
address: client.chain.feeManagerContract.address,
|
|
51598
|
+
abi: client.chain.feeManagerContract.abi,
|
|
51599
|
+
functionName: "calculateMinAppealBond",
|
|
51600
|
+
args: [txId, roundNumber, txStatus]
|
|
51601
|
+
});
|
|
51602
|
+
} else {
|
|
51603
|
+
value = 0n;
|
|
51604
|
+
}
|
|
51605
|
+
}
|
|
51528
51606
|
const senderAccount = account || client.account;
|
|
51529
51607
|
const encodedData = _encodeSubmitAppealData({ client, txId });
|
|
51530
51608
|
return _sendTransaction({
|
|
51531
51609
|
client,
|
|
51532
51610
|
publicClient,
|
|
51533
51611
|
encodedData,
|
|
51534
|
-
senderAccount
|
|
51612
|
+
senderAccount,
|
|
51613
|
+
value
|
|
51535
51614
|
});
|
|
51536
51615
|
}
|
|
51537
51616
|
};
|
|
@@ -55588,25 +55667,55 @@ var AppealAction = class extends BaseAction {
|
|
|
55588
55667
|
}
|
|
55589
55668
|
async appeal({
|
|
55590
55669
|
txId,
|
|
55591
|
-
rpc
|
|
55670
|
+
rpc,
|
|
55671
|
+
bond
|
|
55592
55672
|
}) {
|
|
55593
55673
|
const client = await this.getClient(rpc);
|
|
55594
|
-
await client.initializeConsensusSmartContract();
|
|
55595
|
-
this.startSpinner(`Appealing transaction ${txId}...`);
|
|
55596
55674
|
try {
|
|
55675
|
+
let value;
|
|
55676
|
+
if (bond) {
|
|
55677
|
+
value = parseStakingAmount(bond);
|
|
55678
|
+
} else {
|
|
55679
|
+
this.startSpinner("Calculating appeal bond...");
|
|
55680
|
+
try {
|
|
55681
|
+
value = await client.getMinAppealBond({ txId });
|
|
55682
|
+
this.stopSpinner();
|
|
55683
|
+
this.logInfo(`Appeal bond: ${formatStakingAmount(value)}`);
|
|
55684
|
+
} catch {
|
|
55685
|
+
this.stopSpinner();
|
|
55686
|
+
value = void 0;
|
|
55687
|
+
}
|
|
55688
|
+
}
|
|
55689
|
+
await this.confirmPrompt("Proceed with appeal?");
|
|
55690
|
+
this.startSpinner(`Appealing transaction ${txId}...`);
|
|
55597
55691
|
const hash3 = await client.appealTransaction({
|
|
55598
|
-
txId
|
|
55692
|
+
txId,
|
|
55693
|
+
value
|
|
55599
55694
|
});
|
|
55695
|
+
this.setSpinnerText("Waiting for finalization...");
|
|
55600
55696
|
const result = await client.waitForTransactionReceipt({
|
|
55601
55697
|
hash: hash3,
|
|
55602
55698
|
retries: 100,
|
|
55603
55699
|
interval: 5e3
|
|
55604
55700
|
});
|
|
55605
|
-
this.succeedSpinner("Appeal
|
|
55701
|
+
this.succeedSpinner("Appeal successfully executed", result);
|
|
55606
55702
|
} catch (error) {
|
|
55607
55703
|
this.failSpinner("Error during appeal operation", error);
|
|
55608
55704
|
}
|
|
55609
55705
|
}
|
|
55706
|
+
async appealBond({
|
|
55707
|
+
txId,
|
|
55708
|
+
rpc
|
|
55709
|
+
}) {
|
|
55710
|
+
const client = await this.getClient(rpc, true);
|
|
55711
|
+
this.startSpinner(`Calculating appeal bond for ${txId}...`);
|
|
55712
|
+
try {
|
|
55713
|
+
const bond = await client.getMinAppealBond({ txId });
|
|
55714
|
+
this.succeedSpinner(`Minimum appeal bond: ${formatStakingAmount(bond)}`);
|
|
55715
|
+
} catch (error) {
|
|
55716
|
+
this.failSpinner("Error calculating appeal bond", error);
|
|
55717
|
+
}
|
|
55718
|
+
}
|
|
55610
55719
|
};
|
|
55611
55720
|
|
|
55612
55721
|
// src/commands/transactions/index.ts
|
|
@@ -55620,10 +55729,14 @@ function initializeTransactionsCommands(program2) {
|
|
|
55620
55729
|
const receiptAction = new ReceiptAction();
|
|
55621
55730
|
await receiptAction.receipt({ txId, ...options });
|
|
55622
55731
|
});
|
|
55623
|
-
program2.command("appeal <txId>").description("Appeal a transaction by its hash").option("--rpc <rpcUrl>", "RPC URL for the network").action(async (txId, options) => {
|
|
55732
|
+
program2.command("appeal <txId>").description("Appeal a transaction by its hash").option("--bond <amount>", "Appeal bond amount (e.g. 500gen, 0.5gen). Auto-calculated if omitted").option("--rpc <rpcUrl>", "RPC URL for the network").action(async (txId, options) => {
|
|
55624
55733
|
const appealAction = new AppealAction();
|
|
55625
55734
|
await appealAction.appeal({ txId, ...options });
|
|
55626
55735
|
});
|
|
55736
|
+
program2.command("appeal-bond <txId>").description("Show minimum appeal bond required for a transaction").option("--rpc <rpcUrl>", "RPC URL for the network").action(async (txId, options) => {
|
|
55737
|
+
const appealAction = new AppealAction();
|
|
55738
|
+
await appealAction.appealBond({ txId, ...options });
|
|
55739
|
+
});
|
|
55627
55740
|
return program2;
|
|
55628
55741
|
}
|
|
55629
55742
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "genlayer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.36.0",
|
|
4
4
|
"description": "GenLayer Command Line Tool",
|
|
5
5
|
"main": "src/index.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"dotenv": "^17.0.0",
|
|
76
76
|
"ethers": "^6.13.4",
|
|
77
77
|
"fs-extra": "^11.3.0",
|
|
78
|
-
"genlayer-js": "^0.
|
|
78
|
+
"genlayer-js": "^0.22.1",
|
|
79
79
|
"inquirer": "^12.0.0",
|
|
80
80
|
"keytar": "^7.9.0",
|
|
81
81
|
"node-fetch": "^3.0.0",
|