diff --git a/integration/integration_test.go b/integration/integration_test.go index 4515ac26..8592eee3 100644 --- a/integration/integration_test.go +++ b/integration/integration_test.go @@ -391,7 +391,7 @@ var _ = Describe("Basic integration test", func() { Expect(ipldCountA).To(Equal(slvCountA)) }) - It("gets storage after destruction and redeploy", func() { + It("gets storage after destruction", func() { slvContract, contractErr := integration.Create2Contract("SLVToken", contractSalt) Expect(contractErr).ToNot(HaveOccurred()) @@ -431,21 +431,6 @@ var _ = Describe("Basic integration test", func() { ipldStorage, err := ipldClient.StorageAt(ctx, slvContract.Address, countAIndex, big.NewInt(slvTx.BlockNumber)) Expect(err).ToNot(HaveOccurred()) Expect(ipldStorage).To(Equal(gethStorage)) - - // Redeploy to same address - slvContract, contractErr = integration.Create2Contract("SLVToken", contractSalt) - Expect(contractErr).ToNot(HaveOccurred()) - - gethStorage, err = gethClient.StorageAt(ctx, slvContract.Address, countAIndex, big.NewInt(slvContract.BlockNumber)) - Expect(err).ToNot(HaveOccurred()) - - ipldStorage, err = ipldClient.StorageAt(ctx, slvContract.Address, countAIndex, big.NewInt(slvContract.BlockNumber)) - Expect(err).ToNot(HaveOccurred()) - - Expect(gethStorage).To(Equal(ipldStorage)) - ipldCountA := new(big.Int).SetBytes(ipldStorage) - Expect(ipldCountA.String()).To(Equal("0")) - }) }) diff --git a/test/contract/contracts/GLDToken.sol b/test/contract/contracts/GLDToken.sol index 035167fe..9c4730fe 100644 --- a/test/contract/contracts/GLDToken.sol +++ b/test/contract/contracts/GLDToken.sol @@ -1,11 +1,16 @@ -pragma solidity ^0.8.0; +pragma solidity ^0.8.25; + import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; contract GLDToken is ERC20 { constructor() ERC20("Gold", "GLD") { _mint(msg.sender, 1000000000000000000000); } + function destroy() public { - selfdestruct(payable(msg.sender)); + (bool ok, ) = payable(msg.sender).call{value: address(this).balance}(""); + require(ok, "ETH transfer failed"); + + _burn(msg.sender, balanceOf(msg.sender)); } } diff --git a/test/contract/contracts/SLVToken.sol b/test/contract/contracts/SLVToken.sol index 9c6d89b0..d2aeee9d 100644 --- a/test/contract/contracts/SLVToken.sol +++ b/test/contract/contracts/SLVToken.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: AGPL-3.0 -pragma solidity ^0.8.0; +pragma solidity ^0.8.25; import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; @@ -7,7 +7,9 @@ contract SLVToken is ERC20 { uint256 private countA; uint256 private countB; - constructor() ERC20("Silver", "SLV") {} + constructor() ERC20("Silver", "SLV") { + /* _mint(address(this), 1); */ + } function incrementCountA() public { countA = countA + 1; @@ -20,6 +22,9 @@ contract SLVToken is ERC20 { receive() external payable {} function destroy() public { - selfdestruct(payable(msg.sender)); + (bool ok, ) = payable(msg.sender).call{value: address(this).balance}(""); + require(ok, "ETH transfer failed"); + + /* _burn(address(this), balanceOf(address(this))); */ } }