forked from berlinbnb/wardenprotocol
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathlocalnet.just
More file actions
136 lines (121 loc) · 13.5 KB
/
localnet.just
File metadata and controls
136 lines (121 loc) · 13.5 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
chain_id := "warden_1337-1"
shulgin := "warden1d652c9nngq5cneak2whyaqa4g9ehr8pstxj0r5"
shulgin_mnemonic := "exclude try nephew main caught favorite tone degree lottery device tissue tent ugly mouse pelican gasp lava flush pen river noise remind balcony emerge"
val2 := "warden194j3dx4t7u80765k2puu3082vc39yfqnvrxqu7"
val2_mnemonic := "door blast other element embark noodle maple agent drastic bunker swarm logic wide deputy exhibit bicycle evil exile air other mesh foot tackle spot"
warden-precompiles := '["0x0000000000000000000000000000000000000100","0x0000000000000000000000000000000000000400","0x0000000000000000000000000000000000000800","0x0000000000000000000000000000000000000801","0x0000000000000000000000000000000000000802","0x0000000000000000000000000000000000000803","0x0000000000000000000000000000000000000804","0x0000000000000000000000000000000000000805","0x0000000000000000000000000000000000000900", "0x0000000000000000000000000000000000000901", "0x0000000000000000000000000000000000000902", "0x0000000000000000000000000000000000000903", "0x0000000000000000000000000000000000000904", "0x0000000000000000000000000000000000000905"]'
preinstalls := '[
{
"name": "Create2",
"address": "0x4e59b44847b379578588920ca78fbf26c0b4956c",
"code": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3"
},
{
"name": "Safe singleton factory",
"address": "0x914d7Fec6aaC8cd542e72Bca78B30650d45643d7",
"code": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe03601600081602082378035828234f58015156039578182fd5b8082525050506014600cf3"
},
{
"name": "Multicall3",
"address": "0xcA11bde05977b3631167028862bE2a173976CA11",
"code": "0x6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e1461025a578063bce38bd714610275578063c3077fa914610288578063ee82ac5e1461029b57600080fd5b80634d2301cc146101ec57806372425d9d1461022157806382ad56cb1461023457806386d516e81461024757600080fd5b80633408e470116100c65780633408e47014610191578063399542e9146101a45780633e64a696146101c657806342cbb15c146101d957600080fd5b80630f28c97d146100f8578063174dea711461011a578063252dba421461013a57806327e86d6e1461015b575b600080fd5b34801561010457600080fd5b50425b6040519081526020015b60405180910390f35b61012d610128366004610a85565b6102ba565b6040516101119190610bbe565b61014d610148366004610a85565b6104ef565b604051610111929190610bd8565b34801561016757600080fd5b50437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0140610107565b34801561019d57600080fd5b5046610107565b6101b76101b2366004610c60565b610690565b60405161011193929190610cba565b3480156101d257600080fd5b5048610107565b3480156101e557600080fd5b5043610107565b3480156101f857600080fd5b50610107610207366004610ce2565b73ffffffffffffffffffffffffffffffffffffffff163190565b34801561022d57600080fd5b5044610107565b61012d610242366004610a85565b6106ab565b34801561025357600080fd5b5045610107565b34801561026657600080fd5b50604051418152602001610111565b61012d610283366004610c60565b61085a565b6101b7610296366004610a85565b610a1a565b3480156102a757600080fd5b506101076102b6366004610d18565b4090565b60606000828067ffffffffffffffff8111156102d8576102d8610d31565b60405190808252806020026020018201604052801561031e57816020015b6040805180820190915260008152606060208201528152602001906001900390816102f65790505b5092503660005b8281101561047757600085828151811061034157610341610d60565b6020026020010151905087878381811061035d5761035d610d60565b905060200281019061036f9190610d8f565b6040810135958601959093506103886020850185610ce2565b73ffffffffffffffffffffffffffffffffffffffff16816103ac6060870187610dcd565b6040516103ba929190610e32565b60006040518083038185875af1925050503d80600081146103f7576040519150601f19603f3d011682016040523d82523d6000602084013e6103fc565b606091505b50602080850191909152901515808452908501351761046d577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b5050600101610325565b508234146104e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d6174636800000000000060448201526064015b60405180910390fd5b50505092915050565b436060828067ffffffffffffffff81111561050c5761050c610d31565b60405190808252806020026020018201604052801561053f57816020015b606081526020019060019003908161052a5790505b5091503660005b8281101561068657600087878381811061056257610562610d60565b90506020028101906105749190610e42565b92506105836020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166105a66020850185610dcd565b6040516105b4929190610e32565b6000604051808303816000865af19150503d80600081146105f1576040519150601f19603f3d011682016040523d82523d6000602084013e6105f6565b606091505b5086848151811061060957610609610d60565b602090810291909101015290508061067d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b50600101610546565b5050509250929050565b43804060606106a086868661085a565b905093509350939050565b6060818067ffffffffffffffff8111156106c7576106c7610d31565b60405190808252806020026020018201604052801561070d57816020015b6040805180820190915260008152606060208201528152602001906001900390816106e55790505b5091503660005b828110156104e657600084828151811061073057610730610d60565b6020026020010151905086868381811061074c5761074c610d60565b905060200281019061075e9190610e76565b925061076d6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff166107906040850185610dcd565b60405161079e929190610e32565b6000604051808303816000865af19150503d80600081146107db576040519150601f19603f3d011682016040523d82523d6000602084013e6107e0565b606091505b506020808401919091529015158083529084013517610851577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b50600101610714565b6060818067ffffffffffffffff81111561087657610876610d31565b6040519080825280602002602001820160405280156108bc57816020015b6040805180820190915260008152606060208201528152602001906001900390816108945790505b5091503660005b82811015610a105760008482815181106108df576108df610d60565b602002602001015190508686838181106108fb576108fb610d60565b905060200281019061090d9190610e42565b925061091c6020840184610ce2565b73ffffffffffffffffffffffffffffffffffffffff1661093f6020850185610dcd565b60405161094d929190610e32565b6000604051808303816000865af19150503d806000811461098a576040519150601f19603f3d011682016040523d82523d6000602084013e61098f565b606091505b506020830152151581528715610a07578051610a07576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060448201526064016104dd565b506001016108c3565b5050509392505050565b6000806060610a2b60018686610690565b919790965090945092505050565b60008083601f840112610a4b57600080fd5b50813567ffffffffffffffff811115610a6357600080fd5b6020830191508360208260051b8501011115610a7e57600080fd5b9250929050565b60008060208385031215610a9857600080fd5b823567ffffffffffffffff811115610aaf57600080fd5b610abb85828601610a39565b90969095509350505050565b6000815180845260005b81811015610aed57602081850181015186830182015201610ad1565b81811115610aff576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b600082825180855260208086019550808260051b84010181860160005b84811015610bb1578583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001895281518051151584528401516040858501819052610b9d81860183610ac7565b9a86019a9450505090830190600101610b4f565b5090979650505050505050565b602081526000610bd16020830184610b32565b9392505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b82811015610c52577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0888703018452610c40868351610ac7565b95509284019290840190600101610c06565b509398975050505050505050565b600080600060408486031215610c7557600080fd5b83358015158114610c8557600080fd5b9250602084013567ffffffffffffffff811115610ca157600080fd5b610cad86828701610a39565b9497909650939450505050565b838152826020820152606060408201526000610cd96060830184610b32565b95945050505050565b600060208284031215610cf457600080fd5b813573ffffffffffffffffffffffffffffffffffffffff81168114610bd157600080fd5b600060208284031215610d2a57600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112610dc357600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610e0257600080fd5b83018035915067ffffffffffffffff821115610e1d57600080fd5b602001915036819003821315610a7e57600080fd5b8183823760009101908152919050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112610dc357600080fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112610dc357600080fdfea2646970667358221220bb2b5c71a328032f97c676ae39a1ec2148d3e5d6f73d95e9b17910152d61f16264736f6c634300080c0033"
},
{
"name": "EIP-2935 - Serve historical block hashes from state",
"address": "0x0000F90827F1C53a10cb7A02335B175320002935",
"code": "3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500"
}
]'
# run a single-node chain locally, use "bin" to specify the binary name
start bin="wardend" install="true" deploy-contracts="false":
#!/usr/bin/env bash
set -euxo pipefail
if [[ "{{install}}" == "true" && "{{bin}}" == "wardend" ]]; then
just wardend install
fi
function replace() {
if [[ "$(uname)" == "Darwin" ]]; then
/usr/bin/sed -i '' "$1" "$2"
else
sed -i "$1" "$2"
fi
}
function json() {
jq "$1" "$2" > "$2".tmp
mv "$2".tmp "$2"
}
WARDEN_HOME="$HOME/.warden"
GENESIS="$WARDEN_HOME/config/genesis.json"
function edit_genesis() {
json "$1" "$GENESIS"
}
rm -rf $WARDEN_HOME
{{bin}} init localnet --chain-id {{chain_id}} --default-denom award > /dev/null
{{bin}} config set client chain-id {{chain_id}}
{{bin}} config set client keyring-backend test
{{bin}} config set app minimum-gas-prices 0award
{{bin}} config set app api.enable true
{{bin}} config set app api.enabled-unsafe-cors true
{{bin}} config set config consensus.timeout_commit 1s -s
replace 's/cors_allowed_origins = \[\]/cors_allowed_origins = ["*"]/' "$WARDEN_HOME/config/config.toml"
{{bin}} keys add val > /dev/null
echo -n '{{shulgin_mnemonic}}' | {{bin}} keys add shulgin --recover > /dev/null
{{bin}} genesis add-genesis-account val 10000000000000000000000000award
{{bin}} genesis add-genesis-account shulgin 10000000000000000000000000award
{{bin}} genesis add-genesis-space {{shulgin}}
{{bin}} genesis add-genesis-keychain {{shulgin}} "WardenKMS" "{\"key_req\":[],\"sig_req\":[]}"
{{bin}} genesis add-genesis-plugin echo
{{bin}} genesis add-genesis-plugin http
{{bin}} genesis add-genesis-plugin pfp
{{bin}} genesis add-genesis-plugin pricepred
{{bin}} genesis add-genesis-plugin venice
{{bin}} genesis add-genesis-plugin veniceimg
{{bin}} genesis add-genesis-plugin quantkit
{{bin}} genesis gentx val 1000000000000000000000award --chain-id {{chain_id}}
{{bin}} genesis collect-gentxs
{{bin}} genesis add-genesis-slinky-markets
edit_genesis '.app_state.evm.params.active_static_precompiles += {{warden-precompiles}}'
edit_genesis '.app_state.evm.preinstalls += {{preinstalls}}'
edit_genesis '.consensus["params"]["abci"]["vote_extensions_enable_height"] = "2"'
edit_genesis '.app_state["evm"]["params"]["evm_denom"]="award"'
edit_genesis '.app_state["gov"]["params"]["voting_period"]="30s"'
edit_genesis '.app_state["gov"]["params"]["expedited_voting_period"]="15s"'
edit_genesis '.app_state["feemarket"]["params"]["no_base_fee"]=true'
post_start () {
if [[ "{{deploy-contracts}}" == "false" ]]; then
return
fi
sleep 5
ethereum_analyzer_wasm="./contracts/artifacts/ethereum_analyzer.wasm"
if [ -f $ethereum_analyzer_wasm ]; then
just deploy-contract $ethereum_analyzer_wasm
else
echo "$ethereum_analyzer_wasm not found, will try to build it"
pushd contracts
just compile ethereum-analyzer
popd
if [ -f $ethereum_analyzer_wasm ]; then
just deploy-contract $ethereum_analyzer_wasm
else
echo "Could not build ethereum_analyzer.wasm, giving up deploying it."
fi
fi
osmosis_analyzer_wasm="./contracts/artifacts/osmosis_analyzer.wasm"
if [ -f $osmosis_analyzer_wasm ]; then
just deploy-contract $osmosis_analyzer_wasm
else
echo "$osmosis_analyzer_wasm not found, will try to build it"
pushd contracts
just compile osmosis-analyzer
popd
if [ -f $osmosis_analyzer_wasm ]; then
just deploy-contract $ethereum_analyzer_wasm
else
echo "Could not build osmosis_analyzer.wasm, giving up deploying it."
fi
fi
}
(post_start &) && {{bin}} start
# run the slinky sidecar
slinky:
go run github.com/warden-protocol/connect/cmd/slinky