import { ethers } from "ethers"; import { BundleOptions } from "./bundle-options"; import { Topic } from "./sdk/topic"; export declare class Smartcontract { topic: Topic; constructor(group: string, name: string); /** * @description Deploy smartcontract using hardhat framework and at the same time register it on SDS. */ deployInHardhat(deployer: ethers.Signer, contract: ethers.ContractFactory, constructorArguments: Array): Promise; /** * Deploys smartcontract on the blockchain, then registers it on SeascapeSDS. * @param deployer The passed Truffle.Deployer object in the migration file * @param contract The artifact * @param constructorArguments */ deployInTruffle(deployer: any, contract: any, web3: any, deployer_address: string, constructorArguments: Array): Promise; /** * Register already deployed smartcontract in SDS. * @param network_id NetworkID where contract is deployed * @param address Smartcontract address * @param txid contract creation transaction hash * @param abi ABI directly compatible with JSON encoding */ registerInHardhat(deployer: ethers.Signer, address: string, txid: string): Promise; /** * Registers already deployed smartcontract on SeascapeSDS * @param address Smartcontract address * @param txid Smartcontract deployment transaction hash * @param network_id The network id where the smartcontract was deployed on * @param deployer_address of the address that deployed the smartcontract * @param contract Smartcontract artifact */ registerInTruffle(address: string, txid: string, web3: any, deployer_address: string, contract: any): Promise; /** * Its tested in Hardhat framework. * @warning Only supported in Hardhat framework * @param smartcontractDeveloper The developer * @param signerAddress * @param method * @param options */ enableBundling(smartcontractDeveloper: any, signerAddress: string, method: string, options: BundleOptions): Promise; /** * Returns the Smartcontract interface * @param data JSON string or object * @returns ethers.ContractInterface * @throws error is data is string and can not be parsed as a JSON */ static loadAbi(data: string | object | Array): ethers.ContractInterface; }