Skip to content

Commit 4c77a88

Browse files
committed
[FIXUP] Remove payment proofs from atomic swaps
1 parent b674b5e commit 4c77a88

10 files changed

Lines changed: 99 additions & 160 deletions

File tree

api/src/foreign_rpc.rs

Lines changed: 83 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ pub trait ForeignRpc {
5959
}
6060
}
6161
# "#
62-
# ,false, 0, TxFlow::Standard);
62+
# ,false, 0, false, TxFlow::Standard);
6363
```
6464
*/
6565
fn check_version(&self) -> Result<VersionInfo, ErrorKind>;
@@ -107,7 +107,7 @@ pub trait ForeignRpc {
107107
}
108108
}
109109
# "#
110-
# ,false, 4, TxFlow::Standard);
110+
# ,false, 4, false, TxFlow::Standard);
111111
```
112112
*/
113113

@@ -182,7 +182,7 @@ pub trait ForeignRpc {
182182
}
183183
}
184184
# "#
185-
# ,false, 5, TxFlow::Standard);
185+
# ,false, 5, true, TxFlow::Standard);
186186
```
187187
*/
188188
fn receive_tx(
@@ -211,10 +211,6 @@ pub trait ForeignRpc {
211211
"fee": "23500000",
212212
"id": "0436430c-2b02-624c-2032-570501212b00",
213213
"off": "d202964900000000d302964900000000d402964900000000d502964900000000",
214-
"proof": {
215-
"raddr": "32cdd63928854f8b2628b1dce4626ddcdf35d56cb7cfdf7d64cca5822b78d4d3",
216-
"saddr": "32cdd63928854f8b2628b1dce4626ddcdf35d56cb7cfdf7d64cca5822b78d4d3"
217-
},
218214
"sigs": [
219215
{
220216
"nonce": "02b57c1f4fea69a3ee070309cf8f06082022fe06f25a9be1851b56ef0fa18f25d6",
@@ -237,7 +233,6 @@ pub trait ForeignRpc {
237233
"result": {
238234
"Ok": {
239235
"amt": "6000000000",
240-
"atomic_id": "0",
241236
"coms": [
242237
{
243238
"c": "091582c92b99943b57955e52b5ccf1223780c2a2e55995c00c86fca2bcb46b6b9f",
@@ -247,31 +242,25 @@ pub trait ForeignRpc {
247242
"fee": "23500000",
248243
"id": "0436430c-2b02-624c-2032-570501212b00",
249244
"off": "a4f88ac429dee1d453ae33ed9f944417a52c7310477936e484fd83f0f22db483",
250-
"proof": {
251-
"raddr": "32cdd63928854f8b2628b1dce4626ddcdf35d56cb7cfdf7d64cca5822b78d4d3",
252-
"rsig": "02357a13b304ba8e22f4896d5664b72ad6d1b824e88782e2b716686ea14ec47281ef5ee14c03ead84c3260f5b0c1529ad3ddae57f28f6b8b1b66532bfcb2ee0f",
253-
"saddr": "32cdd63928854f8b2628b1dce4626ddcdf35d56cb7cfdf7d64cca5822b78d4d3"
254-
},
255245
"sigs": [
256246
{
257247
"nonce": "02b57c1f4fea69a3ee070309cf8f06082022fe06f25a9be1851b56ef0fa18f25d6",
258248
"xs": "023878ce845727f3a4ec76ca3f3db4b38a2d05d636b8c3632108b857fed63c96de"
259249
},
260250
{
261-
"atomic": "03cefcb7f65194418ee236f01638034238a7c996cd73fa9673e0c763eab828f119",
251+
"atomic": "03e1d14f7b440af4944193b0559452651720ecf1847ef0f7092ef7e68414b8d732",
262252
"nonce": "031b84c5567b126440995d3ed5aaba0565d71e1834604819ff9c17f5e9d5dd078f",
263-
"part": "8f07ddd5e9f5179cff19486034181ed76505baaad53e5d994064127b56c5841b1e25843c36d8bdcf87f208666490a16281943a6504209c3ea53fb9f1f7af0cf8",
253+
"part": "8f07ddd5e9f5179cff19486034181ed76505baaad53e5d994064127b56c5841bf9df0f2c4d96d6bb0b2e6e0b94ad6cbbc0e3f9e5582b085b31b5c8bb0e15bd36",
264254
"xs": "02e3c128e436510500616fef3f9a22b15ca015f407c8c5cf96c9059163c873828f"
265255
}
266256
],
267-
"atomic_id": "046d7761746f6d69630000000000000000",
268257
"sta": "A2",
269258
"ver": "4:2"
270259
}
271260
}
272261
}
273262
# "#
274-
# ,false, 5, TxFlow::Atomic);
263+
# ,false, 5, true, TxFlow::Atomic);
275264
```
276265
*/
277266
fn receive_atomic_tx(
@@ -370,7 +359,7 @@ pub trait ForeignRpc {
370359
}
371360
}
372361
# "#
373-
# ,false, 5, TxFlow::Invoice);
362+
# ,false, 5, true, TxFlow::Invoice);
374363
```
375364
*/
376365
fn finalize_tx(&self, slate: VersionedSlate) -> Result<VersionedSlate, ErrorKind>;
@@ -451,6 +440,7 @@ pub fn run_doctest_foreign(
451440
test_dir: &str,
452441
use_token: bool,
453442
blocks_to_mine: u64,
443+
do_tx: bool,
454444
tx_flow: TxFlow,
455445
) -> Result<Option<serde_json::Value>, String> {
456446
use easy_jsonrpc_mw::Handler;
@@ -573,81 +563,84 @@ pub fn run_doctest_foreign(
573563
assert!(wallet_refreshed);
574564
}
575565

576-
match tx_flow {
577-
TxFlow::Invoice => {
578-
let amount = 60_000_000_000;
579-
let mut slate = {
580-
let mut w_lock = wallet2.lock();
566+
if do_tx {
567+
match tx_flow {
568+
TxFlow::Invoice => {
569+
let amount = 60_000_000_000;
570+
let mut slate = {
571+
let mut w_lock = wallet2.lock();
572+
let w = w_lock.lc_provider().unwrap().wallet_inst().unwrap();
573+
let args = IssueInvoiceTxArgs {
574+
amount,
575+
..Default::default()
576+
};
577+
api_impl::owner::issue_invoice_tx(&mut **w, (&mask2).as_ref(), args, true)
578+
.unwrap()
579+
};
580+
slate = {
581+
let mut w_lock = wallet1.lock();
582+
let w = w_lock.lc_provider().unwrap().wallet_inst().unwrap();
583+
let args = InitTxArgs {
584+
src_acct_name: None,
585+
amount: slate.amount,
586+
minimum_confirmations: 2,
587+
max_outputs: 500,
588+
num_change_outputs: 1,
589+
selection_strategy_is_use_all: true,
590+
..Default::default()
591+
};
592+
api_impl::owner::process_invoice_tx(
593+
&mut **w,
594+
(&mask1).as_ref(),
595+
&slate,
596+
args,
597+
true,
598+
)
599+
.unwrap()
600+
};
601+
println!("INIT INVOICE SLATE");
602+
// Spit out slate for input to finalize_tx
603+
println!("{}", serde_json::to_string_pretty(&slate).unwrap());
604+
}
605+
TxFlow::Standard => {
606+
let amount = 60_000_000_000;
607+
let mut w_lock = wallet1.lock();
581608
let w = w_lock.lc_provider().unwrap().wallet_inst().unwrap();
582-
let args = IssueInvoiceTxArgs {
609+
let args = InitTxArgs {
610+
src_acct_name: None,
583611
amount,
612+
minimum_confirmations: 2,
613+
max_outputs: 500,
614+
num_change_outputs: 1,
615+
selection_strategy_is_use_all: true,
584616
..Default::default()
585617
};
586-
api_impl::owner::issue_invoice_tx(&mut **w, (&mask2).as_ref(), args, true).unwrap()
587-
};
588-
slate = {
618+
let slate =
619+
api_impl::owner::init_send_tx(&mut **w, (&mask1).as_ref(), args, true).unwrap();
620+
println!("INIT SLATE");
621+
// Spit out slate for input to finalize_tx
622+
println!("{}", serde_json::to_string_pretty(&slate).unwrap());
623+
}
624+
TxFlow::Atomic => {
625+
let amount = 60_000_000_000;
589626
let mut w_lock = wallet1.lock();
590627
let w = w_lock.lc_provider().unwrap().wallet_inst().unwrap();
591628
let args = InitTxArgs {
592629
src_acct_name: None,
593-
amount: slate.amount,
630+
amount,
594631
minimum_confirmations: 2,
595632
max_outputs: 500,
596633
num_change_outputs: 1,
597634
selection_strategy_is_use_all: true,
598635
..Default::default()
599636
};
600-
api_impl::owner::process_invoice_tx(&mut **w, (&mask1).as_ref(), &slate, args, true)
601-
.unwrap()
602-
};
603-
println!("INIT INVOICE SLATE");
604-
// Spit out slate for input to finalize_tx
605-
println!("{}", serde_json::to_string_pretty(&slate).unwrap());
606-
}
607-
TxFlow::Standard => {
608-
let amount = 60_000_000_000;
609-
let mut w_lock = wallet1.lock();
610-
let w = w_lock.lc_provider().unwrap().wallet_inst().unwrap();
611-
let args = InitTxArgs {
612-
src_acct_name: None,
613-
amount,
614-
minimum_confirmations: 2,
615-
max_outputs: 500,
616-
num_change_outputs: 1,
617-
selection_strategy_is_use_all: true,
618-
..Default::default()
619-
};
620-
let slate =
621-
api_impl::owner::init_send_tx(&mut **w, (&mask1).as_ref(), args, true).unwrap();
622-
println!("INIT SLATE");
623-
// Spit out slate for input to finalize_tx
624-
println!("{}", serde_json::to_string_pretty(&slate).unwrap());
625-
}
626-
TxFlow::Atomic => {
627-
let amount = 60_000_000_000;
628-
let mut w_lock = wallet1.lock();
629-
let w = w_lock.lc_provider().unwrap().wallet_inst().unwrap();
630-
let args = InitTxArgs {
631-
src_acct_name: None,
632-
amount,
633-
minimum_confirmations: 2,
634-
max_outputs: 500,
635-
num_change_outputs: 1,
636-
selection_strategy_is_use_all: true,
637-
..Default::default()
638-
};
639-
let derive_path = 0;
640-
let slate = api_impl::owner::init_atomic_swap(
641-
&mut **w,
642-
(&mask1).as_ref(),
643-
args,
644-
derive_path,
645-
true,
646-
)
647-
.unwrap();
648-
println!("INIT SLATE");
649-
// Spit out slate for input to finalize_tx
650-
println!("{}", serde_json::to_string_pretty(&slate).unwrap());
637+
let slate =
638+
api_impl::owner::init_atomic_swap(&mut **w, (&mask1).as_ref(), args, true)
639+
.unwrap();
640+
println!("INIT SLATE");
641+
// Spit out slate for input to finalize_tx
642+
println!("{}", serde_json::to_string_pretty(&slate).unwrap());
643+
}
651644
}
652645
}
653646

@@ -667,7 +660,7 @@ pub fn run_doctest_foreign(
667660
#[doc(hidden)]
668661
#[macro_export]
669662
macro_rules! doctest_helper_json_rpc_foreign_assert_response {
670-
($request:expr, $expected_response:expr, $use_token:expr, $blocks_to_mine:expr, $tx_flow:expr) => {
663+
($request:expr, $expected_response:expr, $use_token:expr, $blocks_to_mine:expr, $do_tx:expr, $tx_flow:expr) => {
671664
// create temporary wallet, run jsonrpc request on owner api of wallet, delete wallet, return
672665
// json response.
673666
// In order to prevent leaking tempdirs, This function should not panic.
@@ -687,9 +680,16 @@ macro_rules! doctest_helper_json_rpc_foreign_assert_response {
687680
let request_val: Value = serde_json::from_str($request).unwrap();
688681
let expected_response: Value = serde_json::from_str($expected_response).unwrap();
689682

690-
let response = run_doctest_foreign(request_val, dir, $use_token, $blocks_to_mine, $tx_flow)
691-
.unwrap()
692-
.unwrap();
683+
let response = run_doctest_foreign(
684+
request_val,
685+
dir,
686+
$use_token,
687+
$blocks_to_mine,
688+
$do_tx,
689+
$tx_flow,
690+
)
691+
.unwrap()
692+
.unwrap();
693693

694694
if response != expected_response {
695695
panic!(

api/src/owner.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -801,6 +801,7 @@ where
801801
///
802802
/// // . . .
803803
/// // The slate has been recieved from the invoicer, somehow
804+
/// # use grin_wallet_libwallet::TxFlow;
804805
/// # let slate = Slate::blank(2, TxFlow::Invoice);
805806
/// let args = InitTxArgs {
806807
/// src_acct_name: None,
@@ -866,18 +867,11 @@ where
866867
&self,
867868
keychain_mask: Option<&SecretKey>,
868869
args: InitTxArgs,
869-
derive_path: u32,
870870
) -> Result<Slate, Error> {
871871
let mut w_lock = self.wallet_inst.lock();
872872
let w = w_lock.lc_provider()?.wallet_inst()?;
873873
let send_args = args.send_args.clone();
874-
let slate = owner::init_atomic_swap(
875-
&mut **w,
876-
keychain_mask,
877-
args,
878-
derive_path,
879-
self.doctest_mode,
880-
)?;
874+
let slate = owner::init_atomic_swap(&mut **w, keychain_mask, args, self.doctest_mode)?;
881875
if let Some(sa) = send_args {
882876
let tor_config_lock = self.tor_config.lock();
883877
let tc = tor_config_lock.clone();

api/src/owner_rpc.rs

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -619,8 +619,7 @@ pub trait OwnerRpc {
619619
"payment_proof_recipient_address": "tgrin1xtxavwfgs48ckf3gk8wwgcndmn0nt4tvkl8a7ltyejjcy2mc6nfs9gm2lp",
620620
"ttl_blocks": null,
621621
"send_args": null
622-
},
623-
"derive_path": 0
622+
}
624623
},
625624
"id": 1
626625
}
@@ -633,14 +632,9 @@ pub trait OwnerRpc {
633632
"result": {
634633
"Ok": {
635634
"amt": "6000000000",
636-
"atomic_id": "046d7761746f6d69630000000000000000",
637635
"fee": "23000000",
638636
"id": "0436430c-2b02-624c-2032-570501212b00",
639637
"off": "456498224e2a6850e073ab8fb5c32fcccfe70272c61759ea4ade53ae7dc367e6",
640-
"proof": {
641-
"raddr": "32cdd63928854f8b2628b1dce4626ddcdf35d56cb7cfdf7d64cca5822b78d4d3",
642-
"saddr": "32cdd63928854f8b2628b1dce4626ddcdf35d56cb7cfdf7d64cca5822b78d4d3"
643-
},
644638
"sigs": [
645639
{
646640
"nonce": "031b84c5567b126440995d3ed5aaba0565d71e1834604819ff9c17f5e9d5dd078f",
@@ -656,12 +650,8 @@ pub trait OwnerRpc {
656650
# , 4, false, false, false, false, false);
657651
```
658652
*/
659-
fn init_atomic_swap(
660-
&self,
661-
token: Token,
662-
args: InitTxArgs,
663-
derive_path: u32,
664-
) -> Result<VersionedSlate, ErrorKind>;
653+
fn init_atomic_swap(&self, token: Token, args: InitTxArgs)
654+
-> Result<VersionedSlate, ErrorKind>;
665655

