tx · EJ2n5W4ojcrQFpNA5Tk8LhNzb14NWrMdYwfT4r1nLX2H

3MqsDXvFU9WM8hEzCcrw2aVGtVimCgbNeXD:  -0.00700000 Waves

2024.04.24 10:13 [3076604] smart account 3MqsDXvFU9WM8hEzCcrw2aVGtVimCgbNeXD > SELF 0.00000000 Waves

{ "type": 13, "id": "EJ2n5W4ojcrQFpNA5Tk8LhNzb14NWrMdYwfT4r1nLX2H", "fee": 700000, "feeAssetId": null, "timestamp": 1713942817266, "version": 1, "sender": "3MqsDXvFU9WM8hEzCcrw2aVGtVimCgbNeXD", "senderPublicKey": "4dNR2Up6mpwUEcy9WQuE2wAzR7HRURa6Pk9jrFKgcHqB", "proofs": [ "3XUH8GxRtDeNAmeeW3JcaK4PYCaRr9cP7ZqGvqCbkhYekKKHb5wQe8h8nkycao2tpfcETjLvkLAgTbSB3uMwi7Bk" ], "script": "base64:BgISCAISBAoCCAQSAwoBCBIDCgEIDwAQY29udHJhY3RGaWxlbmFtZQIOZm9yY2VzdG9wLnJpZGUAA1NFUAICX18BB3dyYXBFcnIBA21zZwkAuQkCCQDMCAIFEGNvbnRyYWN0RmlsZW5hbWUJAMwIAgICOiAJAMwIAgUDbXNnBQNuaWwCAAEIdGhyb3dFcnIBA21zZwkAAgEJAQd3cmFwRXJyAQUDbXNnARZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzAAkAuQkCCQDMCAICAiVzCQDMCAICE21hbmFnZXJWYXVsdEFkZHJlc3MFA25pbAUDU0VQARNrZXlNYW5hZ2VyUHVibGljS2V5AAkAuQkCCQDMCAICAiVzCQDMCAICEG1hbmFnZXJQdWJsaWNLZXkFA25pbAUDU0VQARFrZXlQZXJtaXNzaW9uTGlzdAAJALkJAgkAzAgCAgIlcwkAzAgCAhNmb3JjZVN0b3BQZXJtaXNzaW9uBQNuaWwFA1NFUAEMa2V5Rm9yY2VTdG9wAQdhZGRyZXNzCQC5CQIJAMwIAgIEJXMlcwkAzAgCAghkaXNhYmxlZAkAzAgCBQdhZGRyZXNzBQNuaWwFA1NFUAAOcGVybWlzc2lvbkxpc3QJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQERa2V5UGVybWlzc2lvbkxpc3QAAgAFA1NFUAAVcGVybWlzc2lvbkRlbmllZEVycm9yCQEIdGhyb3dFcnIBAhFQZXJtaXNzaW9uIGRlbmllZAEcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcwAEByRtYXRjaDAJAKIIAQkBFmtleU1hbmFnZXJWYXVsdEFkZHJlc3MAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBcwUEdGhpcwEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAAEE21hbmFnZXJWYXVsdEFkZHJlc3MJARxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzAAQHJG1hdGNoMAkAnQgCBRNtYW5hZ2VyVmF1bHRBZGRyZXNzCQETa2V5TWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQhtdXN0VGhpcwEBaQMJAAACCAUBaQZjYWxsZXIFBHRoaXMGBRVwZXJtaXNzaW9uRGVuaWVkRXJyb3IBC211c3RNYW5hZ2VyAQFpBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDADCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawYFFXBlcm1pc3Npb25EZW5pZWRFcnJvcgMJAAECBQckbWF0Y2gwAgRVbml0CQEIbXVzdFRoaXMBBQFpCQACAQILTWF0Y2ggZXJyb3IBDmlzVmFsaWRBZGRyZXNzAQdhZGRyZXNzBAckbWF0Y2gwCQCmCAEFB2FkZHJlc3MDCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQBYQUHJG1hdGNoMAYHAwFpARFmb3JjZVN0b3BDb250cmFjdAIHYWRkcmVzcwRzdG9wBBNjYWxsZXJBZGRyZXNzU3RyaW5nCQClCAEIBQFpBmNhbGxlcgQFY2hlY2sJAMwIAgMJAQ9jb250YWluc0VsZW1lbnQCBQ5wZXJtaXNzaW9uTGlzdAUTY2FsbGVyQWRkcmVzc1N0cmluZwYJAQttdXN0TWFuYWdlcgEFAWkJAMwIAgMJAQ5pc1ZhbGlkQWRkcmVzcwEFB2FkZHJlc3MGCQCsAgIJAKwCAgIBWwUHYWRkcmVzcwkBCHRocm93RXJyAQIQXSBub3QgYW4gYWRkcmVzcwUDbmlsAwkAAAIFBWNoZWNrBQVjaGVjawkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBDGtleUZvcmNlU3RvcAEFB2FkZHJlc3MFBHN0b3AFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ1hZGRQZXJtaXNzaW9uAQdhZGRyZXNzBAVjaGVjawkAzAgCCQELbXVzdE1hbmFnZXIBBQFpCQDMCAIDCQEOaXNWYWxpZEFkZHJlc3MBBQdhZGRyZXNzBgkArAICCQCsAgICAVsFB2FkZHJlc3MJAQh0aHJvd0VycgECEF0gbm90IGFuIGFkZHJlc3MJAMwIAgMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIFDnBlcm1pc3Npb25MaXN0BQdhZGRyZXNzBgkBCHRocm93RXJyAQIaYWxyZWFkeSBpbiBwZXJtaXNzaW9uIGxpc3QFA25pbAMJAAACBQVjaGVjawUFY2hlY2sEB25ld0xpc3QJAM0IAgUOcGVybWlzc2lvbkxpc3QFB2FkZHJlc3MEDW5ld0xpc3RTdHJpbmcJALkJAgUHbmV3TGlzdAUDU0VQCQDMCAIJAQtTdHJpbmdFbnRyeQIJARFrZXlQZXJtaXNzaW9uTGlzdAAFDW5ld0xpc3RTdHJpbmcFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARByZW1vdmVQZXJtaXNzaW9uAQdhZGRyZXNzBAVjaGVjawkAzAgCCQELbXVzdE1hbmFnZXIBBQFpCQDMCAIDCQEOaXNWYWxpZEFkZHJlc3MBBQdhZGRyZXNzBgkArAICCQCsAgICAVsFB2FkZHJlc3MJAQh0aHJvd0VycgECEF0gbm90IGFuIGFkZHJlc3MJAMwIAgMJAQ9jb250YWluc0VsZW1lbnQCBQ5wZXJtaXNzaW9uTGlzdAUHYWRkcmVzcwYJAQh0aHJvd0VycgECFm5vdCBpbiBwZXJtaXNzaW9uIGxpc3QFA25pbAMJAAACBQVjaGVjawUFY2hlY2sEB3JfaW5kZXgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAzwgCBQ5wZXJtaXNzaW9uTGlzdAUHYWRkcmVzcwkArAICBQdhZGRyZXNzCQEHd3JhcEVycgECC25vdCBpbiBsaXN0BAduZXdMaXN0CQDRCAIFDnBlcm1pc3Npb25MaXN0BQdyX2luZGV4BA1uZXdMaXN0U3RyaW5nCQC5CQIFB25ld0xpc3QFA1NFUAkAzAgCCQELU3RyaW5nRW50cnkCCQERa2V5UGVybWlzc2lvbkxpc3QABQ1uZXdMaXN0U3RyaW5nBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABA90YXJnZXRQdWJsaWNLZXkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAgFAnR4D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQ90YXJnZXRQdWJsaWNLZXnXQGat", "chainId": 84, "height": 3076604, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8Cx1HAbJUpWtxcSnu3NHbsMp3tVyZoAU9PEpbRpLugcm Next: FHYFLmkHqRqTdg8UpWLdYW8e1enY5wE9muSELuEjBNmP Diff:
OldNewDifferences
7272 }
7373
7474
75+func v (j) = {
76+ let n = addressFromString(j)
77+ if ($isInstanceOf(n, "Address"))
78+ then {
79+ let w = n
80+ true
81+ }
82+ else false
83+ }
84+
85+
7586 @Callable(s)
76-func forceStopContract (j,v) = {
77- let w = toString(s.caller)
78- let x = [if (containsElement(k, w))
87+func forceStopContract (j,x) = {
88+ let y = toString(s.caller)
89+ let z = [if (containsElement(k, y))
7990 then true
80- else t(s)]
81- if ((x == x))
82- then [BooleanEntry(i(j), v)]
91+ else t(s), if (v(j))
92+ then true
93+ else (("[" + j) + e("] not an address"))]
94+ if ((z == z))
95+ then [BooleanEntry(i(j), x)]
8396 else throw("Strict value is not equal to itself.")
8497 }
8598
87100
88101 @Callable(s)
89102 func addPermission (j) = {
90- let x = [t(s), if (!(containsElement(k, j)))
103+ let z = [t(s), if (v(j))
104+ then true
105+ else (("[" + j) + e("] not an address")), if (!(containsElement(k, j)))
91106 then true
92107 else e("already in permission list")]
93- if ((x == x))
108+ if ((z == z))
94109 then {
95- let y = (k :+ j)
96- let z = makeString(y, b)
97-[StringEntry(h(), z)]
110+ let A = (k :+ j)
111+ let B = makeString(A, b)
112+[StringEntry(h(), B)]
98113 }
99114 else throw("Strict value is not equal to itself.")
100115 }
103118
104119 @Callable(s)
105120 func removePermission (j) = {
106- let x = [t(s), if (containsElement(k, j))
121+ let z = [t(s), if (v(j))
122+ then true
123+ else (("[" + j) + e("] not an address")), if (containsElement(k, j))
107124 then true
108125 else e("not in permission list")]
109- if ((x == x))
126+ if ((z == z))
110127 then {
111- let A = valueOrErrorMessage(indexOf(k, j), (j + c("not in list")))
112- let y = removeByIndex(k, A)
113- let z = makeString(y, b)
114-[StringEntry(h(), z)]
128+ let C = valueOrErrorMessage(indexOf(k, j), (j + c("not in list")))
129+ let A = removeByIndex(k, C)
130+ let B = makeString(A, b)
131+[StringEntry(h(), B)]
115132 }
116133 else throw("Strict value is not equal to itself.")
117134 }
118135
119136
120-@Verifier(B)
121-func C () = {
122- let D = {
137+@Verifier(D)
138+func E () = {
139+ let F = {
123140 let n = p()
124141 if ($isInstanceOf(n, "ByteVector"))
125142 then {
127144 u
128145 }
129146 else if ($isInstanceOf(n, "Unit"))
130- then B.senderPublicKey
147+ then D.senderPublicKey
131148 else throw("Match error")
132149 }
133- sigVerify(B.bodyBytes, B.proofs[0], D)
150+ sigVerify(D.bodyBytes, D.proofs[0], F)
134151 }
135152
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
75+func v (j) = {
76+ let n = addressFromString(j)
77+ if ($isInstanceOf(n, "Address"))
78+ then {
79+ let w = n
80+ true
81+ }
82+ else false
83+ }
84+
85+
7586 @Callable(s)
76-func forceStopContract (j,v) = {
77- let w = toString(s.caller)
78- let x = [if (containsElement(k, w))
87+func forceStopContract (j,x) = {
88+ let y = toString(s.caller)
89+ let z = [if (containsElement(k, y))
7990 then true
80- else t(s)]
81- if ((x == x))
82- then [BooleanEntry(i(j), v)]
91+ else t(s), if (v(j))
92+ then true
93+ else (("[" + j) + e("] not an address"))]
94+ if ((z == z))
95+ then [BooleanEntry(i(j), x)]
8396 else throw("Strict value is not equal to itself.")
8497 }
8598
8699
87100
88101 @Callable(s)
89102 func addPermission (j) = {
90- let x = [t(s), if (!(containsElement(k, j)))
103+ let z = [t(s), if (v(j))
104+ then true
105+ else (("[" + j) + e("] not an address")), if (!(containsElement(k, j)))
91106 then true
92107 else e("already in permission list")]
93- if ((x == x))
108+ if ((z == z))
94109 then {
95- let y = (k :+ j)
96- let z = makeString(y, b)
97-[StringEntry(h(), z)]
110+ let A = (k :+ j)
111+ let B = makeString(A, b)
112+[StringEntry(h(), B)]
98113 }
99114 else throw("Strict value is not equal to itself.")
100115 }
101116
102117
103118
104119 @Callable(s)
105120 func removePermission (j) = {
106- let x = [t(s), if (containsElement(k, j))
121+ let z = [t(s), if (v(j))
122+ then true
123+ else (("[" + j) + e("] not an address")), if (containsElement(k, j))
107124 then true
108125 else e("not in permission list")]
109- if ((x == x))
126+ if ((z == z))
110127 then {
111- let A = valueOrErrorMessage(indexOf(k, j), (j + c("not in list")))
112- let y = removeByIndex(k, A)
113- let z = makeString(y, b)
114-[StringEntry(h(), z)]
128+ let C = valueOrErrorMessage(indexOf(k, j), (j + c("not in list")))
129+ let A = removeByIndex(k, C)
130+ let B = makeString(A, b)
131+[StringEntry(h(), B)]
115132 }
116133 else throw("Strict value is not equal to itself.")
117134 }
118135
119136
120-@Verifier(B)
121-func C () = {
122- let D = {
137+@Verifier(D)
138+func E () = {
139+ let F = {
123140 let n = p()
124141 if ($isInstanceOf(n, "ByteVector"))
125142 then {
126143 let u = n
127144 u
128145 }
129146 else if ($isInstanceOf(n, "Unit"))
130- then B.senderPublicKey
147+ then D.senderPublicKey
131148 else throw("Match error")
132149 }
133- sigVerify(B.bodyBytes, B.proofs[0], D)
150+ sigVerify(D.bodyBytes, D.proofs[0], F)
134151 }
135152

github/deemru/w8io/6500d08 
35.93 ms