dp-contract-proxy-kit
Version:
Enable batched transactions and contract account interactions using a unique deterministic Gnosis Safe.
75 lines (74 loc) • 2.13 kB
TypeScript
import { Address, NumberLike } from './basicTypes';
export declare enum OperationType {
Call = 0,
DelegateCall = 1
}
interface GasLimitOptions {
gas?: NumberLike;
gasLimit?: NumberLike;
safeTxGas?: number;
}
interface BaseTxOptions extends GasLimitOptions {
gasPrice?: NumberLike;
}
export interface ExecOptions extends BaseTxOptions {
nonce?: NumberLike;
}
export interface CallOptions extends BaseTxOptions {
from?: Address;
}
export interface SendOptions extends ExecOptions {
from: Address;
}
export interface EthTx {
to: string;
value?: NumberLike;
data?: string;
}
export interface EthCallTx extends EthTx, CallOptions {
}
export interface EthSendTx extends EthTx, SendOptions {
}
export interface Transaction extends EthTx {
operation?: OperationType;
}
export interface SimpleTransactionResult {
hash?: string;
safeTxHash?: string;
}
export interface Web3TransactionResult extends SimpleTransactionResult {
sendOptions?: SendOptions;
promiEvent: Promise<any>;
}
export interface EthersTransactionResult extends SimpleTransactionResult {
transactionResponse: Record<string, any>;
}
export interface TransactionResult extends SimpleTransactionResult {
sendOptions?: SendOptions;
promiEvent?: any;
transactionResponse?: Record<string, any>;
}
export declare class TransactionError extends Error {
revertData?: string;
revertMessage?: string;
constructor(message: string, revertData?: string, revertMessage?: string);
}
export interface StandardTransaction {
operation: OperationType;
to: Address;
value: string;
data: string;
}
export declare function standardizeTransaction(tx: Transaction): StandardTransaction;
export declare type NormalizeGas<T> = Pick<T, Exclude<keyof T, 'gasLimit'>>;
export declare function normalizeGasLimit<T extends GasLimitOptions>(options: T): NormalizeGas<T>;
export interface RpcCallTx {
from?: Address;
to: Address;
gas?: string;
gasPrice?: string;
value?: string;
data?: string;
}
export declare function formatCallTx(tx: EthCallTx): RpcCallTx;
export {};