From 91aa5891c30eb7f8f80e203e741517aca7c68f85 Mon Sep 17 00:00:00 2001 From: Pavel Levchenko Date: Tue, 11 Nov 2025 11:08:44 +0300 Subject: [PATCH] implement dedust liquidity deposit straw --- pkg/bath/bath_test.go | 19 ++ pkg/bath/dedust.go | 185 ++++++++++++++++++ pkg/bath/straws.go | 3 + .../deposit-ton-tonio-liquidity-dedust.json | 131 +++++++++++++ .../deposit-tonio-ton-liquidity-dedust.json | 134 +++++++++++++ .../deposit-usdt-dust-liquidity-dedust.json | 158 +++++++++++++++ pkg/references/protocols.go | 9 +- 7 files changed, 635 insertions(+), 4 deletions(-) create mode 100644 pkg/bath/testdata/deposit-ton-tonio-liquidity-dedust.json create mode 100644 pkg/bath/testdata/deposit-tonio-ton-liquidity-dedust.json create mode 100644 pkg/bath/testdata/deposit-usdt-dust-liquidity-dedust.json diff --git a/pkg/bath/bath_test.go b/pkg/bath/bath_test.go index 4efb123f5..f6431fa83 100644 --- a/pkg/bath/bath_test.go +++ b/pkg/bath/bath_test.go @@ -251,6 +251,10 @@ func TestFindActions(t *testing.T) { tongo.MustParseBlockID("(0,8000000000000000,58456309)"), // nft purchase tongo.MustParseBlockID("(0,8000000000000000,58460832)"), + // dedust deposit liquidity + tongo.MustParseBlockID("(0,8000000000000000,55817478)"), + tongo.MustParseBlockID("(0,8000000000000000,55727931)"), + tongo.MustParseBlockID("(0,8000000000000000,55467228)"), }), ) @@ -736,6 +740,21 @@ func TestFindActions(t *testing.T) { filenamePrefix: "dedust-swap-with-omniston-new", hash: "2e3eb4b79911185891d54c042f648d5e6764ce7569b3071582177ba84a2097f0", }, + { + name: "deposit ton + tonio liquidity dedust", + hash: "2d60ff5ccebf3b885aeb6e726c6189cebd934cf52c7aa24843d6ebeddd76aacf", + filenamePrefix: "deposit-ton-tonio-liquidity-dedust", + }, + { + name: "deposit tonio + ton liquidity dedust", + hash: "230edd7e2f89b4d7c4b9c8183301c140539735d48bfb1e012b5d2e51a5aa82e5", + filenamePrefix: "deposit-tonio-ton-liquidity-dedust", + }, + { + name: "deposit usdt + dust liquidity dedust", + hash: "ab2fa2da9430a988060b2305303d8580cd3703970682a0be071fc7f57a8384a6", + filenamePrefix: "deposit-usdt-dust-liquidity-dedust", + }, } { t.Run(c.name, func(t *testing.T) { trace, err := storage.GetTrace(context.Background(), tongo.MustParseHash(c.hash)) diff --git a/pkg/bath/dedust.go b/pkg/bath/dedust.go index 517021a36..9fa4d053e 100644 --- a/pkg/bath/dedust.go +++ b/pkg/bath/dedust.go @@ -5,6 +5,7 @@ import ( "math/big" "slices" + "github.com/tonkeeper/opentonapi/pkg/core" "github.com/tonkeeper/opentonapi/pkg/references" "github.com/tonkeeper/tongo/abi" "github.com/tonkeeper/tongo/ton" @@ -182,3 +183,187 @@ func (s UniversalDedustStraw) countSteps(step abi.DedustSwapStep) int { } type UniversalDedustStraw struct{} + +var DedustLiquidityDepositNativeStraw = Straw[BubbleLiquidityDeposit]{ + CheckFuncs: []bubbleCheck{IsTx, HasOperation(abi.DedustDepositLiquidityMsgOp), HasInterface(abi.DedustVault)}, + Builder: func(newAction *BubbleLiquidityDeposit, bubble *Bubble) error { + tx := bubble.Info.(BubbleTx) + newAction.Protocol = core.Protocol{ + Name: string(references.Dedust), + Image: &references.DedustImage, + } + newAction.From = tx.inputFrom.Address + body := tx.decodedBody.Value.(abi.DedustDepositLiquidityMsgBody) + tonAmount := new(big.Int) + tonAmount.SetUint64(uint64(body.Amount)) + depositTon := core.VaultDepositInfo{ + Price: core.Price{ + Currency: core.Currency{ + Type: core.CurrencyTON, + }, + Amount: *tonAmount, + }, + Vault: tx.account.Address, + } + newAction.Tokens = append(newAction.Tokens, depositTon) + return nil + }, + SingleChild: &Straw[BubbleLiquidityDeposit]{ + CheckFuncs: []bubbleCheck{IsTx, HasOpcode(0xf04ec526)}, + Children: []Straw[BubbleLiquidityDeposit]{ + { + CheckFuncs: []bubbleCheck{IsTx, HasOpcode(0x9b3aa3fa)}, + SingleChild: &Straw[BubbleLiquidityDeposit]{ + CheckFuncs: []bubbleCheck{Is(BubbleContractDeploy{})}, + Optional: true, + }, + }, + { + CheckFuncs: []bubbleCheck{IsTx, HasOpcode(0x54240fe5)}, + SingleChild: &Straw[BubbleLiquidityDeposit]{ + Optional: true, + CheckFuncs: []bubbleCheck{IsTx, HasOperation(abi.DedustDepositLiquidityAllMsgOp), HasInterface(abi.DedustPool)}, + Children: []Straw[BubbleLiquidityDeposit]{ + { + CheckFuncs: []bubbleCheck{IsTx, HasOpcode(0xaae79256)}, + Children: []Straw[BubbleLiquidityDeposit]{ + { + CheckFuncs: []bubbleCheck{IsTx, HasOpcode(0x6b0b787f), HasInterface(abi.DedustVault)}, + SingleChild: &Straw[BubbleLiquidityDeposit]{ + CheckFuncs: []bubbleCheck{IsTx, HasOperation(abi.DedustPayoutMsgOp)}, + }, + }, + { + CheckFuncs: []bubbleCheck{IsTx}, + }, + }, + }, + { + CheckFuncs: []bubbleCheck{Is(BubbleJettonMint{})}, + Builder: func(newAction *BubbleLiquidityDeposit, bubble *Bubble) error { + tx := bubble.Info.(BubbleJettonMint) + newAction.Success = tx.success + return nil + }, + SingleChild: &Straw[BubbleLiquidityDeposit]{ + CheckFuncs: []bubbleCheck{Is(BubbleContractDeploy{})}, + Optional: true, + }, + }, + }, + }, + }, + }, + }, +} + +var DedustLiquidityDepositJettonStraw = Straw[BubbleLiquidityDeposit]{ + CheckFuncs: []bubbleCheck{IsJettonTransfer, JettonTransferOperation(abi.DedustDepositLiquidityJettonOp), func(bubble *Bubble) bool { + tx := bubble.Info.(BubbleJettonTransfer) + if tx.recipient == nil { + return false + } + return tx.recipient.Is(abi.DedustVault) + }}, + Builder: func(newAction *BubbleLiquidityDeposit, bubble *Bubble) error { + tx := bubble.Info.(BubbleJettonTransfer) + newAction.Protocol = core.Protocol{ + Name: string(references.Dedust), + Image: &references.DedustImage, + } + newAction.From = tx.sender.Address + depositJetton := core.VaultDepositInfo{ + Price: core.Price{ + Currency: core.Currency{ + Type: core.CurrencyJetton, + Jetton: &tx.master, + }, + Amount: big.Int(tx.amount), + }, + Vault: tx.recipient.Address, + } + newAction.Tokens = append(newAction.Tokens, depositJetton) + return nil + }, + SingleChild: &Straw[BubbleLiquidityDeposit]{ + CheckFuncs: []bubbleCheck{IsTx, HasOpcode(0xf04ec526)}, + Children: []Straw[BubbleLiquidityDeposit]{ + { + CheckFuncs: []bubbleCheck{IsTx, HasOpcode(0x9b3aa3fa)}, + SingleChild: &Straw[BubbleLiquidityDeposit]{ + CheckFuncs: []bubbleCheck{Is(BubbleContractDeploy{})}, + Optional: true, + }, + }, + { + CheckFuncs: []bubbleCheck{IsTx, HasOpcode(0x54240fe5)}, + SingleChild: &Straw[BubbleLiquidityDeposit]{ + Optional: true, + CheckFuncs: []bubbleCheck{IsTx, HasOperation(abi.DedustDepositLiquidityAllMsgOp), HasInterface(abi.DedustPool)}, + Children: []Straw[BubbleLiquidityDeposit]{ + { + CheckFuncs: []bubbleCheck{IsTx, HasOpcode(0xaae79256)}, + Children: []Straw[BubbleLiquidityDeposit]{ + { + CheckFuncs: []bubbleCheck{IsTx, HasOpcode(0x6b0b787f), HasInterface(abi.DedustVault)}, + SingleChild: &Straw[BubbleLiquidityDeposit]{ + CheckFuncs: []bubbleCheck{IsJettonTransfer}, + }, + }, + { + CheckFuncs: []bubbleCheck{IsTx}, + }, + }, + }, + { + CheckFuncs: []bubbleCheck{Is(BubbleJettonMint{})}, + Builder: func(newAction *BubbleLiquidityDeposit, bubble *Bubble) error { + tx := bubble.Info.(BubbleJettonMint) + newAction.Success = tx.success + return nil + }, + SingleChild: &Straw[BubbleLiquidityDeposit]{ + CheckFuncs: []bubbleCheck{Is(BubbleContractDeploy{})}, + Optional: true, + }, + }, + }, + }, + }, + }, + }, +} + +var DedustLiquidityDepositBothStraw = Straw[BubbleLiquidityDeposit]{ + CheckFuncs: []bubbleCheck{IsTx}, + Children: []Straw[BubbleLiquidityDeposit]{ + { + CheckFuncs: []bubbleCheck{Is(BubbleLiquidityDeposit{}), func(bubble *Bubble) bool { + tx := bubble.Info.(BubbleLiquidityDeposit) + return tx.Protocol.Name == string(references.Dedust) + }}, + Builder: func(newAction *BubbleLiquidityDeposit, bubble *Bubble) error { + tx := bubble.Info.(BubbleLiquidityDeposit) + newAction.Protocol = tx.Protocol + newAction.From = tx.From + newAction.Tokens = append(newAction.Tokens, tx.Tokens...) + newAction.Success = newAction.Success || tx.Success + return nil + }, + }, + { + CheckFuncs: []bubbleCheck{Is(BubbleLiquidityDeposit{}), func(bubble *Bubble) bool { + tx := bubble.Info.(BubbleLiquidityDeposit) + return tx.Protocol.Name == string(references.Dedust) + }}, + Builder: func(newAction *BubbleLiquidityDeposit, bubble *Bubble) error { + tx := bubble.Info.(BubbleLiquidityDeposit) + newAction.Protocol = tx.Protocol + newAction.From = tx.From + newAction.Tokens = append(newAction.Tokens, tx.Tokens...) + newAction.Success = newAction.Success || tx.Success + return nil + }, + }, + }, +} diff --git a/pkg/bath/straws.go b/pkg/bath/straws.go index 95d9ef310..caa8c1e9a 100644 --- a/pkg/bath/straws.go +++ b/pkg/bath/straws.go @@ -94,6 +94,9 @@ var DefaultStraws = []Merger{ WithdrawAffluentEarnRequestStraw, InstantWithdrawAffluentEarnStraw, InstantWithdrawAffluentEarnWithOraclesStraw, + DedustLiquidityDepositNativeStraw, + DedustLiquidityDepositJettonStraw, + DedustLiquidityDepositBothStraw, } var JettonTransferClassicStraw = Straw[BubbleJettonTransfer]{ diff --git a/pkg/bath/testdata/deposit-ton-tonio-liquidity-dedust.json b/pkg/bath/testdata/deposit-ton-tonio-liquidity-dedust.json new file mode 100644 index 000000000..d41b40aba --- /dev/null +++ b/pkg/bath/testdata/deposit-ton-tonio-liquidity-dedust.json @@ -0,0 +1,131 @@ +{ + "Actions": [ + { + "LiquidityDepositAction": { + "Protocol": { + "Name": "dedust", + "Image": "https://ton.app/media/36676ef1-0094-4238-98fb-d65c64a51323.jpg" + }, + "From": "0:8fb7f36f868718bbdfc378df489bcfed9ae8609bb40457b001fee784b778c122", + "Tokens": [ + { + "Price": { + "Currency": { + "Type": "native", + "Jetton": null, + "CurrencyID": null + }, + "Amount": 136030792962 + }, + "Vault": "0:dae153a74d894bbc32748198cd626e4f5df4a69ad2fa56ce80fc2644b5708d20" + }, + { + "Price": { + "Currency": { + "Type": "jetton", + "Jetton": "0:8719fb83fa3e34cba2b14e6c820b8ba5b6ecf42b73c4be0467afc532746b60fc", + "CurrencyID": null + }, + "Amount": 19212543958981 + }, + "Vault": "0:7460e3f28fb3e77effbae948fcc8e369fcfcfb9e411784859b36b524009ca824" + } + ] + }, + "Success": true, + "Type": "LiquidityDeposit", + "BaseTransactions": [ + "239a93f221d4b109ca9c875672c1543339381ace3a11ddd54fd78c75c560dea7", + "30fe0df234cb62122c956d3b156eddc814d53e199f642a8196675c6091bc2d61", + "31c5384fb38a4128af0cb66d0be983909cac8a7284571dde9c015ca8258d5629", + "0a5d4ff8cec0422ad38cc7cde8e1770197ba6808f5ad86afa3e73e137e22308e", + "c6be157f64b4913071c141c758257421f9f771d2dc9e2868f3cd26a6e739da57", + "9d98814de1dbd36006291936944eca9304a4b582558eec4ba45672f868fe1feb", + "1f85cfd4b1bb0c77ddf10974d65a25eea93965814f1e8071669ea04248376c82", + "7f1a6badcd04537dbd5930189f637bed72c6763d94e20780b3630f4416767113", + "2d60ff5ccebf3b885aeb6e726c6189cebd934cf52c7aa24843d6ebeddd76aacf", + "ff541c81431a3e9c2bd804e800d53dee41759cdde8689ece613742c9ef91f8bd", + "9aa158cdafc337a63d257b7be810efccfeeeb61f40a3543d286fc12caf42cddf", + "f4cc1a6cf624bfa82acfdad5c7a771bcdeb5748c4d61dd0e0d727bcfbf6b8d73", + "5225436b40d3beae4f5874c83cb0f72953112d67b0df084c05bfb8c12ed0b393", + "1988f23808a424b8fe486065341144b716e3db4dc69791ff79cb77e213840559", + "2df188140ea3bed5f298f09c6ea6eb5d434adad2d0938b07946004b28f0bf41f", + "107227aa364e3adc4969dc1b7eb11e891a3653f406e46ae475b671061a85abfc", + "aa18593d3cdbfae7c6e2f4d3f6938d31b07db8c242a1102ef0534f9d53d7c875", + "8dc8715cecd995eca17902bdd7287da8be21f63724913affa05fd089739c7906", + "4fce228799c4f9ec9e0874e732adc2b625a77c597246c9aeae05c4d7f3f63a68", + "63f0440af899a0fcc5f48e7e1794af4786966981fcda37270373f4f0aea4da26" + ] + } + ], + "Accounts": [ + { + "Account": "0:05ec0f223961eb31a9592ad32145467cf30755161aacd42d0a32e4d7cb9a02c5", + "Ton": -9, + "Fee": 5280809, + "Jettons": null + }, + { + "Account": "0:0c8d2a6c696020dd0bea21238fab10e553482ea754274eae26cbd90dd0687a9f", + "Ton": -40924, + "Fee": 8218124, + "Jettons": null + }, + { + "Account": "0:5f0564fb5f604783db57031ce1cf668a88d4d4d6da6de4db222b4b920d6fd800", + "Ton": 0, + "Fee": 40362516, + "Jettons": null + }, + { + "Account": "0:7460e3f28fb3e77effbae948fcc8e369fcfcfb9e411784859b36b524009ca824", + "Ton": 0, + "Fee": 5886033, + "Jettons": [ + { + "Address": "0:8719fb83fa3e34cba2b14e6c820b8ba5b6ecf42b73c4be0467afc532746b60fc", + "Quantity": 19212543958981 + } + ] + }, + { + "Account": "0:84f025457a0dc5ac254415c33304312bce4d77debeb02ed4492302eac743651f", + "Ton": 14556821, + "Fee": 5022411, + "Jettons": null + }, + { + "Account": "0:8d4263af756298cbab74495ad6c1da3bf5b152fdf5cfe9319215a1d9404fa669", + "Ton": 0, + "Fee": 14350057, + "Jettons": null + }, + { + "Account": "0:8fb7f36f868718bbdfc378df489bcfed9ae8609bb40457b001fee784b778c122", + "Ton": -136161866806, + "Fee": 6774807, + "Jettons": [ + { + "Address": "0:8719fb83fa3e34cba2b14e6c820b8ba5b6ecf42b73c4be0467afc532746b60fc", + "Quantity": -19212543958981 + }, + { + "Address": "0:8d4263af756298cbab74495ad6c1da3bf5b152fdf5cfe9319215a1d9404fa669", + "Quantity": 1243986436724933 + } + ] + }, + { + "Account": "0:dae153a74d894bbc32748198cd626e4f5df4a69ad2fa56ce80fc2644b5708d20", + "Ton": 136030490561, + "Fee": 8522000, + "Jettons": null + }, + { + "Account": "0:e39a04d6958d76254104d05e800b8721cfbb3d90947a357c6c3588168b40698a", + "Ton": 0, + "Fee": 22443600, + "Jettons": null + } + ] + } \ No newline at end of file diff --git a/pkg/bath/testdata/deposit-tonio-ton-liquidity-dedust.json b/pkg/bath/testdata/deposit-tonio-ton-liquidity-dedust.json new file mode 100644 index 000000000..bd775333d --- /dev/null +++ b/pkg/bath/testdata/deposit-tonio-ton-liquidity-dedust.json @@ -0,0 +1,134 @@ +{ + "Actions": [ + { + "LiquidityDepositAction": { + "Protocol": { + "Name": "dedust", + "Image": "https://ton.app/media/36676ef1-0094-4238-98fb-d65c64a51323.jpg" + }, + "From": "0:8fb7f36f868718bbdfc378df489bcfed9ae8609bb40457b001fee784b778c122", + "Tokens": [ + { + "Price": { + "Currency": { + "Type": "native", + "Jetton": null, + "CurrencyID": null + }, + "Amount": 856269967062 + }, + "Vault": "0:dae153a74d894bbc32748198cd626e4f5df4a69ad2fa56ce80fc2644b5708d20" + }, + { + "Price": { + "Currency": { + "Type": "jetton", + "Jetton": "0:8719fb83fa3e34cba2b14e6c820b8ba5b6ecf42b73c4be0467afc532746b60fc", + "CurrencyID": null + }, + "Amount": 369891794373953 + }, + "Vault": "0:7460e3f28fb3e77effbae948fcc8e369fcfcfb9e411784859b36b524009ca824" + } + ] + }, + "Success": true, + "Type": "LiquidityDeposit", + "BaseTransactions": [ + "c74e6ec23cb576131cba7f19b3e01a4955b3f8608d40fb3c5f90a83241ebb9b2", + "b9427d6d7a03ee20d3bf248b9bd9a3f283f362f0f562d9d2ee050d4a6681e113", + "f0bbffd28373de24c94ae7a76c9b29cbb0349fcf480b7b544158fbf9092ad19d", + "a1f3d5d1c82fe1286672ee35f81fd13d4e60d24c3dbd939818a8492729afaa57", + "c3cd9d341faecd339310be752bd80c60ac78c7dee875d16efc3e6861e1da2ab6", + "31a4d4dce8131d35ba8a7b526a094601de00c055cf4cce9fab75f710743229a9", + "519e20e15e4bd34a41f7914b37ea85960d8269642d090aea8b01b949ea7f46f4", + "4ca7e0fb2669714fa7057a9f79361fa4de706f8ff03ca8e91d3b2abe90ac3a1a", + "88a8a3ed38e0af530463e64af2416d8077a293bafd9d8b4d478acd57358a98e2", + "91073187ac506381b56220b7db4a17cd9a668a181822c2ad81db4a7d6b3db629", + "68ce3d2dcf175a9a46f986c4aa8b95f6d4963b74505287ea67748bfc39356046", + "e0b54b8e7fd311aa7e57acd7dcc4fcce30987d88a5c20215c556d82bae6093ac", + "02676c3366a96eacf2e51d17c3bb6868ade8e6206c7e9382c7f5f148470536c1", + "1d9c0ed610b84bb55d528cbf0346959f26f0fde4fbe709b9d18cb0921a612c89", + "338d75e0e5da13bae35d54f2533c3e92b2810e0dc23ce7214187e89ce062021c", + "ca939ece73b326bd724596eeee148769fcceb5ba146edfdeebb16beea29148a0", + "d48d3d93b644f0d5051478dcd904fb8ee02f6d72835a46203fb32306d28a7b4b", + "2e63f74f4ea87cd64cc0e27d914af551da7aec99b2f21313ed66ddac892c0303", + "230edd7e2f89b4d7c4b9c8183301c140539735d48bfb1e012b5d2e51a5aa82e5", + "f04b7b0f0cf1d6db9c3feb74307191100354b7c770de124ce97aa6d823c5ca30", + "3e7741719c0331dcd999387cee6208016cca4343e4938c40f35fbd470f448691", + "5ff9dfa45d2db6f43439a6e174ca4dc2e7a4666d232906e605cfbea6d78c88e5", + "f5fa31600444a6fafcc8f9c0a61cfe00855a99148ae3625721e532f6ebf958a3" + ] + } + ], + "Accounts": [ + { + "Account": "0:05ec0f223961eb31a9592ad32145467cf30755161aacd42d0a32e4d7cb9a02c5", + "Ton": -3, + "Fee": 13236003, + "Jettons": null + }, + { + "Account": "0:0c8d2a6c696020dd0bea21238fab10e553482ea754274eae26cbd90dd0687a9f", + "Ton": 0, + "Fee": 13244718, + "Jettons": null + }, + { + "Account": "0:5f0564fb5f604783db57031ce1cf668a88d4d4d6da6de4db222b4b920d6fd800", + "Ton": 0, + "Fee": 40374193, + "Jettons": null + }, + { + "Account": "0:7460e3f28fb3e77effbae948fcc8e369fcfcfb9e411784859b36b524009ca824", + "Ton": 0, + "Fee": 10572412, + "Jettons": [ + { + "Address": "0:8719fb83fa3e34cba2b14e6c820b8ba5b6ecf42b73c4be0467afc532746b60fc", + "Quantity": 357603415828405 + } + ] + }, + { + "Account": "0:84f025457a0dc5ac254415c33304312bce4d77debeb02ed4492302eac743651f", + "Ton": 24598032, + "Fee": 4981200, + "Jettons": null + }, + { + "Account": "0:8d4263af756298cbab74495ad6c1da3bf5b152fdf5cfe9319215a1d9404fa669", + "Ton": 0, + "Fee": 14353220, + "Jettons": null + }, + { + "Account": "0:8fb7f36f868718bbdfc378df489bcfed9ae8609bb40457b001fee784b778c122", + "Ton": -856425761964, + "Fee": 7195927, + "Jettons": [ + { + "Address": "0:8719fb83fa3e34cba2b14e6c820b8ba5b6ecf42b73c4be0467afc532746b60fc", + "Quantity": -357603415828405 + }, + { + "Address": "0:8d4263af756298cbab74495ad6c1da3bf5b152fdf5cfe9319215a1d9404fa669", + "Quantity": 14118739708235416 + } + ] + }, + { + "Account": "0:dae153a74d894bbc32748198cd626e4f5df4a69ad2fa56ce80fc2644b5708d20", + "Ton": 856269744662, + "Fee": 4950400, + "Jettons": null + }, + { + "Account": "0:e39a04d6958d76254104d05e800b8721cfbb3d90947a357c6c3588168b40698a", + "Ton": 0, + "Fee": 22511200, + "Jettons": null + } + ] + } \ No newline at end of file diff --git a/pkg/bath/testdata/deposit-usdt-dust-liquidity-dedust.json b/pkg/bath/testdata/deposit-usdt-dust-liquidity-dedust.json new file mode 100644 index 000000000..01d335237 --- /dev/null +++ b/pkg/bath/testdata/deposit-usdt-dust-liquidity-dedust.json @@ -0,0 +1,158 @@ +{ + "Actions": [ + { + "LiquidityDepositAction": { + "Protocol": { + "Name": "dedust", + "Image": "https://ton.app/media/36676ef1-0094-4238-98fb-d65c64a51323.jpg" + }, + "From": "0:9b69c8fe8a8f5f90d6f98953f55d409c191ea164a7435df0596d7b17cdcbe737", + "Tokens": [ + { + "Price": { + "Currency": { + "Type": "jetton", + "Jetton": "0:b113a994b5024a16719f69139328eb759596c38a25f59028b146fecdc3621dfe", + "CurrencyID": null + }, + "Amount": 942370045 + }, + "Vault": "0:18aa8e2eed51747dae033c079b93883d941cad8f65459f2ee9cd7474b6b8ed5d" + }, + { + "Price": { + "Currency": { + "Type": "jetton", + "Jetton": "0:65aac9b5e380eae928db3c8e238d9bc0d61a9320fdc2bc7a2f6c87d6fedf9208", + "CurrencyID": null + }, + "Amount": 768608148078 + }, + "Vault": "0:1fe013288aa3dfd14d800e836211ab537a68b0dd45e4b791fdd1a429792282da" + } + ] + }, + "Success": true, + "Type": "LiquidityDeposit", + "BaseTransactions": [ + "9dcef51ba1b32e0334a4b00faa250410941c5ed9f6a00c515e994573674dace5", + "d7bb2cfa79a2272fbb3ef4bc61b6e7c108bfd235cf607f3acbbc1c8cdd73da4a", + "a40ee26805eeeb5040cd90cc6768cf0eceaf232791e94913e956a5da08274179", + "d8c935bff1249f521f54ef80998d1d414eb02caf216633e26b0d3d36d2bfe16b", + "b369da3c3260385424399876b27d6d31bf109f07c02b39e4701241bc1771aed8", + "c728d38930638764f5b6fec7834a0d1d16428d4fd17ff90623be65f3b914fc23", + "d47366d0f8772368c65de012c7658ed54bada2dee1542b5f845ea27239e58c7a", + "ac43ea8996e8d76a6e7f299f3fb1d9f1054f223bbefb2ff0a4572835cb647abe", + "c34fb811396d596ce947d9cc5393d869427d11ae30c80a20530a8f94cb1992bc", + "e15ca7cdb322716e7bd29bd08ad84bf1a62286f741166a33d0526e505a4f1c8e", + "1c3741d3eff31c70b9694910df4f4023ade69380ce3dfc4be7ce1937dea1d724", + "ab2fa2da9430a988060b2305303d8580cd3703970682a0be071fc7f57a8384a6", + "b98701de77818895daa232f724aebf9faccc40f6a090078ef6135a34fab058b4", + "f614e74324e3e4a181f8dbff9f7afabffdbcdf842e6cffc8b7eee76d0e29c58e", + "709cf5afec72bda70d17c9591817c208347957b9425c6cb3ce0fd4ecd1467102", + "07d3c9d36469daba9ab84a417e861a01b7e997e7b951a949d2b5635ba98fb865", + "7db3a2743fa1d8bbeee4cb568be134eb3f611e161cdac5f03eaa0b1acab16e1b", + "06196a11511e40c2fab48984d8a694bbaa416e2a4bcbc4ab4f0725fc6fae9bbb", + "63f3e6af32c3f8c9241edd0d25c92375d99c3d22f89b0b7252129d0bb671700e", + "95a18967b99176d1da9d958cdd6342634f7bad9b585b8d8bd9a8e5ed49ccf96c", + "df9c4860f08e2fd4ecb8745cf856993f2586ca62c64399de7469c81c6924406a", + "bd9306199430dbdbc8e3fca01b2ec6e89eb1875d128a5abba05070d6f1f14d68", + "8d4849dbfdccb0df73bd44fbfd8639712c902d406bdf40095bca7ec5666ce3c9", + "cbe3cd7d33173ce355011b5a87beeca4e314da08d879aad2d9187b0f6c2a7d2e", + "f123b6ed4e47b1e8a83dd7a3d0786e2b300d5d0ab72d823590e365a47952fe44", + "6ea5f543ece1e2f71aa6f7c4ed67f2a13db93e456d9be21f1100eeebeb6cf3db" + ] + } + ], + "Accounts": [ + { + "Account": "0:1324caef27e05104012f2461b9a1940f83af88b6280af325f1e0147da328f737", + "Ton": 0, + "Fee": 22973200, + "Jettons": null + }, + { + "Account": "0:18aa8e2eed51747dae033c079b93883d941cad8f65459f2ee9cd7474b6b8ed5d", + "Ton": 0, + "Fee": 6010213, + "Jettons": [ + { + "Address": "0:b113a994b5024a16719f69139328eb759596c38a25f59028b146fecdc3621dfe", + "Quantity": 942370045 + } + ] + }, + { + "Account": "0:1fe013288aa3dfd14d800e836211ab537a68b0dd45e4b791fdd1a429792282da", + "Ton": -37600, + "Fee": 10714866, + "Jettons": [ + { + "Address": "0:65aac9b5e380eae928db3c8e238d9bc0d61a9320fdc2bc7a2f6c87d6fedf9208", + "Quantity": 768608148077 + } + ] + }, + { + "Account": "0:34252021509c6931b09b788ebee436521f8c058b16ff1d9bddbe7fb63c21d682", + "Ton": 8204404, + "Fee": 12840417, + "Jettons": null + }, + { + "Account": "0:5f0564fb5f604783db57031ce1cf668a88d4d4d6da6de4db222b4b920d6fd800", + "Ton": 0, + "Fee": 40758907, + "Jettons": null + }, + { + "Account": "0:88dac67cceadb9cae6faac7118f05c0fa95df36c2a92e686ac39d96310d0a387", + "Ton": -8, + "Fee": 1718008, + "Jettons": null + }, + { + "Account": "0:9b69c8fe8a8f5f90d6f98953f55d409c191ea164a7435df0596d7b17cdcbe737", + "Ton": -168135058, + "Fee": 8128018, + "Jettons": [ + { + "Address": "0:65aac9b5e380eae928db3c8e238d9bc0d61a9320fdc2bc7a2f6c87d6fedf9208", + "Quantity": -768608148077 + }, + { + "Address": "0:b113a994b5024a16719f69139328eb759596c38a25f59028b146fecdc3621dfe", + "Quantity": -942370045 + }, + { + "Address": "0:f2afd43c4956220499d8ba94e4d7764c601fe2458dd00c57e97c22120805b151", + "Quantity": 363703197955 + } + ] + }, + { + "Account": "0:b52bdbbc11a7de24298c064d9617efcda18153b95522e35d57ceb79b6ce2ea93", + "Ton": 8096273, + "Fee": 12837217, + "Jettons": null + }, + { + "Account": "0:d3938081a972edd1c053fb71414cb0bcbbb1ad7faaa476050aeac69a42866429", + "Ton": -7970, + "Fee": 1891570, + "Jettons": null + }, + { + "Account": "0:ea06bdd49edc0d6d592032d9ed5bfbbc247280cad51a9555c30d8d7a7b71ccfc", + "Ton": 9315705, + "Fee": 10257127, + "Jettons": null + }, + { + "Account": "0:f2afd43c4956220499d8ba94e4d7764c601fe2458dd00c57e97c22120805b151", + "Ton": 0, + "Fee": 14434711, + "Jettons": null + } + ] + } \ No newline at end of file diff --git a/pkg/references/protocols.go b/pkg/references/protocols.go index 955846645..9cbf3bc0d 100644 --- a/pkg/references/protocols.go +++ b/pkg/references/protocols.go @@ -8,10 +8,11 @@ const ( ) var ( - EthenaImage = "https://ethena.fi/shared/usde.png" - BidaskImage = "https://bidask.finance/assets/landing/bidask-logo.webp" - StonfiImage = "https://static.ston.fi/favicon/android-chrome-192x192.png" - MooncxImage = "https://moon.cx/assets/logoMoon.svg" + EthenaImage = "https://ethena.fi/shared/usde.png" + BidaskImage = "https://bidask.finance/assets/landing/bidask-logo.webp" + StonfiImage = "https://static.ston.fi/favicon/android-chrome-192x192.png" + DedustImage = "https://ton.app/media/36676ef1-0094-4238-98fb-d65c64a51323.jpg" + MooncxImage = "https://moon.cx/assets/logoMoon.svg" ToncoImage = "https://ton.app/media/1f913e65-9c32-433e-a0a3-a7c5ccf46ad5.png" AffluentImage = "https://ton.app/media/71e5021a-77ab-4c48-8ef3-35e9c67701b0.png" )