Documentation Index
Fetch the complete documentation index at: https://voltaire.tevm.sh/llms.txt
Use this file to discover all available pages before exploring further.
Looking for Contributors! This Skill needs an implementation.Contributing a Skill involves:
- Writing a reference implementation with full functionality
- Adding comprehensive tests
- Writing documentation with usage examples
See the ethers-provider Skill for an example of a complete Skill implementation.Interested? Open an issue or PR at github.com/evmts/voltaire.
Skill — Copyable reference implementation. Use as-is or customize. See Skills Philosophy.
Build on Arbitrum with native bridging and Stylus support.
Planned Implementation
Provider Setup
import { Arbitrum } from './Arbitrum.js';
const arb = Arbitrum({
l1Provider,
l2Provider,
l1Gateway: L1_GATEWAY_ROUTER,
l2Gateway: L2_GATEWAY_ROUTER,
});
Bridge Assets
// Deposit ETH to L2
await arb.depositEth({
amount: parseEther('1'),
signer: l1Signer,
});
// Deposit ERC20
await arb.depositToken({
l1Token: USDC_L1,
amount: parseUnits('1000', 6),
signer: l1Signer,
});
// Withdraw to L1 (7 day delay)
await arb.withdrawEth({
amount: parseEther('1'),
signer: l2Signer,
});
Retryable Tickets
// Create L1->L2 message
const ticket = await arb.createRetryableTicket({
to: l2Contract,
l2CallValue: 0n,
data: encodedCall,
maxSubmissionCost,
gasLimit: 1000000n,
maxFeePerGas,
signer: l1Signer,
});
// Redeem failed ticket
await arb.redeemRetryable({
ticketId,
signer: l2Signer,
});
ArbOS Precompiles
// Get L1 block number
const l1Block = await arb.arbSys.arbBlockNumber();
// Get L2 to L1 tx count
const count = await arb.arbSys.sendTxToL1Count();
Resources