Skip to content

Commit

Permalink
Merge branch 'develop' into cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
BugFreeSoftware committed Jun 23, 2023
2 parents b67e0b3 + 88c0a24 commit 3b011ab
Show file tree
Hide file tree
Showing 37 changed files with 121 additions and 84 deletions.
24 changes: 0 additions & 24 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,6 @@ jobs:
- name: Check out code into the Go module directory
uses: actions/checkout@v3

- name: Install solc
run: |
sudo apt update
sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc
- name: Get dependencies
run: |
make wasm
Expand All @@ -51,13 +44,6 @@ jobs:
with:
go-version: "1.20"

- name: Install solc
run: |
sudo apt update
sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc
- name: install rust-toolchain
uses: actions-rs/[email protected]
with:
Expand Down Expand Up @@ -87,7 +73,6 @@ jobs:
env:
TEST_LANG: ${{matrix.TEST_LANG}}
run: |
make compile-solidity
cd contracts/wasm
if [ $TEST_LANG == "go" ]; then
go test ./...
Expand All @@ -107,15 +92,6 @@ jobs:
- name: Check out code into the Go module directory
uses: actions/checkout@v3

- name: Install solc
run: |
sudo apt update
sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc
- name: Compile solidity contracts
run: make compile-solidity

# - name: Generate SC files
# run: |
# cd contracts/wasm/scripts
Expand Down
25 changes: 1 addition & 24 deletions .github/workflows/heavy-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,6 @@ jobs:
run: |
apt update
apt install -y build-essential libstdc++6 software-properties-common make gcc git curl tar
- name: Install solc
id: solc
run: |
add-apt-repository ppa:ethereum/ethereum
apt-get update
apt-get install solc
- name: Check out code into the Go module directory
id: checkout
uses: actions/checkout@v3
Expand All @@ -31,10 +25,6 @@ jobs:
with:
go-version: "1.20"

- name: Compile solidity contracts
id: make_solidity
run: make compile-solidity

- name: Run global scope golangci-lint
id: global_lint
uses: golangci/golangci-lint-action@v3
Expand Down Expand Up @@ -127,12 +117,6 @@ jobs:
run: |
apt update
apt install -y build-essential libstdc++6 software-properties-common make gcc git wget curl tar
- name: Install solc
id: solc
run: |
add-apt-repository ppa:ethereum/ethereum
apt-get update
apt-get install solc
- name: checkout to the directory
id: checkout
uses: actions/checkout@v3
Expand Down Expand Up @@ -191,7 +175,6 @@ jobs:
env:
TEST_LANG: ${{matrix.TEST_LANG}}
run: |
make compile-solidity
cd contracts/wasm
if [ $TEST_LANG == "go" ]; then
go test ./...
Expand Down Expand Up @@ -271,12 +254,6 @@ jobs:
run: |
apt update
apt install -y build-essential libstdc++6 software-properties-common make gcc git curl tar
- name: Install solc
id: solc
run: |
add-apt-repository ppa:ethereum/ethereum
apt-get update
apt-get install solc
- name: Check out code into the Go module directory
id: checkout
uses: actions/checkout@v3
Expand Down Expand Up @@ -438,4 +415,4 @@ jobs:
"repository": "${{ github.repository }}"
}
env:
SLACK_WEBHOOK_URL: "${{ secrets.SLACK_WEBHOOK_URL }}"
SLACK_WEBHOOK_URL: "${{ secrets.SLACK_WEBHOOK_URL }}"
9 changes: 0 additions & 9 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,6 @@ jobs:
- name: Check out code into the Go module directory
uses: actions/checkout@v3

- name: Install solc
run: |
sudo add-apt-repository ppa:ethereum/ethereum
sudo apt update
sudo apt install -y solc
- name: Compile solidity contracts
run: make compile-solidity

- name: Tar temporary artifacts
run: tar --exclude='temp.tar' -cf temp.tar ./

