static void Main(string[] args) { //Build the Matic Init Options maticInitOptions = new MaticInitOptions(); maticInitOptions.DepositManagerAddress = MaticConfiguration.DepositManagerAddress; maticInitOptions.RootChainAddress = MaticConfiguration.RootChainAddress; maticInitOptions.WithdrawManagerAddress = MaticConfiguration.WithdrawManagerAddress; maticInitOptions.ParentProvider = MaticConfiguration.ParentProvider; maticInitOptions.SyncerUrl = MaticConfiguration.ParentProvider; maticInitOptions.WatcherUrl = MaticConfiguration.WatcherUrl; maticInitOptions.MaticProvider = MaticConfiguration.Web3Provider; //Call A function Here string response = ApproveERC20TokensForDeposit().GetAwaiter().GetResult(); Console.WriteLine(response); Console.ReadLine(); }
public Matic(MaticInitOptions options) { if (String.IsNullOrEmpty(options.MaticProvider)) { throw new Exception("Matic Provider is required"); } if (String.IsNullOrEmpty(options.ParentProvider)) { throw new Exception("Parent provider is required"); } //Assign the Web3 Provider Urls ParentProvider = options.ParentProvider; MaticProvider = options.MaticProvider; //Define the Addresses For Matic RootChainContractAddress = options.RootChainAddress; WithdrawManagerContractAddress = options.WithdrawManagerAddress; DepositManagerContractAddress = options.DepositManagerAddress; //Define the Web3 Instances web3 = new Web3(MaticProvider); ParentWeb3 = new Web3(ParentProvider); //Create Root Chain Contract maticRootChainContract = new RootChainContract(ParentProvider, RootChainContractAddress); //Create Withdrawal Manger Contract maticWithrawalManagerContract = new WithdrawalManagerContract(MaticProvider, WithdrawManagerContractAddress); //Create Deposit Manager Contract maticDepositManagerContract = new DepositManagerContract(web3, DepositManagerContractAddress); //Assign the Syncer and Watcher Url SyncerUrl = options.SyncerUrl; WatcherUrl = options.WatcherUrl; }