@@ -2,13 +2,13 @@ use bounded_collections::Get;
2
2
use cosmrs:: tendermint:: block:: Height ;
3
3
use cosmwasm_std:: { Addr , Coin , Coins , Empty } ;
4
4
use cvm_route:: {
5
- asset:: { AssetItem , AssetReference , NetworkAssetItem } ,
5
+ asset:: { self , AssetItem , AssetReference , NetworkAssetItem } ,
6
6
exchange:: ExchangeItem ,
7
7
transport:: { NetworkToNetworkItem , OtherNetworkItem } ,
8
8
venue:: AssetsVenueItem ,
9
9
} ;
10
10
use cw_cvm_outpost:: msg:: { CvmGlt , HereItem , NetworkItem , OutpostId } ;
11
- use cw_mantis_order:: { OrderItem , OrderSubMsg } ;
11
+ use cw_mantis_order:: { OrderItem , OrderSubMsg , SolutionSubMsg } ;
12
12
use cw_multi_test:: { App , Bank , BankKeeper , Contract , ContractWrapper , Executor } ;
13
13
use mantis_node:: mantis:: cosmos:: { client:: Tip , signer:: from_mnemonic} ;
14
14
use serde:: de;
@@ -39,15 +39,15 @@ async fn cvm_devnet_case() {
39
39
let cw_cvm_outpost_code_id = centauri. store_code ( Box :: new ( cw_cvm_outpost_wasm) ) ;
40
40
let cw_cvm_executor_code_id = centauri. store_code ( Box :: new ( cw_cvm_executor_wasm) ) ;
41
41
42
- let admin = Addr :: unchecked ( "juno1g2rahf5846rxzp3fwlswy08fz8ccuwk03k57y" ) ;
42
+ let sender = Addr :: unchecked ( "juno1g2rahf5846rxzp3fwlswy08fz8ccuwk03k57y" ) ;
43
43
let cw_cvm_outpost_instantiate = cw_cvm_outpost:: msg:: InstantiateMsg ( HereItem {
44
44
network_id : 3 . into ( ) ,
45
- admin : admin . clone ( ) ,
45
+ admin : sender . clone ( ) ,
46
46
} ) ;
47
47
let cw_cvm_outpost_contract = centauri
48
48
. instantiate_contract (
49
49
cw_cvm_outpost_code_id,
50
- admin . clone ( ) ,
50
+ sender . clone ( ) ,
51
51
& cw_cvm_outpost_instantiate,
52
52
& [ ] ,
53
53
"composable_cvm_outpost" ,
@@ -56,23 +56,21 @@ async fn cvm_devnet_case() {
56
56
. unwrap ( ) ;
57
57
58
58
let cw_mantis_order_instantiate = cw_mantis_order:: sv:: InstantiateMsg {
59
- admin : Some ( admin . clone ( ) ) ,
59
+ admin : Some ( sender . clone ( ) ) ,
60
60
cvm_address : cw_cvm_outpost_contract. clone ( ) ,
61
61
} ;
62
62
63
63
let cw_mantis_contract = centauri
64
64
. instantiate_contract (
65
65
cw_mantis_order_code_id,
66
- admin ,
66
+ sender . clone ( ) ,
67
67
& cw_mantis_order_instantiate,
68
68
& [ ] ,
69
69
"composable_mantis_order" ,
70
70
None ,
71
71
)
72
72
. unwrap ( ) ;
73
73
74
- let sender = Addr :: unchecked ( "juno16g2rahf5846rxzp3fwlswy08fz8ccuwk03k57y" ) ;
75
-
76
74
let ACoin = |x : u128 | Coin {
77
75
denom : "a" . to_string ( ) ,
78
76
amount : x. into ( ) ,
@@ -102,7 +100,7 @@ async fn cvm_devnet_case() {
102
100
owner : sender. clone ( ) ,
103
101
msg : a_to_b_msg. clone ( ) ,
104
102
given : ACoin ( 100 ) ,
105
- order_id : 1u128 . into ( ) ,
103
+ order_id : 0u128 . into ( ) ,
106
104
} ;
107
105
108
106
let b_to_a_msg = OrderSubMsg {
@@ -116,7 +114,7 @@ async fn cvm_devnet_case() {
116
114
owner : sender. clone ( ) ,
117
115
msg : b_to_a_msg. clone ( ) ,
118
116
given : BCoin ( 1000 ) ,
119
- order_id : 2u128 . into ( ) ,
117
+ order_id : 1u128 . into ( ) ,
120
118
} ;
121
119
122
120
centauri
@@ -244,18 +242,66 @@ async fn cvm_devnet_case() {
244
242
245
243
let mut config_messages = vec ! [ ] ;
246
244
247
- for network_item in cvm_glt {
248
- let config_message = cw_cvm_outpost:: msg:: ConfigSubMsg :: ForceNetwork ( network_item) ;
245
+ for network in cvm_glt. networks . clone ( ) . into_iter ( ) {
246
+ let config_message = cw_cvm_outpost:: msg:: ConfigSubMsg :: ForceNetwork ( network) ;
247
+ config_messages. push ( config_message) ;
248
+ }
249
+
250
+ for asset in cvm_glt. assets . clone ( ) . into_iter ( ) {
251
+ let config_message = cw_cvm_outpost:: msg:: ConfigSubMsg :: ForceAsset ( asset) ;
252
+ config_messages. push ( config_message) ;
253
+ }
254
+
255
+ for network_to_network in cvm_glt. network_to_networks . clone ( ) . into_iter ( ) {
256
+ let config_message =
257
+ cw_cvm_outpost:: msg:: ConfigSubMsg :: ForceNetworkToNetwork ( network_to_network) ;
258
+ config_messages. push ( config_message) ;
259
+ }
260
+
261
+ for exchange in cvm_glt. exchanges . clone ( ) . into_iter ( ) {
262
+ let config_message = cw_cvm_outpost:: msg:: ConfigSubMsg :: ForceExchange ( exchange) ;
263
+ config_messages. push ( config_message) ;
264
+ }
265
+
266
+ for asset_venue in cvm_glt. asset_venue_items . clone ( ) . into_iter ( ) {
267
+ let config_message = cw_cvm_outpost:: msg:: ConfigSubMsg :: ForceAssetsVenue ( asset_venue) ;
268
+ config_messages. push ( config_message) ;
269
+ }
270
+
271
+ for network_asset in cvm_glt. network_assets . clone ( ) . into_iter ( ) {
272
+ let config_message =
273
+ cw_cvm_outpost:: msg:: ConfigSubMsg :: ForceAssetToNetworkMap ( network_asset) ;
249
274
config_messages. push ( config_message) ;
250
275
}
251
276
252
277
let force_config = cw_cvm_outpost:: msg:: ExecuteMsg :: Config (
253
278
cw_cvm_outpost:: msg:: ConfigSubMsg :: Force ( config_messages) ,
254
279
) ;
255
280
256
- let solution =
257
- mantis_node:: mantis:: blackbox:: solve :: < True > ( active_orders, & alice, & tip, cvm_glt. into ( ) , router)
258
- . await ;
281
+ centauri
282
+ . execute_contract (
283
+ sender. clone ( ) ,
284
+ cw_cvm_outpost_contract. clone ( ) ,
285
+ & force_config,
286
+ & [ ] ,
287
+ )
288
+ . unwrap ( ) ;
289
+
290
+ let solution = mantis_node:: mantis:: blackbox:: solve :: < True > (
291
+ active_orders,
292
+ & alice,
293
+ & tip,
294
+ cvm_glt. into ( ) ,
295
+ router,
296
+ )
297
+ . await ;
298
+
299
+ centauri. execute_contract (
300
+ sender. clone ( ) ,
301
+ cw_mantis_contract. clone ( ) ,
302
+ & solution[ 0 ] ,
303
+ & [ ] ,
304
+ ) . unwrap ( ) ;
259
305
260
306
panic ! ( "solution: {:?}" , solution) ;
261
307
}
0 commit comments