From 9f2f9154d2fa77303f91d4444d0c61fdf3ccefd1 Mon Sep 17 00:00:00 2001 From: snissn Date: Mon, 13 Feb 2023 19:29:11 -0700 Subject: [PATCH] itest for block.difficulty (#10263) --- itests/contracts/GetDifficulty.hex | 1 + itests/contracts/GetDifficulty.sol | 9 +++++++++ itests/fevm_test.go | 13 +++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 itests/contracts/GetDifficulty.hex create mode 100644 itests/contracts/GetDifficulty.sol diff --git a/itests/contracts/GetDifficulty.hex b/itests/contracts/GetDifficulty.hex new file mode 100644 index 000000000..6d584b233 --- /dev/null +++ b/itests/contracts/GetDifficulty.hex @@ -0,0 +1 @@ +608060405234801561001057600080fd5b5060b58061001f6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063b6baffe314602d575b600080fd5b60336047565b604051603e91906066565b60405180910390f35b600044905090565b6000819050919050565b606081604f565b82525050565b6000602082019050607960008301846059565b9291505056fea2646970667358221220c113f1abaabaed6a0324d363896b0d15a8bca7b9a540948a5be5b636a12a534f64736f6c63430008110033 \ No newline at end of file diff --git a/itests/contracts/GetDifficulty.sol b/itests/contracts/GetDifficulty.sol new file mode 100644 index 000000000..155e7cfd1 --- /dev/null +++ b/itests/contracts/GetDifficulty.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.8.17; + +contract GetDifficulty { + function getDifficulty () public view returns (uint256) { + return block.difficulty; + } +} + diff --git a/itests/fevm_test.go b/itests/fevm_test.go index 074f66f12..3018bf63d 100644 --- a/itests/fevm_test.go +++ b/itests/fevm_test.go @@ -855,3 +855,16 @@ func TestFEVMProxyUpgradeable(t *testing.T) { _, _, err := client.EVM().InvokeContractByFuncName(ctx, fromAddr, contractAddr, "test()", []byte{}) require.NoError(t, err) } + +func TestFEVMGetBlockDifficulty(t *testing.T) { + ctx, cancel, client := kit.SetupFEVMTest(t) + defer cancel() + + //install contract + filenameActor := "contracts/GetDifficulty.hex" + fromAddr, contractAddr := client.EVM().DeployContractFromFilename(ctx, filenameActor) + + ret, _, err := client.EVM().InvokeContractByFuncName(ctx, fromAddr, contractAddr, "getDifficulty()", []byte{}) + require.NoError(t, err) + require.Equal(t, len(ret), 32) +}