From 1c8e0fef05aa50712422b10cdacc48458b074a46 Mon Sep 17 00:00:00 2001 From: medhatiwari Date: Wed, 27 Oct 2021 20:47:04 +0530 Subject: [PATCH] #18 code for funcion getAbi() --- lib/contract_linking.dart | 46 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/lib/contract_linking.dart b/lib/contract_linking.dart index bb473a2..065b5cb 100644 --- a/lib/contract_linking.dart +++ b/lib/contract_linking.dart @@ -1,7 +1,12 @@ import 'package:flutter/material.dart'; +import 'package:http/http.dart'; +import 'package:web3dart/web3dart.dart'; +import 'package:web_socket_channel/io.dart'; +import 'dart:convert'; +import 'package:flutter/services.dart'; +import 'package:flutter/cupertino.dart'; class ContractLinking extends ChangeNotifier { - final String _rpcUrl = "http://10.0.2.2:7545"; final String _wsUrl = "ws://10.0.2.2:7545/"; final String _privateKey = " Private Key :) "; @@ -10,15 +15,50 @@ class ContractLinking extends ChangeNotifier { String _abiCode; EthereumAddress _contractAddress; - EthreumAddress _ownerAddress; + EthereumAddress _ownerAddress; Credentials _credentials; - + DeployedContract _contract; + ContractFunction _bidderName; ContractFunction _bidAmount; ContractFunction _minAmount; ContractFunction _setBidder; ContractFunction _minBid; + + initialSetup() async { + _client = Web3Client(_rpcUrl, Client(), socketConnector: () { + return IOWebSocketChannel.connect(_wsUrl).cast(); + }); + + await getAbi(); + await getCredentials(); + await getDeployedContract(); + } + + Future getAbi() async { + String abiFile = await rootBundle.loadString("src/artifacts/Bidder.json"); + var jsonAbi = jsonDecode(abiFile); + _abiCode = jsonEncode(jsonAbi["abi"]); + + _contractAddress = + EthereumAddress.fromHex(jsonAbi["networks"]["5777"]["address"]); + } + + + Future getCredentials() async { + _credentials = await _client.credentialsFromPrivateKey(_privateKey); + _ownerAddress = await _credentials.extractAddress(); + } + + Future getDeployedContract() async { + _contract = DeployedContract(ContractAbi.fromJson(_abiCode, "Bidder"), _contractAddress); + + _bidderName = _contract.function("bidderName"); + _bidAmount = _contract.function("bidAmount"); + _minAmount = _contract.function("minBid"); + _setBidder = _contract.function("setBidder"); + } }