@@ -67,12 +67,12 @@ impl Free for DisplayAvaxFromToInfo {
67
67
68
68
impl_c_ptr ! ( DisplayAvaxFromToInfo ) ;
69
69
70
- impl From < & AvaxFromToInfo > for DisplayAvaxFromToInfo {
71
- fn from ( value : & AvaxFromToInfo ) -> Self {
70
+ impl DisplayAvaxFromToInfo {
71
+ fn from_index ( value : & AvaxFromToInfo , wallet_index : u64 ) -> Self {
72
72
DisplayAvaxFromToInfo {
73
73
address : convert_c_char ( value. address . get ( 0 ) . unwrap ( ) . clone ( ) ) ,
74
74
amount : convert_c_char ( value. amount . clone ( ) ) ,
75
- path : convert_c_char ( "" . to_string ( ) ) ,
75
+ path : convert_c_char ( format ! ( "{}/0/{}" , value . path_prefix , wallet_index ) ) ,
76
76
}
77
77
}
78
78
}
@@ -107,36 +107,35 @@ impl From<AvaxMethodInfo> for DisplayAvaxMethodInfo {
107
107
}
108
108
}
109
109
110
- impl < T : AvaxTxInfo > From < T > for DisplayAvaxTx {
111
- fn from ( value : T ) -> Self {
112
- DisplayAvaxTx {
113
- data : DisplayTxAvaxData :: from ( value) . c_ptr ( ) ,
114
- }
115
- }
116
- }
117
-
118
110
impl DisplayAvaxTx {
119
- pub fn with_from_address ( mut self , address : String , path : String ) -> Self {
120
- unsafe {
121
- let data = & mut * self . data ;
122
- let from = & mut * data. from ;
123
- from. address = convert_c_char ( address) ;
124
- from. path = convert_c_char ( path) ;
111
+ pub fn from_tx_info < T : AvaxTxInfo > (
112
+ value : T ,
113
+ from_path : String ,
114
+ from_address : String ,
115
+ wallet_index : u64 ,
116
+ ) -> Self {
117
+ DisplayAvaxTx {
118
+ data : DisplayTxAvaxData :: from_tx_info ( value, from_path, from_address, wallet_index)
119
+ . c_ptr ( ) ,
125
120
}
126
- self
127
121
}
128
122
}
129
123
130
- impl < T : AvaxTxInfo > From < T > for DisplayTxAvaxData {
131
- fn from ( value : T ) -> Self {
124
+ impl DisplayTxAvaxData {
125
+ fn from_tx_info < T : AvaxTxInfo > (
126
+ value : T ,
127
+ from_path : String ,
128
+ from_address : String ,
129
+ wallet_index : u64 ,
130
+ ) -> Self {
132
131
DisplayTxAvaxData {
133
132
from : DisplayAvaxFromToInfo {
134
- address : convert_c_char ( "" . to_string ( ) ) ,
133
+ address : convert_c_char ( from_address ) ,
135
134
amount : convert_c_char ( format ! (
136
135
"{} AVAX" ,
137
136
value. get_total_input_amount( ) as f64 / NAVAX_TO_AVAX_RATIO
138
137
) ) ,
139
- path : convert_c_char ( "" . to_string ( ) ) ,
138
+ path : convert_c_char ( from_path ) ,
140
139
}
141
140
. c_ptr ( ) ,
142
141
total_input_amount : convert_c_char ( format ! (
@@ -155,7 +154,7 @@ impl<T: AvaxTxInfo> From<T> for DisplayTxAvaxData {
155
154
value
156
155
. get_outputs_addresses ( )
157
156
. iter ( )
158
- . map ( |v| DisplayAvaxFromToInfo :: from ( v ) )
157
+ . map ( |v| DisplayAvaxFromToInfo :: from_index ( v , wallet_index ) )
159
158
. collect :: < Vec < DisplayAvaxFromToInfo > > ( ) ,
160
159
)
161
160
. c_ptr ( ) ,
0 commit comments