tx · T5DaWMF5sN7FDy8CzqtdaVLxjYFyy2EfHFf37jBqoV2

3MrpGcZZ569vFiRHpB54Z8TJkusrDwPoeqD:  -0.01300000 Waves

2023.05.04 13:11 [2562877] smart account 3MrpGcZZ569vFiRHpB54Z8TJkusrDwPoeqD > SELF 0.00000000 Waves

{ "type": 13, "id": "T5DaWMF5sN7FDy8CzqtdaVLxjYFyy2EfHFf37jBqoV2", "fee": 1300000, "feeAssetId": null, "timestamp": 1683195153276, "version": 2, "chainId": 84, "sender": "3MrpGcZZ569vFiRHpB54Z8TJkusrDwPoeqD", "senderPublicKey": "9NE8zsj5DuGfzA1TTJTEv7qQqc1ERk5iDcrFqX8KgxoB", "proofs": [ "2Cwr9K6X5WeKmLETxh2z2ayxcZsh447t3ksEMVWknnb5WgSEAHe5sdPNWedqGTYsKUpXqJNYyFNemxkQMkYSSN5H" ], "script": "base64:BgIgCAISBgoECAgBARIECgIBBBIDCgEBEgQKAgEEEgMKAQESAANTRVACAl9fARBibG9ja0hlaWdodEVycm9yAAkAAgECL1RoZSBibG9jaydzIGhlaWdodCBpcyB0b28gYmlnIGZvciB0aGlzIHByb3Bvc2FsARBhbHJlYWR5Vm90ZUVycm9yAAkAAgECFllvdSBoYXZlIGFscmVhZHkgdm90ZWQBC25vVm90ZUVycm9yAAkAAgECGllvdSBoYXZlIG5vdCBhbHJlYWR5IHZvdGVkARJnd3hDb250cmFjdEFkZHJlc3MACQC5CQIJAMwIAgICJXMJAMwIAgISZ3d4Q29udHJhY3RBZGRyZXNzBQNuaWwFA1NFUAEPa2V5Q3VycmVudEluZGV4AAkAuQkCCQDMCAICAiVzCQDMCAICDGN1cnJlbnRJbmRleAUDbmlsBQNTRVABD2tleVByb3Bvc2FsSW5mbwEGbnVtYmVyCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgxwcm9wb3NhbEluZm8JAMwIAgkApAMBBQZudW1iZXIFA25pbAUDU0VQARVrZXlVc2VyVm90ZU9uUHJvcG9zYWwCBm51bWJlcgR1c2VyCQC5CQIJAMwIAgIGJXMlZCVzCQDMCAICEnVzZXJWb3RlT25Qcm9wb3NhbAkAzAgCCQCkAwEFBm51bWJlcgkAzAgCBQR1c2VyBQNuaWwFA1NFUAETa2V5TWFuYWdlclB1YmxpY0tleQACFCVzX19tYW5hZ2VyUHVibGljS2V5ARZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBD2dldEN1cnJlbnRJbmRleAAJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAQ9rZXlDdXJyZW50SW5kZXgAARdnZXRNYW5hZ2VyQWRkcmVzc09yRmFpbAAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJARZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzAAESZm9ybWF0UHJvcG9zYWxJbmZvBgRuYW1lC2Rlc2NyaXB0aW9uA2VuZAxxdW9ydW1OdW1iZXINcG9zaXRpdmVWb3Rlcw1uZWdhdGl2ZVZvdGVzCQC5CQIJAMwIAgIMJWQlZCVkJWQlZCVkCQDMCAIFBG5hbWUJAMwIAgULZGVzY3JpcHRpb24JAMwIAgUDZW5kCQDMCAIFDHF1b3J1bU51bWJlcgkAzAgCBQ1wb3NpdGl2ZVZvdGVzCQDMCAIFDW5lZ2F0aXZlVm90ZXMFA25pbAUDU0VQARhmb3JtYXRVc2VyVm90ZU9uUHJvcG9zYWwCBHZvdGUJZ3d4TnVtYmVyCQC5CQIJAMwIAgIEJWQlZAkAzAgCBQR2b3RlCQDMCAIFCWd3eE51bWJlcgUDbmlsBQNTRVABBWFzSW50AQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgNJbnQEBnZhbEludAUHJG1hdGNoMAUGdmFsSW50CQACAQIVZmFpbCB0byBjYXN0IGludG8gSW50ARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAQTbWFuYWdlclZhdWx0QWRkcmVzcwkBF2dldE1hbmFnZXJBZGRyZXNzT3JGYWlsAAQHJG1hdGNoMAkAnQgCBRNtYW5hZ2VyVmF1bHRBZGRyZXNzCQETa2V5TWFuYWdlclB1YmxpY0tleQADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQDZBAEFAXMDCQABAgUHJG1hdGNoMAIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQlpc01hbmFnZXIBAWkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAkAAAIIBQFpD2NhbGxlclB1YmxpY0tleQUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAkAAAIIBQFpBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQttdXN0TWFuYWdlcgEBaQMJAQlpc01hbmFnZXIBBQFpBgkAAgECEXBlcm1pc3Npb24gZGVuaWVkBQFpAQxzdGFydE5ld1ZvdGUEBG5hbWULZGVzY3JpcHRpb24QZXhwaXJhdGlvbkhlaWdodAxxdW9ydW1OdW1iZXIEBmNoZWNrcwkAzAgCCQELbXVzdE1hbmFnZXIBBQFpBQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MECHRoZUluZGV4CQEPZ2V0Q3VycmVudEluZGV4AAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBD2tleUN1cnJlbnRJbmRleAAJAGQCBQh0aGVJbmRleAABCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ9rZXlQcm9wb3NhbEluZm8BBQh0aGVJbmRleAkBEmZvcm1hdFByb3Bvc2FsSW5mbwYFBG5hbWUFC2Rlc2NyaXB0aW9uCQCkAwEJAGQCCAUJbGFzdEJsb2NrBmhlaWdodAUQZXhwaXJhdGlvbkhlaWdodAkApAMBBQxxdW9ydW1OdW1iZXICATACATAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQd2b3RlRm9yAg1wcm9wb3NhbEluZGV4BmNob2ljZQQFRU1QVFkCBUVNUFRZBAh2b3RlSW5mbwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEPa2V5UHJvcG9zYWxJbmZvAQUNcHJvcG9zYWxJbmRleAUFRU1QVFkEDXZvdGVJbmZvQXJyYXkJALUJAgUIdm90ZUluZm8FA1NFUAQMdXNlclZvdGVJbmZvCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARVrZXlVc2VyVm90ZU9uUHJvcG9zYWwCBQ1wcm9wb3NhbEluZGV4CQClCAEIBQFpBmNhbGxlcgUFRU1QVFkEBmNoZWNrcwkAzAgCAwkBAiE9AgUIdm90ZUluZm8FBUVNUFRZBgkAAgECDE5vIHN1Y2ggdm90ZQkAzAgCAwkAZgIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAMIBQlsYXN0QmxvY2sGaGVpZ2h0BgkBEGJsb2NrSGVpZ2h0RXJyb3IACQDMCAIDCQAAAgUMdXNlclZvdGVJbmZvBQVFTVBUWQYJARBhbHJlYWR5Vm90ZUVycm9yAAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAlnd3hOdW1iZXIJAQVhc0ludAEJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBEmd3eENvbnRyYWN0QWRkcmVzcwACIGdldFVzZXJHd3hBbW91bnRBdEhlaWdodFJFQURPTkxZCQDMCAIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAMFA25pbAUDbmlsBAskdDAzMzcxNDQ1OQMFBmNob2ljZQQHYWN0aW9uMQkBC1N0cmluZ0VudHJ5AgkBD2tleVByb3Bvc2FsSW5mbwEFDXByb3Bvc2FsSW5kZXgJARJmb3JtYXRQcm9wb3NhbEluZm8GCQCRAwIFDXZvdGVJbmZvQXJyYXkAAQkAkQMCBQ12b3RlSW5mb0FycmF5AAIJAJEDAgUNdm90ZUluZm9BcnJheQADCQCRAwIFDXZvdGVJbmZvQXJyYXkABAkApAMBCQBkAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABQUJZ3d4TnVtYmVyCQCRAwIFDXZvdGVJbmZvQXJyYXkABgQHYWN0aW9uMgkBC1N0cmluZ0VudHJ5AgkBFWtleVVzZXJWb3RlT25Qcm9wb3NhbAIFDXByb3Bvc2FsSW5kZXgJAKUIAQgFAWkGY2FsbGVyCQEYZm9ybWF0VXNlclZvdGVPblByb3Bvc2FsAgIBMQkApAMBBQlnd3hOdW1iZXIJAJQKAgUHYWN0aW9uMQUHYWN0aW9uMgQHYWN0aW9uMQkBC1N0cmluZ0VudHJ5AgkBD2tleVByb3Bvc2FsSW5mbwEFDXByb3Bvc2FsSW5kZXgJARJmb3JtYXRQcm9wb3NhbEluZm8GCQCRAwIFDXZvdGVJbmZvQXJyYXkAAQkAkQMCBQ12b3RlSW5mb0FycmF5AAIJAJEDAgUNdm90ZUluZm9BcnJheQADCQCRAwIFDXZvdGVJbmZvQXJyYXkABAkAkQMCBQ12b3RlSW5mb0FycmF5AAUJAKQDAQkAZAIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAYFCWd3eE51bWJlcgQHYWN0aW9uMgkBC1N0cmluZ0VudHJ5AgkBFWtleVVzZXJWb3RlT25Qcm9wb3NhbAIFDXByb3Bvc2FsSW5kZXgJAKUIAQgFAWkGY2FsbGVyCQEYZm9ybWF0VXNlclZvdGVPblByb3Bvc2FsAgIBMAkApAMBBQlnd3hOdW1iZXIJAJQKAgUHYWN0aW9uMQUHYWN0aW9uMgQHYWN0aW9uMQgFCyR0MDMzNzE0NDU5Al8xBAdhY3Rpb24yCAULJHQwMzM3MTQ0NTkCXzIJAMwIAgUHYWN0aW9uMQkAzAgCBQdhY3Rpb24yBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKZGVsZXRlVm90ZQENcHJvcG9zYWxJbmRleAQFRU1QVFkCBUVNUFRZBAh2b3RlSW5mbwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEPa2V5UHJvcG9zYWxJbmZvAQUNcHJvcG9zYWxJbmRleAUFRU1QVFkEDXZvdGVJbmZvQXJyYXkJALUJAgUIdm90ZUluZm8FA1NFUAQMdXNlclZvdGVJbmZvCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARVrZXlVc2VyVm90ZU9uUHJvcG9zYWwCBQ1wcm9wb3NhbEluZGV4CQClCAEIBQFpBmNhbGxlcgUFRU1QVFkEEXVzZXJWb3RlSW5mb0FycmF5CQC1CQIFDHVzZXJWb3RlSW5mbwUDU0VQBAZjaGVja3MJAMwIAgMJAQIhPQIFCHZvdGVJbmZvBQVFTVBUWQYJAAIBAgxObyBzdWNoIHZvdGUJAMwIAgMJAGYCCQEFdmFsdWUBCQC2CQEJAJEDAgUNdm90ZUluZm9BcnJheQADCAUJbGFzdEJsb2NrBmhlaWdodAYJARBibG9ja0hlaWdodEVycm9yAAkAzAgCAwkBAiE9AgUMdXNlclZvdGVJbmZvBQVFTVBUWQYJAQtub1ZvdGVFcnJvcgAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQGYWN0aW9uAwkAAAIJAJEDAgURdXNlclZvdGVJbmZvQXJyYXkAAQIBMQkBC1N0cmluZ0VudHJ5AgkBD2tleVByb3Bvc2FsSW5mbwEFDXByb3Bvc2FsSW5kZXgJARJmb3JtYXRQcm9wb3NhbEluZm8GCQCRAwIFDXZvdGVJbmZvQXJyYXkAAQkAkQMCBQ12b3RlSW5mb0FycmF5AAIJAJEDAgUNdm90ZUluZm9BcnJheQADCQCRAwIFDXZvdGVJbmZvQXJyYXkABAkApAMBCQBlAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABQkBBXZhbHVlAQkAtgkBCQCRAwIFEXVzZXJWb3RlSW5mb0FycmF5AAIJAJEDAgUNdm90ZUluZm9BcnJheQAGCQELU3RyaW5nRW50cnkCCQEPa2V5UHJvcG9zYWxJbmZvAQUNcHJvcG9zYWxJbmRleAkBEmZvcm1hdFByb3Bvc2FsSW5mbwYJAJEDAgUNdm90ZUluZm9BcnJheQABCQCRAwIFDXZvdGVJbmZvQXJyYXkAAgkAkQMCBQ12b3RlSW5mb0FycmF5AAMJAJEDAgUNdm90ZUluZm9BcnJheQAECQCRAwIFDXZvdGVJbmZvQXJyYXkABQkApAMBCQBlAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABgkBBXZhbHVlAQkAtgkBCQCRAwIFEXVzZXJWb3RlSW5mb0FycmF5AAIJAMwIAgUGYWN0aW9uCQDMCAIJAQtEZWxldGVFbnRyeQEJARVrZXlVc2VyVm90ZU9uUHJvcG9zYWwCBQ1wcm9wb3NhbEluZGV4CQClCAEIBQFpBmNhbGxlcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmNoYW5nZVZvdGUCDXByb3Bvc2FsSW5kZXgGY2hvaWNlBAVFTVBUWQIFRU1QVFkECHZvdGVJbmZvCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4BQVFTVBUWQQNdm90ZUluZm9BcnJheQkAtQkCBQh2b3RlSW5mbwUDU0VQBAx1c2VyVm90ZUluZm8JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBFWtleVVzZXJWb3RlT25Qcm9wb3NhbAIFDXByb3Bvc2FsSW5kZXgJAKUIAQgFAWkGY2FsbGVyBQVFTVBUWQQRdXNlclZvdGVJbmZvQXJyYXkJALUJAgUMdXNlclZvdGVJbmZvBQNTRVAEBmNoZWNrcwkAzAgCAwkBAiE9AgUIdm90ZUluZm8FBUVNUFRZBgkAAgECDE5vIHN1Y2ggdm90ZQkAzAgCAwkAZgIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAMIBQlsYXN0QmxvY2sGaGVpZ2h0BgkBEGJsb2NrSGVpZ2h0RXJyb3IACQDMCAIDCQECIT0CBQx1c2VyVm90ZUluZm8FBUVNUFRZBgkBC25vVm90ZUVycm9yAAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAlnd3hOdW1iZXIJAQVhc0ludAEJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBEmd3eENvbnRyYWN0QWRkcmVzcwACIGdldFVzZXJHd3hBbW91bnRBdEhlaWdodFJFQURPTkxZCQDMCAIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAMFA25pbAUDbmlsBAskdDA2Njc5NzAxOAMFBmNob2ljZQQJZm9yTnVtYmVyBQlnd3hOdW1iZXIEDWFnYWluc3ROdW1iZXIAAAQNY2hvaWNlSW50ZWdlcgABCQCVCgMFCWZvck51bWJlcgUNYWdhaW5zdE51bWJlcgUNY2hvaWNlSW50ZWdlcgQJZm9yTnVtYmVyAAAEDWFnYWluc3ROdW1iZXIFCWd3eE51bWJlcgQNY2hvaWNlSW50ZWdlcgAACQCVCgMFCWZvck51bWJlcgUNYWdhaW5zdE51bWJlcgUNY2hvaWNlSW50ZWdlcgQMdXNlclBvd2VyRm9yCAULJHQwNjY3OTcwMTgCXzEEEHVzZXJQb3dlckFnYWluc3QIBQskdDA2Njc5NzAxOAJfMgQJY2hvaWNlSW50CAULJHQwNjY3OTcwMTgCXzMEBmFjdGlvbgMJAAACCQCRAwIFEXVzZXJWb3RlSW5mb0FycmF5AAECATEJAQtTdHJpbmdFbnRyeQIJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4CQESZm9ybWF0UHJvcG9zYWxJbmZvBgkAkQMCBQ12b3RlSW5mb0FycmF5AAEJAJEDAgUNdm90ZUluZm9BcnJheQACCQCRAwIFDXZvdGVJbmZvQXJyYXkAAwkAkQMCBQ12b3RlSW5mb0FycmF5AAQJAKQDAQkAZAIJAGUCCQEFdmFsdWUBCQC2CQEJAJEDAgUNdm90ZUluZm9BcnJheQAFCQEFdmFsdWUBCQC2CQEJAJEDAgURdXNlclZvdGVJbmZvQXJyYXkAAgUMdXNlclBvd2VyRm9yCQCkAwEJAGQCCQEFdmFsdWUBCQC2CQEJAJEDAgUNdm90ZUluZm9BcnJheQAGBRB1c2VyUG93ZXJBZ2FpbnN0CQELU3RyaW5nRW50cnkCCQEPa2V5UHJvcG9zYWxJbmZvAQUNcHJvcG9zYWxJbmRleAkBEmZvcm1hdFByb3Bvc2FsSW5mbwYJAJEDAgUNdm90ZUluZm9BcnJheQABCQCRAwIFDXZvdGVJbmZvQXJyYXkAAgkAkQMCBQ12b3RlSW5mb0FycmF5AAMJAJEDAgUNdm90ZUluZm9BcnJheQAECQCkAwEJAGQCCQEFdmFsdWUBCQC2CQEJAJEDAgUNdm90ZUluZm9BcnJheQAFBQx1c2VyUG93ZXJGb3IJAKQDAQkAZAIJAGUCCQEFdmFsdWUBCQC2CQEJAJEDAgUNdm90ZUluZm9BcnJheQAGCQEFdmFsdWUBCQC2CQEJAJEDAgURdXNlclZvdGVJbmZvQXJyYXkAAgUQdXNlclBvd2VyQWdhaW5zdAkAzAgCBQZhY3Rpb24JAMwIAgkBC1N0cmluZ0VudHJ5AgkBFWtleVVzZXJWb3RlT25Qcm9wb3NhbAIFDXByb3Bvc2FsSW5kZXgJAKUIAQgFAWkGY2FsbGVyCQEYZm9ybWF0VXNlclZvdGVPblByb3Bvc2FsAgkApAMBBQljaG9pY2VJbnQJAKQDAQUJZ3d4TnVtYmVyBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERZ2V0UmVzdWx0UkVBRE9OTFkBDXByb3Bvc2FsSW5kZXgEBUVNUFRZAgVFTVBUWQQIdm90ZUluZm8JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBD2tleVByb3Bvc2FsSW5mbwEFDXByb3Bvc2FsSW5kZXgFBUVNUFRZBA12b3RlSW5mb0FycmF5CQC1CQIFCHZvdGVJbmZvBQNTRVAEBmNoZWNrcwkAzAgCAwkBAiE9AgUIdm90ZUluZm8FBUVNUFRZBgkAAgECDE5vIHN1Y2ggdm90ZQUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBA1wb3NpdGl2ZVZvdGVzCQCRAwIFDXZvdGVJbmZvQXJyYXkABQQNbmVnYXRpdmVWb3RlcwkAkQMCBQ12b3RlSW5mb0FycmF5AAYEDHF1b3J1bU51bWJlcgkAkQMCBQ12b3RlSW5mb0FycmF5AAQJAJQKAgUDbmlsCQDMCAIFDXBvc2l0aXZlVm90ZXMJAMwIAgUNbmVnYXRpdmVWb3RlcwkAzAgCBQxxdW9ydW1OdW1iZXIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAED3RhcmdldFB1YmxpY0tleQQHJG1hdGNoMAkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwBQJwawMJAAECBQckbWF0Y2gwAgRVbml0CAUCdHgPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFD3RhcmdldFB1YmxpY0tleYL/LUg=", "height": 2562877, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BA7QN2LpqHDSnim8ajvmJJpn55p48voyBwFSvWLY7ZwB Next: none Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
6-func b () = "%s__managerPublicpKey"
6+func b () = throw("The block's height is too big for this proposal")
77
88
9-func c () = "%s__pendingManagerPublicKey"
9+func c () = throw("You have already voted")
1010
1111
12-func d () = throw("The block's height is too big for this proposal")
12+func d () = throw("You have not already voted")
1313
1414
15-func e () = throw("You have already voted")
15+func e () = makeString(["%s", "gwxContractAddress"], a)
1616
1717
18-func f () = throw("You have not already voted")
18+func f () = makeString(["%s", "currentIndex"], a)
1919
2020
21-func g () = makeString(["%s", "gwxContractAddress"], a)
21+func g (h) = makeString(["%s%d", "proposalInfo", toString(h)], a)
2222
2323
24-func h () = makeString(["%s", "currentIndex"], a)
24+func i (h,j) = makeString(["%s%d%s", "userVoteOnProposal", toString(h), j], a)
2525
2626
27-func i (j) = makeString(["%s%d", "proposalInfo", toString(j)], a)
27+func k () = "%s__managerPublicKey"
2828
2929
30-func k (j,l) = makeString(["%s%d%s", "userVoteOnProposal", toString(j), l], a)
30+func l () = "%s__managerVaultAddress"
3131
3232
33-func m () = getIntegerValue(this, h())
33+func m () = getIntegerValue(this, f())
3434
3535
36-func n (o,p,q,r,s,t) = makeString(["%d%d%d%d%d%d", o, p, q, r, s, t], a)
36+func n () = addressFromStringValue(getStringValue(l()))
3737
3838
39-func u (v,w) = makeString(["%d%d", v, w], a)
39+func o (p,q,r,s,t,u) = makeString(["%d%d%d%d%d%d", p, q, r, s, t, u], a)
4040
4141
42-func x (y) = {
43- let z = y
44- if ($isInstanceOf(z, "Int"))
42+func v (w,x) = makeString(["%d%d", w, x], a)
43+
44+
45+func y (z) = {
46+ let A = z
47+ if ($isInstanceOf(A, "Int"))
4548 then {
46- let A = z
47- A
49+ let B = A
50+ B
4851 }
4952 else throw("fail to cast into Int")
5053 }
5154
5255
53-func B () = {
54- let z = getString(b())
55- if ($isInstanceOf(z, "String"))
56+func C () = {
57+ let D = n()
58+ let A = getString(D, k())
59+ if ($isInstanceOf(A, "String"))
5660 then {
57- let C = z
58- fromBase58String(C)
61+ let E = A
62+ fromBase58String(E)
5963 }
60- else if ($isInstanceOf(z, "Unit"))
64+ else if ($isInstanceOf(A, "Unit"))
6165 then unit
6266 else throw("Match error")
6367 }
6468
6569
66-func D () = {
67- let z = getString(c())
68- if ($isInstanceOf(z, "String"))
70+func F (G) = {
71+ let A = C()
72+ if ($isInstanceOf(A, "ByteVector"))
6973 then {
70- let C = z
71- fromBase58String(C)
74+ let H = A
75+ (G.callerPublicKey == H)
7276 }
73- else if ($isInstanceOf(z, "Unit"))
74- then unit
77+ else if ($isInstanceOf(A, "Unit"))
78+ then (G.caller == this)
7579 else throw("Match error")
7680 }
7781
7882
79-func E (F) = {
80- let z = B()
81- if ($isInstanceOf(z, "ByteVector"))
82- then {
83- let G = z
84- (F.callerPublicKey == G)
85- }
86- else if ($isInstanceOf(z, "Unit"))
87- then (F.caller == this)
88- else throw("Match error")
89- }
90-
91-
92-func H (F) = if (E(F))
83+func I (G) = if (F(G))
9384 then true
9485 else throw("permission denied")
9586
9687
97-@Callable(F)
98-func startNewVote (o,p,I,r) = {
99- let J = [H(F)]
100- if ((J == J))
88+@Callable(G)
89+func startNewVote (p,q,J,s) = {
90+ let K = [I(G)]
91+ if ((K == K))
10192 then {
102- let K = m()
103-[IntegerEntry(h(), (K + 1)), StringEntry(i(K), n(o, p, toString((lastBlock.height + I)), toString(r), "0", "0"))]
93+ let L = m()
94+[IntegerEntry(f(), (L + 1)), StringEntry(g(L), o(p, q, toString((lastBlock.height + J)), toString(s), "0", "0"))]
10495 }
10596 else throw("Strict value is not equal to itself.")
10697 }
10798
10899
109100
110-@Callable(F)
111-func voteFor (L,M) = {
112- let N = "EMPTY"
113- let O = valueOrElse(getString(this, i(L)), N)
114- let P = split(O, a)
115- let Q = valueOrElse(getString(this, k(L, toString(F.caller))), N)
116- let J = [if ((O != N))
101+@Callable(G)
102+func voteFor (M,N) = {
103+ let O = "EMPTY"
104+ let P = valueOrElse(getString(this, g(M)), O)
105+ let Q = split(P, a)
106+ let R = valueOrElse(getString(this, i(M, toString(G.caller))), O)
107+ let K = [if ((P != O))
117108 then true
118- else throw("No such vote"), if ((value(parseInt(P[3])) > lastBlock.height))
109+ else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
119110 then true
120- else d(), if ((Q == N))
111+ else b(), if ((R == O))
121112 then true
122- else e()]
123- if ((J == J))
113+ else c()]
114+ if ((K == K))
124115 then {
125- let w = x(invoke(addressFromStringValue(getStringValue(g())), "getUserGwxAmountAtHeightREADONLY", [toString(F.caller), value(parseInt(P[3]))], nil))
126- let R = if (M)
116+ let x = y(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(Q[3]))], nil))
117+ let S = if (N)
127118 then {
128- let S = StringEntry(i(L), n(P[1], P[2], P[3], P[4], toString((value(parseInt(P[5])) + w)), P[6]))
129- let T = StringEntry(k(L, toString(F.caller)), u("1", toString(w)))
130- $Tuple2(S, T)
119+ let T = StringEntry(g(M), o(Q[1], Q[2], Q[3], Q[4], toString((value(parseInt(Q[5])) + x)), Q[6]))
120+ let U = StringEntry(i(M, toString(G.caller)), v("1", toString(x)))
121+ $Tuple2(T, U)
131122 }
132123 else {
133- let S = StringEntry(i(L), n(P[1], P[2], P[3], P[4], P[5], toString((value(parseInt(P[6])) + w))))
134- let T = StringEntry(k(L, toString(F.caller)), u("0", toString(w)))
135- $Tuple2(S, T)
124+ let T = StringEntry(g(M), o(Q[1], Q[2], Q[3], Q[4], Q[5], toString((value(parseInt(Q[6])) + x))))
125+ let U = StringEntry(i(M, toString(G.caller)), v("0", toString(x)))
126+ $Tuple2(T, U)
136127 }
137- let S = R._1
138- let T = R._2
139-[S, T]
128+ let T = S._1
129+ let U = S._2
130+[T, U]
140131 }
141132 else throw("Strict value is not equal to itself.")
142133 }
143134
144135
145136
146-@Callable(F)
147-func deleteVote (L) = {
148- let N = "EMPTY"
149- let O = valueOrElse(getString(this, i(L)), N)
150- let P = split(O, a)
151- let Q = valueOrElse(getString(this, k(L, toString(F.caller))), N)
152- let U = split(Q, a)
153- let J = [if ((O != N))
137+@Callable(G)
138+func deleteVote (M) = {
139+ let O = "EMPTY"
140+ let P = valueOrElse(getString(this, g(M)), O)
141+ let Q = split(P, a)
142+ let R = valueOrElse(getString(this, i(M, toString(G.caller))), O)
143+ let V = split(R, a)
144+ let K = [if ((P != O))
154145 then true
155- else throw("No such vote"), if ((value(parseInt(P[3])) > lastBlock.height))
146+ else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
156147 then true
157- else d(), if ((Q != N))
148+ else b(), if ((R != O))
158149 then true
159- else f()]
160- if ((J == J))
150+ else d()]
151+ if ((K == K))
161152 then {
162- let V = if ((U[1] == "1"))
163- then StringEntry(i(L), n(P[1], P[2], P[3], P[4], toString((value(parseInt(P[5])) - value(parseInt(U[2])))), P[6]))
164- else StringEntry(i(L), n(P[1], P[2], P[3], P[4], P[5], toString((value(parseInt(P[6])) - value(parseInt(U[2]))))))
165-[V, DeleteEntry(k(L, toString(F.caller)))]
153+ let W = if ((V[1] == "1"))
154+ then StringEntry(g(M), o(Q[1], Q[2], Q[3], Q[4], toString((value(parseInt(Q[5])) - value(parseInt(V[2])))), Q[6]))
155+ else StringEntry(g(M), o(Q[1], Q[2], Q[3], Q[4], Q[5], toString((value(parseInt(Q[6])) - value(parseInt(V[2]))))))
156+[W, DeleteEntry(i(M, toString(G.caller)))]
166157 }
167158 else throw("Strict value is not equal to itself.")
168159 }
169160
170161
171162
172-@Callable(F)
173-func changeVote (L,M) = {
174- let N = "EMPTY"
175- let O = valueOrElse(getString(this, i(L)), N)
176- let P = split(O, a)
177- let Q = valueOrElse(getString(this, k(L, toString(F.caller))), N)
178- let U = split(Q, a)
179- let J = [if ((O != N))
163+@Callable(G)
164+func changeVote (M,N) = {
165+ let O = "EMPTY"
166+ let P = valueOrElse(getString(this, g(M)), O)
167+ let Q = split(P, a)
168+ let R = valueOrElse(getString(this, i(M, toString(G.caller))), O)
169+ let V = split(R, a)
170+ let K = [if ((P != O))
180171 then true
181- else throw("No such vote"), if ((value(parseInt(P[3])) > lastBlock.height))
172+ else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
182173 then true
183- else d(), if ((Q != N))
174+ else b(), if ((R != O))
184175 then true
185- else f()]
186- if ((J == J))
176+ else d()]
177+ if ((K == K))
187178 then {
188- let w = x(invoke(addressFromStringValue(getStringValue(g())), "getUserGwxAmountAtHeightREADONLY", [toString(F.caller), value(parseInt(P[3]))], nil))
189- let W = if (M)
179+ let x = y(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(Q[3]))], nil))
180+ let X = if (N)
190181 then {
191- let X = w
192- let Y = 0
193- let Z = 1
194- $Tuple3(X, Y, Z)
182+ let Y = x
183+ let Z = 0
184+ let aa = 1
185+ $Tuple3(Y, Z, aa)
195186 }
196187 else {
197- let X = 0
198- let Y = w
199- let Z = 0
200- $Tuple3(X, Y, Z)
188+ let Y = 0
189+ let Z = x
190+ let aa = 0
191+ $Tuple3(Y, Z, aa)
201192 }
202- let aa = W._1
203- let ab = W._2
204- let ac = W._3
205- let V = if ((U[1] == "1"))
206- then StringEntry(i(L), n(P[1], P[2], P[3], P[4], toString(((value(parseInt(P[5])) - value(parseInt(U[2]))) + aa)), toString((value(parseInt(P[6])) + ab))))
207- else StringEntry(i(L), n(P[1], P[2], P[3], P[4], toString((value(parseInt(P[5])) + aa)), toString(((value(parseInt(P[6])) - value(parseInt(U[2]))) + ab))))
208-[V, StringEntry(k(L, toString(F.caller)), u(toString(ac), toString(w)))]
193+ let ab = X._1
194+ let ac = X._2
195+ let ad = X._3
196+ let W = if ((V[1] == "1"))
197+ then StringEntry(g(M), o(Q[1], Q[2], Q[3], Q[4], toString(((value(parseInt(Q[5])) - value(parseInt(V[2]))) + ab)), toString((value(parseInt(Q[6])) + ac))))
198+ else StringEntry(g(M), o(Q[1], Q[2], Q[3], Q[4], toString((value(parseInt(Q[5])) + ab)), toString(((value(parseInt(Q[6])) - value(parseInt(V[2]))) + ac))))
199+[W, StringEntry(i(M, toString(G.caller)), v(toString(ad), toString(x)))]
209200 }
210201 else throw("Strict value is not equal to itself.")
211202 }
212203
213204
214205
215-@Callable(F)
216-func getResultREADONLY (L) = {
217- let N = "EMPTY"
218- let O = valueOrElse(getString(this, i(L)), N)
219- let P = split(O, a)
220- let J = [if ((O != N))
206+@Callable(G)
207+func getResultREADONLY (M) = {
208+ let O = "EMPTY"
209+ let P = valueOrElse(getString(this, g(M)), O)
210+ let Q = split(P, a)
211+ let K = [if ((P != O))
221212 then true
222213 else throw("No such vote")]
223- if ((J == J))
214+ if ((K == K))
224215 then {
225- let s = P[5]
226- let t = P[6]
227- let r = P[4]
228- $Tuple2(nil, [s, t, r])
216+ let t = Q[5]
217+ let u = Q[6]
218+ let s = Q[4]
219+ $Tuple2(nil, [t, u, s])
229220 }
230221 else throw("Strict value is not equal to itself.")
231222 }
232223
233224
234-
235-@Callable(F)
236-func setManager (ad) = {
237- let ae = H(F)
238- if ((ae == ae))
239- then {
240- let af = fromBase58String(ad)
241- if ((af == af))
242- then [StringEntry(c(), ad)]
243- else throw("Strict value is not equal to itself.")
244- }
245- else throw("Strict value is not equal to itself.")
246- }
247-
248-
249-
250-@Callable(F)
251-func confirmManager () = {
252- let ag = D()
253- let ah = if (isDefined(ag))
254- then true
255- else throw("no pending manager")
256- if ((ah == ah))
257- then {
258- let ai = if ((F.callerPublicKey == value(ag)))
259- then true
260- else throw("you are not pending manager")
261- if ((ai == ai))
262- then [StringEntry(b(), toBase58String(value(ag))), DeleteEntry(c())]
263- else throw("Strict value is not equal to itself.")
264- }
265- else throw("Strict value is not equal to itself.")
266- }
267-
268-
269-@Verifier(aj)
270-func ak () = {
271- let al = {
272- let z = B()
273- if ($isInstanceOf(z, "ByteVector"))
225+@Verifier(ae)
226+func af () = {
227+ let ag = {
228+ let A = C()
229+ if ($isInstanceOf(A, "ByteVector"))
274230 then {
275- let G = z
276- G
231+ let H = A
232+ H
277233 }
278- else if ($isInstanceOf(z, "Unit"))
279- then aj.senderPublicKey
234+ else if ($isInstanceOf(A, "Unit"))
235+ then ae.senderPublicKey
280236 else throw("Match error")
281237 }
282- sigVerify(aj.bodyBytes, aj.proofs[0], al)
238+ sigVerify(ae.bodyBytes, ae.proofs[0], ag)
283239 }
284240
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
6-func b () = "%s__managerPublicpKey"
6+func b () = throw("The block's height is too big for this proposal")
77
88
9-func c () = "%s__pendingManagerPublicKey"
9+func c () = throw("You have already voted")
1010
1111
12-func d () = throw("The block's height is too big for this proposal")
12+func d () = throw("You have not already voted")
1313
1414
15-func e () = throw("You have already voted")
15+func e () = makeString(["%s", "gwxContractAddress"], a)
1616
1717
18-func f () = throw("You have not already voted")
18+func f () = makeString(["%s", "currentIndex"], a)
1919
2020
21-func g () = makeString(["%s", "gwxContractAddress"], a)
21+func g (h) = makeString(["%s%d", "proposalInfo", toString(h)], a)
2222
2323
24-func h () = makeString(["%s", "currentIndex"], a)
24+func i (h,j) = makeString(["%s%d%s", "userVoteOnProposal", toString(h), j], a)
2525
2626
27-func i (j) = makeString(["%s%d", "proposalInfo", toString(j)], a)
27+func k () = "%s__managerPublicKey"
2828
2929
30-func k (j,l) = makeString(["%s%d%s", "userVoteOnProposal", toString(j), l], a)
30+func l () = "%s__managerVaultAddress"
3131
3232
33-func m () = getIntegerValue(this, h())
33+func m () = getIntegerValue(this, f())
3434
3535
36-func n (o,p,q,r,s,t) = makeString(["%d%d%d%d%d%d", o, p, q, r, s, t], a)
36+func n () = addressFromStringValue(getStringValue(l()))
3737
3838
39-func u (v,w) = makeString(["%d%d", v, w], a)
39+func o (p,q,r,s,t,u) = makeString(["%d%d%d%d%d%d", p, q, r, s, t, u], a)
4040
4141
42-func x (y) = {
43- let z = y
44- if ($isInstanceOf(z, "Int"))
42+func v (w,x) = makeString(["%d%d", w, x], a)
43+
44+
45+func y (z) = {
46+ let A = z
47+ if ($isInstanceOf(A, "Int"))
4548 then {
46- let A = z
47- A
49+ let B = A
50+ B
4851 }
4952 else throw("fail to cast into Int")
5053 }
5154
5255
53-func B () = {
54- let z = getString(b())
55- if ($isInstanceOf(z, "String"))
56+func C () = {
57+ let D = n()
58+ let A = getString(D, k())
59+ if ($isInstanceOf(A, "String"))
5660 then {
57- let C = z
58- fromBase58String(C)
61+ let E = A
62+ fromBase58String(E)
5963 }
60- else if ($isInstanceOf(z, "Unit"))
64+ else if ($isInstanceOf(A, "Unit"))
6165 then unit
6266 else throw("Match error")
6367 }
6468
6569
66-func D () = {
67- let z = getString(c())
68- if ($isInstanceOf(z, "String"))
70+func F (G) = {
71+ let A = C()
72+ if ($isInstanceOf(A, "ByteVector"))
6973 then {
70- let C = z
71- fromBase58String(C)
74+ let H = A
75+ (G.callerPublicKey == H)
7276 }
73- else if ($isInstanceOf(z, "Unit"))
74- then unit
77+ else if ($isInstanceOf(A, "Unit"))
78+ then (G.caller == this)
7579 else throw("Match error")
7680 }
7781
7882
79-func E (F) = {
80- let z = B()
81- if ($isInstanceOf(z, "ByteVector"))
82- then {
83- let G = z
84- (F.callerPublicKey == G)
85- }
86- else if ($isInstanceOf(z, "Unit"))
87- then (F.caller == this)
88- else throw("Match error")
89- }
90-
91-
92-func H (F) = if (E(F))
83+func I (G) = if (F(G))
9384 then true
9485 else throw("permission denied")
9586
9687
97-@Callable(F)
98-func startNewVote (o,p,I,r) = {
99- let J = [H(F)]
100- if ((J == J))
88+@Callable(G)
89+func startNewVote (p,q,J,s) = {
90+ let K = [I(G)]
91+ if ((K == K))
10192 then {
102- let K = m()
103-[IntegerEntry(h(), (K + 1)), StringEntry(i(K), n(o, p, toString((lastBlock.height + I)), toString(r), "0", "0"))]
93+ let L = m()
94+[IntegerEntry(f(), (L + 1)), StringEntry(g(L), o(p, q, toString((lastBlock.height + J)), toString(s), "0", "0"))]
10495 }
10596 else throw("Strict value is not equal to itself.")
10697 }
10798
10899
109100
110-@Callable(F)
111-func voteFor (L,M) = {
112- let N = "EMPTY"
113- let O = valueOrElse(getString(this, i(L)), N)
114- let P = split(O, a)
115- let Q = valueOrElse(getString(this, k(L, toString(F.caller))), N)
116- let J = [if ((O != N))
101+@Callable(G)
102+func voteFor (M,N) = {
103+ let O = "EMPTY"
104+ let P = valueOrElse(getString(this, g(M)), O)
105+ let Q = split(P, a)
106+ let R = valueOrElse(getString(this, i(M, toString(G.caller))), O)
107+ let K = [if ((P != O))
117108 then true
118- else throw("No such vote"), if ((value(parseInt(P[3])) > lastBlock.height))
109+ else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
119110 then true
120- else d(), if ((Q == N))
111+ else b(), if ((R == O))
121112 then true
122- else e()]
123- if ((J == J))
113+ else c()]
114+ if ((K == K))
124115 then {
125- let w = x(invoke(addressFromStringValue(getStringValue(g())), "getUserGwxAmountAtHeightREADONLY", [toString(F.caller), value(parseInt(P[3]))], nil))
126- let R = if (M)
116+ let x = y(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(Q[3]))], nil))
117+ let S = if (N)
127118 then {
128- let S = StringEntry(i(L), n(P[1], P[2], P[3], P[4], toString((value(parseInt(P[5])) + w)), P[6]))
129- let T = StringEntry(k(L, toString(F.caller)), u("1", toString(w)))
130- $Tuple2(S, T)
119+ let T = StringEntry(g(M), o(Q[1], Q[2], Q[3], Q[4], toString((value(parseInt(Q[5])) + x)), Q[6]))
120+ let U = StringEntry(i(M, toString(G.caller)), v("1", toString(x)))
121+ $Tuple2(T, U)
131122 }
132123 else {
133- let S = StringEntry(i(L), n(P[1], P[2], P[3], P[4], P[5], toString((value(parseInt(P[6])) + w))))
134- let T = StringEntry(k(L, toString(F.caller)), u("0", toString(w)))
135- $Tuple2(S, T)
124+ let T = StringEntry(g(M), o(Q[1], Q[2], Q[3], Q[4], Q[5], toString((value(parseInt(Q[6])) + x))))
125+ let U = StringEntry(i(M, toString(G.caller)), v("0", toString(x)))
126+ $Tuple2(T, U)
136127 }
137- let S = R._1
138- let T = R._2
139-[S, T]
128+ let T = S._1
129+ let U = S._2
130+[T, U]
140131 }
141132 else throw("Strict value is not equal to itself.")
142133 }
143134
144135
145136
146-@Callable(F)
147-func deleteVote (L) = {
148- let N = "EMPTY"
149- let O = valueOrElse(getString(this, i(L)), N)
150- let P = split(O, a)
151- let Q = valueOrElse(getString(this, k(L, toString(F.caller))), N)
152- let U = split(Q, a)
153- let J = [if ((O != N))
137+@Callable(G)
138+func deleteVote (M) = {
139+ let O = "EMPTY"
140+ let P = valueOrElse(getString(this, g(M)), O)
141+ let Q = split(P, a)
142+ let R = valueOrElse(getString(this, i(M, toString(G.caller))), O)
143+ let V = split(R, a)
144+ let K = [if ((P != O))
154145 then true
155- else throw("No such vote"), if ((value(parseInt(P[3])) > lastBlock.height))
146+ else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
156147 then true
157- else d(), if ((Q != N))
148+ else b(), if ((R != O))
158149 then true
159- else f()]
160- if ((J == J))
150+ else d()]
151+ if ((K == K))
161152 then {
162- let V = if ((U[1] == "1"))
163- then StringEntry(i(L), n(P[1], P[2], P[3], P[4], toString((value(parseInt(P[5])) - value(parseInt(U[2])))), P[6]))
164- else StringEntry(i(L), n(P[1], P[2], P[3], P[4], P[5], toString((value(parseInt(P[6])) - value(parseInt(U[2]))))))
165-[V, DeleteEntry(k(L, toString(F.caller)))]
153+ let W = if ((V[1] == "1"))
154+ then StringEntry(g(M), o(Q[1], Q[2], Q[3], Q[4], toString((value(parseInt(Q[5])) - value(parseInt(V[2])))), Q[6]))
155+ else StringEntry(g(M), o(Q[1], Q[2], Q[3], Q[4], Q[5], toString((value(parseInt(Q[6])) - value(parseInt(V[2]))))))
156+[W, DeleteEntry(i(M, toString(G.caller)))]
166157 }
167158 else throw("Strict value is not equal to itself.")
168159 }
169160
170161
171162
172-@Callable(F)
173-func changeVote (L,M) = {
174- let N = "EMPTY"
175- let O = valueOrElse(getString(this, i(L)), N)
176- let P = split(O, a)
177- let Q = valueOrElse(getString(this, k(L, toString(F.caller))), N)
178- let U = split(Q, a)
179- let J = [if ((O != N))
163+@Callable(G)
164+func changeVote (M,N) = {
165+ let O = "EMPTY"
166+ let P = valueOrElse(getString(this, g(M)), O)
167+ let Q = split(P, a)
168+ let R = valueOrElse(getString(this, i(M, toString(G.caller))), O)
169+ let V = split(R, a)
170+ let K = [if ((P != O))
180171 then true
181- else throw("No such vote"), if ((value(parseInt(P[3])) > lastBlock.height))
172+ else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
182173 then true
183- else d(), if ((Q != N))
174+ else b(), if ((R != O))
184175 then true
185- else f()]
186- if ((J == J))
176+ else d()]
177+ if ((K == K))
187178 then {
188- let w = x(invoke(addressFromStringValue(getStringValue(g())), "getUserGwxAmountAtHeightREADONLY", [toString(F.caller), value(parseInt(P[3]))], nil))
189- let W = if (M)
179+ let x = y(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(Q[3]))], nil))
180+ let X = if (N)
190181 then {
191- let X = w
192- let Y = 0
193- let Z = 1
194- $Tuple3(X, Y, Z)
182+ let Y = x
183+ let Z = 0
184+ let aa = 1
185+ $Tuple3(Y, Z, aa)
195186 }
196187 else {
197- let X = 0
198- let Y = w
199- let Z = 0
200- $Tuple3(X, Y, Z)
188+ let Y = 0
189+ let Z = x
190+ let aa = 0
191+ $Tuple3(Y, Z, aa)
201192 }
202- let aa = W._1
203- let ab = W._2
204- let ac = W._3
205- let V = if ((U[1] == "1"))
206- then StringEntry(i(L), n(P[1], P[2], P[3], P[4], toString(((value(parseInt(P[5])) - value(parseInt(U[2]))) + aa)), toString((value(parseInt(P[6])) + ab))))
207- else StringEntry(i(L), n(P[1], P[2], P[3], P[4], toString((value(parseInt(P[5])) + aa)), toString(((value(parseInt(P[6])) - value(parseInt(U[2]))) + ab))))
208-[V, StringEntry(k(L, toString(F.caller)), u(toString(ac), toString(w)))]
193+ let ab = X._1
194+ let ac = X._2
195+ let ad = X._3
196+ let W = if ((V[1] == "1"))
197+ then StringEntry(g(M), o(Q[1], Q[2], Q[3], Q[4], toString(((value(parseInt(Q[5])) - value(parseInt(V[2]))) + ab)), toString((value(parseInt(Q[6])) + ac))))
198+ else StringEntry(g(M), o(Q[1], Q[2], Q[3], Q[4], toString((value(parseInt(Q[5])) + ab)), toString(((value(parseInt(Q[6])) - value(parseInt(V[2]))) + ac))))
199+[W, StringEntry(i(M, toString(G.caller)), v(toString(ad), toString(x)))]
209200 }
210201 else throw("Strict value is not equal to itself.")
211202 }
212203
213204
214205
215-@Callable(F)
216-func getResultREADONLY (L) = {
217- let N = "EMPTY"
218- let O = valueOrElse(getString(this, i(L)), N)
219- let P = split(O, a)
220- let J = [if ((O != N))
206+@Callable(G)
207+func getResultREADONLY (M) = {
208+ let O = "EMPTY"
209+ let P = valueOrElse(getString(this, g(M)), O)
210+ let Q = split(P, a)
211+ let K = [if ((P != O))
221212 then true
222213 else throw("No such vote")]
223- if ((J == J))
214+ if ((K == K))
224215 then {
225- let s = P[5]
226- let t = P[6]
227- let r = P[4]
228- $Tuple2(nil, [s, t, r])
216+ let t = Q[5]
217+ let u = Q[6]
218+ let s = Q[4]
219+ $Tuple2(nil, [t, u, s])
229220 }
230221 else throw("Strict value is not equal to itself.")
231222 }
232223
233224
234-
235-@Callable(F)
236-func setManager (ad) = {
237- let ae = H(F)
238- if ((ae == ae))
239- then {
240- let af = fromBase58String(ad)
241- if ((af == af))
242- then [StringEntry(c(), ad)]
243- else throw("Strict value is not equal to itself.")
244- }
245- else throw("Strict value is not equal to itself.")
246- }
247-
248-
249-
250-@Callable(F)
251-func confirmManager () = {
252- let ag = D()
253- let ah = if (isDefined(ag))
254- then true
255- else throw("no pending manager")
256- if ((ah == ah))
257- then {
258- let ai = if ((F.callerPublicKey == value(ag)))
259- then true
260- else throw("you are not pending manager")
261- if ((ai == ai))
262- then [StringEntry(b(), toBase58String(value(ag))), DeleteEntry(c())]
263- else throw("Strict value is not equal to itself.")
264- }
265- else throw("Strict value is not equal to itself.")
266- }
267-
268-
269-@Verifier(aj)
270-func ak () = {
271- let al = {
272- let z = B()
273- if ($isInstanceOf(z, "ByteVector"))
225+@Verifier(ae)
226+func af () = {
227+ let ag = {
228+ let A = C()
229+ if ($isInstanceOf(A, "ByteVector"))
274230 then {
275- let G = z
276- G
231+ let H = A
232+ H
277233 }
278- else if ($isInstanceOf(z, "Unit"))
279- then aj.senderPublicKey
234+ else if ($isInstanceOf(A, "Unit"))
235+ then ae.senderPublicKey
280236 else throw("Match error")
281237 }
282- sigVerify(aj.bodyBytes, aj.proofs[0], al)
238+ sigVerify(ae.bodyBytes, ae.proofs[0], ag)
283239 }
284240

github/deemru/w8io/169f3d6 
87.06 ms