tx · EWD4PHWUFdr3FsswiLSSCeXuzpbeGD9c5GaEpAhFD9yy

3P36HH7i6BBuuNp7FHQd6WX8gzfogi778i6:  -0.01000000 Waves

2022.08.11 11:38 [3245077] smart account 3P36HH7i6BBuuNp7FHQd6WX8gzfogi778i6 > SELF 0.00000000 Waves

{ "type": 13, "id": "EWD4PHWUFdr3FsswiLSSCeXuzpbeGD9c5GaEpAhFD9yy", "fee": 1000000, "feeAssetId": null, "timestamp": 1660207131772, "version": 2, "chainId": 87, "sender": "3P36HH7i6BBuuNp7FHQd6WX8gzfogi778i6", "senderPublicKey": "3xRzVfzGz2mW1Y3XAqQwVN4RiiWSgAHpLFmaF24hhfY9", "proofs": [ "3bd1qSyeM85UsYnnPQQCrrquGQWtCkyKiLLFaKF7k74iwtEvQWeW23NYPwYRLjWkjZSP9SgejkP6FLMY6326JNm9" ], "script": "base64:BgIUCAISAwoBCBIECgIICBIDCgEIEgAUARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJ0IAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAARV0cnlHZXRJbnRlZ2VyRXh0ZXJuYWwCB2FkZHJlc3MDa2V5BAckbWF0Y2gwCQCaCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAEMdHJ5R2V0U3RyaW5nAQNrZXkJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIFBHRoaXMFA2tleQEJZ2V0T3JhY2xlAAkBB0FkZHJlc3MBCQDZBAEJAQx0cnlHZXRTdHJpbmcBAhRzdGF0aWNfb3JhY2xlQWRkcmVzcwEPZ2V0U3BpY2VBc3NldElkAAkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAITc3RhdGljX3NwaWNlQXNzZXRJZAERZ2V0QnJlZWRlckFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQACFXN0YXRpY19icmVlZGVyQWRkcmVzcwANRFVDS0xJTkdQUklDRQCAoJSljR0AFktHbG9iYWxJc3N1ZWRUaW1lc3RhbXACF2dsb2JhbF9pc3N1ZWRfdGltZXN0YW1wAQxrZXlUb3RhbEZlZWQBCmR1Y2tsaW5nSWQJAKwCAgkArAICAglkdWNrbGluZ18FCmR1Y2tsaW5nSWQCBV9mZWVkARtrZXlEdWNrbGluZ0ZlZExhc3RUaW1lc3RhbXABCmR1Y2tsaW5nSWQJAKwCAgkArAICAglkdWNrbGluZ18FCmR1Y2tsaW5nSWQCCl9mZWRMYXN0VHMBEGtleUR1Y2tsaW5nTGV2ZWwBCmR1Y2tsaW5nSWQJAKwCAgkArAICAglkdWNrbGluZ18FCmR1Y2tsaW5nSWQCBl9sZXZlbAEQa2V5RHVja2xpbmdHcm93bgEKZHVja2xpbmdJZAkArAICCQCsAgICCWR1Y2tsaW5nXwUKZHVja2xpbmdJZAIGX2dyb3duARJrZXlTdGFydFBlcmNlbnRhZ2UBCmR1Y2tsaW5nSWQJAKwCAgkArAICAglkdWNrbGluZ18FCmR1Y2tsaW5nSWQCEF9zdGFydFBlcmNlbnRhZ2UBCGtleU93bmVyAQpkdWNrbGluZ0lkCQCsAgIJAKwCAgIJZHVja2xpbmdfBQpkdWNrbGluZ0lkAgZfb3duZXIBDXRyeUdldEludGVnZXIBA2tleQQDdmFsBAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAUDdmFsAQdnZXRCb29sAQNrZXkEByRtYXRjaDAJAJsIAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWIFByRtYXRjaDAFAWIHARJnZXRDdXJyZW50TGV2ZWxJbnQBCmR1Y2tsaW5nSWQECmtEdWNrTGV2ZWwJARBrZXlEdWNrbGluZ0xldmVsAQUKZHVja2xpbmdJZAQHJG1hdGNoMAkAoggBBQprRHVja0xldmVsAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkBDXBhcnNlSW50VmFsdWUBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQEAXUFByRtYXRjaDAAAAkAAgECHUJHQ0xCSTogV2VpcmQgdmFsdWUgZGV0ZWN0ZWQhARNnZXRMYXN0RmVkVGltZXN0YW1wAQpkdWNrbGluZ0lkBBBsYXN0RmVkVGltZXN0YW1wCQENdHJ5R2V0SW50ZWdlcgEJARtrZXlEdWNrbGluZ0ZlZExhc3RUaW1lc3RhbXABBQpkdWNrbGluZ0lkAwkAZgIFEGxhc3RGZWRUaW1lc3RhbXAAAAUQbGFzdEZlZFRpbWVzdGFtcAgFCWxhc3RCbG9jawl0aW1lc3RhbXABGWNhbGN1bGF0ZU5ld0R1Y2tsaW5nTGV2ZWwCCmR1Y2tsaW5nSWQNcGF5bWVudEFtb3VudAQJY3VycmVudFRzCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAQXbGFzdEZlZFRpbWVzdGFtcENoZWNrZWQJARNnZXRMYXN0RmVkVGltZXN0YW1wAQUKZHVja2xpbmdJZAQHZmVkRGlmZgkAZQIFCWN1cnJlbnRUcwUXbGFzdEZlZFRpbWVzdGFtcENoZWNrZWQEBmdyb3d0aAUNcGF5bWVudEFtb3VudAQMY3VycmVudExldmVsCQESZ2V0Q3VycmVudExldmVsSW50AQUKZHVja2xpbmdJZAQIbmV3TGV2ZWwJAGQCBQxjdXJyZW50TGV2ZWwFDXBheW1lbnRBbW91bnQDCQBnAgUIbmV3TGV2ZWwFDURVQ0tMSU5HUFJJQ0UJAAIBCQCsAgIJAKwCAgIyQ0JEQjogWW91IGFyZSBmZWVkaW5nIHlvdXIgZHVja2xpbmcgdG8gbXVjaCEgT25seSAJAKQDAQkAZQIFDURVQ0tMSU5HUFJJQ0UFDGN1cnJlbnRMZXZlbAIHbmVlZGVkIQQGcmVzdWx0CQCkAwEFCG5ld0xldmVsCQCUCgIFBnJlc3VsdAkAzAgCCQCsAgICDWN1cnJlbnRMZXZlbD0JAKQDAQUMY3VycmVudExldmVsCQDMCAIJAKwCAgIJbmV3TGV2ZWw9CQCkAwEFCG5ld0xldmVsCQDMCAIJAKwCAgIHZ3Jvd3RoPQkApAMBBQZncm93dGgJAMwIAgkArAICAgpsYXN0RmVkVHM9CQCkAwEFF2xhc3RGZWRUaW1lc3RhbXBDaGVja2VkCQDMCAIJAKwCAgIIZmVkRGlmZj0JAKQDAQUHZmVkRGlmZgUDbmlsAQVhc0ludAEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACA0ludAQDaW50BQckbWF0Y2gwBQNpbnQJAAIBAh5CQUk6IHdyb25nIHR5cGUsIGV4cGVjdGVkOiBJbnQEAWkBD2NvbmZpZ3VyZU9yYWNsZQEGb3JhY2xlAwkBAiE9AggFAWkGY2FsbGVyBQR0aGlzCQACAQIPQkNPOiBhZG1pbiBvbmx5CQDMCAIJAQtTdHJpbmdFbnRyeQICFHN0YXRpY19vcmFjbGVBZGRyZXNzBQZvcmFjbGUFA25pbAFpAQ1pc3N1ZUR1Y2tsaW5nAgdhZGRyZXNzB3R4SWRTdHIDCQECIT0CCAUBaQZjYWxsZXIJARFnZXRCcmVlZGVyQWRkcmVzcwAJAAIBAiNCSUZEOiBZb3UgY2FuJ3QgaXNzdWUgZnJlZSBkdWNrbGluZwQFYXNzZXQJAMMIBwIQQkFCWS0xMTExMTExMS1IWgIAAAEAAAcFBHVuaXQFBmhlaWdodAQHYXNzZXRJZAkAuAgBBQVhc3NldAkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgIFB2FkZHJlc3MCAV8FB3R4SWRTdHICA19kaQkA2AQBBQdhc3NldElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgxzdGF0c19hbW91bnQJAGQCCQENdHJ5R2V0SW50ZWdlcgECDHN0YXRzX2Ftb3VudAABCQDMCAIJAQxCb29sZWFuRW50cnkCCQCsAgIJAKwCAgIJZHVja2xpbmdfCQDYBAEFB2Fzc2V0SWQCEV9pc3N1ZWRCeUZlZWRDYWxsCQAAAggFAWkGY2FsbGVyBQR0aGlzCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQESa2V5U3RhcnRQZXJjZW50YWdlAQkA2AQBBQdhc3NldElkAAAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBCGtleU93bmVyAQkA2AQBBQdhc3NldElkBQdhZGRyZXNzCQDMCAIFBWFzc2V0CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJAQV2YWx1ZQEJAKYIAQUHYWRkcmVzcwABBQdhc3NldElkBQNuaWwJANgEAQUHYXNzZXRJZAFpAQxmZWVkRHVja2xpbmcBCmR1Y2tsaW5nSWQEDWFkZHJlc3NTdHJpbmcJAKUIAQgFAWkGY2FsbGVyBA5yZWFsRHVja2xpbmdJZAMDCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEGCQECIT0CCAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQJAQ9nZXRTcGljZUFzc2V0SWQACQACAQIuQkZEOiBCYWQgcGF5bWVudCBhdHRhY2hlZCAoYXNzZXRbc10gb3IgYW1vdW50KQMJAQdnZXRCb29sAQkBEGtleUR1Y2tsaW5nR3Jvd24BBQpkdWNrbGluZ0lkCQACAQIeQkZEOiBEdWNrbGluZyBpcyBhbHJlYWR5IGdyb3duAwkAAAIFCmR1Y2tsaW5nSWQCAAkAAgECI0JGRDogUGxlYXNlIGhhdGNoIGEgZHVja2xpbmcgZmlyc3QhBA1kdWNrbGluZ093bmVyCQEMdHJ5R2V0U3RyaW5nAQkBCGtleU93bmVyAQUKZHVja2xpbmdJZAQPZHVja2xpbmdJZENoZWNrCQEFdmFsdWUBCQDsBwEJANkEAQUKZHVja2xpbmdJZAMJAQIhPQIJAPAHAggFAWkGY2FsbGVyCAUPZHVja2xpbmdJZENoZWNrAmlkAAEJAAIBAilCRkQ6IFlvdSdyZSBub3QgdGhlIG93bmVyIG9mIHRoZSBkdWNrbGluZwMJAQIhPQIFDWR1Y2tsaW5nT3duZXIJAKUIAQgFAWkGY2FsbGVyCQACAQI+QkZEOiBZb3UgY2FuIG9ubHkgZmVlZCBkdWNrbGluZ3MgdGhhdCB5b3Ugd29uL2JvdWdodCB5b3Vyc2VsZiEDCQECIT0CCAUPZHVja2xpbmdJZENoZWNrBmlzc3VlcgUEdGhpcwkAAgECJEJGRDogQ2FudCBmaW5kIGR1Y2tsaW5nIHdpdGggc3VjaCBpZAQQZHVja2xpbmdJZFN0cmluZwkA2AQBCAUPZHVja2xpbmdJZENoZWNrAmlkBRBkdWNrbGluZ0lkU3RyaW5nBBJrRHVja2xpbmdMYXN0RmVkVHMJARtrZXlEdWNrbGluZ0ZlZExhc3RUaW1lc3RhbXABBQpkdWNrbGluZ0lkBA5jdXJyZW50UGF5bWVudAgJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAZhbW91bnQECWtOZXdMZXZlbAkBEGtleUR1Y2tsaW5nTGV2ZWwBBQ5yZWFsRHVja2xpbmdJZAQKa1RvdGFsRmVlZAkBDGtleVRvdGFsRmVlZAEFDnJlYWxEdWNrbGluZ0lkBAl0b3RhbEZlZWQJAQ10cnlHZXRJbnRlZ2VyAQUKa1RvdGFsRmVlZAQMa0ZlZWRUeFN0YXRzCQCsAgIJAKwCAgkArAICAglkdWNrbGluZ18FDnJlYWxEdWNrbGluZ0lkAgZfc3RhdF8JAKQDAQgFCWxhc3RCbG9jawl0aW1lc3RhbXAEEGNhbGN1bGF0ZVJlc3VsdHMJARljYWxjdWxhdGVOZXdEdWNrbGluZ0xldmVsAgUOcmVhbER1Y2tsaW5nSWQFDmN1cnJlbnRQYXltZW50CQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJrRHVja2xpbmdMYXN0RmVkVHMIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQprVG90YWxGZWVkCQBkAgUJdG90YWxGZWVkBQ5jdXJyZW50UGF5bWVudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUMa0ZlZWRUeFN0YXRzBQ5jdXJyZW50UGF5bWVudAkAzAgCCQELU3RyaW5nRW50cnkCBQlrTmV3TGV2ZWwIBRBjYWxjdWxhdGVSZXN1bHRzAl8xCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUMa0ZlZWRUeFN0YXRzAgZfZGVidWcJALkJAggFEGNhbGN1bGF0ZVJlc3VsdHMCXzICATsFA25pbAFpARR0dXJuRHVja2xpbmdJbnRvRHVjawADCQECIT0CCAUBaQZjYWxsZXIJARFnZXRCcmVlZGVyQWRkcmVzcwAJAAIBAh1CSUZEOiBZb3UgY2FuJ3QgdHVybiBkdWNrbGluZwQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEBHR4SWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAQUbGFzdElzc3VlZER1Y2tsaW5nVHMJAQ10cnlHZXRJbnRlZ2VyAQUWS0dsb2JhbElzc3VlZFRpbWVzdGFtcAQLZml2ZU1pbkluTXMJAGgCCQBoAgABADwA6AcECHRpbWVEaWZmCQBlAggFCWxhc3RCbG9jawl0aW1lc3RhbXAJAGQCBRRsYXN0SXNzdWVkRHVja2xpbmdUcwULZml2ZU1pbkluTXMDAwkAZgIFFGxhc3RJc3N1ZWREdWNrbGluZ1RzAAAJAGYCAAAFCHRpbWVEaWZmBwkAAgEJAKwCAgkArAICAkJCVEQ6IENhbiBpc3N1ZSBkdWNrbGluZ3Mgb25seSBvbmNlIHBlciAxIG1pbnV0ZXMsIHBsZWFzZSB3YWl0IGZvciAJAKQDAQkAawMFCHRpbWVEaWZmAAEA6AcCBSBzZWMuAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIuQlREOiBCYWQgcGF5bWVudCBhdHRhY2hlZCAoYXNzZXRbc10gb3IgYW1vdW50KQQDcG10CQEFdmFsdWUBCQDsBwEJAQV2YWx1ZQEICQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAMJAGYCBQ1EVUNLTElOR1BSSUNFCQESZ2V0Q3VycmVudExldmVsSW50AQkA2AQBCAUDcG10AmlkCQACAQIhQlREOiBEdWNrbGluZyBpcyBub3QgZ3Jvd24geWV0Li4uAwkBAiE9AggFA3BtdAZpc3N1ZXIFBHRoaXMJAAIBAipCVEQ6IENhbiB1c2Ugb25seSBkdWNrbGluZ3MgZnJvbSB0aGlzIGRBcHAEDmtEdWNrbGluZ0dyb3duCQEQa2V5RHVja2xpbmdHcm93bgEJANgEAQgFA3BtdAJpZAkAlAoCCQDMCAIJAQxCb29sZWFuRW50cnkCBQ5rRHVja2xpbmdHcm93bgYJAMwIAgkBDEludGVnZXJFbnRyeQIFFktHbG9iYWxJc3N1ZWRUaW1lc3RhbXAIBQlsYXN0QmxvY2sJdGltZXN0YW1wBQNuaWwJANgEAQgFA3BtdAJpZAECdHgBBnZlcmlmeQAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXnKTxSH", "height": 3245077, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 7JByiCnT4eQHMio6XAXjaeqe22Ayd6JjRMFrQGZcmUAn Next: CQpDCC4ud46YsG5CFNfv2V1WT2zdxGx6YxMFNNFjHS4L Diff:
OldNewDifferences
9090 let z = d
9191 parseIntValue(z)
9292 }
93- else throw("BGCLBI: Weird value detected!")
93+ else if ($isInstanceOf(d, "Unit"))
94+ then {
95+ let A = d
96+ 0
97+ }
98+ else throw("BGCLBI: Weird value detected!")
9499 }
95100
96101
97-func A (o) = {
98- let B = u(p(o))
99- if ((B > 0))
100- then B
102+func B (o) = {
103+ let C = u(p(o))
104+ if ((C > 0))
105+ then C
101106 else lastBlock.timestamp
102107 }
103108
104109
105-func C (o,D) = {
106- let E = lastBlock.timestamp
107- let F = A(o)
108- let G = (E - F)
109- let H = D
110- let I = x(o)
111- let J = (I + D)
112- if ((J >= l))
113- then throw((("CBDB: You are feeding your duckling to much! Only " + toString((l - I))) + "needed!"))
110+func D (o,E) = {
111+ let F = lastBlock.timestamp
112+ let G = B(o)
113+ let H = (F - G)
114+ let I = E
115+ let J = x(o)
116+ let K = (J + E)
117+ if ((K >= l))
118+ then throw((("CBDB: You are feeding your duckling to much! Only " + toString((l - J))) + "needed!"))
114119 else {
115- let K = toString(J)
116- $Tuple2(K, [("currentLevel=" + toString(I)), ("newLevel=" + toString(J)), ("growth=" + toString(H)), ("lastFedTs=" + toString(F)), ("fedDiff=" + toString(G))])
120+ let L = toString(K)
121+ $Tuple2(L, [("currentLevel=" + toString(J)), ("newLevel=" + toString(K)), ("growth=" + toString(I)), ("lastFedTs=" + toString(G)), ("fedDiff=" + toString(H))])
117122 }
118123 }
119124
120125
121-func L (M) = {
122- let d = M
126+func M (N) = {
127+ let d = N
123128 if ($isInstanceOf(d, "Int"))
124129 then {
125- let N = d
126- N
130+ let O = d
131+ O
127132 }
128133 else throw("BAI: wrong type, expected: Int")
129134 }
130135
131136
132-@Callable(O)
133-func configureOracle (P) = if ((O.caller != this))
137+@Callable(P)
138+func configureOracle (Q) = if ((P.caller != this))
134139 then throw("BCO: admin only")
135- else [StringEntry("static_oracleAddress", P)]
140+ else [StringEntry("static_oracleAddress", Q)]
136141
137142
138143
139-@Callable(O)
140-func issueDuckling (b,Q) = if ((O.caller != k()))
144+@Callable(P)
145+func issueDuckling (b,R) = if ((P.caller != k()))
141146 then throw("BIFD: You can't issue free duckling")
142147 else {
143- let R = Issue("BABY-11111111-HZ", "", 1, 0, false, unit, height)
144- let S = calculateAssetId(R)
145- $Tuple2([StringEntry((((b + "_") + Q) + "_di"), toBase58String(S)), IntegerEntry("stats_amount", (u("stats_amount") + 1)), BooleanEntry((("duckling_" + toBase58String(S)) + "_issuedByFeedCall"), (O.caller == this)), IntegerEntry(s(toBase58String(S)), 0), StringEntry(t(toBase58String(S)), b), R, ScriptTransfer(value(addressFromString(b)), 1, S)], toBase58String(S))
148+ let S = Issue("BABY-11111111-HZ", "", 1, 0, false, unit, height)
149+ let T = calculateAssetId(S)
150+ $Tuple2([StringEntry((((b + "_") + R) + "_di"), toBase58String(T)), IntegerEntry("stats_amount", (u("stats_amount") + 1)), BooleanEntry((("duckling_" + toBase58String(T)) + "_issuedByFeedCall"), (P.caller == this)), IntegerEntry(s(toBase58String(T)), 0), StringEntry(t(toBase58String(T)), b), S, ScriptTransfer(value(addressFromString(b)), 1, T)], toBase58String(T))
146151 }
147152
148153
149154
150-@Callable(O)
155+@Callable(P)
151156 func feedDuckling (o) = {
152- let T = toString(O.caller)
153- let U = if (if ((size(O.payments) != 1))
157+ let U = toString(P.caller)
158+ let V = if (if ((size(P.payments) != 1))
154159 then true
155- else (value(O.payments[0]).assetId != j()))
160+ else (value(P.payments[0]).assetId != j()))
156161 then throw("BFD: Bad payment attached (asset[s] or amount)")
157162 else if (w(r(o)))
158163 then throw("BFD: Duckling is already grown")
159164 else if ((o == ""))
160165 then throw("BFD: Please hatch a duckling first!")
161166 else {
162- let V = h(t(o))
163- let W = value(assetInfo(fromBase58String(o)))
164- if ((assetBalance(O.caller, W.id) != 1))
167+ let W = h(t(o))
168+ let X = value(assetInfo(fromBase58String(o)))
169+ if ((assetBalance(P.caller, X.id) != 1))
165170 then throw("BFD: You're not the owner of the duckling")
166- else if ((V != toString(O.caller)))
171+ else if ((W != toString(P.caller)))
167172 then throw("BFD: You can only feed ducklings that you won/bought yourself!")
168- else if ((W.issuer != this))
173+ else if ((X.issuer != this))
169174 then throw("BFD: Cant find duckling with such id")
170175 else {
171- let X = toBase58String(W.id)
172- X
176+ let Y = toBase58String(X.id)
177+ Y
173178 }
174179 }
175- let Y = p(o)
176- let Z = value(O.payments[0]).amount
177- let aa = q(U)
178- let ab = n(U)
179- let ac = u(ab)
180- let ad = ((("duckling_" + U) + "_stat_") + toString(lastBlock.timestamp))
181- let ae = C(U, Z)
182-[IntegerEntry(Y, lastBlock.timestamp), IntegerEntry(ab, (ac + Z)), IntegerEntry(ad, Z), StringEntry(aa, ae._1), StringEntry((ad + "_debug"), makeString(ae._2, ";"))]
180+ let Z = p(o)
181+ let aa = value(P.payments[0]).amount
182+ let ab = q(V)
183+ let ac = n(V)
184+ let ad = u(ac)
185+ let ae = ((("duckling_" + V) + "_stat_") + toString(lastBlock.timestamp))
186+ let af = D(V, aa)
187+[IntegerEntry(Z, lastBlock.timestamp), IntegerEntry(ac, (ad + aa)), IntegerEntry(ae, aa), StringEntry(ab, af._1), StringEntry((ae + "_debug"), makeString(af._2, ";"))]
183188 }
184189
185190
186191
187-@Callable(O)
188-func turnDucklingIntoDuck () = if ((O.caller != k()))
192+@Callable(P)
193+func turnDucklingIntoDuck () = if ((P.caller != k()))
189194 then throw("BIFD: You can't turn duckling")
190195 else {
191- let b = toString(O.caller)
192- let af = toBase58String(O.transactionId)
193- let ag = u(m)
194- let ah = ((1 * 60) * 1000)
195- let ai = (lastBlock.timestamp - (ag + ah))
196- if (if ((ag > 0))
197- then (0 > ai)
196+ let b = toString(P.caller)
197+ let ag = toBase58String(P.transactionId)
198+ let ah = u(m)
199+ let ai = ((1 * 60) * 1000)
200+ let aj = (lastBlock.timestamp - (ah + ai))
201+ if (if ((ah > 0))
202+ then (0 > aj)
198203 else false)
199- then throw((("BTD: Can issue ducklings only once per 1 minutes, please wait for " + toString(fraction(ai, 1, 1000))) + " sec."))
200- else if ((size(O.payments) != 1))
204+ then throw((("BTD: Can issue ducklings only once per 1 minutes, please wait for " + toString(fraction(aj, 1, 1000))) + " sec."))
205+ else if ((size(P.payments) != 1))
201206 then throw("BTD: Bad payment attached (asset[s] or amount)")
202207 else {
203- let aj = value(assetInfo(value(value(O.payments[0]).assetId)))
204- if ((l > x(toBase58String(aj.id))))
208+ let ak = value(assetInfo(value(value(P.payments[0]).assetId)))
209+ if ((l > x(toBase58String(ak.id))))
205210 then throw("BTD: Duckling is not grown yet...")
206- else if ((aj.issuer != this))
211+ else if ((ak.issuer != this))
207212 then throw("BTD: Can use only ducklings from this dApp")
208213 else {
209- let ak = r(toBase58String(aj.id))
210- $Tuple2([BooleanEntry(ak, true), IntegerEntry(m, lastBlock.timestamp)], toBase58String(aj.id))
214+ let al = r(toBase58String(ak.id))
215+ $Tuple2([BooleanEntry(al, true), IntegerEntry(m, lastBlock.timestamp)], toBase58String(ak.id))
211216 }
212217 }
213218 }
214219
215220
216-@Verifier(al)
217-func am () = sigVerify(al.bodyBytes, al.proofs[0], al.senderPublicKey)
221+@Verifier(am)
222+func an () = sigVerify(am.bodyBytes, am.proofs[0], am.senderPublicKey)
218223
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b,c) = {
55 let d = getString(b, c)
66 if ($isInstanceOf(d, "String"))
77 then {
88 let e = d
99 e
1010 }
1111 else ""
1212 }
1313
1414
1515 func f (b,c) = {
1616 let d = getInteger(b, c)
1717 if ($isInstanceOf(d, "Int"))
1818 then {
1919 let g = d
2020 g
2121 }
2222 else 0
2323 }
2424
2525
2626 func h (c) = a(this, c)
2727
2828
2929 func i () = Address(fromBase58String(h("static_oracleAddress")))
3030
3131
3232 func j () = fromBase58String(a(i(), "static_spiceAssetId"))
3333
3434
3535 func k () = Address(fromBase58String(a(i(), "static_breederAddress")))
3636
3737
3838 let l = 1000000000000
3939
4040 let m = "global_issued_timestamp"
4141
4242 func n (o) = (("duckling_" + o) + "_feed")
4343
4444
4545 func p (o) = (("duckling_" + o) + "_fedLastTs")
4646
4747
4848 func q (o) = (("duckling_" + o) + "_level")
4949
5050
5151 func r (o) = (("duckling_" + o) + "_grown")
5252
5353
5454 func s (o) = (("duckling_" + o) + "_startPercentage")
5555
5656
5757 func t (o) = (("duckling_" + o) + "_owner")
5858
5959
6060 func u (c) = {
6161 let v = {
6262 let d = getInteger(this, c)
6363 if ($isInstanceOf(d, "Int"))
6464 then {
6565 let g = d
6666 g
6767 }
6868 else 0
6969 }
7070 v
7171 }
7272
7373
7474 func w (c) = {
7575 let d = getBoolean(this, c)
7676 if ($isInstanceOf(d, "Boolean"))
7777 then {
7878 let g = d
7979 g
8080 }
8181 else false
8282 }
8383
8484
8585 func x (o) = {
8686 let y = q(o)
8787 let d = getString(y)
8888 if ($isInstanceOf(d, "String"))
8989 then {
9090 let z = d
9191 parseIntValue(z)
9292 }
93- else throw("BGCLBI: Weird value detected!")
93+ else if ($isInstanceOf(d, "Unit"))
94+ then {
95+ let A = d
96+ 0
97+ }
98+ else throw("BGCLBI: Weird value detected!")
9499 }
95100
96101
97-func A (o) = {
98- let B = u(p(o))
99- if ((B > 0))
100- then B
102+func B (o) = {
103+ let C = u(p(o))
104+ if ((C > 0))
105+ then C
101106 else lastBlock.timestamp
102107 }
103108
104109
105-func C (o,D) = {
106- let E = lastBlock.timestamp
107- let F = A(o)
108- let G = (E - F)
109- let H = D
110- let I = x(o)
111- let J = (I + D)
112- if ((J >= l))
113- then throw((("CBDB: You are feeding your duckling to much! Only " + toString((l - I))) + "needed!"))
110+func D (o,E) = {
111+ let F = lastBlock.timestamp
112+ let G = B(o)
113+ let H = (F - G)
114+ let I = E
115+ let J = x(o)
116+ let K = (J + E)
117+ if ((K >= l))
118+ then throw((("CBDB: You are feeding your duckling to much! Only " + toString((l - J))) + "needed!"))
114119 else {
115- let K = toString(J)
116- $Tuple2(K, [("currentLevel=" + toString(I)), ("newLevel=" + toString(J)), ("growth=" + toString(H)), ("lastFedTs=" + toString(F)), ("fedDiff=" + toString(G))])
120+ let L = toString(K)
121+ $Tuple2(L, [("currentLevel=" + toString(J)), ("newLevel=" + toString(K)), ("growth=" + toString(I)), ("lastFedTs=" + toString(G)), ("fedDiff=" + toString(H))])
117122 }
118123 }
119124
120125
121-func L (M) = {
122- let d = M
126+func M (N) = {
127+ let d = N
123128 if ($isInstanceOf(d, "Int"))
124129 then {
125- let N = d
126- N
130+ let O = d
131+ O
127132 }
128133 else throw("BAI: wrong type, expected: Int")
129134 }
130135
131136
132-@Callable(O)
133-func configureOracle (P) = if ((O.caller != this))
137+@Callable(P)
138+func configureOracle (Q) = if ((P.caller != this))
134139 then throw("BCO: admin only")
135- else [StringEntry("static_oracleAddress", P)]
140+ else [StringEntry("static_oracleAddress", Q)]
136141
137142
138143
139-@Callable(O)
140-func issueDuckling (b,Q) = if ((O.caller != k()))
144+@Callable(P)
145+func issueDuckling (b,R) = if ((P.caller != k()))
141146 then throw("BIFD: You can't issue free duckling")
142147 else {
143- let R = Issue("BABY-11111111-HZ", "", 1, 0, false, unit, height)
144- let S = calculateAssetId(R)
145- $Tuple2([StringEntry((((b + "_") + Q) + "_di"), toBase58String(S)), IntegerEntry("stats_amount", (u("stats_amount") + 1)), BooleanEntry((("duckling_" + toBase58String(S)) + "_issuedByFeedCall"), (O.caller == this)), IntegerEntry(s(toBase58String(S)), 0), StringEntry(t(toBase58String(S)), b), R, ScriptTransfer(value(addressFromString(b)), 1, S)], toBase58String(S))
148+ let S = Issue("BABY-11111111-HZ", "", 1, 0, false, unit, height)
149+ let T = calculateAssetId(S)
150+ $Tuple2([StringEntry((((b + "_") + R) + "_di"), toBase58String(T)), IntegerEntry("stats_amount", (u("stats_amount") + 1)), BooleanEntry((("duckling_" + toBase58String(T)) + "_issuedByFeedCall"), (P.caller == this)), IntegerEntry(s(toBase58String(T)), 0), StringEntry(t(toBase58String(T)), b), S, ScriptTransfer(value(addressFromString(b)), 1, T)], toBase58String(T))
146151 }
147152
148153
149154
150-@Callable(O)
155+@Callable(P)
151156 func feedDuckling (o) = {
152- let T = toString(O.caller)
153- let U = if (if ((size(O.payments) != 1))
157+ let U = toString(P.caller)
158+ let V = if (if ((size(P.payments) != 1))
154159 then true
155- else (value(O.payments[0]).assetId != j()))
160+ else (value(P.payments[0]).assetId != j()))
156161 then throw("BFD: Bad payment attached (asset[s] or amount)")
157162 else if (w(r(o)))
158163 then throw("BFD: Duckling is already grown")
159164 else if ((o == ""))
160165 then throw("BFD: Please hatch a duckling first!")
161166 else {
162- let V = h(t(o))
163- let W = value(assetInfo(fromBase58String(o)))
164- if ((assetBalance(O.caller, W.id) != 1))
167+ let W = h(t(o))
168+ let X = value(assetInfo(fromBase58String(o)))
169+ if ((assetBalance(P.caller, X.id) != 1))
165170 then throw("BFD: You're not the owner of the duckling")
166- else if ((V != toString(O.caller)))
171+ else if ((W != toString(P.caller)))
167172 then throw("BFD: You can only feed ducklings that you won/bought yourself!")
168- else if ((W.issuer != this))
173+ else if ((X.issuer != this))
169174 then throw("BFD: Cant find duckling with such id")
170175 else {
171- let X = toBase58String(W.id)
172- X
176+ let Y = toBase58String(X.id)
177+ Y
173178 }
174179 }
175- let Y = p(o)
176- let Z = value(O.payments[0]).amount
177- let aa = q(U)
178- let ab = n(U)
179- let ac = u(ab)
180- let ad = ((("duckling_" + U) + "_stat_") + toString(lastBlock.timestamp))
181- let ae = C(U, Z)
182-[IntegerEntry(Y, lastBlock.timestamp), IntegerEntry(ab, (ac + Z)), IntegerEntry(ad, Z), StringEntry(aa, ae._1), StringEntry((ad + "_debug"), makeString(ae._2, ";"))]
180+ let Z = p(o)
181+ let aa = value(P.payments[0]).amount
182+ let ab = q(V)
183+ let ac = n(V)
184+ let ad = u(ac)
185+ let ae = ((("duckling_" + V) + "_stat_") + toString(lastBlock.timestamp))
186+ let af = D(V, aa)
187+[IntegerEntry(Z, lastBlock.timestamp), IntegerEntry(ac, (ad + aa)), IntegerEntry(ae, aa), StringEntry(ab, af._1), StringEntry((ae + "_debug"), makeString(af._2, ";"))]
183188 }
184189
185190
186191
187-@Callable(O)
188-func turnDucklingIntoDuck () = if ((O.caller != k()))
192+@Callable(P)
193+func turnDucklingIntoDuck () = if ((P.caller != k()))
189194 then throw("BIFD: You can't turn duckling")
190195 else {
191- let b = toString(O.caller)
192- let af = toBase58String(O.transactionId)
193- let ag = u(m)
194- let ah = ((1 * 60) * 1000)
195- let ai = (lastBlock.timestamp - (ag + ah))
196- if (if ((ag > 0))
197- then (0 > ai)
196+ let b = toString(P.caller)
197+ let ag = toBase58String(P.transactionId)
198+ let ah = u(m)
199+ let ai = ((1 * 60) * 1000)
200+ let aj = (lastBlock.timestamp - (ah + ai))
201+ if (if ((ah > 0))
202+ then (0 > aj)
198203 else false)
199- then throw((("BTD: Can issue ducklings only once per 1 minutes, please wait for " + toString(fraction(ai, 1, 1000))) + " sec."))
200- else if ((size(O.payments) != 1))
204+ then throw((("BTD: Can issue ducklings only once per 1 minutes, please wait for " + toString(fraction(aj, 1, 1000))) + " sec."))
205+ else if ((size(P.payments) != 1))
201206 then throw("BTD: Bad payment attached (asset[s] or amount)")
202207 else {
203- let aj = value(assetInfo(value(value(O.payments[0]).assetId)))
204- if ((l > x(toBase58String(aj.id))))
208+ let ak = value(assetInfo(value(value(P.payments[0]).assetId)))
209+ if ((l > x(toBase58String(ak.id))))
205210 then throw("BTD: Duckling is not grown yet...")
206- else if ((aj.issuer != this))
211+ else if ((ak.issuer != this))
207212 then throw("BTD: Can use only ducklings from this dApp")
208213 else {
209- let ak = r(toBase58String(aj.id))
210- $Tuple2([BooleanEntry(ak, true), IntegerEntry(m, lastBlock.timestamp)], toBase58String(aj.id))
214+ let al = r(toBase58String(ak.id))
215+ $Tuple2([BooleanEntry(al, true), IntegerEntry(m, lastBlock.timestamp)], toBase58String(ak.id))
211216 }
212217 }
213218 }
214219
215220
216-@Verifier(al)
217-func am () = sigVerify(al.bodyBytes, al.proofs[0], al.senderPublicKey)
221+@Verifier(am)
222+func an () = sigVerify(am.bodyBytes, am.proofs[0], am.senderPublicKey)
218223

github/deemru/w8io/873ac7e 
85.60 ms