Skip to content

Commit 64876e2

Browse files
committed
set origin signer
1 parent 4a0f383 commit 64876e2

File tree

7 files changed

+254
-539
lines changed

7 files changed

+254
-539
lines changed

integration_tests/ibc_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ def get_balances(chain, addr):
344344

345345
def ibc_multi_transfer(ibc):
346346
chains = [ibc.cronos.cosmos_cli(), ibc.chainmain.cosmos_cli()]
347-
users = [f"user{i}" for i in range(1, 51)]
347+
users = [f"user{i}" for i in range(1, 1)]
348348
addrs0 = [chains[0].address(user) for user in users]
349349
addrs1 = [chains[1].address(user) for user in users]
350350
denom0 = "basetcro"

integration_tests/test_ibc_rly.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
ibc_multi_transfer,
1616
ibc_transfer,
1717
prepare_network,
18+
rly_transfer,
1819
)
1920
from .utils import (
2021
ADDRS,
@@ -51,7 +52,7 @@ def ibc(request, tmp_path_factory):
5152
yield from prepare_network(
5253
path,
5354
name,
54-
relayer=cluster.Relayer.HERMES.value,
55+
relayer=cluster.Relayer.RLY.value,
5556
)
5657

5758

@@ -235,7 +236,7 @@ def test_ibc(ibc):
235236
w3 = ibc.cronos.w3
236237
wait_for_new_blocks(ibc.cronos.cosmos_cli(), 1)
237238
start = w3.eth.get_block_number()
238-
ibc_transfer(ibc)
239+
ibc_transfer(ibc, rly_transfer)
239240
denom = ibc_denom(channel, src_denom)
240241
logs = get_logs_since(w3, CONTRACT, start)
241242
chainmain_cli = ibc.chainmain.cosmos_cli()

integration_tests/test_ibc_rly_gas.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
ibc_transfer,
88
log_gas_records,
99
prepare_network,
10+
rly_transfer,
1011
)
1112
from .utils import wait_for_new_blocks
1213

@@ -18,7 +19,7 @@ def ibc(request, tmp_path_factory):
1819
"prepare-network"
1920
name = request.param
2021
path = tmp_path_factory.mktemp(name)
21-
yield from prepare_network(path, name, relayer=cluster.Relayer.HERMES.value)
22+
yield from prepare_network(path, name, relayer=cluster.Relayer.RLY.value)
2223

2324

2425
records = []
@@ -28,7 +29,7 @@ def test_ibc(ibc):
2829
# chainmain-1 relayer -> cronos_777-1 signer2
2930
cli = ibc.cronos.cosmos_cli()
3031
wait_for_new_blocks(cli, 1)
31-
ibc_transfer(ibc)
32+
ibc_transfer(ibc, rly_transfer)
3233
ibc_incentivized_transfer(ibc)
3334
ibc_multi_transfer(ibc)
3435
diff = 0.1

nix/sources.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,10 @@
126126
"homepage": "https://github.com/crypto-org-chain/relayer",
127127
"owner": "crypto-org-chain",
128128
"repo": "relayer",
129-
"rev": "fe5722292a9961e80818e3ef5c987330b538bc05",
130-
"sha256": "0jv4pkrqhckbabxxxbr0bcil0fakbnc7sf22k2wa5q6v6921ci0y",
129+
"rev": "a7139118e7204a80e5c277a84a91be2bb8884147",
130+
"sha256": "sha256:1ps8lyh3v0zbwb6dilrn009iwkyck73p17mc0a75w806f1wsxzmn",
131131
"type": "tarball",
132-
"url": "https://github.com/crypto-org-chain/relayer/archive/fe5722292a9961e80818e3ef5c987330b538bc05.tar.gz",
132+
"url": "https://github.com/mmsqe/relayer/archive/a7139118e7204a80e5c277a84a91be2bb8884147.tar.gz",
133133
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
134134
}
135135
}

x/cronos/events/bindings/cosmos/precompile/relayer/i_relayer_functions.abigen.go

Lines changed: 217 additions & 490 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

x/cronos/events/bindings/src/RelayerFunctions.sol

Lines changed: 18 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,22 @@
22
pragma solidity ^0.8.4;
33

44
interface IRelayerFunctions {
5-
function createClient(bytes calldata data) external payable returns (bytes calldata);
6-
function updateClient(bytes calldata data) external payable returns (bytes calldata);
7-
function upgradeClient(bytes calldata data) external payable returns (bytes calldata);
8-
function submitMisbehaviour(bytes calldata data) external payable returns (bytes calldata);
9-
function connectionOpenInit(bytes calldata data) external payable returns (bytes calldata);
10-
function connectionOpenTry(bytes calldata data) external payable returns (bytes calldata);
11-
function connectionOpenAck(bytes calldata data) external payable returns (bytes calldata);
12-
function connectionOpenConfirm(bytes calldata data) external payable returns (bytes calldata);
13-
function channelOpenInit(bytes calldata data) external payable returns (bytes calldata);
14-
function channelOpenTry(bytes calldata data) external payable returns (bytes calldata);
15-
function channelOpenAck(bytes calldata data) external payable returns (bytes calldata);
16-
function channelOpenConfirm(bytes calldata data) external payable returns (bytes calldata);
17-
function channelCloseInit(bytes calldata data) external payable returns (bytes calldata);
18-
function channelCloseConfirm(bytes calldata data) external payable returns (bytes calldata);
19-
function recvPacket(bytes calldata data) external payable returns (bytes calldata);
20-
function acknowledgement(bytes calldata data) external payable returns (bytes calldata);
21-
function timeout(bytes calldata data) external payable returns (bytes calldata);
22-
function timeoutOnClose(bytes calldata data) external payable returns (bytes calldata);
23-
function updateClientAndConnectionOpenInit(bytes calldata data1, bytes calldata data2) external payable returns (bool);
24-
function updateClientAndConnectionOpenTry(bytes calldata data1, bytes calldata data2) external payable returns (bool);
25-
function updateClientAndConnectionOpenAck(bytes calldata data1, bytes calldata data2) external payable returns (bool);
26-
function updateClientAndConnectionOpenConfirm(bytes calldata data1, bytes calldata data2) external payable returns (bool);
27-
function updateClientAndChannelOpenInit(bytes calldata data1, bytes calldata data2) external payable returns (bool);
28-
function updateClientAndChannelOpenTry(bytes calldata data1, bytes calldata data2) external payable returns (bool);
29-
function updateClientAndChannelOpenAck(bytes calldata data1, bytes calldata data2) external payable returns (bool);
30-
function updateClientAndChannelOpenConfirm(bytes calldata data1, bytes calldata data2) external payable returns (bool);
31-
function updateClientAndRecvPacket(bytes calldata data1, bytes calldata data2) external payable returns (bool);
32-
function updateClientAndAcknowledgement(bytes calldata data1, bytes calldata data2) external payable returns (bool);
33-
function updateClientAndTimeout(bytes calldata data1, bytes calldata data2) external payable returns (bool);
34-
function updateClientAndChannelCloseInit(bytes calldata data1, bytes calldata data2) external payable returns (bool);
35-
function updateClientAndChannelCloseConfirm(bytes calldata data1, bytes calldata data2) external payable returns (bool);
5+
function createClient(address signer, bytes calldata data) external payable returns (bytes calldata);
6+
function updateClient(address signer, bytes calldata data) external payable returns (bytes calldata);
7+
function upgradeClient(address signer, bytes calldata data) external payable returns (bytes calldata);
8+
function submitMisbehaviour(address signer, bytes calldata data) external payable returns (bytes calldata);
9+
function connectionOpenInit(address signer, bytes calldata data) external payable returns (bytes calldata);
10+
function connectionOpenTry(address signer, bytes calldata data) external payable returns (bytes calldata);
11+
function connectionOpenAck(address signer, bytes calldata data) external payable returns (bytes calldata);
12+
function connectionOpenConfirm(address signer, bytes calldata data) external payable returns (bytes calldata);
13+
function channelOpenInit(address signer, bytes calldata data) external payable returns (bytes calldata);
14+
function channelOpenTry(address signer, bytes calldata data) external payable returns (bytes calldata);
15+
function channelOpenAck(address signer, bytes calldata data) external payable returns (bytes calldata);
16+
function channelOpenConfirm(address signer, bytes calldata data) external payable returns (bytes calldata);
17+
function channelCloseInit(address signer, bytes calldata data) external payable returns (bytes calldata);
18+
function channelCloseConfirm(address signer, bytes calldata data) external payable returns (bytes calldata);
19+
function recvPacket(address signer, bytes calldata data) external payable returns (bytes calldata);
20+
function acknowledgement(address signer, bytes calldata data) external payable returns (bytes calldata);
21+
function timeout(address signer, bytes calldata data) external payable returns (bytes calldata);
22+
function timeoutOnClose(address signer, bytes calldata data) external payable returns (bytes calldata);
3623
}

