tx · ADWHsvHiAEdRJBP3w8b2uNUxPrpsxS7PWuM9cxPuuGuL 3N1oZwpYE3p4x63jWiKpszmfLU3Lk3KtSWe: -0.01700000 Waves 2024.12.27 22:31 [3433355] smart account 3N1oZwpYE3p4x63jWiKpszmfLU3Lk3KtSWe > SELF 0.00000000 Waves
{ "type": 13, "id": "ADWHsvHiAEdRJBP3w8b2uNUxPrpsxS7PWuM9cxPuuGuL", "fee": 1700000, "feeAssetId": null, "timestamp": 1735327895167, "version": 2, "chainId": 84, "sender": "3N1oZwpYE3p4x63jWiKpszmfLU3Lk3KtSWe", "senderPublicKey": "CqqNd9FdJdY64okp1oAAQ8z3kyrEcd6UKxtboqZgrSaP", "proofs": [ "48kTxHqbHJMy5QXVjegGKGhp9naEc5T9E8dCW58eGujxc5gq1JxzsVvhedusdbUoP4zNE8QjGvAqtUA3Q1HjSYCj" ], "script": "base64:BgIWCAISAwoBCBIAEgQKAgQIEgASAwoBCCEBB2dldEJvb2wBA2tleQQHJG1hdGNoMAkAmwgCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYgUHJG1hdGNoMAUBYgcBCWlzVGVzdEVudgAJAQdnZXRCb29sAQIHVEVTVEVOVgEXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAAhRzdGF0aWNfb3JhY2xlQWRkcmVzcwEYc3RhdGljS2V5X2JyZWVkZXJBZGRyZXNzAAIVc3RhdGljX2JyZWVkZXJBZGRyZXNzARZzdGF0aWNLZXlfaXRlbXNBZGRyZXNzAAITc3RhdGljX2l0ZW1zQWRkcmVzcwESc3RhdGljS2V5X2V4dHJhRmVlAAIPc3RhdGljX2V4dHJhRmVlARhzdGF0aWNLZXlfZXh0cmFGZWVSZW1vdmUAAhVzdGF0aWNfZXh0cmFGZWVSZW1vdmUBF3N0YXRpY0tleV9mZWVBZ2dyZWdhdG9yAAIUc3RhdGljX2ZlZUFnZ3JlZ2F0b3IACXdlYXJhYmxlcwkAzAgCAghBUlQtQ0FQRQkAzAgCAgdBUlQtSEFUCQDMCAICCkFSVC1YU0NBUkYJAMwIAgIMQVJULVhTV0VBVEVSBQNuaWwBD2tleUFydGVmYWN0RHVjawIGZHVja0lkCHdlYXJhYmxlCQCsAgIJAKwCAgUGZHVja0lkAgFfBQh3ZWFyYWJsZQEMa2V5VHlwZXNEdWNrAgZkdWNrSWQEdHlwZQkArAICCQCsAgIFBmR1Y2tJZAIBXwUEdHlwZQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCB2FkZHJlc3MDa2V5BAckbWF0Y2gwCQCdCAIFB2FkZHJlc3MFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAFAWECAAEMdHJ5R2V0U3RyaW5nAQNrZXkJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIFBHRoaXMFA2tleQEFYXNJbnQBBXZhbHVlBAckbWF0Y2gwBQV2YWx1ZQMJAAECBQckbWF0Y2gwAgNJbnQEA2ludAUHJG1hdGNoMAUDaW50CQACAQIZd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IEludAEIYXNTdHJpbmcBBXZhbHVlBAckbWF0Y2gwBQV2YWx1ZQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEBnN0cmluZwUHJG1hdGNoMAUGc3RyaW5nCQACAQIcd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IFN0cmluZwEJZ2V0T3JhY2xlAAkBB0FkZHJlc3MBCQDZBAEJAQx0cnlHZXRTdHJpbmcBCQEXc3RhdGljS2V5X29yYWNsZUFkZHJlc3MAARFnZXRCcmVlZGVyQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBGHN0YXRpY0tleV9icmVlZGVyQWRkcmVzcwABD2dldEl0ZW1zQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAkBFnN0YXRpY0tleV9pdGVtc0FkZHJlc3MAARBnZXRGZWVBZ2dyZWdhdG9yAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUACQEXc3RhdGljS2V5X2ZlZUFnZ3JlZ2F0b3IAARlnZXRUdXJ0bGVJbmN1YmF0b3JBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUAAh1zdGF0aWNfdHVydGxlSW5jdWJhdG9yQWRkcmVzcwEXZ2V0VHVydGxlQnJlZWRlckFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQACG3N0YXRpY190dXJ0bGVCcmVlZGVyQWRkcmVzcwETZ2V0SW5jdWJhdG9yQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAIXc3RhdGljX2luY3ViYXRvckFkZHJlc3MBGWdldENhbmluZUluY3ViYXRvckFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQACHXN0YXRpY19jYW5pbmVJbmN1YmF0b3JBZGRyZXNzARdnZXRDYW5pbmVCcmVlZGVyQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAIbc3RhdGljX2NhbmluZUJyZWVkZXJBZGRyZXNzARlnZXRGZWxpbmVJbmN1YmF0b3JBZGRyZXNzAAkBB0FkZHJlc3MBCQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUAAh1zdGF0aWNfZmVsaW5lSW5jdWJhdG9yQWRkcmVzcwEXZ2V0RmVsaW5lQnJlZWRlckFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQACG3N0YXRpY19mZWxpbmVCcmVlZGVyQWRkcmVzcwEXZ2V0TXV0YW50QnJlZWRlckFkZHJlc3MACQEHQWRkcmVzcwEJANkEAQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgkBCWdldE9yYWNsZQACHXN0YXRpY19tdXRhbnRJbmN1YmF0b3JBZGRyZXNzARZjaGVja0FkZGl0aW9uYWxQYXltZW50AgdwYXltZW50DmFtb3VudE92ZXJyaWRlAwkBCWlzRGVmaW5lZAEIBQdwYXltZW50B2Fzc2V0SWQJAAIBAhlXQ0FQOiBQbGVhc2UgYXR0YWNoIHdhdmVzBAlmZWVBbW91bnQDCQECIT0CBQ5hbW91bnRPdmVycmlkZQAABQ5hbW91bnRPdmVycmlkZQkBEUBleHRyTmF0aXZlKDEwNTApAgkBCWdldE9yYWNsZQAJARJzdGF0aWNLZXlfZXh0cmFGZWUAAwkBAiE9AggFB3BheW1lbnQGYW1vdW50BQlmZWVBbW91bnQJAAIBCQCsAgIJAKwCAgIcV0NBUDogUGxlYXNlIGF0dGFjaCBleGFjdGx5IAkApAMBBQlmZWVBbW91bnQCEyBhbW91bnQgb2Ygd2F2ZWxldHMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBEGdldEZlZUFnZ3JlZ2F0b3IABQlmZWVBbW91bnQFBHVuaXQFA25pbAESdHJ5R2V0Q29zbWV0aWNJdGVtAQRpdGVtBANrZXkJAKwCAgIQZGlyZWN0X2Nvc21ldGljXwUEaXRlbQQHJG1hdGNoMAkAmggCCQEPZ2V0SXRlbXNBZGRyZXNzAAUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQUEdW5pdAEKdHJ5R2V0VHlwZQEId2VhcmFibGUJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQ9nZXRJdGVtc0FkZHJlc3MACQCsAgICDnR5cGVfY29zbWV0aWNfBQh3ZWFyYWJsZQEId2Vhckl0ZW0DD2Fzc2V0SWRXZWFyQWJsZQZkdWNrSWQIYWxsVHlwZXMEDGFydGVmYWN0TmFtZQkBCGFzU3RyaW5nAQkA/AcECQEPZ2V0SXRlbXNBZGRyZXNzAAIUY2hlY2tBcnRlZmFjdERldGFpbHMJAMwIAgUPYXNzZXRJZFdlYXJBYmxlBQNuaWwFA25pbAMJAAACBQxhcnRlZmFjdE5hbWUFDGFydGVmYWN0TmFtZQMDCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCBQl3ZWFyYWJsZXMFDGFydGVmYWN0TmFtZQkBASEBCQEJaXNEZWZpbmVkAQkBEnRyeUdldENvc21ldGljSXRlbQEFDGFydGVmYWN0TmFtZQcJAAIBAhtXUklURDogVW5zdXBwb3J0ZWQgd2VhcmFibGUECmFydGVmYWN0SWQJAQx0cnlHZXRTdHJpbmcBCQEPa2V5QXJ0ZWZhY3REdWNrAgUGZHVja0lkBQxhcnRlZmFjdE5hbWUECWJvb3N0RHVjawMJAAACBQxhcnRlZmFjdE5hbWUCCkFSVC1YU0NBUkYJAPwHBAkBD2dldEl0ZW1zQWRkcmVzcwACD21hbmlwdWxhdGVCb29zdAkAzAgCAEUJAMwIAgUGZHVja0lkBQNuaWwFA25pbAUDbmlsAwkAAAIFCWJvb3N0RHVjawUJYm9vc3REdWNrAwkBAiE9AgUKYXJ0ZWZhY3RJZAIACQACAQkArAICAhpEdWNrIGlzIGFscmVhZHkgd2VhcmluZyBhIAUMYXJ0ZWZhY3ROYW1lBAR0eXBlCQEKdHJ5R2V0VHlwZQEFDGFydGVmYWN0TmFtZQMDCQEBIQEFCGFsbFR5cGVzCQECIT0CBQR0eXBlAgNQRVQHCQACAQIyWW91IGNhbid0IGF0dGFjaCB0aGlzIGl0ZW0gdG8geW91ciBORlQhIFBldHMgb25seSEECnR5cGVPbkR1Y2sDCQECIT0CBQR0eXBlAgAJAQIhPQIJAQx0cnlHZXRTdHJpbmcBCQEMa2V5VHlwZXNEdWNrAgUGZHVja0lkBQR0eXBlAgAJAAIBCQCsAgICJlR5cGUgdW5kZWZpbmVkLCBwbGVhc2UgY29udGFjdCBhZG1pbnMgBQxhcnRlZmFjdE5hbWUDBQp0eXBlT25EdWNrCQACAQIyWW91IGNhbiBvbmx5IGF0dGFjaCAxIGZyb20gZWFjaCB0eXBlIHRvIHlvdXIgZHVjayEECnR5cGVSZXN1bHQDCQECIT0CBQR0eXBlAgAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBDGtleVR5cGVzRHVjawIFBmR1Y2tJZAUEdHlwZQUPYXNzZXRJZFdlYXJBYmxlBQNuaWwFA25pbAkAzggCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9rZXlBcnRlZmFjdER1Y2sCBQZkdWNrSWQFDGFydGVmYWN0TmFtZQUPYXNzZXRJZFdlYXJBYmxlBQNuaWwFCnR5cGVSZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BFXRyeUdldEJvb2xlYW5FeHRlcm5hbAIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJsIAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWIFByRtYXRjaDAFAWIHARRnZXRJZkFsbFR5cGVzQWxsb3dlZAEHYXNzZXRJZAQGaXNzdWVyCAkBBXZhbHVlAQkA7AcBBQdhc3NldElkBmlzc3VlcgQLYmxhY2tsaXN0ZWQJARV0cnlHZXRCb29sZWFuRXh0ZXJuYWwCBQZpc3N1ZXIJAKwCAgkA2AQBBQdhc3NldElkAgxfYmxhY2tsaXN0ZWQDBQtibGFja2xpc3RlZAkAAgECEEdPIEZVQ0sgWU9VUlNFTEYEBG5hbWUICQEFdmFsdWUBCQDsBwEFB2Fzc2V0SWQEbmFtZQMDCQAAAgUGaXNzdWVyCQETZ2V0SW5jdWJhdG9yQWRkcmVzcwAGCQAAAgUGaXNzdWVyCQERZ2V0QnJlZWRlckFkZHJlc3MABgMDCQAAAgUGaXNzdWVyCQEZZ2V0VHVydGxlSW5jdWJhdG9yQWRkcmVzcwAGCQAAAgUGaXNzdWVyCQEXZ2V0VHVydGxlQnJlZWRlckFkZHJlc3MABwMDCQAAAgUGaXNzdWVyCQEZZ2V0Q2FuaW5lSW5jdWJhdG9yQWRkcmVzcwAGCQAAAgUGaXNzdWVyCQEXZ2V0Q2FuaW5lQnJlZWRlckFkZHJlc3MABwMDCQAAAgUGaXNzdWVyCQEZZ2V0RmVsaW5lSW5jdWJhdG9yQWRkcmVzcwAGCQAAAgUGaXNzdWVyCQEXZ2V0RmVsaW5lQnJlZWRlckFkZHJlc3MABwMJAAACBQZpc3N1ZXIJARdnZXRNdXRhbnRCcmVlZGVyQWRkcmVzcwAHCQACAQIbTUFHOiBBc3NldCBpcyBub3Qgc3VwcG9ydGVkBQFpAQ9jb25maWd1cmVPcmFjbGUBBm9yYWNsZQMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECCmFkbWluIG9ubHkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBF3N0YXRpY0tleV9vcmFjbGVBZGRyZXNzAAUGb3JhY2xlBQNuaWwBaQEOd2Vhckl0ZW1Ub0R1Y2sABAxmaXJzdFBheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQNc2Vjb25kUGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwABBAx2YWxpZFBheW1lbnQJARZjaGVja0FkZGl0aW9uYWxQYXltZW50AgkAkQMCCAUBaQhwYXltZW50cwACAAAEBmR1Y2tJZAkA2AQBCQEFdmFsdWUBCAUMZmlyc3RQYXltZW50B2Fzc2V0SWQEDXNlY29uZEFzc2V0SWQJANgEAQkBBXZhbHVlAQgFDXNlY29uZFBheW1lbnQHYXNzZXRJZAMDCQECIT0CCAUMZmlyc3RQYXltZW50BmFtb3VudAABBgkBAiE9AggFDXNlY29uZFBheW1lbnQGYW1vdW50AAEJAAIBAhpXUklURDogTkZUIGlzIG5vdCBhdHRhY2hlZAQIYWxsVHlwZXMJARRnZXRJZkFsbFR5cGVzQWxsb3dlZAEJAQV2YWx1ZQEIBQxmaXJzdFBheW1lbnQHYXNzZXRJZAkAzggCCQDOCAIJAQh3ZWFySXRlbQMFDXNlY29uZEFzc2V0SWQFBmR1Y2tJZAUIYWxsVHlwZXMJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEIBQxmaXJzdFBheW1lbnQHYXNzZXRJZAUDbmlsBQx2YWxpZFBheW1lbnQBaQEScmVtb3ZlSXRlbUZyb21EdWNrAghidXJuSXRlbQxhcnRlZmFjdE5hbWUECHdhdmVzRmVlAwUIYnVybkl0ZW0AAAkBEUBleHRyTmF0aXZlKDEwNTApAgkBCWdldE9yYWNsZQAJARhzdGF0aWNLZXlfZXh0cmFGZWVSZW1vdmUABAtkdWNrUGF5bWVudAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABA9yb2JvRHVja1BheW1lbnQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAQQMdmFsaWRQYXltZW50CQEWY2hlY2tBZGRpdGlvbmFsUGF5bWVudAIJAJEDAggFAWkIcGF5bWVudHMAAgUId2F2ZXNGZWUEBmR1Y2tJZAkA2AQBCQEFdmFsdWUBCAULZHVja1BheW1lbnQHYXNzZXRJZAQKcm9ib0R1Y2tJZAkA2AQBCQEFdmFsdWUBCAUPcm9ib0R1Y2tQYXltZW50B2Fzc2V0SWQDAwkBAiE9AggFC2R1Y2tQYXltZW50BmFtb3VudAABBgkBAiE9AggFD3JvYm9EdWNrUGF5bWVudAZhbW91bnQAAQkAAgECGldSSVREOiBORlQgaXMgbm90IGF0dGFjaGVkBAhjaGlsZHJlbgkBBWFzSW50AQkA/AcECQERZ2V0QnJlZWRlckFkZHJlc3MAAhZ2YWxpZGF0ZUFuZEdldENoaWxkcmVuCQDMCAIFBmR1Y2tJZAUDbmlsBQNuaWwDCQAAAgUIY2hpbGRyZW4FCGNoaWxkcmVuBBRhcnRlZmFjdE5hbWVSb2JvZHVjawkBCGFzU3RyaW5nAQkA/AcECQEPZ2V0SXRlbXNBZGRyZXNzAAIUY2hlY2tBcnRlZmFjdERldGFpbHMJAMwIAgUKcm9ib0R1Y2tJZAUDbmlsBQNuaWwDCQAAAgUUYXJ0ZWZhY3ROYW1lUm9ib2R1Y2sFFGFydGVmYWN0TmFtZVJvYm9kdWNrAwkBAiE9AgUUYXJ0ZWZhY3ROYW1lUm9ib2R1Y2sCDEFSVC1ST0JPRFVDSwkAAgECH09ubHkgcm9kb2R1Y2sgY2FuIHJlbW92ZSBpdGVtcyEDAwkBASEBCQEPY29udGFpbnNFbGVtZW50AgUJd2VhcmFibGVzBQxhcnRlZmFjdE5hbWUJAQEhAQkBCWlzRGVmaW5lZAEJARJ0cnlHZXRDb3NtZXRpY0l0ZW0BBQxhcnRlZmFjdE5hbWUHCQACAQIbV1JJVEQ6IFVuc3VwcG9ydGVkIHdlYXJhYmxlBAphcnRlZmFjdElkCQEMdHJ5R2V0U3RyaW5nAQkBD2tleUFydGVmYWN0RHVjawIFBmR1Y2tJZAUMYXJ0ZWZhY3ROYW1lBAlib29zdER1Y2sDCQAAAgUMYXJ0ZWZhY3ROYW1lAgpBUlQtWFNDQVJGCQD8BwQJAQ9nZXRJdGVtc0FkZHJlc3MAAg9tYW5pcHVsYXRlQm9vc3QJAMwIAgBFCQDMCAIFBmR1Y2tJZAUDbmlsBQNuaWwFA25pbAMJAAACBQlib29zdER1Y2sFCWJvb3N0RHVjawMJAAACBQphcnRlZmFjdElkAgAJAAIBCQCsAgICE0R1Y2sgbm90IHdlYXJpbmcgYSAFDGFydGVmYWN0TmFtZQQEdHlwZQkBCnRyeUdldFR5cGUBBQxhcnRlZmFjdE5hbWUECnR5cGVSZXN1bHQDCQECIT0CBQR0eXBlAgAJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBDGtleVR5cGVzRHVjawIFBmR1Y2tJZAUEdHlwZQUDbmlsBQNuaWwEBGJ1cm4DBQhidXJuSXRlbQkAzAgCCQEEQnVybgIJANkEAQUKYXJ0ZWZhY3RJZAABBQNuaWwJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEJANkEAQUKYXJ0ZWZhY3RJZAUDbmlsCQDOCAIJAM4IAgkAzggCCQDMCAIJAQtEZWxldGVFbnRyeQEJAQ9rZXlBcnRlZmFjdER1Y2sCBQZkdWNrSWQFDGFydGVmYWN0TmFtZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIAAQgFC2R1Y2tQYXltZW50B2Fzc2V0SWQJAMwIAgkBBEJ1cm4CCQDZBAEFCnJvYm9EdWNrSWQAAQUDbmlsBQRidXJuBQx2YWxpZFBheW1lbnQFCnR5cGVSZXN1bHQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEQd2VhclhJdGVtc1RvRHVjawAEDHZhbGlkUGF5bWVudAkBFmNoZWNrQWRkaXRpb25hbFBheW1lbnQCCQCRAwIIBQFpCHBheW1lbnRzAAEAAAMJAGYCAAMJAJADAQgFAWkIcGF5bWVudHMJAAIBAjFXV1hJVEQ6IFBsZWFzZSBhdHRhY2ggYXQgbGVhc3QgMSBpdGVtIGFuZCAxIGR1Y2shAwkAZgIJAJADAQgFAWkIcGF5bWVudHMABwkAAgECMVdXWElURDogWW91IGNhbiBvbmx5IGF0dGFjaCA1IGl0ZW1zIGFuZCBvbmUgZHVjayEKAQpoYW5kbGVJdGVtAgNhY2MHcGF5bWVudAQFaW5kZXgJAM8IAggFAWkIcGF5bWVudHMFB3BheW1lbnQDCQAAAgUFaW5kZXgAAAQGZHVja0lkCQDYBAEJAQV2YWx1ZQEIBQdwYXltZW50B2Fzc2V0SWQDCQECIT0CCAUHcGF5bWVudAZhbW91bnQAAQkAAgECG1dSSVREOiBEdWNrIGlzIG5vdCBhdHRhY2hlZAQIY2hpbGRyZW4JAQVhc0ludAEJAPwHBAkBEWdldEJyZWVkZXJBZGRyZXNzAAIWdmFsaWRhdGVBbmRHZXRDaGlsZHJlbgkAzAgCBQZkdWNrSWQFA25pbAUDbmlsAwkAAAIFCGNoaWxkcmVuBQhjaGlsZHJlbgkAzggCBQNhY2MJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyAAEIBQdwYXltZW50B2Fzc2V0SWQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzggCBQNhY2MJAQh3ZWFySXRlbQMJANgEAQkBBXZhbHVlAQgFB3BheW1lbnQHYXNzZXRJZAkA2AQBCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwABB2Fzc2V0SWQGCQDOCAIKAAIkbAgFAWkIcGF5bWVudHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCmhhbmRsZUl0ZW0CBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYFDHZhbGlkUGF5bWVudAFpARZjYWxjdWxhdGVXZWFyYmxlc0Jvb3N0AQZkdWNrSWQEBGJhY2sJAQx0cnlHZXRTdHJpbmcBCQEMa2V5VHlwZXNEdWNrAgUGZHVja0lkAgRCQUNLBARoZWFkCQEMdHJ5R2V0U3RyaW5nAQkBDGtleVR5cGVzRHVjawIFBmR1Y2tJZAIESEVBRAQJbGVmdF93aW5nCQEMdHJ5R2V0U3RyaW5nAQkBDGtleVR5cGVzRHVjawIFBmR1Y2tJZAIJTEVGVF9XSU5HBApyaWdodF93aW5nCQEMdHJ5R2V0U3RyaW5nAQkBDGtleVR5cGVzRHVjawIFBmR1Y2tJZAIKUklHSFRfV0lORwQDdG9wCQEMdHJ5R2V0U3RyaW5nAQkBDGtleVR5cGVzRHVjawIFBmR1Y2tJZAIDVE9QBANwZXQJAQx0cnlHZXRTdHJpbmcBCQEMa2V5VHlwZXNEdWNrAgUGZHVja0lkAgNQRVQEBHRhaWwJAQx0cnlHZXRTdHJpbmcBCQEMa2V5VHlwZXNEdWNrAgUGZHVja0lkAgRUQUlMBAlhY2Nlc3NvcnkJAQx0cnlHZXRTdHJpbmcBCQEMa2V5VHlwZXNEdWNrAgUGZHVja0lkAglBQ0NFU1NPUlkEDGFzc2V0SWRBcnJheQkAzAgCBQRiYWNrCQDMCAIFBGhlYWQJAMwIAgUJbGVmdF93aW5nCQDMCAIFCnJpZ2h0X3dpbmcJAMwIAgUDdG9wCQDMCAIFA3BldAkAzAgCBQR0YWlsCQDMCAIFCWFjY2Vzc29yeQUDbmlsCgEPY291bnRUb3RhbEJvb3N0AgNhY2MHYXNzZXRJZAMJAQIhPQIFB2Fzc2V0SWQCAAQMYXJ0ZWZhY3ROYW1lCQEIYXNTdHJpbmcBCQD8BwQJAQ9nZXRJdGVtc0FkZHJlc3MAAhRjaGVja0FydGVmYWN0RGV0YWlscwkAzAgCBQdhc3NldElkBQNuaWwFA25pbAMJAAACBQxhcnRlZmFjdE5hbWUFDGFydGVmYWN0TmFtZQQFYm9vc3QJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBCQCsAgICBmJvb3N0XwUMYXJ0ZWZhY3ROYW1lCQCsAgICE05vIGJvb3N0IGZvdW5kIGZvciAFDGFydGVmYWN0TmFtZQkAZAIFA2FjYwUFYm9vc3QJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4FA2FjYwQKdG90YWxCb29zdAoAAiRsBQxhc3NldElkQXJyYXkKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBD2NvdW50VG90YWxCb29zdAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgOAkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQZkdWNrSWQCCl9sYXN0Qm9vc3QFCnRvdGFsQm9vc3QFA25pbAUKdG90YWxCb29zdAECdHgBBnZlcmlmeQADCQEJaXNUZXN0RW52AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQQJZmlyc3RVc2VyASBRHOT9Zv8SadLxWhSfO7Li9Dt/wctoJ6I0Xmw411fdbQQKc2Vjb25kVXNlcgEgXHIOS67xIU9m5hlF+mqise2xNilZXxnMzLDhTUGIan0ECXRoaXJkVXNlcgEgoK+R5S15Q2FhMhKtjrn6GFlRnS1TSTbD0KP3qGAZO04ED2ZpcnN0VXNlclNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCWZpcnN0VXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUJZmlyc3RVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQlmaXJzdFVzZXIAAQAABBBzZWNvbmRVc2VyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUKc2Vjb25kVXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUKc2Vjb25kVXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUKc2Vjb25kVXNlcgABAAAED3RoaXJkVXNlclNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCXRoaXJkVXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUJdGhpcmRVc2VyAAEDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQl0aGlyZFVzZXIAAQAABA9zaWduYXR1cmVzQ291bnQJAGQCCQBkAgUPZmlyc3RVc2VyU2lnbmVkBRBzZWNvbmRVc2VyU2lnbmVkBQ90aGlyZFVzZXJTaWduZWQEByRtYXRjaDAFAnR4CQBnAgUPc2lnbmF0dXJlc0NvdW50AAL6xfYM", "height": 3433355, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: A58P45XBxWJVReZM3jtpcTPjNFDBCPrSiJXboKL9HHWK Next: none Diff:
Old | New | Differences | |
---|---|---|---|
383 | 383 | ||
384 | 384 | aE(aB(aB(aB(aB(aB(aB(aB(aB(aA, 0), 1), 2), 3), 4), 5), 6), 7), 8) | |
385 | 385 | } | |
386 | - | $Tuple2([IntegerEntry(" | |
386 | + | $Tuple2([IntegerEntry((n + "_lastBoost"), aQ)], aQ) | |
387 | 387 | } | |
388 | 388 | ||
389 | 389 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func a (b) = { | |
5 | 5 | let c = getBoolean(this, b) | |
6 | 6 | if ($isInstanceOf(c, "Boolean")) | |
7 | 7 | then { | |
8 | 8 | let d = c | |
9 | 9 | d | |
10 | 10 | } | |
11 | 11 | else false | |
12 | 12 | } | |
13 | 13 | ||
14 | 14 | ||
15 | 15 | func e () = a("TESTENV") | |
16 | 16 | ||
17 | 17 | ||
18 | 18 | func f () = "static_oracleAddress" | |
19 | 19 | ||
20 | 20 | ||
21 | 21 | func g () = "static_breederAddress" | |
22 | 22 | ||
23 | 23 | ||
24 | 24 | func h () = "static_itemsAddress" | |
25 | 25 | ||
26 | 26 | ||
27 | 27 | func i () = "static_extraFee" | |
28 | 28 | ||
29 | 29 | ||
30 | 30 | func j () = "static_extraFeeRemove" | |
31 | 31 | ||
32 | 32 | ||
33 | 33 | func k () = "static_feeAggregator" | |
34 | 34 | ||
35 | 35 | ||
36 | 36 | let l = ["ART-CAPE", "ART-HAT", "ART-XSCARF", "ART-XSWEATER"] | |
37 | 37 | ||
38 | 38 | func m (n,o) = ((n + "_") + o) | |
39 | 39 | ||
40 | 40 | ||
41 | 41 | func p (n,q) = ((n + "_") + q) | |
42 | 42 | ||
43 | 43 | ||
44 | 44 | func r (s,b) = { | |
45 | 45 | let c = getString(s, b) | |
46 | 46 | if ($isInstanceOf(c, "String")) | |
47 | 47 | then { | |
48 | 48 | let t = c | |
49 | 49 | t | |
50 | 50 | } | |
51 | 51 | else "" | |
52 | 52 | } | |
53 | 53 | ||
54 | 54 | ||
55 | 55 | func u (b) = r(this, b) | |
56 | 56 | ||
57 | 57 | ||
58 | 58 | func v (w) = { | |
59 | 59 | let c = w | |
60 | 60 | if ($isInstanceOf(c, "Int")) | |
61 | 61 | then { | |
62 | 62 | let x = c | |
63 | 63 | x | |
64 | 64 | } | |
65 | 65 | else throw("wrong type, expected: Int") | |
66 | 66 | } | |
67 | 67 | ||
68 | 68 | ||
69 | 69 | func y (w) = { | |
70 | 70 | let c = w | |
71 | 71 | if ($isInstanceOf(c, "String")) | |
72 | 72 | then { | |
73 | 73 | let z = c | |
74 | 74 | z | |
75 | 75 | } | |
76 | 76 | else throw("wrong type, expected: String") | |
77 | 77 | } | |
78 | 78 | ||
79 | 79 | ||
80 | 80 | func A () = Address(fromBase58String(u(f()))) | |
81 | 81 | ||
82 | 82 | ||
83 | 83 | func B () = Address(fromBase58String(r(A(), g()))) | |
84 | 84 | ||
85 | 85 | ||
86 | 86 | func C () = Address(fromBase58String(r(A(), h()))) | |
87 | 87 | ||
88 | 88 | ||
89 | 89 | func D () = Address(fromBase58String(r(A(), k()))) | |
90 | 90 | ||
91 | 91 | ||
92 | 92 | func E () = Address(fromBase58String(r(A(), "static_turtleIncubatorAddress"))) | |
93 | 93 | ||
94 | 94 | ||
95 | 95 | func F () = Address(fromBase58String(r(A(), "static_turtleBreederAddress"))) | |
96 | 96 | ||
97 | 97 | ||
98 | 98 | func G () = Address(fromBase58String(r(A(), "static_incubatorAddress"))) | |
99 | 99 | ||
100 | 100 | ||
101 | 101 | func H () = Address(fromBase58String(r(A(), "static_canineIncubatorAddress"))) | |
102 | 102 | ||
103 | 103 | ||
104 | 104 | func I () = Address(fromBase58String(r(A(), "static_canineBreederAddress"))) | |
105 | 105 | ||
106 | 106 | ||
107 | 107 | func J () = Address(fromBase58String(r(A(), "static_felineIncubatorAddress"))) | |
108 | 108 | ||
109 | 109 | ||
110 | 110 | func K () = Address(fromBase58String(r(A(), "static_felineBreederAddress"))) | |
111 | 111 | ||
112 | 112 | ||
113 | 113 | func L () = Address(fromBase58String(r(A(), "static_mutantIncubatorAddress"))) | |
114 | 114 | ||
115 | 115 | ||
116 | 116 | func M (N,O) = if (isDefined(N.assetId)) | |
117 | 117 | then throw("WCAP: Please attach waves") | |
118 | 118 | else { | |
119 | 119 | let P = if ((O != 0)) | |
120 | 120 | then O | |
121 | 121 | else getIntegerValue(A(), i()) | |
122 | 122 | if ((N.amount != P)) | |
123 | 123 | then throw((("WCAP: Please attach exactly " + toString(P)) + " amount of wavelets")) | |
124 | 124 | else [ScriptTransfer(D(), P, unit)] | |
125 | 125 | } | |
126 | 126 | ||
127 | 127 | ||
128 | 128 | func Q (R) = { | |
129 | 129 | let b = ("direct_cosmetic_" + R) | |
130 | 130 | let c = getInteger(C(), b) | |
131 | 131 | if ($isInstanceOf(c, "Int")) | |
132 | 132 | then { | |
133 | 133 | let t = c | |
134 | 134 | t | |
135 | 135 | } | |
136 | 136 | else unit | |
137 | 137 | } | |
138 | 138 | ||
139 | 139 | ||
140 | 140 | func S (o) = r(C(), ("type_cosmetic_" + o)) | |
141 | 141 | ||
142 | 142 | ||
143 | 143 | func T (U,n,V) = { | |
144 | 144 | let W = y(invoke(C(), "checkArtefactDetails", [U], nil)) | |
145 | 145 | if ((W == W)) | |
146 | 146 | then if (if (!(containsElement(l, W))) | |
147 | 147 | then !(isDefined(Q(W))) | |
148 | 148 | else false) | |
149 | 149 | then throw("WRITD: Unsupported wearable") | |
150 | 150 | else { | |
151 | 151 | let X = u(m(n, W)) | |
152 | 152 | let Y = if ((W == "ART-XSCARF")) | |
153 | 153 | then invoke(C(), "manipulateBoost", [69, n], nil) | |
154 | 154 | else nil | |
155 | 155 | if ((Y == Y)) | |
156 | 156 | then if ((X != "")) | |
157 | 157 | then throw(("Duck is already wearing a " + W)) | |
158 | 158 | else { | |
159 | 159 | let q = S(W) | |
160 | 160 | if (if (!(V)) | |
161 | 161 | then (q != "PET") | |
162 | 162 | else false) | |
163 | 163 | then throw("You can't attach this item to your NFT! Pets only!") | |
164 | 164 | else { | |
165 | 165 | let Z = if ((q != "")) | |
166 | 166 | then (u(p(n, q)) != "") | |
167 | 167 | else throw(("Type undefined, please contact admins " + W)) | |
168 | 168 | if (Z) | |
169 | 169 | then throw("You can only attach 1 from each type to your duck!") | |
170 | 170 | else { | |
171 | 171 | let aa = if ((q != "")) | |
172 | 172 | then [StringEntry(p(n, q), U)] | |
173 | 173 | else nil | |
174 | 174 | ([StringEntry(m(n, W), U)] ++ aa) | |
175 | 175 | } | |
176 | 176 | } | |
177 | 177 | } | |
178 | 178 | else throw("Strict value is not equal to itself.") | |
179 | 179 | } | |
180 | 180 | else throw("Strict value is not equal to itself.") | |
181 | 181 | } | |
182 | 182 | ||
183 | 183 | ||
184 | 184 | func ab (s,b) = { | |
185 | 185 | let c = getBoolean(s, b) | |
186 | 186 | if ($isInstanceOf(c, "Boolean")) | |
187 | 187 | then { | |
188 | 188 | let d = c | |
189 | 189 | d | |
190 | 190 | } | |
191 | 191 | else false | |
192 | 192 | } | |
193 | 193 | ||
194 | 194 | ||
195 | 195 | func ac (ad) = { | |
196 | 196 | let ae = value(assetInfo(ad)).issuer | |
197 | 197 | let af = ab(ae, (toBase58String(ad) + "_blacklisted")) | |
198 | 198 | if (af) | |
199 | 199 | then throw("GO FUCK YOURSELF") | |
200 | 200 | else { | |
201 | 201 | let ag = value(assetInfo(ad)).name | |
202 | 202 | if (if ((ae == G())) | |
203 | 203 | then true | |
204 | 204 | else (ae == B())) | |
205 | 205 | then true | |
206 | 206 | else if (if ((ae == E())) | |
207 | 207 | then true | |
208 | 208 | else (ae == F())) | |
209 | 209 | then false | |
210 | 210 | else if (if ((ae == H())) | |
211 | 211 | then true | |
212 | 212 | else (ae == I())) | |
213 | 213 | then false | |
214 | 214 | else if (if ((ae == J())) | |
215 | 215 | then true | |
216 | 216 | else (ae == K())) | |
217 | 217 | then false | |
218 | 218 | else if ((ae == L())) | |
219 | 219 | then false | |
220 | 220 | else throw("MAG: Asset is not supported") | |
221 | 221 | } | |
222 | 222 | } | |
223 | 223 | ||
224 | 224 | ||
225 | 225 | @Callable(ah) | |
226 | 226 | func configureOracle (ai) = if ((ah.caller != this)) | |
227 | 227 | then throw("admin only") | |
228 | 228 | else [StringEntry(f(), ai)] | |
229 | 229 | ||
230 | 230 | ||
231 | 231 | ||
232 | 232 | @Callable(ah) | |
233 | 233 | func wearItemToDuck () = { | |
234 | 234 | let aj = value(ah.payments[0]) | |
235 | 235 | let ak = value(ah.payments[1]) | |
236 | 236 | let al = M(ah.payments[2], 0) | |
237 | 237 | let n = toBase58String(value(aj.assetId)) | |
238 | 238 | let am = toBase58String(value(ak.assetId)) | |
239 | 239 | if (if ((aj.amount != 1)) | |
240 | 240 | then true | |
241 | 241 | else (ak.amount != 1)) | |
242 | 242 | then throw("WRITD: NFT is not attached") | |
243 | 243 | else { | |
244 | 244 | let V = ac(value(aj.assetId)) | |
245 | 245 | ((T(am, n, V) ++ [ScriptTransfer(ah.caller, 1, aj.assetId)]) ++ al) | |
246 | 246 | } | |
247 | 247 | } | |
248 | 248 | ||
249 | 249 | ||
250 | 250 | ||
251 | 251 | @Callable(ah) | |
252 | 252 | func removeItemFromDuck (an,W) = { | |
253 | 253 | let ao = if (an) | |
254 | 254 | then 0 | |
255 | 255 | else getIntegerValue(A(), j()) | |
256 | 256 | let ap = value(ah.payments[0]) | |
257 | 257 | let aq = value(ah.payments[1]) | |
258 | 258 | let al = M(ah.payments[2], ao) | |
259 | 259 | let n = toBase58String(value(ap.assetId)) | |
260 | 260 | let ar = toBase58String(value(aq.assetId)) | |
261 | 261 | if (if ((ap.amount != 1)) | |
262 | 262 | then true | |
263 | 263 | else (aq.amount != 1)) | |
264 | 264 | then throw("WRITD: NFT is not attached") | |
265 | 265 | else { | |
266 | 266 | let as = v(invoke(B(), "validateAndGetChildren", [n], nil)) | |
267 | 267 | if ((as == as)) | |
268 | 268 | then { | |
269 | 269 | let at = y(invoke(C(), "checkArtefactDetails", [ar], nil)) | |
270 | 270 | if ((at == at)) | |
271 | 271 | then if ((at != "ART-ROBODUCK")) | |
272 | 272 | then throw("Only rododuck can remove items!") | |
273 | 273 | else if (if (!(containsElement(l, W))) | |
274 | 274 | then !(isDefined(Q(W))) | |
275 | 275 | else false) | |
276 | 276 | then throw("WRITD: Unsupported wearable") | |
277 | 277 | else { | |
278 | 278 | let X = u(m(n, W)) | |
279 | 279 | let Y = if ((W == "ART-XSCARF")) | |
280 | 280 | then invoke(C(), "manipulateBoost", [69, n], nil) | |
281 | 281 | else nil | |
282 | 282 | if ((Y == Y)) | |
283 | 283 | then if ((X == "")) | |
284 | 284 | then throw(("Duck not wearing a " + W)) | |
285 | 285 | else { | |
286 | 286 | let q = S(W) | |
287 | 287 | let aa = if ((q != "")) | |
288 | 288 | then [DeleteEntry(p(n, q))] | |
289 | 289 | else nil | |
290 | 290 | let au = if (an) | |
291 | 291 | then [Burn(fromBase58String(X), 1)] | |
292 | 292 | else [ScriptTransfer(ah.caller, 1, fromBase58String(X))] | |
293 | 293 | ((([DeleteEntry(m(n, W)), ScriptTransfer(ah.caller, 1, ap.assetId), Burn(fromBase58String(ar), 1)] ++ au) ++ al) ++ aa) | |
294 | 294 | } | |
295 | 295 | else throw("Strict value is not equal to itself.") | |
296 | 296 | } | |
297 | 297 | else throw("Strict value is not equal to itself.") | |
298 | 298 | } | |
299 | 299 | else throw("Strict value is not equal to itself.") | |
300 | 300 | } | |
301 | 301 | } | |
302 | 302 | ||
303 | 303 | ||
304 | 304 | ||
305 | 305 | @Callable(ah) | |
306 | 306 | func wearXItemsToDuck () = { | |
307 | 307 | let al = M(ah.payments[1], 0) | |
308 | 308 | if ((3 > size(ah.payments))) | |
309 | 309 | then throw("WWXITD: Please attach at least 1 item and 1 duck!") | |
310 | 310 | else if ((size(ah.payments) > 7)) | |
311 | 311 | then throw("WWXITD: You can only attach 5 items and one duck!") | |
312 | 312 | else { | |
313 | 313 | func av (aw,N) = { | |
314 | 314 | let ax = indexOf(ah.payments, N) | |
315 | 315 | if ((ax == 0)) | |
316 | 316 | then { | |
317 | 317 | let n = toBase58String(value(N.assetId)) | |
318 | 318 | if ((N.amount != 1)) | |
319 | 319 | then throw("WRITD: Duck is not attached") | |
320 | 320 | else { | |
321 | 321 | let as = v(invoke(B(), "validateAndGetChildren", [n], nil)) | |
322 | 322 | if ((as == as)) | |
323 | 323 | then (aw ++ [ScriptTransfer(ah.caller, 1, N.assetId)]) | |
324 | 324 | else throw("Strict value is not equal to itself.") | |
325 | 325 | } | |
326 | 326 | } | |
327 | 327 | else (aw ++ T(toBase58String(value(N.assetId)), toBase58String(value(ah.payments[1].assetId)), true)) | |
328 | 328 | } | |
329 | 329 | ||
330 | 330 | ({ | |
331 | 331 | let ay = ah.payments | |
332 | 332 | let az = size(ay) | |
333 | 333 | let aA = nil | |
334 | 334 | func aB (aC,aD) = if ((aD >= az)) | |
335 | 335 | then aC | |
336 | 336 | else av(aC, ay[aD]) | |
337 | 337 | ||
338 | 338 | func aE (aC,aD) = if ((aD >= az)) | |
339 | 339 | then aC | |
340 | 340 | else throw("List size exceeds 6") | |
341 | 341 | ||
342 | 342 | aE(aB(aB(aB(aB(aB(aB(aA, 0), 1), 2), 3), 4), 5), 6) | |
343 | 343 | } ++ al) | |
344 | 344 | } | |
345 | 345 | } | |
346 | 346 | ||
347 | 347 | ||
348 | 348 | ||
349 | 349 | @Callable(ah) | |
350 | 350 | func calculateWearblesBoost (n) = { | |
351 | 351 | let aF = u(p(n, "BACK")) | |
352 | 352 | let aG = u(p(n, "HEAD")) | |
353 | 353 | let aH = u(p(n, "LEFT_WING")) | |
354 | 354 | let aI = u(p(n, "RIGHT_WING")) | |
355 | 355 | let aJ = u(p(n, "TOP")) | |
356 | 356 | let aK = u(p(n, "PET")) | |
357 | 357 | let aL = u(p(n, "TAIL")) | |
358 | 358 | let aM = u(p(n, "ACCESSORY")) | |
359 | 359 | let aN = [aF, aG, aH, aI, aJ, aK, aL, aM] | |
360 | 360 | func aO (aw,ad) = if ((ad != "")) | |
361 | 361 | then { | |
362 | 362 | let W = y(invoke(C(), "checkArtefactDetails", [ad], nil)) | |
363 | 363 | if ((W == W)) | |
364 | 364 | then { | |
365 | 365 | let aP = valueOrErrorMessage(getInteger(("boost_" + W)), ("No boost found for " + W)) | |
366 | 366 | (aw + aP) | |
367 | 367 | } | |
368 | 368 | else throw("Strict value is not equal to itself.") | |
369 | 369 | } | |
370 | 370 | else aw | |
371 | 371 | ||
372 | 372 | let aQ = { | |
373 | 373 | let ay = aN | |
374 | 374 | let az = size(ay) | |
375 | 375 | let aA = 0 | |
376 | 376 | func aB (aC,aD) = if ((aD >= az)) | |
377 | 377 | then aC | |
378 | 378 | else aO(aC, ay[aD]) | |
379 | 379 | ||
380 | 380 | func aE (aC,aD) = if ((aD >= az)) | |
381 | 381 | then aC | |
382 | 382 | else throw("List size exceeds 8") | |
383 | 383 | ||
384 | 384 | aE(aB(aB(aB(aB(aB(aB(aB(aB(aA, 0), 1), 2), 3), 4), 5), 6), 7), 8) | |
385 | 385 | } | |
386 | - | $Tuple2([IntegerEntry(" | |
386 | + | $Tuple2([IntegerEntry((n + "_lastBoost"), aQ)], aQ) | |
387 | 387 | } | |
388 | 388 | ||
389 | 389 | ||
390 | 390 | @Verifier(aR) | |
391 | 391 | func aS () = if (e()) | |
392 | 392 | then sigVerify(aR.bodyBytes, aR.proofs[0], aR.senderPublicKey) | |
393 | 393 | else { | |
394 | 394 | let aT = base58'6TdaXEfhnjYquvPf3yV7MFxt2CbgFmaqsvGwkKfXtKi4' | |
395 | 395 | let aU = base58'7DsP2WaMLocbHuUxux7pbXRjTrrZ1TFQPsi5QumS3gr8' | |
396 | 396 | let aV = base58'BpFWP3p3JgYrrP45xfrKzeMcWMEXoinj4FVPPkUiA8D3' | |
397 | 397 | let aW = if (sigVerify(aR.bodyBytes, aR.proofs[0], aT)) | |
398 | 398 | then 1 | |
399 | 399 | else if (sigVerify(aR.bodyBytes, aR.proofs[1], aT)) | |
400 | 400 | then 1 | |
401 | 401 | else if (sigVerify(aR.bodyBytes, aR.proofs[2], aT)) | |
402 | 402 | then 1 | |
403 | 403 | else 0 | |
404 | 404 | let aX = if (sigVerify(aR.bodyBytes, aR.proofs[0], aU)) | |
405 | 405 | then 1 | |
406 | 406 | else if (sigVerify(aR.bodyBytes, aR.proofs[1], aU)) | |
407 | 407 | then 1 | |
408 | 408 | else if (sigVerify(aR.bodyBytes, aR.proofs[2], aU)) | |
409 | 409 | then 1 | |
410 | 410 | else 0 | |
411 | 411 | let aY = if (sigVerify(aR.bodyBytes, aR.proofs[0], aV)) | |
412 | 412 | then 1 | |
413 | 413 | else if (sigVerify(aR.bodyBytes, aR.proofs[1], aV)) | |
414 | 414 | then 1 | |
415 | 415 | else if (sigVerify(aR.bodyBytes, aR.proofs[2], aV)) | |
416 | 416 | then 1 | |
417 | 417 | else 0 | |
418 | 418 | let aZ = ((aW + aX) + aY) | |
419 | 419 | let c = aR | |
420 | 420 | (aZ >= 2) | |
421 | 421 | } | |
422 | 422 |
github/deemru/w8io/169f3d6 36.47 ms ◑