@@ -31,8 +31,7 @@ pub fn recv_message<'info>(
31
31
let order = SwapOrder :: try_from ( & fill. order_bytes ( ) ) ?;
32
32
invoke_resolve (
33
33
src_network. clone ( ) ,
34
- Some ( fill) ,
35
- None ,
34
+ Resolve :: Fill ( fill) ,
36
35
order,
37
36
& ctx. accounts . signer ,
38
37
& ctx. accounts . system_program ,
@@ -46,8 +45,7 @@ pub fn recv_message<'info>(
46
45
let order = SwapOrder :: try_from ( & cancel. order_bytes ( ) ) ?;
47
46
invoke_resolve (
48
47
src_network. clone ( ) ,
49
- None ,
50
- Some ( cancel) ,
48
+ Resolve :: Cancel ( cancel) ,
51
49
order,
52
50
& ctx. accounts . signer ,
53
51
& ctx. accounts . system_program ,
@@ -61,8 +59,7 @@ pub fn recv_message<'info>(
61
59
62
60
pub fn invoke_resolve < ' info > (
63
61
src_network : String ,
64
- fill : Option < OrderFill > ,
65
- cancel : Option < Cancel > ,
62
+ resolve : Resolve ,
66
63
order : SwapOrder ,
67
64
signer : & Signer < ' info > ,
68
65
system_program : & Program < ' info , System > ,
@@ -72,23 +69,27 @@ pub fn invoke_resolve<'info>(
72
69
) -> Result < ( ) > {
73
70
let mut data = vec ! [ ] ;
74
71
let mut ix_name = RESOLVE_FILL_IX ;
75
-
76
- if fill. is_some ( ) {
77
- let args = ResolveFillArgs {
78
- src_network : src_network. clone ( ) ,
79
- fill : fill. unwrap ( ) ,
80
- order,
81
- } ;
82
- args. serialize ( & mut data) ?;
83
- } else {
84
- let args = ResolveCancelArgs {
85
- src_network : src_network. clone ( ) ,
86
- cancel : cancel. unwrap ( ) ,
87
- order,
88
- } ;
89
- args. serialize ( & mut data) ?;
90
- ix_name = RESOLVE_CANCEL_IX ;
72
+
73
+ match resolve {
74
+ Resolve :: Fill ( fill) => {
75
+ let args = ResolveFillArgs {
76
+ src_network : src_network. clone ( ) ,
77
+ fill,
78
+ order,
79
+ } ;
80
+ args. serialize ( & mut data) ?;
81
+ } ,
82
+ Resolve :: Cancel ( cancel) => {
83
+ let args = ResolveCancelArgs {
84
+ src_network : src_network. clone ( ) ,
85
+ cancel,
86
+ order,
87
+ } ;
88
+ args. serialize ( & mut data) ?;
89
+ ix_name = RESOLVE_CANCEL_IX ;
90
+ } ,
91
91
}
92
+
92
93
let ix_data = helpers:: get_instruction_data ( ix_name, data) ;
93
94
94
95
let mut account_metas: Vec < AccountMeta > = vec ! [
0 commit comments