Files
warp/src/contract/deploy/CreateContract.ts
Asia cc0791bea0 feat: deploy contract using evm signature (#257)
* feat: deploy contract using evm signature

* fix: review fixes
2022-11-24 16:34:02 +01:00

53 lines
1.2 KiB
TypeScript

import { JWKInterface } from 'arweave/node/lib/wallet';
import { SignatureType } from '../../contract/Signature';
export type Tags = { name: string; value: string }[];
export type ArWallet = JWKInterface | 'use_wallet';
export type ContractType = 'js' | 'wasm';
export type ArTransfer = {
target: string;
winstonQty: string;
};
export const emptyTransfer: ArTransfer = {
target: '',
winstonQty: '0'
};
export interface CommonContractData {
wallet: ArWallet | SignatureType;
initState: string;
tags?: Tags;
transfer?: ArTransfer;
data?: {
'Content-Type': string;
body: string | Uint8Array | ArrayBuffer;
};
}
export interface ContractData extends CommonContractData {
src: string | Buffer;
wasmSrcCodeDir?: string;
wasmGlueCode?: string;
}
export interface FromSrcTxContractData extends CommonContractData {
srcTxId: string;
}
export interface ContractDeploy {
contractTxId: string;
srcTxId?: string;
}
export interface CreateContract {
deploy(contractData: ContractData, disableBundling?: boolean): Promise<ContractDeploy>;
deployFromSourceTx(contractData: FromSrcTxContractData, disableBundling?: boolean): Promise<ContractDeploy>;
deployBundled(rawDataItem: Buffer): Promise<ContractDeploy>;
}