-
Notifications
You must be signed in to change notification settings - Fork 55
/
Copy pathgenerateGoBindings.sh
executable file
·31 lines (26 loc) · 1.5 KB
/
generateGoBindings.sh
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
#!/bin/sh
set -e
# Setup
sed -i.bak -e 's/"openzeppelin-solidity\/contracts\//".\/openzeppelin-solidity\/contracts\//' contracts/*.sol
sed -i.bak -e 's/"openzeppelin-solidity\/contracts\//"..\/openzeppelin-solidity\/contracts\//' contracts/*/*.sol
sed -i.bak -e 's/"republic-sol\/contracts\//".\/republic-sol\/contracts\//' contracts/*.sol
mkdir -p ./contracts/openzeppelin-solidity
mkdir -p ./contracts/republic-sol
cp -r ./node_modules/openzeppelin-solidity/contracts ./contracts/openzeppelin-solidity/contracts
cp -r ./node_modules/republic-sol/contracts ./contracts/republic-sol/contracts
cd contracts/republic-sol
sed -i.bak -e 's/"openzeppelin-solidity\/contracts\//"..\/..\/openzeppelin-solidity\/contracts\//' contracts/*.sol
sed -i.bak -e 's/"openzeppelin-solidity\/contracts\//"..\/..\/..\/openzeppelin-solidity\/contracts\//' contracts/*/*.sol
mkdir ./contracts/openzeppelin-solidity
cp -r ../../node_modules/openzeppelin-solidity/contracts ./contracts/openzeppelin-solidity/contracts
cd ../..
# Generate bindings
abigen --sol ./contracts/Bindings.sol -pkg bindings --out bindings.go
# Revert setup
sed -i.bak -e 's/".\/openzeppelin-solidity\/contracts\//"openzeppelin-solidity\/contracts\//' contracts/*.sol
sed -i.bak -e 's/"..\/openzeppelin-solidity\/contracts\//"openzeppelin-solidity\/contracts\//' contracts/*/*.sol
sed -i.bak -e 's/".\/republic-sol\/contracts\//"republic-sol\/contracts\//' contracts/*.sol
rm -r ./contracts/openzeppelin-solidity
rm -r ./contracts/republic-sol
rm contracts/*/*.bak
rm contracts/*.bak