remove persistency, return sequence, update tests

Change-Id: Ibdaa3f6443dcabe3a838bc25888bb9676b7e1d2d
This commit is contained in:
valentin 2021-07-20 16:03:47 +02:00
parent 227445cd76
commit 30a50938d7
7 changed files with 6 additions and 40 deletions

View File

@ -42,10 +42,6 @@ contract Getters is State {
return _state.messageFee;
}
function persistedMessageFee() public view returns (uint256) {
return _state.persistedMessageFee;
}
function nextSequence(address emitter) public view returns (uint64) {
return _state.sequences[emitter];
}

View File

@ -47,7 +47,6 @@ abstract contract Governance is GovernanceStructs, Messages, Setters, ERC1967Upg
setGovernanceActionConsumed(vm.hash);
setMessageFee(upgrade.messageFee);
setPersistedMessageFee(upgrade.persistedMessageFee);
}
function submitNewGuardianSet(bytes memory _vm) public {

View File

@ -37,7 +37,6 @@ contract GovernanceStructs {
uint16 chain;
uint256 messageFee;
uint256 persistedMessageFee;
}
struct TransferFees {
@ -119,9 +118,6 @@ contract GovernanceStructs {
smf.messageFee = encodedSetMessageFee.toUint256(index);
index += 32;
smf.persistedMessageFee = encodedSetMessageFee.toUint256(index);
index += 32;
require(encodedSetMessageFee.length == index, "invalid SetMessageFee");
}

View File

@ -9,24 +9,20 @@ import "./Governance.sol";
import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol";
contract Implementation is Governance {
event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, bool persistMessage, uint8 consistencyLevel);
event LogMessagePublished(address indexed sender, uint64 sequence, uint32 nonce, bytes payload, uint8 consistencyLevel);
// Publish a message to be attested by the Wormhole network
function publishMessage(
uint32 nonce,
bytes memory payload,
bool persistMessage,
uint8 consistencyLevel
) public payable {
) public payable returns (uint64 sequence) {
// check fee
if( persistMessage ) {
require(msg.value == persistedMessageFee(), "invalid fee");
} else {
require(msg.value == messageFee(), "invalid fee");
}
require(msg.value == messageFee(), "invalid fee");
sequence = useSequence(msg.sender);
// emit log
emit LogMessagePublished(msg.sender, useSequence(msg.sender), nonce, payload, persistMessage, consistencyLevel);
emit LogMessagePublished(msg.sender, sequence, nonce, payload, consistencyLevel);
}
function useSequence(address emitter) internal returns (uint64 sequence) {

View File

@ -42,10 +42,6 @@ contract Setters is State {
_state.messageFee = newFee;
}
function setPersistedMessageFee(uint256 newFee) internal {
_state.persistedMessageFee = newFee;
}
function setNextSequence(address emitter, uint64 sequence) internal {
_state.sequences[emitter] = sequence;
}

View File

@ -41,7 +41,6 @@ contract Storage {
mapping(address => bool) initializedImplementations;
uint256 messageFee;
uint256 persistedMessageFee;
}
}

View File

@ -107,7 +107,6 @@ contract("Wormhole", function () {
const log = await initialized.methods.publishMessage(
"0x123",
"0x123321",
false,
32
).send({
value: 0, // fees are set to 0 initially
@ -119,7 +118,6 @@ contract("Wormhole", function () {
assert.equal(log.events.LogMessagePublished.returnValues.nonce, 291);
assert.equal(log.events.LogMessagePublished.returnValues.payload.toString(), "0x123321");
assert.equal(log.events.LogMessagePublished.returnValues.consistencyLevel, 32);
assert.equal(log.events.LogMessagePublished.returnValues.persistMessage, false);
})
it("should increase the sequence for an account", async function () {
@ -129,7 +127,6 @@ contract("Wormhole", function () {
const log = await initialized.methods.publishMessage(
"0x1",
"0x1",
false,
32
).send({
value: 0, // fees are set to 0 initially
@ -198,7 +195,6 @@ contract("Wormhole", function () {
data += [
web3.eth.abi.encodeParameter("uint16", testChainId).substring(2 + (64 - 4)),
web3.eth.abi.encodeParameter("uint256", 1111).substring(2),
web3.eth.abi.encodeParameter("uint256", 2222).substring(2),
].join('')
const vm = await signAndEncodeVM(
@ -229,33 +225,21 @@ contract("Wormhole", function () {
assert.notEqual(before, after);
assert.equal(after, 1111);
// test non-persisted message
// test message publishing
await initialized.methods.publishMessage(
"0x123",
"0x123321",
false,
32
).send({
from: accounts[0],
value: 1111
})
// test persisted message
await initialized.methods.publishMessage(
"0x123",
"0x123321",
true,
32
).send({
from: accounts[0],
value: 2222
})
let failed = false;
try {
await initialized.methods.publishMessage(
"0x123",
"0x123321",
false,
32
).send({
value: 1110,