-
Notifications
You must be signed in to change notification settings - Fork 1
/
setURITemplate.ts
62 lines (56 loc) · 1.93 KB
/
setURITemplate.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
61
62
import { ethers, network, rigsDeployment } from "hardhat";
import { TablelandRigs } from "../typechain-types";
import { getURITemplate } from "../helpers/uris";
async function main() {
console.log(`\nSetting URI template on '${network.name}'...`);
// Get proxy owner account
const [account] = await ethers.getSigners();
if (account.provider === undefined) {
throw Error("missing provider");
}
// Get contract address
if (rigsDeployment.contractAddress === "") {
throw Error(`no contractAddress entry for '${network.name}'`);
}
console.log(`Using address '${rigsDeployment.contractAddress}'`);
// Ensure we can build URI template
if (rigsDeployment.rigsTable === "") {
throw Error(`missing rigs table entry in deployments`);
}
if (rigsDeployment.attributesTable === "") {
throw Error(`missing attributes table entry in deployments`);
}
if (rigsDeployment.lookupsTable === "") {
throw Error(`missing lookups table entry in deployments`);
}
if (rigsDeployment.dealsTable === "") {
throw Error(`missing deals table entry in deployments`);
}
if (rigsDeployment.pilotSessionsTable === "") {
throw Error(`missing pilot sessions table entry in deployments`);
}
// Update URI template
const rigs = (await ethers.getContractFactory("TablelandRigs")).attach(
rigsDeployment.contractAddress
) as TablelandRigs;
const uriTemplate = await getURITemplate(
rigsDeployment.tablelandHost,
rigsDeployment.rigsTable,
rigsDeployment.attributesTable,
rigsDeployment.dealsTable,
rigsDeployment.lookupsTable,
rigsDeployment.pilotSessionsTable,
rigsDeployment.displayAttributes
);
const tx = await rigs.setURITemplate(uriTemplate);
const receipt = await tx.wait();
console.log(
`URI template set to '${uriTemplate}' with txn '${receipt.transactionHash}'`
);
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error);
process.exit(1);
});