mirror of
https://github.com/scroll-tech/scroll.git
synced 2026-01-14 08:28:02 -05:00
Co-authored-by: colinlyguo <651734127@qq.com> Co-authored-by: zimpha <zimpha@gmail.com> Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> Co-authored-by: HAOYUatHZ <haoyu@protonmail.com>
36 lines
1.2 KiB
Bash
Executable File
36 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# generates go bindings from contracts, to paste into abi/bridge_abi.go
|
|
# compile artifacts in /contracts folder with `forge build`` first
|
|
|
|
# Only run if it is ran from repository root.
|
|
if [[ ! -d "cmd" ]]
|
|
then
|
|
echo "You need to run this script from the repository root."
|
|
exit
|
|
fi
|
|
|
|
if [ -d "contracts" ]; then
|
|
echo "Directory contracts exists"
|
|
else
|
|
echo "Creating directory contracts"
|
|
mkdir -p contracts
|
|
fi
|
|
|
|
abi_name=("IL1GatewayRouter" "IL2GatewayRouter" "IL1ScrollMessenger" "IL2ScrollMessenger" "IScrollChain" "L1MessageQueue")
|
|
pkg_name=("l1_gateway" "l2_gateway" "l1_messenger" "l2_messenger" "scrollchain" "l1_message_queue")
|
|
gen_name=("L1GatewayRouter" "L2GatewayRouter" "L1ScrollMessenger" "L2ScrollMessenger" "IScrollChain" "L1MessageQueue")
|
|
|
|
for i in "${!abi_name[@]}"; do
|
|
mkdir -p tmp
|
|
abi="tmp/${abi_name[$i]}.json"
|
|
cat ../contracts/artifacts/src/${abi_name[$i]}.sol/${abi_name[$i]}.json | jq '.abi' > $abi
|
|
pkg="${pkg_name[$i]}_abi"
|
|
out="contracts/${pkg}/${gen_name[$i]}.go"
|
|
echo "generating ${out} from ${abi}"
|
|
mkdir -p contracts/$pkg
|
|
abigen --abi=$abi --pkg=$pkg --out=$out
|
|
awk '{sub("github.com/ethereum","github.com/scroll-tech")}1' $out > temp && mv temp $out
|
|
done
|
|
|
|
rm -rf tmp |