-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathcontract.js
29 lines (26 loc) · 1.09 KB
/
contract.js
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
import { getAllowedNetworks, AGOS_TOKEN, AMEEGOS_ITEMS_CONTRACT, AMEEGOS_NFT_CONTRACT } from './contracts/ameegos.js';
import { getCurrentNetwork, switchNetwork, web3 } from './wallet.js';
export let NFTContract;
export let itemsContract;
export let tokenContract;
const initContract = async (contract) => {
if (!window.location.href.includes(contract.allowedURL)) {
return undefined;
}
let currentNetwork = await getCurrentNetwork();
if (!getAllowedNetworks(contract).includes(currentNetwork)) {
await switchNetwork(getAllowedNetworks(contract)[0])
currentNetwork = await getCurrentNetwork();
}
const address = contract.address[currentNetwork];
const abi = contract.abi;
return new web3.eth.Contract(abi, address);
}
export const setContracts = async () => {
itemsContract = await initContract(AMEEGOS_ITEMS_CONTRACT);
tokenContract = await initContract(AGOS_TOKEN);
NFTContract = await initContract(AMEEGOS_NFT_CONTRACT);
window.NFTContract = NFTContract;
window.itemsContract = itemsContract;
window.tokenContract = tokenContract;
}