remove persistency, return sequence, update tests
Change-Id: Ibdaa3f6443dcabe3a838bc25888bb9676b7e1d2d
This commit is contained in:
parent
227445cd76
commit
30a50938d7
|
@ -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];
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -41,7 +41,6 @@ contract Storage {
|
|||
mapping(address => bool) initializedImplementations;
|
||||
|
||||
uint256 messageFee;
|
||||
uint256 persistedMessageFee;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue