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 |