本文整理匯總了TypeScript中ethers.ethers.ContractFactory類的典型用法代碼示例。如果您正苦於以下問題:TypeScript ethers.ContractFactory類的具體用法?TypeScript ethers.ContractFactory怎麽用?TypeScript ethers.ContractFactory使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了ethers.ContractFactory類的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: async
export const deployContract = async (
contract: any,
wallet: ethers.Wallet,
args?: any[]
): Promise<ethers.Contract> => {
const contractFactory = new ethers.ContractFactory(
contract.abi,
contract.binary,
wallet
);
return contractFactory.deploy(...(args || []));
};
示例2: beforeEach
beforeEach(async () => {
const contractFactory = new ethers.ContractFactory(
appInstance.abi,
await appInstance.generateLinkedBytecode(networkID),
unlockedAccount
);
stateChannel = await contractFactory.deploy(
accounts[0],
[A.address, B.address],
ethers.constants.HashZero,
ethers.constants.HashZero,
10
);
});
示例3: deploy
/**
* Deploy new instance of contract
* @param wallet Wallet (with provider) to use for contract calls
* @param args Optional arguments to pass to contract constructor
* @returns New contract instance
*/
public async deploy(wallet: ethers.Wallet, args?: any[]): Promise<Contract> {
if (!wallet.provider) {
throw new Error("Signer requires provider");
}
const networkId = (await wallet.provider.getNetwork()).chainId;
const bytecode = (await this.links)
? await this.generateLinkedBytecode(networkId)
: this.bytecode;
const contractFactory = new ethers.ContractFactory(
this.abi,
bytecode,
wallet
);
return contractFactory.deploy(...(args || []));
}
示例4: beforeEach
beforeEach(async () => {
const networkID = await AbstractContract.getNetworkID(unlockedAccount);
const staticCall = AbstractContract.fromArtifactName("StaticCall");
const signatures = AbstractContract.fromArtifactName("Signatures");
const transfer = AbstractContract.fromArtifactName("Transfer");
const appInstance = await AbstractContract.fromArtifactName("AppInstance", {
Signatures: signatures,
StaticCall: staticCall,
Transfer: transfer
});
const countingApp = await AbstractContract.fromArtifactName("CountingApp", {
StaticCall: staticCall
});
game = await countingApp.deploy(unlockedAccount);
app = {
addr: game.address,
resolve: game.interface.functions.resolve.sighash,
applyAction: game.interface.functions.applyAction.sighash,
getTurnTaker: game.interface.functions.getTurnTaker.sighash,
isStateTerminal: game.interface.functions.isStateTerminal.sighash
};
terms = {
assetType: AssetType.ETH,
limit: Utils.UNIT_ETH.mul(2),
token: ethers.constants.AddressZero
};
const contractFactory = new ethers.ContractFactory(
appInstance.abi,
await appInstance.generateLinkedBytecode(networkID),
unlockedAccount
);
stateChannel = await contractFactory.deploy(
accounts[0],
[A.address, B.address],
keccak256(encode(appEncoding, app)),
keccak256(encode(termsEncoding, terms)),
10
);
});
示例5: beforeEach
beforeEach(async () => {
const paymentApp = await AbstractContract.fromArtifactName("PaymentApp");
pc = await paymentApp.deploy(unlockedAccount);
// Specifically for the AppInstance
const appInstance = artifacts.require("AppInstance");
const staticCall = artifacts.require("StaticCall");
const signatures = artifacts.require("Signatures");
const transfer = artifacts.require("Transfer");
appInstance.link("Signatures", signatures.address);
appInstance.link("StaticCall", staticCall.address);
appInstance.link("Transfer", transfer.address);
app = {
addr: pc.address,
resolve: pc.interface.functions.resolve.sighash,
applyAction: "0x00000000",
getTurnTaker: "0x00000000",
isStateTerminal: "0x00000000"
};
terms = {
assetType: AssetType.ETH,
limit: Utils.UNIT_ETH.mul(2),
token: ethers.constants.AddressZero
};
const contractFactory = new ethers.ContractFactory(
appInstance.abi,
appInstance.binary,
unlockedAccount
);
testAppInstance = await contractFactory.deploy(
accounts[0],
[A.address, B.address],
keccak256(encode(appEncoding, app)),
keccak256(encode(termsEncoding, terms)),
10
);
});