Expand Down
4 changes: 0 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,6 @@ wal/
./snapshot
./gascalibration
tests_output.log
packages/evm/**/*.bin
packages/evm/**/*.bin-runtime
packages/vm/core/evm/**/*.bin
packages/vm/core/evm/**/*.bin-runtime
*__debug_bin
*.blk
go.work
Expand Down
16 changes: 5 additions & 11 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,16 @@ wasm:
bash contracts/wasm/scripts/schema_all.sh

compile-solidity:
ifdef SKIP_SOLIDITY
@echo "skipping compile-solidity rule"
else ifeq (, $(shell which solc))
@echo "no solc found in PATH, evm contracts won't be compiled"
else
cd packages/vm/core/evm/iscmagic && go generate
cd packages/evm/evmtest && go generate
endif

build-cli:
cd tools/wasp-cli && go mod tidy && go build -ldflags $(BUILD_LD_FLAGS) -o ../../

build-full: compile-solidity build-cli
build-full: build-cli
$(BUILD_CMD) ./...

build: compile-solidity build-cli
build: build-cli
$(BUILD_CMD) $(BUILD_PKGS)

build-lint: build lint
Expand All @@ -59,10 +53,10 @@ test-short:
install-cli:
cd tools/wasp-cli && go mod tidy && go install -ldflags $(BUILD_LD_FLAGS)

install-full: compile-solidity install-cli
install-full: install-cli
$(INSTALL_CMD) ./...

install: compile-solidity install-cli install-pkgs
install: install-cli install-pkgs

install-pkgs:
$(INSTALL_CMD) $(BUILD_PKGS)
Expand All @@ -82,7 +76,7 @@ apiclient-docker:
gofumpt-list:
gofumpt -l ./

