@@ -125,78 +125,102 @@ pub fn gen_init_tx(
125
125
Ok ( tx_signed)
126
126
}
127
127
128
- pub fn gen_set_config_tx (
129
- payer : Keypair ,
130
- p2w_addr : Pubkey ,
131
- owner : Keypair ,
128
+ pub fn get_set_config_ix (
129
+ p2w_addr : & Pubkey ,
130
+ owner_pubkey : & Pubkey ,
131
+ payer_pubkey : & Pubkey ,
132
132
new_config : Pyth2WormholeConfig ,
133
- latest_blockhash : Hash ,
134
- ) -> Result < Transaction , ErrBox > {
135
- let payer_pubkey = payer. pubkey ( ) ;
136
-
133
+ ) -> Result < Instruction , ErrBox > {
137
134
let acc_metas = vec ! [
138
135
// config
139
136
AccountMeta :: new(
140
137
P2WConfigAccount :: <{ AccountState :: Initialized } >:: key( None , & p2w_addr) ,
141
138
false ,
142
139
) ,
143
140
// current_owner
144
- AccountMeta :: new( owner . pubkey ( ) , true ) ,
141
+ AccountMeta :: new( * owner_pubkey , true ) ,
145
142
// payer
146
- AccountMeta :: new( payer . pubkey ( ) , true ) ,
143
+ AccountMeta :: new( * payer_pubkey , true ) ,
147
144
// system_program
148
145
AccountMeta :: new( system_program:: id( ) , false ) ,
149
146
] ;
150
-
151
147
let ix_data = (
152
148
pyth2wormhole:: instruction:: Instruction :: SetConfig ,
153
149
new_config,
154
150
) ;
151
+ Ok ( Instruction :: new_with_bytes (
152
+ * p2w_addr,
153
+ ix_data. try_to_vec ( ) ?. as_slice ( ) ,
154
+ acc_metas,
155
+ ) )
156
+ }
155
157
156
- let ix = Instruction :: new_with_bytes ( p2w_addr, ix_data. try_to_vec ( ) ?. as_slice ( ) , acc_metas) ;
158
+ pub fn gen_set_config_tx (
159
+ payer : Keypair ,
160
+ p2w_addr : Pubkey ,
161
+ owner : Keypair ,
162
+ new_config : Pyth2WormholeConfig ,
163
+ latest_blockhash : Hash ,
164
+ ) -> Result < Transaction , ErrBox > {
165
+ let ix = get_set_config_ix ( & p2w_addr, & owner. pubkey ( ) , & payer. pubkey ( ) , new_config) ?;
157
166
158
167
let signers = vec ! [ & owner, & payer] ;
159
168
let tx_signed = Transaction :: new_signed_with_payer :: < Vec < & Keypair > > (
160
169
& [ ix] ,
161
- Some ( & payer_pubkey ) ,
170
+ Some ( & payer . pubkey ( ) ) ,
162
171
& signers,
163
172
latest_blockhash,
164
173
) ;
165
174
Ok ( tx_signed)
166
175
}
167
176
168
- pub fn gen_set_is_active_tx (
169
- payer : Keypair ,
170
- p2w_addr : Pubkey ,
171
- ops_owner : Keypair ,
177
+ pub fn get_set_is_active_ix (
178
+ p2w_addr : & Pubkey ,
179
+ ops_owner_pubkey : & Pubkey ,
180
+ payer_pubkey : & Pubkey ,
172
181
new_is_active : bool ,
173
- latest_blockhash : Hash ,
174
- ) -> Result < Transaction , ErrBox > {
175
- let payer_pubkey = payer. pubkey ( ) ;
176
-
182
+ ) -> Result < Instruction , ErrBox > {
177
183
let acc_metas = vec ! [
178
184
// config
179
185
AccountMeta :: new(
180
186
P2WConfigAccount :: <{ AccountState :: Initialized } >:: key( None , & p2w_addr) ,
181
187
false ,
182
188
) ,
183
189
// ops_owner
184
- AccountMeta :: new( ops_owner . pubkey ( ) , true ) ,
190
+ AccountMeta :: new( * ops_owner_pubkey , true ) ,
185
191
// payer
186
- AccountMeta :: new( payer . pubkey ( ) , true ) ,
192
+ AccountMeta :: new( * payer_pubkey , true ) ,
187
193
] ;
188
194
189
195
let ix_data = (
190
196
pyth2wormhole:: instruction:: Instruction :: SetIsActive ,
191
197
new_is_active,
192
198
) ;
199
+ Ok ( Instruction :: new_with_bytes (
200
+ * p2w_addr,
201
+ ix_data. try_to_vec ( ) ?. as_slice ( ) ,
202
+ acc_metas,
203
+ ) )
204
+ }
193
205
194
- let ix = Instruction :: new_with_bytes ( p2w_addr, ix_data. try_to_vec ( ) ?. as_slice ( ) , acc_metas) ;
206
+ pub fn gen_set_is_active_tx (
207
+ payer : Keypair ,
208
+ p2w_addr : Pubkey ,
209
+ ops_owner : Keypair ,
210
+ new_is_active : bool ,
211
+ latest_blockhash : Hash ,
212
+ ) -> Result < Transaction , ErrBox > {
213
+ let ix = get_set_is_active_ix (
214
+ & p2w_addr,
215
+ & ops_owner. pubkey ( ) ,
216
+ & payer. pubkey ( ) ,
217
+ new_is_active,
218
+ ) ?;
195
219
196
220
let signers = vec ! [ & ops_owner, & payer] ;
197
221
let tx_signed = Transaction :: new_signed_with_payer :: < Vec < & Keypair > > (
198
222
& [ ix] ,
199
- Some ( & payer_pubkey ) ,
223
+ Some ( & payer . pubkey ( ) ) ,
200
224
& signers,
201
225
latest_blockhash,
202
226
) ;
0 commit comments