Skip to content

Latest commit

 

History

History
22 lines (21 loc) · 8.89 KB

eibc.md

File metadata and controls

22 lines (21 loc) · 8.89 KB

Tests handle

No Scenario Pre-condition Pre-condition check Expected result Expected result check Covered By
1 Rollapp token Demand order is created upon memo submission and fulfilled At least 2 rollapps running, Rollapp A and B. Rollapp B is at finalized height < Rollapp A finalized height. Rollapp B has a channel-id different from the hub-channel-id. Demand order for Rollapp tokens created and fulfilled upon memo submission. TestEIBCFulfillment_EVM TestEIBCFulfillment_Wasm
2 DYM Demand order is created upon memo submission and fulfilled Same as the case above Timeout triggered for EIBC transaction from hub to rollapp due to non-finalization. TestEIBCTimeoutHubToRollapp
3 3rd party token (i.e blumbus) Demand order is created upon memo submission and fulfilled Same as the case above
  • Eibc demand order created
  • Fulfill the eibc demand order
  • Verify the originator gets the funds minus the fee right away
  • Verify the fulfiller gets the full amount after the grace period is finalized
  • No packet commitment left on the rollapp (i.e. ack received). Can be queried using the CLI rollapp-evm q ibc channel packet-commitments transfer <channel-id>
TestEIBCFulfillment_ThirdParty_EVM TestEIBCFulfillment_ThirdParty_Wasm
4 DYM ibc transfer timeout Same as the case above
  • send dym from dymension to rollapp
  • set minimum packet timeout (i.e. 1ms) so that the packet is not relayed before it is picked by a relayer
  • sender should get funds back after grace period.
  • no packet commitment left on the rollapp (i.e ack recieved). can be queries using the cli rollapp-evm q ibc channel packet-commitments transfer
  • demand order is created with correct ibc denom and fee
  • demand order can get fulfilled
  • upon timeout the funds should go to the fulfiller
TestIBCTransferTimeout_EVM TestIBCTransferTimeout_Wasm
5 Rollapp token ibc-transfer timeout Same as the case above
  • send rollapp IBC denom from dymension to rollapp
  • Same as the case above
TestIBCTransferTimeout_EVM TestIBCTransferTimeout_Wasm
6 3rd party token Demand order is created upon timeout and fulfilled Same as the case above
  • send 3rd party IBC denom from dymension to rollapp
  • the amount returned should be smaller by a 0.15% fee
  • market maker is able to fulfill it
  • no packet commitment left on the rollapp (i.e ack recieved). can be queries using the cli rollapp-evm q ibc channel packet-commitments transfer
  • upon timeout the funds should go to the fulfiller
TestEIBCTimeoutAndFulFillDymToRollapp
7 Demand order is created upon AckError for dym
  • IBC which exists on the evm-rollapp but doesn’t have erc20
  • At least 2 rollapps running, Rollapp A and B. Rollapp B is at finalized height < Rollapp A finalized height. Rollapp B has a channel-id different from the hub-channel-id.
  • send the DYM token from hub to rollapp
  • fulfiller the order with the IBC denom
  • ack error returned from the rollapp
  • eibc ack error demand order is created with correct denom and correct data
  • eibc managed to get fulfilled
  • upon ack error the funds should go to the fulfiller
TestEIBC_AckError_Dym_EVM TestEIBC_AckError_Dym_Wasm
8 Demand order is created upon AckError for 3rd party token Same as the case above
  • send the ibc token from hub to rollapp
  • Same as the case above
TestEIBC_AckError_3rd_Party_Token_EVM TestEIBC_AckError_3rd_Party_Token_Wasm
9 Demand order is created upon AckError for rollapp token Same as the case above
  • send the ibc token from hub to rollapp
  • Same as the case above
TestEIBC_AckError_RA_Token_EVM TestEIBC_AckError_RA_Token_Wasm
10 eibc shouldn’t work together with PFM At least 2 rollapps running, Rollapp A and B. Rollapp B is at finalized height < Rollapp A finalized height. Rollapp B has a channel-id different from the hub-channel-id. Try to send RAX from rollapp to Dymension:
  • with both eibc and forward objects in memo.
  • Forward object could specify an address
The transfer should not be successful and RAX should be returned to rollapp’s wallet
TestEIBCPFM_EVM TestEIBCPFM_Wasm
11 Demand order fulfillment eIBC pending order on the hub
  • fulfill the eIBC order
  • IBC Amount goes to the fulfiller upon finalization
  • Amount - Fee goes to the user
TestEIBCFulfillment_EVM TestEIBCFulfillment_Wasm
12 Demand order not fulfillment eIBC pending order on the hub
  • don’t fulfill the eIBC demand order
  • user gets the entire amount upon grace period
TestEIBCNotFulfillment_EVM TestEIBCNotFulfillment_Wasm
13 Demand order with fee > amount fails send eIBC order (rollapp to hub) from CLI with fee > total amount (use memo) should return ack error from the hub TestEIBCCorruptedMemoNegative
14 Demand order with invalid fee fails send eIBC order (rollapp to hub) from CLI with invalid fee (i.e minus/letters etc) should return ack error from the hub TestEIBCCorruptedMemoNegative
15 Send eIBC order (rollapp to hub) from CLI with invalid fee (i.e minus/letters etc)
  • send IBC order from rollapp to hub without specifying eIBC memo
  • eibc order shouldn’t be created
  • upon finalization period amount should be transferred to original sender
ibc_transfer_test
16 Demand order for hub to rollapp transfer should be ignored and not created
  • send IBC order from hub to rollapp specifying eIBC memo
  • eibc order shouldn’t be created
TestEIBCFulfillment_ignore_hub_to_RA_EVM TestEIBCFulfillment_ignore_hub_to_RA_Wasm
17 Demand order fulfillment from one rollapp, no fulfillment from other rollapp
  • eIBC order pending on the hub coming from rollapp
  • eIBC order pending on the hub coming from rollapp 2
  • fulfill the order coming from rollapp 1
  • user gets amount minus fee for demand order coming from rollapp 1
  • market maker gets amount upon grace period of IBC packet coming from rollapp 1
  • user gets amount upon grace period of IBC packet coming from rollapp 2
  • no packet commitment left on the rollapp (i.e ack recieved). can be queries using the cli rollapp-evm q ibc channel packet-commitments transfer
TestEIBCFulfillOnOneRollApp_EVM TestEIBCFulfillOnOneRollApp_Wasm
18 Demand order fulfillment in 2 different rollapps Same as the case above
  • fulfill the order coming from rollapp 1
  • fulfill the order coming from rollapp 2
  • user gets amount minus fee for demand order coming from rollapp 1
  • market maker gets amount upon grace period of IBC packet coming from rollapp 1
  • user gets amount minus fee for demand order coming from rollapp 2
  • market maker gets amount upon grace period of IBC packet coming from rollapp 2
  • no packet commitment left on the rollapp (i.e ack recieved). can be queries using the cli rollapp-evm q ibc channel packet-commitments transfer
TestEIBCFulfillment_two_rollapps