tx · FHYFLmkHqRqTdg8UpWLdYW8e1enY5wE9muSELuEjBNmP

3MqsDXvFU9WM8hEzCcrw2aVGtVimCgbNeXD:  -0.00700000 Waves

2024.04.24 10:14 [3076605] smart account 3MqsDXvFU9WM8hEzCcrw2aVGtVimCgbNeXD > SELF 0.00000000 Waves

{ "type": 13, "id": "FHYFLmkHqRqTdg8UpWLdYW8e1enY5wE9muSELuEjBNmP", "fee": 700000, "feeAssetId": null, "timestamp": 1713942938864, "version": 1, "sender": "3MqsDXvFU9WM8hEzCcrw2aVGtVimCgbNeXD", "senderPublicKey": "4dNR2Up6mpwUEcy9WQuE2wAzR7HRURa6Pk9jrFKgcHqB", "proofs": [ "2qn9qgUPbdUzTHvjCLQybLr4CwZHDuRz8yenShgnk9gvTobTmytc8K3gvTLSk8kf8X5YbZ7m8xvkmwg9uGX92iCW" ], "script": "base64:BgISCAISBAoCCAQSAwoBCBIDCgEIDwAQY29udHJhY3RGaWxlbmFtZQIOZm9yY2VzdG9wLnJpZGUAA1NFUAICX18BB3dyYXBFcnIBA21zZwkAuQkCCQDMCAIFEGNvbnRyYWN0RmlsZW5hbWUJAMwIAgICOiAJAMwIAgUDbXNnBQNuaWwCAAEIdGhyb3dFcnIBA21zZwkAAgEJAQd3cmFwRXJyAQUDbXNnARZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzAAkAuQkCCQDMCAICAiVzCQDMCAICE21hbmFnZXJWYXVsdEFkZHJlc3MFA25pbAUDU0VQARNrZXlNYW5hZ2VyUHVibGljS2V5AAkAuQkCCQDMCAICAiVzCQDMCAICEG1hbmFnZXJQdWJsaWNLZXkFA25pbAUDU0VQARFrZXlQZXJtaXNzaW9uTGlzdAAJALkJAgkAzAgCAgIlcwkAzAgCAhNmb3JjZVN0b3BQZXJtaXNzaW9uBQNuaWwFA1NFUAEMa2V5Rm9yY2VTdG9wAQdhZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAghkaXNhYmxlZAkAzAgCBQdhZGRyZXNzBQNuaWwFA1NFUAAOcGVybWlzc2lvbkxpc3QJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQERa2V5UGVybWlzc2lvbkxpc3QAAgAFA1NFUAAVcGVybWlzc2lvbkRlbmllZEVycm9yCQEIdGhyb3dFcnIBAhFQZXJtaXNzaW9uIGRlbmllZAEcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcwAEByRtYXRjaDAJAKIIAQkBFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBcwUEdGhpcwEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAEE21hbmFnZXJWYXVsdEFkZHJlc3MJARxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzAAQHJG1hdGNoMAkAnQgCBRNtYW5hZ2VyVmF1bHRBZGRyZXNzCQETa2V5TWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQhtdXN0VGhpcwEBaQMJAAACCAUBaQZjYWxsZXIFBHRoaXMGBRVwZXJtaXNzaW9uRGVuaWVkRXJyb3IBC211c3RNYW5hZ2VyAQFpBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDADCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawYFFXBlcm1pc3Npb25EZW5pZWRFcnJvcgMJAAECBQckbWF0Y2gwAgRVbml0CQEIbXVzdFRoaXMBBQFpCQACAQILTWF0Y2ggZXJyb3IBDmlzVmFsaWRBZGRyZXNzAQdhZGRyZXNzBAckbWF0Y2gwCQCmCAEFB2FkZHJlc3MDCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQBYQUHJG1hdGNoMAYHAwFpARFmb3JjZVN0b3BDb250cmFjdAIHYWRkcmVzcwRzdG9wBBNjYWxsZXJBZGRyZXNzU3RyaW5nCQClCAEIBQFpBmNhbGxlcgQFY2hlY2sJAMwIAgMJAQ9jb250YWluc0VsZW1lbnQCBQ5wZXJtaXNzaW9uTGlzdAUTY2FsbGVyQWRkcmVzc1N0cmluZwYJAQttdXN0TWFuYWdlcgEFAWkJAMwIAgMJAQ5pc1ZhbGlkQWRkcmVzcwEFB2FkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIBWwkAzAgCBQdhZGRyZXNzCQDMCAICEF0gbm90IGFuIGFkZHJlc3MFA25pbAIABQNuaWwDCQAAAgUFY2hlY2sFBWNoZWNrCQDMCAIJAQxCb29sZWFuRW50cnkCCQEMa2V5Rm9yY2VTdG9wAQUHYWRkcmVzcwUEc3RvcAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBDWFkZFBlcm1pc3Npb24BB2FkZHJlc3MEBWNoZWNrCQDMCAIJAQttdXN0TWFuYWdlcgEFAWkJAMwIAgMJAQ5pc1ZhbGlkQWRkcmVzcwEFB2FkZHJlc3MGCQEIdGhyb3dFcnIBCQC5CQIJAMwIAgIBWwkAzAgCBQdhZGRyZXNzCQDMCAICEF0gbm90IGFuIGFkZHJlc3MFA25pbAIACQDMCAIDCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCBQ5wZXJtaXNzaW9uTGlzdAUHYWRkcmVzcwYJAQh0aHJvd0VycgECGmFscmVhZHkgaW4gcGVybWlzc2lvbiBsaXN0BQNuaWwDCQAAAgUFY2hlY2sFBWNoZWNrBAduZXdMaXN0CQDNCAIFDnBlcm1pc3Npb25MaXN0BQdhZGRyZXNzBA1uZXdMaXN0U3RyaW5nCQC5CQIFB25ld0xpc3QFA1NFUAkAzAgCCQELU3RyaW5nRW50cnkCCQERa2V5UGVybWlzc2lvbkxpc3QABQ1uZXdMaXN0U3RyaW5nBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEQcmVtb3ZlUGVybWlzc2lvbgEHYWRkcmVzcwQFY2hlY2sJAMwIAgkBC211c3RNYW5hZ2VyAQUBaQkAzAgCAwkBDmlzVmFsaWRBZGRyZXNzAQUHYWRkcmVzcwYJAQh0aHJvd0VycgEJALkJAgkAzAgCAgFbCQDMCAIFB2FkZHJlc3MJAMwIAgIQXSBub3QgYW4gYWRkcmVzcwUDbmlsAgAJAMwIAgMJAQ9jb250YWluc0VsZW1lbnQCBQ5wZXJtaXNzaW9uTGlzdAUHYWRkcmVzcwYJAQh0aHJvd0VycgECFm5vdCBpbiBwZXJtaXNzaW9uIGxpc3QFA25pbAMJAAACBQVjaGVjawUFY2hlY2sEB3JfaW5kZXgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAzwgCBQ5wZXJtaXNzaW9uTGlzdAUHYWRkcmVzcwkArAICBQdhZGRyZXNzCQEHd3JhcEVycgECC25vdCBpbiBsaXN0BAduZXdMaXN0CQDRCAIFDnBlcm1pc3Npb25MaXN0BQdyX2luZGV4BA1uZXdMaXN0U3RyaW5nCQC5CQIFB25ld0xpc3QFA1NFUAkAzAgCCQELU3RyaW5nRW50cnkCCQERa2V5UGVybWlzc2lvbkxpc3QABQ1uZXdMaXN0U3RyaW5nBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABA90YXJnZXRQdWJsaWNLZXkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAgFAnR4D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQ90YXJnZXRQdWJsaWNLZXnLeqa2", "chainId": 84, "height": 3076605, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: EJ2n5W4ojcrQFpNA5Tk8LhNzb14NWrMdYwfT4r1nLX2H Next: none Diff:
OldNewDifferences
9090 then true
9191 else t(s), if (v(j))
9292 then true
93- else (("[" + j) + e("] not an address"))]
93+ else e(makeString(["[", j, "] not an address"], ""))]
9494 if ((z == z))
9595 then [BooleanEntry(i(j), x)]
9696 else throw("Strict value is not equal to itself.")
102102 func addPermission (j) = {
103103 let z = [t(s), if (v(j))
104104 then true
105- else (("[" + j) + e("] not an address")), if (!(containsElement(k, j)))
105+ else e(makeString(["[", j, "] not an address"], "")), if (!(containsElement(k, j)))
106106 then true
107107 else e("already in permission list")]
108108 if ((z == z))
120120 func removePermission (j) = {
121121 let z = [t(s), if (v(j))
122122 then true
123- else (("[" + j) + e("] not an address")), if (containsElement(k, j))
123+ else e(makeString(["[", j, "] not an address"], "")), if (containsElement(k, j))
124124 then true
125125 else e("not in permission list")]
126126 if ((z == z))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "forcestop.ride"
55
66 let b = "__"
77
88 func c (d) = makeString([a, ": ", d], "")
99
1010
1111 func e (d) = throw(c(d))
1212
1313
1414 func f () = makeString(["%s", "managerVaultAddress"], b)
1515
1616
1717 func g () = makeString(["%s", "managerPublicKey"], b)
1818
1919
2020 func h () = makeString(["%s", "forceStopPermission"], b)
2121
2222
2323 func i (j) = makeString(["%s%s", "disabled", j], b)
2424
2525
2626 let k = split(valueOrElse(getString(this, h()), ""), b)
2727
2828 let l = e("Permission denied")
2929
3030 func m () = {
3131 let n = getString(f())
3232 if ($isInstanceOf(n, "String"))
3333 then {
3434 let o = n
3535 addressFromStringValue(o)
3636 }
3737 else this
3838 }
3939
4040
4141 func p () = {
4242 let q = m()
4343 let n = getString(q, g())
4444 if ($isInstanceOf(n, "String"))
4545 then {
4646 let o = n
4747 fromBase58String(o)
4848 }
4949 else if ($isInstanceOf(n, "Unit"))
5050 then unit
5151 else throw("Match error")
5252 }
5353
5454
5555 func r (s) = if ((s.caller == this))
5656 then true
5757 else l
5858
5959
6060 func t (s) = {
6161 let n = p()
6262 if ($isInstanceOf(n, "ByteVector"))
6363 then {
6464 let u = n
6565 if ((s.callerPublicKey == u))
6666 then true
6767 else l
6868 }
6969 else if ($isInstanceOf(n, "Unit"))
7070 then r(s)
7171 else throw("Match error")
7272 }
7373
7474
7575 func v (j) = {
7676 let n = addressFromString(j)
7777 if ($isInstanceOf(n, "Address"))
7878 then {
7979 let w = n
8080 true
8181 }
8282 else false
8383 }
8484
8585
8686 @Callable(s)
8787 func forceStopContract (j,x) = {
8888 let y = toString(s.caller)
8989 let z = [if (containsElement(k, y))
9090 then true
9191 else t(s), if (v(j))
9292 then true
93- else (("[" + j) + e("] not an address"))]
93+ else e(makeString(["[", j, "] not an address"], ""))]
9494 if ((z == z))
9595 then [BooleanEntry(i(j), x)]
9696 else throw("Strict value is not equal to itself.")
9797 }
9898
9999
100100
101101 @Callable(s)
102102 func addPermission (j) = {
103103 let z = [t(s), if (v(j))
104104 then true
105- else (("[" + j) + e("] not an address")), if (!(containsElement(k, j)))
105+ else e(makeString(["[", j, "] not an address"], "")), if (!(containsElement(k, j)))
106106 then true
107107 else e("already in permission list")]
108108 if ((z == z))
109109 then {
110110 let A = (k :+ j)
111111 let B = makeString(A, b)
112112 [StringEntry(h(), B)]
113113 }
114114 else throw("Strict value is not equal to itself.")
115115 }
116116
117117
118118
119119 @Callable(s)
120120 func removePermission (j) = {
121121 let z = [t(s), if (v(j))
122122 then true
123- else (("[" + j) + e("] not an address")), if (containsElement(k, j))
123+ else e(makeString(["[", j, "] not an address"], "")), if (containsElement(k, j))
124124 then true
125125 else e("not in permission list")]
126126 if ((z == z))
127127 then {
128128 let C = valueOrErrorMessage(indexOf(k, j), (j + c("not in list")))
129129 let A = removeByIndex(k, C)
130130 let B = makeString(A, b)
131131 [StringEntry(h(), B)]
132132 }
133133 else throw("Strict value is not equal to itself.")
134134 }
135135
136136
137137 @Verifier(D)
138138 func E () = {
139139 let F = {
140140 let n = p()
141141 if ($isInstanceOf(n, "ByteVector"))
142142 then {
143143 let u = n
144144 u
145145 }
146146 else if ($isInstanceOf(n, "Unit"))
147147 then D.senderPublicKey
148148 else throw("Match error")
149149 }
150150 sigVerify(D.bodyBytes, D.proofs[0], F)
151151 }
152152

github/deemru/w8io/3ef1775 
33.52 ms