-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdeploy.ts
More file actions
60 lines (55 loc) · 5.63 KB
/
Copy pathdeploy.ts
File metadata and controls
60 lines (55 loc) · 5.63 KB
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 { ethers } from 'ethers'
import * as fs from 'fs-extra'
import 'dotenv/config'
async function main() {
const provider = new ethers.providers.JsonRpcProvider(process.env.RPC_URL)
// const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider)
const encryptedJson = fs.readFileSync('./.encryptedJsonKey.json', 'utf8')
// prettier-ignore
// @ts-ignore
let wallet = new ethers.Wallet.fromEncryptedJsonSync(
encryptedJson!,
process.env.PRIVATE_KEY_PASSWORD!
)
const abi = fs.readFileSync('./SimpleStorage_sol_SimpleStorage.abi', 'utf8')
const binary = fs.readFileSync(
'./SimpleStorage_sol_SimpleStorage.bin',
'utf8'
)
wallet = wallet.connect(provider)
const contractFactory = new ethers.ContractFactory(abi, binary, wallet)
console.log('Deploying, please wait...')
const contract = await contractFactory.deploy()
await contract.deployTransaction.wait(1)
console.log(`Contract deployed to ${contract.address}`)
// console.log('Deploy with transaction data only!')
// const nonce = await wallet.getTransactionCount()
// const tx = {
// nonce,
// gasPrice: 2000000000,
// gasLimit: 1000000,
// to: undefined,
// value: 0,
// data: '0x608060405234801561001057600080fd5b50610771806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632e64cec11461005c5780634e457de01461007a5780636057361d146100aa5780636f760f41146100c65780639e7a13ad146100e2575b600080fd5b610064610113565b604051610071919061052a565b60405180910390f35b610094600480360381019061008f91906103c8565b61011c565b6040516100a1919061052a565b60405180910390f35b6100c460048036038101906100bf919061046d565b61014a565b005b6100e060048036038101906100db9190610411565b610154565b005b6100fc60048036038101906100f7919061046d565b6101e4565b60405161010a929190610545565b60405180910390f35b60008054905090565b6001818051602081018201805184825260208301602085012081835280955050505050506000915090505481565b8060008190555050565b600260405180604001604052808381526020018481525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010190805190602001906101ba9291906102a0565b505050806001836040516101ce9190610513565b9081526020016040518091039020819055505050565b600281815481106101f457600080fd5b906000526020600020906002020160009150905080600001549080600101805461021d9061063e565b80601f01602080910402602001604051908101604052809291908181526020018280546102499061063e565b80156102965780601f1061026b57610100808354040283529160200191610296565b820191906000526020600020905b81548152906001019060200180831161027957829003601f168201915b5050505050905082565b8280546102ac9061063e565b90600052602060002090601f0160209004810192826102ce5760008555610315565b82601f106102e757805160ff1916838001178555610315565b82800160010185558215610315579182015b828111156103145782518255916020019190600101906102f9565b5b5090506103229190610326565b5090565b5b8082111561033f576000816000905550600101610327565b5090565b60006103566103518461059a565b610575565b90508281526020810184848401111561037257610371610704565b5b61037d8482856105fc565b509392505050565b600082601f83011261039a576103996106ff565b5b81356103aa848260208601610343565b91505092915050565b6000813590506103c281610724565b92915050565b6000602082840312156103de576103dd61070e565b5b600082013567ffffffffffffffff8111156103fc576103fb610709565b5b61040884828501610385565b91505092915050565b600080604083850312156104285761042761070e565b5b600083013567ffffffffffffffff81111561044657610445610709565b5b61045285828601610385565b9250506020610463858286016103b3565b9150509250929050565b6000602082840312156104835761048261070e565b5b6000610491848285016103b3565b91505092915050565b60006104a5826105cb565b6104af81856105d6565b93506104bf81856020860161060b565b6104c881610713565b840191505092915050565b60006104de826105cb565b6104e881856105e7565b93506104f881856020860161060b565b80840191505092915050565b61050d816105f2565b82525050565b600061051f82846104d3565b915081905092915050565b600060208201905061053f6000830184610504565b92915050565b600060408201905061055a6000830185610504565b818103602083015261056c818461049a565b90509392505050565b600061057f610590565b905061058b8282610670565b919050565b6000604051905090565b600067ffffffffffffffff8211156105b5576105b46106d0565b5b6105be82610713565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000819050919050565b82818337600083830152505050565b60005b8381101561062957808201518184015260208101905061060e565b83811115610638576000848401525b50505050565b6000600282049050600182168061065657607f821691505b6020821081141561066a576106696106a1565b5b50919050565b61067982610713565b810181811067ffffffffffffffff82111715610698576106976106d0565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b61072d816105f2565b811461073857600080fd5b5056fea26469706673582212207cd7fe8045748978f40101aabf4b8bf235d18404a87196a18d6ee0119ca79bd064736f6c63430008070033',
// chainId: 1337,
// }
// const sentTxResponse = await wallet.sendTransaction(tx)
// await sentTxResponse.wait(1)
// console.log(sentTxResponse)
const currentFavouriteNumber = await contract.retrieve()
console.log(
`Current favourite number is ${currentFavouriteNumber.toString()}`
)
const transactionResponse = await contract.store('7')
await transactionResponse.wait(1)
const updatedFavouriteNumber = await contract.retrieve()
console.log(
`The updated favourite number is ${updatedFavouriteNumber.toString()}`
)
}
main()
.then(() => process.exit(0))
.catch((error) => {
console.error(error)
process.exit(1)
})