@axiom-crypto/keystore-sdk
Version:
Keystore Rollup SDK
29 lines • 1.05 kB
JavaScript
import { TransactionType, } from "../types";
import { encodePacked, keccak256, numberToHex, pad } from "viem";
export async function createDepositTransactionClient(tx) {
const l1InitiatedNonce = tx.l1InitiatedNonce
? numberToHex(tx.l1InitiatedNonce, { size: 32 })
: pad("0x", { size: 32 });
const amt = tx.amt;
const keystoreAddress = tx.keystoreAddress;
const toBytes = () => {
return encodePacked(["bytes1", "bytes", "uint256", "bytes"], [TransactionType.Deposit, l1InitiatedNonce, amt, keystoreAddress]);
};
const txHash = () => keccak256(toBytes());
const l1InitiatedTransaction = () => {
return {
txType: TransactionType.Deposit,
data: encodePacked(["uint256", "bytes32"], [amt, keystoreAddress]),
};
};
return {
txType: TransactionType.Deposit,
l1InitiatedNonce: tx.l1InitiatedNonce,
amt,
keystoreAddress,
toBytes,
txHash,
l1InitiatedTransaction,
};
}
//# sourceMappingURL=deposit.js.map