tx · AQW4awMwXU4cnSBKhk5bxkr77ucERSQZrXfCSZBf8Usb

3N8y4wxX3JC4TdrCJBXX16SjWf6X256hrep:  -0.01000000 Waves

2023.01.17 14:39 [2408881] smart account 3N8y4wxX3JC4TdrCJBXX16SjWf6X256hrep > SELF 0.00000000 Waves

{ "type": 13, "id": "AQW4awMwXU4cnSBKhk5bxkr77ucERSQZrXfCSZBf8Usb", "fee": 1000000, "feeAssetId": null, "timestamp": 1673955615052, "version": 2, "chainId": 84, "sender": "3N8y4wxX3JC4TdrCJBXX16SjWf6X256hrep", "senderPublicKey": "7v5L7QkXxfkirALdyqmox38QCsa9jtfAtgUfHTh34eWq", "proofs": [ "3FBckdwe9ohJ3L9xwyQQVVYnoC7r2r9sS6qviR2U7Z4sskMjq4Ks1fo32qbRLaygWzmxNrFiPFGsaRqeBLBc7223" ], "script": "base64:BgIOCAISBAoCERESBAoCEREfAAVNVUxUNgDAhD0ABU1VTFQ4AIDC1y8ABk1VTFQxMACAyK+gJQAFY2hhaW4JALAJAQkAyQECCQDKAQIIBQR0aGlzBWJ5dGVzAAEAAQALdXNkbkFzc2V0SWQEByRtYXRjaDAFBWNoYWluAwkAAAICAVcFByRtYXRjaDABILYmKcME9c5TkaQOS3UkL2SMUbH6369UKb1I0h0qsqrRAwkAAAICAVQFByRtYXRjaDABIPd26vf3g8pl224T7gI7z1gplanB0Y3yS9ps2B1igMjeCQACAQINVW5rbm93biBjaGFpbgAPc3Rha2luZ0NvbnRyYWN0CQERQGV4dHJOYXRpdmUoMTA2MikBBAckbWF0Y2gwBQVjaGFpbgMJAAACAgFXBQckbWF0Y2gwAiMzUExuY1h0UzFVODNENmNRYkZEM0g4ckJIUExnenhTRktaMQMJAAACAgFUBQckbWF0Y2gwAiMzTkRDeUJHNXE4NUp1YVJpaWdVZUV0YWlueWpDUVQzWHBabQkAAgECDVVua25vd24gY2hhaW4AD0RFRkFVTFRMT0NBVElPTgIPQWZyaWNhX0ZfQWZyaWNhAAZOVU1SRVMABgATRkFDVE9SWU1BWFdBUkVIT1VTRQCAyK+gJQAQUkVTT1VSQ0VQUklDRU1JTgDV1gkACk1JTlBBWU1FTlQAkE4ADlNFTExNVUxUSVBMSUVSAMgBAA1CVVlNVUxUSVBMSUVSAKwCAAhyZXNUeXBlcwkAzAgCAgNPaWwJAMwIAgIDT3JlCQDMCAICBFdvb2QJAMwIAgIEU2FuZAkAzAgCAgRDbGF5CQDMCAICB09yZ2FuaWMFA25pbAAIbWF0VHlwZXMJAMwIAgIERnVlbAkAzAgCAgVNZXRhbAkAzAgCAgVQbGFuawkAzAgCAgVHbGFzcwkAzAgCAgdQbGFzdGljCQDMCAICB1Byb3RlaW4FA25pbAAKY29udGluZW50cwkAzAgCAghBbWVyaWNhcwkAzAgCAgZFdXJvcGUJAMwIAgIEQXNpYQkAzAgCAgZBZnJpY2EJAMwIAgIHT2NlYW5pYQUDbmlsAR5rZXlGYWN0b3J5V2FyZWhvdXNlQnlJZEFuZFR5cGUCCWZhY3RvcnlJZAdyZXNUeXBlCQCsAgIJAKwCAgkArAICAhtmYWN0b3J5V2hCeUNvbnRpbmVudEFuZFJlc18FCWZhY3RvcnlJZAIBXwkApAMBBQdyZXNUeXBlARRrZXlTdGFrZWREdWNrQnlPd25lcgEJb3duZXJBZGRyCQCsAgICEnN0YWtlZER1Y2tCeU93bmVyXwUJb3duZXJBZGRyARFrZXlCYWNrcGFja0J5RHVjawELZHVja0Fzc2V0SWQJAKwCAgIJYmFja1BhY2tfBQtkdWNrQXNzZXRJZAEPa2V5RHVja0xvY2F0aW9uAQtkdWNrQXNzZXRJZAkArAICAg1kdWNrTG9jYXRpb25fBQtkdWNrQXNzZXRJZAAPbG9jSWR4Q29udGluZW50AAAACmxvY0lkeFR5cGUAAQAIbG9jSWR4SWQAAgAKYnBJZHhMZXZlbAAAAAhicElkeFJlcwABAAhicElkeE1hdAACAAlicElkeFByb2QAAwEIYXNTdHJpbmcBAXYEByRtYXRjaDAFAXYDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwBQFzCQACAQIYZmFpbCB0byBjYXN0IGludG8gU3RyaW5nAQxzZWxsSW50ZXJuYWwEBWxvY0lkB3Jlc1R5cGUGYW1vdW50CG1pblByaWNlBAV3aEtleQkBHmtleUZhY3RvcnlXYXJlaG91c2VCeUlkQW5kVHlwZQIFBWxvY0lkBQdyZXNUeXBlBAJ3MAkBC3ZhbHVlT3JFbHNlAgkAnwgBBQV3aEtleQAABAJyMAMJAGYCBQJ3MAUTRkFDVE9SWU1BWFdBUkVIT1VTRQAAAwkAZgIJAGQCBQJ3MAUGYW1vdW50BRNGQUNUT1JZTUFYV0FSRUhPVVNFCQBlAgUTRkFDVE9SWU1BWFdBUkVIT1VTRQUCdzAFBmFtb3VudAQMdXNkblJlY2VpdmVkCQBkAgkAawMFAnIwCQBlAgkAaAIFDlNFTExNVUxUSVBMSUVSBRBSRVNPVVJDRVBSSUNFTUlOCQBrAwkAZAIJAGgCAGQFAncwCQBoAgAyBQJyMAUQUkVTT1VSQ0VQUklDRU1JTgUTRkFDVE9SWU1BWFdBUkVIT1VTRQUGTVVMVDEwCQBrAwkAZQIFBmFtb3VudAUCcjAFEFJFU09VUkNFUFJJQ0VNSU4FBU1VTFQ4BAVtaW45OQkAZQIFCG1pblByaWNlCQBpAgUIbWluUHJpY2UAZAMJAGYCCQBoAgUFbWluOTkFBmFtb3VudAkAaAIFDHVzZG5SZWNlaXZlZAUFTVVMVDgJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgICD0FjdHVhbCBwcmljZSA9IAkApAMBBQx1c2RuUmVjZWl2ZWQCAyAvIAkApAMBBQZhbW91bnQCDiA8IG1pblByaWNlID0gCQCkAwEFCG1pblByaWNlAgMsICgFBWxvY0lkAgIsIAkAkQMCBQhyZXNUeXBlcwUHcmVzVHlwZQIBKQkAlAoCCQEMSW50ZWdlckVudHJ5AgUFd2hLZXkJAGQCBQJ3MAUGYW1vdW50BQx1c2RuUmVjZWl2ZWQBC2J1eUludGVybmFsBAVsb2NJZAdtYXRUeXBlBmFtb3VudAhtYXhQcmljZQQFd2hLZXkJAR5rZXlGYWN0b3J5V2FyZWhvdXNlQnlJZEFuZFR5cGUCBQVsb2NJZAUHbWF0VHlwZQQCdzAJAQt2YWx1ZU9yRWxzZQIJAJ8IAQUFd2hLZXkAAAQCbTEDCQBmAgUCdzAFE0ZBQ1RPUllNQVhXQVJFSE9VU0UJAJcDAQkAzAgCBQZhbW91bnQJAMwIAgkAZQIFAncwBRNGQUNUT1JZTUFYV0FSRUhPVVNFBQNuaWwAAAQCbTAJAJcDAQkAzAgCBQJ3MAkAzAgCCQBlAgUGYW1vdW50BQJtMQUDbmlsBAFtCQBkAgUCbTAFAm0xBAl1c2RuU3BlbnQJAGQCCQBrAwUCbTAJAGUCCQBoAgUNQlVZTVVMVElQTElFUgUQUkVTT1VSQ0VQUklDRU1JTgkAawMJAGUCCQBoAgBkBQJ3MAkAaAIAMgUCbTAFEFJFU09VUkNFUFJJQ0VNSU4FE0ZBQ1RPUllNQVhXQVJFSE9VU0UFBk1VTFQxMAkAawMFAm0xCQBoAgACBRBSRVNPVVJDRVBSSUNFTUlOBQVNVUxUOAQGbWF4MTAxCQBkAgUIbWF4UHJpY2UJAGkCBQhtYXhQcmljZQBkAwkAZgIJAGgCBQl1c2RuU3BlbnQFBU1VTFQ4CQBoAgUGbWF4MTAxBQFtCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAg9BY3R1YWwgcHJpY2UgPSAJAKQDAQUJdXNkblNwZW50AgMgLyAJAKQDAQUBbQIOID4gbWF4UHJpY2UgPSAJAKQDAQUIbWF4UHJpY2UCAywgKAUFbG9jSWQCAiwgCQCRAwIFCG1hdFR5cGVzBQdtYXRUeXBlAgEpCQCVCgMJAQxJbnRlZ2VyRW50cnkCBQV3aEtleQkAZQIFAncwBQFtBQl1c2RuU3BlbnQFAW0BC2dldEJhY2twYWNrAQVicEtleQQBcAkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIFD3N0YWtpbmdDb250cmFjdAUFYnBLZXkCGjA6MF8wXzBfMF8wXzA6MF8wXzBfMF8wXzA6AgE6CQDMCAIJAKQDAQkBC3ZhbHVlT3JFbHNlAgkAtgkBCQCRAwIFAXAFCmJwSWR4TGV2ZWwAAAkAzAgCAwkAAAIJAJADAQkAtQkCCQCRAwIFAXAFCGJwSWR4UmVzAgFfBQZOVU1SRVMJAJEDAgUBcAUIYnBJZHhSZXMCCzBfMF8wXzBfMF8wCQDMCAIDCQAAAgkAkAMBCQC1CQIJAJEDAgUBcAUIYnBJZHhNYXQCAV8FBk5VTVJFUwkAkQMCBQFwBQhicElkeE1hdAILMF8wXzBfMF8wXzAJAMwIAgkAkQMCBQFwBQlicElkeFByb2QFA25pbAIBaQENc2VsbFJlc291cmNlcwIHYW1vdW50cwltaW5QcmljZXMEC2R1Y2tBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEUa2V5U3Rha2VkRHVja0J5T3duZXIBCQClCAEIBQFpBmNhbGxlcgIcWW91IGRvbid0IGhhdmUgYSBkdWNrIHN0YWtlZAMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAAkAAgECKnNlbGxSZXNvdXJjZXMgZG9lc24ndCByZXF1aXJlIGFueSBwYXltZW50cwQLY3VyTG9jYXRpb24JALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJAQ9rZXlEdWNrTG9jYXRpb24BBQtkdWNrQXNzZXRJZAUPREVGQVVMVExPQ0FUSU9OAgFfAwkBAiE9AgkAkQMCBQtjdXJMb2NhdGlvbgUKbG9jSWR4VHlwZQIBRgkAAgEJAKwCAgItRHVjayBsb2NhdGlvbiB0eXBlIHNob3VsZCBiZSBGYWN0b3J5LCBidXQgaXMgCQCRAwIFC2N1ckxvY2F0aW9uBQpsb2NJZHhUeXBlBAVsb2NJZAkAkQMCBQtjdXJMb2NhdGlvbgUIbG9jSWR4SWQEC2N1cnJlbnRQYWNrCQELZ2V0QmFja3BhY2sBCQERa2V5QmFja3BhY2tCeUR1Y2sBBQtkdWNrQXNzZXRJZAQHcmVzTGlzdAkAtQkCCQCRAwIFC2N1cnJlbnRQYWNrBQhicElkeFJlcwIBXwoBBWFkZGVyAgNhY2MBagMJAGYCCQCRAwIFB2Ftb3VudHMFAWoJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQdyZXNMaXN0BQFqCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgICCVlvdSBoYXZlIAkAkQMCBQdyZXNMaXN0BQFqAgQgb2YgCQCRAwIFCHJlc1R5cGVzBQFqAhQsIGJ1dCB0cmllZCB0byBzZWxsIAkApAMBCQCRAwIFB2Ftb3VudHMFAWoDCQBmAgAACQCRAwIFB2Ftb3VudHMFAWoJAAIBCQCsAgIJAKwCAgkArAICAiVZb3UgdHJpZWQgdG8gc2VsbCBuZWdhdGl2ZSBhbW91bnQgb2YgCQCRAwIFCHJlc1R5cGVzBQFqAgI6IAkApAMBCQCRAwIFB2Ftb3VudHMFAWoDCQBmAgkAkQMCBQdhbW91bnRzBQFqAAAEAWIJAQxzZWxsSW50ZXJuYWwEBQVsb2NJZAUBagkAkQMCBQdhbW91bnRzBQFqCQCRAwIFCW1pblByaWNlcwUBagkAlQoDCQDNCAIIBQNhY2MCXzEIBQFiAl8xCQDNCAIIBQNhY2MCXzIJAKQDAQkAZQIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQdyZXNMaXN0BQFqCQCRAwIFB2Ftb3VudHMFAWoJAGQCCAUDYWNjAl8zCAUBYgJfMgkAlQoDCAUDYWNjAl8xCQDNCAIIBQNhY2MCXzIJAJEDAgUHcmVzTGlzdAUBaggFA2FjYwJfMwQGbWVyZ2VkCgACJGwJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUFA25pbAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJUKAwUDbmlsBQNuaWwAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEFYWRkZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYEB25ld1BhY2sJALkJAgkAzAgCCQCRAwIFC2N1cnJlbnRQYWNrBQpicElkeExldmVsCQDMCAIJALkJAggFBm1lcmdlZAJfMgIBXwkAzAgCCQCRAwIFC2N1cnJlbnRQYWNrBQhicElkeE1hdAkAzAgCCQCRAwIFC2N1cnJlbnRQYWNrBQlicElkeFByb2QFA25pbAIBOgQGcmVzdWx0CQEIYXNTdHJpbmcBCQD8BwQFD3N0YWtpbmdDb250cmFjdAIOdXBkYXRlQmFja3BhY2sJAMwIAgULZHVja0Fzc2V0SWQJAMwIAgUHbmV3UGFjawUDbmlsBQNuaWwJAJQKAgkAzQgCCAUGbWVyZ2VkAl8xCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIIBQZtZXJnZWQCXzMFC3VzZG5Bc3NldElkBQZyZXN1bHQBaQEMYnV5TWF0ZXJpYWxzAgdhbW91bnRzCW1heFByaWNlcwQLZHVja0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QJARRrZXlTdGFrZWREdWNrQnlPd25lcgEJAKUIAQgFAWkGY2FsbGVyAhxZb3UgZG9uJ3QgaGF2ZSBhIGR1Y2sgc3Rha2VkAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIiZXhhY3RseSAxIHBheW1lbnQgbXVzdCBiZSBhdHRhY2hlZAQDcG10CQCRAwIIBQFpCHBheW1lbnRzAAAEA2FtdAgFA3BtdAZhbW91bnQECnBtdEFzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAggFA3BtdAdhc3NldElkAh5XQVZFUyBjYW4ndCBiZSB1c2VkIGFzIHBheW1lbnQDCQECIT0CBQpwbXRBc3NldElkBQt1c2RuQXNzZXRJZAkAAgECE1VTRE4gcGF5bWVudHMgb25seSEEC2N1ckxvY2F0aW9uCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQEPa2V5RHVja0xvY2F0aW9uAQULZHVja0Fzc2V0SWQFD0RFRkFVTFRMT0NBVElPTgIBXwMJAQIhPQIJAJEDAgULY3VyTG9jYXRpb24FCmxvY0lkeFR5cGUCAUYJAAIBCQCsAgICLUR1Y2sgbG9jYXRpb24gdHlwZSBzaG91bGQgYmUgRmFjdG9yeSwgYnV0IGlzIAkAkQMCBQtjdXJMb2NhdGlvbgUKbG9jSWR4VHlwZQQFbG9jSWQJAJEDAgULY3VyTG9jYXRpb24FCGxvY0lkeElkBAtjdXJyZW50UGFjawkBC2dldEJhY2twYWNrAQkBEWtleUJhY2twYWNrQnlEdWNrAQULZHVja0Fzc2V0SWQEB21hdExpc3QJALUJAgkAkQMCBQtjdXJyZW50UGFjawUIYnBJZHhNYXQCAV8KAQhtVXBkYXRlcgIDYWNjAWoDCQBmAgAACQCRAwIFB2Ftb3VudHMFAWoJAAIBCQCsAgIJAKwCAgkArAICAiRZb3UgdHJpZWQgdG8gYnV5IG5lZ2F0aXZlIGFtb3VudCBvZiAJAJEDAgUIbWF0VHlwZXMFAWoCAjogCQCkAwEJAJEDAgUHYW1vdW50cwUBagMJAGYCCQCRAwIFB2Ftb3VudHMFAWoAAAQBYgkBC2J1eUludGVybmFsBAUFbG9jSWQFAWoJAJEDAgUHYW1vdW50cwUBagkAkQMCBQltYXhQcmljZXMFAWoJAJUKAwkAzQgCCAUDYWNjAl8xCAUBYgJfMQkAzQgCCAUDYWNjAl8yCQCkAwEJAGQCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUHbWF0TGlzdAUBaggFAWICXzMJAGQCCAUDYWNjAl8zCAUBYgJfMgkAlQoDCAUDYWNjAl8xCQDNCAIIBQNhY2MCXzIJAJEDAgUHbWF0TGlzdAUBaggFA2FjYwJfMwQGbWVyZ2VkCgACJGwJAMwIAgAACQDMCAIAAQkAzAgCAAIJAMwIAgADCQDMCAIABAkAzAgCAAUFA25pbAoAAiRzCQCQAwEFAiRsCgAFJGFjYzAJAJUKAwUDbmlsBQNuaWwAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEIbVVwZGF0ZXICBQIkYQkAkQMCBQIkbAUCJGkKAQUkZjBfMgICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkAAgECE0xpc3Qgc2l6ZSBleGNlZWRzIDYJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYDCQBmAggFBm1lcmdlZAJfMwUDYW10CQACAQkArAICCQCsAgIJAKwCAgIfSW5zdWZmaWNpZW50IHBheW1lbnQhIEF0dGFjaGVkPQkApAMBBQNhbXQCCywgcmVxdWlyZWQ9CQCkAwEIBQZtZXJnZWQCXzMEB25ld1BhY2sJALkJAgkAzAgCCQCRAwIFC2N1cnJlbnRQYWNrBQpicElkeExldmVsCQDMCAIJAJEDAgULY3VycmVudFBhY2sFCGJwSWR4UmVzCQDMCAIJALkJAggFBm1lcmdlZAJfMgIBXwkAzAgCCQCRAwIFC2N1cnJlbnRQYWNrBQlicElkeFByb2QFA25pbAIBOgQGcmVzdWx0CQEIYXNTdHJpbmcBCQD8BwQFD3N0YWtpbmdDb250cmFjdAIOdXBkYXRlQmFja3BhY2sJAMwIAgULZHVja0Fzc2V0SWQJAMwIAgUHbmV3UGFjawUDbmlsBQNuaWwEBHJlc3QDCQBmAgkAZQIFA2FtdAgFBm1lcmdlZAJfMwAACQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAZQIFA2FtdAgFBm1lcmdlZAJfMwULdXNkbkFzc2V0SWQFA25pbAUDbmlsCQCUCgIJAM4IAggFBm1lcmdlZAJfMQUEcmVzdAUGcmVzdWx0AGf96CY=", "height": 2408881, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9YNBxWmvUGoLXxNutSBPEoXRvBgaxH7mQo4vzjVbZgpA Next: D26GYuHZLea2V5wvzLQHHFACmjgdoBGaT7YhmQkWRR9a Diff:
OldNewDifferences
3737
3838 let l = 10000
3939
40-let m = ["Oil", "Ore", "Wood", "Sand", "Clay", "Organic"]
40+let m = 200
4141
42-let n = ["Fuel", "Metal", "Plank", "Glass", "Plastic", "Protein"]
42+let n = 300
4343
44-let o = ["Americas", "Europe", "Asia", "Africa", "Oceania"]
44+let o = ["Oil", "Ore", "Wood", "Sand", "Clay", "Organic"]
4545
46-func p (q,r) = ((("factoryWhByContinentAndRes_" + q) + "_") + toString(r))
46+let p = ["Fuel", "Metal", "Plank", "Glass", "Plastic", "Protein"]
47+
48+let q = ["Americas", "Europe", "Asia", "Africa", "Oceania"]
49+
50+func r (s,t) = ((("factoryWhByContinentAndRes_" + s) + "_") + toString(t))
4751
4852
49-func s (t) = ("stakedDuckByOwner_" + t)
53+func u (v) = ("stakedDuckByOwner_" + v)
5054
5155
52-func u (v) = ("backPack_" + v)
56+func w (x) = ("backPack_" + x)
5357
5458
55-func w (v) = ("duckLocation_" + v)
59+func y (x) = ("duckLocation_" + x)
5660
5761
58-let x = 0
62+let z = 0
5963
60-let y = 1
64+let A = 1
6165
62-let z = 2
66+let B = 2
6367
64-let A = 0
68+let C = 0
6569
66-let B = 1
70+let D = 1
6771
68-let C = 2
72+let E = 2
6973
70-let D = 3
74+let F = 3
7175
72-func E (F) = {
73- let f = F
76+func G (H) = {
77+ let f = H
7478 if ($isInstanceOf(f, "String"))
7579 then {
76- let G = f
77- G
80+ let I = f
81+ I
7882 }
7983 else throw("fail to cast into String")
8084 }
8185
8286
83-func H (I,r,J) = {
84- func K (L,M) = (L :+ (if ((M == r))
85- then toString((parseIntValue(I[M]) - J))
86- else I[M]))
87-
88- let N = {
89- let O = [0, 1, 2, 3, 4, 5]
90- let P = size(O)
91- let Q = nil
92- func R (S,T) = if ((T >= P))
93- then S
94- else K(S, O[T])
95-
96- func U (S,T) = if ((T >= P))
97- then S
98- else throw("List size exceeds 6")
99-
100- U(R(R(R(R(R(R(Q, 0), 1), 2), 3), 4), 5), 6)
101- }
102- makeString(N, "_")
87+func J (K,t,L,M) = {
88+ let N = r(K, t)
89+ let O = valueOrElse(getInteger(N), 0)
90+ let P = if ((O > j))
91+ then 0
92+ else if (((O + L) > j))
93+ then (j - O)
94+ else L
95+ let Q = (fraction(P, ((m * k) - fraction(((100 * O) + (50 * P)), k, j)), c) + fraction((L - P), k, b))
96+ let R = (M - (M / 100))
97+ if (((R * L) > (Q * b)))
98+ then throw((((((((((("Actual price = " + toString(Q)) + " / ") + toString(L)) + " < minPrice = ") + toString(M)) + ", (") + K) + ", ") + o[t]) + ")"))
99+ else $Tuple2(IntegerEntry(N, (O + L)), Q)
103100 }
104101
105102
106-func V (W,X,J) = {
107- func Y (L,M) = (L :+ (if ((M == X))
108- then toString((parseIntValue(W[M]) + J))
109- else W[M]))
110-
111- let Z = {
112- let O = [0, 1, 2, 3, 4, 5]
113- let P = size(O)
114- let Q = nil
115- func R (S,T) = if ((T >= P))
116- then S
117- else Y(S, O[T])
118-
119- func U (S,T) = if ((T >= P))
120- then S
121- else throw("List size exceeds 6")
122-
123- U(R(R(R(R(R(R(Q, 0), 1), 2), 3), 4), 5), 6)
124- }
125- makeString(Z, "_")
103+func S (K,T,L,U) = {
104+ let N = r(K, T)
105+ let O = valueOrElse(getInteger(N), 0)
106+ let V = if ((O > j))
107+ then min([L, (O - j)])
108+ else 0
109+ let W = min([O, (L - V)])
110+ let X = (W + V)
111+ let Y = (fraction(W, ((n * k) - fraction(((100 * O) - (50 * W)), k, j)), c) + fraction(V, (2 * k), b))
112+ let Z = (U + (U / 100))
113+ if (((Y * b) > (Z * X)))
114+ then throw((((((((((("Actual price = " + toString(Y)) + " / ") + toString(X)) + " > maxPrice = ") + toString(U)) + ", (") + K) + ", ") + p[T]) + ")"))
115+ else $Tuple3(IntegerEntry(N, (O - X)), Y, X)
126116 }
127117
128118
129-func aa (ab,r,J,ac) = {
130- let ad = p(ab, r)
131- let ae = valueOrElse(getInteger(ad), 0)
132- let af = if ((ae > j))
133- then 0
134- else if (((ae + J) > j))
135- then (j - ae)
136- else J
137- let ag = (fraction(af, ((2 * k) - fraction((ae + (af / 2)), k, j)), b) + fraction((J - af), k, b))
138- let ah = (ac - (ac / 100))
139- if (((ah * J) > (ag * b)))
140- then throw((((((((((("Actual price = " + toString(ag)) + " / ") + toString(J)) + " < minPrice = ") + toString(ac)) + ", (") + ab) + ", ") + m[r]) + ")"))
141- else $Tuple2(IntegerEntry(ad, (ae + J)), ag)
119+func aa (ab) = {
120+ let ac = split(valueOrElse(getString(g, ab), "0:0_0_0_0_0_0:0_0_0_0_0_0:"), ":")
121+[toString(valueOrElse(parseInt(ac[C]), 0)), if ((size(split(ac[D], "_")) == i))
122+ then ac[D]
123+ else "0_0_0_0_0_0", if ((size(split(ac[E], "_")) == i))
124+ then ac[E]
125+ else "0_0_0_0_0_0", ac[F]]
142126 }
143127
144128
145-func ai (ab,X,J,aj) = {
146- let ad = p(ab, X)
147- let ae = valueOrElse(getInteger(ad), 0)
148- let ak = if ((ae > j))
149- then min([J, (ae - j)])
150- else 0
151- let al = min([ae, (J - ak)])
152- let Z = (al + ak)
153- let am = (fraction(al, ((300 * k) - fraction(((100 * ae) - (50 * al)), k, j)), c) + fraction(ak, (2 * k), b))
154- let an = (aj + (aj / 100))
155- if (((am * b) > (an * Z)))
156- then throw((((((((((("Actual price = " + toString(am)) + " / ") + toString(Z)) + " > maxPrice = ") + toString(aj)) + ", (") + ab) + ", ") + n[X]) + ")"))
157- else $Tuple3(IntegerEntry(ad, (ae - Z)), am, Z)
158- }
159-
160-
161-func ao (ap) = {
162- let aq = split(valueOrElse(getString(g, ap), "0:0_0_0_0_0_0:0_0_0_0_0_0:"), ":")
163-[toString(valueOrElse(parseInt(aq[A]), 0)), if ((size(split(aq[B], "_")) == i))
164- then aq[B]
165- else "0_0_0_0_0_0", if ((size(split(aq[C], "_")) == i))
166- then aq[C]
167- else "0_0_0_0_0_0", aq[D]]
168- }
169-
170-
171-@Callable(M)
172-func sellResources (ar,as) = {
173- let v = valueOrErrorMessage(getString(g, s(toString(M.caller))), "You don't have a duck staked")
174- if ((size(M.payments) != 0))
129+@Callable(ad)
130+func sellResources (ae,af) = {
131+ let x = valueOrErrorMessage(getString(g, u(toString(ad.caller))), "You don't have a duck staked")
132+ if ((size(ad.payments) != 0))
175133 then throw("sellResources doesn't require any payments")
176134 else {
177- let at = split(valueOrElse(getString(g, w(v)), h), "_")
178- if ((at[y] != "F"))
179- then throw(("Duck location type should be Factory, but is " + at[y]))
135+ let ag = split(valueOrElse(getString(g, y(x)), h), "_")
136+ if ((ag[A] != "F"))
137+ then throw(("Duck location type should be Factory, but is " + ag[A]))
180138 else {
181- let ab = at[z]
182- let au = ao(u(v))
183- let I = split(au[B], "_")
184- func av (L,aw) = if ((ar[aw] > parseIntValue(I[aw])))
185- then throw(((((("You have " + I[aw]) + " of ") + m[aw]) + ", but tried to sell ") + toString(ar[aw])))
186- else if ((0 > ar[aw]))
187- then throw(((("You tried to sell negative amount of " + m[aw]) + ": ") + toString(ar[aw])))
188- else if ((ar[aw] > 0))
139+ let K = ag[B]
140+ let ah = aa(w(x))
141+ let ai = split(ah[D], "_")
142+ func aj (ak,al) = if ((ae[al] > parseIntValue(ai[al])))
143+ then throw(((((("You have " + ai[al]) + " of ") + o[al]) + ", but tried to sell ") + toString(ae[al])))
144+ else if ((0 > ae[al]))
145+ then throw(((("You tried to sell negative amount of " + o[al]) + ": ") + toString(ae[al])))
146+ else if ((ae[al] > 0))
189147 then {
190- let ax = aa(ab, aw, ar[aw], as[value(aw)])
191- $Tuple3((L._1 :+ ax._1), (L._2 :+ toString((parseIntValue(I[aw]) - ar[aw]))), (L._3 + ax._2))
148+ let am = J(K, al, ae[al], af[al])
149+ $Tuple3((ak._1 :+ am._1), (ak._2 :+ toString((parseIntValue(ai[al]) - ae[al]))), (ak._3 + am._2))
192150 }
193- else $Tuple3(L._1, (L._2 :+ I[aw]), L._3)
151+ else $Tuple3(ak._1, (ak._2 :+ ai[al]), ak._3)
194152
195- let ay = {
196- let O = [0, 1, 2, 3, 4, 5]
197- let P = size(O)
198- let Q = $Tuple3(nil, nil, 0)
199- func R (S,T) = if ((T >= P))
200- then S
201- else av(S, O[T])
153+ let an = {
154+ let ao = [0, 1, 2, 3, 4, 5]
155+ let ap = size(ao)
156+ let aq = $Tuple3(nil, nil, 0)
157+ func ar (as,at) = if ((at >= ap))
158+ then as
159+ else aj(as, ao[at])
202160
203- func U (S,T) = if ((T >= P))
204- then S
161+ func au (as,at) = if ((at >= ap))
162+ then as
205163 else throw("List size exceeds 6")
206164
207- U(R(R(R(R(R(R(Q, 0), 1), 2), 3), 4), 5), 6)
165+ au(ar(ar(ar(ar(ar(ar(aq, 0), 1), 2), 3), 4), 5), 6)
208166 }
209- let az = makeString([au[A], makeString(ay._2, "_"), au[C], au[D]], ":")
210- let aA = E(invoke(g, "updateBackpack", [v, az], nil))
211- $Tuple2((ay._1 :+ ScriptTransfer(M.caller, ay._3, e)), aA)
167+ let av = makeString([ah[C], makeString(an._2, "_"), ah[E], ah[F]], ":")
168+ let aw = G(invoke(g, "updateBackpack", [x, av], nil))
169+ $Tuple2((an._1 :+ ScriptTransfer(ad.caller, an._3, e)), aw)
212170 }
213171 }
214172 }
215173
216174
217175
218-@Callable(M)
219-func buyMaterials (ar,aB) = {
220- let v = valueOrErrorMessage(getString(g, s(toString(M.caller))), "You don't have a duck staked")
221- if ((size(M.payments) != 1))
176+@Callable(ad)
177+func buyMaterials (ae,ax) = {
178+ let x = valueOrErrorMessage(getString(g, u(toString(ad.caller))), "You don't have a duck staked")
179+ if ((size(ad.payments) != 1))
222180 then throw("exactly 1 payment must be attached")
223181 else {
224- let aC = M.payments[0]
225- let aD = aC.amount
226- let aE = valueOrErrorMessage(aC.assetId, "WAVES can't be used as payment")
227- if ((aE != e))
182+ let ay = ad.payments[0]
183+ let az = ay.amount
184+ let aA = valueOrErrorMessage(ay.assetId, "WAVES can't be used as payment")
185+ if ((aA != e))
228186 then throw("USDN payments only!")
229187 else {
230- let at = split(valueOrElse(getString(g, w(v)), h), "_")
231- if ((at[y] != "F"))
232- then throw(("Duck location type should be Factory, but is " + at[y]))
188+ let ag = split(valueOrElse(getString(g, y(x)), h), "_")
189+ if ((ag[A] != "F"))
190+ then throw(("Duck location type should be Factory, but is " + ag[A]))
233191 else {
234- let ab = at[z]
235- let au = ao(u(v))
236- let W = split(au[C], "_")
237- func aF (L,aw) = if ((0 > ar[aw]))
238- then throw(((("You tried to buy negative amount of " + n[aw]) + ": ") + toString(ar[aw])))
239- else if ((ar[aw] > 0))
192+ let K = ag[B]
193+ let ah = aa(w(x))
194+ let aB = split(ah[E], "_")
195+ func aC (ak,al) = if ((0 > ae[al]))
196+ then throw(((("You tried to buy negative amount of " + p[al]) + ": ") + toString(ae[al])))
197+ else if ((ae[al] > 0))
240198 then {
241- let ax = ai(ab, aw, ar[aw], aB[aw])
242- $Tuple3((L._1 :+ ax._1), (L._2 :+ toString((parseIntValue(W[aw]) + ax._3))), (L._3 + ax._2))
199+ let am = S(K, al, ae[al], ax[al])
200+ $Tuple3((ak._1 :+ am._1), (ak._2 :+ toString((parseIntValue(aB[al]) + am._3))), (ak._3 + am._2))
243201 }
244- else $Tuple3(L._1, (L._2 :+ W[aw]), L._3)
202+ else $Tuple3(ak._1, (ak._2 :+ aB[al]), ak._3)
245203
246- let ay = {
247- let O = [0, 1, 2, 3, 4, 5]
248- let P = size(O)
249- let Q = $Tuple3(nil, nil, 0)
250- func R (S,T) = if ((T >= P))
251- then S
252- else aF(S, O[T])
204+ let an = {
205+ let ao = [0, 1, 2, 3, 4, 5]
206+ let ap = size(ao)
207+ let aq = $Tuple3(nil, nil, 0)
208+ func ar (as,at) = if ((at >= ap))
209+ then as
210+ else aC(as, ao[at])
253211
254- func U (S,T) = if ((T >= P))
255- then S
212+ func au (as,at) = if ((at >= ap))
213+ then as
256214 else throw("List size exceeds 6")
257215
258- U(R(R(R(R(R(R(Q, 0), 1), 2), 3), 4), 5), 6)
216+ au(ar(ar(ar(ar(ar(ar(aq, 0), 1), 2), 3), 4), 5), 6)
259217 }
260- if ((ay._3 > aD))
261- then throw(((("Insufficient payment! Attached=" + toString(aD)) + ", required=") + toString(ay._3)))
218+ if ((an._3 > az))
219+ then throw(((("Insufficient payment! Attached=" + toString(az)) + ", required=") + toString(an._3)))
262220 else {
263- let az = makeString([au[A], au[B], makeString(ay._2, "_"), au[D]], ":")
264- let aA = E(invoke(g, "updateBackpack", [v, az], nil))
265- let aG = if (((aD - ay._3) > 0))
266- then [ScriptTransfer(M.caller, (aD - ay._3), e)]
221+ let av = makeString([ah[C], ah[D], makeString(an._2, "_"), ah[F]], ":")
222+ let aw = G(invoke(g, "updateBackpack", [x, av], nil))
223+ let aD = if (((az - an._3) > 0))
224+ then [ScriptTransfer(ad.caller, (az - an._3), e)]
267225 else nil
268- $Tuple2((ay._1 ++ aG), aA)
226+ $Tuple2((an._1 ++ aD), aw)
269227 }
270228 }
271229 }
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1000000
55
66 let b = 100000000
77
88 let c = 10000000000
99
1010 let d = toUtf8String(take(drop(this.bytes, 1), 1))
1111
1212 let e = {
1313 let f = d
1414 if (("W" == f))
1515 then base58'DG2xFkPdDwKUoBkzGAhQtLpSGzfXLiCYPEzeKH2Ad24p'
1616 else if (("T" == f))
1717 then base58'HezsdQuRDtzksAYUy97gfhKy7Z1NW2uXYSHA3bgqenNZ'
1818 else throw("Unknown chain")
1919 }
2020
2121 let g = addressFromStringValue({
2222 let f = d
2323 if (("W" == f))
2424 then "3PLncXtS1U83D6cQbFD3H8rBHPLgzxSFKZ1"
2525 else if (("T" == f))
2626 then "3NDCyBG5q85JuaRiigUeEtainyjCQT3XpZm"
2727 else throw("Unknown chain")
2828 })
2929
3030 let h = "Africa_F_Africa"
3131
3232 let i = 6
3333
3434 let j = 10000000000
3535
3636 let k = 158549
3737
3838 let l = 10000
3939
40-let m = ["Oil", "Ore", "Wood", "Sand", "Clay", "Organic"]
40+let m = 200
4141
42-let n = ["Fuel", "Metal", "Plank", "Glass", "Plastic", "Protein"]
42+let n = 300
4343
44-let o = ["Americas", "Europe", "Asia", "Africa", "Oceania"]
44+let o = ["Oil", "Ore", "Wood", "Sand", "Clay", "Organic"]
4545
46-func p (q,r) = ((("factoryWhByContinentAndRes_" + q) + "_") + toString(r))
46+let p = ["Fuel", "Metal", "Plank", "Glass", "Plastic", "Protein"]
47+
48+let q = ["Americas", "Europe", "Asia", "Africa", "Oceania"]
49+
50+func r (s,t) = ((("factoryWhByContinentAndRes_" + s) + "_") + toString(t))
4751
4852
49-func s (t) = ("stakedDuckByOwner_" + t)
53+func u (v) = ("stakedDuckByOwner_" + v)
5054
5155
52-func u (v) = ("backPack_" + v)
56+func w (x) = ("backPack_" + x)
5357
5458
55-func w (v) = ("duckLocation_" + v)
59+func y (x) = ("duckLocation_" + x)
5660
5761
58-let x = 0
62+let z = 0
5963
60-let y = 1
64+let A = 1
6165
62-let z = 2
66+let B = 2
6367
64-let A = 0
68+let C = 0
6569
66-let B = 1
70+let D = 1
6771
68-let C = 2
72+let E = 2
6973
70-let D = 3
74+let F = 3
7175
72-func E (F) = {
73- let f = F
76+func G (H) = {
77+ let f = H
7478 if ($isInstanceOf(f, "String"))
7579 then {
76- let G = f
77- G
80+ let I = f
81+ I
7882 }
7983 else throw("fail to cast into String")
8084 }
8185
8286
83-func H (I,r,J) = {
84- func K (L,M) = (L :+ (if ((M == r))
85- then toString((parseIntValue(I[M]) - J))
86- else I[M]))
87-
88- let N = {
89- let O = [0, 1, 2, 3, 4, 5]
90- let P = size(O)
91- let Q = nil
92- func R (S,T) = if ((T >= P))
93- then S
94- else K(S, O[T])
95-
96- func U (S,T) = if ((T >= P))
97- then S
98- else throw("List size exceeds 6")
99-
100- U(R(R(R(R(R(R(Q, 0), 1), 2), 3), 4), 5), 6)
101- }
102- makeString(N, "_")
87+func J (K,t,L,M) = {
88+ let N = r(K, t)
89+ let O = valueOrElse(getInteger(N), 0)
90+ let P = if ((O > j))
91+ then 0
92+ else if (((O + L) > j))
93+ then (j - O)
94+ else L
95+ let Q = (fraction(P, ((m * k) - fraction(((100 * O) + (50 * P)), k, j)), c) + fraction((L - P), k, b))
96+ let R = (M - (M / 100))
97+ if (((R * L) > (Q * b)))
98+ then throw((((((((((("Actual price = " + toString(Q)) + " / ") + toString(L)) + " < minPrice = ") + toString(M)) + ", (") + K) + ", ") + o[t]) + ")"))
99+ else $Tuple2(IntegerEntry(N, (O + L)), Q)
103100 }
104101
105102
106-func V (W,X,J) = {
107- func Y (L,M) = (L :+ (if ((M == X))
108- then toString((parseIntValue(W[M]) + J))
109- else W[M]))
110-
111- let Z = {
112- let O = [0, 1, 2, 3, 4, 5]
113- let P = size(O)
114- let Q = nil
115- func R (S,T) = if ((T >= P))
116- then S
117- else Y(S, O[T])
118-
119- func U (S,T) = if ((T >= P))
120- then S
121- else throw("List size exceeds 6")
122-
123- U(R(R(R(R(R(R(Q, 0), 1), 2), 3), 4), 5), 6)
124- }
125- makeString(Z, "_")
103+func S (K,T,L,U) = {
104+ let N = r(K, T)
105+ let O = valueOrElse(getInteger(N), 0)
106+ let V = if ((O > j))
107+ then min([L, (O - j)])
108+ else 0
109+ let W = min([O, (L - V)])
110+ let X = (W + V)
111+ let Y = (fraction(W, ((n * k) - fraction(((100 * O) - (50 * W)), k, j)), c) + fraction(V, (2 * k), b))
112+ let Z = (U + (U / 100))
113+ if (((Y * b) > (Z * X)))
114+ then throw((((((((((("Actual price = " + toString(Y)) + " / ") + toString(X)) + " > maxPrice = ") + toString(U)) + ", (") + K) + ", ") + p[T]) + ")"))
115+ else $Tuple3(IntegerEntry(N, (O - X)), Y, X)
126116 }
127117
128118
129-func aa (ab,r,J,ac) = {
130- let ad = p(ab, r)
131- let ae = valueOrElse(getInteger(ad), 0)
132- let af = if ((ae > j))
133- then 0
134- else if (((ae + J) > j))
135- then (j - ae)
136- else J
137- let ag = (fraction(af, ((2 * k) - fraction((ae + (af / 2)), k, j)), b) + fraction((J - af), k, b))
138- let ah = (ac - (ac / 100))
139- if (((ah * J) > (ag * b)))
140- then throw((((((((((("Actual price = " + toString(ag)) + " / ") + toString(J)) + " < minPrice = ") + toString(ac)) + ", (") + ab) + ", ") + m[r]) + ")"))
141- else $Tuple2(IntegerEntry(ad, (ae + J)), ag)
119+func aa (ab) = {
120+ let ac = split(valueOrElse(getString(g, ab), "0:0_0_0_0_0_0:0_0_0_0_0_0:"), ":")
121+[toString(valueOrElse(parseInt(ac[C]), 0)), if ((size(split(ac[D], "_")) == i))
122+ then ac[D]
123+ else "0_0_0_0_0_0", if ((size(split(ac[E], "_")) == i))
124+ then ac[E]
125+ else "0_0_0_0_0_0", ac[F]]
142126 }
143127
144128
145-func ai (ab,X,J,aj) = {
146- let ad = p(ab, X)
147- let ae = valueOrElse(getInteger(ad), 0)
148- let ak = if ((ae > j))
149- then min([J, (ae - j)])
150- else 0
151- let al = min([ae, (J - ak)])
152- let Z = (al + ak)
153- let am = (fraction(al, ((300 * k) - fraction(((100 * ae) - (50 * al)), k, j)), c) + fraction(ak, (2 * k), b))
154- let an = (aj + (aj / 100))
155- if (((am * b) > (an * Z)))
156- then throw((((((((((("Actual price = " + toString(am)) + " / ") + toString(Z)) + " > maxPrice = ") + toString(aj)) + ", (") + ab) + ", ") + n[X]) + ")"))
157- else $Tuple3(IntegerEntry(ad, (ae - Z)), am, Z)
158- }
159-
160-
161-func ao (ap) = {
162- let aq = split(valueOrElse(getString(g, ap), "0:0_0_0_0_0_0:0_0_0_0_0_0:"), ":")
163-[toString(valueOrElse(parseInt(aq[A]), 0)), if ((size(split(aq[B], "_")) == i))
164- then aq[B]
165- else "0_0_0_0_0_0", if ((size(split(aq[C], "_")) == i))
166- then aq[C]
167- else "0_0_0_0_0_0", aq[D]]
168- }
169-
170-
171-@Callable(M)
172-func sellResources (ar,as) = {
173- let v = valueOrErrorMessage(getString(g, s(toString(M.caller))), "You don't have a duck staked")
174- if ((size(M.payments) != 0))
129+@Callable(ad)
130+func sellResources (ae,af) = {
131+ let x = valueOrErrorMessage(getString(g, u(toString(ad.caller))), "You don't have a duck staked")
132+ if ((size(ad.payments) != 0))
175133 then throw("sellResources doesn't require any payments")
176134 else {
177- let at = split(valueOrElse(getString(g, w(v)), h), "_")
178- if ((at[y] != "F"))
179- then throw(("Duck location type should be Factory, but is " + at[y]))
135+ let ag = split(valueOrElse(getString(g, y(x)), h), "_")
136+ if ((ag[A] != "F"))
137+ then throw(("Duck location type should be Factory, but is " + ag[A]))
180138 else {
181- let ab = at[z]
182- let au = ao(u(v))
183- let I = split(au[B], "_")
184- func av (L,aw) = if ((ar[aw] > parseIntValue(I[aw])))
185- then throw(((((("You have " + I[aw]) + " of ") + m[aw]) + ", but tried to sell ") + toString(ar[aw])))
186- else if ((0 > ar[aw]))
187- then throw(((("You tried to sell negative amount of " + m[aw]) + ": ") + toString(ar[aw])))
188- else if ((ar[aw] > 0))
139+ let K = ag[B]
140+ let ah = aa(w(x))
141+ let ai = split(ah[D], "_")
142+ func aj (ak,al) = if ((ae[al] > parseIntValue(ai[al])))
143+ then throw(((((("You have " + ai[al]) + " of ") + o[al]) + ", but tried to sell ") + toString(ae[al])))
144+ else if ((0 > ae[al]))
145+ then throw(((("You tried to sell negative amount of " + o[al]) + ": ") + toString(ae[al])))
146+ else if ((ae[al] > 0))
189147 then {
190- let ax = aa(ab, aw, ar[aw], as[value(aw)])
191- $Tuple3((L._1 :+ ax._1), (L._2 :+ toString((parseIntValue(I[aw]) - ar[aw]))), (L._3 + ax._2))
148+ let am = J(K, al, ae[al], af[al])
149+ $Tuple3((ak._1 :+ am._1), (ak._2 :+ toString((parseIntValue(ai[al]) - ae[al]))), (ak._3 + am._2))
192150 }
193- else $Tuple3(L._1, (L._2 :+ I[aw]), L._3)
151+ else $Tuple3(ak._1, (ak._2 :+ ai[al]), ak._3)
194152
195- let ay = {
196- let O = [0, 1, 2, 3, 4, 5]
197- let P = size(O)
198- let Q = $Tuple3(nil, nil, 0)
199- func R (S,T) = if ((T >= P))
200- then S
201- else av(S, O[T])
153+ let an = {
154+ let ao = [0, 1, 2, 3, 4, 5]
155+ let ap = size(ao)
156+ let aq = $Tuple3(nil, nil, 0)
157+ func ar (as,at) = if ((at >= ap))
158+ then as
159+ else aj(as, ao[at])
202160
203- func U (S,T) = if ((T >= P))
204- then S
161+ func au (as,at) = if ((at >= ap))
162+ then as
205163 else throw("List size exceeds 6")
206164
207- U(R(R(R(R(R(R(Q, 0), 1), 2), 3), 4), 5), 6)
165+ au(ar(ar(ar(ar(ar(ar(aq, 0), 1), 2), 3), 4), 5), 6)
208166 }
209- let az = makeString([au[A], makeString(ay._2, "_"), au[C], au[D]], ":")
210- let aA = E(invoke(g, "updateBackpack", [v, az], nil))
211- $Tuple2((ay._1 :+ ScriptTransfer(M.caller, ay._3, e)), aA)
167+ let av = makeString([ah[C], makeString(an._2, "_"), ah[E], ah[F]], ":")
168+ let aw = G(invoke(g, "updateBackpack", [x, av], nil))
169+ $Tuple2((an._1 :+ ScriptTransfer(ad.caller, an._3, e)), aw)
212170 }
213171 }
214172 }
215173
216174
217175
218-@Callable(M)
219-func buyMaterials (ar,aB) = {
220- let v = valueOrErrorMessage(getString(g, s(toString(M.caller))), "You don't have a duck staked")
221- if ((size(M.payments) != 1))
176+@Callable(ad)
177+func buyMaterials (ae,ax) = {
178+ let x = valueOrErrorMessage(getString(g, u(toString(ad.caller))), "You don't have a duck staked")
179+ if ((size(ad.payments) != 1))
222180 then throw("exactly 1 payment must be attached")
223181 else {
224- let aC = M.payments[0]
225- let aD = aC.amount
226- let aE = valueOrErrorMessage(aC.assetId, "WAVES can't be used as payment")
227- if ((aE != e))
182+ let ay = ad.payments[0]
183+ let az = ay.amount
184+ let aA = valueOrErrorMessage(ay.assetId, "WAVES can't be used as payment")
185+ if ((aA != e))
228186 then throw("USDN payments only!")
229187 else {
230- let at = split(valueOrElse(getString(g, w(v)), h), "_")
231- if ((at[y] != "F"))
232- then throw(("Duck location type should be Factory, but is " + at[y]))
188+ let ag = split(valueOrElse(getString(g, y(x)), h), "_")
189+ if ((ag[A] != "F"))
190+ then throw(("Duck location type should be Factory, but is " + ag[A]))
233191 else {
234- let ab = at[z]
235- let au = ao(u(v))
236- let W = split(au[C], "_")
237- func aF (L,aw) = if ((0 > ar[aw]))
238- then throw(((("You tried to buy negative amount of " + n[aw]) + ": ") + toString(ar[aw])))
239- else if ((ar[aw] > 0))
192+ let K = ag[B]
193+ let ah = aa(w(x))
194+ let aB = split(ah[E], "_")
195+ func aC (ak,al) = if ((0 > ae[al]))
196+ then throw(((("You tried to buy negative amount of " + p[al]) + ": ") + toString(ae[al])))
197+ else if ((ae[al] > 0))
240198 then {
241- let ax = ai(ab, aw, ar[aw], aB[aw])
242- $Tuple3((L._1 :+ ax._1), (L._2 :+ toString((parseIntValue(W[aw]) + ax._3))), (L._3 + ax._2))
199+ let am = S(K, al, ae[al], ax[al])
200+ $Tuple3((ak._1 :+ am._1), (ak._2 :+ toString((parseIntValue(aB[al]) + am._3))), (ak._3 + am._2))
243201 }
244- else $Tuple3(L._1, (L._2 :+ W[aw]), L._3)
202+ else $Tuple3(ak._1, (ak._2 :+ aB[al]), ak._3)
245203
246- let ay = {
247- let O = [0, 1, 2, 3, 4, 5]
248- let P = size(O)
249- let Q = $Tuple3(nil, nil, 0)
250- func R (S,T) = if ((T >= P))
251- then S
252- else aF(S, O[T])
204+ let an = {
205+ let ao = [0, 1, 2, 3, 4, 5]
206+ let ap = size(ao)
207+ let aq = $Tuple3(nil, nil, 0)
208+ func ar (as,at) = if ((at >= ap))
209+ then as
210+ else aC(as, ao[at])
253211
254- func U (S,T) = if ((T >= P))
255- then S
212+ func au (as,at) = if ((at >= ap))
213+ then as
256214 else throw("List size exceeds 6")
257215
258- U(R(R(R(R(R(R(Q, 0), 1), 2), 3), 4), 5), 6)
216+ au(ar(ar(ar(ar(ar(ar(aq, 0), 1), 2), 3), 4), 5), 6)
259217 }
260- if ((ay._3 > aD))
261- then throw(((("Insufficient payment! Attached=" + toString(aD)) + ", required=") + toString(ay._3)))
218+ if ((an._3 > az))
219+ then throw(((("Insufficient payment! Attached=" + toString(az)) + ", required=") + toString(an._3)))
262220 else {
263- let az = makeString([au[A], au[B], makeString(ay._2, "_"), au[D]], ":")
264- let aA = E(invoke(g, "updateBackpack", [v, az], nil))
265- let aG = if (((aD - ay._3) > 0))
266- then [ScriptTransfer(M.caller, (aD - ay._3), e)]
221+ let av = makeString([ah[C], ah[D], makeString(an._2, "_"), ah[F]], ":")
222+ let aw = G(invoke(g, "updateBackpack", [x, av], nil))
223+ let aD = if (((az - an._3) > 0))
224+ then [ScriptTransfer(ad.caller, (az - an._3), e)]
267225 else nil
268- $Tuple2((ay._1 ++ aG), aA)
226+ $Tuple2((an._1 ++ aD), aw)
269227 }
270228 }
271229 }
272230 }
273231 }
274232
275233

github/deemru/w8io/c3f4982 
130.63 ms