1
- use schemars:: JsonSchema ;
2
- use serde:: { Deserialize , Serialize } ;
1
+ use cosmwasm_schema:: { cw_serde, QueryResponses } ;
3
2
4
3
use crate :: curves:: { decimal, Constant , Curve , DecimalPlaces , Linear , SquareRoot } ;
5
4
use cosmwasm_std:: { Binary , Decimal , Uint128 } ;
5
+ use cw20:: AllowanceResponse as Cw20AllowanceResponse ;
6
+ use cw20:: BalanceResponse as Cw20BalanceResponse ;
6
7
use cw20:: Expiration ;
8
+ use cw20:: TokenInfoResponse as Cw20TokenInfoResponse ;
7
9
8
- #[ derive ( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema ) ]
10
+ #[ cw_serde ]
9
11
pub struct InstantiateMsg {
10
12
/// name of the supply token
11
13
pub name : String ,
@@ -30,8 +32,7 @@ pub struct InstantiateMsg {
30
32
31
33
pub type CurveFn = Box < dyn Fn ( DecimalPlaces ) -> Box < dyn Curve > > ;
32
34
33
- #[ derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema ) ]
34
- #[ serde( rename_all = "snake_case" ) ]
35
+ #[ cw_serde]
35
36
pub enum CurveType {
36
37
/// Constant always returns `value * 10^-scale` as spot price
37
38
Constant { value : Uint128 , scale : u32 } ,
@@ -66,8 +67,7 @@ impl CurveType {
66
67
}
67
68
}
68
69
69
- #[ derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema ) ]
70
- #[ serde( rename_all = "snake_case" ) ]
70
+ #[ cw_serde]
71
71
pub enum ExecuteMsg {
72
72
/// Buy will attempt to purchase as many supply tokens as possible.
73
73
/// You must send only reserve tokens in that message
@@ -119,22 +119,25 @@ pub enum ExecuteMsg {
119
119
BurnFrom { owner : String , amount : Uint128 } ,
120
120
}
121
121
122
- #[ derive ( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema ) ]
123
- #[ serde ( rename_all = "snake_case" ) ]
122
+ #[ cw_serde ]
123
+ #[ derive ( QueryResponses ) ]
124
124
pub enum QueryMsg {
125
125
/// Returns the reserve and supply quantities, as well as the spot price to buy 1 token
126
+ #[ returns( CurveInfoResponse ) ]
126
127
CurveInfo { } ,
127
-
128
128
/// Implements CW20. Returns the current balance of the given address, 0 if unset.
129
+ #[ returns( Cw20BalanceResponse ) ]
129
130
Balance { address : String } ,
130
131
/// Implements CW20. Returns metadata on the contract - name, decimals, supply, etc.
132
+ #[ returns( Cw20TokenInfoResponse ) ]
131
133
TokenInfo { } ,
132
134
/// Implements CW20 "allowance" extension.
133
135
/// Returns how much spender can use from owner account, 0 if unset.
136
+ #[ returns( Cw20AllowanceResponse ) ]
134
137
Allowance { owner : String , spender : String } ,
135
138
}
136
139
137
- #[ derive ( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema ) ]
140
+ #[ cw_serde ]
138
141
pub struct CurveInfoResponse {
139
142
// how many reserve tokens have been received
140
143
pub reserve : Uint128 ,
0 commit comments