Skip to content

Commit 3a985c6

Browse files
authored
Merge pull request #20 from randa-mu/feat/custom-gas-buffer
Add support for Arbitrum One Mainnet
2 parents bb8d128 + 1d0ebfa commit 3a985c6

6 files changed

Lines changed: 44 additions & 2 deletions

File tree

.env.example

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ OPTIMISM_SEPOLIA_RPC_URL=https://sepolia.optimism.io
2828
ARBITRUM_SEPOLIA_PRIVATE_KEY=somehexstringwithoutthe0xprefix
2929
ARBITRUM_SEPOLIA_RPC_URL=https://api.zan.top/arb-sepolia
3030

31+
# arbitrum mainnet
32+
ARBITRUM_MAINNET_PRIVATE_KEY=somehexstringwithoutthe0xprefix
33+
ARBITRUM_MAINNET_RPC_URL=wss://arbitrum-one-rpc.publicnode.com
34+
3135
# Sei testnet
3236
SEI_TESTNET_PRIVATE_KEY=somehexstringwithoutthe0xprefix
3337
SEI_TESTNET_RPC_URL=wss://sei-testnet.drpc.org

.github/workflows/build.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ env:
88
BLS_KEY: ${{ secrets.BLS_KEY }}
99
ARBITRUM_SEPOLIA_PRIVATE_KEY: ${{ secrets.ARBITRUM_SEPOLIA_PRIVATE_KEY }}
1010
ARBITRUM_SEPOLIA_RPC_URL: ${{ secrets.ARBITRUM_SEPOLIA_RPC_URL }}
11+
ARBITRUM_MAINNET_PRIVATE_KEY: ${{ secrets.ARBITRUM_MAINNET_PRIVATE_KEY }}
12+
ARBITRUM_MAINNET_RPC_URL: ${{ secrets.ARBITRUM_MAINNET_RPC_URL }}
1113
AVALANCHE_C_CHAIN_PRIVATE_KEY: ${{ secrets.AVALANCHE_C_CHAIN_PRIVATE_KEY }}
1214
AVALANCHE_C_CHAIN_RPC_URL: ${{ secrets.AVALANCHE_C_CHAIN_RPC_URL }}
1315
BASE_PRIVATE_KEY: ${{ secrets.BASE_PRIVATE_KEY }}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "blocklock-js",
3-
"version": "1.0.1",
3+
"version": "1.0.2",
44
"description": "A library for encrypting and decrypting data for the future",
55
"source": "src/index.ts",
66
"main": "./dist/cjs/index.cjs",

src/blocklock.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
configForChainId,
1212
NetworkConfig,
1313
ARBITRUM_SEPOLIA,
14+
ARBITRUM_MAINNET,
1415
AVALANCHE_C_CHAIN,
1516
BASE_SEPOLIA,
1617
BASE_MAINNET,
@@ -310,6 +311,10 @@ export class Blocklock {
310311
return new Blocklock(rpc, ARBITRUM_SEPOLIA)
311312
}
312313

314+
static createArbitrumMainnet(rpc: Signer | Provider): Blocklock {
315+
return new Blocklock(rpc, ARBITRUM_MAINNET)
316+
}
317+
313318
static createSeiTestnet(rpc: Signer | Provider): Blocklock {
314319
return new Blocklock(rpc, SEI_TESTNET)
315320
}

src/networks.ts

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,30 @@ export const OPTIMISM_SEPOLIA: NetworkConfig = {
187187
gasMultiplierDefault: 10n,
188188
}
189189

190+
export const ARBITRUM_MAINNET: NetworkConfig = {
191+
name: "arbitrum_mainnet",
192+
chainId: 42161n,
193+
contractAddress: "0x78ebbbc39f7244bE80C76f11248f5a2645978e25",
194+
publicKey: BLOCKLOCK_MAINNET_PUBLIC_KEY,
195+
ibeOpts: {
196+
hash: keccak_256,
197+
k: 128,
198+
expand_fn: "xmd",
199+
dsts: {
200+
H1_G1: encodeBytes(`BLOCKLOCK_BN254G1_XMD:KECCAK-256_SVDW_RO_H1_0x000000000000000000000000000000000000000000000000000000000000a4b1_`),
201+
H2: encodeBytes(`BLOCKLOCK_BN254_XMD:KECCAK-256_H2_0x000000000000000000000000000000000000000000000000000000000000a4b1_`),
202+
H3: encodeBytes(`BLOCKLOCK_BN254_XMD:KECCAK-256_H3_0x000000000000000000000000000000000000000000000000000000000000a4b1_`),
203+
H4: encodeBytes(`BLOCKLOCK_BN254_XMD:KECCAK-256_H4_0x000000000000000000000000000000000000000000000000000000000000a4b1_`),
204+
}
205+
},
206+
gasLimit: 100_000,
207+
maxFeePerGas: ethers.parseUnits("0.2", "gwei"),
208+
maxPriorityFeePerGas: ethers.parseUnits("0.2", "gwei"),
209+
gasBufferPercent: 100n,
210+
callbackGasLimitDefault: 1_000_000n,
211+
gasMultiplierDefault: 10n,
212+
}
213+
190214
export const ARBITRUM_SEPOLIA: NetworkConfig = {
191215
name: "arbitrum_sepolia",
192216
chainId: 421614n,
@@ -236,7 +260,7 @@ export const SEI_TESTNET: NetworkConfig = {
236260
}
237261

238262
export const SUPPORTED_TESTNETS = [FILECOIN_CALIBNET, BASE_SEPOLIA, AVALANCHE_C_CHAIN, OPTIMISM_SEPOLIA, ARBITRUM_SEPOLIA, SEI_TESTNET]
239-
export const SUPPORTED_MAINNETS = [FILECOIN_MAINNET, POLYGON_POS]
263+
export const SUPPORTED_MAINNETS = [FILECOIN_MAINNET, POLYGON_POS, ARBITRUM_MAINNET, BASE_MAINNET]
240264

241265
export function configForChainId(chainId: bigint | number | string): NetworkConfig {
242266
chainId = BigInt(chainId)

test/integration.test.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,13 @@ describe("Blocklock integration tests with supported networks", () => {
100100
await runEncryptionTest(rpc, blocklock)
101101
}, TIMEOUT)
102102

103+
it.skip("should encrypt and decrypt for arbitrum mainnet", async () => {
104+
const rpc = createProvider(process.env.ARBITRUM_MAINNET_RPC_URL || "")
105+
const wallet = new NonceManager(new Wallet(process.env.ARBITRUM_MAINNET_PRIVATE_KEY || "", rpc))
106+
const blocklock = Blocklock.createArbitrumMainnet(wallet)
107+
await runEncryptionTest(rpc, blocklock)
108+
}, TIMEOUT)
109+
103110
// skipping temporarily because there's some weirdness with their RPC
104111
it.skip("should encrypt and decrypt for sei testnet", async () => {
105112
const rpc = createProvider(process.env.SEI_TESTNET_RPC_URL || "")

0 commit comments

Comments
 (0)