tx · FVzZgwHLVW79Tz8ymrpPrZEWTi3PNoEiLXGj43m5aiGD

3N91zFrRoofbPpkoDbWKrQsQSdLu2EgLL8c:  -0.01000000 Waves

2023.09.27 14:41 [2773766] smart account 3N91zFrRoofbPpkoDbWKrQsQSdLu2EgLL8c > SELF 0.00000000 Waves

{ "type": 13, "id": "FVzZgwHLVW79Tz8ymrpPrZEWTi3PNoEiLXGj43m5aiGD", "fee": 1000000, "feeAssetId": null, "timestamp": 1695814951951, "version": 2, "chainId": 84, "sender": "3N91zFrRoofbPpkoDbWKrQsQSdLu2EgLL8c", "senderPublicKey": "5FyjUYCR5Q8jvG6ri6Ysz574HerUK6r1LJzzQ7DvSkLk", "proofs": [ "2ao693y8R6ZRQDVyaUvw6XNLPN6GQimm1d9hwCCygZQb7BuGqxywdvMNoAAvHd1Zj12yhvze7PwxhnRs8W4WAXEB" ], "script": "base64:BgISCAISBgoEAgICARIAEgQKAggCFAAJc2VwYXJhdG9yAgJfXwELbXVzdEFkZHJlc3MCAWkHYWRkcmVzcwMJAAACCAUBaQZjYWxsZXIFB2FkZHJlc3MGCQEFdGhyb3cAAQhtdXN0VGhpcwEBaQkBC211c3RBZGRyZXNzAgUBaQUEdGhpcwARa1NlcnZpY2VQdWJsaWNLZXkCFCVzX19zZXJ2aWNlUHVibGljS2V5AA1rQm90UHVibGljS2V5AhAlc19fYm90UHVibGljS2V5ABFrRmFjdG9yeVB1YmxpY0tleQIUJXNfX2ZhY3RvcnlQdWJsaWNLZXkAD2tPd25lclB1YmxpY0tleQISJXNfX293bmVyUHVibGljS2V5ABFrQ3JlYXRvclB1YmxpY0tleQIUJXNfX2NyZWF0b3JQdWJsaWNLZXkAEmtBY2NvdW50U2NyaXB0SGFzaAIVJXNfX2FjY291bnRTY3JpcHRIYXNoARFhY2NvdW50U2NyaXB0SGFzaAAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCBQR0aGlzBRJrQWNjb3VudFNjcmlwdEhhc2gCHmFjY291bnQgc2NyaXB0IGhhc2ggaXMgbm90IHNldAAIa0NvdW50ZXICCyVzX19jb3VudGVyAQdjb3VudGVyAAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQhrQ291bnRlcgAAAA1rUmV3YXJkQW1vdW50AhAlc19fcmV3YXJkQW1vdW50AQxyZXdhcmRBbW91bnQACQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwUNa1Jld2FyZEFtb3VudAIYcmV3YXJkIGFtb3VudCBpcyBub3Qgc2V0ARFrUmVxdWVzdENvbXBsZXRlZAEJcmVxdWVzdElkCQC5CQIJAMwIAgIEJXMlcwkAzAgCBQlyZXF1ZXN0SWQJAMwIAgIJY29tcGxldGVkBQNuaWwFCXNlcGFyYXRvcgEQcmVxdWVzdENvbXBsZXRlZAEJcmVxdWVzdElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJsIAgUEdGhpcwkBEWtSZXF1ZXN0Q29tcGxldGVkAQUJcmVxdWVzdElkAhRyZXF1ZXN0IGlzIG5vdCBmb3VuZAENa1JlcXVlc3RPd25lcgEJcmVxdWVzdElkCQC5CQIJAMwIAgIEJXMlcwkAzAgCBQlyZXF1ZXN0SWQJAMwIAgIFb3duZXIFA25pbAUJc2VwYXJhdG9yAQxyZXF1ZXN0T3duZXIBCXJlcXVlc3RJZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCcCAIFBHRoaXMJAQ1rUmVxdWVzdE93bmVyAQUJcmVxdWVzdElkAhRyZXF1ZXN0IGlzIG5vdCBmb3VuZAAOc2VydmljZUFkZHJlc3MJAKcIAQkBEUBleHRyTmF0aXZlKDEwNTIpAgUEdGhpcwURa1NlcnZpY2VQdWJsaWNLZXkADGJvdFB1YmxpY0tleQkBEUBleHRyTmF0aXZlKDEwNTIpAgUEdGhpcwUNa0JvdFB1YmxpY0tleQMBaQEEaW5pdAQQc2VydmljZVB1YmxpY0tleQxib3RQdWJsaWNLZXkRYWNjb3VudFNjcmlwdEhhc2gMcmV3YXJkQW1vdW50BAtjaGVja0NhbGxlcgkBCG11c3RUaGlzAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIJAJQKAgkAzAgCCQELQmluYXJ5RW50cnkCBRFrU2VydmljZVB1YmxpY0tleQUQc2VydmljZVB1YmxpY0tleQkAzAgCCQELQmluYXJ5RW50cnkCBQ1rQm90UHVibGljS2V5BQxib3RQdWJsaWNLZXkJAMwIAgkBC0JpbmFyeUVudHJ5AgUSa0FjY291bnRTY3JpcHRIYXNoBRFhY2NvdW50U2NyaXB0SGFzaAkAzAgCCQEMSW50ZWdlckVudHJ5AgUNa1Jld2FyZEFtb3VudAUMcmV3YXJkQW1vdW50BQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHcmVxdWVzdAAEBmNoZWNrcwkAzAgCAwkAAAIJAJADAQgFAWkIcGF5bWVudHMAAQYJAAIBAhUxIHBheW1lbnQgaXMgcmVxdWlyZWQJAMwIAgMJAAACCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVuaXQGCQACAQINaW52YWxpZCBhc3NldAkAzAgCAwkAAAIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50CQEMcmV3YXJkQW1vdW50AAYJAAIBAg5pbnZhbGlkIGFtb3VudAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAlyZXF1ZXN0SWQJANgEAQkA9wMBCQDLAQIICAUBaQZjYWxsZXIFYnl0ZXMJAJoDAQkBB2NvdW50ZXIACQCUCgIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJARFrUmVxdWVzdENvbXBsZXRlZAEFCXJlcXVlc3RJZAcJAMwIAgkBC0JpbmFyeUVudHJ5AgkBDWtSZXF1ZXN0T3duZXIBBQlyZXF1ZXN0SWQIBQFpD2NhbGxlclB1YmxpY0tleQkAzAgCCQEMSW50ZWdlckVudHJ5AgUIa0NvdW50ZXIJAGQCCQEHY291bnRlcgAAAQUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCGNvbXBsZXRlAglyZXF1ZXN0SWQQYWNjb3VudFB1YmxpY0tleQQGY2hlY2tzCQDMCAIDCQEBIQEJARByZXF1ZXN0Q29tcGxldGVkAQUJcmVxdWVzdElkBgkAAgECHHJlcXVlc3QgaXMgYWxyZWFkeSBjb21wbGV0ZWQJAMwIAgMJAAACCQDxBwEIBQFpBmNhbGxlcgkBEWFjY291bnRTY3JpcHRIYXNoAAYJAAIBAg5pbnZhbGlkIHNjcmlwdAkAzAgCAwQHJG1hdGNoMAkAnAgCCAUBaQZjYWxsZXIFEWtGYWN0b3J5UHVibGljS2V5AwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJAAACCQCnCAEFAWIFBHRoaXMHBgkAAgECGmludmFsaWQgZmFjdG9yeSBwdWJsaWMga2V5CQDMCAIDBAckbWF0Y2gwCQCcCAIIBQFpBmNhbGxlcgUPa093bmVyUHVibGljS2V5AwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAWIFByRtYXRjaDAJAAACBQFiCQEMcmVxdWVzdE93bmVyAQUJcmVxdWVzdElkBwYJAAIBAhhpbnZhbGlkIG93bmVyIHB1YmxpYyBrZXkFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQOYWNjb3VudEFkZHJlc3MJAKcIAQUQYWNjb3VudFB1YmxpY0tleQQQY3JlYXRvclB1YmxpY0tleQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCcCAIFDmFjY291bnRBZGRyZXNzBRFrQ3JlYXRvclB1YmxpY0tleQIdY3JlYXRvciBwdWJsaWMga2V5IGlzIG5vdCBzZXQEDmNyZWF0b3JBZGRyZXNzCQCnCAEFEGNyZWF0b3JQdWJsaWNLZXkEBnJlc3VsdAkA/AcEBQ5hY2NvdW50QWRkcmVzcwIHYXBwcm92ZQUDbmlsBQNuaWwJAJQKAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBEWtSZXF1ZXN0Q29tcGxldGVkAQUJcmVxdWVzdElkBgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQ5jcmVhdG9yQWRkcmVzcwkBDHJld2FyZEFtb3VudAAFBHVuaXQFA25pbAUGcmVzdWx0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuABY5TBs=", "height": 2773766, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CBmUfgwJ6H3VyFs6q2MJ4F6Z2qmiJ2E6NtJVDTCz2sVJ Next: 52UDy65RNS29aikC2CuuPbHQjnq13HFAUit4vngCNody Diff:
OldNewDifferences
1919
2020 let i = "%s__ownerPublicKey"
2121
22-let j = "%s__accountScriptHash"
22+let j = "%s__creatorPublicKey"
2323
24-func k () = valueOrErrorMessage(getBinary(this, j), "account script hash is not set")
24+let k = "%s__accountScriptHash"
25+
26+func l () = valueOrErrorMessage(getBinary(this, k), "account script hash is not set")
2527
2628
27-let l = "%s__counter"
29+let m = "%s__counter"
2830
29-func m () = valueOrElse(getInteger(this, l), 0)
31+func n () = valueOrElse(getInteger(this, m), 0)
3032
3133
32-let n = "%s__rewardAmount"
34+let o = "%s__rewardAmount"
3335
34-func o () = valueOrErrorMessage(getInteger(this, n), "reward amount is not set")
36+func p () = valueOrErrorMessage(getInteger(this, o), "reward amount is not set")
3537
3638
37-func p (q) = makeString(["%s%s", q, "completed"], a)
39+func q (r) = makeString(["%s%s", r, "completed"], a)
3840
3941
40-func r (q) = valueOrErrorMessage(getBoolean(this, p(q)), "request is not found")
42+func s (r) = valueOrErrorMessage(getBoolean(this, q(r)), "request is not found")
4143
4244
43-func s (q) = makeString(["%s%s", q, "owner"], a)
45+func t (r) = makeString(["%s%s", r, "owner"], a)
4446
4547
46-func t (q) = valueOrErrorMessage(getBinary(this, s(q)), "request is not found")
48+func u (r) = valueOrErrorMessage(getBinary(this, t(r)), "request is not found")
4749
4850
49-let u = addressFromPublicKey(getBinaryValue(this, f))
51+let v = addressFromPublicKey(getBinaryValue(this, f))
5052
51-let v = getBinaryValue(this, g)
53+let w = getBinaryValue(this, g)
5254
5355 @Callable(c)
54-func init (w,v,k,o) = {
55- let x = e(c)
56- if ((x == x))
57- then $Tuple2([BinaryEntry(f, w), BinaryEntry(g, v), BinaryEntry(j, k), IntegerEntry(n, o)], unit)
56+func init (x,w,l,p) = {
57+ let y = e(c)
58+ if ((y == y))
59+ then $Tuple2([BinaryEntry(f, x), BinaryEntry(g, w), BinaryEntry(k, l), IntegerEntry(o, p)], unit)
5860 else throw("Strict value is not equal to itself.")
5961 }
6062
6264
6365 @Callable(c)
6466 func request () = {
65- let y = [if ((size(c.payments) == 1))
67+ let z = [if ((size(c.payments) == 1))
6668 then true
6769 else throw("1 payment is required"), if ((c.payments[0].assetId == unit))
6870 then true
69- else throw("invalid asset"), if ((c.payments[0].amount == o()))
71+ else throw("invalid asset"), if ((c.payments[0].amount == p()))
7072 then true
7173 else throw("invalid amount")]
72- if ((y == y))
74+ if ((z == z))
7375 then {
74- let q = toBase58String(sha256((c.caller.bytes + toBytes(m()))))
75- $Tuple2([BooleanEntry(p(q), false), BinaryEntry(s(q), c.callerPublicKey), IntegerEntry(l, (m() + 1))], unit)
76+ let r = toBase58String(sha256((c.caller.bytes + toBytes(n()))))
77+ $Tuple2([BooleanEntry(q(r), false), BinaryEntry(t(r), c.callerPublicKey), IntegerEntry(m, (n() + 1))], unit)
7678 }
7779 else throw("Strict value is not equal to itself.")
7880 }
8082
8183
8284 @Callable(c)
83-func complete (q,z) = {
84- let y = [if (!(r(q)))
85+func complete (r,A) = {
86+ let z = [if (!(s(r)))
8587 then true
86- else throw("request is already completed"), if ((scriptHash(c.caller) == k()))
88+ else throw("request is already completed"), if ((scriptHash(c.caller) == l()))
8789 then true
8890 else throw("invalid script"), if ({
89- let A = getBinary(c.caller, h)
90- if ($isInstanceOf(A, "ByteVector"))
91+ let B = getBinary(c.caller, h)
92+ if ($isInstanceOf(B, "ByteVector"))
9193 then {
92- let B = A
93- (addressFromPublicKey(B) == this)
94+ let C = B
95+ (addressFromPublicKey(C) == this)
9496 }
9597 else false
9698 })
9799 then true
98100 else throw("invalid factory public key"), if ({
99- let A = getBinary(c.caller, i)
100- if ($isInstanceOf(A, "ByteVector"))
101+ let B = getBinary(c.caller, i)
102+ if ($isInstanceOf(B, "ByteVector"))
101103 then {
102- let B = A
103- (B == t(q))
104+ let C = B
105+ (C == u(r))
104106 }
105107 else false
106108 })
107109 then true
108110 else throw("invalid owner public key")]
109- if ((y == y))
111+ if ((z == z))
110112 then {
111- let C = reentrantInvoke(c.caller, "approve", nil, nil)
112- $Tuple2([BooleanEntry(p(q), true)], C)
113+ let D = addressFromPublicKey(A)
114+ let E = valueOrErrorMessage(getBinary(D, j), "creator public key is not set")
115+ let F = addressFromPublicKey(E)
116+ let G = invoke(D, "approve", nil, nil)
117+ $Tuple2([BooleanEntry(q(r), true), ScriptTransfer(F, p(), unit)], G)
113118 }
114119 else throw("Strict value is not equal to itself.")
115120 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 func b (c,d) = if ((c.caller == d))
77 then true
88 else throw()
99
1010
1111 func e (c) = b(c, this)
1212
1313
1414 let f = "%s__servicePublicKey"
1515
1616 let g = "%s__botPublicKey"
1717
1818 let h = "%s__factoryPublicKey"
1919
2020 let i = "%s__ownerPublicKey"
2121
22-let j = "%s__accountScriptHash"
22+let j = "%s__creatorPublicKey"
2323
24-func k () = valueOrErrorMessage(getBinary(this, j), "account script hash is not set")
24+let k = "%s__accountScriptHash"
25+
26+func l () = valueOrErrorMessage(getBinary(this, k), "account script hash is not set")
2527
2628
27-let l = "%s__counter"
29+let m = "%s__counter"
2830
29-func m () = valueOrElse(getInteger(this, l), 0)
31+func n () = valueOrElse(getInteger(this, m), 0)
3032
3133
32-let n = "%s__rewardAmount"
34+let o = "%s__rewardAmount"
3335
34-func o () = valueOrErrorMessage(getInteger(this, n), "reward amount is not set")
36+func p () = valueOrErrorMessage(getInteger(this, o), "reward amount is not set")
3537
3638
37-func p (q) = makeString(["%s%s", q, "completed"], a)
39+func q (r) = makeString(["%s%s", r, "completed"], a)
3840
3941
40-func r (q) = valueOrErrorMessage(getBoolean(this, p(q)), "request is not found")
42+func s (r) = valueOrErrorMessage(getBoolean(this, q(r)), "request is not found")
4143
4244
43-func s (q) = makeString(["%s%s", q, "owner"], a)
45+func t (r) = makeString(["%s%s", r, "owner"], a)
4446
4547
46-func t (q) = valueOrErrorMessage(getBinary(this, s(q)), "request is not found")
48+func u (r) = valueOrErrorMessage(getBinary(this, t(r)), "request is not found")
4749
4850
49-let u = addressFromPublicKey(getBinaryValue(this, f))
51+let v = addressFromPublicKey(getBinaryValue(this, f))
5052
51-let v = getBinaryValue(this, g)
53+let w = getBinaryValue(this, g)
5254
5355 @Callable(c)
54-func init (w,v,k,o) = {
55- let x = e(c)
56- if ((x == x))
57- then $Tuple2([BinaryEntry(f, w), BinaryEntry(g, v), BinaryEntry(j, k), IntegerEntry(n, o)], unit)
56+func init (x,w,l,p) = {
57+ let y = e(c)
58+ if ((y == y))
59+ then $Tuple2([BinaryEntry(f, x), BinaryEntry(g, w), BinaryEntry(k, l), IntegerEntry(o, p)], unit)
5860 else throw("Strict value is not equal to itself.")
5961 }
6062
6163
6264
6365 @Callable(c)
6466 func request () = {
65- let y = [if ((size(c.payments) == 1))
67+ let z = [if ((size(c.payments) == 1))
6668 then true
6769 else throw("1 payment is required"), if ((c.payments[0].assetId == unit))
6870 then true
69- else throw("invalid asset"), if ((c.payments[0].amount == o()))
71+ else throw("invalid asset"), if ((c.payments[0].amount == p()))
7072 then true
7173 else throw("invalid amount")]
72- if ((y == y))
74+ if ((z == z))
7375 then {
74- let q = toBase58String(sha256((c.caller.bytes + toBytes(m()))))
75- $Tuple2([BooleanEntry(p(q), false), BinaryEntry(s(q), c.callerPublicKey), IntegerEntry(l, (m() + 1))], unit)
76+ let r = toBase58String(sha256((c.caller.bytes + toBytes(n()))))
77+ $Tuple2([BooleanEntry(q(r), false), BinaryEntry(t(r), c.callerPublicKey), IntegerEntry(m, (n() + 1))], unit)
7678 }
7779 else throw("Strict value is not equal to itself.")
7880 }
7981
8082
8183
8284 @Callable(c)
83-func complete (q,z) = {
84- let y = [if (!(r(q)))
85+func complete (r,A) = {
86+ let z = [if (!(s(r)))
8587 then true
86- else throw("request is already completed"), if ((scriptHash(c.caller) == k()))
88+ else throw("request is already completed"), if ((scriptHash(c.caller) == l()))
8789 then true
8890 else throw("invalid script"), if ({
89- let A = getBinary(c.caller, h)
90- if ($isInstanceOf(A, "ByteVector"))
91+ let B = getBinary(c.caller, h)
92+ if ($isInstanceOf(B, "ByteVector"))
9193 then {
92- let B = A
93- (addressFromPublicKey(B) == this)
94+ let C = B
95+ (addressFromPublicKey(C) == this)
9496 }
9597 else false
9698 })
9799 then true
98100 else throw("invalid factory public key"), if ({
99- let A = getBinary(c.caller, i)
100- if ($isInstanceOf(A, "ByteVector"))
101+ let B = getBinary(c.caller, i)
102+ if ($isInstanceOf(B, "ByteVector"))
101103 then {
102- let B = A
103- (B == t(q))
104+ let C = B
105+ (C == u(r))
104106 }
105107 else false
106108 })
107109 then true
108110 else throw("invalid owner public key")]
109- if ((y == y))
111+ if ((z == z))
110112 then {
111- let C = reentrantInvoke(c.caller, "approve", nil, nil)
112- $Tuple2([BooleanEntry(p(q), true)], C)
113+ let D = addressFromPublicKey(A)
114+ let E = valueOrErrorMessage(getBinary(D, j), "creator public key is not set")
115+ let F = addressFromPublicKey(E)
116+ let G = invoke(D, "approve", nil, nil)
117+ $Tuple2([BooleanEntry(q(r), true), ScriptTransfer(F, p(), unit)], G)
113118 }
114119 else throw("Strict value is not equal to itself.")
115120 }
116121
117122

github/deemru/w8io/169f3d6 
53.45 ms