tx · 4eTVSEQr4x5GWZHUayDSgjTExu1tv6tK6Q89BeaK6tgw

3PHTVMSCV4KQaeBEXWAwpCg9cxt2CqC6HHb:  -0.01000000 Waves

2023.01.08 16:51 [3461555] smart account 3PHTVMSCV4KQaeBEXWAwpCg9cxt2CqC6HHb > SELF 0.00000000 Waves

{ "type": 13, "id": "4eTVSEQr4x5GWZHUayDSgjTExu1tv6tK6Q89BeaK6tgw", "fee": 1000000, "feeAssetId": null, "timestamp": 1673185928109, "version": 2, "chainId": 87, "sender": "3PHTVMSCV4KQaeBEXWAwpCg9cxt2CqC6HHb", "senderPublicKey": "CgEn2SEp4TtgTwCfnVwdJ7n3buCtzo3574yGFK2YyZER", "proofs": [ "PvSUzh1gugVPs2N9DWborjtL7McpPJAGbPMWdwgGrmH3HCtYPGouTHf2q2KsZPbEhF3joKs4Y3TA2TrcsBrXK3D" ], "script": "base64:AAIFAAAAAAAAAAQIAhIAAAAAAwAAAAAGbnNidElkAQAAACBV7sO+qgvwUOhxyBuqbnCepLHI/kouucHxzMVrD3iXSwAAAAAHc25zYnRJZAEAAAAgdfaQ6PokFDUvtacC3xkI3XyRnV2+gxjMFR5nLUSnXq0AAAAACWlzU3RvcHBlZAcAAAABAAAAAWkBAAAACXN0YWtlTlNCVAAAAAAEAAAAA3BtdAkBAAAABXZhbHVlAAAAAQkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAQAAAAGYW1vdW50CAUAAAADcG10AAAABmFtb3VudAMJAQAAAAIhPQAAAAIIBQAAAANwbXQAAAAHYXNzZXRJZAUAAAAGbnNidElkCQAAAgAAAAECAAAAFmF0dGFjaCBOU0JUIHRva2VuIG9ubHkDBQAAAAlpc1N0b3BwZWQJAAACAAAAAQIAAAAZc21hcnQgY29udHJhY3QgaXMgb24gbG9jawQAAAAHbG9ja0ludgkAA/wAAAAECQEAAAAHQWRkcmVzcwAAAAEBAAAAGgFXTNRE1ylt8NtnDURZsVRTEcoA7+Dh6BJsAgAAAAVzdGFrZQUAAAADbmlsCQAETAAAAAIFAAAAA3BtdAUAAAADbmlsAwkAAAAAAAACBQAAAAdsb2NrSW52BQAAAAdsb2NrSW52BAAAAApzbnNidElzc3VlCQEAAAAHUmVpc3N1ZQAAAAMFAAAAB3Nuc2J0SWQFAAAABmFtb3VudAYJAARMAAAAAgUAAAAKc25zYnRJc3N1ZQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAABmFtb3VudAUAAAAHc25zYnRJZAUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAAJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAACAUAAAACdHgAAAAPc2VuZGVyUHVibGljS2V5vP6cnA==", "height": 3461555, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3Hw4kXjawBjCFgt2fXqzSD4oZSU8i97aCChZnDrQv4Qe Next: BqTkdX7UUbSrxYxGo9AiNLS5M22qB9qDJ36Z1CyG1JwE Diff:
OldNewDifferences
55
66 let snsbtId = base58'8wUmN9Y15f3JR4KZfE81XLXpkdgwnqoBNG6NmocZpKQx'
77
8-let usdnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
9-
108 let isStopped = false
11-
12-let SwapFee = (50 * 100000000)
13-
14-func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
15- then unit
16- else fromBase58String(assetIdStr)
17-
18-
19-func tryGetInteger (key) = match getInteger(this, key) {
20- case b: Int =>
21- b
22- case _ =>
23- 0
24-}
25-
26-
27-func tryGetString (key) = match getString(this, key) {
28- case b: String =>
29- b
30- case _ =>
31- ""
32-}
33-
34-
35-func asSwapParamsSTRUCT (val) = match val {
36- case struct: (Int, Int, Int, Int, Int) =>
37- struct
38- case _ =>
39- throw("fail to cast into Int")
40-}
41-
429
4310 @Callable(i)
4411 func stakeNSBT () = {
6027 }
6128
6229
63-
64-@Callable(i)
65-func initSwapToWaves () = {
66- let address = toString(i.caller)
67- if ((tryGetString("swap_author") != ""))
68- then throw("previous swap needs to be finished first")
69- else if ((address != "3P7Ro7FSbXSSBTtWR4AHxXjFjMkGireVdsv"))
70- then throw("you have no access to this method")
71- else if ((i.payments[0].assetId != usdnId))
72- then throw("you need to attach usdn payment")
73- else {
74- let inv = invoke(Address(base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo'), "swapWavesToNeutrino", nil, [i.payments[0]])
75- if ((inv == inv))
76- then [StringEntry("swap_author", address), IntegerEntry("swap_wavesSpent", i.payments[0].amount), IntegerEntry("swap_usdnBalance0", assetBalance(this, usdnId)), IntegerEntry("swap_wavesBalance0", wavesBalance(this).available)]
77- else throw("Strict value is not equal to itself.")
78- }
79- }
80-
81-
82-
83-@Callable(i)
84-func finishSwap () = {
85- let wavesBalance0 = tryGetInteger("swap_wavesBalance0")
86- let usdnBalance0 = tryGetInteger("swap_usdnBalance0")
87- let wavesBalance1 = wavesBalance(this).available
88- if ((wavesBalance1 == wavesBalance1))
89- then {
90- let usdnBalance1 = assetBalance(this, usdnId)
91- if ((usdnBalance1 == usdnBalance1))
92- then {
93- let deltaWaves = (wavesBalance1 - wavesBalance0)
94- let usdnSpent = tryGetInteger("swap_usdnSpent")
95- if ((tryGetString("swap_author") == ""))
96- then throw("there is no first in progress")
97- else if ((SwapFee > deltaWaves))
98- then throw("swap is not completed yet")
99- else {
100- let deltaUsdn = (usdnBalance1 - usdnBalance0)
101- if ((0 > deltaUsdn))
102- then throw("operation leads to negative account USDN saldo")
103- else [ScriptTransfer(addressFromStringValue(tryGetString("swap_author")), (deltaWaves - SwapFee), unit), IntegerEntry("stats_swapsProfit", (tryGetInteger("stats_swapsProfitWaves") + SwapFee)), DeleteEntry("swap_author"), DeleteEntry("swap_usdnSpent"), DeleteEntry("swap_usdnBalance0"), DeleteEntry("swap_wavesBalance0")]
104- }
105- }
106- else throw("Strict value is not equal to itself.")
107- }
108- else throw("Strict value is not equal to itself.")
109- }
110-
111-
11230 @Verifier(tx)
11331 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
11432
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let nsbtId = base58'6nSpVyNH7yM69eg446wrQR94ipbbcmZMU1ENPwanC97g'
55
66 let snsbtId = base58'8wUmN9Y15f3JR4KZfE81XLXpkdgwnqoBNG6NmocZpKQx'
77
8-let usdnId = base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
9-
108 let isStopped = false
11-
12-let SwapFee = (50 * 100000000)
13-
14-func getAssetBytes (assetIdStr) = if ((assetIdStr == "WAVES"))
15- then unit
16- else fromBase58String(assetIdStr)
17-
18-
19-func tryGetInteger (key) = match getInteger(this, key) {
20- case b: Int =>
21- b
22- case _ =>
23- 0
24-}
25-
26-
27-func tryGetString (key) = match getString(this, key) {
28- case b: String =>
29- b
30- case _ =>
31- ""
32-}
33-
34-
35-func asSwapParamsSTRUCT (val) = match val {
36- case struct: (Int, Int, Int, Int, Int) =>
37- struct
38- case _ =>
39- throw("fail to cast into Int")
40-}
41-
429
4310 @Callable(i)
4411 func stakeNSBT () = {
4512 let pmt = value(i.payments[0])
4613 let amount = pmt.amount
4714 if ((pmt.assetId != nsbtId))
4815 then throw("attach NSBT token only")
4916 else if (isStopped)
5017 then throw("smart contract is on lock")
5118 else {
5219 let lockInv = invoke(Address(base58'3P8w8NXZUtYdCA13tHbDY5sW4mC27ZFJgG3'), "stake", nil, [pmt])
5320 if ((lockInv == lockInv))
5421 then {
5522 let snsbtIssue = Reissue(snsbtId, amount, true)
5623 [snsbtIssue, ScriptTransfer(i.caller, amount, snsbtId)]
5724 }
5825 else throw("Strict value is not equal to itself.")
5926 }
6027 }
6128
6229
63-
64-@Callable(i)
65-func initSwapToWaves () = {
66- let address = toString(i.caller)
67- if ((tryGetString("swap_author") != ""))
68- then throw("previous swap needs to be finished first")
69- else if ((address != "3P7Ro7FSbXSSBTtWR4AHxXjFjMkGireVdsv"))
70- then throw("you have no access to this method")
71- else if ((i.payments[0].assetId != usdnId))
72- then throw("you need to attach usdn payment")
73- else {
74- let inv = invoke(Address(base58'3PC9BfRwJWWiw9AREE2B3eWzCks3CYtg4yo'), "swapWavesToNeutrino", nil, [i.payments[0]])
75- if ((inv == inv))
76- then [StringEntry("swap_author", address), IntegerEntry("swap_wavesSpent", i.payments[0].amount), IntegerEntry("swap_usdnBalance0", assetBalance(this, usdnId)), IntegerEntry("swap_wavesBalance0", wavesBalance(this).available)]
77- else throw("Strict value is not equal to itself.")
78- }
79- }
80-
81-
82-
83-@Callable(i)
84-func finishSwap () = {
85- let wavesBalance0 = tryGetInteger("swap_wavesBalance0")
86- let usdnBalance0 = tryGetInteger("swap_usdnBalance0")
87- let wavesBalance1 = wavesBalance(this).available
88- if ((wavesBalance1 == wavesBalance1))
89- then {
90- let usdnBalance1 = assetBalance(this, usdnId)
91- if ((usdnBalance1 == usdnBalance1))
92- then {
93- let deltaWaves = (wavesBalance1 - wavesBalance0)
94- let usdnSpent = tryGetInteger("swap_usdnSpent")
95- if ((tryGetString("swap_author") == ""))
96- then throw("there is no first in progress")
97- else if ((SwapFee > deltaWaves))
98- then throw("swap is not completed yet")
99- else {
100- let deltaUsdn = (usdnBalance1 - usdnBalance0)
101- if ((0 > deltaUsdn))
102- then throw("operation leads to negative account USDN saldo")
103- else [ScriptTransfer(addressFromStringValue(tryGetString("swap_author")), (deltaWaves - SwapFee), unit), IntegerEntry("stats_swapsProfit", (tryGetInteger("stats_swapsProfitWaves") + SwapFee)), DeleteEntry("swap_author"), DeleteEntry("swap_usdnSpent"), DeleteEntry("swap_usdnBalance0"), DeleteEntry("swap_wavesBalance0")]
104- }
105- }
106- else throw("Strict value is not equal to itself.")
107- }
108- else throw("Strict value is not equal to itself.")
109- }
110-
111-
11230 @Verifier(tx)
11331 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
11432

github/deemru/w8io/3ef1775 
36.37 ms