UNPKG

@axiom-crypto/keystore-sdk

Version:

Keystore Rollup SDK

51 lines 2.1 kB
import { TransactionType, } from "../types"; import AxiomKeystoreRollupAbi from "./abi/AxiomKeystoreRollup.json"; import { writeContract } from "viem/actions"; const abi = AxiomKeystoreRollupAbi.abi; async function initiateL1Transaction(client, // eslint-disable-line @typescript-eslint/no-explicit-any parameters) { const { bridgeAddress, txClient } = parameters; const value = await (async () => { switch (txClient.txType) { case TransactionType.Deposit: return ((await client.l1InitiatedFee({ bridgeAddress, txType: TransactionType.Deposit })) + txClient.amt); case TransactionType.Withdraw: return client.l1InitiatedFee({ bridgeAddress, txType: TransactionType.Withdraw }); case TransactionType.Update: return client.l1InitiatedFee({ bridgeAddress, txType: TransactionType.Update }); default: throw new Error(`Unsupported transaction type`); } })(); return await writeContract(client, { account: client.account, chain: client.chain, address: bridgeAddress, abi, functionName: "initiateL1Transaction", args: [txClient.l1InitiatedTransaction()], value, }); } async function finalizeWithdrawal(client, // eslint-disable-line @typescript-eslint/no-explicit-any parameters) { const { bridgeAddress, batchIndex, outputRootPreimage, withdrawalArgs, proof, isLeft } = parameters; return await writeContract(client, { account: client.account, chain: client.chain, address: bridgeAddress, abi, functionName: "finalizeWithdrawal", args: [batchIndex, outputRootPreimage, withdrawalArgs, proof, isLeft], }); } export function walletActionsL1() { return (client) => { return { initiateL1Transaction: (parameters) => initiateL1Transaction(client, parameters), finalizeWithdrawal: (parameters) => finalizeWithdrawal(client, parameters), }; }; } //# sourceMappingURL=walletL1.js.map