x/cronos/keeper/precompiles/relayer.go

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,14 @@ import (
77

88
"cosmossdk.io/log"
99
"github.com/cosmos/cosmos-sdk/codec"
10+
sdk "github.com/cosmos/cosmos-sdk/types"
1011
"github.com/ethereum/go-ethereum/accounts/abi"
1112
"github.com/ethereum/go-ethereum/common"
1213
"github.com/ethereum/go-ethereum/core"
1314
"github.com/ethereum/go-ethereum/core/vm"
1415
"github.com/ethereum/go-ethereum/params"
1516

16-
errorsmod "cosmossdk.io/errors"
1717
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
18-
ibcfeetypes "github.com/cosmos/ibc-go/v8/modules/apps/29-fee/types"
1918
ibctransfertypes "github.com/cosmos/ibc-go/v8/modules/apps/transfer/types"
2019
channeltypes "github.com/cosmos/ibc-go/v8/modules/core/04-channel/types"
2120
cronosevents "github.com/crypto-org-chain/cronos/v2/x/cronos/events"
@@ -144,7 +143,7 @@ func (bc *RelayerContract) RequiredGas(input []byte) (gas uint64) {
144143
if err != nil {
145144
panic(err)
146145
}
147-
i := args[0].([]byte)
146+
i := args[1].([]byte)
148147
var msg channeltypes.MsgRecvPacket
149148
if err = bc.cdc.Unmarshal(i, &msg); err != nil {
150149
panic(err)
@@ -193,7 +192,8 @@ func (bc *RelayerContract) Run(evm *vm.EVM, contract *vm.Contract, readonly bool
193192
if err != nil {
194193
return nil, errors.New("fail to unpack input arguments")
195194
}
196-
input := args[0].([]byte)
195+
signer := args[0].(common.Address)
196+
input := args[1].([]byte)
197197
converter := cronosevents.RelayerConvertEvent
198198
e := &Executor{
199199
cdc: bc.cdc,
@@ -234,15 +234,14 @@ func (bc *RelayerContract) Run(evm *vm.EVM, contract *vm.Contract, readonly bool
234234
res, err = exec(e, bc.ibcKeeper.RecvPacket)
235235
case Acknowledgement:
236236
res, err = exec(e, func(goCtx context.Context, msg *channeltypes.MsgAcknowledgement) (*channeltypes.MsgAcknowledgementResponse, error) {
237-
var ack ibcfeetypes.IncentivizedAcknowledgement
238-
if err := ibcfeetypes.ModuleCdc.UnmarshalJSON(msg.Acknowledgement, &ack); err != nil {
239-
return nil, errorsmod.Wrapf(err, "cannot unmarshal ICS-29 incentivized packet acknowledgement: %v", ack)
240-
}
241-
msg.Signer = ack.ForwardRelayerAddress
237+
msg.Signer = sdk.AccAddress(signer.Bytes()).String()
242238
return bc.ibcKeeper.Acknowledgement(goCtx, msg)
243239
})
244240
case Timeout:
245-
res, err = exec(e, bc.ibcKeeper.Timeout)
241+
res, err = exec(e, func(goCtx context.Context, msg *channeltypes.MsgTimeout) (*channeltypes.MsgTimeoutResponse, error) {
242+
msg.Signer = sdk.AccAddress(signer.Bytes()).String()
243+
return bc.ibcKeeper.Timeout(goCtx, msg)
244+
})
246245
case TimeoutOnClose:
247246
res, err = exec(e, bc.ibcKeeper.TimeoutOnClose)
248247
default:

0 commit comments

Comments
 (0)