genlayer-js 0.18.9 → 0.18.10
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/CHANGELOG.md +2 -0
- package/dist/chains/index.cjs +2 -2
- package/dist/chains/index.js +1 -1
- package/dist/{chunk-SC2VXHL3.cjs → chunk-PPBY3UXF.cjs} +7 -5
- package/dist/{chunk-V3MYVW3P.js → chunk-WZNF2WK4.js} +7 -5
- package/dist/index.cjs +31 -31
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/src/chains/testnetAsimov.ts +6 -4
- package/tests/smoke.test.ts +59 -0
package/CHANGELOG.md
CHANGED
package/dist/chains/index.cjs
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkPPBY3UXFcjs = require('../chunk-PPBY3UXF.cjs');
|
|
6
6
|
require('../chunk-75ZPJI57.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
exports.localnet =
|
|
11
|
+
exports.localnet = _chunkPPBY3UXFcjs.localnet; exports.studionet = _chunkPPBY3UXFcjs.studionet; exports.testnetAsimov = _chunkPPBY3UXFcjs.testnetAsimov;
|
package/dist/chains/index.js
CHANGED
|
@@ -8704,14 +8704,15 @@ var STAKING_ABI = [
|
|
|
8704
8704
|
];
|
|
8705
8705
|
|
|
8706
8706
|
// src/chains/testnetAsimov.ts
|
|
8707
|
-
var TESTNET_JSON_RPC_URL = "https://
|
|
8707
|
+
var TESTNET_JSON_RPC_URL = "https://zksync-os-testnet-genlayer.zksync.dev";
|
|
8708
|
+
var TESTNET_WS_URL = "wss://zksync-os-testnet-alpha.zksync.dev/ws";
|
|
8708
8709
|
var STAKING_CONTRACT = {
|
|
8709
|
-
address: "
|
|
8710
|
+
address: "0x63Fa5E0bb10fb6fA98F44726C5518223F767687A",
|
|
8710
8711
|
abi: STAKING_ABI
|
|
8711
8712
|
};
|
|
8712
8713
|
var EXPLORER_URL2 = "https://explorer-asimov.genlayer.com/";
|
|
8713
8714
|
var CONSENSUS_MAIN_CONTRACT3 = {
|
|
8714
|
-
address: "
|
|
8715
|
+
address: "0x6CAFF6769d70824745AD895663409DC70aB5B28E",
|
|
8715
8716
|
abi: [
|
|
8716
8717
|
{
|
|
8717
8718
|
inputs: [],
|
|
@@ -10100,7 +10101,7 @@ var CONSENSUS_MAIN_CONTRACT3 = {
|
|
|
10100
10101
|
bytecode: ""
|
|
10101
10102
|
};
|
|
10102
10103
|
var CONSENSUS_DATA_CONTRACT3 = {
|
|
10103
|
-
address: "
|
|
10104
|
+
address: "0x0D9d1d74d72Fa5eB94bcf746C8FCcb312a722c9B",
|
|
10104
10105
|
abi: [
|
|
10105
10106
|
{
|
|
10106
10107
|
inputs: [],
|
|
@@ -12686,7 +12687,8 @@ var testnetAsimov = _viem.defineChain.call(void 0, {
|
|
|
12686
12687
|
name: "Genlayer Asimov Testnet",
|
|
12687
12688
|
rpcUrls: {
|
|
12688
12689
|
default: {
|
|
12689
|
-
http: [TESTNET_JSON_RPC_URL]
|
|
12690
|
+
http: [TESTNET_JSON_RPC_URL],
|
|
12691
|
+
webSocket: [TESTNET_WS_URL]
|
|
12690
12692
|
}
|
|
12691
12693
|
},
|
|
12692
12694
|
nativeCurrency: {
|
|
@@ -8704,14 +8704,15 @@ var STAKING_ABI = [
|
|
|
8704
8704
|
];
|
|
8705
8705
|
|
|
8706
8706
|
// src/chains/testnetAsimov.ts
|
|
8707
|
-
var TESTNET_JSON_RPC_URL = "https://
|
|
8707
|
+
var TESTNET_JSON_RPC_URL = "https://zksync-os-testnet-genlayer.zksync.dev";
|
|
8708
|
+
var TESTNET_WS_URL = "wss://zksync-os-testnet-alpha.zksync.dev/ws";
|
|
8708
8709
|
var STAKING_CONTRACT = {
|
|
8709
|
-
address: "
|
|
8710
|
+
address: "0x63Fa5E0bb10fb6fA98F44726C5518223F767687A",
|
|
8710
8711
|
abi: STAKING_ABI
|
|
8711
8712
|
};
|
|
8712
8713
|
var EXPLORER_URL2 = "https://explorer-asimov.genlayer.com/";
|
|
8713
8714
|
var CONSENSUS_MAIN_CONTRACT3 = {
|
|
8714
|
-
address: "
|
|
8715
|
+
address: "0x6CAFF6769d70824745AD895663409DC70aB5B28E",
|
|
8715
8716
|
abi: [
|
|
8716
8717
|
{
|
|
8717
8718
|
inputs: [],
|
|
@@ -10100,7 +10101,7 @@ var CONSENSUS_MAIN_CONTRACT3 = {
|
|
|
10100
10101
|
bytecode: ""
|
|
10101
10102
|
};
|
|
10102
10103
|
var CONSENSUS_DATA_CONTRACT3 = {
|
|
10103
|
-
address: "
|
|
10104
|
+
address: "0x0D9d1d74d72Fa5eB94bcf746C8FCcb312a722c9B",
|
|
10104
10105
|
abi: [
|
|
10105
10106
|
{
|
|
10106
10107
|
inputs: [],
|
|
@@ -12686,7 +12687,8 @@ var testnetAsimov = defineChain3({
|
|
|
12686
12687
|
name: "Genlayer Asimov Testnet",
|
|
12687
12688
|
rpcUrls: {
|
|
12688
12689
|
default: {
|
|
12689
|
-
http: [TESTNET_JSON_RPC_URL]
|
|
12690
|
+
http: [TESTNET_JSON_RPC_URL],
|
|
12691
|
+
webSocket: [TESTNET_WS_URL]
|
|
12690
12692
|
}
|
|
12691
12693
|
},
|
|
12692
12694
|
nativeCurrency: {
|
package/dist/index.cjs
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var
|
|
8
|
+
var _chunkPPBY3UXFcjs = require('./chunk-PPBY3UXF.cjs');
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
@@ -31,7 +31,7 @@ var _viem = require('viem');
|
|
|
31
31
|
function accountActions(client) {
|
|
32
32
|
return {
|
|
33
33
|
fundAccount: async ({ address, amount }) => {
|
|
34
|
-
if (_optionalChain([client, 'access', _ => _.chain, 'optionalAccess', _2 => _2.id]) !==
|
|
34
|
+
if (_optionalChain([client, 'access', _ => _.chain, 'optionalAccess', _2 => _2.id]) !== _chunkPPBY3UXFcjs.localnet.id) {
|
|
35
35
|
throw new Error("Client is not connected to the localnet");
|
|
36
36
|
}
|
|
37
37
|
return client.request({
|
|
@@ -415,8 +415,8 @@ function serialize(data) {
|
|
|
415
415
|
// src/abi/index.ts
|
|
416
416
|
var abi_exports = {};
|
|
417
417
|
_chunk75ZPJI57cjs.__export.call(void 0, abi_exports, {
|
|
418
|
-
STAKING_ABI: () =>
|
|
419
|
-
VALIDATOR_WALLET_ABI: () =>
|
|
418
|
+
STAKING_ABI: () => _chunkPPBY3UXFcjs.STAKING_ABI,
|
|
419
|
+
VALIDATOR_WALLET_ABI: () => _chunkPPBY3UXFcjs.VALIDATOR_WALLET_ABI,
|
|
420
420
|
calldata: () => calldata,
|
|
421
421
|
transactions: () => transactions
|
|
422
422
|
});
|
|
@@ -516,7 +516,7 @@ function _toJsonSafeDeep(value, seen) {
|
|
|
516
516
|
var contractActions = (client, publicClient) => {
|
|
517
517
|
return {
|
|
518
518
|
getContractCode: async (address) => {
|
|
519
|
-
if (client.chain.id !==
|
|
519
|
+
if (client.chain.id !== _chunkPPBY3UXFcjs.localnet.id) {
|
|
520
520
|
throw new Error("Getting contract code is not supported on this network");
|
|
521
521
|
}
|
|
522
522
|
const result = await client.request({
|
|
@@ -527,7 +527,7 @@ var contractActions = (client, publicClient) => {
|
|
|
527
527
|
return new TextDecoder().decode(codeBytes);
|
|
528
528
|
},
|
|
529
529
|
getContractSchema: async (address) => {
|
|
530
|
-
if (client.chain.id !==
|
|
530
|
+
if (client.chain.id !== _chunkPPBY3UXFcjs.localnet.id) {
|
|
531
531
|
throw new Error("Contract schema is not supported on this network");
|
|
532
532
|
}
|
|
533
533
|
const schema = await client.request({
|
|
@@ -537,7 +537,7 @@ var contractActions = (client, publicClient) => {
|
|
|
537
537
|
return schema;
|
|
538
538
|
},
|
|
539
539
|
getContractSchemaForCode: async (contractCode) => {
|
|
540
|
-
if (client.chain.id !==
|
|
540
|
+
if (client.chain.id !== _chunkPPBY3UXFcjs.localnet.id) {
|
|
541
541
|
throw new Error("Contract schema is not supported on this network");
|
|
542
542
|
}
|
|
543
543
|
const schema = await client.request({
|
|
@@ -1068,7 +1068,7 @@ var receiptActions = (client, publicClient) => ({
|
|
|
1068
1068
|
const requestedStatus = _chunkW4V73RPNcjs.transactionsStatusNameToNumber[status];
|
|
1069
1069
|
if (transactionStatusString === requestedStatus || status === "ACCEPTED" /* ACCEPTED */ && _chunkW4V73RPNcjs.isDecidedState.call(void 0, transactionStatusString)) {
|
|
1070
1070
|
let finalTransaction = transaction;
|
|
1071
|
-
if (client.chain.id ===
|
|
1071
|
+
if (client.chain.id === _chunkPPBY3UXFcjs.localnet.id) {
|
|
1072
1072
|
finalTransaction = decodeLocalnetTransaction(transaction);
|
|
1073
1073
|
}
|
|
1074
1074
|
if (!fullTransaction) {
|
|
@@ -1133,9 +1133,9 @@ var snapID = {
|
|
|
1133
1133
|
|
|
1134
1134
|
// src/wallet/connect.ts
|
|
1135
1135
|
var networks = {
|
|
1136
|
-
localnet:
|
|
1137
|
-
studionet:
|
|
1138
|
-
testnetAsimov:
|
|
1136
|
+
localnet: _chunkPPBY3UXFcjs.localnet,
|
|
1137
|
+
studionet: _chunkPPBY3UXFcjs.studionet,
|
|
1138
|
+
testnetAsimov: _chunkPPBY3UXFcjs.testnetAsimov
|
|
1139
1139
|
};
|
|
1140
1140
|
var connect = async (client, network = "studionet", snapSource = "npm") => {
|
|
1141
1141
|
if (!window.ethereum) {
|
|
@@ -1251,7 +1251,7 @@ function formatStakingAmount(amount) {
|
|
|
1251
1251
|
// src/staking/actions.ts
|
|
1252
1252
|
var FALLBACK_GAS = 1000000n;
|
|
1253
1253
|
var GAS_BUFFER_MULTIPLIER = 2n;
|
|
1254
|
-
var COMBINED_ERROR_ABI = [...
|
|
1254
|
+
var COMBINED_ERROR_ABI = [..._chunkPPBY3UXFcjs.STAKING_ABI, ..._chunkPPBY3UXFcjs.VALIDATOR_WALLET_ABI];
|
|
1255
1255
|
function extractRevertReason(err) {
|
|
1256
1256
|
if (err instanceof _viem.BaseError) {
|
|
1257
1257
|
const rawError = err.walk((e) => e instanceof _viem.RawContractError);
|
|
@@ -1383,7 +1383,7 @@ var stakingActions = (client, publicClient) => {
|
|
|
1383
1383
|
const address = getStakingAddress();
|
|
1384
1384
|
return _viem.getContract.call(void 0, {
|
|
1385
1385
|
address,
|
|
1386
|
-
abi:
|
|
1386
|
+
abi: _chunkPPBY3UXFcjs.STAKING_ABI,
|
|
1387
1387
|
client: { public: publicClient, wallet: client }
|
|
1388
1388
|
});
|
|
1389
1389
|
};
|
|
@@ -1391,7 +1391,7 @@ var stakingActions = (client, publicClient) => {
|
|
|
1391
1391
|
const address = getStakingAddress();
|
|
1392
1392
|
return _viem.getContract.call(void 0, {
|
|
1393
1393
|
address,
|
|
1394
|
-
abi:
|
|
1394
|
+
abi: _chunkPPBY3UXFcjs.STAKING_ABI,
|
|
1395
1395
|
client: publicClient
|
|
1396
1396
|
});
|
|
1397
1397
|
};
|
|
@@ -1400,11 +1400,11 @@ var stakingActions = (client, publicClient) => {
|
|
|
1400
1400
|
const amount = parseStakingAmount(options.amount);
|
|
1401
1401
|
const stakingAddress = getStakingAddress();
|
|
1402
1402
|
const data = options.operator ? _viem.encodeFunctionData.call(void 0, {
|
|
1403
|
-
abi:
|
|
1403
|
+
abi: _chunkPPBY3UXFcjs.STAKING_ABI,
|
|
1404
1404
|
functionName: "validatorJoin",
|
|
1405
1405
|
args: [options.operator]
|
|
1406
1406
|
}) : _viem.encodeFunctionData.call(void 0, {
|
|
1407
|
-
abi:
|
|
1407
|
+
abi: _chunkPPBY3UXFcjs.STAKING_ABI,
|
|
1408
1408
|
functionName: "validatorJoin"
|
|
1409
1409
|
});
|
|
1410
1410
|
const result = await executeWrite({ to: stakingAddress, data, value: amount });
|
|
@@ -1413,7 +1413,7 @@ var stakingActions = (client, publicClient) => {
|
|
|
1413
1413
|
let eventFound = false;
|
|
1414
1414
|
for (const log of receipt.logs) {
|
|
1415
1415
|
try {
|
|
1416
|
-
const decoded = _viem.decodeEventLog.call(void 0, { abi:
|
|
1416
|
+
const decoded = _viem.decodeEventLog.call(void 0, { abi: _chunkPPBY3UXFcjs.STAKING_ABI, data: log.data, topics: log.topics });
|
|
1417
1417
|
if (decoded.eventName === "ValidatorJoin") {
|
|
1418
1418
|
validatorWallet = decoded.args.validator;
|
|
1419
1419
|
eventFound = true;
|
|
@@ -1440,7 +1440,7 @@ var stakingActions = (client, publicClient) => {
|
|
|
1440
1440
|
validatorDeposit: async (options) => {
|
|
1441
1441
|
const amount = parseStakingAmount(options.amount);
|
|
1442
1442
|
const data = _viem.encodeFunctionData.call(void 0, {
|
|
1443
|
-
abi:
|
|
1443
|
+
abi: _chunkPPBY3UXFcjs.STAKING_ABI,
|
|
1444
1444
|
functionName: "validatorDeposit"
|
|
1445
1445
|
});
|
|
1446
1446
|
return executeWrite({ to: getStakingAddress(), data, value: amount });
|
|
@@ -1448,7 +1448,7 @@ var stakingActions = (client, publicClient) => {
|
|
|
1448
1448
|
validatorExit: async (options) => {
|
|
1449
1449
|
const shares = typeof options.shares === "string" ? BigInt(options.shares) : options.shares;
|
|
1450
1450
|
const data = _viem.encodeFunctionData.call(void 0, {
|
|
1451
|
-
abi:
|
|
1451
|
+
abi: _chunkPPBY3UXFcjs.STAKING_ABI,
|
|
1452
1452
|
functionName: "validatorExit",
|
|
1453
1453
|
args: [shares]
|
|
1454
1454
|
});
|
|
@@ -1460,7 +1460,7 @@ var stakingActions = (client, publicClient) => {
|
|
|
1460
1460
|
}
|
|
1461
1461
|
const validatorAddress = _optionalChain([options, 'optionalAccess', _61 => _61.validator]) || client.account.address;
|
|
1462
1462
|
const data = _viem.encodeFunctionData.call(void 0, {
|
|
1463
|
-
abi:
|
|
1463
|
+
abi: _chunkPPBY3UXFcjs.STAKING_ABI,
|
|
1464
1464
|
functionName: "validatorClaim",
|
|
1465
1465
|
args: [validatorAddress]
|
|
1466
1466
|
});
|
|
@@ -1469,7 +1469,7 @@ var stakingActions = (client, publicClient) => {
|
|
|
1469
1469
|
},
|
|
1470
1470
|
validatorPrime: async (options) => {
|
|
1471
1471
|
const data = _viem.encodeFunctionData.call(void 0, {
|
|
1472
|
-
abi:
|
|
1472
|
+
abi: _chunkPPBY3UXFcjs.STAKING_ABI,
|
|
1473
1473
|
functionName: "validatorPrime",
|
|
1474
1474
|
args: [options.validator]
|
|
1475
1475
|
});
|
|
@@ -1477,7 +1477,7 @@ var stakingActions = (client, publicClient) => {
|
|
|
1477
1477
|
},
|
|
1478
1478
|
setOperator: async (options) => {
|
|
1479
1479
|
const data = _viem.encodeFunctionData.call(void 0, {
|
|
1480
|
-
abi:
|
|
1480
|
+
abi: _chunkPPBY3UXFcjs.VALIDATOR_WALLET_ABI,
|
|
1481
1481
|
functionName: "setOperator",
|
|
1482
1482
|
args: [options.operator]
|
|
1483
1483
|
});
|
|
@@ -1493,7 +1493,7 @@ var stakingActions = (client, publicClient) => {
|
|
|
1493
1493
|
}
|
|
1494
1494
|
}
|
|
1495
1495
|
const data = _viem.encodeFunctionData.call(void 0, {
|
|
1496
|
-
abi:
|
|
1496
|
+
abi: _chunkPPBY3UXFcjs.VALIDATOR_WALLET_ABI,
|
|
1497
1497
|
functionName: "setIdentity",
|
|
1498
1498
|
args: [
|
|
1499
1499
|
options.moniker,
|
|
@@ -1512,7 +1512,7 @@ var stakingActions = (client, publicClient) => {
|
|
|
1512
1512
|
delegatorJoin: async (options) => {
|
|
1513
1513
|
const amount = parseStakingAmount(options.amount);
|
|
1514
1514
|
const data = _viem.encodeFunctionData.call(void 0, {
|
|
1515
|
-
abi:
|
|
1515
|
+
abi: _chunkPPBY3UXFcjs.STAKING_ABI,
|
|
1516
1516
|
functionName: "delegatorJoin",
|
|
1517
1517
|
args: [options.validator]
|
|
1518
1518
|
});
|
|
@@ -1528,7 +1528,7 @@ var stakingActions = (client, publicClient) => {
|
|
|
1528
1528
|
delegatorExit: async (options) => {
|
|
1529
1529
|
const shares = typeof options.shares === "string" ? BigInt(options.shares) : options.shares;
|
|
1530
1530
|
const data = _viem.encodeFunctionData.call(void 0, {
|
|
1531
|
-
abi:
|
|
1531
|
+
abi: _chunkPPBY3UXFcjs.STAKING_ABI,
|
|
1532
1532
|
functionName: "delegatorExit",
|
|
1533
1533
|
args: [options.validator, shares]
|
|
1534
1534
|
});
|
|
@@ -1540,7 +1540,7 @@ var stakingActions = (client, publicClient) => {
|
|
|
1540
1540
|
}
|
|
1541
1541
|
const delegatorAddress = options.delegator || client.account.address;
|
|
1542
1542
|
const data = _viem.encodeFunctionData.call(void 0, {
|
|
1543
|
-
abi:
|
|
1543
|
+
abi: _chunkPPBY3UXFcjs.STAKING_ABI,
|
|
1544
1544
|
functionName: "delegatorClaim",
|
|
1545
1545
|
args: [delegatorAddress, options.validator]
|
|
1546
1546
|
});
|
|
@@ -1558,7 +1558,7 @@ var stakingActions = (client, publicClient) => {
|
|
|
1558
1558
|
}
|
|
1559
1559
|
const walletContract = _viem.getContract.call(void 0, {
|
|
1560
1560
|
address: validator,
|
|
1561
|
-
abi:
|
|
1561
|
+
abi: _chunkPPBY3UXFcjs.VALIDATOR_WALLET_ABI,
|
|
1562
1562
|
client: publicClient
|
|
1563
1563
|
});
|
|
1564
1564
|
const [view, owner, operator, identityRaw, currentEpoch] = await Promise.all([
|
|
@@ -1799,7 +1799,7 @@ var stakingActions = (client, publicClient) => {
|
|
|
1799
1799
|
function chainActions(client) {
|
|
1800
1800
|
return {
|
|
1801
1801
|
initializeConsensusSmartContract: async (forceReset = false) => {
|
|
1802
|
-
if (_optionalChain([client, 'access', _62 => _62.chain, 'optionalAccess', _63 => _63.id]) ===
|
|
1802
|
+
if (_optionalChain([client, 'access', _62 => _62.chain, 'optionalAccess', _63 => _63.id]) === _chunkPPBY3UXFcjs.testnetAsimov.id) {
|
|
1803
1803
|
return;
|
|
1804
1804
|
}
|
|
1805
1805
|
if (!forceReset && _optionalChain([client, 'access', _64 => _64.chain, 'access', _65 => _65.consensusMainContract, 'optionalAccess', _66 => _66.address]) && _optionalChain([client, 'access', _67 => _67.chain, 'access', _68 => _68.consensusMainContract, 'optionalAccess', _69 => _69.abi])) {
|
|
@@ -1869,8 +1869,8 @@ var getCustomTransportConfig = (config, chainConfig) => {
|
|
|
1869
1869
|
}
|
|
1870
1870
|
};
|
|
1871
1871
|
};
|
|
1872
|
-
var createClient = (config = { chain:
|
|
1873
|
-
const chainConfig = config.chain ||
|
|
1872
|
+
var createClient = (config = { chain: _chunkPPBY3UXFcjs.localnet }) => {
|
|
1873
|
+
const chainConfig = config.chain || _chunkPPBY3UXFcjs.localnet;
|
|
1874
1874
|
if (config.endpoint) {
|
|
1875
1875
|
chainConfig.rpcUrls.default.http = [config.endpoint];
|
|
1876
1876
|
}
|
|
@@ -1931,4 +1931,4 @@ var createAccount = (accountPrivateKey) => {
|
|
|
1931
1931
|
|
|
1932
1932
|
|
|
1933
1933
|
|
|
1934
|
-
exports.abi = abi_exports; exports.chains =
|
|
1934
|
+
exports.abi = abi_exports; exports.chains = _chunkPPBY3UXFcjs.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.js
CHANGED
package/package.json
CHANGED
|
@@ -3,15 +3,16 @@ import {GenLayerChain} from "@/types";
|
|
|
3
3
|
import {STAKING_ABI} from "@/abi/staking";
|
|
4
4
|
|
|
5
5
|
// chains/localnet.ts
|
|
6
|
-
const TESTNET_JSON_RPC_URL = "https://
|
|
6
|
+
const TESTNET_JSON_RPC_URL = "https://zksync-os-testnet-genlayer.zksync.dev";
|
|
7
|
+
const TESTNET_WS_URL = "wss://zksync-os-testnet-alpha.zksync.dev/ws";
|
|
7
8
|
|
|
8
9
|
const STAKING_CONTRACT = {
|
|
9
|
-
address: "
|
|
10
|
+
address: "0x63Fa5E0bb10fb6fA98F44726C5518223F767687A" as Address,
|
|
10
11
|
abi: STAKING_ABI,
|
|
11
12
|
};
|
|
12
13
|
const EXPLORER_URL = "https://explorer-asimov.genlayer.com/";
|
|
13
14
|
const CONSENSUS_MAIN_CONTRACT = {
|
|
14
|
-
address: "
|
|
15
|
+
address: "0x6CAFF6769d70824745AD895663409DC70aB5B28E" as Address,
|
|
15
16
|
abi: [
|
|
16
17
|
{
|
|
17
18
|
inputs: [],
|
|
@@ -1401,7 +1402,7 @@ const CONSENSUS_MAIN_CONTRACT = {
|
|
|
1401
1402
|
};
|
|
1402
1403
|
|
|
1403
1404
|
const CONSENSUS_DATA_CONTRACT = {
|
|
1404
|
-
address: "
|
|
1405
|
+
address: "0x0D9d1d74d72Fa5eB94bcf746C8FCcb312a722c9B" as Address,
|
|
1405
1406
|
abi: [
|
|
1406
1407
|
{
|
|
1407
1408
|
inputs: [],
|
|
@@ -3989,6 +3990,7 @@ export const testnetAsimov: GenLayerChain = defineChain({
|
|
|
3989
3990
|
rpcUrls: {
|
|
3990
3991
|
default: {
|
|
3991
3992
|
http: [TESTNET_JSON_RPC_URL],
|
|
3993
|
+
webSocket: [TESTNET_WS_URL],
|
|
3992
3994
|
},
|
|
3993
3995
|
},
|
|
3994
3996
|
nativeCurrency: {
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// tests/smoke.test.ts
|
|
2
|
+
// Basic smoke tests to verify testnet chain configuration and connectivity
|
|
3
|
+
import {describe, it, expect} from "vitest";
|
|
4
|
+
import {testnetAsimov} from "@/chains/testnetAsimov";
|
|
5
|
+
import {createPublicClient, http} from "viem";
|
|
6
|
+
|
|
7
|
+
describe("Testnet Asimov Chain Config", () => {
|
|
8
|
+
it("should have valid RPC URL", () => {
|
|
9
|
+
const rpcUrl = testnetAsimov.rpcUrls.default.http[0];
|
|
10
|
+
expect(rpcUrl).toBe("https://zksync-os-testnet-genlayer.zksync.dev");
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it("should have valid WebSocket URL", () => {
|
|
14
|
+
const wsUrl = testnetAsimov.rpcUrls.default.webSocket?.[0];
|
|
15
|
+
expect(wsUrl).toBe("wss://zksync-os-testnet-alpha.zksync.dev/ws");
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it("should have consensus main contract address", () => {
|
|
19
|
+
expect(testnetAsimov.consensusMainContract?.address).toBe(
|
|
20
|
+
"0x6CAFF6769d70824745AD895663409DC70aB5B28E",
|
|
21
|
+
);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
it("should have consensus data contract address", () => {
|
|
25
|
+
expect(testnetAsimov.consensusDataContract?.address).toBe(
|
|
26
|
+
"0x0D9d1d74d72Fa5eB94bcf746C8FCcb312a722c9B",
|
|
27
|
+
);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
it("should have staking contract address", () => {
|
|
31
|
+
expect(testnetAsimov.stakingContract?.address).toBe(
|
|
32
|
+
"0x63Fa5E0bb10fb6fA98F44726C5518223F767687A",
|
|
33
|
+
);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it("should have correct chain ID", () => {
|
|
37
|
+
expect(testnetAsimov.id).toBe(0x107d);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
describe("Testnet Asimov RPC Connectivity", () => {
|
|
42
|
+
it("should connect and fetch chain ID", async () => {
|
|
43
|
+
const client = createPublicClient({
|
|
44
|
+
chain: testnetAsimov,
|
|
45
|
+
transport: http(testnetAsimov.rpcUrls.default.http[0]),
|
|
46
|
+
});
|
|
47
|
+
const chainId = await client.getChainId();
|
|
48
|
+
expect(chainId).toBe(testnetAsimov.id);
|
|
49
|
+
}, 15000);
|
|
50
|
+
|
|
51
|
+
it("should fetch latest block number", async () => {
|
|
52
|
+
const client = createPublicClient({
|
|
53
|
+
chain: testnetAsimov,
|
|
54
|
+
transport: http(testnetAsimov.rpcUrls.default.http[0]),
|
|
55
|
+
});
|
|
56
|
+
const blockNumber = await client.getBlockNumber();
|
|
57
|
+
expect(blockNumber).toBeGreaterThan(0n);
|
|
58
|
+
}, 15000);
|
|
59
|
+
});
|