tx · 4FXjSab1qm4E5BcjycXizB9nzp9diyrkjhKKaNNCGrSB

3MworqnVwkDBPMuvk2kEBUxoirkDWWivUM9:  -0.02100000 Waves

2025.02.20 19:31 [3512260] smart account 3MworqnVwkDBPMuvk2kEBUxoirkDWWivUM9 > SELF 0.00000000 Waves

{ "type": 13, "id": "4FXjSab1qm4E5BcjycXizB9nzp9diyrkjhKKaNNCGrSB", "fee": 2100000, "feeAssetId": null, "timestamp": 1740069184137, "version": 2, "chainId": 84, "sender": "3MworqnVwkDBPMuvk2kEBUxoirkDWWivUM9", "senderPublicKey": "DGKd7CjuT79jcRcEzxfreioxhqcJohLhgCLVUb9KwkGg", "proofs": [ "yH5tde2V8wbi3RBsYGNXiuyXSb1EcwMKzKArpgYvYr5bjXGRBHXWQ6YJpHvtkysfns156TzepohChQmhPrZ26j2" ], "script": "base64:AAIFAAAAAAAAAC8IAhIECgIICBIECgIICBIDCgEIEgUKAwgICBIECgIICBIDCgEBEgMKAQgSAwoBCAAAACYBAAAAB2dldEJvb2wAAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIHAQAAAAhhc1N0cmluZwAAAAEAAAAFdmFsdWUEAAAAByRtYXRjaDAFAAAABXZhbHVlAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAXMFAAAAByRtYXRjaDAFAAAAAXMDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABcwUAAAAHJG1hdGNoMAkAAAIAAAABAgAAACZ3cm9uZyB0eXBlLCBleHBlY3RlZDogU3RyaW5nLCBnb3Q6IEludAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAEVW5pdAQAAAABcwUAAAAHJG1hdGNoMAkAAAIAAAABAgAAACd3cm9uZyB0eXBlLCBleHBlY3RlZDogU3RyaW5nLCBnb3Q6IFVuaXQJAAACAAAAAQIAAAAcd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IFN0cmluZwEAAAAJaXNUZXN0RW52AAAAAAkBAAAAB2dldEJvb2wAAAABAgAAAAdURVNURU5WAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAMdHJ5R2V0U3RyaW5nAAAAAQAAAANrZXkJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAAAAAAgAAABRzdGF0aWNfb3JhY2xlQWRkcmVzcwEAAAASc3RhdGljS2V5X2V4dHJhRmVlAAAAAAIAAAAPc3RhdGljX2V4dHJhRmVlAQAAABdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgAAAAACAAAAFHN0YXRpY19mZWVBZ2dyZWdhdG9yAQAAABxzdGF0aWNLZXlfcmVmQ29udHJhY3RBZGRyZXNzAAAAAAIAAAAZc3RhdGljX3JlZkNvbnRyYWN0QWRkcmVzcwEAAAAcc3RhdGljS2V5X2VhZ2xSZWJpcnRoQWRkcmVzcwAAAAACAAAAGnN0YXRpY19lYWdsZVJlYmlydGhBZGRyZXNzAQAAABxzdGF0aWNLZXlfZWFnbEZhcm1pbmdBZGRyZXNzAAAAAAIAAAAac3RhdGljX2VhZ2xlU3Rha2luZ0FkZHJlc3MBAAAAFnN0YXRpY0tleV9pdGVtc0FkZHJlc3MAAAAAAgAAABNzdGF0aWNfaXRlbXNBZGRyZXNzAQAAABdzdGF0aWNLZXlfcHV6emxlQXNzZXRJZAAAAAACAAAAFHN0YXRpY19wdXp6bGVBc3NldElkAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwAAAAABAAAAEGdldEZlZUFnZ3JlZ2F0b3IAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABdzdGF0aWNLZXlfZmVlQWdncmVnYXRvcgAAAAABAAAADmdldE1pbnRBc3NldElkAAAAAAkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAF3N0YXRpY0tleV9wdXp6bGVBc3NldElkAAAAAAEAAAAOZ2V0QnVybkFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAACAAAAEnN0YXRpY19idXJuQWRkcmVzcwEAAAAVZ2V0UmVmQ29udHJhY3RBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAcc3RhdGljS2V5X3JlZkNvbnRyYWN0QWRkcmVzcwAAAAABAAAAFWdldEVhZ2xSZWJpcnRoQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHHN0YXRpY0tleV9lYWdsUmViaXJ0aEFkZHJlc3MAAAAAAQAAABVnZXRFYWdsRmFybWluZ0FkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABxzdGF0aWNLZXlfZWFnbEZhcm1pbmdBZGRyZXNzAAAAAAEAAAAPZ2V0SXRlbXNBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAWc3RhdGljS2V5X2l0ZW1zQWRkcmVzcwAAAAABAAAAFmNoZWNrQWRkaXRpb25hbFBheW1lbnQAAAABAAAAB3BheW1lbnQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkAAAIAAAABAgAAABpCRENBUDogUGxlYXNlIGF0dGFjaCB3YXZlcwQAAAAJZmVlQW1vdW50CQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAEnN0YXRpY0tleV9leHRyYUZlZQAAAAADCQEAAAACIT0AAAACCAUAAAAHcGF5bWVudAAAAAZhbW91bnQFAAAACWZlZUFtb3VudAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAdQkRDQVA6IFBsZWFzZSBhdHRhY2ggZXhhY3RseSAJAAGkAAAAAQUAAAAJZmVlQW1vdW50AgAAABMgYW1vdW50IG9mIHdhdmVsZXRzCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABBnZXRGZWVB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BmNhbGxlcgUAAAAEdGhpcwcJAAACAAAAAQIAAAAaSVNKOiBhZG1pbiBvciByZWJpcnRoIG9ubHkEAAAABHR4SWQJAAJZAAAAAQUAAAAHdHhJZFN0cgQAAAARaGF0Y2hpbmdTdGF0dXNLZXkJAQAAABRnZXRIYXRjaGluZ1N0YXR1c0tleQAAAAIFAAAAB2FkZHJlc3MFAAAABHR4SWQEAAAAD2ZpbmlzaEhlaWdodEtleQkBAAAAGmdldEhhdGNoaW5nRmluaXNoSGVpZ2h0S2V5AAAAAgUAAAAHYWRkcmVzcwUAAAAEdHhJZAQAAAAQdG90YWxEdWNrc0Ftb3VudAkBAAAADXRyeUdldEludGVnZXIAAAABAgAAAAtlYWdsX2Ftb3VudAQAAAAKZWdnc05lZWRlZAkBAAAAFWNvdW50RWdnc05lZWRlZEFtb3VudAAAAAEFAAAAEHRvdGFsRHVja3NBbW91bnQEAAAACyR0MDcwNjU3MTE3CQAFFAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAVFQUdMLQUAAAADZ2VuAgAAAAMtSlUCAAAABDhXLUoEAAAAB2R1Y2tHZW4IBQAAAAskdDA3MDY1NzExNwAAAAJfMQQAAAAHZmFybUdlbggFAAAACyR0MDcwNjU3MTE3AAAAAl8yBAAAAAtkZXNjcmlwdGlvbgkAASwAAAACCQABLAAAAAICAAAADnsiZ2Vub3R5cGUiOiAiBQAAAAdkdWNrR2VuAgAAABkiLCAiY3Jvc3NicmVlZGluZyI6IHRydWV9BAAAAAVhc3NldAkABEMAAAAHBQAAAAdkdWNrR2VuBQAAAAtkZXNjcmlwdGlvbgAAAAAAAAAAAQAAAAAAAAAAAAcFAAAABHVuaXQFAAAABmhlaWdodAQAAAAHYXNzZXRJZAkABDgAAAABBQAAAAVhc3NldAQAAAAJZHVja0lkS2V5CQEAAAAMZ2V0RUFHTElkS2V5AAAAAgUAAAAHYWRkcmVzcwUAAAAEdHhJZAQAAAATdmFsdWVEdWNrSWRLZXlFeGl0cwkBAAAADHRyeUdldFN0cmluZwAAAAEFAAAACWR1Y2tJZEtleQMJAQAAAAIhPQAAAAIFAAAAE3ZhbHVlRHVja0lkS2V5RXhpdHMCAAAAAAkAAAIAAAABCQABLAAAAAIJAAEsAAAAAgIA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BHRoaXMFAAAAEWhhdGNoaW5nU3RhdHVzS2V5BAAAABRoYXRjaGluZ0ZpbmlzaEhlaWdodAkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAEdGhpcwUAAAAPZmluaXNoSGVpZ2h0S2V5AwkAAAAAAAACBQAAABBoYXRjaGluZ1R4U3RhdHVzBQAAABBIYXRjaGluZ0ZpbmlzaGVkBAAAAAZFQUdMSWQJAQAAABFAZXh0ck5hdGl2ZSgxMDUzKQAAAAIFAAAABHRoaXMJAQAAAAxnZXRFQUdMSWRLZXkAAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAEdHhJZAkAAAIAAAABCQABLAAAAAICAAAAQVRoZSBFYWdsZSB3YXMgaGF0Y2hlZCBhbmQgY2xhaW1lZCBhbHJlYWR5LCBoZXJlIGlzIHRoZSBmb2xvd2luZzogBQAAAAZFQUdMSWQDCQAAZgAAAAIFAAAAFGhhdGNoaW5nRmluaXNoSGVpZ2h0BQAAAAZoZWlnaHQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAB1IYXRjaGluZyBpcyBub3QgZmluaXNoZWQgeWV0IAkAAaQAAAABCQAAZQAAAAIFAAAAFGhhdGNoaW5nRmluaXNoSGVpZ2h0BQAAAAZoZWlnaHQCAAAAJyBibG9ja3MgcmVtYWluaW5nLCBpdCB3aWxsIHRha2UgYXJvdW5kIAkAAaQAAAABCQAAZQAAAAIFAAAAFGhhdGNoaW5nRmluaXNoSGVpZ2h0BQAAAAZoZWlnaHQCAAAACCBtaW51dGVzBAAAAA0kdDAxMjcxOTEyNzkyCQEAAAANZ2V0UmFuZG9tTmFtZQAAAAMFAAAABHR4SWQFAAAAFGhhdGNoaW5nRmluaXNoSGVpZ2h0BwQAAAAHRUFHTEdlbggFAAAADSR0MDEyNzE5MTI3OTIAAAACXzEEAAAAB2Zhcm1HZW4IBQAAAA0kdDAxMjcxOTEyNzkyAAAAAl8yBAAAAAtkZXNjcmlwdGlvbgkAASwAAAACCQABLAAAAAICAAAADnsiZ2Vub3R5cGUiOiAiBQAAAAdFQUdMR2VuAgAAABkiLCAiY3Jvc3NicmVlZGluZyI6IHRydWV9BAAAAAVhc3NldAkABEMAAAAHBQAAAAdFQUdMR2VuBQAAAAtkZXNjcmlwdGlvbgAAAAAAAAAAAQAAAAAAAAAAAAcFAAAABHVuaXQFAAAAFGhhdGNoaW5nRmluaXNoSGVpZ2h0BAAAAAdhc3NldElkCQAEOAAAAAEFAAAABWFzc2V0BAAAAAZhbW91bnQJAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAPZ2V0RUFHTFN0YXRzS2V5AAAAAQUAAAAHRUFHTEdlbgAAAAAAAAAAAQkABE4AAAACCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAEWhhdGNoaW5nU3RhdHVzS2V5BQAAABBIYXRjaGluZ0ZpbmlzaGVkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAACUVBR0xJZEtleQkAAlgAAAABBQAAAAdhc3NldElkCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAAJYAAAAAQUAAAAHYXNzZXRJZAUAAAAJRUFHTElkS2V5CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAAPZ2V0RUFHTFN0YXRzS2V5AAAAAQUAAAAHRUFHTEdlbgUAAAAGYW1vdW50CQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAGc3RhdHNfBQAAAAdmYXJtR2VuAgAAAAlfcXVhbnRpdHkJAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABCQABLAAAAAIJAAEsAAAAAgIAAAAGc3RhdHNfBQAAAAdmYXJtR2VuAgAAAAlfcXVhbnRpdHkAAAAAAAAAAAEJAARMAAAAAgUAAAAFYXNzZXQJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwgFAAAAAWkAAAAGY2FsbGVyAAAAAAAAAAABBQAAAAdhc3NldElkBQAAAANuaWwFAAAAC2ZlZVZhbGlkYXRlCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAADCQEAAAAJaXNUZXN0RW52AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkEAAAACWZpcnN0VXNlcgEAAAAgURzk/Wb/EmnS8VoUnzuy4vQ7f8HLaCeiNF5sONdX3W0EAAAACnNlY29uZFVzZXIBAAAAIFxyDkuu8SFPZuYZRfpqorHtsTYpWV8ZzMyw4U1BiGp9BAAAAAl0aGlyZFVzZXIBAAAAIKCvkeUteUNhYTISrY65+hhZUZ0tU0k2w9Cj96hgGTtOBAAAAA9maXJzdFVzZXJTaWduZWQDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAJZmlyc3RVc2VyAAAAAAAAAAABAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAEFAAAACWZpcnN0VXNlcgAAAAAAAAAAAQMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAACBQAAAAlmaXJzdFVzZXIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEHNlY29uZFVzZXJTaWduZWQDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAKc2Vjb25kVXNlcgAAAAAAAAAAAQMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAApzZWNvbmRVc2VyAAAAAAAAAAABAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIFAAAACnNlY29uZFVzZXIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAD3RoaXJkVXNlclNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAl0aGlyZFVzZXIAAAAAAAAAAAEDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQUAAAAJdGhpcmRVc2VyAAAAAAAAAAABAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIFAAAACXRoaXJkVXNlcgAAAAAAAAAAAQAAAAAAAAAAAAQAAAAPc2lnbmF0dXJlc0NvdW50CQAAZAAAAAIJAABkAAAAAgUAAAAPZmlyc3RVc2VyU2lnbmVkBQAAABBzZWNvbmRVc2VyU2lnbmVkBQAAAA90aGlyZFVzZXJTaWduZWQEAAAAByRtYXRjaDAFAAAAAnR4CQAAZwAAAAIFAAAAD3NpZ25hdHVyZXNDb3VudAAAAAAAAAAAATw/GNA=", "height": 3512260, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+func getBool (key) = match getBoolean(this, key) {
5+ case b: Boolean =>
6+ b
7+ case _ =>
8+ false
9+}
10+
11+
12+func asString (value) = match value {
13+ case s: String =>
14+ s
15+ case s: Int =>
16+ throw("wrong type, expected: String, got: Int")
17+ case s: Unit =>
18+ throw("wrong type, expected: String, got: Unit")
19+ case _ =>
20+ throw("wrong type, expected: String")
21+}
22+
23+
24+func isTestEnv () = getBool("TESTENV")
25+
26+
27+func tryGetStringExternal (address,key) = match getString(address, key) {
28+ case a: String =>
29+ a
30+ case _ =>
31+ ""
32+}
33+
34+
35+func tryGetString (key) = tryGetStringExternal(this, key)
36+
37+
38+func staticKey_oracleAddress () = "static_oracleAddress"
39+
40+
41+func staticKey_extraFee () = "static_extraFee"
42+
43+
44+func staticKey_feeAggregator () = "static_feeAggregator"
45+
46+
47+func staticKey_refContractAddress () = "static_refContractAddress"
48+
49+
50+func staticKey_eaglRebirthAddress () = "static_eagleRebirthAddress"
51+
52+
53+func staticKey_eaglFarmingAddress () = "static_eagleStakingAddress"
54+
55+
56+func staticKey_itemsAddress () = "static_itemsAddress"
57+
58+
59+func staticKey_puzzleAssetId () = "static_puzzleAssetId"
60+
61+
62+func getOracle () = Address(fromBase58String(tryGetString(staticKey_oracleAddress())))
63+
64+
65+func getFeeAggregator () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_feeAggregator())))
66+
67+
68+func getMintAssetId () = fromBase58String(tryGetStringExternal(getOracle(), staticKey_puzzleAssetId()))
69+
70+
71+func getBurnAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_burnAddress")))
72+
73+
74+func getRefContractAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_refContractAddress())))
75+
76+
77+func getEaglRebirthAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_eaglRebirthAddress())))
78+
79+
80+func getEaglFarmingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_eaglFarmingAddress())))
81+
82+
83+func getItemsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_itemsAddress())))
84+
85+
86+func checkAdditionalPayment (payment) = if (isDefined(payment.assetId))
87+ then throw("BDCAP: Please attach waves")
88+ else {
89+ let feeAmount = getIntegerValue(getOracle(), staticKey_extraFee())
90+ if ((payment.amount != feeAmount))
91+ then throw((("BDCAP: Please attach exactly " + toString(feeAmount)) + " amount of wavelets"))
92+ else [ScriptTransfer(getFeeAggregator(), feeAmount, unit)]
93+ }
94+
95+
96+let delayForHatching = 2
97+
98+let HatchingStarted = "HATCHING_STARTED"
99+
100+let HatchingFinished = "HATCHING_FINISHED"
101+
102+func isLocked () = {
103+ let masterAddress = Address(base58'3PEPftf2kWZDmAaWBjs6BUJa9957kiA2PkU')
104+ match getInteger(masterAddress, "egglock") {
105+ case b: Int =>
106+ b
107+ case _ =>
108+ 0
109+ }
110+ }
111+
112+
113+func getHatchingStatusKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_status")
114+
115+
116+func getHatchingFinishHeightKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_fh")
117+
118+
119+func getEAGLIdKey (address,txId) = (((address + "_") + toBase58String(txId)) + "_di")
120+
121+
122+func getEAGLStatsKey (genString) = (("stats_" + genString) + "_amount")
123+
124+
125+func tryGetInteger (key) = {
126+ let val = match getInteger(this, key) {
127+ case b: Int =>
128+ b
129+ case _ =>
130+ 0
131+ }
132+ val
133+ }
134+
135+
136+let discountCoefficient = tryGetInteger("discountCoefficient")
137+
138+func getRandomNumber (variants,txId,hatchingFinishHeight,offset) = {
139+ let randomSeedBlock = value(blockInfoByHeight((hatchingFinishHeight - 1)))
140+ let randomHash = sha256((txId + value(randomSeedBlock.vrf)))
141+ (toInt(randomHash, (offset * 8)) % variants)
142+ }
143+
144+
145+func select (color) = {
146+ let oldGenes = nil
147+ let newGenes = [$Tuple2(("EAGL-AAAAAAAA-G" + color), "8A-G"), $Tuple2(("EAGL-BBBBBBBB-G" + color), "8E-G"), $Tuple2(("EAGL-CCCCCCCC-G" + color), "8C-G"), $Tuple2(("EAGL-DDDDDDDD-G" + color), "8D-G")]
148+ $Tuple2((oldGenes ++ newGenes), newGenes)
149+ }
150+
151+
152+func getRandomName (txId,hatchingFinishHeight,all) = {
153+ let colorRandom = getRandomNumber(4, txId, hatchingFinishHeight, 1)
154+ let color = ["A", "B", "C", "D"][colorRandom]
155+ let colorSelect = select(color)
156+ let toPickFrom = if (all)
157+ then colorSelect._1
158+ else colorSelect._2
159+ let typeRandom = getRandomNumber(size(toPickFrom), txId, hatchingFinishHeight, 0)
160+toPickFrom[typeRandom]
161+ }
162+
163+
164+let typesAmount = (size(select("R")._2) - 1)
165+
166+func countEggsNeededAmount (totalEAGLsAmount) = {
167+ let n = totalEAGLsAmount
168+ let g = discountCoefficient
169+ let t = typesAmount
170+ let price = (pow((100 + ((n * g) / (10 * t))), 2, 5, 1, 2, DOWN) + 600)
171+ (price * 1500000)
172+ }
173+
174+
175+func asBoolean (value) = match value {
176+ case boolean: Boolean =>
177+ boolean
178+ case _ =>
179+ throw("TI: wrong type, expected: Boolean")
180+}
181+
182+
183+@Callable(i)
184+func reduceRarity (assetId,fGen) = {
185+ let asset = fromBase58String(assetId)
186+ if (if ((i.caller != getEaglRebirthAddress()))
187+ then (i.caller != this)
188+ else false)
189+ then throw("IRR: admin or rebirth only")
190+ else {
191+ let duckGen = value(assetInfo(asset)).name
192+ let letter = takeRight(take(duckGen, 6), 1)
193+ let farmGen = (("8" + letter) + "-G")
194+[IntegerEntry(getEAGLStatsKey(duckGen), (tryGetInteger(getEAGLStatsKey(duckGen)) - 1)), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) - 1))]
195+ }
196+ }
197+
198+
199+
200+@Callable(i)
201+func increaseRarity (assetId,fGen) = {
202+ let asset = fromBase58String(assetId)
203+ if (if ((i.caller != getEaglRebirthAddress()))
204+ then (i.caller != this)
205+ else false)
206+ then throw("IRR: admin or rebirth only")
207+ else {
208+ let duckGen = value(assetInfo(asset)).name
209+ let letter = takeRight(take(duckGen, 6), 1)
210+ let farmGen = (("8" + letter) + "-G")
211+[IntegerEntry(getEAGLStatsKey(duckGen), (tryGetInteger(getEAGLStatsKey(duckGen)) + 1)), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) + 1))]
212+ }
213+ }
214+
215+
216+
217+@Callable(i)
218+func configureOracle (oracle) = if ((i.caller != this))
219+ then throw("ICU: admin only")
220+ else [StringEntry("static_oracleAddress", oracle)]
221+
222+
223+
224+@Callable(i)
225+func issueJackpot (address,txIdStr,gen) = if (if ((i.caller != getEaglRebirthAddress()))
226+ then (i.caller != this)
227+ else false)
228+ then throw("ISJ: admin or rebirth only")
229+ else {
230+ let txId = fromBase58String(txIdStr)
231+ let hatchingStatusKey = getHatchingStatusKey(address, txId)
232+ let finishHeightKey = getHatchingFinishHeightKey(address, txId)
233+ let totalDucksAmount = tryGetInteger("eagl_amount")
234+ let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
235+ let $t070657117 = $Tuple2((("EAGL-" + gen) + "-JU"), "8W-J")
236+ let duckGen = $t070657117._1
237+ let farmGen = $t070657117._2
238+ let description = (("{\"genotype\": \"" + duckGen) + "\", \"crossbreeding\": true}")
239+ let asset = Issue(duckGen, description, 1, 0, false, unit, height)
240+ let assetId = calculateAssetId(asset)
241+ let duckIdKey = getEAGLIdKey(address, txId)
242+ let valueDuckIdKeyExits = tryGetString(duckIdKey)
243+ if ((valueDuckIdKeyExits != ""))
244+ then throw((("ISJ: You will override following duckId :" + duckIdKey) + " make sure that your txId is unique!"))
245+ else $Tuple2([IntegerEntry(getHatchingFinishHeightKey(address, txId), height), IntegerEntry("eagl_amount", (totalDucksAmount + 1)), IntegerEntry("eagl_last_price", (eggsNeeded / 1500000)), StringEntry(hatchingStatusKey, HatchingFinished), StringEntry(duckIdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), duckIdKey), IntegerEntry(getEAGLStatsKey(duckGen), (tryGetInteger(getEAGLStatsKey(duckGen)) + 1)), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) + 1)), asset, ScriptTransfer(value(addressFromString(address)), 1, assetId)], toBase58String(assetId))
246+ }
247+
248+
249+
250+@Callable(i)
251+func issueFree (address,txIdStr) = if ((i.caller != getEaglRebirthAddress()))
252+ then throw("CIF: rebirth only")
253+ else {
254+ let txId = fromBase58String(txIdStr)
255+ let hatchingStatusKey = getHatchingStatusKey(address, txId)
256+ let finishHeightKey = getHatchingFinishHeightKey(address, txId)
257+ let totalDucksAmount = tryGetInteger("eagl_amount")
258+ let eggsNeeded = countEggsNeededAmount(totalDucksAmount)
259+ let $t086998847 = getRandomName(txId, (valueOrErrorMessage(transactionHeightById(txId), ((txIdStr + " not found ") + toBase58String(txId))) + 1), true)
260+ let EAGLGen = $t086998847._1
261+ let farmGen = $t086998847._2
262+ let description = (("{\"genotype\": \"" + EAGLGen) + "\", \"crossbreeding\": true}")
263+ let asset = Issue(EAGLGen, description, 1, 0, false, unit, height)
264+ let assetId = calculateAssetId(asset)
265+ let amount = (tryGetInteger(getEAGLStatsKey(EAGLGen)) + 1)
266+ let duckIdKey = getEAGLIdKey(address, txId)
267+ $Tuple2([IntegerEntry(getHatchingFinishHeightKey(address, txId), height), IntegerEntry("eagl_amount", (totalDucksAmount + 1)), IntegerEntry("eagl_last_price", (eggsNeeded / 1500000)), StringEntry(hatchingStatusKey, HatchingFinished), StringEntry(duckIdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), duckIdKey), IntegerEntry(getEAGLStatsKey(EAGLGen), amount), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) + 1)), asset, ScriptTransfer(value(addressFromString(address)), 1, assetId)], toBase58String(assetId))
268+ }
269+
270+
271+
272+@Callable(i)
273+func setDiscount (val) = if ((i.caller != this))
274+ then throw("admin_only")
275+ else [IntegerEntry("discountCoefficient", val)]
276+
277+
278+
279+@Callable(i)
280+func startHatching (refererAddress) = {
281+ let feeValidate = checkAdditionalPayment(i.payments[0])
282+ if ((feeValidate == feeValidate))
283+ then if ((isLocked() > 0))
284+ then throw("EGG operations are temporarily locked")
285+ else {
286+ let totalCaniAmount = tryGetInteger("eagl_amount")
287+ let eggsNeeded = countEggsNeededAmount(totalCaniAmount)
288+ let results = [StringEntry(getHatchingStatusKey(toString(i.originCaller), i.transactionId), HatchingStarted), IntegerEntry(getHatchingFinishHeightKey(toString(i.originCaller), i.transactionId), (height + delayForHatching)), IntegerEntry("eagl_amount", (totalCaniAmount + 1)), IntegerEntry("eagl_last_price", (eggsNeeded / 1500000))]
289+ let firstPayment = value(i.payments[1])
290+ let leftToPay = eggsNeeded
291+ if ((firstPayment.assetId != getMintAssetId()))
292+ then throw("TB: You can attach only Puzzle")
293+ else if ((leftToPay > firstPayment.amount))
294+ then throw(((("TB: To breed a Canine you following amount of Puzzle: " + toString(leftToPay)) + " ") + toString(i.caller)))
295+ else {
296+ let addMore = invoke(getEaglFarmingAddress(), "addPuzzleAndStakeMore", nil, [AttachedPayment(getMintAssetId(), leftToPay)])
297+ if ((addMore == addMore))
298+ then {
299+ let refund = if ((size(i.payments) == 2))
300+ then [ScriptTransfer(i.caller, (i.payments[1].amount - leftToPay), getMintAssetId())]
301+ else nil
302+ ((results ++ refund) ++ feeValidate)
303+ }
304+ else throw("Strict value is not equal to itself.")
305+ }
306+ }
307+ else throw("Strict value is not equal to itself.")
308+ }
309+
310+
311+
312+@Callable(i)
313+func finishHatching (txIdStr) = {
314+ let feeValidate = checkAdditionalPayment(i.payments[0])
315+ if ((feeValidate == feeValidate))
316+ then {
317+ let txId = fromBase58String(txIdStr)
318+ let hatchingStatusKey = getHatchingStatusKey(toString(i.caller), txId)
319+ let finishHeightKey = getHatchingFinishHeightKey(toString(i.caller), txId)
320+ let EAGLIdKey = getEAGLIdKey(toString(i.caller), txId)
321+ let hatchingTxStatus = getStringValue(this, hatchingStatusKey)
322+ let hatchingFinishHeight = getIntegerValue(this, finishHeightKey)
323+ if ((hatchingTxStatus == HatchingFinished))
324+ then {
325+ let EAGLId = getStringValue(this, getEAGLIdKey(toString(i.caller), txId))
326+ throw(("The Eagle was hatched and claimed already, here is the folowing: " + EAGLId))
327+ }
328+ else if ((hatchingFinishHeight > height))
329+ then throw((((("Hatching is not finished yet " + toString((hatchingFinishHeight - height))) + " blocks remaining, it will take around ") + toString((hatchingFinishHeight - height))) + " minutes"))
330+ else {
331+ let $t01271912792 = getRandomName(txId, hatchingFinishHeight, false)
332+ let EAGLGen = $t01271912792._1
333+ let farmGen = $t01271912792._2
334+ let description = (("{\"genotype\": \"" + EAGLGen) + "\", \"crossbreeding\": true}")
335+ let asset = Issue(EAGLGen, description, 1, 0, false, unit, hatchingFinishHeight)
336+ let assetId = calculateAssetId(asset)
337+ let amount = (tryGetInteger(getEAGLStatsKey(EAGLGen)) + 1)
338+ ([StringEntry(hatchingStatusKey, HatchingFinished), StringEntry(EAGLIdKey, toBase58String(assetId)), StringEntry(toBase58String(assetId), EAGLIdKey), IntegerEntry(getEAGLStatsKey(EAGLGen), amount), IntegerEntry((("stats_" + farmGen) + "_quantity"), (tryGetInteger((("stats_" + farmGen) + "_quantity")) + 1)), asset, ScriptTransfer(i.caller, 1, assetId)] ++ feeValidate)
339+ }
340+ }
341+ else throw("Strict value is not equal to itself.")
342+ }
343+
344+
345+@Verifier(tx)
346+func verify () = if (isTestEnv())
347+ then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
348+ else {
349+ let firstUser = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
350+ let secondUser = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
351+ let thirdUser = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
352+ let firstUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], firstUser))
353+ then 1
354+ else if (sigVerify(tx.bodyBytes, tx.proofs[1], firstUser))
355+ then 1
356+ else if (sigVerify(tx.bodyBytes, tx.proofs[2], firstUser))
357+ then 1
358+ else 0
359+ let secondUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], secondUser))
360+ then 1
361+ else if (sigVerify(tx.bodyBytes, tx.proofs[1], secondUser))
362+ then 1
363+ else if (sigVerify(tx.bodyBytes, tx.proofs[2], secondUser))
364+ then 1
365+ else 0
366+ let thirdUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], thirdUser))
367+ then 1
368+ else if (sigVerify(tx.bodyBytes, tx.proofs[1], thirdUser))
369+ then 1
370+ else if (sigVerify(tx.bodyBytes, tx.proofs[2], thirdUser))
371+ then 1
372+ else 0
373+ let signaturesCount = ((firstUserSigned + secondUserSigned) + thirdUserSigned)
374+ match tx {
375+ case _ =>
376+ (signaturesCount >= 1)
377+ }
378+ }
379+

github/deemru/w8io/169f3d6 
34.15 ms