-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathextensions.ts
60 lines (57 loc) · 1.76 KB
/
extensions.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import { BasicERC1155C, BasicERC721C, FansCreate, MarketplaceV2, OnchainIAP, TokenGateway } from "./typechain-types";
import { extendEnvironment } from "hardhat/config";
import "hardhat/types/runtime";
import { ContractOrAddrName, getAddressForNetwork } from "./lib/constant";
interface HelperFuncs {
loadTokenGateway(): Promise<TokenGateway>;
loadMarketplace(): Promise<MarketplaceV2>;
loadFansCreate(): Promise<FansCreate>;
loadOnchainIAP(): Promise<OnchainIAP>;
loadBasicERC721C(address: string): Promise<BasicERC721C>;
loadBasicERC1155C(address: string): Promise<BasicERC1155C>;
}
declare module "hardhat/types/runtime" {
export interface HardhatRuntimeEnvironment {
helpers: HelperFuncs;
}
}
extendEnvironment((hre) => {
hre.helpers = {
loadTokenGateway: () => {
return hre.ethers.getContractAt(
"TokenGateway",
getAddressForNetwork(ContractOrAddrName.TokenGateway, hre.network.name)
);
},
loadMarketplace: () => {
return hre.ethers.getContractAt(
"MarketplaceV2",
getAddressForNetwork(ContractOrAddrName.MarketplaceV2, hre.network.name)
);
},
loadFansCreate: () => {
return hre.ethers.getContractAt(
"FansCreate",
getAddressForNetwork(ContractOrAddrName.FansCreate, hre.network.name)
);
},
loadOnchainIAP: () => {
return hre.ethers.getContractAt(
"OnchainIAP",
getAddressForNetwork(ContractOrAddrName.OnchainIAP, hre.network.name)
);
},
loadBasicERC721C: (address: string) => {
return hre.ethers.getContractAt(
"BasicERC721C",
address
);
},
loadBasicERC1155C: (address: string) => {
return hre.ethers.getContractAt(
"BasicERC1155C",
address
);
}
};
});