@atomiqlabs/chain-starknet
Version:
Starknet specific base implementation
30 lines (24 loc) • 1.08 kB
text/typescript
import {StarknetBase, StarknetRetryPolicy} from "../base/StarknetBase";
import {constants, Contract, Provider, TypedContractV2} from "starknet";
import {StarknetFees} from "../base/modules/StarknetFees";
import {Abi} from "abi-wan-kanabi";
import {StarknetContractEvents} from "./modules/StarknetContractEvents";
/**
* Base class providing program specific utilities
*/
export class StarknetContractBase<T extends Abi> extends StarknetBase {
contract: TypedContractV2<T>;
public readonly Events: StarknetContractEvents<T>;
constructor(
chainId: constants.StarknetChainId,
provider: Provider,
contractAddress: string,
contractAbi: T,
retryPolicy?: StarknetRetryPolicy,
solanaFeeEstimator: StarknetFees = new StarknetFees(provider)
) {
super(chainId, provider, retryPolicy, solanaFeeEstimator);
this.contract = new Contract(contractAbi, contractAddress, provider).typedv2(contractAbi);
this.Events = new StarknetContractEvents(this, contractAbi);
}
}