update contracts, rm selfdestruct (EIP-6780)
redeploy to same address is no longer possible
This commit is contained in:
parent
a05e4cefb5
commit
e9b3f9a27c
@ -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"))
|
||||
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
@ -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))); */
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user