tx · 8PecSbxXQVzZQ968HbjbyUPvJFth8JZfiypHGN2R4LRH

3PGZyyPg7Mx91yaNT8k3MWxSQzuzusMUyzX:  -0.01300000 Waves

2023.09.11 18:13 [3816654] smart account 3PGZyyPg7Mx91yaNT8k3MWxSQzuzusMUyzX > SELF 0.00000000 Waves

{ "type": 13, "id": "8PecSbxXQVzZQ968HbjbyUPvJFth8JZfiypHGN2R4LRH", "fee": 1300000, "feeAssetId": null, "timestamp": 1694445265740, "version": 2, "chainId": 87, "sender": "3PGZyyPg7Mx91yaNT8k3MWxSQzuzusMUyzX", "senderPublicKey": "EmRAgwaLuMrvnkeorjU9UmmGnRMXMu5ctEqkYRxnG2za", "proofs": [ "3aJBLcJFFQXvxu51qthCqNQE5t1X5ZFNi96LzWzL46KLEoW1VhFTUBQnVZ3vEDrFopdmFEfHNA6PzkTyU3dAFsYu" ], "script": "base64:AAIFAAAAAAAAABcIAhIECgIICBIDCgEIEgMKAQgSAwoBCAAAAB8BAAAAF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAAAAAIAAAAUc3RhdGljX29yYWNsZUFkZHJlc3MBAAAAFHN0YXRpY0tleV9lZ2dBc3NldElkAAAAAAIAAAARc3RhdGljX2VnZ0Fzc2V0SWQBAAAAGHN0YXRpY0tleV9icmVlZGVyQWRkcmVzcwAAAAACAAAAFXN0YXRpY19icmVlZGVyQWRkcmVzcwEAAAAac3RhdGljS2V5X2luY3ViYXRvckFkZHJlc3MAAAAAAgAAABdzdGF0aWNfaW5jdWJhdG9yQWRkcmVzcwEAAAAZc3RhdGljS2V5X2JhYnlEdWNrQWRkcmVzcwAAAAACAAAAFnN0YXRpY19iYWJ5RHVja0FkZHJlc3MBAAAAGHN0YXRpY0tleV9mYXJtaW5nQWRkcmVzcwAAAAACAAAAFXN0YXRpY19mYXJtaW5nQWRkcmVzcwEAAAAZc3RhdGljS2V5X2NmTWFzdGVyQWRkcmVzcwAAAAACAAAAFnN0YXRpY19jZk1hc3RlckFkZHJlc3MBAAAAFXN0YXRpY0tleV9odW50QWRkcmVzcwAAAAACAAAAEnN0YXRpY19odW50QWRkcmVzcwEAAAAYc3RhdGljS2V5X3JlYmlydGhBZGRyZXNzAAAAAAIAAAAVc3RhdGljX3JlYmlydGhBZGRyZXNzAQAAAB5zdGF0aWNLZXlfdHVydGxlQnJlZWRlckFkZHJlc3MAAAAAAgAAABtzdGF0aWNfdHVydGxlQnJlZWRlckFkZHJlc3MBAAAAIHN0YXRpY0tleV90dXJ0bGVJbmN1YmF0b3JBZGRyZXNzAAAAAAIAAAAdc3RhdGljX3R1cnRsZUluY3ViYXRvckFkZHJlc3MBAAAADXRyeUdldEJvb2xlYW4AAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIHAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAADmlzVmFsaWRBZGRyZXNzAAAAAQAAAAdhZGRyZXNzBAAAAAckbWF0Y2gwCQAEJgAAAAEFAAAAB2FkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0FkZHJlc3MEAAAAAWEFAAAAByRtYXRjaDAGBwEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACAAAAB2FkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAADHRyeUdldFN0cmluZwAAAAEAAAADa2V5CQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACBQAAAAR0aGlzBQAAAANrZXkBAAAACWdldE9yYWNsZQAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAAAAAEAAAANZ2V0RWdnQXNzZXRJZAAAAAAJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABRzdGF0aWNLZXlfZWdnQXNzZXRJZAAAAAABAAAAEWdldEJyZWVkZXJBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAYc3RhdGljS2V5X2JyZWVkZXJBZGRyZXNzAAAAAAEAAAATZ2V0SW5jdWJhdG9yQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGnN0YXRpY0tleV9pbmN1YmF0b3JBZGRyZXNzAAAAAAEAAAASZ2V0QmFieUR1Y2tBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAZc3RhdGljS2V5X2JhYnlEdWNrQWRkcmVzcwAAAAABAAAAEWdldEZhcm1pbmdBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAYc3RhdGljS2V5X2Zhcm1pbmdBZGRyZXNzAAAAAAEAAAASZ2V0Q2ZNYXN0ZXJBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAZc3RhdGljS2V5X2NmTWFzdGVyQWRkcmVzcwAAAAABAAAADmdldEh1bnRBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAVc3RhdGljS2V5X2h1bnRBZGRyZXNzAAAAAAEAAAARZ2V0UmViaXJ0aEFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABhzdGF0aWNLZXlfcmViaXJ0aEFkZHJlc3MAAAAAAQAAABdnZXRUdXJ0bGVCcmVlZGVyQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHnN0YXRpY0tleV90dXJ0bGVCcmVlZGVyQWRkcmVzcwAAAAABAAAAGWdldFR1cnRsZUluY3ViYXRvckFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAACBzdGF0aWNLZXlfdHVydGxlSW5jdWJhdG9yQWRkcmVzcwAAAAABAAAAF2dldFR1cnRsZVN0YWtpbmdBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAAAgAAABtzdGF0aWNfdHVydGxlU3Rha2luZ0FkZHJlc3MBAAAAEWdldFRydXN0ZWRBZGRyZXNzAAAAAAkABEwAAAACCQEAAAARZ2V0QnJlZWRlckFkZHJlc3MAAAAACQAETAAAAAIJAQAAABJnZXRCYWJ5RHVja0FkZHJlc3MAAAAACQAETAAAAAIJAQAAABFnZXRGYXJtaW5nQWRkcmVzcwAAAAAJAARMAAAAAgkBAAAADmdldEh1bnRBZGRyZXNzAAAAAAkABEwAAAACCQEAAAARZ2V0UmViaXJ0aEFkZHJlc3MAAAAACQAETAAAAAIJAQAAABdnZXRUdXJ0bGVCcmVlZGVyQWRkcmVzcwAAAAAJAARMAAAAAgkBAAAAGWdldFR1cnRsZUluY3ViYXRvckFkZHJlc3MAAAAACQAETAAAAAIJAQAAABdnZXRUdXJ0bGVTdGFraW5nQWRkcmVzcwAAAAAFAAAAA25pbAEAAAATbWFzdGVyVHJ5R2V0Qm9vbGVhbgAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGwAAAAIJAQAAABJnZXRDZk1hc3RlckFkZHJlc3MAAAAABQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIHAQAAAAlpc1Rlc3RFbnYAAAAACQEAAAANdHJ5R2V0Qm9vbGVhbgAAAAECAAAAB1RFU1RFTlYAAAAEAAAAAWkBAAAACWFkZFJlZktleQAAAAIAAAAOcmVmZXJlckFkZHJlc3MAAAAKcmVmZXJlcktleQMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAAAphZG1pbiBvbmx5BAAAAAtyZWZTdGF0ZUtleQkAASwAAAACCQABLAAAAAICAAAABGtleV8FAAAACnJlZmVyZXJLZXkCAAAAD19y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QWRkcmVzcwIAAAAMX3doaXRlbGlzdGVkBwUAAAANc2VuZEZ1bmRzQmFjawMJAAAAAAAAAgkABCYAAAABBQAAAA5yZWZlcmVyQWRkcmVzcwUAAAAEdW5pdAUAAAANc2VuZEZ1bmRzQmFjawQAAAATcmVmZXJlckFkZHJlc3NWYWx1ZQkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAOcmVmZXJlckFkZHJlc3MEAAAAE3JlZmVyYWxBZGRyZXNzVmFsdWUJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAADnJlZmVyYWxBZGRyZXNzBAAAABFwYXltZW50Rm9yUmVmZXJlcgUAAAAJcmVmQW1vdW50BAAAABNyZWZlcmVyRWFybmVkUmV3YXJkCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAADnJlZmVyZXJBZGRyZXNzAgAAAA1fZWFybmVkUmV3YXJkBAAAABZyZWZlcmFsRGVsaXZlcmVkUmV3YXJkCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACHJlZmVyZXJfBQAAAA5yZWZlcmVyQWRkcmVzcwIAAAAJX3JlZmVyYWxfBQAAAA5yZWZlcmFsQWRkcmVzcwIAAAAQX2RlbGl2ZXJlZFJld2FyZAMJAAAAAAAAAgUAAAAOcmVmZXJlckFkZHJlc3MFAAAADnJlZmVyYWxBZGRyZXNzBQAAAA1zZW5kRnVuZHNCYWNrCQAFFAAAAAIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgkAASwAAAACCQABLAAAAAICAAAACGFkZHJlc3NfBQAAAA5yZWZlcmFsQWRkcmVzcwIAAAAKX3JlZmVyZWRCeQUAAAAOcmVmZXJlckFkZHJlc3MJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAAE3JlZmVyZXJFYXJuZWRSZXdhcmQJAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABBQAAABNyZWZlcmVyRWFybmVkUmV3YXJkBQAAABFwYXltZW50Rm9yUmVmZXJlcgkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAWcmVmZXJhbERlbGl2ZXJlZFJld2FyZAkAAGQAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAAFnJlZmVyYWxEZWxpdmVyZWRSZXdhcmQFAAAAEXBheW1lbnRGb3JSZWZlcmVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACHJlZmVyZXJfBQAAAA5yZWZlcmVyQWRkcmVzcwIAAAAJX3JlZmVyYWxfBQAAAA5yZWZlcmFsQWRkcmVzcwIAAAAHX2Ftb3VudAkAAGQAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIcmVmZXJlcl8FAAAADnJlZmVyZXJBZGRyZXNzAgAAAAlfcmVmZXJhbF8FAAAADnJlZmVyYWxBZGRyZXNzAgAAAAdfYW1vdW50AAAAAAAAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMFAAAAE3JlZmVyZXJBZGRyZXNzVmFsdWUFAAAAEXBheW1lbnRGb3JSZWZlcmVyCQEAAAANZ2V0RWdnQXNzZXRJZAAAAAAFAAAAA25pbAYAAAABaQEAAAAPY29uZmlndXJlT3JhY2xlAAAAAQAAAAZvcmFjbGUDCQEAAAACIT0AAAACCAUAAAABaQAAAAZjYWxsZXIFAAAABHRoaXMJAAACAAAAAQIAAAAQUkNDTzogYWRtaW4gb25seQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQEAAAAXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAAAAABQAAAAZvcmFjbGUFAAAAA25pbAAAAAEAAAACdHgBAAAABnZlcmlmeQAAAAADCQEAAAAJaXNUZXN0RW52AAAAAAkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAAJ0eAAAAA9zZW5kZXJQdWJsaWNLZXkEAAAACWZpcnN0VXNlcgEAAAAgURzk/Wb/EmnS8VoUnzuy4vQ7f8HLaCeiNF5sONdX3W0EAAAACnNlY29uZFVzZXIBAAAAIMFs347t041zj4ui+fqJD/R1zUQbVHJSo7Sc0lakLeB1BAAAAAl0aGlyZFVzZXIBAAAAIOdb9I6q0vlJnm6EJrj5fh/cZ6h93Cu41Op7zfJoCsElBAAAAA9maXJzdFVzZXJTaWduZWQDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAJZmlyc3RVc2VyAAAAAAAAAAABAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAEFAAAACWZpcnN0VXNlcgAAAAAAAAAAAQMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAACBQAAAAlmaXJzdFVzZXIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAEHNlY29uZFVzZXJTaWduZWQDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAUAAAAKc2Vjb25kVXNlcgAAAAAAAAAAAQMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAApzZWNvbmRVc2VyAAAAAAAAAAABAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIFAAAACnNlY29uZFVzZXIAAAAAAAAAAAEAAAAAAAAAAAAEAAAAD3RoaXJkVXNlclNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAl0aGlyZFVzZXIAAAAAAAAAAAEDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQUAAAAJdGhpcmRVc2VyAAAAAAAAAAABAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIFAAAACXRoaXJkVXNlcgAAAAAAAAAAAQAAAAAAAAAAAAQAAAAPc2lnbmF0dXJlc0NvdW50CQAAZAAAAAIJAABkAAAAAgUAAAAPZmlyc3RVc2VyU2lnbmVkBQAAABBzZWNvbmRVc2VyU2lnbmVkBQAAAA90aGlyZFVzZXJTaWduZWQEAAAAByRtYXRjaDAFAAAAAnR4CQAAZwAAAAIFAAAAD3NpZ25hdHVyZXNDb3VudAAAAAAAAAAAAngIbj4=", "height": 3816654, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8d2QLNCsbvJsDTYdMUSvSeEeERJeTVuggEo3UkzEYUj2 Next: GCHJRQukSNyaM24h9cwuz5hu9mPH2hXfKrwQX1UEpDRg Diff:
OldNewDifferences
102102 func getTurtleIncubatorAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleIncubatorAddress())))
103103
104104
105-func getTrustedAddress () = [getBreederAddress(), getBabyDuckAddress(), getFarmingAddress(), getHuntAddress(), getRebirthAddress(), getTurtleBreederAddress(), getTurtleIncubatorAddress()]
105+func getTurtleStakingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_turtleStakingAddress")))
106+
107+
108+func getTrustedAddress () = [getBreederAddress(), getBabyDuckAddress(), getFarmingAddress(), getHuntAddress(), getRebirthAddress(), getTurtleBreederAddress(), getTurtleIncubatorAddress(), getTurtleStakingAddress()]
106109
107110
108111 func masterTryGetBoolean (key) = match getBoolean(getCfMasterAddress(), key) {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func staticKey_oracleAddress () = "static_oracleAddress"
55
66
77 func staticKey_eggAssetId () = "static_eggAssetId"
88
99
1010 func staticKey_breederAddress () = "static_breederAddress"
1111
1212
1313 func staticKey_incubatorAddress () = "static_incubatorAddress"
1414
1515
1616 func staticKey_babyDuckAddress () = "static_babyDuckAddress"
1717
1818
1919 func staticKey_farmingAddress () = "static_farmingAddress"
2020
2121
2222 func staticKey_cfMasterAddress () = "static_cfMasterAddress"
2323
2424
2525 func staticKey_huntAddress () = "static_huntAddress"
2626
2727
2828 func staticKey_rebirthAddress () = "static_rebirthAddress"
2929
3030
3131 func staticKey_turtleBreederAddress () = "static_turtleBreederAddress"
3232
3333
3434 func staticKey_turtleIncubatorAddress () = "static_turtleIncubatorAddress"
3535
3636
3737 func tryGetBoolean (key) = match getBoolean(this, key) {
3838 case b: Boolean =>
3939 b
4040 case _ =>
4141 false
4242 }
4343
4444
4545 func tryGetInteger (key) = match getInteger(this, key) {
4646 case b: Int =>
4747 b
4848 case _ =>
4949 0
5050 }
5151
5252
5353 func isValidAddress (address) = match addressFromString(address) {
5454 case a: Address =>
5555 true
5656 case _ =>
5757 false
5858 }
5959
6060
6161 func tryGetStringExternal (address,key) = match getString(address, key) {
6262 case a: String =>
6363 a
6464 case _ =>
6565 ""
6666 }
6767
6868
6969 func tryGetString (key) = tryGetStringExternal(this, key)
7070
7171
7272 func getOracle () = Address(fromBase58String(tryGetString(staticKey_oracleAddress())))
7373
7474
7575 func getEggAssetId () = fromBase58String(tryGetStringExternal(getOracle(), staticKey_eggAssetId()))
7676
7777
7878 func getBreederAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_breederAddress())))
7979
8080
8181 func getIncubatorAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_incubatorAddress())))
8282
8383
8484 func getBabyDuckAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_babyDuckAddress())))
8585
8686
8787 func getFarmingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_farmingAddress())))
8888
8989
9090 func getCfMasterAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_cfMasterAddress())))
9191
9292
9393 func getHuntAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_huntAddress())))
9494
9595
9696 func getRebirthAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_rebirthAddress())))
9797
9898
9999 func getTurtleBreederAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleBreederAddress())))
100100
101101
102102 func getTurtleIncubatorAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleIncubatorAddress())))
103103
104104
105-func getTrustedAddress () = [getBreederAddress(), getBabyDuckAddress(), getFarmingAddress(), getHuntAddress(), getRebirthAddress(), getTurtleBreederAddress(), getTurtleIncubatorAddress()]
105+func getTurtleStakingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_turtleStakingAddress")))
106+
107+
108+func getTrustedAddress () = [getBreederAddress(), getBabyDuckAddress(), getFarmingAddress(), getHuntAddress(), getRebirthAddress(), getTurtleBreederAddress(), getTurtleIncubatorAddress(), getTurtleStakingAddress()]
106109
107110
108111 func masterTryGetBoolean (key) = match getBoolean(getCfMasterAddress(), key) {
109112 case b: Boolean =>
110113 b
111114 case _ =>
112115 false
113116 }
114117
115118
116119 func isTestEnv () = tryGetBoolean("TESTENV")
117120
118121
119122 @Callable(i)
120123 func addRefKey (refererAddress,refererKey) = if ((i.caller != this))
121124 then throw("admin only")
122125 else {
123126 let refStateKey = (("key_" + refererKey) + "_refererAddress")
124127 if ((tryGetString(refStateKey) == ""))
125128 then [StringEntry(refStateKey, refererAddress), StringEntry(((("address_" + refererAddress) + "_refererKey_") + refererKey), refererKey)]
126129 else throw((("The ref key \"" + refererKey) + "\" is already registered"))
127130 }
128131
129132
130133
131134 @Callable(i)
132135 func whitelistAddress (refererAddress) = if ((i.caller != this))
133136 then throw("RF: Only for admin!")
134137 else [BooleanEntry((refererAddress + "_whitelisted"), true)]
135138
136139
137140
138141 @Callable(i)
139142 func refPayment (refererKey) = {
140143 let sendFundsBack = $Tuple2([ScriptTransfer(i.caller, i.payments[0].amount, i.payments[0].assetId)], false)
141144 let referalAddress = toString(i.originCaller)
142145 if ((indexOf(getTrustedAddress(), i.caller) == unit))
143146 then throw("This method can be called only by farming and incubator dApps")
144147 else if (if ((refererKey == ""))
145148 then (tryGetString((("address_" + referalAddress) + "_referedBy")) == "")
146149 else false)
147150 then sendFundsBack
148151 else if (masterTryGetBoolean(("farm_" + referalAddress)))
149152 then sendFundsBack
150153 else {
151154 let givenReferer = match getString(this, (("key_" + refererKey) + "_refererAddress")) {
152155 case x: String =>
153156 x
154157 case _ =>
155158 refererKey
156159 }
157160 let refererAddress = match getString(this, (("address_" + referalAddress) + "_referedBy")) {
158161 case x: String =>
159162 x
160163 case _ =>
161164 givenReferer
162165 }
163166 let refAmount = i.payments[0].amount
164167 if ((i.payments[0].assetId != getEggAssetId()))
165168 then throw("Don't try to cheat the system!")
166169 else if ((tryGetBoolean((refererAddress + "_whitelisted")) == false))
167170 then sendFundsBack
168171 else if ((addressFromString(refererAddress) == unit))
169172 then sendFundsBack
170173 else {
171174 let refererAddressValue = addressFromStringValue(refererAddress)
172175 let referalAddressValue = addressFromStringValue(referalAddress)
173176 let paymentForReferer = refAmount
174177 let refererEarnedReward = (("address_" + refererAddress) + "_earnedReward")
175178 let referalDeliveredReward = (((("referer_" + refererAddress) + "_referal_") + referalAddress) + "_deliveredReward")
176179 if ((refererAddress == referalAddress))
177180 then sendFundsBack
178181 else $Tuple2([StringEntry((("address_" + referalAddress) + "_referedBy"), refererAddress), IntegerEntry(refererEarnedReward, (tryGetInteger(refererEarnedReward) + paymentForReferer)), IntegerEntry(referalDeliveredReward, (tryGetInteger(referalDeliveredReward) + paymentForReferer)), IntegerEntry((((("referer_" + refererAddress) + "_referal_") + referalAddress) + "_amount"), (tryGetInteger((((("referer_" + refererAddress) + "_referal_") + referalAddress) + "_amount")) + 1)), ScriptTransfer(refererAddressValue, paymentForReferer, getEggAssetId())], true)
179182 }
180183 }
181184 }
182185
183186
184187
185188 @Callable(i)
186189 func configureOracle (oracle) = if ((i.caller != this))
187190 then throw("RCCO: admin only")
188191 else [StringEntry(staticKey_oracleAddress(), oracle)]
189192
190193
191194 @Verifier(tx)
192195 func verify () = if (isTestEnv())
193196 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
194197 else {
195198 let firstUser = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
196199 let secondUser = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
197200 let thirdUser = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
198201 let firstUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], firstUser))
199202 then 1
200203 else if (sigVerify(tx.bodyBytes, tx.proofs[1], firstUser))
201204 then 1
202205 else if (sigVerify(tx.bodyBytes, tx.proofs[2], firstUser))
203206 then 1
204207 else 0
205208 let secondUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], secondUser))
206209 then 1
207210 else if (sigVerify(tx.bodyBytes, tx.proofs[1], secondUser))
208211 then 1
209212 else if (sigVerify(tx.bodyBytes, tx.proofs[2], secondUser))
210213 then 1
211214 else 0
212215 let thirdUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], thirdUser))
213216 then 1
214217 else if (sigVerify(tx.bodyBytes, tx.proofs[1], thirdUser))
215218 then 1
216219 else if (sigVerify(tx.bodyBytes, tx.proofs[2], thirdUser))
217220 then 1
218221 else 0
219222 let signaturesCount = ((firstUserSigned + secondUserSigned) + thirdUserSigned)
220223 match tx {
221224 case _ =>
222225 (signaturesCount >= 2)
223226 }
224227 }
225228

github/deemru/w8io/3ef1775 
38.59 ms