tx · FECTMLW5DHu3njXRbpJP3ik9RCT4ENB5Q2WNuopuiYQ5

3P8ejTkfRpz9WqCwCuihesNXU5k3zmFFfVe:  -0.01300000 Waves

2023.09.21 20:29 [3831247] smart account 3P8ejTkfRpz9WqCwCuihesNXU5k3zmFFfVe > SELF 0.00000000 Waves

{ "type": 13, "id": "FECTMLW5DHu3njXRbpJP3ik9RCT4ENB5Q2WNuopuiYQ5", "fee": 1300000, "feeAssetId": null, "timestamp": 1695317376310, "version": 2, "chainId": 87, "sender": "3P8ejTkfRpz9WqCwCuihesNXU5k3zmFFfVe", "senderPublicKey": "BmXMyLQHb5FxJtRprfQN1wTu4iW4vsjqPHTXDPJVgWKw", "proofs": [ "4PtyDZa8pmNYSLUKUX4bZzut8wVME2gqfKxx41TpbHrbBqdPDhdamToRrUoMsbqtoEuDLm1wafnVd1TnLHrh4vzM", "2BVvvUiysCyLufipdRA72YqKDTt7S9gi5xJVT4AfeUJRHvJ4zWaEqxx7r4gXiSv6uDmA87evWo5beabZmJgPVS8B" ], "script": "base64:AAIFAAAAAAAAABcIAhIECgIICBIDCgEIEgMKAQgSAwoBCAAAACIBAAAAF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAAAAAIAAAAUc3RhdGljX29yYWNsZUFkZHJlc3MBAAAAFHN0YXRpY0tleV9lZ2dBc3NldElkAAAAAAIAAAARc3RhdGljX2VnZ0Fzc2V0SWQBAAAAGHN0YXRpY0tleV9icmVlZGVyQWRkcmVzcwAAAAACAAAAFXN0YXRpY19icmVlZGVyQWRkcmVzcwEAAAAac3RhdGljS2V5X2luY3ViYXRvckFkZHJlc3MAAAAAAgAAABdzdGF0aWNfaW5jdWJhdG9yQWRkcmVzcwEAAAAZc3RhdGljS2V5X2JhYnlEdWNrQWRkcmVzcwAAAAACAAAAFnN0YXRpY19iYWJ5RHVja0FkZHJlc3MBAAAAGHN0YXRpY0tleV9mYXJtaW5nQWRkcmVzcwAAAAACAAAAFXN0YXRpY19mYXJtaW5nQWRkcmVzcwEAAAAZc3RhdGljS2V5X2NmTWFzdGVyQWRkcmVzcwAAAAACAAAAFnN0YXRpY19jZk1hc3RlckFkZHJlc3MBAAAAFXN0YXRpY0tleV9odW50QWRkcmVzcwAAAAACAAAAEnN0YXRpY19odW50QWRkcmVzcwEAAAAYc3RhdGljS2V5X3JlYmlydGhBZGRyZXNzAAAAAAIAAAAVc3RhdGljX3JlYmlydGhBZGRyZXNzAQAAAB5zdGF0aWNLZXlfdHVydGxlQnJlZWRlckFkZHJlc3MAAAAAAgAAABtzdGF0aWNfdHVydGxlQnJlZWRlckFkZHJlc3MBAAAAIHN0YXRpY0tleV90dXJ0bGVJbmN1YmF0b3JBZGRyZXNzAAAAAAIAAAAdc3RhdGljX3R1cnRsZUluY3ViYXRvckFkZHJlc3MBAAAAHnN0YXRpY0tleV90dXJ0bGVTdGFraW5nQWRkcmVzcwAAAAACAAAAG3N0YXRpY190dXJ0bGVTdGFraW5nQWRkcmVzcwEAAAAec3RhdGljS2V5X3R1cnRsZVJlYmlydGhBZGRyZXNzAAAAAAIAAAAbc3RhdGljX3R1cnRsZVJlYmlydGhBZGRyZXNzAQAAAA10cnlHZXRCb29sZWFuAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiBwEAAAANdHJ5R2V0SW50ZWdlcgAAAAEAAAADa2V5BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAADSW50BAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiAAAAAAAAAAAAAQAAAA5pc1ZhbGlkQWRkcmVzcwAAAAEAAAAHYWRkcmVzcwQAAAAHJG1hdGNoMAkABCYAAAABBQAAAAdhZGRyZXNzAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdBZGRyZXNzBAAAAAFhBQAAAAckbWF0Y2gwBgcBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgAAAAdhZGRyZXNzAAAAA2tleQQAAAAHJG1hdGNoMAkABB0AAAACBQAAAAdhZGRyZXNzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAABlN0cmluZwQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQIAAAAAAQAAAAx0cnlHZXRTdHJpbmcAAAABAAAAA2tleQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgUAAAAEdGhpcwUAAAADa2V5AQAAAAlnZXRPcmFjbGUAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAADHRyeUdldFN0cmluZwAAAAEJAQAAABdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwAAAAABAAAADWdldEVnZ0Fzc2V0SWQAAAAACQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAAAAAAQAAABFnZXRCcmVlZGVyQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGHN0YXRpY0tleV9icmVlZGVyQWRkcmVzcwAAAAABAAAAE2dldEluY3ViYXRvckFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABpzdGF0aWNLZXlfaW5jdWJhdG9yQWRkcmVzcwAAAAABAAAAEmdldEJhYnlEdWNrQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGXN0YXRpY0tleV9iYWJ5RHVja0FkZHJlc3MAAAAAAQAAABFnZXRGYXJtaW5nQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGHN0YXRpY0tleV9mYXJtaW5nQWRkcmVzcwAAAAABAAAAEmdldENmTWFzdGVyQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGXN0YXRpY0tleV9jZk1hc3RlckFkZHJlc3MAAAAAAQAAAA5nZXRIdW50QWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAFXN0YXRpY0tleV9odW50QWRkcmVzcwAAAAABAAAAEWdldFJlYmlydGhBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAYc3RhdGljS2V5X3JlYmlydGhBZGRyZXNzAAAAAAEAAAAXZ2V0VHVydGxlQnJlZWRlckFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAAB5zdGF0aWNLZXlfdHVydGxlQnJlZWRlckFkZHJlc3MAAAAAAQAAABlnZXRUdXJ0bGVJbmN1YmF0b3JBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAgc3RhdGljS2V5X3R1cnRsZUluY3ViYXRvckFkZHJlc3MAAAAAAQAAABdnZXRUdXJ0bGVTdGFraW5nQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHnN0YXRpY0tleV90dXJ0bGVTdGFraW5nQWRkcmVzcwAAAAABAAAAF2dldFR1cnRsZVJlYmlydGhBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAec3RhdGljS2V5X3R1cnRsZVJlYmlydGhBZGRyZXNzAAAAAAEAAAARZ2V0VHJ1c3RlZEFkZHJlc3MAAAAACQAETAAAAAIJAQAAABFnZXRCcmVlZGVyQWRkcmVzcwAAAAAJAARMAAAAAgkBAAAAEmdldEJhYnlEdWNrQWRkcmVzcwAAAAAJAARMAAAAAgkBAAAAEWdldEZhcm1pbmdBZGRyZXNzAAAAAAkABEwAAAACCQEAAAAOZ2V0SHVudEFkZHJlc3MAAAAACQAETAAAAAIJAQAAABFnZXRSZWJpcnRoQWRkcmVzcwAAAAAJAARMAAAAAgkBAAAAF2dldFR1cnRsZUJyZWVkZXJBZGRyZXNzAAAAAAkABEwAAAACCQEAAAAZZ2V0VHVydGxlSW5jdWJhdG9yQWRkcmVzcwAAAAAJAARMAAAAAgkBAAAAF2dldFR1cnRsZVN0YWtpbmdBZGRyZXNzAAAAAAkABEwAAAACCQEAAAAXZ2V0VHVydGxlUmViaXJ0aEFkZHJlc3MAAAAABQAAAANuaWwBAAAAE21hc3RlclRyeUdldEJvb2xlYW4AAAABAAAAA2tleQQAAAAHJG1hdGNoMAkA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ZWZlcmFsQWRkcmVzcwIAAAAKX3JlZmVyZWRCeQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAF4BQAAAAckbWF0Y2gwBQAAAAF4BQAAAAxnaXZlblJlZmVyZXIEAAAACXJlZkFtb3VudAgJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAGYW1vdW50AwkBAAAAAiE9AAAAAggJAAGRAAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAkBAAAADWdldEVnZ0Fzc2V0SWQAAAAACQAAAgAAAAECAAAAHkRvbid0IHRyeSB0byBjaGVhdCB0aGUgc3lzdGVtIQMJAAAAAAAAAgkBAAAADXRyeUdldEJvb2xlYW4AAAABCQABLAAAAAIFAAAADnJlZmVyZXJBZGRyZXNzAgAAAAxfd2hpdGVsaXN0ZWQHBQAAAA1zZW5kRnVuZHNCYWNrAwkAAAAAAAACCQAEJgAAAAEFAAAADnJlZmVyZXJBZGRyZXNzBQAAAAR1bml0BQAAAA1zZW5kRnVuZHNCYWNrBAAAABNyZWZlcmVyQWRkcmVzc1ZhbHVlCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAA5yZWZlcmVyQWRkcmVzcwQAAAATcmVmZXJhbEFkZHJlc3NWYWx1ZQkBAAAAEUBleHRyTmF0aXZlKDEwNjIpAAAAAQUAAAAOcmVmZXJhbEFkZHJlc3MEAAAAEXBheW1lbnRGb3JSZWZlcmVyBQAAAAlyZWZBbW91bnQEAAAAE3JlZmVyZXJFYXJuZWRSZXdhcmQJAAEsAAAAAgkAASwAAAACAgAAAAhhZGRyZXNzXwUAAAAOcmVmZXJlckFkZHJlc3MCAAAADV9lYXJuZWRSZXdhcmQEAAAAFnJlZmVyYWxEZWxpdmVyZWRSZXdhcmQJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIcmVmZXJlcl8FAAAADnJlZmVyZXJBZGRyZXNzAgAAAAlfcmVmZXJhbF8FAAAADnJlZmVyYWxBZGRyZXNzAgAAABBfZGVsaXZlcmVkUmV3YXJkAwkAAAAAAAACBQAAAA5yZWZlcmVyQWRkcmVzcwUAAAAOcmVmZXJhbEFkZHJlc3MFAAAADXNlbmRGdW5kc0JhY2sJAAUUAAAAAgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAADnJlZmVyYWxBZGRyZXNzAgAAAApfcmVmZXJlZEJ5BQAAAA5yZWZlcmVyQWRkcmVzcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATcmVmZXJlckVhcm5lZFJld2FyZAkAAGQAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAAE3JlZmVyZXJFYXJuZWRSZXdhcmQFAAAAEXBheW1lbnRGb3JSZWZlcmVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABZyZWZlcmFsRGVsaXZlcmVkUmV3YXJkCQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAWcmVmZXJhbERlbGl2ZXJlZFJld2FyZAUAAAARcGF5bWVudEZvclJlZmVyZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIcmVmZXJlcl8FAAAADnJlZmVyZXJBZGRyZXNzAgAAAAlfcmVmZXJhbF8FAAAADnJlZmVyYWxBZGRyZXNzAgAAAAdfYW1vdW50CQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhyZWZlcmVyXwUAAAAOcmVmZXJlckFkZHJlc3MCAAAACV9yZWZlcmFsXwUAAAAOcmVmZXJhbEFkZHJlc3MCAAAAB19hbW91bnQAAAAAAAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAATcmVmZXJlckFkZHJlc3NWYWx1ZQUAAAARcGF5bWVudEZvclJlZmVyZXIJAQAAAA1nZXRFZ2dBc3NldElkAAAAAAUAAAADbmlsBgAAAAFpAQAAAA9jb25maWd1cmVPcmFjbGUAAAABAAAABm9yYWNsZQMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAABBSQ0NPOiBhZG1pbiBvbmx5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwAAAAAFAAAABm9yYWNsZQUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAMJAQAAAAlpc1Rlc3RFbnYAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQQAAAAJZmlyc3RVc2VyAQAAACBRHOT9Zv8SadLxWhSfO7Li9Dt/wctoJ6I0Xmw411fdbQQAAAAKc2Vjb25kVXNlcgEAAAAgwWzfju3TjXOPi6L5+okP9HXNRBtUclKjtJzSVqQt4HUEAAAACXRoaXJkVXNlcgEAAAAg51v0jqrS+UmeboQmuPl+H9xnqH3cK7jU6nvN8mgKwSUEAAAAD2ZpcnN0VXNlclNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAlmaXJzdFVzZXIAAAAAAAAAAAEDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQUAAAAJZmlyc3RVc2VyAAAAAAAAAAABAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIFAAAACWZpcnN0VXNlcgAAAAAAAAAAAQAAAAAAAAAAAAQAAAAQc2Vjb25kVXNlclNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAApzZWNvbmRVc2VyAAAAAAAAAAABAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAEFAAAACnNlY29uZFVzZXIAAAAAAAAAAAEDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAgUAAAAKc2Vjb25kVXNlcgAAAAAAAAAAAQAAAAAAAAAAAAQAAAAPdGhpcmRVc2VyU2lnbmVkAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAACXRoaXJkVXNlcgAAAAAAAAAAAQMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAl0aGlyZFVzZXIAAAAAAAAAAAEDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAgUAAAAJdGhpcmRVc2VyAAAAAAAAAAABAAAAAAAAAAAABAAAAA9zaWduYXR1cmVzQ291bnQJAABkAAAAAgkAAGQAAAACBQAAAA9maXJzdFVzZXJTaWduZWQFAAAAEHNlY29uZFVzZXJTaWduZWQFAAAAD3RoaXJkVXNlclNpZ25lZAQAAAAHJG1hdGNoMAUAAAACdHgJAABnAAAAAgUAAAAPc2lnbmF0dXJlc0NvdW50AAAAAAAAAAAC6TiHRg==", "height": 3831247, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FqajmyYZzqNQ5BSmEYScEZGryBWaj6wd38hG6qdeYAAR Next: EKonYTig7JSuQXs3tMZxSKvmQSCzCdRsR852KeM7d3up Diff:
OldNewDifferences
3232
3333
3434 func staticKey_turtleIncubatorAddress () = "static_turtleIncubatorAddress"
35+
36+
37+func staticKey_turtleStakingAddress () = "static_turtleStakingAddress"
38+
39+
40+func staticKey_turtleRebirthAddress () = "static_turtleRebirthAddress"
3541
3642
3743 func tryGetBoolean (key) = match getBoolean(this, key) {
102108 func getTurtleIncubatorAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleIncubatorAddress())))
103109
104110
105-func getTurtleStakingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_turtleStakingAddress")))
111+func getTurtleStakingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleStakingAddress())))
106112
107113
108-func getTrustedAddress () = [getBreederAddress(), getBabyDuckAddress(), getFarmingAddress(), getHuntAddress(), getRebirthAddress(), getTurtleBreederAddress(), getTurtleIncubatorAddress(), getTurtleStakingAddress()]
114+func getTurtleRebirthAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleRebirthAddress())))
115+
116+
117+func getTrustedAddress () = [getBreederAddress(), getBabyDuckAddress(), getFarmingAddress(), getHuntAddress(), getRebirthAddress(), getTurtleBreederAddress(), getTurtleIncubatorAddress(), getTurtleStakingAddress(), getTurtleRebirthAddress()]
109118
110119
111120 func masterTryGetBoolean (key) = match getBoolean(getCfMasterAddress(), key) {
143152 let sendFundsBack = $Tuple2([ScriptTransfer(i.caller, i.payments[0].amount, i.payments[0].assetId)], false)
144153 let referalAddress = toString(i.originCaller)
145154 if ((indexOf(getTrustedAddress(), i.caller) == unit))
146- then throw("This method can be called only by farming and incubator dApps")
155+ then throw("RC: This method can be called only by farming and incubator dApps")
147156 else if (if ((refererKey == ""))
148157 then (tryGetString((("address_" + referalAddress) + "_referedBy")) == "")
149158 else false)
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"
35+
36+
37+func staticKey_turtleStakingAddress () = "static_turtleStakingAddress"
38+
39+
40+func staticKey_turtleRebirthAddress () = "static_turtleRebirthAddress"
3541
3642
3743 func tryGetBoolean (key) = match getBoolean(this, key) {
3844 case b: Boolean =>
3945 b
4046 case _ =>
4147 false
4248 }
4349
4450
4551 func tryGetInteger (key) = match getInteger(this, key) {
4652 case b: Int =>
4753 b
4854 case _ =>
4955 0
5056 }
5157
5258
5359 func isValidAddress (address) = match addressFromString(address) {
5460 case a: Address =>
5561 true
5662 case _ =>
5763 false
5864 }
5965
6066
6167 func tryGetStringExternal (address,key) = match getString(address, key) {
6268 case a: String =>
6369 a
6470 case _ =>
6571 ""
6672 }
6773
6874
6975 func tryGetString (key) = tryGetStringExternal(this, key)
7076
7177
7278 func getOracle () = Address(fromBase58String(tryGetString(staticKey_oracleAddress())))
7379
7480
7581 func getEggAssetId () = fromBase58String(tryGetStringExternal(getOracle(), staticKey_eggAssetId()))
7682
7783
7884 func getBreederAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_breederAddress())))
7985
8086
8187 func getIncubatorAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_incubatorAddress())))
8288
8389
8490 func getBabyDuckAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_babyDuckAddress())))
8591
8692
8793 func getFarmingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_farmingAddress())))
8894
8995
9096 func getCfMasterAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_cfMasterAddress())))
9197
9298
9399 func getHuntAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_huntAddress())))
94100
95101
96102 func getRebirthAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_rebirthAddress())))
97103
98104
99105 func getTurtleBreederAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleBreederAddress())))
100106
101107
102108 func getTurtleIncubatorAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleIncubatorAddress())))
103109
104110
105-func getTurtleStakingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), "static_turtleStakingAddress")))
111+func getTurtleStakingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleStakingAddress())))
106112
107113
108-func getTrustedAddress () = [getBreederAddress(), getBabyDuckAddress(), getFarmingAddress(), getHuntAddress(), getRebirthAddress(), getTurtleBreederAddress(), getTurtleIncubatorAddress(), getTurtleStakingAddress()]
114+func getTurtleRebirthAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleRebirthAddress())))
115+
116+
117+func getTrustedAddress () = [getBreederAddress(), getBabyDuckAddress(), getFarmingAddress(), getHuntAddress(), getRebirthAddress(), getTurtleBreederAddress(), getTurtleIncubatorAddress(), getTurtleStakingAddress(), getTurtleRebirthAddress()]
109118
110119
111120 func masterTryGetBoolean (key) = match getBoolean(getCfMasterAddress(), key) {
112121 case b: Boolean =>
113122 b
114123 case _ =>
115124 false
116125 }
117126
118127
119128 func isTestEnv () = tryGetBoolean("TESTENV")
120129
121130
122131 @Callable(i)
123132 func addRefKey (refererAddress,refererKey) = if ((i.caller != this))
124133 then throw("admin only")
125134 else {
126135 let refStateKey = (("key_" + refererKey) + "_refererAddress")
127136 if ((tryGetString(refStateKey) == ""))
128137 then [StringEntry(refStateKey, refererAddress), StringEntry(((("address_" + refererAddress) + "_refererKey_") + refererKey), refererKey)]
129138 else throw((("The ref key \"" + refererKey) + "\" is already registered"))
130139 }
131140
132141
133142
134143 @Callable(i)
135144 func whitelistAddress (refererAddress) = if ((i.caller != this))
136145 then throw("RF: Only for admin!")
137146 else [BooleanEntry((refererAddress + "_whitelisted"), true)]
138147
139148
140149
141150 @Callable(i)
142151 func refPayment (refererKey) = {
143152 let sendFundsBack = $Tuple2([ScriptTransfer(i.caller, i.payments[0].amount, i.payments[0].assetId)], false)
144153 let referalAddress = toString(i.originCaller)
145154 if ((indexOf(getTrustedAddress(), i.caller) == unit))
146- then throw("This method can be called only by farming and incubator dApps")
155+ then throw("RC: This method can be called only by farming and incubator dApps")
147156 else if (if ((refererKey == ""))
148157 then (tryGetString((("address_" + referalAddress) + "_referedBy")) == "")
149158 else false)
150159 then sendFundsBack
151160 else if (masterTryGetBoolean(("farm_" + referalAddress)))
152161 then sendFundsBack
153162 else {
154163 let givenReferer = match getString(this, (("key_" + refererKey) + "_refererAddress")) {
155164 case x: String =>
156165 x
157166 case _ =>
158167 refererKey
159168 }
160169 let refererAddress = match getString(this, (("address_" + referalAddress) + "_referedBy")) {
161170 case x: String =>
162171 x
163172 case _ =>
164173 givenReferer
165174 }
166175 let refAmount = i.payments[0].amount
167176 if ((i.payments[0].assetId != getEggAssetId()))
168177 then throw("Don't try to cheat the system!")
169178 else if ((tryGetBoolean((refererAddress + "_whitelisted")) == false))
170179 then sendFundsBack
171180 else if ((addressFromString(refererAddress) == unit))
172181 then sendFundsBack
173182 else {
174183 let refererAddressValue = addressFromStringValue(refererAddress)
175184 let referalAddressValue = addressFromStringValue(referalAddress)
176185 let paymentForReferer = refAmount
177186 let refererEarnedReward = (("address_" + refererAddress) + "_earnedReward")
178187 let referalDeliveredReward = (((("referer_" + refererAddress) + "_referal_") + referalAddress) + "_deliveredReward")
179188 if ((refererAddress == referalAddress))
180189 then sendFundsBack
181190 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)
182191 }
183192 }
184193 }
185194
186195
187196
188197 @Callable(i)
189198 func configureOracle (oracle) = if ((i.caller != this))
190199 then throw("RCCO: admin only")
191200 else [StringEntry(staticKey_oracleAddress(), oracle)]
192201
193202
194203 @Verifier(tx)
195204 func verify () = if (isTestEnv())
196205 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
197206 else {
198207 let firstUser = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
199208 let secondUser = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
200209 let thirdUser = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
201210 let firstUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], firstUser))
202211 then 1
203212 else if (sigVerify(tx.bodyBytes, tx.proofs[1], firstUser))
204213 then 1
205214 else if (sigVerify(tx.bodyBytes, tx.proofs[2], firstUser))
206215 then 1
207216 else 0
208217 let secondUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], secondUser))
209218 then 1
210219 else if (sigVerify(tx.bodyBytes, tx.proofs[1], secondUser))
211220 then 1
212221 else if (sigVerify(tx.bodyBytes, tx.proofs[2], secondUser))
213222 then 1
214223 else 0
215224 let thirdUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], thirdUser))
216225 then 1
217226 else if (sigVerify(tx.bodyBytes, tx.proofs[1], thirdUser))
218227 then 1
219228 else if (sigVerify(tx.bodyBytes, tx.proofs[2], thirdUser))
220229 then 1
221230 else 0
222231 let signaturesCount = ((firstUserSigned + secondUserSigned) + thirdUserSigned)
223232 match tx {
224233 case _ =>
225234 (signaturesCount >= 2)
226235 }
227236 }
228237

github/deemru/w8io/3ef1775 
57.82 ms