Skip to content

Commit 72db7b4

Browse files
committed
omit revert_options for success
1 parent 9b92d33 commit 72db7b4

2 files changed

Lines changed: 30 additions & 23 deletions

File tree

zetachain-cctx/zetachain-cctx-logic/src/database.rs

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -996,13 +996,12 @@ impl ZetachainCctxDatabase {
996996
.try_get_by_index(18)
997997
.map_err(|e| anyhow::anyhow!("cctx_row last_update_timestamp: {}", e))?;
998998

999+
let cctx_status =
1000+
CctxStatusProto::from_str_name(cctx_row.try_get_by_index::<String>(15)?.as_str())
1001+
.ok_or(anyhow::anyhow!("Invalid status"))?;
9991002
// Build CctxStatus
10001003
let status = StatusProto {
1001-
status: CctxStatusProto::from_str_name(
1002-
cctx_row.try_get_by_index::<String>(15)?.as_str(),
1003-
)
1004-
.ok_or(anyhow::anyhow!("Invalid status"))?
1005-
.into(),
1004+
status: cctx_status.into(),
10061005
status_message: cctx_row
10071006
.try_get_by_index(16)
10081007
.map_err(|e| anyhow::anyhow!("cctx_row status_message: {}", e))?,
@@ -1098,22 +1097,30 @@ impl ZetachainCctxDatabase {
10981097
.map_err(|e| anyhow::anyhow!("cctx_row token_name: {}", e))?;
10991098

11001099
// Build RevertOptions
1101-
let revert = RevertOptionsProto {
1102-
revert_address: cctx_row
1103-
.try_get_by_index(41)
1104-
.map_err(|e| anyhow::anyhow!("cctx_row revert_address: {}", e))?,
1105-
call_on_revert: cctx_row
1106-
.try_get_by_index(42)
1107-
.map_err(|e| anyhow::anyhow!("cctx_row call_on_revert: {}", e))?,
1108-
abort_address: cctx_row
1109-
.try_get_by_index(43)
1110-
.map_err(|e| anyhow::anyhow!("cctx_row abort_address: {}", e))?,
1111-
revert_message: cctx_row
1112-
.try_get_by_index::<Option<String>>(44)
1113-
.map_err(|e| anyhow::anyhow!("cctx_row revert_message: {}", e))?,
1114-
revert_gas_limit: cctx_row
1115-
.try_get_by_index(45)
1116-
.map_err(|e| anyhow::anyhow!("cctx_row revert_gas_limit: {}", e))?,
1100+
let revert_options: Option<RevertOptionsProto> = {
1101+
if cctx_status == CctxStatusProto::OutboundMined
1102+
|| cctx_status == CctxStatusProto::PendingOutbound
1103+
{
1104+
None
1105+
} else {
1106+
Some(RevertOptionsProto {
1107+
revert_address: cctx_row
1108+
.try_get_by_index(41)
1109+
.map_err(|e| anyhow::anyhow!("cctx_row revert_address: {}", e))?,
1110+
call_on_revert: cctx_row
1111+
.try_get_by_index(42)
1112+
.map_err(|e| anyhow::anyhow!("cctx_row call_on_revert: {}", e))?,
1113+
abort_address: cctx_row
1114+
.try_get_by_index(43)
1115+
.map_err(|e| anyhow::anyhow!("cctx_row abort_address: {}", e))?,
1116+
revert_message: cctx_row
1117+
.try_get_by_index::<Option<String>>(44)
1118+
.map_err(|e| anyhow::anyhow!("cctx_row revert_message: {}", e))?,
1119+
revert_gas_limit: cctx_row
1120+
.try_get_by_index(45)
1121+
.map_err(|e| anyhow::anyhow!("cctx_row revert_gas_limit: {}", e))?,
1122+
})
1123+
}
11171124
};
11181125

11191126
// Now get outbound params (can be multiple, so we need a separate query)
@@ -1343,7 +1350,7 @@ impl ZetachainCctxDatabase {
13431350
cctx_status_reduced: status_reduced.into(),
13441351
inbound_params: Some(inbound),
13451352
outbound_params: outbounds,
1346-
revert_options: Some(revert),
1353+
revert_options,
13471354
protocol_contract_version: protocol_contract_version.into(),
13481355
related_cctxs: related,
13491356
token_symbol,

zetachain-cctx/zetachain-cctx-proto/proto/v1/zetachain-cctx.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ message CrossChainTx {
270270
InboundParams inbound_params = 11;
271271
repeated OutboundParams outbound_params = 12;
272272
ProtocolContractVersion protocol_contract_version = 13;
273-
RevertOptions revert_options = 14;
273+
optional RevertOptions revert_options = 14;
274274
repeated RelatedCctx related_cctxs = 15;
275275
optional string token_symbol = 16;
276276
optional string token_name = 17;

0 commit comments

Comments
 (0)