@atomiqlabs/chain-starknet
Version:
Starknet specific base implementation
30 lines (25 loc) • 1.06 kB
text/typescript
import {StarknetModule} from "../StarknetModule";
import {StarknetTx} from "./StarknetTransactions";
import {DeployAccountContractPayload} from "starknet";
export class StarknetAccounts extends StarknetModule {
public async getAccountDeployTransaction(
deploymentData: DeployAccountContractPayload
): Promise<StarknetTx> {
if(deploymentData.contractAddress==null) throw new Error("Contract address required in deploy transaction!");
const feeDetails = this.root.Fees.getFeeDetails({l1DataGas: 1000, l2Gas: 5_000*40_000, l1Gas: 0}, await this.root.Fees.getFeeRate());
const details = {
...feeDetails,
walletAddress: deploymentData.contractAddress,
cairoVersion: "1" as const,
chainId: this.root.starknetChainId,
nonce: 0n,
accountDeploymentData: [],
skipValidate: false
};
return {
type: "DEPLOY_ACCOUNT",
tx: deploymentData,
details
};
}
}