Skip to content

Commit fea680f

Browse files
authored
chore(sui): integrate escrow vault into voyager (#5253)
2 parents 47cdb59 + 93ffc93 commit fea680f

File tree

4 files changed

+49
-20
lines changed

4 files changed

+49
-20
lines changed

voyager/plugins/sui-ibc-app/src/main.rs

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ pub struct Module {
5252

5353
#[derive(Clone, Debug, Serialize, Deserialize)]
5454
pub struct ZkgmConfig {
55-
vault_object_id: ObjectID,
55+
owned_vault_object_id: ObjectID,
56+
escrow_vault_object_id: ObjectID,
5657
/// ID of the `wrapped_token_to_t` mapping
5758
wrapped_token_to_t: ObjectID,
5859
}
@@ -108,7 +109,13 @@ impl TransactionPluginServer for Module {
108109
let mut ptb = ProgrammableTransactionBuilder::new();
109110

110111
let store_initial_seq = self.get_initial_seq(module_info.stores[0].into()).await;
111-
let vault_store_initial_seq = self.get_initial_seq(self.zkgm_config.vault_object_id).await;
112+
let owned_vault_store_initial_seq = self
113+
.get_initial_seq(self.zkgm_config.owned_vault_object_id)
114+
.await;
115+
116+
let escrow_vault_store_initial_seq = self
117+
.get_initial_seq(self.zkgm_config.escrow_vault_object_id)
118+
.await;
112119

113120
// If the module is ZKGM, then we register the tokens if needed. Otherwise,
114121
// the registered tokens are returned.
@@ -136,8 +143,10 @@ impl TransactionPluginServer for Module {
136143
self,
137144
&module_info,
138145
store_initial_seq,
139-
self.zkgm_config.vault_object_id,
140-
vault_store_initial_seq,
146+
self.zkgm_config.owned_vault_object_id,
147+
owned_vault_store_initial_seq,
148+
self.zkgm_config.escrow_vault_object_id,
149+
escrow_vault_store_initial_seq,
141150
coin_t,
142151
fee_recipient,
143152
data.relayer_msgs.clone(),
@@ -163,7 +172,12 @@ impl TransactionPluginServer for Module {
163172
let mut ptb = ProgrammableTransactionBuilder::new();
164173

165174
let store_initial_seq = self.get_initial_seq(module_info.stores[0].into()).await;
166-
let vault_store_initial_seq = self.get_initial_seq(self.zkgm_config.vault_object_id).await;
175+
let owned_vault_store_initial_seq = self
176+
.get_initial_seq(self.zkgm_config.owned_vault_object_id)
177+
.await;
178+
let escrow_vault_store_initial_seq = self
179+
.get_initial_seq(self.zkgm_config.escrow_vault_object_id)
180+
.await;
167181

168182
// If the module is ZKGM, then we register the tokens if needed. Otherwise,
169183
// the registered tokens are returned.
@@ -180,8 +194,10 @@ impl TransactionPluginServer for Module {
180194
self,
181195
&module_info,
182196
store_initial_seq,
183-
self.zkgm_config.vault_object_id,
184-
vault_store_initial_seq,
197+
self.zkgm_config.owned_vault_object_id,
198+
owned_vault_store_initial_seq,
199+
self.zkgm_config.escrow_vault_object_id,
200+
escrow_vault_store_initial_seq,
185201
coin_t,
186202
fee_recipient,
187203
session,
@@ -202,7 +218,9 @@ impl TransactionPluginServer for Module {
202218
let mut ptb = ProgrammableTransactionBuilder::new();
203219

204220
let store_initial_seq = self.get_initial_seq(module_info.stores[0].into()).await;
205-
let vault_store_initial_seq = self.get_initial_seq(self.zkgm_config.vault_object_id).await;
221+
let vault_store_initial_seq = self
222+
.get_initial_seq(self.zkgm_config.owned_vault_object_id)
223+
.await;
206224

207225
// If the module is ZKGM, then we register the tokens if needed. Otherwise,
208226
// the registered tokens are returned.
@@ -218,7 +236,7 @@ impl TransactionPluginServer for Module {
218236
self,
219237
&module_info,
220238
store_initial_seq,
221-
self.zkgm_config.vault_object_id,
239+
self.zkgm_config.owned_vault_object_id,
222240
vault_store_initial_seq,
223241
coin_t,
224242
session,

voyager/plugins/sui-ibc-app/src/zkgm.rs

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,10 @@ pub fn recv_packet_call(
8686
module: &Module,
8787
module_info: &ModuleInfo,
8888
zkgm_store_initial_seq: SequenceNumber,
89-
vault_object_id: ObjectID,
90-
vault_store_initial_seq: SequenceNumber,
89+
owned_vault_object_id: ObjectID,
90+
owned_vault_store_initial_seq: SequenceNumber,
91+
escrow_vault_object_id: ObjectID,
92+
escrow_vault_store_initial_seq: SequenceNumber,
9193
coin_t: TypeTag,
9294
fee_recipient: SuiAddress,
9395
relayer_msgs: Vec<Bytes>,
@@ -105,8 +107,13 @@ pub fn recv_packet_call(
105107
mutable: true,
106108
}),
107109
CallArg::Object(ObjectArg::SharedObject {
108-
id: vault_object_id,
109-
initial_shared_version: vault_store_initial_seq,
110+
id: owned_vault_object_id,
111+
initial_shared_version: owned_vault_store_initial_seq,
112+
mutable: true,
113+
}),
114+
CallArg::Object(ObjectArg::SharedObject {
115+
id: escrow_vault_object_id,
116+
initial_shared_version: escrow_vault_store_initial_seq,
110117
mutable: true,
111118
}),
112119
SUI_CALL_ARG_CLOCK,
@@ -208,8 +215,10 @@ pub fn acknowledge_packet_call(
208215
module: &Module,
209216
module_info: &ModuleInfo,
210217
zkgm_store_initial_seq: SequenceNumber,
211-
vault_object_id: ObjectID,
212-
vault_store_initial_seq: SequenceNumber,
218+
owned_vault_object_id: ObjectID,
219+
owned_vault_store_initial_seq: SequenceNumber,
220+
escrow_vault_object_id: ObjectID,
221+
escrow_vault_store_initial_seq: SequenceNumber,
213222
coin_t: TypeTag,
214223
fee_recipient: SuiAddress,
215224
session: Argument,
@@ -221,8 +230,13 @@ pub fn acknowledge_packet_call(
221230
mutable: true,
222231
}),
223232
CallArg::Object(ObjectArg::SharedObject {
224-
id: vault_object_id,
225-
initial_shared_version: vault_store_initial_seq,
233+
id: owned_vault_object_id,
234+
initial_shared_version: owned_vault_store_initial_seq,
235+
mutable: true,
236+
}),
237+
CallArg::Object(ObjectArg::SharedObject {
238+
id: escrow_vault_object_id,
239+
initial_shared_version: escrow_vault_store_initial_seq,
226240
mutable: true,
227241
}),
228242
CallArg::Object(ObjectArg::SharedObject {

voyager/plugins/transaction/sui/src/main.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,6 @@ impl Module {
212212
&mut ptb_builder,
213213
self,
214214
try_parse_port(&self.graphql_url, port_id.as_bytes()).await?,
215-
port_id,
216215
data,
217216
)?
218217
}

voyager/plugins/transaction/sui/src/move_api.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,6 @@ pub fn channel_open_ack(
302302
ptb: &mut ProgrammableTransactionBuilder,
303303
module: &Module,
304304
module_info: ModuleInfo,
305-
port_id: String,
306305
data: MsgChannelOpenAck,
307306
) -> anyhow::Result<()> {
308307
ptb.move_call(
@@ -316,7 +315,6 @@ pub fn channel_open_ack(
316315
initial_shared_version: module.ibc_store_initial_seq,
317316
mutable: true,
318317
}),
319-
(&port_id.into_bytes()).into(),
320318
data.channel_id.raw().into(),
321319
(&data.counterparty_version.into_bytes()).into(),
322320
data.counterparty_channel_id.raw().into(),

0 commit comments

Comments
 (0)