docker-build: compile-solidity
docker-build:
DOCKER_BUILDKIT=1 docker build ${DOCKER_BUILD_ARGS} \
--build-arg BUILD_TAGS=${BUILD_TAGS} \
--build-arg BUILD_LD_FLAGS=${BUILD_LD_FLAGS} \
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ require (
github.com/dgryski/go-clockpro v0.0.0-20140817124034-edc6d3eeb96e
github.com/ethereum/go-ethereum v1.12.0
github.com/golang-jwt/jwt v3.2.2+incompatible
github.com/hashicorp/golang-lru/v2 v2.0.3
github.com/hashicorp/golang-lru/v2 v2.0.4
github.com/iotaledger/hive.go/app v0.0.0-20230425142119-6abddaf15db9
github.com/iotaledger/hive.go/constraints v0.0.0-20230425142119-6abddaf15db9
github.com/iotaledger/hive.go/crypto v0.0.0-20230425142119-6abddaf15db9
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -329,8 +329,8 @@ github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mO
github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru/v2 v2.0.3 h1:kmRrRLlInXvng0SmLxmQpQkpbYAvcXm7NPDrgxJa9mE=
github.com/hashicorp/golang-lru/v2 v2.0.3/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
github.com/hashicorp/golang-lru/v2 v2.0.4 h1:7GHuZcgid37q8o5i3QI9KMT4nCWQQ3Kx3Ov6bb9MfK0=
github.com/hashicorp/golang-lru/v2 v2.0.4/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
Expand Down
32 changes: 32 additions & 0 deletions packages/database/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,13 @@ import (
"path"
"sync"

"golang.org/x/crypto/blake2b"

"github.com/iotaledger/hive.go/kvstore"
hivedb "github.com/iotaledger/hive.go/kvstore/database"
"github.com/iotaledger/hive.go/lo"
"github.com/iotaledger/hive.go/runtime/options"
"github.com/iotaledger/wasp/packages/hashing"
"github.com/iotaledger/wasp/packages/isc"
"github.com/iotaledger/wasp/packages/registry"
)
Expand Down Expand Up @@ -69,6 +72,35 @@ func NewChainStateDatabaseManager(chainRecordRegistryProvider registry.ChainReco
return m, nil
}

// DBHash computes a hash from the whole DB content, for use only in testing environment.
func (m *ChainStateDatabaseManager) DBHash() (ret hashing.HashValue) {
h, err := blake2b.New256(nil)
if err != nil {
panic(err)
}
if h.Size() != hashing.HashSize {
panic("blake2b: hash size != 32")
}
for _, db := range m.databases {
err := db.database.store.Iterate([]byte{}, func(k []byte, v []byte) bool {
_, err := h.Write(k)
if err != nil {
panic(err)
}
_, err = h.Write(v)
if err != nil {
panic(err)
}
return true
})
if err != nil {
panic(err)
}
}
copy(ret[:], h.Sum(nil))
return
}

func (m *ChainStateDatabaseManager) chainStateKVStore(chainID isc.ChainID) kvstore.KVStore {
m.mutex.RLock()
defer m.mutex.RUnlock()
Expand Down
1 change: 1 addition & 0 deletions packages/evm/evmtest/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ ISCSandbox.*
ERC20BaseTokens.*
ERC20NativeTokens.*
ERC721NFTs.*
ERC721NFTCollection.*
IERC721Receiver.*
1 change: 1 addition & 0 deletions packages/evm/evmtest/ERC20Basic.bin
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
608060405234801562000010575f80fd5b506040516200148a3803806200148a8339818101604052810190620000369190620002ba565b815f908162000046919062000574565b50806001908162000058919062000574565b50601260ff16600a6200006c9190620007d5565b60646200007a919062000825565b60048190555060045460025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405162000125919062000880565b60405180910390a350506200089b565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b62000196826200014e565b810181811067ffffffffffffffff82111715620001b857620001b76200015e565b5b80604052505050565b5f620001cc62000135565b9050620001da82826200018b565b919050565b5f67ffffffffffffffff821115620001fc57620001fb6200015e565b5b62000207826200014e565b9050602081019050919050565b5f5b838110156200023357808201518184015260208101905062000216565b5f8484015250505050565b5f620002546200024e84620001df565b620001c1565b9050828152602081018484840111156200027357620002726200014a565b5b6200028084828562000214565b509392505050565b5f82601f8301126200029f576200029e62000146565b5b8151620002b18482602086016200023e565b91505092915050565b5f8060408385031215620002d357620002d26200013e565b5b5f83015167ffffffffffffffff811115620002f357620002f262000142565b5b620003018582860162000288565b925050602083015167ffffffffffffffff81111562000325576200032462000142565b5b620003338582860162000288565b9150509250929050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200038c57607f821691505b602082108103620003a257620003a162000347565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004067fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003c9565b620004128683620003c9565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6200045c6200045662000450846200042a565b62000433565b6200042a565b9050919050565b5f819050919050565b62000477836200043c565b6200048f620004868262000463565b848454620003d5565b825550505050565b5f90565b620004a562000497565b620004b28184846200046c565b505050565b5b81811015620004d957620004cd5f826200049b565b600181019050620004b8565b5050565b601f8211156200052857620004f281620003a8565b620004fd84620003ba565b810160208510156200050d578190505b620005256200051c85620003ba565b830182620004b7565b50505b505050565b5f82821c905092915050565b5f6200054a5f19846008026200052d565b1980831691505092915050565b5f62000564838362000539565b9150826002028217905092915050565b6200057f826200033d565b67ffffffffffffffff8111156200059b576200059a6200015e565b5b620005a7825462000374565b620005b4828285620004dd565b5f60209050601f831160018114620005ea575f8415620005d5578287015190505b620005e1858262000557565b86555062000650565b601f198416620005fa86620003a8565b5f5b828110156200062357848901518255600182019150602085019450602081019050620005fc565b868310156200064357848901516200063f601f89168262000539565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620006e257808604811115620006ba57620006b962000658565b5b6001851615620006ca5780820291505b8081029050620006da8562000685565b94506200069a565b94509492505050565b5f82620006fc5760019050620007ce565b816200070b575f9050620007ce565b81600181146200072457600281146200072f5762000765565b6001915050620007ce565b60ff84111562000744576200074362000658565b5b8360020a9150848211156200075e576200075d62000658565b5b50620007ce565b5060208310610133831016604e8410600b84101617156200079f5782820a90508381111562000799576200079862000658565b5b620007ce565b620007ae848484600162000691565b92509050818404811115620007c857620007c762000658565b5b81810290505b9392505050565b5f620007e1826200042a565b9150620007ee836200042a565b92506200081d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006eb565b905092915050565b5f62000831826200042a565b91506200083e836200042a565b92508282026200084e816200042a565b9150828204841483151762000868576200086762000658565b5b5092915050565b6200087a816200042a565b82525050565b5f602082019050620008955f8301846200086f565b92915050565b610be180620008a95f395ff3fe608060405234801561000f575f80fd5b506004361061007b575f3560e01c8063313ce56711610059578063313ce567146100fd57806370a082311461011b578063a9059cbb1461014b578063dd62ed3e1461017b5761007b565b8063095ea7b31461007f57806318160ddd146100af57806323b872dd146100cd575b5f80fd5b61009960048036038101906100949190610965565b6101ab565b6040516100a691906109bd565b60405180910390f35b6100b7610298565b6040516100c491906109e5565b60405180910390f35b6100e760048036038101906100e291906109fe565b6102a1565b6040516100f491906109bd565b60405180910390f35b6101056105ed565b6040516101129190610a69565b60405180910390f35b61013560048036038101906101309190610a82565b6105f2565b60405161014291906109e5565b60405180910390f35b61016560048036038101906101609190610965565b610638565b60405161017291906109bd565b60405180910390f35b61019560048036038101906101909190610aad565b610801565b6040516101a291906109e5565b60405180910390f35b5f8160035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161028691906109e5565b60405180910390a36001905092915050565b5f600454905090565b5f60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548211156102eb575f80fd5b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205482111561036f575f80fd5b6103b660025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610883565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061047960035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610883565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061053c60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836108a9565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516105da91906109e5565b60405180910390a3600190509392505050565b601281565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054821115610682575f80fd5b6106c960025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205483610883565b60025f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061075160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054836108a9565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107ef91906109e5565b60405180910390a36001905092915050565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f8282111561089557610894610aeb565b5b81836108a19190610b45565b905092915050565b5f8082846108b79190610b78565b9050838110156108ca576108c9610aeb565b5b8091505092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610901826108d8565b9050919050565b610911816108f7565b811461091b575f80fd5b50565b5f8135905061092c81610908565b92915050565b5f819050919050565b61094481610932565b811461094e575f80fd5b50565b5f8135905061095f8161093b565b92915050565b5f806040838503121561097b5761097a6108d4565b5b5f6109888582860161091e565b925050602061099985828601610951565b9150509250929050565b5f8115159050919050565b6109b7816109a3565b82525050565b5f6020820190506109d05f8301846109ae565b92915050565b6109df81610932565b82525050565b5f6020820190506109f85f8301846109d6565b92915050565b5f805f60608486031215610a1557610a146108d4565b5b5f610a228682870161091e565b9350506020610a338682870161091e565b9250506040610a4486828701610951565b9150509250925092565b5f60ff82169050919050565b610a6381610a4e565b82525050565b5f602082019050610a7c5f830184610a5a565b92915050565b5f60208284031215610a9757610a966108d4565b5b5f610aa48482850161091e565b91505092915050565b5f8060408385031215610ac357610ac26108d4565b5b5f610ad08582860161091e565b9250506020610ae18582860161091e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610b4f82610932565b9150610b5a83610932565b9250828203905081811115610b7257610b71610b18565b5b92915050565b5f610b8282610932565b9150610b8d83610932565b9250828201905080821115610ba557610ba4610b18565b5b9291505056fea26469706673582212200bc9479ca491b6518e37ccc893181aa21033008260bf853ad1d698085361ff7b64736f6c63430008140033
Loading

0 comments on commit 3b011ab

Please sign in to comment.