tx · BgWk9k1jxD9wbfkeHxaVC5Egw3YCYL7uX8gMdWd9yY9B

3Mqa6zGAReUUwsty7AzdVc62A8ZGtHMFeoi:  -0.02700000 Waves

2025.01.27 08:50 [3477089] smart account 3Mqa6zGAReUUwsty7AzdVc62A8ZGtHMFeoi > SELF 0.00000000 Waves

{ "type": 13, "id": "BgWk9k1jxD9wbfkeHxaVC5Egw3YCYL7uX8gMdWd9yY9B", "fee": 2700000, "feeAssetId": null, "timestamp": 1737957039295, "version": 2, "chainId": 84, "sender": "3Mqa6zGAReUUwsty7AzdVc62A8ZGtHMFeoi", "senderPublicKey": "9b2JEUjYeofMVhbJ76R6NmPWyLhEQBazsco3RnaecC2", "proofs": [ "58syY2iDPdUd7ZvwWstKjTaPTjEnbQhd5MeixFKhN8PiYgXcBNsTQatAFABbHsA4jWNN64MXgdENJiAMNxnXYjxG" ], "script": "base64:AAIFAAAAAAAAAC8IAhIECgIICBIDCgEIEgQKAggIEgUKAwgIARIDCgEIEgMKAQgSABIAEgASAwoBCAAAADcAAAAABVNjYWxlAAAAAAAF9eEAAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIAAAAHYWRkcmVzcwAAAANrZXkEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAHYWRkcmVzcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAZTdHJpbmcEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWECAAAAAAEAAAAMdHJ5R2V0U3RyaW5nAAAAAQAAAANrZXkJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIFAAAABHRoaXMFAAAAA2tleQEAAAAcc3RhdGljS2V5X3JlZkNvbnRyYWN0QWRkcmVzcwAAAAACAAAAGXN0YXRpY19yZWZDb250cmFjdEFkZHJlc3MAAAAAFWtleUdsb2JhbExhc3RJbnRlcmVzdAIAAAAZZ2xvYmFsX2xhc3RDaGVja19pbnRlcmVzdAEAAAAXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAAAAAAgAAABRzdGF0aWNfb3JhY2xlQWRkcmVzcwEAAAAUc3RhdGljS2V5X2VnZ0Fzc2V0SWQAAAAAAgAAABFzdGF0aWNfZWdnQXNzZXRJZAEAAAAec3RhdGljS2V5X2VhZ2xJbmN1YmF0b3JBZGRyZXNzAAAAAAIAAAAcc3RhdGljX2VhZ2xlSW5jdWJhdG9yQWRkcmVzcwEAAAAcc3RhdGljS2V5X2VhZ2xCcmVlZGVyQWRkcmVzcwAAAAACAAAAGnN0YXRpY19lYWdsZUJyZWVkZXJBZGRyZXNzAQAAABtzdGF0aWNLZXlfYWNjQm9vc3RlckFkZHJlc3MAAAAAAgAAABhzdGF0aWNfYWNjQm9vc3RlckFkZHJlc3MBAAAAGHN0YXRpY0tleV9jb3Vwb25zQWRkcmVzcwAAAAACAAAAFXN0YXRpY19jb3Vwb25zQWRkcmVzcwEAAAAVc3RhdGljS2V5X2J1cm5BZGRyZXNzAAAAAAIAAAASc3RhdGljX2J1cm5BZGRyZXNzAQAAABJzdGF0aWNLZXlfZXh0cmFGZWUAAAAAAgAAAA9zdGF0aWNfZXh0cmFGZWUBAAAAF3N0YXRpY0tleV9mZWVBZ2dyZWdhdG9yAAAAAAIAAAAUc3RhdGljX2ZlZUFnZ3JlZ2F0b3IAAAAAD2tleUdsb2JhbEVhcm5lZAIAAAAPZ2xvYmFsX2Vhcm5pbmdzAQAAABJzdGF0aWNLZXlfcGVyY2hGZWUAAAAAAgAAABRzdGF0aWNfZWFnbGVQZXJjaEZlZQEAAAAOdG90YWxTdGFrZWRLZXkAAAAAAgAAAAx0b3RhbF9zdGFrZWQBAAAAFHN0YXRpY0tleV9wemxBc3NldElkAAAAAAIAAAAUc3RhdGljX3B1enpsZUFzc2V0SWQBAAAAEXN0YXRpY0tleV9wemxEYXBwAAAAAAIAAAAYc3RhdGljX3B1enpsZURhcHBBZGRyZXNzAQAAABxzdGF0aWNLZXlfZWFnbFJlYmlydGhBZGRyZXNzAAAAAAIAAAAac3RhdGljX2VhZ2xlUmViaXJ0aEFkZHJlc3MBAAAACWdldE9yYWNsZQAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAMdHJ5R2V0U3RyaW5nAAAAAQkBAAAAF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAAAAAEAAAANZ2V0RWdnQXNzZXRJZAAAAAAJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABRzdGF0aWNLZXlfZWdnQXNzZXRJZAAAAAABAAAAE2dldEluY3ViYXRvckFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAAB5zdGF0aWNLZXlfZWFnbEluY3ViYXRvckFkZHJlc3MAAAAAAQAAABFnZXRCcmVlZGVyQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAHHN0YXRpY0tleV9lYWdsQnJlZWRlckFkZHJlc3MAAAAAAQAAABRnZXRBY2NCb29zdGVyQWRkcmVzcwAAAAAJAQAAAAdBZGRyZXNzAAAAAQkAAlkAAAABCQEAAAAUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwAAAACCQEAAAAJZ2V0T3JhY2xlAAAAAAkBAAAAG3N0YXRpY0tleV9hY2NCb29zdGVyQWRkcmVzcwAAAAABAAAAEWdldENvdXBvbnNBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAYc3RhdGljS2V5X2NvdXBvbnNBZGRyZXNzAAAAAAEAAAAOZ2V0QnVybkFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABVzdGF0aWNLZXlfYnVybkFkZHJlc3MAAAAAAQAAABBnZXRGZWVBZ2dyZWdhdG9yAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAAXc3RhdGljS2V5X2ZlZUFnZ3JlZ2F0b3IAAAAAAQAAABVnZXRSZWZDb250cmFjdEFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABxzdGF0aWNLZXlfcmVmQ29udHJhY3RBZGRyZXNzAAAAAAEAAAANZ2V0UHpsQXNzZXRJZAAAAAAJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABRzdGF0aWNLZXlfcHpsQXNzZXRJZAAAAAABAAAAEWdldFB6bERhcHBBZGRyZXNzAAAAAAkBAAAAB0FkZHJlc3MAAAABCQACWQAAAAEJAQAAABR0cnlHZXRTdHJpbmdFeHRlcm5hbAAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAARc3RhdGljS2V5X3B6bERhcHAAAAAAAQAAABVnZXRFYWdsUmViaXJ0aEFkZHJlc3MAAAAACQEAAAAHQWRkcmVzcwAAAAEJAAJZAAAAAQkBAAAAFHRyeUdldFN0cmluZ0V4dGVybmFsAAAAAgkBAAAACWdldE9yYWNsZQAAAAAJAQAAABxzdGF0aWNLZXlfZWFnbFJlYmlydGhBZGRyZXNzAAAAAAEAAAAUa2V5TGFzdENoZWNrSW50ZXJlc3QAAAACAAAAB2FkZHJlc3MAAAAFYXNzZXQJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIYWRkcmVzc18FAAAAB2FkZHJlc3MCAAAAB19hc3NldF8FAAAABWFzc2V0AgAAABJfbGFzdENoZWNrSW50ZXJlc3QBAAAAEWFzc2V0RmFybWluZ1Bvd2VyAAAAAgAAAAdhZGRyZXNzAAAABWFzc2V0CQABLAAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACGFkZHJlc3NfBQAAAAdhZGRyZXNzAgAAAAdfYXNzZXRfBQAAAAVhc3NldAIAAAANX2Zhcm1pbmdQb3dlcgEAAAAQcmV3YXJkQ2xhaW1lZEtleQAAAAIAAAAHYWRkcmVzcwAAAAVhc3NldAkAASwAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAHYWRkcmVzcwIAAAAHX2Fzc2V0XwUAAAAFYXNzZXQCAAAACF9jbGFpbWVkAQAAABJ0b3RhbFN0YWtlZFVzZXJLZXkAAAABAAAAB2FkZHJlc3MJAAEsAAAAAgIAAAANdG90YWxfc3Rha2VkXwUAAAAHYWRkcmVzcwAAAAAHc3Rha2VJZAkBAAAADHRyeUdldFN0cmluZwAAAAECAAAADWxhc3Rfc3Rha2VfaWQAAAAADVJlZmVyZXJSZXdhcmQAAAAAAAAAAAUBAAAAFmNoZWNrQWRkaXRpb25hbFBheW1lbnQAAAABAAAAB3BheW1lbnQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkAAAIAAAABAgAAABlGQ0FQOiBQbGVhc2UgYXR0YWNoIHdhdmVzBAAAAAlmZWVBbW91bnQJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIJAQAAAAlnZXRPcmFjbGUAAAAACQEAAAASc3RhdGljS2V5X2V4dHJhRmVlAAAAAAMJAQAAAAIhPQAAAAIIBQAAAAdwYXltZW50AAAABmFtb3VudAUAAAAJZmVlQW1vdW50CQAAAgAAAAEJAAEsAAAAAgkAASwAAAACAgAAABxGQ0FQOiBQbGVhc2UgYXR0YWNoIGV4YWN0bHkgCQABpAAAAAEFAAAACWZlZUFtb3VudAIAAAATIGFtb3VudCBvZiB3YXZlbGV0cwkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAQZ2V0RmVlQWdncmVnYXRvcgAAAAAFAAAACWZlZUFtb3VudAUAAAAEdW5pdAUAAAADbmlsAQAAAAdnZXRCb29sAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQbAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFiBQAAAAckbWF0Y2gwBQAAAAFiBwEAAAAJaXNUZXN0RW52AAAAAAkBAAAAB2dldEJvb2wAAAABAgAAAAdURVNURU5WAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQAAAANrZXkEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwUAAAADa2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWIFAAAAByRtYXRjaDAFAAAAAWIAAAAAAAAAAAABAAAABWFzSW50AAAAAQAAAAV2YWx1ZQQAAAAHJG1hdGNoMAUAAAAFdmFsdWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAADaW50BQAAAAckbWF0Y2gwBQAAAANpbnQJAAACAAAAAQIAAAAeRkFJOiB3cm9uZyB0eXBlLCBleHBlY3RlZDogSW50AQAAAAphc0ludFR1cGxlAAAAAQAAAAV2YWx1ZQQAAAAHJG1hdGNoMAUAAAAFdmFsdWUDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAACihJbnQsIEludCkEAAAAA2ludAUAAAAHJG1hdGNoMAUAAAADaW50CQAAAgAAAAECAAAAJEZBSTogd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IChJbnQsSW50KQEAAAASaGFuZGxlU3Rha2luZ1RvcFVwAAAAAQAAAAt0b3RhbEFtb3VudAQAAAAEdGVhbQkAAGkAAAACBQAAAAt0b3RhbEFtb3VudAAAAAAAAAAACgQAAAAOY29tcG91bmRBbW91bnQJAABpAAAAAgkAAGUAAAACBQAAAAt0b3RhbEFtb3VudAUAAAAEdGVhbQAAAAAAAAAAAgQAAAAMcGF5b3V0QW1vdW50CQAAZQAAAAIJAABlAAAAAgUAAAALdG90YWxBbW91bnQFAAAADmNvbXBvdW5kQW1vdW50BQAAAAR0ZWFtBAAAAA9jdXJyZW50SW50ZXJlc3QJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQUAAAAVa2V5R2xvYmFsTGFzdEludGVyZXN0BAAAABF0b3RhbFN0YWtlZEFtb3VudAkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAAOdG90YWxTdGFrZWRLZXkAAAAABAAAAA1pbnRlcmVzdERlbHRhAwkAAGYAAAACBQAAABF0b3RhbFN0YWtlZEFtb3VudAAAAAAAAAAAAAkAAGsAAAADBQAAAAxwYXlvdXRBbW91bnQFAAAABVNjYWxlBQAAABF0b3RhbFN0YWtlZEFtb3VudAAAAAAAAAAAAAQAAAAJaW52b2tlUmVzAwkBAAAACWlzVGVzdEVudgAAAAAFAAAAA25pbAkAA/wAAAAECQEAAAARZ2V0UHpsRGFwcEFkZHJlc3MAAAAAAgAAAAVzdGFrZQUAAAADbmlsCQAETAAAAAIJAQAAAA9BdHRhY2hlZFBheW1lbnQAAAACCQEAAAANZ2V0UHpsQXNzZXRJZAAAAAAFAAAADmNvbXBvdW5kQW1vdW50BQAAAANuaWwDCQAAAAAAAAIFAAAACWludm9rZVJlcwUAAAAJaW52b2tlUmVzCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACBQAAAA9rZXlHbG9iYWxFYXJuZWQJAABkAAAAAgkBAAAADXRyeUdldEludGVnZXIAAAABBQAAAA9rZXlHbG9iYWxFYXJuZWQFAAAADHBheW91dEFtb3VudAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgUAAAAVa2V5R2xvYmFsTGFzdEludGVyZXN0CQAAZAAAAAIFAAAAD2N1cnJlbnRJbnRlcmVzdAUAAAANaW50ZXJlc3REZWx0YQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgIAAAASZ2xvYmFsX1BaTF9i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cwQAAAAJY3VycmVudEZQCQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEJAQAAABFhc3NldEZhcm1pbmdQb3dlcgAAAAIFAAAAB2FkZHJlc3MFAAAABWFzc2V0BAAAAAVuZXdGUAkBAAAACmFzSW50VHVwbGUAAAABCQAD/AAAAAQFAAAABHRoaXMCAAAAEmNhbGN1bGF0ZUZhcm1Qb3dlcgkABEwAAAACBQAAAAVhc3NldAkABEwAAAACBQAAAAdhZGRyZXNzBQAAAANuaWwFAAAAA25pbAMJAQAAAAIhPQAAAAIFAAAACWN1cnJlbnRGUAAAAAAAAAAAAAkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAADnRvdGFsU3Rha2VkS2V5AAAAAAkAAGQAAAACCQAAZQAAAAIFAAAAC3RvdGFsU3Rha2VkBQAAAAljdXJyZW50RlAIBQAAAAVuZXdGUAAAAAJfMQkABEwAAAACCQEAAAAMSW50ZWdlckVudHJ5AAAAAgkBAAAAEnRvdGFsU3Rha2VkVXNlcktleQAAAAEFAAAAB2FkZHJlc3MJAABkAAAAAgkAAGUAAAACBQAAAA90b3RhbFN0YWtlZFVzZXIFAAAACWN1cnJlbnRGUAgFAAAABW5ld0ZQAAAAAl8xCQAETAAAAAIJAQAAAAxJbnRlZ2VyRW50cnkAAAACCQEAAAARYXNzZXRGYXJtaW5nUG93ZXIAAAACBQAAAAdhZGRyZXNzBQAAAAVhc3NldAgFAAAABW5ld0ZQAAAAAl8xBQAAAANuaWwFAAAAA25pbAEAAAASY2xhaW1TdGFraW5nUmVzdWx0AAAAAwAAAAdhZGRyZXNzAAAABWFzc2V0AAAABnJlY2FsYwQAAAAPY3VycmVudEludGVyZXN0CQEAAAANdHJ5R2V0SW50ZWdlcgAAAAEFAAAAFWtleUdsb2JhbExhc3RJbnRlcmVzdAQAAAARbGFzdENoZWNrSW50ZXJlc3QJAQAAAA10cnlHZXRJbnRlZ2VyAAAAAQkBAAAAFGtleUxhc3RDaGVja0ludGVyZXN0AAAAAgUAAAAHYWRkcmVzcwUAAAAFYXNzZXQEAAAADHN0YWtlZEFtb3VudAkBAAAADXRyeUdldEludGVnZXIAAAABCQEAAAARYXNzZXRGYXJtaW5nUG93ZXIA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", "height": 3477089, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AfDhXB4qkHo2AwDea7N669tvSW268WbzdcjEgnXXZeLe Next: none Diff:
OldNewDifferences
310310 else size(uniqueList)
311311 let power = pow(15, 1, totalGenes, 0, 2, DOWN)
312312 let baseBlock = if (isTestEnv())
313- then 2500000
314- else 3750000
313+ then 3460000
314+ else 4530000
315315 let multiplier = (((height - baseBlock) * 100) / (((60 * 24) * 30) * 3))
316316 let basePower = tryGetInteger((assetId + "_basePower"))
317317 let finalPower = if ((basePower > 0))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let Scale = 100000000
55
66 func tryGetStringExternal (address,key) = match getString(address, key) {
77 case a: String =>
88 a
99 case _ =>
1010 ""
1111 }
1212
1313
1414 func tryGetString (key) = tryGetStringExternal(this, key)
1515
1616
1717 func staticKey_refContractAddress () = "static_refContractAddress"
1818
1919
2020 let keyGlobalLastInterest = "global_lastCheck_interest"
2121
2222 func staticKey_oracleAddress () = "static_oracleAddress"
2323
2424
2525 func staticKey_eggAssetId () = "static_eggAssetId"
2626
2727
2828 func staticKey_eaglIncubatorAddress () = "static_eagleIncubatorAddress"
2929
3030
3131 func staticKey_eaglBreederAddress () = "static_eagleBreederAddress"
3232
3333
3434 func staticKey_accBoosterAddress () = "static_accBoosterAddress"
3535
3636
3737 func staticKey_couponsAddress () = "static_couponsAddress"
3838
3939
4040 func staticKey_burnAddress () = "static_burnAddress"
4141
4242
4343 func staticKey_extraFee () = "static_extraFee"
4444
4545
4646 func staticKey_feeAggregator () = "static_feeAggregator"
4747
4848
4949 let keyGlobalEarned = "global_earnings"
5050
5151 func staticKey_perchFee () = "static_eaglePerchFee"
5252
5353
5454 func totalStakedKey () = "total_staked"
5555
5656
5757 func staticKey_pzlAssetId () = "static_puzzleAssetId"
5858
5959
6060 func staticKey_pzlDapp () = "static_puzzleDappAddress"
6161
6262
6363 func staticKey_eaglRebirthAddress () = "static_eagleRebirthAddress"
6464
6565
6666 func getOracle () = Address(fromBase58String(tryGetString(staticKey_oracleAddress())))
6767
6868
6969 func getEggAssetId () = fromBase58String(tryGetStringExternal(getOracle(), staticKey_eggAssetId()))
7070
7171
7272 func getIncubatorAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_eaglIncubatorAddress())))
7373
7474
7575 func getBreederAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_eaglBreederAddress())))
7676
7777
7878 func getAccBoosterAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_accBoosterAddress())))
7979
8080
8181 func getCouponsAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_couponsAddress())))
8282
8383
8484 func getBurnAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_burnAddress())))
8585
8686
8787 func getFeeAggregator () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_feeAggregator())))
8888
8989
9090 func getRefContractAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_refContractAddress())))
9191
9292
9393 func getPzlAssetId () = fromBase58String(tryGetStringExternal(getOracle(), staticKey_pzlAssetId()))
9494
9595
9696 func getPzlDappAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_pzlDapp())))
9797
9898
9999 func getEaglRebirthAddress () = Address(fromBase58String(tryGetStringExternal(getOracle(), staticKey_eaglRebirthAddress())))
100100
101101
102102 func keyLastCheckInterest (address,asset) = (((("address_" + address) + "_asset_") + asset) + "_lastCheckInterest")
103103
104104
105105 func assetFarmingPower (address,asset) = (((("address_" + address) + "_asset_") + asset) + "_farmingPower")
106106
107107
108108 func rewardClaimedKey (address,asset) = (((address + "_asset_") + asset) + "_claimed")
109109
110110
111111 func totalStakedUserKey (address) = ("total_staked_" + address)
112112
113113
114114 let stakeId = tryGetString("last_stake_id")
115115
116116 let RefererReward = 5
117117
118118 func checkAdditionalPayment (payment) = if (isDefined(payment.assetId))
119119 then throw("FCAP: Please attach waves")
120120 else {
121121 let feeAmount = getIntegerValue(getOracle(), staticKey_extraFee())
122122 if ((payment.amount != feeAmount))
123123 then throw((("FCAP: Please attach exactly " + toString(feeAmount)) + " amount of wavelets"))
124124 else [ScriptTransfer(getFeeAggregator(), feeAmount, unit)]
125125 }
126126
127127
128128 func getBool (key) = match getBoolean(this, key) {
129129 case b: Boolean =>
130130 b
131131 case _ =>
132132 false
133133 }
134134
135135
136136 func isTestEnv () = getBool("TESTENV")
137137
138138
139139 func tryGetInteger (key) = match getInteger(this, key) {
140140 case b: Int =>
141141 b
142142 case _ =>
143143 0
144144 }
145145
146146
147147 func asInt (value) = match value {
148148 case int: Int =>
149149 int
150150 case _ =>
151151 throw("FAI: wrong type, expected: Int")
152152 }
153153
154154
155155 func asIntTuple (value) = match value {
156156 case int: (Int, Int) =>
157157 int
158158 case _ =>
159159 throw("FAI: wrong type, expected: (Int,Int)")
160160 }
161161
162162
163163 func handleStakingTopUp (totalAmount) = {
164164 let team = (totalAmount / 10)
165165 let compoundAmount = ((totalAmount - team) / 2)
166166 let payoutAmount = ((totalAmount - compoundAmount) - team)
167167 let currentInterest = tryGetInteger(keyGlobalLastInterest)
168168 let totalStakedAmount = tryGetInteger(totalStakedKey())
169169 let interestDelta = if ((totalStakedAmount > 0))
170170 then fraction(payoutAmount, Scale, totalStakedAmount)
171171 else 0
172172 let invokeRes = if (isTestEnv())
173173 then nil
174174 else invoke(getPzlDappAddress(), "stake", nil, [AttachedPayment(getPzlAssetId(), compoundAmount)])
175175 if ((invokeRes == invokeRes))
176176 then [IntegerEntry(keyGlobalEarned, (tryGetInteger(keyGlobalEarned) + payoutAmount)), IntegerEntry(keyGlobalLastInterest, (currentInterest + interestDelta)), IntegerEntry("global_PZL_balance", (tryGetInteger("global_PZL_balance") + compoundAmount)), ScriptTransfer(getFeeAggregator(), team, getPzlAssetId())]
177177 else throw("Strict value is not equal to itself.")
178178 }
179179
180180
181181 func asString (value) = match value {
182182 case string: String =>
183183 string
184184 case _ =>
185185 throw("FAS: wrong type, expected: String")
186186 }
187187
188188
189189 func tryGetBoolean (key) = match getBoolean(this, key) {
190190 case b: Boolean =>
191191 b
192192 case _ =>
193193 false
194194 }
195195
196196
197197 func tryGetBooleanExternal (address,key) = match getBoolean(address, key) {
198198 case b: Boolean =>
199199 b
200200 case _ =>
201201 false
202202 }
203203
204204
205205 func getAssetOrigin (generation) = if ((generation == "G"))
206206 then getIncubatorAddress()
207207 else getBreederAddress()
208208
209209
210210 func getAssetRarity (genotype,generation) = {
211211 let quantity = valueOrErrorMessage(getInteger(getAssetOrigin(generation), (("stats_" + genotype) + "_quantity")), (("stats_" + genotype) + "_quantity not found"))
212212 let power = pow((10000 / quantity), 4, 5, 1, 2, FLOOR)
213213 if ((power > 0))
214214 then power
215215 else 2
216216 }
217217
218218
219219 func getAssetRarityComplete (isJackpot,assetName) = {
220220 let rarity = if (isJackpot)
221221 then 100
222222 else {
223223 let generation = take(takeRight(assetName, 2), 1)
224224 let farmGen = asString(invoke(getBreederAddress(), "getGenFromName", [assetName], nil))
225225 if ((farmGen == farmGen))
226226 then getAssetRarity(farmGen, generation)
227227 else throw("Strict value is not equal to itself.")
228228 }
229229 rarity
230230 }
231231
232232
233233 func updateFarmingPower (address,asset) = {
234234 let totalStaked = tryGetInteger(totalStakedKey())
235235 let totalStakedUser = tryGetInteger(totalStakedUserKey(address))
236236 let currentFP = tryGetInteger(assetFarmingPower(address, asset))
237237 let newFP = asIntTuple(invoke(this, "calculateFarmPower", [asset, address], nil))
238238 if ((currentFP != 0))
239239 then [IntegerEntry(totalStakedKey(), ((totalStaked - currentFP) + newFP._1)), IntegerEntry(totalStakedUserKey(address), ((totalStakedUser - currentFP) + newFP._1)), IntegerEntry(assetFarmingPower(address, asset), newFP._1)]
240240 else nil
241241 }
242242
243243
244244 func claimStakingResult (address,asset,recalc) = {
245245 let currentInterest = tryGetInteger(keyGlobalLastInterest)
246246 let lastCheckInterest = tryGetInteger(keyLastCheckInterest(address, asset))
247247 let stakedAmount = tryGetInteger(assetFarmingPower(address, asset))
248248 let fpUpdate = if (recalc)
249249 then updateFarmingPower(address, asset)
250250 else nil
251251 if ((fpUpdate == fpUpdate))
252252 then {
253253 let reward = if ((lastCheckInterest > 0))
254254 then fraction((currentInterest - lastCheckInterest), stakedAmount, Scale)
255255 else 0
256256 $Tuple2(([ScriptTransfer(addressFromStringValue(address), reward, getPzlAssetId()), IntegerEntry(keyLastCheckInterest(address, asset), currentInterest), IntegerEntry(rewardClaimedKey(address, asset), (tryGetInteger(rewardClaimedKey(address, asset)) + reward))] ++ fpUpdate), reward)
257257 }
258258 else throw("Strict value is not equal to itself.")
259259 }
260260
261261
262262 func asBoolean (value) = match value {
263263 case boolean: Boolean =>
264264 boolean
265265 case _ =>
266266 throw("FAB: wrong type, expected: Boolean")
267267 }
268268
269269
270270 func calculatePerchPrice (address) = {
271271 let hasArtefactStaked = tryGetStringExternal(getAccBoosterAddress(), (("ART-XMISTL_" + address) + "_owner"))
272272 let perchPrice = getIntegerValue(getOracle(), staticKey_perchFee())
273273 if ((hasArtefactStaked == ""))
274274 then perchPrice
275275 else ((perchPrice / 10) * 9)
276276 }
277277
278278
279279 @Callable(i)
280280 func calculateFarmPower (assetId,bonusAddress) = if (!(if ((value(assetInfo(fromBase58String(assetId))).issuer == getBreederAddress()))
281281 then true
282282 else (value(assetInfo(fromBase58String(assetId))).issuer == getIncubatorAddress())))
283283 then throw("This does not seem like a valid Duck!")
284284 else {
285285 let assetName = value(assetInfo(fromBase58String(assetId))).name
286286 let gen = takeRight(assetName, 1)
287287 let isJackpot = (takeRight(assetName, 1) == "U")
288288 let rarity = getAssetRarityComplete(isJackpot, assetName)
289289 let genotype = split(dropRight(drop(assetName, 5), 3), "")
290290 func uniqueArrayFilter (accum,nextGen) = if (!(containsElement(accum, nextGen)))
291291 then (accum :+ nextGen)
292292 else accum
293293
294294 let uniqueList = {
295295 let $l = genotype
296296 let $s = size($l)
297297 let $acc0 = nil
298298 func $f0_1 ($a,$i) = if (($i >= $s))
299299 then $a
300300 else uniqueArrayFilter($a, $l[$i])
301301
302302 func $f0_2 ($a,$i) = if (($i >= $s))
303303 then $a
304304 else throw("List size exceeds 8")
305305
306306 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8)
307307 }
308308 let totalGenes = if ((gen == "U"))
309309 then 8
310310 else size(uniqueList)
311311 let power = pow(15, 1, totalGenes, 0, 2, DOWN)
312312 let baseBlock = if (isTestEnv())
313- then 2500000
314- else 3750000
313+ then 3460000
314+ else 4530000
315315 let multiplier = (((height - baseBlock) * 100) / (((60 * 24) * 30) * 3))
316316 let basePower = tryGetInteger((assetId + "_basePower"))
317317 let finalPower = if ((basePower > 0))
318318 then basePower
319319 else ((power * multiplier) / 100)
320320 let finalPowerRarity = ((finalPower * rarity) / 100)
321321 let farmBoost = 0
322322 if ((farmBoost == farmBoost))
323323 then {
324324 let finalPowerRarityBoost = (finalPowerRarity + ((finalPowerRarity * farmBoost) / 100))
325325 $Tuple2(nil, $Tuple2(finalPowerRarityBoost, finalPower))
326326 }
327327 else throw("Strict value is not equal to itself.")
328328 }
329329
330330
331331
332332 @Callable(i)
333333 func configureOracle (oracle) = if ((i.caller != this))
334334 then throw("FCO: admin only")
335335 else [StringEntry(staticKey_oracleAddress(), oracle)]
336336
337337
338338
339339 @Callable(i)
340340 func buyPerch (colorI,refererAddress) = {
341341 let validPayment = checkAdditionalPayment(i.payments[0])
342342 if ((validPayment == validPayment))
343343 then {
344344 let color = if ((colorI == "U"))
345345 then "B"
346346 else colorI
347347 if ((0 > value(indexOf(["A", "B", "C", "D"], color))))
348348 then throw("you need to set color properly")
349349 else {
350350 let exactPrice = calculatePerchPrice(toString(i.caller))
351351 let leftToPay = if ((i.originCaller == i.caller))
352352 then {
353353 let amountPaidByCoupons = asInt(invoke(getCouponsAddress(), "useCoupons", [exactPrice], nil))
354354 if ((amountPaidByCoupons == amountPaidByCoupons))
355355 then (exactPrice - amountPaidByCoupons)
356356 else throw("Strict value is not equal to itself.")
357357 }
358358 else exactPrice
359359 let payment = if ((leftToPay != 0))
360360 then {
361361 let firstPayment = if ((size(i.payments) == 2))
362362 then value(i.payments[1])
363363 else value(i.payments[0])
364364 if ((firstPayment.assetId != getEggAssetId()))
365365 then throw(("FBP: You can attach only EGG tokens with the following asset id: " + toBase58String(getEggAssetId())))
366366 else if ((firstPayment.amount != leftToPay))
367367 then throw(((("FBP: To buy a perch you currently need the following amount of EGGlets: " + toString(leftToPay)) + " ") + toString(i.caller)))
368368 else {
369369 let refererRewardForPerch = fraction(leftToPay, 5, 100)
370370 let refCall = asBoolean(invoke(getRefContractAddress(), "refPayment", [refererAddress], [AttachedPayment(getEggAssetId(), refererRewardForPerch)]))
371371 if ((refCall == refCall))
372372 then {
373373 let toBurn = if (refCall)
374374 then (leftToPay - refererRewardForPerch)
375375 else leftToPay
376376 let burnCall = invoke(getBurnAddress(), "burnAttachedPayments", nil, [AttachedPayment(getEggAssetId(), toBurn)])
377377 if ((burnCall == burnCall))
378378 then leftToPay
379379 else throw("Strict value is not equal to itself.")
380380 }
381381 else throw("Strict value is not equal to itself.")
382382 }
383383 }
384384 else 0
385385 if ((payment == payment))
386386 then {
387387 let perchAmountKey = ((("address_" + toString(i.caller)) + "_perchesAvailable_") + color)
388388 let perchAmount = tryGetInteger(perchAmountKey)
389389 ([IntegerEntry(perchAmountKey, (perchAmount + 1))] ++ validPayment)
390390 }
391391 else throw("Strict value is not equal to itself.")
392392 }
393393 }
394394 else throw("Strict value is not equal to itself.")
395395 }
396396
397397
398398
399399 @Callable(i)
400400 func addFreePerch (address,color,amount) = if ((0 > value(indexOf(["A", "B", "C", "D"], color))))
401401 then throw("you need to set color properly")
402402 else if (if ((i.caller != this))
403403 then (i.caller != getEaglRebirthAddress())
404404 else false)
405405 then throw("rebirth and admin only")
406406 else {
407407 let perchAmountKey = ((("address_" + address) + "_perchesAvailable_") + color)
408408 let perchAmount = tryGetInteger(perchAmountKey)
409409 $Tuple2([IntegerEntry(perchAmountKey, (perchAmount + amount))], "")
410410 }
411411
412412
413413
414414 @Callable(i)
415415 func stakeNFT (jColor) = {
416416 let validPayment = checkAdditionalPayment(i.payments[0])
417417 if ((validPayment == validPayment))
418418 then {
419419 let pmt = value(i.payments[1])
420420 let assetId = value(pmt.assetId)
421421 let assetName = value(value(assetInfo(assetId)).name)
422422 let isJackpot = (takeRight(assetName, 1) == "U")
423423 let address = toString(i.caller)
424424 let perchAddress = address
425425 let color = if (isJackpot)
426426 then jColor
427427 else takeRight(assetName, 1)
428428 let perches = {
429429 let availablePerches = tryGetInteger(((("address_" + perchAddress) + "_perchesAvailable_") + color))
430430 if ((0 >= availablePerches))
431431 then throw(("no perches available for the color " + color))
432432 else [IntegerEntry(((("address_" + perchAddress) + "_perchesAvailable_") + color), (availablePerches - 1)), StringEntry((((("address_" + address) + "_asset_") + toBase58String(assetId)) + "_perchColor"), color)]
433433 }
434434 if ((perches == perches))
435435 then if ((pmt.amount != 1))
436436 then throw("NFT is not attached")
437437 else {
438438 let farmingPower = asIntTuple(invoke(this, "calculateFarmPower", [toBase58String(assetId), toString(i.originCaller)], nil))
439439 if ((farmingPower == farmingPower))
440440 then {
441441 let result = claimStakingResult(address, toBase58String(assetId), false)
442442 if ((result == result))
443443 then ((([IntegerEntry(totalStakedKey(), (tryGetInteger(totalStakedKey()) + farmingPower._1)), IntegerEntry(totalStakedUserKey(address), (tryGetInteger(totalStakedUserKey(address)) + farmingPower._1)), StringEntry((toBase58String(assetId) + "_owner"), address), StringEntry((toBase58String(assetId) + "_original_caller"), toString(i.originCaller)), IntegerEntry(assetFarmingPower(address, toBase58String(assetId)), farmingPower._1), IntegerEntry((toBase58String(assetId) + "_basePower"), farmingPower._2)] ++ validPayment) ++ perches) ++ result._1)
444444 else throw("Strict value is not equal to itself.")
445445 }
446446 else throw("Strict value is not equal to itself.")
447447 }
448448 else throw("Strict value is not equal to itself.")
449449 }
450450 else throw("Strict value is not equal to itself.")
451451 }
452452
453453
454454
455455 @Callable(i)
456456 func unstakeNFT (asset) = {
457457 let address = toString(i.caller)
458458 if ((tryGetString((asset + "_owner")) != toString(i.caller)))
459459 then throw("You don't own this duck!!")
460460 else {
461461 let result = claimStakingResult(address, asset, false)
462462 if ((result == result))
463463 then {
464464 let validPayment = checkAdditionalPayment(i.payments[0])
465465 if ((validPayment == validPayment))
466466 then {
467467 let color = tryGetString((((("address_" + address) + "_asset_") + asset) + "_perchColor"))
468468 let assetFP = tryGetInteger(assetFarmingPower(address, asset))
469469 if ((assetFP == assetFP))
470470 then $Tuple2((([IntegerEntry(totalStakedKey(), (tryGetInteger(totalStakedKey()) - assetFP)), IntegerEntry(totalStakedUserKey(address), (tryGetInteger(totalStakedUserKey(address)) - assetFP)), DeleteEntry((asset + "_owner")), DeleteEntry(assetFarmingPower(address, asset)), DeleteEntry((((("address_" + address) + "_asset_") + asset) + "_perchColor")), DeleteEntry((asset + "_original_caller")), DeleteEntry((asset + "_use_origin")), DeleteEntry((asset + "_without_perch")), ScriptTransfer(Address(fromBase58String(address)), 1, fromBase58String(asset)), IntegerEntry(((("address_" + address) + "_perchesAvailable_") + color), (tryGetInteger(((("address_" + address) + "_perchesAvailable_") + color)) + 1))] ++ validPayment) ++ result._1), result._2)
471471 else throw("Strict value is not equal to itself.")
472472 }
473473 else throw("Strict value is not equal to itself.")
474474 }
475475 else throw("Strict value is not equal to itself.")
476476 }
477477 }
478478
479479
480480
481481 @Callable(i)
482482 func topUpReward () = {
483483 let firstPayment = value(i.payments[0])
484484 if ((firstPayment.assetId != getPzlAssetId()))
485485 then throw(("FBP: You can attach only" + toBase58String(getPzlAssetId())))
486486 else {
487487 let resHandleStaking = handleStakingTopUp(firstPayment.amount)
488488 $Tuple2(resHandleStaking, true)
489489 }
490490 }
491491
492492
493493
494494 @Callable(i)
495495 func claimRewardPete () = {
496496 let peteBalanceBefore = assetBalance(this, getPzlAssetId())
497497 if ((peteBalanceBefore == peteBalanceBefore))
498498 then {
499499 let invokeRes = if (isTestEnv())
500500 then nil
501501 else invoke(getPzlDappAddress(), "claim", nil, nil)
502502 if ((invokeRes == invokeRes))
503503 then {
504504 let peteBalanceAfter = assetBalance(this, getPzlAssetId())
505505 if ((peteBalanceAfter == peteBalanceAfter))
506506 then {
507507 let resHandleStaking = handleStakingTopUp(((peteBalanceAfter - peteBalanceBefore) - 10000000))
508508 $Tuple2(resHandleStaking, true)
509509 }
510510 else throw("Strict value is not equal to itself.")
511511 }
512512 else throw("Strict value is not equal to itself.")
513513 }
514514 else throw("Strict value is not equal to itself.")
515515 }
516516
517517
518518
519519 @Callable(i)
520520 func addPuzzleAndStakeMore () = {
521521 let firstPayment = value(i.payments[0])
522522 if ((firstPayment.assetId != getPzlAssetId()))
523523 then throw("FBP: You can attach only Waves")
524524 else {
525525 let invokeRes = if (isTestEnv())
526526 then nil
527527 else invoke(getPzlDappAddress(), "stake", nil, [i.payments[0]])
528528 if ((invokeRes == invokeRes))
529529 then [IntegerEntry("global_PZL_balance", (tryGetInteger("global_PZL_balance") + firstPayment.amount))]
530530 else throw("Strict value is not equal to itself.")
531531 }
532532 }
533533
534534
535535
536536 @Callable(i)
537537 func claimReward (assetId) = {
538538 let validPayment = checkAdditionalPayment(i.payments[0])
539539 if ((validPayment == validPayment))
540540 then if ((tryGetString((assetId + "_owner")) != toString(i.caller)))
541541 then throw((("You don't own this duck (" + assetId) + ")!! "))
542542 else if ((size(i.payments) > 1))
543543 then throw("Please don't add extra payments")
544544 else {
545545 let owner = toString(i.caller)
546546 let result = claimStakingResult(owner, assetId, true)
547547 $Tuple2((validPayment ++ result._1), result._2)
548548 }
549549 else throw("Strict value is not equal to itself.")
550550 }
551551
552552
553553 @Verifier(tx)
554554 func verify () = if (isTestEnv())
555555 then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
556556 else {
557557 let firstUser = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4'
558558 let secondUser = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8'
559559 let thirdUser = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3'
560560 let firstUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], firstUser))
561561 then 1
562562 else if (sigVerify(tx.bodyBytes, tx.proofs[1], firstUser))
563563 then 1
564564 else if (sigVerify(tx.bodyBytes, tx.proofs[2], firstUser))
565565 then 1
566566 else 0
567567 let secondUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], secondUser))
568568 then 1
569569 else if (sigVerify(tx.bodyBytes, tx.proofs[1], secondUser))
570570 then 1
571571 else if (sigVerify(tx.bodyBytes, tx.proofs[2], secondUser))
572572 then 1
573573 else 0
574574 let thirdUserSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], thirdUser))
575575 then 1
576576 else if (sigVerify(tx.bodyBytes, tx.proofs[1], thirdUser))
577577 then 1
578578 else if (sigVerify(tx.bodyBytes, tx.proofs[2], thirdUser))
579579 then 1
580580 else 0
581581 let signaturesCount = ((firstUserSigned + secondUserSigned) + thirdUserSigned)
582582 match tx {
583583 case _ =>
584584 (signaturesCount >= 1)
585585 }
586586 }
587587

github/deemru/w8io/169f3d6 
59.60 ms