git.delta.rocks / unique-network / refs/commits / ce8ad2953820

difftreelog

CORE-302 Automation of the creation of solidity ABI

Trubnikov Sergey2022-04-15parent: #dc6d7fb.patch.diff
in: master

4 files changed

added.maintain/scripts/generate_abi.shdiffbeforeafterboth
--- /dev/null
+++ b/.maintain/scripts/generate_abi.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+set -eu
+
+dir=$PWD
+
+tmp=$(mktemp -d)
+cd $tmp
+cp $dir/$INPUT input.sol
+solcjs --abi -p input.sol
+
+NAME=input_sol_$(basename $INPUT .sol)
+mv $NAME.abi $NAME.json
+prettier $NAME.json > $dir/$OUTPUT
deleted.maintain/scripts/generate_api.shdiffbeforeafterboth
--- a/.maintain/scripts/generate_api.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-set -eu
-
-tmp=$(mktemp)
-cargo test --package $PACKAGE -- $NAME --exact --nocapture --ignored | tee $tmp
-raw=$(mktemp --suffix .sol)
-sed -n '/=== SNIP START ===/, /=== SNIP END ===/{ /=== SNIP START ===/! { /=== SNIP END ===/! p } }' $tmp > $raw
-formatted=$(mktemp)
-prettier --use-tabs $raw > $formatted
-
-mv $formatted $OUTPUT
added.maintain/scripts/generate_sol.shdiffbeforeafterboth
--- /dev/null
+++ b/.maintain/scripts/generate_sol.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+set -eu
+
+tmp=$(mktemp)
+cargo test --package $PACKAGE -- $NAME --exact --nocapture --ignored | tee $tmp
+raw=$(mktemp --suffix .sol)
+sed -n '/=== SNIP START ===/, /=== SNIP END ===/{ /=== SNIP START ===/! { /=== SNIP END ===/! p } }' $tmp > $raw
+formatted=$(mktemp)
+prettier --use-tabs $raw > $formatted
+
+mv $formatted $OUTPUT
modifiedMakefilediffbeforeafterboth
before · Makefile
1.PHONY: _help2_help:3	@echo "regenerate_solidity - generate stubs/interfaces for contracts defined in native (via evm-coder)"4	@echo "evm_stubs - recompile contract stubs"5	@echo "bench - run frame-benchmarking"6	@echo "  bench-evm-migration"7	@echo "  bench-unique"89.PHONY: regenerate_solidity10regenerate_solidity:11	PACKAGE=pallet-fungible NAME=erc::gen_iface OUTPUT=./tests/src/eth/api/UniqueFungible.sol ./.maintain/scripts/generate_api.sh12	PACKAGE=pallet-nonfungible NAME=erc::gen_iface OUTPUT=./tests/src/eth/api/UniqueNFT.sol ./.maintain/scripts/generate_api.sh13	PACKAGE=pallet-evm-contract-helpers NAME=eth::contract_helpers_iface OUTPUT=./tests/src/eth/api/ContractHelpers.sol ./.maintain/scripts/generate_api.sh1415	PACKAGE=pallet-fungible NAME=erc::gen_impl OUTPUT=./pallets/fungible/src/stubs/UniqueFungible.sol ./.maintain/scripts/generate_api.sh16	PACKAGE=pallet-nonfungible NAME=erc::gen_impl OUTPUT=./pallets/nonfungible/src/stubs/UniqueNFT.sol ./.maintain/scripts/generate_api.sh17	PACKAGE=pallet-evm-contract-helpers NAME=eth::contract_helpers_impl OUTPUT=./pallets/evm-contract-helpers/src/stubs/ContractHelpers.sol ./.maintain/scripts/generate_api.sh1819FUNGIBLE_EVM_STUBS=./pallets/fungible/src/stubs20NONFUNGIBLE_EVM_STUBS=./pallets/nonfungible/src/stubs21CONTRACT_HELPERS_STUBS=./pallets/evm-contract-helpers/src/stubs/2223$(FUNGIBLE_EVM_STUBS)/UniqueFungible.raw: $(FUNGIBLE_EVM_STUBS)/UniqueFungible.sol24	INPUT=$< OUTPUT=$@ ./.maintain/scripts/compile_stub.sh25$(NONFUNGIBLE_EVM_STUBS)/UniqueNFT.raw: $(NONFUNGIBLE_EVM_STUBS)/UniqueNFT.sol26	INPUT=$< OUTPUT=$@ ./.maintain/scripts/compile_stub.sh27$(CONTRACT_HELPERS_STUBS)/ContractHelpers.raw: $(CONTRACT_HELPERS_STUBS)/ContractHelpers.sol28	INPUT=$< OUTPUT=$@ ./.maintain/scripts/compile_stub.sh2930evm_stubs: $(FUNGIBLE_EVM_STUBS)/UniqueFungible.raw $(NONFUNGIBLE_EVM_STUBS)/UniqueNFT.raw $(CONTRACT_HELPERS_STUBS)/ContractHelpers.raw3132.PHONY: _bench33_bench:34	cargo run --release --features runtime-benchmarks,unique-runtime -- \35	benchmark pallet --pallet pallet-$(PALLET) \36	--wasm-execution compiled --extrinsic '*' \37	--template .maintain/frame-weight-template.hbs --steps=50 --repeat=200 --heap-pages=4096 \38	--output=./pallets/$(PALLET)/src/weights.rs3940.PHONY: bench-evm-migration41bench-evm-migration:42	make _bench PALLET=evm-migration4344.PHONY: bench-common45bench-common:46	make _bench PALLET=common4748.PHONY: bench-unique49bench-unique:50	make _bench PALLET=unique5152.PHONY: bench-fungible53bench-fungible:54	make _bench PALLET=fungible5556.PHONY: bench-refungible57bench-refungible:58	make _bench PALLET=refungible5960.PHONY: bench-nonfungible61bench-nonfungible:62	make _bench PALLET=nonfungible6364.PHONY: bench-structure65bench-structure:66	make _bench PALLET=structure6768.PHONY: bench69bench: bench-evm-migration bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible
after · Makefile
1.PHONY: _help2_help:3	@echo "regenerate_solidity - generate stubs/interfaces for contracts defined in native (via evm-coder)"4	@echo "evm_stubs - recompile contract stubs and ABI"5	@echo "bench - run frame-benchmarking"6	@echo "  bench-evm-migration"7	@echo "  bench-unique"89FUNGIBLE_EVM_STUBS=./pallets/fungible/src/stubs10FUNGIBLE_EVM_ABI=./tests/src/eth/fungibleAbi.json1112NONFUNGIBLE_EVM_STUBS=./pallets/nonfungible/src/stubs13NONFUNGIBLE_EVM_ABI=./tests/src/eth/nonFungibleAbi.json1415CONTRACT_HELPERS_STUBS=./pallets/evm-contract-helpers/src/stubs/16CONTRACT_HELPERS_ABI=./tests/src/eth/util/contractHelpersAbi.json1718TESTS_API=./tests/src/eth/api/1920.PHONY: regenerate_solidity21regenerate_solidity: UniqueFungible.sol UniqueNFT.sol ContractHelpers.sol2223UniqueFungible.sol:24	PACKAGE=pallet-fungible NAME=erc::gen_iface OUTPUT=$(TESTS_API)/$@ ./.maintain/scripts/generate_sol.sh25	PACKAGE=pallet-fungible NAME=erc::gen_impl OUTPUT=$(FUNGIBLE_EVM_STUBS)/$@ ./.maintain/scripts/generate_sol.sh2627UniqueNFT.sol:28	PACKAGE=pallet-nonfungible NAME=erc::gen_iface OUTPUT=$(TESTS_API)/$@ ./.maintain/scripts/generate_sol.sh29	PACKAGE=pallet-nonfungible NAME=erc::gen_impl OUTPUT=$(NONFUNGIBLE_EVM_STUBS)/$@ ./.maintain/scripts/generate_sol.sh3031ContractHelpers.sol:32	PACKAGE=pallet-evm-contract-helpers NAME=eth::contract_helpers_iface OUTPUT=$(TESTS_API)/$@ ./.maintain/scripts/generate_sol.sh33	PACKAGE=pallet-evm-contract-helpers NAME=eth::contract_helpers_impl OUTPUT=$(CONTRACT_HELPERS_STUBS)/$@ ./.maintain/scripts/generate_sol.sh3435UniqueFungible: UniqueFungible.sol36	INPUT=$(FUNGIBLE_EVM_STUBS)/$< OUTPUT=$(FUNGIBLE_EVM_STUBS)/UniqueFungible.raw ./.maintain/scripts/compile_stub.sh37	INPUT=$(FUNGIBLE_EVM_STUBS)/$< OUTPUT=$(FUNGIBLE_EVM_ABI) ./.maintain/scripts/generate_abi.sh3839UniqueNFT: UniqueNFT.sol40	INPUT=$(NONFUNGIBLE_EVM_STUBS)/$< OUTPUT=$(NONFUNGIBLE_EVM_STUBS)/UniqueNFT.raw ./.maintain/scripts/compile_stub.sh41	INPUT=$(NONFUNGIBLE_EVM_STUBS)/$< OUTPUT=$(NONFUNGIBLE_EVM_ABI) ./.maintain/scripts/generate_abi.sh4243ContractHelpers: ContractHelpers.sol44	INPUT=$(CONTRACT_HELPERS_STUBS)/$< OUTPUT=$(CONTRACT_HELPERS_STUBS)/ContractHelpers.raw ./.maintain/scripts/compile_stub.sh45	INPUT=$(CONTRACT_HELPERS_STUBS)/$< OUTPUT=$(CONTRACT_HELPERS_ABI) ./.maintain/scripts/generate_abi.sh4647evm_stubs: UniqueFungible UniqueNFT ContractHelpers4849.PHONY: _bench50_bench:51	cargo run --release --features runtime-benchmarks,unique-runtime -- \52	benchmark pallet --pallet pallet-$(PALLET) \53	--wasm-execution compiled --extrinsic '*' \54	--template .maintain/frame-weight-template.hbs --steps=50 --repeat=200 --heap-pages=4096 \55	--output=./pallets/$(PALLET)/src/weights.rs5657.PHONY: bench-evm-migration58bench-evm-migration:59	make _bench PALLET=evm-migration6061.PHONY: bench-common62bench-common:63	make _bench PALLET=common6465.PHONY: bench-unique66bench-unique:67	make _bench PALLET=unique6869.PHONY: bench-fungible70bench-fungible:71	make _bench PALLET=fungible7273.PHONY: bench-refungible74bench-refungible:75	make _bench PALLET=refungible7677.PHONY: bench-nonfungible78bench-nonfungible:79	make _bench PALLET=nonfungible8081.PHONY: bench-structure82bench-structure:83	make _bench PALLET=structure8485.PHONY: bench86bench: bench-evm-migration bench-unique bench-structure bench-fungible bench-refungible bench-nonfungible