666656
/**
667657
Networked version of [Owner::countersign_atomic_swap](struct.Owner.html#method.countersign_atomic_swap).
@@ -714,7 +704,6 @@ pub trait OwnerRpc {
714704
"result": {
715705
"Ok": {
716706
"amt": "60000000000",
717-
"atomic_id": "046d7761746f6d69630000000000000000",
718707
"coms": [
719708
{
720709
"c": "087df32304c5d4ae8b2af0bc31e700019d722910ef87dd4eec3197b80b207e3045",
@@ -2000,11 +1989,9 @@ where
20001989
&self,
20011990
token: Token,
20021991
args: InitTxArgs,
2003-
derive_path: u32,
20041992
) -> Result<VersionedSlate, ErrorKind> {
2005-
let out_slate =
2006-
Owner::init_atomic_swap(self, (&token.keychain_mask).as_ref(), args, derive_path)
2007-
.map_err(|e| e.kind())?;
1993+
let out_slate = Owner::init_atomic_swap(self, (&token.keychain_mask).as_ref(), args)
1994+
.map_err(|e| e.kind())?;
20081995
let version = SlateVersion::V4;
20091996
Ok(VersionedSlate::into_version(out_slate, version).map_err(|e| e.kind())?)
20101997
}
@@ -2484,7 +2471,7 @@ pub fn run_doctest_owner(
24842471
..Default::default()
24852472
};
24862473
let mut slate = if countersign_atomic {
2487-
api_impl::owner::init_atomic_swap(&mut **w, (&mask1).as_ref(), args, 0, true).unwrap()
2474+
api_impl::owner::init_atomic_swap(&mut **w, (&mask1).as_ref(), args, true).unwrap()
24882475
} else {
24892476
api_impl::owner::init_send_tx(&mut **w, (&mask1).as_ref(), args, true).unwrap()
24902477
};

api/tests/slate_versioning.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ fn _receive_versioned_slate() {
5353
let request_val: Value = serde_json::from_str(v1_req).unwrap();
5454
let expected_response: Value = serde_json::from_str(v1_resp).unwrap();
5555

56-
let response = run_doctest_foreign(request_val, dir, false, 5, TxFlow::Standard)
56+
let response = run_doctest_foreign(request_val, dir, false, 5, false, TxFlow::Standard)
5757
.unwrap()
5858
.unwrap();
5959

0 commit comments

Comments
 (0)