UNPKG

@atomiqlabs/chain-starknet

Version:

Starknet specific base implementation

30 lines (24 loc) 1.08 kB
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); } }