Skip to content

Commit c49e05a

Browse files
authored
Merge pull request #415 from tonkeeper/stonfi-pools-fix
fix stonfi interfaces
2 parents 35de5ee + 6786e03 commit c49e05a

File tree

5 files changed

+86
-15
lines changed

5 files changed

+86
-15
lines changed

abi/generated_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -606,8 +606,8 @@ func TestGetMethods(t *testing.T) {
606606
data: "b5ee9c720101040100c7000129205ad5b3ea06422c40205f5e1001129100002800150102c9801e19470473a6b92a9f1af1c5b9c7daa452b8146e3c32a81c58d857eff6225c645003f655998f286dcc24e07641ee4b21a27b5f02058acf37cf66c1833d4f8228eb0200782addecad5ae22c87f297ff5eacf4391b21a54dc5325981c93c4a16e78eb038400203084202467bca805a0c6a11aa141ee8ac994dad102fe1cdfd2e4a4c78b3077d2ff6d73a084202c95a2ed22ab516f77f9d4898dc4578e72f18a2448e8f6832334b0b4bf501bc79",
607607
account: "0:228829d720692d8247906d717772f84b14631269157efddc55f06130cde523bc",
608608
method: GetPoolData,
609-
wantTypeHint: "GetPoolData_StonfiV2Result",
610-
want: GetPoolData_StonfiV2Result{
609+
wantTypeHint: "GetPoolData_StonfiV2ConstProductResult",
610+
want: GetPoolData_StonfiV2ConstProductResult{
611611
IsLocked: false,
612612
RouterAddress: mustToMsgAddress("0:f0ca38239d35c954f8d78e2dce3ed52295c0a371e19540e2c6c2bf7fb112e322"),
613613
TotalSupply: tlb.Int257FromInt64(200000000),

abi/get_methods.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ var KnownGetMethodsDecoder = map[string][]func(tlb.VmStack) (string, any, error)
101101
"get_pool_address_no_settings": {DecodeGetPoolAddressNoSettings_CoffeeResult},
102102
"get_pool_creator_address": {DecodeGetPoolCreatorAddress_CoffeeResult},
103103
"get_pool_creator_address_no_settings": {DecodeGetPoolCreatorAddressNoSettings_CoffeeResult},
104-
"get_pool_data": {DecodeGetPoolData_DaolamaResult, DecodeGetPoolData_StonfiResult, DecodeGetPoolData_StonfiV2Result, DecodeGetPoolData_StonfiV2StableswapResult, DecodeGetPoolData_StonfiV2WeightedStableswapResult, DecodeGetPoolData_CoffeeResult, DecodeGetPoolData_TfResult},
104+
"get_pool_data": {DecodeGetPoolData_DaolamaResult, DecodeGetPoolData_StonfiResult, DecodeGetPoolData_StonfiV2ConstProductResult, DecodeGetPoolData_StonfiV2StableswapResult, DecodeGetPoolData_StonfiV2WeightedStableswapResult, DecodeGetPoolData_CoffeeResult, DecodeGetPoolData_TfResult},
105105
"get_pool_full_data": {DecodeGetPoolFullDataResult},
106106
"get_pool_info": {DecodeGetPoolInfo_BidaskResult},
107107
"get_pool_status": {DecodeGetPoolStatusResult},
@@ -388,7 +388,7 @@ var resultTypes = []interface{}{
388388
&GetPoolData_CoffeeResult{},
389389
&GetPoolData_DaolamaResult{},
390390
&GetPoolData_StonfiResult{},
391-
&GetPoolData_StonfiV2Result{},
391+
&GetPoolData_StonfiV2ConstProductResult{},
392392
&GetPoolData_StonfiV2StableswapResult{},
393393
&GetPoolData_StonfiV2WeightedStableswapResult{},
394394
&GetPoolData_TfResult{},
@@ -4084,7 +4084,7 @@ type GetPoolData_StonfiResult struct {
40844084
CollectedToken1ProtocolFee tlb.Int257
40854085
}
40864086

4087-
type GetPoolData_StonfiV2Result struct {
4087+
type GetPoolData_StonfiV2ConstProductResult struct {
40884088
IsLocked bool
40894089
RouterAddress tlb.MsgAddress
40904090
TotalSupply tlb.Int257
@@ -4166,7 +4166,7 @@ func GetPoolData(ctx context.Context, executor Executor, reqAccountID ton.Accoun
41664166
if errCode != 0 && errCode != 1 {
41674167
return "", nil, fmt.Errorf("method execution failed with code: %v", errCode)
41684168
}
4169-
for _, f := range []func(tlb.VmStack) (string, any, error){DecodeGetPoolData_DaolamaResult, DecodeGetPoolData_StonfiResult, DecodeGetPoolData_StonfiV2Result, DecodeGetPoolData_StonfiV2StableswapResult, DecodeGetPoolData_StonfiV2WeightedStableswapResult, DecodeGetPoolData_CoffeeResult, DecodeGetPoolData_TfResult} {
4169+
for _, f := range []func(tlb.VmStack) (string, any, error){DecodeGetPoolData_DaolamaResult, DecodeGetPoolData_StonfiResult, DecodeGetPoolData_StonfiV2ConstProductResult, DecodeGetPoolData_StonfiV2StableswapResult, DecodeGetPoolData_StonfiV2WeightedStableswapResult, DecodeGetPoolData_CoffeeResult, DecodeGetPoolData_TfResult} {
41704170
s, r, err := f(stack)
41714171
if err == nil {
41724172
return s, r, nil
@@ -4193,13 +4193,13 @@ func DecodeGetPoolData_StonfiResult(stack tlb.VmStack) (resultType string, resul
41934193
return "GetPoolData_StonfiResult", result, err
41944194
}
41954195

4196-
func DecodeGetPoolData_StonfiV2Result(stack tlb.VmStack) (resultType string, resultAny any, err error) {
4196+
func DecodeGetPoolData_StonfiV2ConstProductResult(stack tlb.VmStack) (resultType string, resultAny any, err error) {
41974197
if len(stack) != 12 || (stack[0].SumType != "VmStkTinyInt" && stack[0].SumType != "VmStkInt") || (stack[1].SumType != "VmStkSlice") || (stack[2].SumType != "VmStkTinyInt" && stack[2].SumType != "VmStkInt") || (stack[3].SumType != "VmStkTinyInt" && stack[3].SumType != "VmStkInt") || (stack[4].SumType != "VmStkTinyInt" && stack[4].SumType != "VmStkInt") || (stack[5].SumType != "VmStkSlice") || (stack[6].SumType != "VmStkSlice") || (stack[7].SumType != "VmStkTinyInt" && stack[7].SumType != "VmStkInt") || (stack[8].SumType != "VmStkTinyInt" && stack[8].SumType != "VmStkInt") || (stack[9].SumType != "VmStkSlice") || (stack[10].SumType != "VmStkTinyInt" && stack[10].SumType != "VmStkInt") || (stack[11].SumType != "VmStkTinyInt" && stack[11].SumType != "VmStkInt") {
41984198
return "", nil, fmt.Errorf("invalid stack format")
41994199
}
4200-
var result GetPoolData_StonfiV2Result
4200+
var result GetPoolData_StonfiV2ConstProductResult
42014201
err = stack.Unmarshal(&result)
4202-
return "GetPoolData_StonfiV2Result", result, err
4202+
return "GetPoolData_StonfiV2ConstProductResult", result, err
42034203
}
42044204

42054205
func DecodeGetPoolData_StonfiV2StableswapResult(stack tlb.VmStack) (resultType string, resultAny any, err error) {

abi/inspect_test.go

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,36 @@ func Test_contractInspector_InspectContract(t *testing.T) {
239239
JettonMaster, CoffeePool,
240240
},
241241
},
242+
{
243+
name: "stonfi v2 const product",
244+
account: "EQCGScrZe1xbyWqWDvdI6mzP-GAcAWFv6ZXuaJOuSqemxku4",
245+
code: "b5ee9c7201010101002300084202a9338ecd624ca15d37e4a8d9bf677ddc9b84f0e98f05f2fb84c7afe332a281b4",
246+
data: "b5ee9c720101040100d7000149301a140f832fdb823ba1bfb5be3f31b7c3443fd0faa362f8616032132169133960002800150102c980125c28235ca8d125e676591513d520721b1fe99f7722f4c87723ce7ee0dfb73a300248b589f5f63b6f4039388ef6c31529dbb9787d195ce86bd105e15fe8f88fa47e00491060c0d367f56688dbdc7b109c6f8ddce6415b769330e97afd7710259f7d90400203084202c00836440d084e44fb94316132ac5a21417ef4f429ee09b5560b5678b334c3e8084202c95a2ed22ab516f77f9d4898dc4578e72f18a2448e8f6832334b0b4bf501bc79",
247+
hasLibrary: true,
248+
want: []ContractInterface{
249+
JettonMaster, StonfiPoolV2ConstProduct,
250+
},
251+
},
252+
{
253+
name: "stonfi v2 stableswap",
254+
account: "EQBSUY4UWGJFAps0KwHY4tpOGqzU41DZhyrT8OuyAWWtnezy",
255+
code: "b5ee9c72010101010023000842023c882eb9ede6be2459b2d2e469680af9f8e48ab16ec0726f0d07b0e5686be718",
256+
data: "b5ee9c720101040100f800018c301d364b8c6e5b01e9cb72c7ffb03bd138d8a68a36b9f0f3a375b46f1c00000000000000000000000000000000000000000000000000000000000000000000000001000000640102c9800a46afff33251480ab6dab42434437a3fe464a9dbe5f525f9642ab4d2ef6eac89001466aa0b3a89e00a1dd7ccf9e8a225962fc32536722c3351274978f9861d9e8ee0029ee48e6b746e6db45008d68a4de088ac64064b6fcbb98f3a46f9583bb409e2a400203084202c00836440d084e44fb94316132ac5a21417ef4f429ee09b5560b5678b334c3e8084202c3b3ef256ddc9bd4e35db3e3863c048b18465c9f403f1d5a2b559395e11cfee6",
257+
hasLibrary: true,
258+
want: []ContractInterface{
259+
JettonMaster, StonfiPoolV2Stableswap,
260+
},
261+
},
262+
{
263+
name: "stonfi v2 weighted stableswap",
264+
account: "EQAF6mNbKhaMrfyhdNcrEnRKW1fXA3jmkS6KM7azm9PunYx5",
265+
code: "b5ee9c72010101010023000842029e5038ab735973d5450fae1a14e7707b332dcd8e744f5dbb3b6a0d994d400c59",
266+
data: "b5ee9c72010205010001280002413008a53a7fe1e300cd07f2d7d5320e45240c65220ff1049ba08971348000080003010200a30000000000000002b5e3af16b188000000000000000000001131cfef7cb58000000000000000000003782dace9d900008000000000000000000000000000000000000000000000000000000000000000001002c98000cafb7e1aeb694b6c81c13012e24c43b95cf99bd3c84fb900ee31e9b144096fb0001aa0db2d3fc8f1224da5badf8994c74a05048d50963e42b0d8d71fe2b849569a0003770d21f96c46cd550df24da7d76c88d13cbed0cc691d4e91c69706ae47137bc00304084202c00836440d084e44fb94316132ac5a21417ef4f429ee09b5560b5678b334c3e8084202e398c874e2bb0017b7447c3cbc534ca368d96533c1b120101d4c8c097d12c6e3",
267+
hasLibrary: true,
268+
want: []ContractInterface{
269+
JettonMaster, StonfiPoolV2WeightedStableswap,
270+
},
271+
},
242272
}
243273
for _, tt := range tests {
244274
t.Run(tt.name, func(t *testing.T) {
@@ -251,7 +281,7 @@ func Test_contractInspector_InspectContract(t *testing.T) {
251281
if tt.emulatorConfig == nil {
252282
emulatorConfig = mainnetConfig[0]
253283
}
254-
cli, err := liteapi.NewClient(liteapi.Testnet())
284+
cli, err := liteapi.NewClient(liteapi.Mainnet())
255285
if err != nil {
256286
t.Fatalf("failed to create liteapi client: %v", err)
257287
}
@@ -276,7 +306,7 @@ func Test_contractInspector_InspectContract(t *testing.T) {
276306
if err != nil {
277307
t.Fatalf("LibrariesToBase64() failed: %v", err)
278308
}
279-
emulator, err = tvm.NewEmulator(codeCell[0], dataCell[0], emulatorConfig, tvm.WithLazyC7Optimization(), tvm.WithLibraryResolver(cli), tvm.WithIgnoreLibraryCells(true), tvm.WithLibrariesBase64(base64Libs))
309+
emulator, err = tvm.NewEmulator(codeCell[0], dataCell[0], emulatorConfig, tvm.WithLibraryResolver(cli), tvm.WithIgnoreLibraryCells(true), tvm.WithLibrariesBase64(base64Libs))
280310
if err != nil {
281311
t.Fatalf("NewEmulator() with library failed: %v", err)
282312
}

abi/interfaces.go

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ const (
7171
StonfiLpAccountV2
7272
StonfiPool
7373
StonfiPoolV2
74+
StonfiPoolV2ConstProduct
75+
StonfiPoolV2Stableswap
76+
StonfiPoolV2WeightedStableswap
7477
StonfiRouter
7578
StonfiRouterV2
7679
StonfiVaultV2
@@ -243,6 +246,12 @@ func (c ContractInterface) String() string {
243246
return "stonfi_pool"
244247
case StonfiPoolV2:
245248
return "stonfi_pool_v2"
249+
case StonfiPoolV2ConstProduct:
250+
return "stonfi_pool_v2_const_product"
251+
case StonfiPoolV2Stableswap:
252+
return "stonfi_pool_v2_stableswap"
253+
case StonfiPoolV2WeightedStableswap:
254+
return "stonfi_pool_v2_weighted_stableswap"
246255
case StonfiRouter:
247256
return "stonfi_router"
248257
case StonfiRouterV2:
@@ -460,6 +469,12 @@ func ContractInterfaceFromString(s string) ContractInterface {
460469
return StonfiPool
461470
case "stonfi_pool_v2":
462471
return StonfiPoolV2
472+
case "stonfi_pool_v2_const_product":
473+
return StonfiPoolV2ConstProduct
474+
case "stonfi_pool_v2_stableswap":
475+
return StonfiPoolV2Stableswap
476+
case "stonfi_pool_v2_weighted_stableswap":
477+
return StonfiPoolV2WeightedStableswap
463478
case "stonfi_router":
464479
return StonfiRouter
465480
case "stonfi_router_v2":
@@ -1233,9 +1248,21 @@ var contractInterfacesOrder = []InterfaceDescription{
12331248
},
12341249
},
12351250
{
1236-
Name: StonfiPoolV2,
1251+
Name: StonfiPoolV2ConstProduct,
12371252
Results: []string{
1238-
"GetPoolData_StonfiV2Result",
1253+
"GetPoolData_StonfiV2ConstProductResult",
1254+
},
1255+
},
1256+
{
1257+
Name: StonfiPoolV2Stableswap,
1258+
Results: []string{
1259+
"GetPoolData_StonfiV2StableswapResult",
1260+
},
1261+
},
1262+
{
1263+
Name: StonfiPoolV2WeightedStableswap,
1264+
Results: []string{
1265+
"GetPoolData_StonfiV2WeightedStableswapResult",
12391266
},
12401267
},
12411268
{
@@ -1472,6 +1499,12 @@ func (c ContractInterface) recursiveImplements(other ContractInterface) bool {
14721499
return NftSale.Implements(other)
14731500
case NftSaleV2:
14741501
return NftSale.Implements(other)
1502+
case StonfiPoolV2ConstProduct:
1503+
return StonfiPoolV2.Implements(other)
1504+
case StonfiPoolV2Stableswap:
1505+
return StonfiPoolV2.Implements(other)
1506+
case StonfiPoolV2WeightedStableswap:
1507+
return StonfiPoolV2.Implements(other)
14751508
case WalletHighloadV1R1:
14761509
return Wallet.Implements(other)
14771510
case WalletHighloadV1R2:

abi/schemas/ston-fi.xml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
<get_method name="get_pool_data" version="stonfi"/>
88
</interface>
99
<interface name="stonfi_pool_v2">
10-
<get_method name="get_pool_data" version="stonfi_v2"/>
1110
<get_method name="get_lp_account_address" version="stonfi"/>
1211
<msg_in>
1312
<internal name="stonfi_burn_notification_ext_v2"/>
@@ -17,6 +16,15 @@
1716
<internal name="stonfi_cb_add_liquidity_v2"/>
1817
</msg_in>
1918
</interface>
19+
<interface name="stonfi_pool_v2_const_product" inherits="stonfi_pool_v2">
20+
<get_method name="get_pool_data" version="stonfi_v2_const_product"/>
21+
</interface>
22+
<interface name="stonfi_pool_v2_stableswap" inherits="stonfi_pool_v2">
23+
<get_method name="get_pool_data" version="stonfi_v2_stableswap"/>
24+
</interface>
25+
<interface name="stonfi_pool_v2_weighted_stableswap" inherits="stonfi_pool_v2">
26+
<get_method name="get_pool_data" version="stonfi_v2_weighted_stableswap"/>
27+
</interface>
2028
<interface name="stonfi_router">
2129
<get_method name="get_router_data" version="stonfi"/>
2230
</interface>
@@ -162,7 +170,7 @@
162170
<int name="collected_token1_protocol_fee">int257</int>
163171
</output>
164172

165-
<output version="stonfi_v2" fixed_length="true">
173+
<output version="stonfi_v2_const_product" fixed_length="true">
166174
<int name="is_locked">bool</int>
167175
<slice name="router_address">msgaddress</slice>
168176
<int name="total_supply">int257</int>

0 commit comments

Comments
 (0)