tx · EBuUVGfgwytQdJ4X5KnaAodkQ94fU1q4J554Fr5XrSGg

3Myb6G8DkdBb8YcZzhrky65HrmiNuac3kvS:  -0.00200000 Waves

2023.05.17 13:14 [2581821] smart account 3Myb6G8DkdBb8YcZzhrky65HrmiNuac3kvS > SELF 0.00000000 Waves

{ "type": 13, "id": "EBuUVGfgwytQdJ4X5KnaAodkQ94fU1q4J554Fr5XrSGg", "fee": 200000, "feeAssetId": null, "timestamp": 1684318537307, "version": 2, "chainId": 84, "sender": "3Myb6G8DkdBb8YcZzhrky65HrmiNuac3kvS", "senderPublicKey": "Ab4L9nu8oFkaz3goia9d2YmgZZCZciUsmuKTWq8rMYN4", "proofs": [ "3PnRxJt3GGa2rSxwepWRKWYTeDvKnDU6cKRwQbyxvHYijMvK4467XRcYwEZ62kPif9qCfZpFuevNZbrzYJjtY5VL" ], "script": "base64:BgIECAISAAoAA1NFUAICX18ABU1VTFQ2AMCEPQAFTVVMVDgAgMLXLwAKV0FWRVNJRFNUUgIFV0FWRVMAB1dBVkVTSUQJANkEAQUKV0FWRVNJRFNUUgAIWFROSURTVFICLDI1RkVxRWpSa3FLNnlDa2lUN0x6NlNBWXo3Z1VGQ3R4ZkNDaG5yVkZENUFUAAhORVVUUklOTwIjM016YngzNEV4NXJSYm4zOXZVSHg5a2l3aDNubmVGOFM1d2UAE1dYX1NXQVBfQUREUkVTU19TVFICIzNONkxIamZHYjZGZ2N5N1lzVmNOeEd5UFRqNDlYYlFBaWpxAA9XWF9TV0FQX0FERFJFU1MJARFAZXh0ck5hdGl2ZSgxMDYyKQEFE1dYX1NXQVBfQUREUkVTU19TVFIBFmtleU1pbkRpc3RyaWJ1dGVBbW91bnQAAh4lcyVzX19jZmdfX21pbkRpc3RyaWJ1dGVBbW91bnQBAWkBCmJ1eUJhY2tYdG4ABApidXlCYWNrQW10CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARZrZXlNaW5EaXN0cmlidXRlQW1vdW50AAkAaAIADQUFTVVMVDgDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAiBleGFjdCAxIHBheW1lbnQgbXVzdCBiZSBhdHRhY2hlZAMJAQIhPQIIBQFpBmNhbGxlcggFAWkMb3JpZ2luQ2FsbGVyCQACAQIiZGFwcCB0byBkYXBwIGNhbGxzIGFyZSBub3QgYWxsb3dlZAQGZmVlQW10CAUBaQNmZWUECmZlZUFzc2V0SWQJAQt2YWx1ZU9yRWxzZQIIBQFpCmZlZUFzc2V0SWQFB1dBVkVTSUQECmFsbG93ZWRGZWUJAGkCCQBoAgAFBQVNVUxUOADoBwQMY2FsbGVyUmV3YXJkCQBoAgACBQphbGxvd2VkRmVlBBdtaW5SZXF1aXJlZFdhdmVzQmFsYW5jZQkAZAIFCmJ1eUJhY2tBbXQFDGNhbGxlclJld2FyZAMJAQIhPQIFCmZlZUFzc2V0SWQFB1dBVkVTSUQJAAIBAh5vbmx5IFdhdmVzIGNhbiBiZSB1c2VkIGluIGZlZXMDCQECIT0CBQZmZWVBbXQFCmFsbG93ZWRGZWUJAAIBAiBmZWUgYW1vdW50IGNvdWxkbid0IGV4Y2VlZCAwLjAwNQMJAGYCBRdtaW5SZXF1aXJlZFdhdmVzQmFsYW5jZQgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAAIBCQCsAgICHndhdmVsZXRzIGJhbGFuY2UgaXMgbGVzcyB0aGVuIAkApAMBBRdtaW5SZXF1aXJlZFdhdmVzQmFsYW5jZQQKc3dhcFJlc3VsdAkA/AcEBQ9XWF9TV0FQX0FERFJFU1MCBHN3YXAJAMwIAgABCQDMCAIFCFhUTklEU1RSCQDMCAIFCE5FVVRSSU5PBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBHVuaXQFCmJ1eUJhY2tBbXQFA25pbAMJAAACBQpzd2FwUmVzdWx0BQpzd2FwUmVzdWx0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUMY2FsbGVyUmV3YXJkBQR1bml0BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AczSd8w==", "height": 2581821, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4dApoDbCd5w35jBWoMz1GnakH7iLHP24CkAomndkYNeS Next: 6Gv8G5ZeVt4oCtr73CMW686siYUuSuJm6Pr1hYipbEHo Diff:
OldNewDifferences
2525 @Callable(k)
2626 func buyBackXtn () = {
2727 let l = valueOrElse(getInteger(this, j()), (13 * c))
28- if ((size(k.payments) != 1))
28+ if ((size(k.payments) != 0))
2929 then throw("exact 1 payment must be attached")
3030 else if ((k.caller != k.originCaller))
3131 then throw("dapp to dapp calls are not allowed")
3232 else {
33- let m = k.payments[0]
34- let n = m.amount
35- let o = valueOrElse(m.assetId, e)
36- let p = k.fee
37- let q = valueOrElse(k.feeAssetId, e)
38- let r = ((5 * c) / 1000)
39- let s = (2 * r)
40- if ((n != l))
41- then throw((("attached payment must be exact " + toString(l)) + " Wavelets"))
42- else if ((o != e))
43- then throw("only Waves can be used in payment")
44- else if ((q != e))
45- then throw("only Waves can be used in fees")
46- else if ((p != r))
47- then throw("fee amount couldn't exceed 0.005")
48- else {
49- let t = (n - s)
50- let u = invoke(i, "swap", [1, f, g], [AttachedPayment(unit, t)])
51- if ((u == u))
52- then [ScriptTransfer(k.caller, s, unit)]
53- else throw("Strict value is not equal to itself.")
54- }
33+ let m = k.fee
34+ let n = valueOrElse(k.feeAssetId, e)
35+ let o = ((5 * c) / 1000)
36+ let p = (2 * o)
37+ let q = (l + p)
38+ if ((n != e))
39+ then throw("only Waves can be used in fees")
40+ else if ((m != o))
41+ then throw("fee amount couldn't exceed 0.005")
42+ else if ((q > wavesBalance(this).available))
43+ then throw(("wavelets balance is less then " + toString(q)))
44+ else {
45+ let r = invoke(i, "swap", [1, f, g], [AttachedPayment(unit, l)])
46+ if ((r == r))
47+ then [ScriptTransfer(k.caller, p, unit)]
48+ else throw("Strict value is not equal to itself.")
49+ }
5550 }
5651 }
5752
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = 1000000
77
88 let c = 100000000
99
1010 let d = "WAVES"
1111
1212 let e = fromBase58String(d)
1313
1414 let f = "25FEqEjRkqK6yCkiT7Lz6SAYz7gUFCtxfCChnrVFD5AT"
1515
1616 let g = "3Mzbx34Ex5rRbn39vUHx9kiwh3nneF8S5we"
1717
1818 let h = "3N6LHjfGb6Fgcy7YsVcNxGyPTj49XbQAijq"
1919
2020 let i = addressFromStringValue(h)
2121
2222 func j () = "%s%s__cfg__minDistributeAmount"
2323
2424
2525 @Callable(k)
2626 func buyBackXtn () = {
2727 let l = valueOrElse(getInteger(this, j()), (13 * c))
28- if ((size(k.payments) != 1))
28+ if ((size(k.payments) != 0))
2929 then throw("exact 1 payment must be attached")
3030 else if ((k.caller != k.originCaller))
3131 then throw("dapp to dapp calls are not allowed")
3232 else {
33- let m = k.payments[0]
34- let n = m.amount
35- let o = valueOrElse(m.assetId, e)
36- let p = k.fee
37- let q = valueOrElse(k.feeAssetId, e)
38- let r = ((5 * c) / 1000)
39- let s = (2 * r)
40- if ((n != l))
41- then throw((("attached payment must be exact " + toString(l)) + " Wavelets"))
42- else if ((o != e))
43- then throw("only Waves can be used in payment")
44- else if ((q != e))
45- then throw("only Waves can be used in fees")
46- else if ((p != r))
47- then throw("fee amount couldn't exceed 0.005")
48- else {
49- let t = (n - s)
50- let u = invoke(i, "swap", [1, f, g], [AttachedPayment(unit, t)])
51- if ((u == u))
52- then [ScriptTransfer(k.caller, s, unit)]
53- else throw("Strict value is not equal to itself.")
54- }
33+ let m = k.fee
34+ let n = valueOrElse(k.feeAssetId, e)
35+ let o = ((5 * c) / 1000)
36+ let p = (2 * o)
37+ let q = (l + p)
38+ if ((n != e))
39+ then throw("only Waves can be used in fees")
40+ else if ((m != o))
41+ then throw("fee amount couldn't exceed 0.005")
42+ else if ((q > wavesBalance(this).available))
43+ then throw(("wavelets balance is less then " + toString(q)))
44+ else {
45+ let r = invoke(i, "swap", [1, f, g], [AttachedPayment(unit, l)])
46+ if ((r == r))
47+ then [ScriptTransfer(k.caller, p, unit)]
48+ else throw("Strict value is not equal to itself.")
49+ }
5550 }
5651 }
5752
5853

github/deemru/w8io/169f3d6 
38.10 ms