The getModule method is the most basic way to get the interact-able contract instance for a given module.
Import:imported as follows
import { getModule } from '@inverter-network/sdk'
Parameters: an object with the following properties
({
// the name of the module
name: ModuleName
} | {
// manually passed module data
moduleData: ModuleData
}) & {
// the address of the deployed module
address: `0x${string}`
// the public client or provider to make RPC calls
publicClient: PublicClient
// the wallet client to sign and submit transactions
walletClient?: WalletClient
// The parser config, in charge of decimals, ...
tagConfig?: TagConfig
// The Inverter instance in charge of cache
self?: Inverter
}
Returns: a Module object with the following properties
{
// the name of the module
name: ModuleName | ModuleData['name']
// the address of the deployed module
address: `0x${string}`
// the type of the module (e.g. authorizer)
moduleType: ModuleType
// short description of the module taken from the contract NatSpec documentation
description: string
// the write method
write: {
[functionName: string]: {
// name of the function
name: string
// description of what the function does taken from NatSpec
description: string
// inputs of the abi item
inputs: ExtendedAbiParameter[]
// outputs of the abi member
outputs: ExtendedAbiParameter[]
// an asynchronous function that whose parameters are of type Primitive<`inputs`> and return values are of type Primitive<`outputs`>
run: (args: GetMethodArgs, options?: MethodOptions) => Promise<GetMethodResponse>
}
}
estimateGas: // same as write ...
simulate: // same as write ...
read: // same as write ...
bytecode: // same as write ...
}