import 'dart:convert';
import 'package:web3dart/web3dart.dart';
import 'package:smart_contract_client/smart_contract_client.dart';
class SmartContract extends DeployedContract {
SmartContract._(super.abi, super.address, this.credentials);
factory SmartContract.fromData({
required String abiInfo,
required String privateKey,
required String contractAddress,
}) {
try {
final abiDecoded = jsonDecode(abiInfo) as Map<String, dynamic>;
final abi = jsonEncode(abiDecoded['abi']);
final address = EthereumAddress.fromHex(contractAddress);
final credentials = EthPrivateKey.fromHex(privateKey);
return SmartContract._(
ContractAbi.fromJson(abi, 'HelloWeb3'),
address,
credentials,
);
} catch (e) {
throw SmartContractException(e);
}
}
final Credentials credentials;
ContractFunction getName() => function('getName');
ContractFunction setName() => function('setName');
}
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter