Skip to content

Commit e09f8e1

Browse files
create a DAOLama get methods
1 parent 3d3a044 commit e09f8e1

File tree

5 files changed

+94
-4
lines changed

5 files changed

+94
-4
lines changed

abi/get_methods.go

+20-2
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ var KnownGetMethodsDecoder = map[string][]func(tlb.VmStack) (string, any, error)
6363
"get_params": {DecodeGetParams_WhalesNominatorResult},
6464
"get_plugin_list": {DecodeGetPluginListResult},
6565
"get_pool_address": {DecodeGetPoolAddress_StonfiResult},
66-
"get_pool_data": {DecodeGetPoolData_StonfiResult, DecodeGetPoolData_StonfiV2Result, DecodeGetPoolData_TfResult},
66+
"get_pool_data": {DecodeGetPoolData_DaolamaResult, DecodeGetPoolData_StonfiResult, DecodeGetPoolData_StonfiV2Result, DecodeGetPoolData_TfResult},
6767
"get_pool_full_data": {DecodeGetPoolFullDataResult},
6868
"get_pool_status": {DecodeGetPoolStatusResult},
6969
"get_position_manager_contract_data": {DecodeGetPositionManagerContractData_StormResult},
@@ -257,6 +257,7 @@ var resultTypes = []interface{}{
257257
&GetParams_WhalesNominatorResult{},
258258
&GetPluginListResult{},
259259
&GetPoolAddress_StonfiResult{},
260+
&GetPoolData_DaolamaResult{},
260261
&GetPoolData_StonfiResult{},
261262
&GetPoolData_StonfiV2Result{},
262263
&GetPoolData_TfResult{},
@@ -2323,6 +2324,14 @@ func DecodeGetPoolAddress_StonfiResult(stack tlb.VmStack) (resultType string, re
23232324
return "GetPoolAddress_StonfiResult", result, err
23242325
}
23252326

2327+
type GetPoolData_DaolamaResult struct {
2328+
Halted bool
2329+
Balance uint64
2330+
Borrowed uint64
2331+
LpTokenBalance uint64
2332+
FeeCollected uint64
2333+
}
2334+
23262335
type GetPoolData_StonfiResult struct {
23272336
Reserve0 tlb.Int257
23282337
Reserve1 tlb.Int257
@@ -2383,7 +2392,7 @@ func GetPoolData(ctx context.Context, executor Executor, reqAccountID ton.Accoun
23832392
if errCode != 0 && errCode != 1 {
23842393
return "", nil, fmt.Errorf("method execution failed with code: %v", errCode)
23852394
}
2386-
for _, f := range []func(tlb.VmStack) (string, any, error){DecodeGetPoolData_StonfiResult, DecodeGetPoolData_StonfiV2Result, DecodeGetPoolData_TfResult} {
2395+
for _, f := range []func(tlb.VmStack) (string, any, error){DecodeGetPoolData_DaolamaResult, DecodeGetPoolData_StonfiResult, DecodeGetPoolData_StonfiV2Result, DecodeGetPoolData_TfResult} {
23872396
s, r, err := f(stack)
23882397
if err == nil {
23892398
return s, r, nil
@@ -2392,6 +2401,15 @@ func GetPoolData(ctx context.Context, executor Executor, reqAccountID ton.Accoun
23922401
return "", nil, fmt.Errorf("can not decode outputs")
23932402
}
23942403

2404+
func DecodeGetPoolData_DaolamaResult(stack tlb.VmStack) (resultType string, resultAny any, err error) {
2405+
if len(stack) != 5 || (stack[0].SumType != "VmStkTinyInt" && stack[0].SumType != "VmStkInt") || (stack[1].SumType != "VmStkTinyInt" && stack[1].SumType != "VmStkInt") || (stack[2].SumType != "VmStkTinyInt" && stack[2].SumType != "VmStkInt") || (stack[3].SumType != "VmStkTinyInt" && stack[3].SumType != "VmStkInt") || (stack[4].SumType != "VmStkTinyInt" && stack[4].SumType != "VmStkInt") {
2406+
return "", nil, fmt.Errorf("invalid stack format")
2407+
}
2408+
var result GetPoolData_DaolamaResult
2409+
err = stack.Unmarshal(&result)
2410+
return "GetPoolData_DaolamaResult", result, err
2411+
}
2412+
23952413
func DecodeGetPoolData_StonfiResult(stack tlb.VmStack) (resultType string, resultAny any, err error) {
23962414
if len(stack) != 10 || (stack[0].SumType != "VmStkTinyInt" && stack[0].SumType != "VmStkInt") || (stack[1].SumType != "VmStkTinyInt" && stack[1].SumType != "VmStkInt") || (stack[2].SumType != "VmStkSlice") || (stack[3].SumType != "VmStkSlice") || (stack[4].SumType != "VmStkTinyInt" && stack[4].SumType != "VmStkInt") || (stack[5].SumType != "VmStkTinyInt" && stack[5].SumType != "VmStkInt") || (stack[6].SumType != "VmStkTinyInt" && stack[6].SumType != "VmStkInt") || (stack[7].SumType != "VmStkSlice") || (stack[8].SumType != "VmStkTinyInt" && stack[8].SumType != "VmStkInt") || (stack[9].SumType != "VmStkTinyInt" && stack[9].SumType != "VmStkInt") {
23972415
return "", nil, fmt.Errorf("invalid stack format")

abi/interfaces.go

+16
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88

99
const (
1010
IUnknown ContractInterface = iota
11+
DaolamaVault
1112
DedustFactory
1213
DedustLiquidityDeposit
1314
DedustPool
@@ -84,6 +85,8 @@ const (
8485

8586
func (c ContractInterface) String() string {
8687
switch c {
88+
case DaolamaVault:
89+
return "daolama_vault"
8790
case DedustFactory:
8891
return "dedust_factory"
8992
case DedustLiquidityDeposit:
@@ -235,6 +238,8 @@ func (c ContractInterface) String() string {
235238

236239
func ContractInterfaceFromString(s string) ContractInterface {
237240
switch s {
241+
case "daolama_vault":
242+
return DaolamaVault
238243
case "dedust_factory":
239244
return DedustFactory
240245
case "dedust_liquidity_deposit ":
@@ -732,6 +737,12 @@ var methodInvocationOrder = []MethodDescription{
732737
}
733738

734739
var contractInterfacesOrder = []InterfaceDescription{
740+
{
741+
Name: DaolamaVault,
742+
Results: []string{
743+
"GetPoolDataResult",
744+
},
745+
},
735746
{
736747
Name: DedustLiquidityDeposit,
737748
Results: []string{
@@ -1266,6 +1277,11 @@ var knownContracts = map[ton.Bits256]knownContractDescription{
12661277

12671278
func (c ContractInterface) IntMsgs() []msgDecoderFunc {
12681279
switch c {
1280+
case DaolamaVault:
1281+
return []msgDecoderFunc{
1282+
decodeFuncDaolamaVaultSupplyMsgBody,
1283+
decodeFuncDaolamaVaultWithdrawMsgBody,
1284+
}
12691285
case DedustFactory:
12701286
return []msgDecoderFunc{
12711287
decodeFuncDedustCreateVaultMsgBody,

abi/messages.md

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ The list below contains the supported message operations, their names and opcode
1818
| ChannelCooperativeCommit| 0x79a126ef |
1919
| CloseStorageContract| 0x79f937ea |
2020
| Credit| 0x1690c604 |
21+
| DaolamaVaultSupply| 0x5c11ada9 |
22+
| DaolamaVaultWithdraw| 0x7bdd97de |
2123
| DedustCancelDeposit| 0x166cedee |
2224
| DedustCreateVault| 0x21cfe02b |
2325
| DedustCreateVolatilePool| 0x97d51f2f |

abi/messages_generated.go

+28-2
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,8 @@ var (
165165
decodeFuncJettonBurnMsgBody = decodeMsg(tlb.Tag{Val: 0x595f07bc, Len: 32}, JettonBurnMsgOp, JettonBurnMsgBody{})
166166
// 0x5be57626
167167
decodeFuncHipoFinanceProxyTokensMintedMsgBody = decodeMsg(tlb.Tag{Val: 0x5be57626, Len: 32}, HipoFinanceProxyTokensMintedMsgOp, HipoFinanceProxyTokensMintedMsgBody{})
168+
// 0x5c11ada9
169+
decodeFuncDaolamaVaultSupplyMsgBody = decodeMsg(tlb.Tag{Val: 0x5c11ada9, Len: 32}, DaolamaVaultSupplyMsgOp, DaolamaVaultSupplyMsgBody{})
168170
// 0x5d1b17b8
169171
decodeFuncStormUpdatePositionWithStopLossMsgBody = decodeMsg(tlb.Tag{Val: 0x5d1b17b8, Len: 32}, StormUpdatePositionWithStopLossMsgOp, StormUpdatePositionWithStopLossMsgBody{})
170172
// 0x5dd66579
@@ -240,6 +242,8 @@ var (
240242
// 0x7bcd1fef
241243
decodeFuncWhalesNominatorsDepositMsgBody = decodeMsg(tlb.Tag{Val: 0x7bcd1fef, Len: 32}, WhalesNominatorsDepositMsgOp, WhalesNominatorsDepositMsgBody{})
242244
// 0x7bdd97de
245+
decodeFuncDaolamaVaultWithdrawMsgBody = decodeMsg(tlb.Tag{Val: 0x7bdd97de, Len: 32}, DaolamaVaultWithdrawMsgOp, DaolamaVaultWithdrawMsgBody{})
246+
// 0x7bdd97de
243247
decodeFuncJettonBurnNotificationMsgBody = decodeMsg(tlb.Tag{Val: 0x7bdd97de, Len: 32}, JettonBurnNotificationMsgOp, JettonBurnNotificationMsgBody{})
244248
// 0x82609bf6
245249
decodeFuncMultisigApproveAcceptedMsgBody = decodeMsg(tlb.Tag{Val: 0x82609bf6, Len: 32}, MultisigApproveAcceptedMsgOp, MultisigApproveAcceptedMsgBody{})
@@ -616,6 +620,9 @@ var opcodedMsgInDecodeFunctions = map[uint32]msgDecoderFunc{
616620
// 0x5be57626
617621
HipoFinanceProxyTokensMintedMsgOpCode: decodeFuncHipoFinanceProxyTokensMintedMsgBody,
618622

623+
// 0x5c11ada9
624+
DaolamaVaultSupplyMsgOpCode: decodeFuncDaolamaVaultSupplyMsgBody,
625+
619626
// 0x5d1b17b8
620627
StormUpdatePositionWithStopLossMsgOpCode: decodeFuncStormUpdatePositionWithStopLossMsgBody,
621628

@@ -727,8 +734,12 @@ var opcodedMsgInDecodeFunctions = map[uint32]msgDecoderFunc{
727734
// 0x7bcd1fef
728735
WhalesNominatorsDepositMsgOpCode: decodeFuncWhalesNominatorsDepositMsgBody,
729736

730-
// 0x7bdd97de
731-
JettonBurnNotificationMsgOpCode: decodeFuncJettonBurnNotificationMsgBody,
737+
//DaolamaVaultWithdraw, JettonBurnNotification,
738+
0x7bdd97de: decodeMultipleMsgs([]msgDecoderFunc{
739+
decodeFuncDaolamaVaultWithdrawMsgBody,
740+
decodeFuncJettonBurnNotificationMsgBody},
741+
"0x7bdd97de",
742+
),
732743

733744
// 0x82609bf6
734745
MultisigApproveAcceptedMsgOpCode: decodeFuncMultisigApproveAcceptedMsgBody,
@@ -1009,6 +1020,7 @@ const (
10091020
TonstakeControllerReturnAvailableFundsMsgOp MsgOpName = "TonstakeControllerReturnAvailableFunds"
10101021
JettonBurnMsgOp MsgOpName = "JettonBurn"
10111022
HipoFinanceProxyTokensMintedMsgOp MsgOpName = "HipoFinanceProxyTokensMinted"
1023+
DaolamaVaultSupplyMsgOp MsgOpName = "DaolamaVaultSupply"
10121024
StormUpdatePositionWithStopLossMsgOp MsgOpName = "StormUpdatePositionWithStopLoss"
10131025
StormAddExecutorAmountMsgOp MsgOpName = "StormAddExecutorAmount"
10141026
TonstakePoolSetRolesMsgOp MsgOpName = "TonstakePoolSetRoles"
@@ -1046,6 +1058,7 @@ const (
10461058
AcceptStorageContractMsgOp MsgOpName = "AcceptStorageContract"
10471059
ApproveMsgOp MsgOpName = "Approve"
10481060
WhalesNominatorsDepositMsgOp MsgOpName = "WhalesNominatorsDeposit"
1061+
DaolamaVaultWithdrawMsgOp MsgOpName = "DaolamaVaultWithdraw"
10491062
JettonBurnNotificationMsgOp MsgOpName = "JettonBurnNotification"
10501063
MultisigApproveAcceptedMsgOp MsgOpName = "MultisigApproveAccepted"
10511064
StormAddReferralAmountMsgOp MsgOpName = "StormAddReferralAmount"
@@ -1195,6 +1208,7 @@ const (
11951208
TonstakeControllerReturnAvailableFundsMsgOpCode MsgOpCode = 0x55c26cd5
11961209
JettonBurnMsgOpCode MsgOpCode = 0x595f07bc
11971210
HipoFinanceProxyTokensMintedMsgOpCode MsgOpCode = 0x5be57626
1211+
DaolamaVaultSupplyMsgOpCode MsgOpCode = 0x5c11ada9
11981212
StormUpdatePositionWithStopLossMsgOpCode MsgOpCode = 0x5d1b17b8
11991213
StormAddExecutorAmountMsgOpCode MsgOpCode = 0x5dd66579
12001214
TonstakePoolSetRolesMsgOpCode MsgOpCode = 0x5e517f36
@@ -1232,6 +1246,7 @@ const (
12321246
AcceptStorageContractMsgOpCode MsgOpCode = 0x7a361688
12331247
ApproveMsgOpCode MsgOpCode = 0x7b4b42e6
12341248
WhalesNominatorsDepositMsgOpCode MsgOpCode = 0x7bcd1fef
1249+
DaolamaVaultWithdrawMsgOpCode MsgOpCode = 0x7bdd97de
12351250
JettonBurnNotificationMsgOpCode MsgOpCode = 0x7bdd97de
12361251
MultisigApproveAcceptedMsgOpCode MsgOpCode = 0x82609bf6
12371252
StormAddReferralAmountMsgOpCode MsgOpCode = 0x84dced7a
@@ -1809,6 +1824,10 @@ type HipoFinanceProxyTokensMintedMsgBody struct {
18091824
RoundSince uint32
18101825
}
18111826

1827+
type DaolamaVaultSupplyMsgBody struct {
1828+
Amount tlb.Grams
1829+
}
1830+
18121831
type StormUpdatePositionWithStopLossMsgBody struct {
18131832
Direction tlb.Uint1
18141833
StopTriggerPrice tlb.Grams
@@ -2068,6 +2087,11 @@ type WhalesNominatorsDepositMsgBody struct {
20682087
Gas tlb.Grams
20692088
}
20702089

2090+
type DaolamaVaultWithdrawMsgBody struct {
2091+
JettonAmount tlb.Grams
2092+
UserAddress tlb.MsgAddress
2093+
}
2094+
20712095
type JettonBurnNotificationMsgBody struct {
20722096
QueryId uint64
20732097
Amount tlb.VarUInteger16
@@ -2539,6 +2563,7 @@ var KnownMsgInTypes = map[string]any{
25392563
TonstakeControllerReturnAvailableFundsMsgOp: TonstakeControllerReturnAvailableFundsMsgBody{},
25402564
JettonBurnMsgOp: JettonBurnMsgBody{},
25412565
HipoFinanceProxyTokensMintedMsgOp: HipoFinanceProxyTokensMintedMsgBody{},
2566+
DaolamaVaultSupplyMsgOp: DaolamaVaultSupplyMsgBody{},
25422567
StormUpdatePositionWithStopLossMsgOp: StormUpdatePositionWithStopLossMsgBody{},
25432568
StormAddExecutorAmountMsgOp: StormAddExecutorAmountMsgBody{},
25442569
TonstakePoolSetRolesMsgOp: TonstakePoolSetRolesMsgBody{},
@@ -2576,6 +2601,7 @@ var KnownMsgInTypes = map[string]any{
25762601
AcceptStorageContractMsgOp: AcceptStorageContractMsgBody{},
25772602
ApproveMsgOp: ApproveMsgBody{},
25782603
WhalesNominatorsDepositMsgOp: WhalesNominatorsDepositMsgBody{},
2604+
DaolamaVaultWithdrawMsgOp: DaolamaVaultWithdrawMsgBody{},
25792605
JettonBurnNotificationMsgOp: JettonBurnNotificationMsgBody{},
25802606
MultisigApproveAcceptedMsgOp: MultisigApproveAcceptedMsgBody{},
25812607
StormAddReferralAmountMsgOp: StormAddReferralAmountMsgBody{},

abi/schemas/daolama.xml

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<abi>
2+
<interface name="daolama_vault">
3+
<msg_in>
4+
<internal name="daolama_vault_supply"/>
5+
<internal name="daolama_vault_withdraw"/>
6+
</msg_in>
7+
8+
<get_method name="get_pool_data"/>
9+
</interface>
10+
11+
<internal name="daolama_vault_supply">
12+
supply#5c11ada9 amount:Coins = InternalMsgBody;
13+
</internal>
14+
15+
<internal name="daolama_vault_withdraw">
16+
withdraw#7bdd97de jetton_amount:Coins user_address:MsgAddress = InternalMsgBody;
17+
</internal>
18+
19+
<get_method name="get_pool_data">
20+
<output version="daolama" fixed_length="true">
21+
<int name="halted">bool</int>
22+
<int name="balance">uint64</int>
23+
<int name="borrowed">uint64</int>
24+
<int name="lp_token_balance">uint64</int>
25+
<int name="fee_collected">uint64</int>
26+
</output>
27+
</get_method>
28+
</abi>

0 commit comments

Comments
 (0)