tonweb
Version:
TonWeb - JavaScript API for TON blockchain
63 lines (62 loc) • 2.25 kB
TypeScript
import BN from 'bn.js';
import { Cell } from '../boc/cell';
import { HttpProvider } from '../providers/http-provider';
import { Address, AddressType } from '../utils/address';
export interface ContractOptions {
code?: Cell;
address?: AddressType;
wc?: number;
}
export interface ContractMethods {
}
export interface Method {
getQuery(): Promise<Cell>;
send(): Promise<any>;
estimateFee(): Promise<any>;
}
export interface StateInit {
stateInit: Cell;
address: Address;
code: Cell;
data: Cell;
}
/**
* @todo: this type is created on indirect data
* and needs proper revision
*/
export interface Query {
address: Address;
message: Cell;
code?: Cell;
body: Cell;
data?: Cell;
signature?: Uint8Array;
signingMessage?: Cell;
stateInit?: Cell;
}
export declare class Contract<OptionsType extends ContractOptions = ContractOptions, MethodsType extends ContractMethods = ContractMethods> {
readonly provider: HttpProvider;
readonly options: OptionsType;
static createStateInit(code: Cell, data: Cell, library?: undefined, splitDepth?: undefined, ticktock?: undefined): Cell;
static createInternalMessageHeader(dest: AddressType, nanograms?: (number | BN), ihrDisabled?: boolean, bounce?: boolean, bounced?: boolean, src?: AddressType, currencyCollection?: undefined, ihrFees?: (number | BN), fwdFees?: (number | BN), createdLt?: (number | BN), createdAt?: (number | BN)): Cell;
static createExternalMessageHeader(dest: AddressType, src?: AddressType, importFee?: (number | BN)): Cell;
/**
* Creates CommonMsgInfo cell that contains specified
* header, stateInit and body.
*/
static createCommonMsgInfo(header: Cell, stateInit?: Cell, body?: Cell): Cell;
static createMethod(provider: HttpProvider, queryPromise: Promise<Query>): Method;
address?: Address;
methods: MethodsType;
constructor(provider: HttpProvider, options?: OptionsType);
getAddress(): Promise<Address>;
createStateInit(): Promise<StateInit>;
/**
* Return cell that contains contract data.
*/
protected createDataCell(): Cell;
/**
* Returns cell that contains contact code.
*/
private createCodeCell;
}