tx · D6UWecLRN3GLJ4HNXnpoG1VYyqWKYBrPoVCfqCc1RXHR

3P8ejTkfRpz9WqCwCuihesNXU5k3zmFFfVe:  -0.01400000 Waves

2024.01.20 11:13 [4005335] smart account 3P8ejTkfRpz9WqCwCuihesNXU5k3zmFFfVe > SELF 0.00000000 Waves

{ "type": 13, "id": "D6UWecLRN3GLJ4HNXnpoG1VYyqWKYBrPoVCfqCc1RXHR", "fee": 1400000, "feeAssetId": null, "timestamp": 1705738473325, "version": 2, "chainId": 87, "sender": "3P8ejTkfRpz9WqCwCuihesNXU5k3zmFFfVe", "senderPublicKey": "BmXMyLQHb5FxJtRprfQN1wTu4iW4vsjqPHTXDPJVgWKw", "proofs": [ "3fU8HDQaczz14jo5sw4SSygJw93KmPQunP1i87D5tip41XRZAs7Xt5HQUGRwxvwck5b7mAoDBEW87LnNYrP5odj9", "4mFD3UPjTPvNQ3WBRCGmuiUdNacF45pU5Bx1MoTxnhcdned7gAEXMrfNcneK1S3ifnZf4qzcrwaL3iqbqiHirANG" ], "script": "base64:AAIFAAAAAAAAABcIAhIECgIICBIDCgEIEgMKAQgSAwoBCAAAACYBAAAAF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAAAAAIAAAAUc3RhdGljX29yYWNsZUFkZHJlc3MBAAAAFHN0YXRpY0tleV9lZ2dBc3NldElkAAAAAAIAAAARc3RhdGljX2VnZ0Fzc2V0SWQBAAAAGHN0YXRpY0tleV9icmVlZGVyQWRkcmVzcwAAAAACAAAAFXN0YXRpY19icmVlZGVyQWRkcmVzcwEAAAAac3RhdGljS2V5X2luY3ViYXRvckFkZHJlc3MAAAAAAgAAABdzdGF0aWNfaW5jdWJhdG9yQWRkcmVzcwEAAAAZc3RhdGljS2V5X2JhYnlEdWNrQWRkcmVzcwAAAAACAAAAFnN0YXRpY19iYWJ5RHVja0FkZHJlc3MBAAAAGHN0YXRpY0tleV9mYXJtaW5nQWRkcmVzcwAAAAACAAAAFXN0YXRpY19mYXJtaW5nQWRkcmVzcwEAAAAZc3RhdGljS2V5X2NmTWFzdGVyQWRkcmVzcwAAAAACAAAAFnN0YXRpY19jZk1hc3RlckFkZHJlc3MBAAAAFXN0YXRpY0tleV9odW50QWRkcmVzcwAAAAACAAAAEnN0YXRpY19odW50QWRkcmVzcwEAAAAYc3RhdGljS2V5X3JlYmlydGhBZGRyZXNzAAAAAAIAAAAVc3RhdGljX3JlYmlydGhBZGRyZXNzAQAAAB5zdGF0aWNLZXlfdHVydGxlQnJlZWRlckFkZHJlc3MAAAAAAgAAABtzdGF0aWNfdHVydGxlQnJlZWRlckFkZHJlc3MBAAAAIHN0YXRpY0tleV90dXJ0bGVJbmN1YmF0b3JBZGRyZXNzAAAAAAIAAAAdc3RhdGljX3R1cnRsZUluY3ViYXRvckFkZHJlc3MBAAAAHnN0YXRpY0tleV90dXJ0bGVTdGFraW5nQWRkcmVzcwAAAAACAAAAG3N0YXRpY190dXJ0bGVTdGFraW5nQWRkcmVzcwEAAAAec3RhdGljS2V5X3R1cnRsZVJlYmlydGhBZGRyZXNzAAAAAAIAAAAbc3RhdGljX3R1cnRsZVJlYmlydGhBZGRyZXNzAQAAABlzdGF0aWNLZXlfY2FwYWNpdHlBZGRyZXNzAAAAAAIAAAAWc3RhdGljX2NhcGFjaXR5QWRkcmVzcwEAAAAcc3RhdGljS2V5X3ZlZ2dGYXJtaW5nQWRkcmVzcwAAAAACAAAAGXN0YXRpY192ZWdnRmFybWluZ0FkZHJlc3MBAAAADXRyeUdldEJvb2xlYW4AAAABAAAAA2tleQQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzBQAAAANrZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0Jvb2xlYW4EAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIHAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAADmlzVmFsaWRBZGRyZXNzAAAAAQAAAAdhZGRyZXNzBAAAAAckbWF0Y2gwCQAEJgAAAAEFAAAAB2FkZHJlc3MDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAB0FkZHJlc3MEAAAAAWEFAAAAByRtYXRjaDAGBwEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACAAAAB2FkZHJlc3MAAAADa2V5BAAAAAckbWF0Y2gwCQAEHQAAAAIFAAAAB2FkZHJlc3MFAAAAA2tleQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhAgAAAAABAAAADHRyeUdldFN0cmluZwAAAAEAAAADa2V5CQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACBQAAAAR0aGlzBQAAAANrZXkBAAAACWdldE9yYWNsZQAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAAAAAEAAAANZ2V0RWdnQXNzZXRJZAAAAAAJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABRzdGF0aWNLZXlfZWdnQXNzZXRJZAAAAAABAAAAEWdldEJyZWVkZXJBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAYc3RhdGljS2V5X2JyZWVkZXJBZGRyZXNzAAAAAAEAAAATZ2V0SW5jdWJhdG9yQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAGnN0YXRpY0tleV9pbmN1YmF0b3JBZGRyZXNzAAAAAAEAAAASZ2V0QmFieUR1Y2tBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAZc3RhdGljS2V5X2JhYnlEdWNrQWRkcmVzcwAAAAABAAAAEWdldEZhcm1pbmdBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAYc3RhdGljS2V5X2Zhcm1pbmdBZGRyZXNzAAAAAAEAAAASZ2V0Q2ZNYXN0ZXJBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAZc3RhdGljS2V5X2NmTWFzdGVyQWRkcmVzcwAAAAABAAAADmdldEh1bnRBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAVc3RhdGljS2V5X2h1bnRBZGRyZXNzAAAAAAEAAAARZ2V0UmViaXJ0aEFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABhzdGF0aWNLZXlfcmViaXJ0aEFkZHJlc3MAAAAAAQAAABdnZXRUdXJ0bGVCcmVlZGVyQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHnN0YXRpY0tleV90dXJ0bGVCcmVlZGVyQWRkcmVzcwAAAAABAAAAGWdldFR1cnRsZUluY3ViYXRvckFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAACBzdGF0aWNLZXlfdHVydGxlSW5jdWJhdG9yQWRkcmVzcwAAAAABAAAAF2dldFR1cnRsZVN0YWtpbmdBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAec3RhdGljS2V5X3R1cnRsZVN0YWtpbmdBZGRyZXNzAAAAAAEAAAAXZ2V0VHVydGxlUmViaXJ0aEFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAAB5zdGF0aWNLZXlfdHVydGxlUmViaXJ0aEFkZHJlc3MAAAAAAQAAABJnZXRDYXBhY2l0eUFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABlzdGF0aWNLZXlfY2FwYWNpdHlBZGRyZXNzAAAAAAEAAAAVZ2V0VmVnZ0Zhcm1pbmdBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAcc3RhdGljS2V5X3ZlZ2dGYXJtaW5nQWRkcmVzcwAAAAABAAAAEWdldFRydXN0ZWRB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AAAAAggFAAAAAWkAAAAIcGF5bWVudHMAAAAAAAAAAAAAAAAHYXNzZXRJZAkBAAAADWdldEVnZ0Fzc2V0SWQAAAAACQAAAgAAAAECAAAAHkRvbid0IHRyeSB0byBjaGVhdCB0aGUgc3lzdGVtIQMJAAAAAAAAAgkBAAAADXRyeUdldEJvb2xlYW4AAAABCQABLAAAAAIFAAAADnJlZmVyZXJBZGRyZXNzAgAAAAxfd2hpdGVsaXN0ZWQHBQAAAA5zZW5kRnVuZHNUb0RhbwMJAAAAAAAAAgkABCYAAAABBQAAAA5yZWZlcmVyQWRkcmVzcwUAAAAEdW5pdAUAAAAOc2VuZEZ1bmRzVG9EYW8EAAAAE3JlZmVyZXJBZGRyZXNzVmFsdWUJAQAAABFAZXh0ck5hdGl2ZSgxMDYyKQAAAAEFAAAADnJlZmVyZXJBZGRyZXNzBAAAABNyZWZlcmFsQWRkcmVzc1ZhbHVlCQEAAAARQGV4dHJOYXRpdmUoMTA2MikAAAABBQAAAA5yZWZlcmFsQWRkcmVzcwQAAAARcGF5bWVudEZvclJlZmVyZXIFAAAACXJlZkFtb3VudAQAAAATcmVmZXJlckVhcm5lZFJld2FyZAkAASwAAAACCQABLAAAAAICAAAACGFkZHJlc3NfBQAAAA5yZWZlcmVyQWRkcmVzcwIAAAANX2Vhcm5lZFJld2FyZAQAAAAWcmVmZXJhbERlbGl2ZXJlZFJld2FyZAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhyZWZlcmVyXwUAAAAOcmVmZXJlckFkZHJlc3MCAAAACV9yZWZlcmFsXwUAAAAOcmVmZXJhbEFkZHJlc3MCAAAAEF9kZWxpdmVyZWRSZXdhcmQDCQAAAAAAAAIFAAAADnJlZmVyZXJBZGRyZXNzBQAAAA5yZWZlcmFsQWRkcmVzcwUAAAAOc2VuZEZ1bmRzVG9EYW8JAAUUAAAAAgkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAADnJlZmVyYWxBZGRyZXNzAgAAAApfcmVmZXJlZEJ5BQAAAA5yZWZlcmVyQWRkcmVzcwkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAATcmVmZXJlckVhcm5lZFJld2FyZAkAAGQAAAACCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAAE3JlZmVyZXJFYXJuZWRSZXdhcmQFAAAAEXBheW1lbnRGb3JSZWZlcmVyCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAABZyZWZlcmFsRGVsaXZlcmVkUmV3YXJkCQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAWcmVmZXJhbERlbGl2ZXJlZFJld2FyZAUAAAARcGF5bWVudEZvclJlZmVyZXIJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIcmVmZXJlcl8FAAAADnJlZmVyZXJBZGRyZXNzAgAAAAlfcmVmZXJhbF8FAAAADnJlZmVyYWxBZGRyZXNzAgAAAAdfYW1vdW50CQAAZAAAAAIJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhyZWZlcmVyXwUAAAAOcmVmZXJlckFkZHJlc3MCAAAACV9yZWZlcmFsXwUAAAAOcmVmZXJhbEFkZHJlc3MCAAAAB19hbW91bnQAAAAAAAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAATcmVmZXJlckFkZHJlc3NWYWx1ZQUAAAARcGF5bWVudEZvclJlZmVyZXIJAQAAAA1nZXRFZ2dBc3NldElkAAAAAAUAAAADbmlsBgAAAAFpAQAAAA9jb25maWd1cmVPcmFjbGUAAAABAAAABm9yYWNsZQMJAQAAAAIhPQAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwkAAAIAAAABAgAAABBSQ0NPOiBhZG1pbiBvbmx5CQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIJAQAAABdzdGF0aWNLZXlfb3JhY2xlQWRkcmVzcwAAAAAFAAAABm9yYWNsZQUAAAADbmlsAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAMJAQAAAAlpc1Rlc3RFbnYAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQQAAAAJZmlyc3RVc2VyAQAAACBRHOT9Zv8SadLxWhSfO7Li9Dt/wctoJ6I0Xmw411fdbQQAAAAKc2Vjb25kVXNlcgEAAAAgwWzfju3TjXOPi6L5+okP9HXNRBtUclKjtJzSVqQt4HUEAAAACXRoaXJkVXNlcgEAAAAg51v0jqrS+UmeboQmuPl+H9xnqH3cK7jU6nvN8mgKwSUEAAAAD2ZpcnN0VXNlclNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAAlmaXJzdFVzZXIAAAAAAAAAAAEDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAQUAAAAJZmlyc3RVc2VyAAAAAAAAAAABAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAIFAAAACWZpcnN0VXNlcgAAAAAAAAAAAQAAAAAAAAAAAAQAAAAQc2Vjb25kVXNlclNpZ25lZAMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAAABQAAAApzZWNvbmRVc2VyAAAAAAAAAAABAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAEFAAAACnNlY29uZFVzZXIAAAAAAAAAAAEDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAgUAAAAKc2Vjb25kVXNlcgAAAAAAAAAAAQAAAAAAAAAAAAQAAAAPdGhpcmRVc2VyU2lnbmVkAwkAAfQAAAADCAUAAAACdHgAAAAJYm9keUJ5dGVzCQABkQAAAAIIBQAAAAJ0eAAAAAZwcm9vZnMAAAAAAAAAAAAFAAAACXRoaXJkVXNlcgAAAAAAAAAAAQMJAAH0AAAAAwgFAAAAAnR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAACdHgAAAAGcHJvb2ZzAAAAAAAAAAABBQAAAAl0aGlyZFVzZXIAAAAAAAAAAAEDCQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAgUAAAAJdGhpcmRVc2VyAAAAAAAAAAABAAAAAAAAAAAABAAAAA9zaWduYXR1cmVzQ291bnQJAABkAAAAAgkAAGQAAAACBQAAAA9maXJzdFVzZXJTaWduZWQFAAAAEHNlY29uZFVzZXJTaWduZWQFAAAAD3RoaXJkVXNlclNpZ25lZAQAAAAHJG1hdGNoMAUAAAACdHgJAABnAAAAAgUAAAAPc2lnbmF0dXJlc0NvdW50AAAAAAAAAAACf1uRhw==", "height": 4005335, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4Ea9Xe1VvyHyjc64myJYXWxo8zA1Lw4LCGgFnhsrNSrN Next: HrGu9RFWcnbwmdGQY1pTeeYodxXsx5ZDCuYuyxewyPw4 Diff:
OldNewDifferences
4141
4242
4343 func staticKey_capacityAddress () = "static_capacityAddress"
44+
45+
46+func staticKey_veggFarmingAddress () = "static_veggFarmingAddress"
4447
4548
4649 func tryGetBoolean (key) = match getBoolean(this, key) {
120123 func getCapacityAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_capacityAddress())))
121124
122125
123-func getTrustedAddress () = [getBreederAddress(), getBabyDuckAddress(), getFarmingAddress(), getHuntAddress(), getRebirthAddress(), getTurtleBreederAddress(), getTurtleIncubatorAddress(), getTurtleStakingAddress(), getTurtleRebirthAddress(), getCapacityAddress()]
126+func getVeggFarmingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_veggFarmingAddress())))
127+
128+
129+func getTrustedAddress () = [getBreederAddress(), getBabyDuckAddress(), getFarmingAddress(), getHuntAddress(), getRebirthAddress(), getTurtleBreederAddress(), getTurtleIncubatorAddress(), getTurtleStakingAddress(), getTurtleRebirthAddress(), getCapacityAddress(), getVeggFarmingAddress()]
124130
125131
126132 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 staticKey_turtleStakingAddress () = "static_turtleStakingAddress"
3838
3939
4040 func staticKey_turtleRebirthAddress () = "static_turtleRebirthAddress"
4141
4242
4343 func staticKey_capacityAddress () = "static_capacityAddress"
44+
45+
46+func staticKey_veggFarmingAddress () = "static_veggFarmingAddress"
4447
4548
4649 func tryGetBoolean (key) = match getBoolean(this, key) {
4750 case b: Boolean =>
4851 b
4952 case _ =>
5053 false
5154 }
5255
5356
5457 func tryGetInteger (key) = match getInteger(this, key) {
5558 case b: Int =>
5659 b
5760 case _ =>
5861 0
5962 }
6063
6164
6265 func isValidAddress (address) = match addressFromString(address) {
6366 case a: Address =>
6467 true
6568 case _ =>
6669 false
6770 }
6871
6972
7073 func tryGetStringExternal (address,key) = match getString(address, key) {
7174 case a: String =>
7275 a
7376 case _ =>
7477 ""
7578 }
7679
7780
7881 func tryGetString (key) = tryGetStringExternal(this, key)
7982
8083
8184 func getOracle () = Address(fromBase58String(tryGetString(staticKey_oracleAddress())))
8285
8386
8487 func getEggAssetId () = fromBase58String(tryGetStringExternal(getOracle(), staticKey_eggAssetId()))
8588
8689
8790 func getBreederAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_breederAddress())))
8891
8992
9093 func getIncubatorAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_incubatorAddress())))
9194
9295
9396 func getBabyDuckAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_babyDuckAddress())))
9497
9598
9699 func getFarmingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_farmingAddress())))
97100
98101
99102 func getCfMasterAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_cfMasterAddress())))
100103
101104
102105 func getHuntAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_huntAddress())))
103106
104107
105108 func getRebirthAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_rebirthAddress())))
106109
107110
108111 func getTurtleBreederAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleBreederAddress())))
109112
110113
111114 func getTurtleIncubatorAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleIncubatorAddress())))
112115
113116
114117 func getTurtleStakingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleStakingAddress())))
115118
116119
117120 func getTurtleRebirthAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_turtleRebirthAddress())))
118121
119122
120123 func getCapacityAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_capacityAddress())))
121124
122125
123-func getTrustedAddress () = [getBreederAddress(), getBabyDuckAddress(), getFarmingAddress(), getHuntAddress(), getRebirthAddress(), getTurtleBreederAddress(), getTurtleIncubatorAddress(), getTurtleStakingAddress(), getTurtleRebirthAddress(), getCapacityAddress()]
126+func getVeggFarmingAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_veggFarmingAddress())))
127+
128+
129+func getTrustedAddress () = [getBreederAddress(), getBabyDuckAddress(), getFarmingAddress(), getHuntAddress(), getRebirthAddress(), getTurtleBreederAddress(), getTurtleIncubatorAddress(), getTurtleStakingAddress(), getTurtleRebirthAddress(), getCapacityAddress(), getVeggFarmingAddress()]
124130
125131
126132 func masterTryGetBoolean (key) = match getBoolean(getCfMasterAddress(), key) {
127133 case b: Boolean =>
128134 b
129135 case _ =>
130136 false
131137 }
132138
133139
134140 func isTestEnv () = tryGetBoolean("TESTENV")
135141
136142
137143 @Callable(i)
138144 func addRefKey (refererAddress,refererKey) = if ((i.caller != this))
139145 then throw("admin only")
140146 else {
141147 let refStateKey = (("key_" + refererKey) + "_refererAddress")
142148 if ((tryGetString(refStateKey) == ""))
143149 then [StringEntry(refStateKey, refererAddress), StringEntry(((("address_" + refererAddress) + "_refererKey_") + refererKey), refererKey)]
144150 else throw((("The ref key \"" + refererKey) + "\" is already registered"))
145151 }
146152
147153
148154
149155 @Callable(i)
150156 func whitelistAddress (refererAddress) = if ((i.caller != this))
151157 then throw("RF: Only for admin!")
152158 else [BooleanEntry((refererAddress + "_whitelisted"), true)]
153159
154160
155161
156162 @Callable(i)
157163 func refPayment (refererKey) = {
158164 let dao = "3PEwRcYNAUtoFvKpBhKoiwajnZfdoDR6h4h"
159165 let alreadySend = tryGetInteger("dao_refund")
160166 let sendFundsToDao = $Tuple2([ScriptTransfer(addressFromStringValue(dao), i.payments[0].amount, i.payments[0].assetId), IntegerEntry("dao_refund", (alreadySend + i.payments[0].amount))], true)
161167 let referalAddress = toString(i.originCaller)
162168 if ((indexOf(getTrustedAddress(), i.caller) == unit))
163169 then throw("RC: This method can be called only by farming and incubator dApps")
164170 else if (if ((refererKey == ""))
165171 then (tryGetString((("address_" + referalAddress) + "_referedBy")) == "")
166172 else false)
167173 then sendFundsToDao
168174 else if (masterTryGetBoolean(("farm_" + referalAddress)))
169175 then sendFundsToDao
170176 else {
171177 let givenReferer = match getString(this, (("key_" + refererKey) + "_refererAddress")) {
172178 case x: String =>
173179 x
174180 case _ =>
175181 refererKey
176182 }
177183 let refererAddress = match getString(this, (("address_" + referalAddress) + "_referedBy")) {
178184 case x: String =>
179185 x
180186 case _ =>
181187 givenReferer
182188 }
183189 let refAmount = i.payments[0].amount
184190 if ((i.payments[0].assetId != getEggAssetId()))
185191 then throw("Don't try to cheat the system!")
186192 else if ((tryGetBoolean((refererAddress + "_whitelisted")) == false))
187193 then sendFundsToDao
188194 else if ((addressFromString(refererAddress) == unit))
189195 then sendFundsToDao
190196 else {
191197 let refererAddressValue = addressFromStringValue(refererAddress)
192198 let referalAddressValue = addressFromStringValue(referalAddress)
193199 let paymentForReferer = refAmount
194200 let refererEarnedReward = (("address_" + refererAddress) + "_earnedReward")
195201 let referalDeliveredReward = (((("referer_" + refererAddress) + "_referal_") + referalAddress) + "_deliveredReward")
196202 if ((refererAddress == referalAddress))
197203 then sendFundsToDao
198204 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)
199205 }
200206 }
201207 }
202208
203209
204210
205211 @Callable(i)
206212 func configureOracle (oracle) = if ((i.caller != this))
207213 then throw("RCCO: admin only")
208214 else [StringEntry(staticKey_oracleAddress(), oracle)]
209215
210216
211217 @Verifier(tx)
212218 func verify () = if (isTestEnv())
213219 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
214220 else {
215221 let firstUser = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
216222 let secondUser = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
217223 let thirdUser = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
218224 let firstUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], firstUser))
219225 then 1
220226 else if (sigVerify(tx.bodyBytes, tx.proofs[1], firstUser))
221227 then 1
222228 else if (sigVerify(tx.bodyBytes, tx.proofs[2], firstUser))
223229 then 1
224230 else 0
225231 let secondUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], secondUser))
226232 then 1
227233 else if (sigVerify(tx.bodyBytes, tx.proofs[1], secondUser))
228234 then 1
229235 else if (sigVerify(tx.bodyBytes, tx.proofs[2], secondUser))
230236 then 1
231237 else 0
232238 let thirdUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], thirdUser))
233239 then 1
234240 else if (sigVerify(tx.bodyBytes, tx.proofs[1], thirdUser))
235241 then 1
236242 else if (sigVerify(tx.bodyBytes, tx.proofs[2], thirdUser))
237243 then 1
238244 else 0
239245 let signaturesCount = ((firstUserSigned + secondUserSigned) + thirdUserSigned)
240246 match tx {
241247 case _ =>
242248 (signaturesCount >= 2)
243249 }
244250 }
245251

github/deemru/w8io/3ef1775 
35.81 ms