import { Address, Uint } from './eth_types.js'; import { SupportedProviders } from './web3_base_provider.js'; import { Bytes, HexString } from './primitives_types.js'; import { EthExecutionAPI } from './apis/eth_execution_api.js'; import { AbiFragment, ContractAbi } from './eth_abi_types.js'; export interface ContractInitOptions { /** * The maximum gas provided for a transaction (gas limit). */ readonly gas?: Uint; readonly gasLimit?: Uint; /** * The gas price in wei to use for transactions. */ readonly gasPrice?: Uint; /** * The address transactions should be made from */ readonly from?: Address; /** * The byte code of the contract. Used when the contract gets {@link Contract.deploy | deployed} */ readonly data?: Bytes; readonly input?: Bytes; readonly provider?: SupportedProviders | string; /** * If `true`, the defaults of the contract instance will be updated automatically based on the changes of the context used to instantiate the contract. */ readonly syncWithContext?: boolean; readonly dataInputFill?: 'data' | 'input' | 'both'; } export interface NonPayableCallOptions { nonce?: HexString; /** * The address which is the call (the transaction) should be made from. For calls the `from` property is optional however it is * highly recommended to explicitly set it or it may default to address(0) depending on your node or provider. */ from?: Address; /** * The maximum gas (gas limit) provided for this call (this transaction) */ gas?: string; maxPriorityFeePerGas?: HexString; maxFeePerGas?: HexString; /** * The gas price in wei to use for this call `transaction`. */ gasPrice?: string; type?: string | number; data?: HexString; input?: HexString; } export interface PayableCallOptions extends NonPayableCallOptions { /** * */ value?: string; } export type ContractAbiWithSignature = ReadonlyArray; /** * Represents the options for a contract. */ export interface ContractOptions { /** * The maximum gas provided for a transaction (gas limit). */ readonly gas?: Uint; /** * The gas price in wei to use for transactions. */ readonly gasPrice?: Uint; /** * The address transactions should be made from. */ readonly from?: Address; /** * The byte code of the contract. Used when the contract gets {@link Contract.deploy | deployed} */ readonly input?: Bytes; /** * The byte code of the contract. Used when the contract gets {@link Contract.deploy | deployed} */ readonly data?: Bytes; /** * The {@doclink glossary#json-interface-abi | json interface} object derived from the [ABI](https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI) of this contract. * * Re-setting this will regenerate the methods and events of the contract instance. * * @example * ```ts * myContract.options.jsonInterface; * > [{ * "type":"function", * "name":"foo", * "inputs": [{"name":"a","type":"uint256"}], * "outputs": [{"name":"b","type":"address"}], * "signature": "0x...", * },{ * "type":"event", * "name":"Event", * "inputs": [{"name":"a","type":"uint256","indexed":true},{"name":"b","type":"bytes32","indexed":false}], * "signature": "0x...", * }] * * // Set a new ABI interface * // Note: the "signature" of every function and event's ABI is not needed to be provided when assigning. * // It will be calculated and set automatically inside the setter. * myContract.options.jsonInterface = [...]; * ``` */ get jsonInterface(): ContractAbiWithSignature; set jsonInterface(value: ContractAbi); /** * The address used for this contract instance. All transactions generated by web3.js from this contract will contain this address as the `to`. * * The address will be stored in lowercase. * * @example * ```ts * myContract.options.address; * > '0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae' * * // set a new address * myContract.options.address = '0x1234FFDD...'; * ``` */ address?: Address; /** * The max priority fee per gas to use for transactions. */ maxPriorityFeePerGas?: Uint; /** * The max fee per gas to use for transactions. */ maxFeePerGas?: Uint; } //# sourceMappingURL=eth_contract_types.d.ts.map