tx · Dbo7SzxoTB96BduL8Rg1BkEoTG1xBHZ3NRQdExS9chgL

3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw:  -0.02100000 Waves

2022.12.21 17:05 [3435610] smart account 3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw > SELF 0.00000000 Waves

{ "type": 13, "id": "Dbo7SzxoTB96BduL8Rg1BkEoTG1xBHZ3NRQdExS9chgL", "fee": 2100000, "feeAssetId": null, "timestamp": 1671631482232, "version": 2, "chainId": 87, "sender": "3P5UKXpQbom7GB2WGdPG5yGQPeQQuM3hFmw", "senderPublicKey": "4MfTwwE7yP4BFGaifQrcc9Nwb5BA9t92WKhVb6Ton65k", "proofs": [ "24xVDgfwLvW3WL1nAqCSjpANPCdggD5YfXK5UsKZh8Zkie61tmJ8nd4QQDfXBRrfwHf8V7g7jV3rPsviXSNswYrg" ], "script": "base64:AAIFAAAAAAAAACoIAhIICgYYGBEBARgSCQoHGBgRERgBGBIFCgMIARgSAwoBGBIFCgMICAEAAAAcAQAAABBnZXRTdHJpbmdPclRocm93AAAAAgAAAAdhZGRyZXNzAAAAA2tleQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAMQ2FuJ3QgcmVhZCAnBQAAAANrZXkCAAAADScgYXQgYWRkcmVzcyAJAAQlAAAAAQUAAAAHYWRkcmVzcwEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACAAAAB2FkZHJlc3MAAAADa2V5CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAxDYW4ndCByZWFkICcFAAAAA2tleQIAAAANJyBhdCBhZGRyZXNzIAkABCUAAAABBQAAAAdhZGRyZXNzAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQAAAAxtYXliZUFkZHJlc3MJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABCYAAAABBQAAAAxtYXliZUFkZHJlc3MJAAEsAAAAAgkAASwAAAACAgAAABpDYW4ndCBwYXJzZSBhZGRyZXNzIGZyb20gJwUAAAAMbWF5YmVBZGRyZXNzAgAAAAEnAQAAABFwYXJzZUludE9yRGVmYXVsdAAAAAIAAAAIbWF5YmVJbnQAAAAHZGVmYXVsdAkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABLYAAAABBQAAAAhtYXliZUludAUAAAAHZGVmYXVsdAEAAAAPcGFyc2VJbnRPclRocm93AAAAAQAAAAhtYXliZUludAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEtgAAAAEFAAAACG1heWJlSW50CQABLAAAAAIJAAEsAAAAAgIAAAAaQ2FuJ3QgcGFyc2UgaW50ZWdlciBmcm9tICcFAAAACG1heWJlSW50AgAAAAEnAQAAAApnZXRBc3NldElkAAAAAQAAAAVhc3NldAMJAAAAAAAAAgUAAAAFYXNzZXQCAAAABVdBVkVTBQAAAAR1bml0CQACWQAAAAEFAAAABWFzc2V0AAAAAAljb2xsZWN0b3IJAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAR0aGlzAgAAAAljb2xsZWN0b3IAAAAAB2ZlZVJhdGUJAQAAABFnZXRJbnRlZ2VyT3JUaHJvdwAAAAIFAAAABHRoaXMCAAAACGZlZS1yYXRlAAAAAAZvcmFjbGUJAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAR0aGlzAgAAAAZvcmFjbGUAAAAADXN3b3BmaVJvdXRpbmcJAQAAABNwYXJzZUFkZHJlc3NPclRocm93AAAAAQkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAR0aGlzAgAAAA5zd29wZmktcm91dGluZwAAAAANcHV6emxlUm91dGluZwkBAAAAE3BhcnNlQWRkcmVzc09yVGhyb3cAAAABCQEAAAAQZ2V0U3RyaW5nT3JUaHJvdwAAAAIFAAAABHRoaXMCAAAADnB1enpsZS1yb3V0aW5nAAAAAAVwb29scwkABLUAAAACCQEAAAAQZ2V0U3RyaW5nT3JUaHJvdwAAAAIFAAAABm9yYWNsZQIAAAAFcG9vbHMCAAAAASwAAAAAC3BlcmNlbnRSYXRlCQEAAAARZ2V0SW50ZWdlck9yVGhyb3cAAAACBQAAAAR0aGlzAgAAAAxwZXJjZW50LXJhdGUAAAAABnJlZktleQIAAAAGa2VlcGVyAAAAABRwdXp6bGVSZXdhcmRBc3NldFN0cgkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAR0aGlzAgAAABNwdXp6bGUtcmV3YXJkLXRva2VuAAAAABNwdXp6bGVSZXdhcmRBc3NldElkCQEAAAAKZ2V0QXNzZXRJZAAAAAEFAAAAFHB1enpsZVJld2FyZEFzc2V0U3RyAAAAAAZwUG9vbHMJAAS1AAAAAgkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAR0aGlzAgAAAAdwLXBvb2xzAgAAAAEsAQAAAA9hc3NldElkVG9TdHJpbmcAAAABAAAAB2Fzc2V0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c2V0UmVjZWl2ZWQDCQAAZgAAAAIAAAAAAAAAAAAFAAAAEmVzdEFtb3VudFRvUmVjZWl2ZQkAAAIAAAABAgAAACNlc3RBbW91bnRUb1JlY2VpdmUgbXVzdCBiZSBwb3NpdGl2ZQMJAQAAAA9jb250YWluc0VsZW1lbnQAAAACBQAAAAVwb29scwUAAAAEcG9vbAQAAAAKcG9vbEFzc2V0QQkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAtwb29sQWRkcmVzcwIAAAAKQV9hc3NldF9pZAQAAAAKcG9vbEFzc2V0QgkBAAAAEGdldFN0cmluZ09yVGhyb3cAAAACBQAAAAtwb29sQWRkcmVzcwIAAAAKQl9hc3NldF9pZAQAAAAMcG9vbEFzc2V0SWRBCQEAAAAKZ2V0QXNzZXRJZAAAAAEFAAAACnBvb2xBc3NldEEEAAAADHBvb2xBc3NldElkQgkBAAAACmdldEFzc2V0SWQAAAABBQAAAApwb29sQXNzZXRCBAAAAAskdDA0MDY4NDQxMgMDCQAAAAAAAAIIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQFAAAADHBvb2xBc3NldElkQQkAAAAAAAACBQAAAA9hc3NldFJlY2VpdmVkSWQFAAAADHBvb2xBc3NldElkQgcJAAUUAAAAAgUAAAAMcG9vbEFzc2V0SWRBBQAAAAxwb29sQXNzZXRJZEIDAwkAAAAAAAACBQAAAA9hc3NldFJlY2VpdmVkSWQFAAAADHBvb2xBc3NldElkQQkAAAAAAAACCAUAAAAHcGF5bWVudAAAAAdhc3NldElkBQAAAAxwb29sQXNzZXRJZEIHCQAFFAAAAAIFAAAADHBvb2xBc3NldElkQgUAAAAMcG9vbEFzc2V0SWRBCQAAAgAAAAECAAAAF1Vuc3VwcG9ydGVkIGFzc2V0cyBwYWlyBAAAAAdhc3NldEluCAUAAAALJHQwNDA2ODQ0MTIAAAACXzEEAAAACGFzc2V0T3V0CAUAAAALJHQwNDA2ODQ0MTIAAAACXzIEAAAACyR0MDQ0Mzk1Mjc1AwkAAAAAAAACBQAAAAx2ZXJzaW9uTWFqb3IAAAAAAAAAAAEJAAUUAAAAAgIAAAAMY2FsbEZ1bmN0aW9uCQAETAAAAAICAAAACGV4Y2hhbmdlCQAETAAAAAIJ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Y3JpcHRUcmFuc2ZlcgAAAAMIBQAAAANpbnYAAAAGY2FsbGVyBQAAAApkZWx0YVByb3h5BQAAAAdhc3NldElkBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAABQAAAANpbnYBAAAABHN3YXAAAAAGAAAACWFkZHJlc3NlcwAAAA9hc3NldHNUb1JlY2VpdmUAAAALZXN0UmVjZWl2ZWQAAAARc2xpcHBhZ2VUb2xlcmFuY2UAAAALbWluUmVjZWl2ZWQAAAAHb3B0aW9ucwQAAAANJHQwMTAxMTQxMDE2OAkBAAAADmdldFN3YXBPcHRpb25zAAAAAQUAAAAHb3B0aW9ucwQAAAAIZGVhZGxpbmUIBQAAAA0kdDAxMDExNDEwMTY4AAAAAl8xBAAAAAxyZWZlcnJlck5hbWUIBQAAAA0kdDAxMDExNDEwMTY4AAAAAl8yBAAAABBpc1ZhbGlkVGltZXN0YW1wCQEAAAAWdmFsaWRhdGVCbG9ja1RpbWVzdGFtcAAAAAEFAAAACGRlYWRsaW5lAwkAAAAAAAACBQAAABBpc1ZhbGlkVGltZXN0YW1wBQAAABBpc1ZhbGlkVGltZXN0YW1wBAAAAAZyZXN1bHQJAQAAAAh3cmFwU3dhcAAAAAYFAAAAA2ludgUAAAAJYWRkcmVzc2VzBQAAAA9hc3NldHNUb1JlY2VpdmUFAAAAC2VzdFJlY2VpdmVkBQAAABFzbGlwcGFnZVRvbGVyYW5jZQUAAAALbWluUmVjZWl2ZWQDCQAAAAAAAAIFAAAABnJlc3VsdAUAAAAGcmVzdWx0AwkAAGYAAAACCQABMQAAAAEFAAAADHJlZmVycmVyTmFtZQAAAAAAAAAAAAQAAAAKYXNzZXRGaW5hbAkAAZEAAAACBQAAAA9hc3NldHNUb1JlY2VpdmUJAABlAAAAAgkAAZAAAAABBQAAAA9hc3NldHNUb1JlY2VpdmUAAAAAAAAAAAEEAAAAB2Fzc2V0SWQJAQAAAApnZXRBc3NldElkAAAAAQUAAAAKYXNzZXRGaW5hbAQAAAANJHQwMTA1MDAxMDU3MAkBAAAAD2dldFJlZmVycmVyRGF0YQAAAAEFAAAADHJlZmVycmVyTmFtZQQAAAAPcmVmZXJyZXJBZGRyZXNzCAUAAAANJHQwMTA1MDAxMDU3MAAAAAJfMQQAAAAPcmVmZXJyZXJQZXJjZW50CAUAAAANJHQwMTA1MDAxMDU3MAAAAAJfMgQAAAAMY29sbGVjdG9yRmVlCAkAAZEAAAACBQAAAAZyZXN1bHQAAAAAAAAAAAEAAAAGYW1vdW50BAAAAA5yZWZlcnJlclJld2FyZAkAAGsAAAADBQAAAAxjb2xsZWN0b3JGZWUFAAAAD3JlZmVycmVyUGVyY2VudAAAAAAAAAAAZAkABEwAAAACCQABkQAAAAIFAAAABnJlc3VsdAAAAAAAAAAAAAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAljb2xsZWN0b3IJAABlAAAAAgUAAAAMY29sbGVjdG9yRmVlBQAAAA5yZWZlcnJlclJld2FyZAUAAAAHYXNzZXRJZAkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAA9yZWZlcnJlckFkZHJlc3MFAAAADnJlZmVycmVyUmV3YXJkBQAAAAdhc3NldElkBQAAAANuaWwFAAAABnJlc3VsdAkAAAIAAAABAgAAACRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAA2ludgEAAAAKc3dvcGZpU3dhcAAAAAcAAAAKZXhjaGFuZ2VycwAAAA5leGNoYW5nZXJzVHlwZQAAAAVhcmdzMQAAAAVhcmdzMgAAABFyb3V0aW5nQXNzZXRzS2V5cwAAABJtaW5BbW91bnRUb1JlY2VpdmUAAAAHb3B0aW9ucwQAAAANJHQwMTExMjMxMTE3NwkBAAAADmdldFN3YXBPcHRpb25zAAAAAQUAAAAHb3B0aW9ucwQAAAAIZGVhZGxpbmUIBQAAAA0kdDAxMTEyMzExMTc3AAAAAl8xBAAAAAxyZWZlcnJlck5hbWUIBQAAAA0kdDAxMTEyMzExMTc3AAAAAl8yBAAAABBpc1ZhbGlkVGltZXN0YW1wCQEAAAAWdmFsaWRhdGVCbG9ja1RpbWVzdGFtcAAAAAEFAAAACGRlYWRsaW5lAwkAAAAAAAACBQAAABBpc1ZhbGlkVGltZXN0YW1wBQAAABBpc1ZhbGlkVGltZXN0YW1wBAAAAAZyZXN1bHQJAQAAAA53cmFwU3dvcGZpU3dhcAAAAAcFAAAAA2ludgUAAAAKZXhjaGFuZ2VycwUAAAAOZXhjaGFuZ2Vyc1R5cGUFAAAABWFyZ3MxBQAAAAVhcmdzMgUAAAARcm91dGluZ0Fzc2V0c0tleXMFAAAAEm1pbkFtb3VudFRvUmVjZWl2ZQMJAAAAAAAAAgUAAAAGcmVzdWx0BQAAAAZyZXN1bHQDCQAAZgAAAAIJAAExAAAAAQUAAAAMcmVmZXJyZXJOYW1lAAAAAAAAAAAABAAAAA1sYXN0RXhjaGFuZ2VyCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQkAAZEAAAACBQAAAApleGNoYW5nZXJzCQAAZQAAAAIJAAGQAAAAAQUAAAAKZXhjaGFuZ2VycwAAAAAAAAAAAQIAAAApQ2FuJ3QgcGFyc2UgbGFzdCBleGNoYW5nZXIgc3dvcGZpIGFkZHJlc3MEAAAADmxhc3RBc3NldElkS2V5CQABLAAAAAIJAAGRAAAAAgkABLUAAAACCQABkQAAAAIFAAAAEXJvdXRpbmdBc3NldHNLZXlzCQAAZQAAAAIJAAGQAAAAAQUAAAARcm91dGluZ0Fzc2V0c0tleXMAAAAAAAAAAAECAAAAAV8AAAAAAAAAAAACAAAACV9hc3NldF9pZAQAAAAKYXNzZXRGaW5hbAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAADWxhc3RFeGNoYW5nZXIFAAAADmxhc3RBc3NldElkS2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABZDYW4ndCByZWFkIHBhcmFtZXRlciAnBQAAAA5sYXN0QXNzZXRJZEtleQIAAAAQJyBmb3IgZXhjaGFuZ2VyIAkABCUAAAABBQAAAA1sYXN0RXhjaGFuZ2VyBAAAAAdhc3NldElkCQEAAAAKZ2V0QXNzZXRJZAAAAAEFAAAACmFzc2V0RmluYWwEAAAADSR0MDExODg3MTE5NTcJAQAAAA9nZXRSZWZlcnJlckRhdGEAAAABBQAAAAxyZWZlcnJlck5hbWUEAAAAD3JlZmVycmVyQWRkcmVzcwgFAAAADSR0MDExODg3MTE5NTcAAAACXzEEAAAAD3JlZmVycmVyUGVyY2VudAgFAAAADSR0MDExODg3MTE5NTcAAAACXzIEAAAADGNvbGxlY3RvckZlZQgJAAGRAAAAAgUAAAAGcmVzdWx0AAAAAAAAAAABAAAABmFtb3VudAQAAAAOcmVmZXJyZXJSZXdhcmQJAABrAAAAAwUAAAAMY29sbGVjdG9yRmVlBQAAAA9yZWZlcnJlclBlcmNlbnQAAAAAAAAAAGQJAARMAAAAAgkAAZEAAAACBQAAAAZyZXN1bHQAAAAAAAAAAAAJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAJY29sbGVjdG9yCQAAZQAAAAIFAAAADGNvbGxlY3RvckZlZQUAAAAOcmVmZXJyZXJSZXdhcmQFAAAAB2Fzc2V0SWQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAPcmVmZXJyZXJBZGRyZXNzBQAAAA5yZWZlcnJlclJld2FyZAUAAAAHYXNzZXRJZAUAAAADbmlsBQAAAAZyZXN1bHQJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAANpbnYBAAAACnB1enpsZVN3YXAAAAADAAAACXJvdXRlc1N0cgAAAAxtaW5Ub1JlY2VpdmUAAAAHb3B0aW9ucwQAAAANJHQwMTIzOTIxMjQ0NgkBAAAADmdldFN3YXBPcHRpb25zAAAAAQUAAAAHb3B0aW9ucwQAAAAIZGVhZGxpbmUIBQAAAA0kdDAxMjM5MjEyNDQ2AAAAAl8xBAAAAAxyZWZlcnJlck5hbWUIBQAAAA0kdDAxMjM5MjEyNDQ2AAAAAl8yBAAAABBpc1ZhbGlkVGltZXN0YW1wCQEAAAAWdmFsaWRhdGVCbG9ja1RpbWVzdGFtcAAAAAEFAAAACGRlYWRsaW5lAwkAAAAAAAACBQAAABBpc1ZhbGlkVGltZXN0YW1wBQAAABBpc1ZhbGlkVGltZXN0YW1wAwkAAAAAAAACCQABMQAAAAEFAAAACXJvdXRlc1N0cgAAAAAAAAAAAAkAAAIAAAABAgAAAA9JbnZhbGlkIHJvdXRpbmcDCQAAZwAAAAIAAAAAAAAAAAAFAAAADG1pblRvUmVjZWl2ZQkAAAIAAAABAgAAABhTdW0gdG8gcmVjZWl2ZSBpcyB0byBsb3cEAAAADWJhbGFuY2VCZWZvcmUJAQAAABNnZXRCYWxhbmNlQnlBZGRyZXNzAAAAAgUAAAAJY29sbGVjdG9yBQAAABNwdXp6bGVSZXdhcmRBc3NldElkAwkAAAAAAAACBQAAAA1iYWxhbmNlQmVmb3JlBQAAAA1iYWxhbmNlQmVmb3JlBAAAAAZyZXN1bHQJAQAAAA53cmFwUHV6emxlU3dhcAAAAAMFAAAAA2ludgUAAAAJcm91dGVzU3RyBQAAAAxtaW5Ub1JlY2VpdmUDCQAAAAAAAAIFAAAABnJlc3VsdAUAAAAGcmVzdWx0AwkAAGYAAAACCQABMQAAAAEFAAAADHJlZmVycmVyTmFtZQAAAAAAAAAAAAQAAAAMYXNzZXRJZEZpbmFsCQABkQAAAAIJAAS1AAAAAgUAAAAJcm91dGVzU3RyAgAAAAEsCQAAZQAAAAIJAAGQAAAAAQkABLUAAAACBQAAAAlyb3V0ZXNTdHICAAAAASwAAAAAAAAAAAEEAAAAB2Fzc2V0SWQJAQAAAApnZXRBc3NldElkAAAAAQUAAAAMYXNzZXRJZEZpbmFsBAAAAA0kdDAxMzAwNzEzMDc3CQEAAAAPZ2V0UmVmZXJyZXJEYXRhAAAAAQUAAAAMcmVmZXJyZXJOYW1lBAAAAA9yZWZlcnJlckFkZHJlc3MIBQAAAA0kdDAxMzAwNzEzMDc3AAAAAl8xBAAAAA9yZWZlcnJlclBlcmNlbnQIBQAAAA0kdDAxMzAwNzEzMDc3AAAAAl8yBAAAAAxiYWxhbmNlQWZ0ZXIJAQAAABNnZXRCYWxhbmNlQnlBZGRyZXNzAAAAAgUAAAAJY29sbGVjdG9yBQAAABNwdXp6bGVSZXdhcmRBc3NldElkAwkAAAAAAAAC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", "height": 3435610, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2QD7zp7YZyvD9NAMpsdX4SjrzTRSBrBbXsq6Qs9aXZHg Next: 2SrM22bQJmLjTt99QdaXTXkfLuHfFeVrV9PmeFTsmQ6e Diff:
OldNewDifferences
484484 }
485485
486486
487+@Verifier(bu)
488+func bv () = {
489+ let bw = addressFromString(valueOrElse(getString(this, "Oracle"), ""))
490+ let bx = if (isDefined(bw))
491+ then getString(value(bw), "AdminKeys")
492+ else unit
493+ let z = bx
494+ if ($isInstanceOf(z, "String"))
495+ then {
496+ let by = z
497+ let bz = {
498+ let bA = split(by, ",")
499+[fromBase58String(bA[0]), fromBase58String(bA[1]), fromBase58String(bA[2])]
500+ }
501+ func bB (bC) = if (sigVerify(bu.bodyBytes, bC, bz[0]))
502+ then 1
503+ else if (sigVerify(bu.bodyBytes, bC, bz[1]))
504+ then 10
505+ else if (sigVerify(bu.bodyBytes, bC, bz[2]))
506+ then 100
507+ else 0
508+
509+ containsElement([110, 101, 11], (bB(bu.proofs[0]) + bB(bu.proofs[1])))
510+ }
511+ else sigVerify(bu.bodyBytes, bu.proofs[0], bu.senderPublicKey)
512+ }
513+
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b,c) = valueOrErrorMessage(getString(b, c), ((("Can't read '" + c) + "' at address ") + toString(b)))
55
66
77 func d (b,c) = valueOrErrorMessage(getInteger(b, c), ((("Can't read '" + c) + "' at address ") + toString(b)))
88
99
1010 func e (f) = valueOrErrorMessage(addressFromString(f), (("Can't parse address from '" + f) + "'"))
1111
1212
1313 func g (h,i) = valueOrElse(parseInt(h), i)
1414
1515
1616 func j (h) = valueOrErrorMessage(parseInt(h), (("Can't parse integer from '" + h) + "'"))
1717
1818
1919 func k (l) = if ((l == "WAVES"))
2020 then unit
2121 else fromBase58String(l)
2222
2323
2424 let m = e(a(this, "collector"))
2525
2626 let n = d(this, "fee-rate")
2727
2828 let o = e(a(this, "oracle"))
2929
3030 let p = e(a(this, "swopfi-routing"))
3131
3232 let q = e(a(this, "puzzle-routing"))
3333
3434 let r = split(a(o, "pools"), ",")
3535
3636 let s = d(this, "percent-rate")
3737
3838 let t = "keeper"
3939
4040 let u = a(this, "puzzle-reward-token")
4141
4242 let v = k(u)
4343
4444 let w = split(a(this, "p-pools"), ",")
4545
4646 func x (y) = {
4747 let z = y
4848 if ($isInstanceOf(z, "ByteVector"))
4949 then {
5050 let l = z
5151 toBase58String(l)
5252 }
5353 else if ($isInstanceOf(z, "Unit"))
5454 then {
5555 let A = z
5656 "WAVES"
5757 }
5858 else throw("Match error")
5959 }
6060
6161
6262 func B (y) = {
6363 let z = y
6464 if ($isInstanceOf(z, "ByteVector"))
6565 then {
6666 let l = z
6767 assetBalance(this, l)
6868 }
6969 else if ($isInstanceOf(z, "Unit"))
7070 then {
7171 let A = z
7272 wavesBalance(this).available
7373 }
7474 else throw("Match error")
7575 }
7676
7777
7878 func C (b,y) = {
7979 let z = y
8080 if ($isInstanceOf(z, "ByteVector"))
8181 then {
8282 let l = z
8383 assetBalance(b, l)
8484 }
8585 else if ($isInstanceOf(z, "Unit"))
8686 then {
8787 let A = z
8888 wavesBalance(b).available
8989 }
9090 else throw("Match error")
9191 }
9292
9393
9494 func D (E) = {
9595 let F = fraction(E, 1, n)
9696 $Tuple2((E - F), F)
9797 }
9898
9999
100100 func G (H) = {
101101 let I = e(valueOrErrorMessage(getString(this, (("referrer-" + H) + "-address")), (("referrer with name " + H) + " not found")))
102102 let J = valueOrElse(getInteger(this, (("referrer-" + H) + "-percent")), s)
103103 if (if ((0 > J))
104104 then true
105105 else (J > 100))
106106 then throw("Incorrect percent rate")
107107 else $Tuple2(I, J)
108108 }
109109
110110
111111 func K (L) = {
112112 func M (N,O) = if ((O >= size(L)))
113113 then (N :+ "")
114114 else (N :+ L[O])
115115
116116 let P = [0, 1]
117117 let Q = {
118118 let R = P
119119 let S = size(R)
120120 let T = nil
121121 func U (V,W) = if ((W >= S))
122122 then V
123123 else M(V, R[W])
124124
125125 func X (V,W) = if ((W >= S))
126126 then V
127127 else throw("List size exceeds 2")
128128
129129 X(U(U(T, 0), 1), 2)
130130 }
131131 let Y = g(Q[0], 0)
132132 let H = Q[1]
133133 $Tuple2(Y, H)
134134 }
135135
136136
137137 func Z (Y) = if (if ((Y > 0))
138138 then (lastBlock.timestamp > Y)
139139 else false)
140140 then throw(((("This swap expired at timestamp " + toString(Y)) + ". Current: ") + toString(lastBlock.timestamp)))
141141 else true
142142
143143
144144 func aa (ab,ac,ad,ae,af) = {
145145 let ag = e(ab)
146146 let ah = j(split(a(ag, "version"), ".")[0])
147147 let ai = k(ad)
148148 if ((0 > ae))
149149 then throw("estAmountToReceive must be positive")
150150 else if (containsElement(r, ab))
151151 then {
152152 let aj = a(ag, "A_asset_id")
153153 let ak = a(ag, "B_asset_id")
154154 let al = k(aj)
155155 let am = k(ak)
156156 let an = if (if ((ac.assetId == al))
157157 then (ai == am)
158158 else false)
159159 then $Tuple2(al, am)
160160 else if (if ((ai == al))
161161 then (ac.assetId == am)
162162 else false)
163163 then $Tuple2(am, al)
164164 else throw("Unsupported assets pair")
165165 let ao = an._1
166166 let ap = an._2
167167 let aq = if ((ah == 1))
168168 then $Tuple2("callFunction", ["exchange", ["1"]])
169169 else if ((ah == 2))
170170 then if ((0 >= ae))
171171 then throw("estAmountToReceive must be positive")
172172 else if (if ((0 > af))
173173 then true
174174 else (af > 1000))
175175 then throw("Slippage tolerance must be non-negative and less than or equal to 1000")
176176 else {
177177 let ar = (ae - fraction(ae, af, 1000))
178178 $Tuple2("exchange", [ae, if ((ar > 0))
179179 then ar
180180 else 1])
181181 }
182182 else throw((("Unknown pool version '" + toString(ah)) + "', but 1 or 2 expected"))
183183 let as = aq._1
184184 let at = aq._2
185185 let au = B(ai)
186186 if ((au == au))
187187 then {
188188 let av = invoke(ag, as, at, [ac])
189189 if ((av == av))
190190 then {
191191 let aw = (B(ai) - au)
192192 if ((aw == aw))
193193 then if ((0 >= aw))
194194 then throw("Received amount from pool must be positive")
195195 else aw
196196 else throw("Strict value is not equal to itself.")
197197 }
198198 else throw("Strict value is not equal to itself.")
199199 }
200200 else throw("Strict value is not equal to itself.")
201201 }
202202 else if (containsElement(w, ab))
203203 then {
204204 let au = B(ai)
205205 if ((au == au))
206206 then {
207207 let av = invoke(ag, "swap", [ad, 0], [ac])
208208 if ((av == av))
209209 then {
210210 let aw = (B(ai) - au)
211211 if ((aw == aw))
212212 then if ((0 >= aw))
213213 then throw("Received amount from pool must be positive")
214214 else aw
215215 else throw("Strict value is not equal to itself.")
216216 }
217217 else throw("Strict value is not equal to itself.")
218218 }
219219 else throw("Strict value is not equal to itself.")
220220 }
221221 else throw((("There is no pool at address '" + ab) + "'"))
222222 }
223223
224224
225225 func ax (ay,az,aA,aB,af,aC) = {
226226 let aD = if ((size(ay.payments) > 0))
227227 then ay.payments[0]
228228 else throw("Payment required")
229229 let aE = aA[(size(aA) - 1)]
230230 let aF = k(aE)
231231 let P = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
232232 func aG (aH,O) = if ((O >= size(az)))
233233 then aH
234234 else {
235235 let ad = aA[O]
236236 let ai = k(ad)
237237 let z = aa(az[O], aH, ad, aB[O], af)
238238 if ($isInstanceOf(z, "Int"))
239239 then {
240240 let aI = z
241241 AttachedPayment(ai, aI)
242242 }
243243 else throw("Can't handle swap result")
244244 }
245245
246246 let aJ = if ((size(az) > 0))
247247 then {
248248 let R = P
249249 let S = size(R)
250250 let T = aD
251251 func U (V,W) = if ((W >= S))
252252 then V
253253 else aG(V, R[W])
254254
255255 func X (V,W) = if ((W >= S))
256256 then V
257257 else throw("List size exceeds 10")
258258
259259 X(U(U(U(U(U(U(U(U(U(U(T, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
260260 }
261261 else throw("Path cannot be empty")
262262 let aK = D(aJ.amount)
263263 let aL = aK._1
264264 let F = aK._2
265265 if ((0 >= aJ.amount))
266266 then throw((("Swap result " + toString(aJ.amount)) + " must be positive"))
267267 else if ((aC > aL))
268268 then throw(((("Swap result " + toString(aL)) + " is less then expected ") + toString(aC)))
269269 else [ScriptTransfer(ay.caller, aL, aF), ScriptTransfer(m, F, aF)]
270270 }
271271
272272
273273 func aM (ay,aN,aO,aP,aQ,aR,aS) = {
274274 let aD = if ((size(ay.payments) > 0))
275275 then ay.payments[0]
276276 else throw("Payment required")
277277 let aT = valueOrErrorMessage(addressFromString(aN[(size(aN) - 1)]), "Can't parse last exchanger swopfi address")
278278 let aU = (split(aR[(size(aR) - 1)], "_")[0] + "_asset_id")
279279 let aE = valueOrErrorMessage(getString(aT, aU), ((("Can't read parameter '" + aU) + "' for exchanger ") + toString(aT)))
280280 let aF = k(aE)
281281 let au = B(aF)
282282 if ((au == au))
283283 then {
284284 let av = invoke(p, "routingTrade", [aN, aO, aP, aQ, aR, aS], [aD])
285285 if ((av == av))
286286 then {
287287 let aV = B(aF)
288288 if ((aV == aV))
289289 then {
290290 let aW = (aV - au)
291291 let aX = D(aW)
292292 let aL = aX._1
293293 let F = aX._2
294294 if ((0 >= aW))
295295 then throw((("Swap result " + toString(aW)) + " must be positive"))
296296 else if ((aS > aL))
297297 then throw(((("Swap result " + toString(aL)) + " is less then expected ") + toString(aS)))
298298 else [ScriptTransfer(ay.caller, aL, aF), ScriptTransfer(m, F, aF)]
299299 }
300300 else throw("Strict value is not equal to itself.")
301301 }
302302 else throw("Strict value is not equal to itself.")
303303 }
304304 else throw("Strict value is not equal to itself.")
305305 }
306306
307307
308308 func aY (ay,aZ,ba) = {
309309 let aD = if ((size(ay.payments) > 0))
310310 then ay.payments[0]
311311 else throw("Payment required")
312312 let bb = split(aZ, ",")[(size(split(aZ, ",")) - 1)]
313313 let y = k(bb)
314314 let au = B(y)
315315 if ((au == au))
316316 then {
317317 let av = invoke(q, "swapWithReferral", [aZ, ba, t], [aD])
318318 if ((av == av))
319319 then {
320320 let aV = B(y)
321321 if ((aV == aV))
322322 then {
323323 let bc = (aV - au)
324324 if ((bc == bc))
325325 then [ScriptTransfer(ay.caller, bc, y)]
326326 else throw("Strict value is not equal to itself.")
327327 }
328328 else throw("Strict value is not equal to itself.")
329329 }
330330 else throw("Strict value is not equal to itself.")
331331 }
332332 else throw("Strict value is not equal to itself.")
333333 }
334334
335335
336336 @Callable(ay)
337337 func swap (az,aA,aB,af,aC,L) = {
338338 let bd = K(L)
339339 let Y = bd._1
340340 let H = bd._2
341341 let be = Z(Y)
342342 if ((be == be))
343343 then {
344344 let av = ax(ay, az, aA, aB, af, aC)
345345 if ((av == av))
346346 then if ((size(H) > 0))
347347 then {
348348 let aE = aA[(size(aA) - 1)]
349349 let y = k(aE)
350350 let bf = G(H)
351351 let bg = bf._1
352352 let bh = bf._2
353353 let bi = av[1].amount
354354 let bj = fraction(bi, bh, 100)
355355 [av[0], ScriptTransfer(m, (bi - bj), y), ScriptTransfer(bg, bj, y)]
356356 }
357357 else av
358358 else throw("Strict value is not equal to itself.")
359359 }
360360 else throw("Strict value is not equal to itself.")
361361 }
362362
363363
364364
365365 @Callable(ay)
366366 func swopfiSwap (aN,aO,aP,aQ,aR,aS,L) = {
367367 let bk = K(L)
368368 let Y = bk._1
369369 let H = bk._2
370370 let be = Z(Y)
371371 if ((be == be))
372372 then {
373373 let av = aM(ay, aN, aO, aP, aQ, aR, aS)
374374 if ((av == av))
375375 then if ((size(H) > 0))
376376 then {
377377 let aT = valueOrErrorMessage(addressFromString(aN[(size(aN) - 1)]), "Can't parse last exchanger swopfi address")
378378 let aU = (split(aR[(size(aR) - 1)], "_")[0] + "_asset_id")
379379 let aE = valueOrErrorMessage(getString(aT, aU), ((("Can't read parameter '" + aU) + "' for exchanger ") + toString(aT)))
380380 let y = k(aE)
381381 let bl = G(H)
382382 let bg = bl._1
383383 let bh = bl._2
384384 let bi = av[1].amount
385385 let bj = fraction(bi, bh, 100)
386386 [av[0], ScriptTransfer(m, (bi - bj), y), ScriptTransfer(bg, bj, y)]
387387 }
388388 else av
389389 else throw("Strict value is not equal to itself.")
390390 }
391391 else throw("Strict value is not equal to itself.")
392392 }
393393
394394
395395
396396 @Callable(ay)
397397 func puzzleSwap (aZ,ba,L) = {
398398 let bm = K(L)
399399 let Y = bm._1
400400 let H = bm._2
401401 let be = Z(Y)
402402 if ((be == be))
403403 then if ((size(aZ) == 0))
404404 then throw("Invalid routing")
405405 else if ((0 >= ba))
406406 then throw("Sum to receive is to low")
407407 else {
408408 let au = C(m, v)
409409 if ((au == au))
410410 then {
411411 let av = aY(ay, aZ, ba)
412412 if ((av == av))
413413 then if ((size(H) > 0))
414414 then {
415415 let bb = split(aZ, ",")[(size(split(aZ, ",")) - 1)]
416416 let y = k(bb)
417417 let bn = G(H)
418418 let bg = bn._1
419419 let bh = bn._2
420420 let aV = C(m, v)
421421 if ((aV == aV))
422422 then {
423423 let aW = (aV - au)
424424 if ((aW == aW))
425425 then {
426426 let bo = fraction(aW, bh, 100)
427427 let bp = invoke(m, "claimReferrerReward", [bo, u], nil)
428428 if ((bp == bp))
429429 then (av :+ ScriptTransfer(bg, bo, v))
430430 else throw("Strict value is not equal to itself.")
431431 }
432432 else throw("Strict value is not equal to itself.")
433433 }
434434 else throw("Strict value is not equal to itself.")
435435 }
436436 else av
437437 else throw("Strict value is not equal to itself.")
438438 }
439439 else throw("Strict value is not equal to itself.")
440440 }
441441 else throw("Strict value is not equal to itself.")
442442 }
443443
444444
445445
446446 @Callable(ay)
447447 func addPools (bq) = {
448448 func br (r,ab) = if (containsElement(r, ab))
449449 then throw((("Pool '" + ab) + "' is already added"))
450450 else (r :+ toString(e(ab)))
451451
452452 if (!(containsElement([this, m], ay.caller)))
453453 then throw("only self calls or by collector are allowed")
454454 else [StringEntry("p-pools", makeString({
455455 let R = bq
456456 let S = size(R)
457457 let T = w
458458 func U (V,W) = if ((W >= S))
459459 then V
460460 else br(V, R[W])
461461
462462 func X (V,W) = if ((W >= S))
463463 then V
464464 else throw("List size exceeds 10")
465465
466466 X(U(U(U(U(U(U(U(U(U(U(T, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
467467 }, ","))]
468468 }
469469
470470
471471
472472 @Callable(ay)
473473 func addReferer (H,bs,bt) = {
474474 let b = e(bs)
475475 if (if ((0 > bt))
476476 then true
477477 else (bt > 100))
478478 then throw("Incorrect percent rate")
479479 else if ((size(H) == 0))
480480 then throw("Referrer name invalid")
481481 else if (!(containsElement([this, m], ay.caller)))
482482 then throw("only self calls or by collector are allowed")
483483 else [StringEntry((("referrer-" + H) + "-address"), bs), IntegerEntry((("referrer-" + H) + "-percent"), bt)]
484484 }
485485
486486
487+@Verifier(bu)
488+func bv () = {
489+ let bw = addressFromString(valueOrElse(getString(this, "Oracle"), ""))
490+ let bx = if (isDefined(bw))
491+ then getString(value(bw), "AdminKeys")
492+ else unit
493+ let z = bx
494+ if ($isInstanceOf(z, "String"))
495+ then {
496+ let by = z
497+ let bz = {
498+ let bA = split(by, ",")
499+[fromBase58String(bA[0]), fromBase58String(bA[1]), fromBase58String(bA[2])]
500+ }
501+ func bB (bC) = if (sigVerify(bu.bodyBytes, bC, bz[0]))
502+ then 1
503+ else if (sigVerify(bu.bodyBytes, bC, bz[1]))
504+ then 10
505+ else if (sigVerify(bu.bodyBytes, bC, bz[2]))
506+ then 100
507+ else 0
508+
509+ containsElement([110, 101, 11], (bB(bu.proofs[0]) + bB(bu.proofs[1])))
510+ }
511+ else sigVerify(bu.bodyBytes, bu.proofs[0], bu.senderPublicKey)
512+ }
513+

github/deemru/w8io/3ef1775 
73.12 ms