tx · 88Lj9m516sL6q9XjwTdRAJwuVZhuCKUZ8XuYpDoX6EWD

3PCVGdMYSN7wBz3h9iN292KmcN8YPT73rQ6:  -0.01000000 Waves

2023.09.23 17:46 [3833971] smart account 3PCVGdMYSN7wBz3h9iN292KmcN8YPT73rQ6 > SELF 0.00000000 Waves

{ "type": 13, "id": "88Lj9m516sL6q9XjwTdRAJwuVZhuCKUZ8XuYpDoX6EWD", "fee": 1000000, "feeAssetId": null, "timestamp": 1695480387069, "version": 2, "chainId": 87, "sender": "3PCVGdMYSN7wBz3h9iN292KmcN8YPT73rQ6", "senderPublicKey": "2oKshKbXJwo6oWfHpgCT31SbuB4Nm3DYeBm9PtHnzuxf", "proofs": [ "55b6NoQo6Ew4WdP3Cm6rq7NGPvjZ4BKJHNyDg6Tp2dMhgA1VVN2NZ6LBr8GcHwwbru8JUaX5UjpXcm8psKw5LaBg" ], "script": "base64:AAIFAAAAAAAAAA4IAhIAEgMKAQESAwoBAQAAAAQAAAAAEWxwX2FkZHJlc3NfcHVia2V5AQAAACAaub6/PxsR/IKPPkxgyw8ZFXMz8TNz2yPmHdLv+nWWZAAAAAAgbWFzc3RyYW5zZmVyX3doaXRlbGlzdGVkX2FkZHJlc3MJAQAAABRhZGRyZXNzRnJvbVB1YmxpY0tleQAAAAEFAAAAEWxwX2FkZHJlc3NfcHVia2V5AAAAABRscF9kZXBvc2l0b3JfYWRkcmVzcwEAAAAgc5/tVGYWTQcRPBIwmqOHZb8aTD2/yfJ8Jejlr1KqBgkAAAAAFGxwX3doaXRlbGlzdF9hZGRyZXNzCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABBQAAABRscF9kZXBvc2l0b3JfYWRkcmVzcwAAAAMAAAABaQEAAAAQQWRkUG9vbExpcXVpZGl0eQAAAAAEAAAADWNhbGxlcmFkZHJlc3MJAAJYAAAAAQgIBQAAAAFpAAAABmNhbGxlcgAAAAVieXRlcwQAAAADcG10AwkAAAAAAAACCQABkAAAAAEIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAABCQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAACQAAAgAAAAECAAAASU5vIHBheW1lbnQgYXR0YWNoZWQsIFBsZWFzZSBBdHRhY2ggb25seSBXaGl0ZWxpc3RlZCBUb2tlbnMgaW4gcGF5bWVudFsxXS4EAAAAIVByZXZpb3VzRnVuZHNBZGRlZFRvUG9vbGJ5Q29tcGFueQQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAAA5Ub3RhbF9MUF9BZGRlZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAAB5Ub3RhbEZ1bmRzQWRkZWRUb1Bvb2xieUNvbXBhbnkJAABkAAAAAgUAAAAhUHJldmlvdXNGdW5kc0FkZGVkVG9Qb29sYnlDb21wYW55CAUAAAADcG10AAAABmFtb3VudAQAAAAVUHJldmlvdXNQb29sTGlxdWlkaXR5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAElRvdGFsUG9vbExpcXVpZGl0eQkAAGQAAAACBQAAABVQcmV2aW91c1Bvb2xMaXF1aWRpdHkIBQAAAANwbXQAAAAGYW1vdW50BAAAABhQcmV2aW91c0xQRGVwb3NpdENvdW50ZXIEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAASTFBfRGVwb3NpdF9Db3VudGVyAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAFVRvdGFsTFBEZXBvc2l0Q291bnRlcgkAAGQAAAACBQAAABhQcmV2aW91c0xQRGVwb3NpdENvdW50ZXIAAAAAAAAAAAEDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAFGxwX3doaXRlbGlzdF9hZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQAEJQAAAAEFAAAAFGxwX3doaXRlbGlzdF9hZGRyZXNzAgAAACIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAANwbXQAAAAHYXNzZXRJZAkAAAIAAAABAgAAAC5Pbmx5IFdBVkVTIGlzIGFsbG93ZWQgdG8gZGVwb3NpdCBhdCB0aGUgbW9tZW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABRUb3RhbF9Qb29sX0xpcXVpZGl0eQUAAAASVG90YWxQb29sTGlxdWlkaXR5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABJMUF9EZXBvc2l0X0NvdW50ZXIFAAAAFVRvdGFsTFBEZXBvc2l0Q291bnRlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAOVG90YWxfTFBfQWRkZWQFAAAAHlRvdGFsRnVuZHNBZGRlZFRvUG9vbGJ5Q29tcGFueQUAAAADbmlsAAAAAWkBAAAAD1VwZGF0ZUxQQmFsYW5jZQAAAAEAAAAWUGFpZE1hc3NUcmFuc2ZlckFtb3VudAQAAAAUcmVhZF9hY2NvdW50X2JhbGFuY2UICQAD7wAAAAEFAAAABHRoaXMAAAAHcmVndWxhcgQAAAAZcmVhZF90b3RhbF9wb29sX2xpcXVpZGl0eQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMCAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5AgAAACRObyBJbml0aWFsIFBvb2wgTGlxdWlkaXR5IHdhcyBGb3VuZC4EAAAAFXJlY2VpdmVkX29yZGVyX2Ftb3VudAkAAGUAAAACBQAAABRyZWFkX2FjY291bnRfYmFsYW5jZQUAAAAZcmVhZF90b3RhbF9wb29sX2xpcXVpZGl0eQQAAAAUdXBkYXRlZF9wb29sX2JhbGFuY2UJAABkAAAAAgkAAGUAAAACBQAAABlyZWFkX3RvdGFsX3Bvb2xfbGlxdWlkaXR5BQAAABZQYWlkTWFzc1RyYW5zZmVyQW1vdW50BQAAABVyZWNlaXZlZF9vcmRlcl9hbW91bnQEAAAAG1ByZXZpb3VzTWFzc1RyYW5zZmVyQ291bnRlcgQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzAgAAABVNYXNzX1RyYW5zZmVyX0NvdW50ZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAYVG90YWxNYXNzVHJhbnNmZXJDb3VudGVyCQAAZAAAAAIFAAAAG1ByZXZpb3VzTWFzc1RyYW5zZmVyQ291bnRlcgAAAAAAAAAAAQQAAAAYUHJldmlvdXNNYXNzVHJhbnNmZXJTZW5kBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAGFRvdGFsX01hc3NfVHJhbnNmZXJfU2VuZAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAAAAAAAAAAAABAAAABVUb3RhbE1hc3NUcmFuc2ZlclNlbmQJAABkAAAAAgUAAAAYUHJldmlvdXNNYXNzVHJhbnNmZXJTZW5kBQAAABZQYWlkTWFzc1RyYW5zZmVyQW1vdW50AwkBAAAAAiE9AAAAAggFAAAAAWkAAAAGY2FsbGVyBQAAACBtYXNzdHJhbnNmZXJfd2hpdGVsaXN0ZWRfYWRkcmVzcwkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAlVGhpcyBBZGRyZXNzIGlzIG5vdCBBdXRob3JpemVkLiBPbmx5IAkABCUAAAABBQAAACBtYXNzdHJhbnNmZXJfd2hpdGVsaXN0ZWRfYWRkcmVzcwIAAAAiIGlzIEF1dGhvcml6ZWQgQWRkcmVzcyB0byBTaWduIGl0LgMJAABmAAAAAgUAAAAWUGFpZE1hc3NUcmFuc2ZlckFtb3VudAUAAAAZcmVhZF90b3RhbF9wb29sX2xpcXVpZGl0eQkAAAIAAAABAgAAAENQbGFjZWQgTWFzcyBUcmFuc2ZlciBBbW91bnQgU2l6ZSBpcyBtb3JlIHRoYW4gVG90YWwgUG9vbCBMaXF1aWRpdHkuCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABRUb3RhbF9Qb29sX0xpcXVpZGl0eQUAAAAUdXBkYXRlZF9wb29sX2JhbGFuY2UJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAICAAAAFU1hc3NfVHJhbnNmZXJfQ291bnRlcgUAAAAYVG90YWxNYXNzVHJhbnNmZXJDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABhUb3RhbF9NYXNzX1RyYW5zZmVyX1NlbmQFAAAAFVRvdGFsTWFzc1RyYW5zZmVyU2VuZAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkAASwAAAACCQABpAAAAAEFAAAAGFRvdGFsTWFzc1RyYW5zZmVyQ291bnRlcgIAAAATX01hc3NfVHJhbnNmZXJfU2VuZAUAAAAWUGFpZE1hc3NUcmFuc2ZlckFtb3VudAUAAAADbmlsAAAAAWkBAAAAEVdpdGhkcmF3TFBCYWxhbmNlAAAAAQAAAA5XaXRoZHJhd0Ftb3VudAQAAAAZcmVhZF90b3RhbF9wb29sX2xpcXVpZGl0eQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMCAAAAFFRvdGFsX1Bvb2xfTGlxdWlkaXR5AgAAACRObyBJbml0aWFsIFBvb2wgTGlxdWlkaXR5IHdhcyBGb3VuZC4EAAAAFHVwZGF0ZWRfcG9vbF9iYWxhbmNlCQAAZQAAAAIFAAAAGXJlYWRfdG90YWxfcG9vbF9saXF1aWRpdHkFAAAADldpdGhkcmF3QW1vdW50BAAAABlQcmV2aW91c0xQV2l0aGRyYXdDb3VudGVyBAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMCAAAAE0xQX1dpdGhkcmF3X0NvdW50ZXIDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAWVG90YWxMUFdpdGhkcmF3Q291bnRlcgkAAGQAAAACBQAAABlQcmV2aW91c0xQV2l0aGRyYXdDb3VudGVyAAAAAAAAAAABBAAAABJQcmV2aW91c0xQV2l0aGRyYXcEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwIAAAARVG90YWxfTFBfV2l0aGRyYXcDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAPVG90YWxMUFdpdGhkcmF3CQAAZAAAAAIFAAAAElByZXZpb3VzTFBXaXRoZHJhdwUAAAAOV2l0aGRyYXdBbW91bnQDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAAFGxwX3doaXRlbGlzdF9hZGRyZXNzCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAACVUaGlzIEFkZHJlc3MgaXMgbm90IEF1dGhvcml6ZWQuIE9ubHkgCQAEJQAAAAEFAAAAFGxwX3doaXRlbGlzdF9hZGRyZXNzAgAAACIgaXMgQXV0aG9yaXplZCBBZGRyZXNzIHRvIFNpZ24gaXQuAwkAAGYAAAACBQAAAA5XaXRoZHJhd0Ftb3VudAUAAAAZcmVhZF90b3RhbF9wb29sX2xpcXVpZGl0eQkAAAIAAAABAgAAAD5QbGFjZWQgV2l0aGRyYXcgQW1vdW50IFNpemUgaXMgbW9yZSB0aGFuIFRvdGFsIFBvb2wgTGlxdWlkaXR5LgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAAUVG90YWxfUG9vbF9MaXF1aWRpdHkFAAAAFHVwZGF0ZWRfcG9vbF9iYWxhbmNlCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABNMUF9XaXRoZHJhd19Db3VudGVyBQAAABZUb3RhbExQV2l0aGRyYXdDb3VudGVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACAgAAABFUb3RhbF9MUF9XaXRoZHJhdwUAAAAPVG90YWxMUFdpdGhkcmF3CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAGkAAAAAQUAAAAWVG90YWxMUFdpdGhkcmF3Q291bnRlcgIAAAAMX0xQX1dpdGhkcmF3BQAAAA5XaXRoZHJhd0Ftb3VudAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAABRscF93aGl0ZWxpc3RfYWRkcmVzcwUAAAAOV2l0aGRyYXdBbW91bnQFAAAABHVuaXQFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAEAAAAByRtYXRjaDAFAAAAAnR4AwMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAFT3JkZXIGAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNFeGNoYW5nZVRyYW5zYWN0aW9uBgkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABNUcmFuc2ZlclRyYW5zYWN0aW9uBAAAAAF0BQAAAAckbWF0Y2gwBwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXmM/K5z", "height": 3833971, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let lp_address_pubkey = base58'2oKshKbXJwo6oWfHpgCT31SbuB4Nm3DYeBm9PtHnzuxf'
5+
6+let masstransfer_whitelisted_address = addressFromPublicKey(lp_address_pubkey)
7+
8+let lp_depositor_address = base58'8nMKtAL4pKPzbBw3bpa3RUAmYujRSGJgyLuPASiwgkcx'
9+
10+let lp_whitelist_address = addressFromPublicKey(lp_depositor_address)
11+
12+@Callable(i)
13+func AddPoolLiquidity () = {
14+ let calleraddress = toBase58String(i.caller.bytes)
15+ let pmt = if ((size(i.payments) == 1))
16+ then i.payments[0]
17+ else throw("No payment attached, Please Attach only Whitelisted Tokens in payment[1].")
18+ let PreviousFundsAddedToPoolbyCompany = match getInteger(this, "Total_LP_Added") {
19+ case a: Int =>
20+ a
21+ case _ =>
22+ 0
23+ }
24+ let TotalFundsAddedToPoolbyCompany = (PreviousFundsAddedToPoolbyCompany + pmt.amount)
25+ let PreviousPoolLiquidity = match getInteger(this, "Total_Pool_Liquidity") {
26+ case a: Int =>
27+ a
28+ case _ =>
29+ 0
30+ }
31+ let TotalPoolLiquidity = (PreviousPoolLiquidity + pmt.amount)
32+ let PreviousLPDepositCounter = match getInteger(this, "LP_Deposit_Counter") {
33+ case a: Int =>
34+ a
35+ case _ =>
36+ 0
37+ }
38+ let TotalLPDepositCounter = (PreviousLPDepositCounter + 1)
39+ if ((i.caller != lp_whitelist_address))
40+ then throw((("This Address is not Authorized. Only " + toString(lp_whitelist_address)) + " is Authorized Address to Sign it."))
41+ else if (isDefined(pmt.assetId))
42+ then throw("Only WAVES is allowed to deposit at the moment")
43+ else [IntegerEntry("Total_Pool_Liquidity", TotalPoolLiquidity), IntegerEntry("LP_Deposit_Counter", TotalLPDepositCounter), IntegerEntry("Total_LP_Added", TotalFundsAddedToPoolbyCompany)]
44+ }
45+
46+
47+
48+@Callable(i)
49+func UpdateLPBalance (PaidMassTransferAmount) = {
50+ let read_account_balance = wavesBalance(this).regular
51+ let read_total_pool_liquidity = valueOrErrorMessage(getInteger(this, "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
52+ let received_order_amount = (read_account_balance - read_total_pool_liquidity)
53+ let updated_pool_balance = ((read_total_pool_liquidity - PaidMassTransferAmount) + received_order_amount)
54+ let PreviousMassTransferCounter = match getInteger(this, "Mass_Transfer_Counter") {
55+ case a: Int =>
56+ a
57+ case _ =>
58+ 0
59+ }
60+ let TotalMassTransferCounter = (PreviousMassTransferCounter + 1)
61+ let PreviousMassTransferSend = match getInteger(this, "Total_Mass_Transfer_Send") {
62+ case a: Int =>
63+ a
64+ case _ =>
65+ 0
66+ }
67+ let TotalMassTransferSend = (PreviousMassTransferSend + PaidMassTransferAmount)
68+ if ((i.caller != masstransfer_whitelisted_address))
69+ then throw((("This Address is not Authorized. Only " + toString(masstransfer_whitelisted_address)) + " is Authorized Address to Sign it."))
70+ else if ((PaidMassTransferAmount > read_total_pool_liquidity))
71+ then throw("Placed Mass Transfer Amount Size is more than Total Pool Liquidity.")
72+ else [IntegerEntry("Total_Pool_Liquidity", updated_pool_balance), IntegerEntry("Mass_Transfer_Counter", TotalMassTransferCounter), IntegerEntry("Total_Mass_Transfer_Send", TotalMassTransferSend), IntegerEntry((toString(TotalMassTransferCounter) + "_Mass_Transfer_Send"), PaidMassTransferAmount)]
73+ }
74+
75+
76+
77+@Callable(i)
78+func WithdrawLPBalance (WithdrawAmount) = {
79+ let read_total_pool_liquidity = valueOrErrorMessage(getInteger(this, "Total_Pool_Liquidity"), "No Initial Pool Liquidity was Found.")
80+ let updated_pool_balance = (read_total_pool_liquidity - WithdrawAmount)
81+ let PreviousLPWithdrawCounter = match getInteger(this, "LP_Withdraw_Counter") {
82+ case a: Int =>
83+ a
84+ case _ =>
85+ 0
86+ }
87+ let TotalLPWithdrawCounter = (PreviousLPWithdrawCounter + 1)
88+ let PreviousLPWithdraw = match getInteger(this, "Total_LP_Withdraw") {
89+ case a: Int =>
90+ a
91+ case _ =>
92+ 0
93+ }
94+ let TotalLPWithdraw = (PreviousLPWithdraw + WithdrawAmount)
95+ if ((i.caller != lp_whitelist_address))
96+ then throw((("This Address is not Authorized. Only " + toString(lp_whitelist_address)) + " is Authorized Address to Sign it."))
97+ else if ((WithdrawAmount > read_total_pool_liquidity))
98+ then throw("Placed Withdraw Amount Size is more than Total Pool Liquidity.")
99+ else [IntegerEntry("Total_Pool_Liquidity", updated_pool_balance), IntegerEntry("LP_Withdraw_Counter", TotalLPWithdrawCounter), IntegerEntry("Total_LP_Withdraw", TotalLPWithdraw), IntegerEntry((toString(TotalLPWithdrawCounter) + "_LP_Withdraw"), WithdrawAmount), ScriptTransfer(lp_whitelist_address, WithdrawAmount, unit)]
100+ }
101+
102+
103+@Verifier(tx)
104+func verify () = match tx {
105+ case t: Order|ExchangeTransaction|TransferTransaction =>
106+ false
107+ case _ =>
108+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
109+}
110+

github/deemru/w8io/3ef1775 
22.54 ms