tx · 2fXW4pocuqYC4MXZpcgPddsiXTUsyXXmivCAur1qf4Xq

3N3vjjwCXWsTfu2w6biwcPhZe3v17HGY3tR:  -0.01300000 Waves

2023.07.26 17:29 [2682952] smart account 3N3vjjwCXWsTfu2w6biwcPhZe3v17HGY3tR > SELF 0.00000000 Waves

{ "type": 13, "id": "2fXW4pocuqYC4MXZpcgPddsiXTUsyXXmivCAur1qf4Xq", "fee": 1300000, "feeAssetId": null, "timestamp": 1690381774099, "version": 2, "chainId": 84, "sender": "3N3vjjwCXWsTfu2w6biwcPhZe3v17HGY3tR", "senderPublicKey": "B2SJ1BXVdLQeEg3kiwBCznf5t6GjLEz81mEWEV3fs2vF", "proofs": [ "3ZfTEUyLViCbzaH8KqPfAQafoYVgJ5Q1T9E5Aij99Y94fpzGr5vT41h15wzunaeGTtXTLwqkJ8dQWUGYoAhNH85U" ], "script": "base64:BgIgCAISBgoECAgBARIECgIBBBIDCgEBEgQKAgEEEgMKAQETAANTRVACAl9fARBibG9ja0hlaWdodEVycm9yAAkAAgECL1RoZSBibG9jaydzIGhlaWdodCBpcyB0b28gYmlnIGZvciB0aGlzIHByb3Bvc2FsARBhbHJlYWR5Vm90ZUVycm9yAAkAAgECFllvdSBoYXZlIGFscmVhZHkgdm90ZWQBC25vVm90ZUVycm9yAAkAAgECGllvdSBoYXZlIG5vdCBhbHJlYWR5IHZvdGVkARJnd3hDb250cmFjdEFkZHJlc3MACQC5CQIJAMwIAgICJXMJAMwIAgISZ3d4Q29udHJhY3RBZGRyZXNzBQNuaWwFA1NFUAEPa2V5Q3VycmVudEluZGV4AAkAuQkCCQDMCAICAiVzCQDMCAICDGN1cnJlbnRJbmRleAUDbmlsBQNTRVABD2tleVByb3Bvc2FsSW5mbwEGbnVtYmVyCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgxwcm9wb3NhbEluZm8JAMwIAgkApAMBBQZudW1iZXIFA25pbAUDU0VQARZrZXlQcm9wb3NhbERlc2NyaXB0aW9uAQZudW1iZXIJALkJAgkAzAgCAgQlcyVkCQDMCAICE3Byb3Bvc2FsRGVzY3JpcHRpb24JAMwIAgkApAMBBQZudW1iZXIFA25pbAUDU0VQARVrZXlVc2VyVm90ZU9uUHJvcG9zYWwCBm51bWJlcgR1c2VyCQC5CQIJAMwIAgIGJXMlZCVzCQDMCAICEnVzZXJWb3RlT25Qcm9wb3NhbAkAzAgCCQCkAwEFBm51bWJlcgkAzAgCBQR1c2VyBQNuaWwFA1NFUAETa2V5TWFuYWdlclB1YmxpY0tleQACFCVzX19tYW5hZ2VyUHVibGljS2V5ARZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBD2dldEN1cnJlbnRJbmRleAAJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAQ9rZXlDdXJyZW50SW5kZXgAARxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzAAQHJG1hdGNoMAkAoggBCQEWa2V5TWFuYWdlclZhdWx0QWRkcmVzcwADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFzBQR0aGlzARJmb3JtYXRQcm9wb3NhbEluZm8FBG5hbWUDZW5kDHF1b3J1bU51bWJlcg1wb3NpdGl2ZVZvdGVzDW5lZ2F0aXZlVm90ZXMJALkJAgkAzAgCAgolZCVkJWQlZCVkCQDMCAIFBG5hbWUJAMwIAgUDZW5kCQDMCAIFDHF1b3J1bU51bWJlcgkAzAgCBQ1wb3NpdGl2ZVZvdGVzCQDMCAIFDW5lZ2F0aXZlVm90ZXMFA25pbAUDU0VQARhmb3JtYXRVc2VyVm90ZU9uUHJvcG9zYWwCBHZvdGUJZ3d4TnVtYmVyCQC5CQIJAMwIAgIEJWQlZAkAzAgCBQR2b3RlCQDMCAIFCWd3eE51bWJlcgUDbmlsBQNTRVABBWFzSW50AQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgNJbnQEBnZhbEludAUHJG1hdGNoMAUGdmFsSW50CQACAQIVZmFpbCB0byBjYXN0IGludG8gSW50ARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAQTbWFuYWdlclZhdWx0QWRkcmVzcwkBHGdldE1hbmFnZXJWYXVsdEFkZHJlc3NPclRoaXMABAckbWF0Y2gwCQCdCAIFE21hbmFnZXJWYXVsdEFkZHJlc3MJARNrZXlNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBCWlzTWFuYWdlcgEBaQQHJG1hdGNoMAkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawMJAAECBQckbWF0Y2gwAgRVbml0CQAAAggFAWkGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBC211c3RNYW5hZ2VyAQFpAwkBCWlzTWFuYWdlcgEFAWkGCQACAQIRcGVybWlzc2lvbiBkZW5pZWQFAWkBDHN0YXJ0TmV3Vm90ZQQEbmFtZQtkZXNjcmlwdGlvbhBleHBpcmF0aW9uSGVpZ2h0DHF1b3J1bU51bWJlcgQGY2hlY2tzCQDMCAIJAQttdXN0TWFuYWdlcgEFAWkFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQIdGhlSW5kZXgJAQ9nZXRDdXJyZW50SW5kZXgACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5Q3VycmVudEluZGV4AAkAZAIFCHRoZUluZGV4AAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVByb3Bvc2FsSW5mbwEFCHRoZUluZGV4CQESZm9ybWF0UHJvcG9zYWxJbmZvBQUEbmFtZQkApAMBCQBkAggFCWxhc3RCbG9jawZoZWlnaHQFEGV4cGlyYXRpb25IZWlnaHQJAKQDAQUMcXVvcnVtTnVtYmVyAgEwAgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJARZrZXlQcm9wb3NhbERlc2NyaXB0aW9uAQUIdGhlSW5kZXgFC2Rlc2NyaXB0aW9uBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHdm90ZUZvcgINcHJvcG9zYWxJbmRleAZjaG9pY2UEBUVNUFRZAgVFTVBUWQQIdm90ZUluZm8JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBD2tleVByb3Bvc2FsSW5mbwEFDXByb3Bvc2FsSW5kZXgFBUVNUFRZBA12b3RlSW5mb0FycmF5CQC1CQIFCHZvdGVJbmZvBQNTRVAEDHVzZXJWb3RlSW5mbwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEVa2V5VXNlclZvdGVPblByb3Bvc2FsAgUNcHJvcG9zYWxJbmRleAkApQgBCAUBaQZjYWxsZXIFBUVNUFRZBAZjaGVja3MJAMwIAgMJAQIhPQIFCHZvdGVJbmZvBQVFTVBUWQYJAAIBAgxObyBzdWNoIHZvdGUJAMwIAgMJAGYCCQEFdmFsdWUBCQC2CQEJAJEDAgUNdm90ZUluZm9BcnJheQACCAUJbGFzdEJsb2NrBmhlaWdodAYJARBibG9ja0hlaWdodEVycm9yAAkAzAgCAwkAAAIFDHVzZXJWb3RlSW5mbwUFRU1QVFkGCQEQYWxyZWFkeVZvdGVFcnJvcgAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQJZ3d4TnVtYmVyCQEFYXNJbnQBCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJARJnd3hDb250cmFjdEFkZHJlc3MAAiBnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHRSRUFET05MWQkAzAgCCQClCAEIBQFpBmNhbGxlcgkAzAgCCQEFdmFsdWUBCQC2CQEJAJEDAgUNdm90ZUluZm9BcnJheQACBQNuaWwFA25pbAQLJHQwMzUxMDQ1NDYDBQZjaG9pY2UEB2FjdGlvbjEJAQtTdHJpbmdFbnRyeQIJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4CQESZm9ybWF0UHJvcG9zYWxJbmZvBQkAkQMCBQ12b3RlSW5mb0FycmF5AAEJAJEDAgUNdm90ZUluZm9BcnJheQACCQCRAwIFDXZvdGVJbmZvQXJyYXkAAwkApAMBCQBkAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABAUJZ3d4TnVtYmVyCQCRAwIFDXZvdGVJbmZvQXJyYXkABQQHYWN0aW9uMgkBC1N0cmluZ0VudHJ5AgkBFWtleVVzZXJWb3RlT25Qcm9wb3NhbAIFDXByb3Bvc2FsSW5kZXgJAKUIAQgFAWkGY2FsbGVyCQEYZm9ybWF0VXNlclZvdGVPblByb3Bvc2FsAgIBMQkApAMBBQlnd3hOdW1iZXIJAJQKAgUHYWN0aW9uMQUHYWN0aW9uMgQHYWN0aW9uMQkBC1N0cmluZ0VudHJ5AgkBD2tleVByb3Bvc2FsSW5mbwEFDXByb3Bvc2FsSW5kZXgJARJmb3JtYXRQcm9wb3NhbEluZm8FCQCRAwIFDXZvdGVJbmZvQXJyYXkAAQkAkQMCBQ12b3RlSW5mb0FycmF5AAIJAJEDAgUNdm90ZUluZm9BcnJheQADCQCRAwIFDXZvdGVJbmZvQXJyYXkABAkApAMBCQBkAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABQUJZ3d4TnVtYmVyBAdhY3Rpb24yCQELU3RyaW5nRW50cnkCCQEVa2V5VXNlclZvdGVPblByb3Bvc2FsAgUNcHJvcG9zYWxJbmRleAkApQgBCAUBaQZjYWxsZXIJARhmb3JtYXRVc2VyVm90ZU9uUHJvcG9zYWwCAgEwCQCkAwEFCWd3eE51bWJlcgkAlAoCBQdhY3Rpb24xBQdhY3Rpb24yBAdhY3Rpb24xCAULJHQwMzUxMDQ1NDYCXzEEB2FjdGlvbjIIBQskdDAzNTEwNDU0NgJfMgkAzAgCBQdhY3Rpb24xCQDMCAIFB2FjdGlvbjIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpkZWxldGVWb3RlAQ1wcm9wb3NhbEluZGV4BAVFTVBUWQIFRU1QVFkECHZvdGVJbmZvCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4BQVFTVBUWQQNdm90ZUluZm9BcnJheQkAtQkCBQh2b3RlSW5mbwUDU0VQBAx1c2VyVm90ZUluZm8JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBFWtleVVzZXJWb3RlT25Qcm9wb3NhbAIFDXByb3Bvc2FsSW5kZXgJAKUIAQgFAWkGY2FsbGVyBQVFTVBUWQQRdXNlclZvdGVJbmZvQXJyYXkJALUJAgUMdXNlclZvdGVJbmZvBQNTRVAEBmNoZWNrcwkAzAgCAwkBAiE9AgUIdm90ZUluZm8FBUVNUFRZBgkAAgECDE5vIHN1Y2ggdm90ZQkAzAgCAwkAZgIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAIIBQlsYXN0QmxvY2sGaGVpZ2h0BgkBEGJsb2NrSGVpZ2h0RXJyb3IACQDMCAIDCQECIT0CBQx1c2VyVm90ZUluZm8FBUVNUFRZBgkBC25vVm90ZUVycm9yAAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAZhY3Rpb24DCQAAAgkAkQMCBRF1c2VyVm90ZUluZm9BcnJheQABAgExCQELU3RyaW5nRW50cnkCCQEPa2V5UHJvcG9zYWxJbmZvAQUNcHJvcG9zYWxJbmRleAkBEmZvcm1hdFByb3Bvc2FsSW5mbwUJAJEDAgUNdm90ZUluZm9BcnJheQABCQCRAwIFDXZvdGVJbmZvQXJyYXkAAgkAkQMCBQ12b3RlSW5mb0FycmF5AAMJAKQDAQkAZQIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAQJAQV2YWx1ZQEJALYJAQkAkQMCBRF1c2VyVm90ZUluZm9BcnJheQACCQCRAwIFDXZvdGVJbmZvQXJyYXkABQkBC1N0cmluZ0VudHJ5AgkBD2tleVByb3Bvc2FsSW5mbwEFDXByb3Bvc2FsSW5kZXgJARJmb3JtYXRQcm9wb3NhbEluZm8FCQCRAwIFDXZvdGVJbmZvQXJyYXkAAQkAkQMCBQ12b3RlSW5mb0FycmF5AAIJAJEDAgUNdm90ZUluZm9BcnJheQADCQCRAwIFDXZvdGVJbmZvQXJyYXkABAkApAMBCQBlAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABQkBBXZhbHVlAQkAtgkBCQCRAwIFEXVzZXJWb3RlSW5mb0FycmF5AAIJAMwIAgUGYWN0aW9uCQDMCAIJAQtEZWxldGVFbnRyeQEJARVrZXlVc2VyVm90ZU9uUHJvcG9zYWwCBQ1wcm9wb3NhbEluZGV4CQClCAEIBQFpBmNhbGxlcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmNoYW5nZVZvdGUCDXByb3Bvc2FsSW5kZXgGY2hvaWNlBAVFTVBUWQIFRU1QVFkECHZvdGVJbmZvCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4BQVFTVBUWQQNdm90ZUluZm9BcnJheQkAtQkCBQh2b3RlSW5mbwUDU0VQBAx1c2VyVm90ZUluZm8JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBFWtleVVzZXJWb3RlT25Qcm9wb3NhbAIFDXByb3Bvc2FsSW5kZXgJAKUIAQgFAWkGY2FsbGVyBQVFTVBUWQQRdXNlclZvdGVJbmZvQXJyYXkJALUJAgUMdXNlclZvdGVJbmZvBQNTRVAEBmNoZWNrcwkAzAgCAwkBAiE9AgUIdm90ZUluZm8FBUVNUFRZBgkAAgECDE5vIHN1Y2ggdm90ZQkAzAgCAwkAZgIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAIIBQlsYXN0QmxvY2sGaGVpZ2h0BgkBEGJsb2NrSGVpZ2h0RXJyb3IACQDMCAIDCQECIT0CBQx1c2VyVm90ZUluZm8FBUVNUFRZBgkBC25vVm90ZUVycm9yAAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAlnd3hOdW1iZXIJAQVhc0ludAEJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBEmd3eENvbnRyYWN0QWRkcmVzcwACIGdldFVzZXJHd3hBbW91bnRBdEhlaWdodFJFQURPTkxZCQDMCAIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAMFA25pbAUDbmlsBAskdDA2NzE0NzA1MwMFBmNob2ljZQQJZm9yTnVtYmVyBQlnd3hOdW1iZXIEDWFnYWluc3ROdW1iZXIAAAQNY2hvaWNlSW50ZWdlcgABCQCVCgMFCWZvck51bWJlcgUNYWdhaW5zdE51bWJlcgUNY2hvaWNlSW50ZWdlcgQJZm9yTnVtYmVyAAAEDWFnYWluc3ROdW1iZXIFCWd3eE51bWJlcgQNY2hvaWNlSW50ZWdlcgAACQCVCgMFCWZvck51bWJlcgUNYWdhaW5zdE51bWJlcgUNY2hvaWNlSW50ZWdlcgQMdXNlclBvd2VyRm9yCAULJHQwNjcxNDcwNTMCXzEEEHVzZXJQb3dlckFnYWluc3QIBQskdDA2NzE0NzA1MwJfMgQJY2hvaWNlSW50CAULJHQwNjcxNDcwNTMCXzMEBmFjdGlvbgMJAAACCQCRAwIFEXVzZXJWb3RlSW5mb0FycmF5AAECATEJAQtTdHJpbmdFbnRyeQIJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4CQESZm9ybWF0UHJvcG9zYWxJbmZvBQkAkQMCBQ12b3RlSW5mb0FycmF5AAEJAJEDAgUNdm90ZUluZm9BcnJheQACCQCRAwIFDXZvdGVJbmZvQXJyYXkAAwkApAMBCQBkAgkAZQIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAQJAQV2YWx1ZQEJALYJAQkAkQMCBRF1c2VyVm90ZUluZm9BcnJheQACBQx1c2VyUG93ZXJGb3IJAKQDAQkAZAIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAUFEHVzZXJQb3dlckFnYWluc3QJAQtTdHJpbmdFbnRyeQIJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4CQESZm9ybWF0UHJvcG9zYWxJbmZvBQkAkQMCBQ12b3RlSW5mb0FycmF5AAEJAJEDAgUNdm90ZUluZm9BcnJheQACCQCRAwIFDXZvdGVJbmZvQXJyYXkAAwkApAMBCQBkAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABAUMdXNlclBvd2VyRm9yCQCkAwEJAGQCCQBlAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABQkBBXZhbHVlAQkAtgkBCQCRAwIFEXVzZXJWb3RlSW5mb0FycmF5AAIFEHVzZXJQb3dlckFnYWluc3QJAMwIAgUGYWN0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJARVrZXlVc2VyVm90ZU9uUHJvcG9zYWwCBQ1wcm9wb3NhbEluZGV4CQClCAEIBQFpBmNhbGxlcgkBGGZvcm1hdFVzZXJWb3RlT25Qcm9wb3NhbAIJAKQDAQUJY2hvaWNlSW50CQCkAwEFCWd3eE51bWJlcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEWdldFJlc3VsdFJFQURPTkxZAQ1wcm9wb3NhbEluZGV4BAVFTVBUWQIFRU1QVFkECHZvdGVJbmZvCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4BQVFTVBUWQQNdm90ZUluZm9BcnJheQkAtQkCBQh2b3RlSW5mbwUDU0VQBAZjaGVja3MJAMwIAgMJAQIhPQIFCHZvdGVJbmZvBQVFTVBUWQYJAAIBAgxObyBzdWNoIHZvdGUFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQMcXVvcnVtTnVtYmVyCQCRAwIFDXZvdGVJbmZvQXJyYXkAAwQNcG9zaXRpdmVWb3RlcwkAkQMCBQ12b3RlSW5mb0FycmF5AAQEDW5lZ2F0aXZlVm90ZXMJAJEDAgUNdm90ZUluZm9BcnJheQAFCQCUCgIFA25pbAkAzAgCBQ1wb3NpdGl2ZVZvdGVzCQDMCAIFDW5lZ2F0aXZlVm90ZXMJAMwIAgUMcXVvcnVtTnVtYmVyBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABA90YXJnZXRQdWJsaWNLZXkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAgFAnR4D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQ90YXJnZXRQdWJsaWNLZXlkaMfV", "height": 2682952, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: AWXpGLVBTpVYL7fFxs5F8XsA8zeTMwevVJv2WxLAWLeK Next: 3qhkoEaiB3aA51fvCgGCxggwWAuUyygWyEtZ2XiBp3nF Diff:
OldNewDifferences
2121 func g (h) = makeString(["%s%d", "proposalInfo", toString(h)], a)
2222
2323
24-func i (h,j) = makeString(["%s%d%s", "userVoteOnProposal", toString(h), j], a)
24+func i (h) = makeString(["%s%d", "proposalDescription", toString(h)], a)
2525
2626
27-func k () = "%s__managerPublicKey"
27+func j (h,k) = makeString(["%s%d%s", "userVoteOnProposal", toString(h), k], a)
2828
2929
30-func l () = "%s__managerVaultAddress"
30+func l () = "%s__managerPublicKey"
3131
3232
33-func m () = getIntegerValue(this, f())
33+func m () = "%s__managerVaultAddress"
3434
3535
36-func n () = {
37- let o = getString(l())
38- if ($isInstanceOf(o, "String"))
36+func n () = getIntegerValue(this, f())
37+
38+
39+func o () = {
40+ let p = getString(m())
41+ if ($isInstanceOf(p, "String"))
3942 then {
40- let p = o
41- addressFromStringValue(p)
43+ let q = p
44+ addressFromStringValue(q)
4245 }
4346 else this
4447 }
4548
4649
47-func q (r,s,t,u,v,w) = makeString(["%d%d%d%d%d%d", r, s, t, u, v, w], a)
50+func r (s,t,u,v,w) = makeString(["%d%d%d%d%d", s, t, u, v, w], a)
4851
4952
5053 func x (y,z) = makeString(["%d%d", y, z], a)
5154
5255
5356 func A (B) = {
54- let o = B
55- if ($isInstanceOf(o, "Int"))
57+ let p = B
58+ if ($isInstanceOf(p, "Int"))
5659 then {
57- let C = o
60+ let C = p
5861 C
5962 }
6063 else throw("fail to cast into Int")
6265
6366
6467 func D () = {
65- let E = n()
66- let o = getString(E, k())
67- if ($isInstanceOf(o, "String"))
68+ let E = o()
69+ let p = getString(E, l())
70+ if ($isInstanceOf(p, "String"))
6871 then {
69- let p = o
70- fromBase58String(p)
72+ let q = p
73+ fromBase58String(q)
7174 }
72- else if ($isInstanceOf(o, "Unit"))
75+ else if ($isInstanceOf(p, "Unit"))
7376 then unit
7477 else throw("Match error")
7578 }
7679
7780
7881 func F (G) = {
79- let o = D()
80- if ($isInstanceOf(o, "ByteVector"))
82+ let p = D()
83+ if ($isInstanceOf(p, "ByteVector"))
8184 then {
82- let H = o
85+ let H = p
8386 (G.callerPublicKey == H)
8487 }
85- else if ($isInstanceOf(o, "Unit"))
88+ else if ($isInstanceOf(p, "Unit"))
8689 then (G.caller == this)
8790 else throw("Match error")
8891 }
9497
9598
9699 @Callable(G)
97-func startNewVote (r,s,J,u) = {
98- let K = [I(G)]
99- if ((K == K))
100+func startNewVote (s,J,K,u) = {
101+ let L = [I(G)]
102+ if ((L == L))
100103 then {
101- let L = m()
102-[IntegerEntry(f(), (L + 1)), StringEntry(g(L), q(r, s, toString((lastBlock.height + J)), toString(u), "0", "0"))]
104+ let M = n()
105+[IntegerEntry(f(), (M + 1)), StringEntry(g(M), r(s, toString((lastBlock.height + K)), toString(u), "0", "0")), StringEntry(i(M), J)]
103106 }
104107 else throw("Strict value is not equal to itself.")
105108 }
107110
108111
109112 @Callable(G)
110-func voteFor (M,N) = {
111- let O = "EMPTY"
112- let P = valueOrElse(getString(this, g(M)), O)
113- let Q = split(P, a)
114- let R = valueOrElse(getString(this, i(M, toString(G.caller))), O)
115- let K = [if ((P != O))
113+func voteFor (N,O) = {
114+ let P = "EMPTY"
115+ let Q = valueOrElse(getString(this, g(N)), P)
116+ let R = split(Q, a)
117+ let S = valueOrElse(getString(this, j(N, toString(G.caller))), P)
118+ let L = [if ((Q != P))
116119 then true
117- else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
120+ else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
118121 then true
119- else b(), if ((R == O))
122+ else b(), if ((S == P))
120123 then true
121124 else c()]
122- if ((K == K))
125+ if ((L == L))
123126 then {
124- let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(Q[3]))], nil))
125- let S = if (N)
127+ let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(R[2]))], nil))
128+ let T = if (O)
126129 then {
127- let T = StringEntry(g(M), q(Q[1], Q[2], Q[3], Q[4], toString((value(parseInt(Q[5])) + z)), Q[6]))
128- let U = StringEntry(i(M, toString(G.caller)), x("1", toString(z)))
129- $Tuple2(T, U)
130+ let U = StringEntry(g(N), r(R[1], R[2], R[3], toString((value(parseInt(R[4])) + z)), R[5]))
131+ let V = StringEntry(j(N, toString(G.caller)), x("1", toString(z)))
132+ $Tuple2(U, V)
130133 }
131134 else {
132- let T = StringEntry(g(M), q(Q[1], Q[2], Q[3], Q[4], Q[5], toString((value(parseInt(Q[6])) + z))))
133- let U = StringEntry(i(M, toString(G.caller)), x("0", toString(z)))
134- $Tuple2(T, U)
135+ let U = StringEntry(g(N), r(R[1], R[2], R[3], R[4], toString((value(parseInt(R[5])) + z))))
136+ let V = StringEntry(j(N, toString(G.caller)), x("0", toString(z)))
137+ $Tuple2(U, V)
135138 }
136- let T = S._1
137- let U = S._2
138-[T, U]
139+ let U = T._1
140+ let V = T._2
141+[U, V]
139142 }
140143 else throw("Strict value is not equal to itself.")
141144 }
143146
144147
145148 @Callable(G)
146-func deleteVote (M) = {
147- let O = "EMPTY"
148- let P = valueOrElse(getString(this, g(M)), O)
149- let Q = split(P, a)
150- let R = valueOrElse(getString(this, i(M, toString(G.caller))), O)
151- let V = split(R, a)
152- let K = [if ((P != O))
149+func deleteVote (N) = {
150+ let P = "EMPTY"
151+ let Q = valueOrElse(getString(this, g(N)), P)
152+ let R = split(Q, a)
153+ let S = valueOrElse(getString(this, j(N, toString(G.caller))), P)
154+ let W = split(S, a)
155+ let L = [if ((Q != P))
153156 then true
154- else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
157+ else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
155158 then true
156- else b(), if ((R != O))
159+ else b(), if ((S != P))
157160 then true
158161 else d()]
159- if ((K == K))
162+ if ((L == L))
160163 then {
161- let W = if ((V[1] == "1"))
162- then StringEntry(g(M), q(Q[1], Q[2], Q[3], Q[4], toString((value(parseInt(Q[5])) - value(parseInt(V[2])))), Q[6]))
163- else StringEntry(g(M), q(Q[1], Q[2], Q[3], Q[4], Q[5], toString((value(parseInt(Q[6])) - value(parseInt(V[2]))))))
164-[W, DeleteEntry(i(M, toString(G.caller)))]
164+ let X = if ((W[1] == "1"))
165+ then StringEntry(g(N), r(R[1], R[2], R[3], toString((value(parseInt(R[4])) - value(parseInt(W[2])))), R[5]))
166+ else StringEntry(g(N), r(R[1], R[2], R[3], R[4], toString((value(parseInt(R[5])) - value(parseInt(W[2]))))))
167+[X, DeleteEntry(j(N, toString(G.caller)))]
165168 }
166169 else throw("Strict value is not equal to itself.")
167170 }
169172
170173
171174 @Callable(G)
172-func changeVote (M,N) = {
173- let O = "EMPTY"
174- let P = valueOrElse(getString(this, g(M)), O)
175- let Q = split(P, a)
176- let R = valueOrElse(getString(this, i(M, toString(G.caller))), O)
177- let V = split(R, a)
178- let K = [if ((P != O))
175+func changeVote (N,O) = {
176+ let P = "EMPTY"
177+ let Q = valueOrElse(getString(this, g(N)), P)
178+ let R = split(Q, a)
179+ let S = valueOrElse(getString(this, j(N, toString(G.caller))), P)
180+ let W = split(S, a)
181+ let L = [if ((Q != P))
179182 then true
180- else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
183+ else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
181184 then true
182- else b(), if ((R != O))
185+ else b(), if ((S != P))
183186 then true
184187 else d()]
185- if ((K == K))
188+ if ((L == L))
186189 then {
187- let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(Q[3]))], nil))
188- let X = if (N)
190+ let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(R[3]))], nil))
191+ let Y = if (O)
189192 then {
190- let Y = z
191- let Z = 0
192- let aa = 1
193- $Tuple3(Y, Z, aa)
193+ let Z = z
194+ let aa = 0
195+ let ab = 1
196+ $Tuple3(Z, aa, ab)
194197 }
195198 else {
196- let Y = 0
197- let Z = z
198- let aa = 0
199- $Tuple3(Y, Z, aa)
199+ let Z = 0
200+ let aa = z
201+ let ab = 0
202+ $Tuple3(Z, aa, ab)
200203 }
201- let ab = X._1
202- let ac = X._2
203- let ad = X._3
204- let W = if ((V[1] == "1"))
205- then StringEntry(g(M), q(Q[1], Q[2], Q[3], Q[4], toString(((value(parseInt(Q[5])) - value(parseInt(V[2]))) + ab)), toString((value(parseInt(Q[6])) + ac))))
206- else StringEntry(g(M), q(Q[1], Q[2], Q[3], Q[4], toString((value(parseInt(Q[5])) + ab)), toString(((value(parseInt(Q[6])) - value(parseInt(V[2]))) + ac))))
207-[W, StringEntry(i(M, toString(G.caller)), x(toString(ad), toString(z)))]
204+ let ac = Y._1
205+ let ad = Y._2
206+ let ae = Y._3
207+ let X = if ((W[1] == "1"))
208+ then StringEntry(g(N), r(R[1], R[2], R[3], toString(((value(parseInt(R[4])) - value(parseInt(W[2]))) + ac)), toString((value(parseInt(R[5])) + ad))))
209+ else StringEntry(g(N), r(R[1], R[2], R[3], toString((value(parseInt(R[4])) + ac)), toString(((value(parseInt(R[5])) - value(parseInt(W[2]))) + ad))))
210+[X, StringEntry(j(N, toString(G.caller)), x(toString(ae), toString(z)))]
208211 }
209212 else throw("Strict value is not equal to itself.")
210213 }
212215
213216
214217 @Callable(G)
215-func getResultREADONLY (M) = {
216- let O = "EMPTY"
217- let P = valueOrElse(getString(this, g(M)), O)
218- let Q = split(P, a)
219- let K = [if ((P != O))
218+func getResultREADONLY (N) = {
219+ let P = "EMPTY"
220+ let Q = valueOrElse(getString(this, g(N)), P)
221+ let R = split(Q, a)
222+ let L = [if ((Q != P))
220223 then true
221224 else throw("No such vote")]
222- if ((K == K))
225+ if ((L == L))
223226 then {
224- let v = Q[5]
225- let w = Q[6]
226- let u = Q[4]
227+ let u = R[3]
228+ let v = R[4]
229+ let w = R[5]
227230 $Tuple2(nil, [v, w, u])
228231 }
229232 else throw("Strict value is not equal to itself.")
230233 }
231234
232235
233-@Verifier(ae)
234-func af () = {
235- let ag = {
236- let o = D()
237- if ($isInstanceOf(o, "ByteVector"))
236+@Verifier(af)
237+func ag () = {
238+ let ah = {
239+ let p = D()
240+ if ($isInstanceOf(p, "ByteVector"))
238241 then {
239- let H = o
242+ let H = p
240243 H
241244 }
242- else if ($isInstanceOf(o, "Unit"))
243- then ae.senderPublicKey
245+ else if ($isInstanceOf(p, "Unit"))
246+ then af.senderPublicKey
244247 else throw("Match error")
245248 }
246- sigVerify(ae.bodyBytes, ae.proofs[0], ag)
249+ sigVerify(af.bodyBytes, af.proofs[0], ah)
247250 }
248251
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 func b () = throw("The block's height is too big for this proposal")
77
88
99 func c () = throw("You have already voted")
1010
1111
1212 func d () = throw("You have not already voted")
1313
1414
1515 func e () = makeString(["%s", "gwxContractAddress"], a)
1616
1717
1818 func f () = makeString(["%s", "currentIndex"], a)
1919
2020
2121 func g (h) = makeString(["%s%d", "proposalInfo", toString(h)], a)
2222
2323
24-func i (h,j) = makeString(["%s%d%s", "userVoteOnProposal", toString(h), j], a)
24+func i (h) = makeString(["%s%d", "proposalDescription", toString(h)], a)
2525
2626
27-func k () = "%s__managerPublicKey"
27+func j (h,k) = makeString(["%s%d%s", "userVoteOnProposal", toString(h), k], a)
2828
2929
30-func l () = "%s__managerVaultAddress"
30+func l () = "%s__managerPublicKey"
3131
3232
33-func m () = getIntegerValue(this, f())
33+func m () = "%s__managerVaultAddress"
3434
3535
36-func n () = {
37- let o = getString(l())
38- if ($isInstanceOf(o, "String"))
36+func n () = getIntegerValue(this, f())
37+
38+
39+func o () = {
40+ let p = getString(m())
41+ if ($isInstanceOf(p, "String"))
3942 then {
40- let p = o
41- addressFromStringValue(p)
43+ let q = p
44+ addressFromStringValue(q)
4245 }
4346 else this
4447 }
4548
4649
47-func q (r,s,t,u,v,w) = makeString(["%d%d%d%d%d%d", r, s, t, u, v, w], a)
50+func r (s,t,u,v,w) = makeString(["%d%d%d%d%d", s, t, u, v, w], a)
4851
4952
5053 func x (y,z) = makeString(["%d%d", y, z], a)
5154
5255
5356 func A (B) = {
54- let o = B
55- if ($isInstanceOf(o, "Int"))
57+ let p = B
58+ if ($isInstanceOf(p, "Int"))
5659 then {
57- let C = o
60+ let C = p
5861 C
5962 }
6063 else throw("fail to cast into Int")
6164 }
6265
6366
6467 func D () = {
65- let E = n()
66- let o = getString(E, k())
67- if ($isInstanceOf(o, "String"))
68+ let E = o()
69+ let p = getString(E, l())
70+ if ($isInstanceOf(p, "String"))
6871 then {
69- let p = o
70- fromBase58String(p)
72+ let q = p
73+ fromBase58String(q)
7174 }
72- else if ($isInstanceOf(o, "Unit"))
75+ else if ($isInstanceOf(p, "Unit"))
7376 then unit
7477 else throw("Match error")
7578 }
7679
7780
7881 func F (G) = {
79- let o = D()
80- if ($isInstanceOf(o, "ByteVector"))
82+ let p = D()
83+ if ($isInstanceOf(p, "ByteVector"))
8184 then {
82- let H = o
85+ let H = p
8386 (G.callerPublicKey == H)
8487 }
85- else if ($isInstanceOf(o, "Unit"))
88+ else if ($isInstanceOf(p, "Unit"))
8689 then (G.caller == this)
8790 else throw("Match error")
8891 }
8992
9093
9194 func I (G) = if (F(G))
9295 then true
9396 else throw("permission denied")
9497
9598
9699 @Callable(G)
97-func startNewVote (r,s,J,u) = {
98- let K = [I(G)]
99- if ((K == K))
100+func startNewVote (s,J,K,u) = {
101+ let L = [I(G)]
102+ if ((L == L))
100103 then {
101- let L = m()
102-[IntegerEntry(f(), (L + 1)), StringEntry(g(L), q(r, s, toString((lastBlock.height + J)), toString(u), "0", "0"))]
104+ let M = n()
105+[IntegerEntry(f(), (M + 1)), StringEntry(g(M), r(s, toString((lastBlock.height + K)), toString(u), "0", "0")), StringEntry(i(M), J)]
103106 }
104107 else throw("Strict value is not equal to itself.")
105108 }
106109
107110
108111
109112 @Callable(G)
110-func voteFor (M,N) = {
111- let O = "EMPTY"
112- let P = valueOrElse(getString(this, g(M)), O)
113- let Q = split(P, a)
114- let R = valueOrElse(getString(this, i(M, toString(G.caller))), O)
115- let K = [if ((P != O))
113+func voteFor (N,O) = {
114+ let P = "EMPTY"
115+ let Q = valueOrElse(getString(this, g(N)), P)
116+ let R = split(Q, a)
117+ let S = valueOrElse(getString(this, j(N, toString(G.caller))), P)
118+ let L = [if ((Q != P))
116119 then true
117- else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
120+ else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
118121 then true
119- else b(), if ((R == O))
122+ else b(), if ((S == P))
120123 then true
121124 else c()]
122- if ((K == K))
125+ if ((L == L))
123126 then {
124- let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(Q[3]))], nil))
125- let S = if (N)
127+ let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(R[2]))], nil))
128+ let T = if (O)
126129 then {
127- let T = StringEntry(g(M), q(Q[1], Q[2], Q[3], Q[4], toString((value(parseInt(Q[5])) + z)), Q[6]))
128- let U = StringEntry(i(M, toString(G.caller)), x("1", toString(z)))
129- $Tuple2(T, U)
130+ let U = StringEntry(g(N), r(R[1], R[2], R[3], toString((value(parseInt(R[4])) + z)), R[5]))
131+ let V = StringEntry(j(N, toString(G.caller)), x("1", toString(z)))
132+ $Tuple2(U, V)
130133 }
131134 else {
132- let T = StringEntry(g(M), q(Q[1], Q[2], Q[3], Q[4], Q[5], toString((value(parseInt(Q[6])) + z))))
133- let U = StringEntry(i(M, toString(G.caller)), x("0", toString(z)))
134- $Tuple2(T, U)
135+ let U = StringEntry(g(N), r(R[1], R[2], R[3], R[4], toString((value(parseInt(R[5])) + z))))
136+ let V = StringEntry(j(N, toString(G.caller)), x("0", toString(z)))
137+ $Tuple2(U, V)
135138 }
136- let T = S._1
137- let U = S._2
138-[T, U]
139+ let U = T._1
140+ let V = T._2
141+[U, V]
139142 }
140143 else throw("Strict value is not equal to itself.")
141144 }
142145
143146
144147
145148 @Callable(G)
146-func deleteVote (M) = {
147- let O = "EMPTY"
148- let P = valueOrElse(getString(this, g(M)), O)
149- let Q = split(P, a)
150- let R = valueOrElse(getString(this, i(M, toString(G.caller))), O)
151- let V = split(R, a)
152- let K = [if ((P != O))
149+func deleteVote (N) = {
150+ let P = "EMPTY"
151+ let Q = valueOrElse(getString(this, g(N)), P)
152+ let R = split(Q, a)
153+ let S = valueOrElse(getString(this, j(N, toString(G.caller))), P)
154+ let W = split(S, a)
155+ let L = [if ((Q != P))
153156 then true
154- else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
157+ else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
155158 then true
156- else b(), if ((R != O))
159+ else b(), if ((S != P))
157160 then true
158161 else d()]
159- if ((K == K))
162+ if ((L == L))
160163 then {
161- let W = if ((V[1] == "1"))
162- then StringEntry(g(M), q(Q[1], Q[2], Q[3], Q[4], toString((value(parseInt(Q[5])) - value(parseInt(V[2])))), Q[6]))
163- else StringEntry(g(M), q(Q[1], Q[2], Q[3], Q[4], Q[5], toString((value(parseInt(Q[6])) - value(parseInt(V[2]))))))
164-[W, DeleteEntry(i(M, toString(G.caller)))]
164+ let X = if ((W[1] == "1"))
165+ then StringEntry(g(N), r(R[1], R[2], R[3], toString((value(parseInt(R[4])) - value(parseInt(W[2])))), R[5]))
166+ else StringEntry(g(N), r(R[1], R[2], R[3], R[4], toString((value(parseInt(R[5])) - value(parseInt(W[2]))))))
167+[X, DeleteEntry(j(N, toString(G.caller)))]
165168 }
166169 else throw("Strict value is not equal to itself.")
167170 }
168171
169172
170173
171174 @Callable(G)
172-func changeVote (M,N) = {
173- let O = "EMPTY"
174- let P = valueOrElse(getString(this, g(M)), O)
175- let Q = split(P, a)
176- let R = valueOrElse(getString(this, i(M, toString(G.caller))), O)
177- let V = split(R, a)
178- let K = [if ((P != O))
175+func changeVote (N,O) = {
176+ let P = "EMPTY"
177+ let Q = valueOrElse(getString(this, g(N)), P)
178+ let R = split(Q, a)
179+ let S = valueOrElse(getString(this, j(N, toString(G.caller))), P)
180+ let W = split(S, a)
181+ let L = [if ((Q != P))
179182 then true
180- else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
183+ else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
181184 then true
182- else b(), if ((R != O))
185+ else b(), if ((S != P))
183186 then true
184187 else d()]
185- if ((K == K))
188+ if ((L == L))
186189 then {
187- let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(Q[3]))], nil))
188- let X = if (N)
190+ let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(R[3]))], nil))
191+ let Y = if (O)
189192 then {
190- let Y = z
191- let Z = 0
192- let aa = 1
193- $Tuple3(Y, Z, aa)
193+ let Z = z
194+ let aa = 0
195+ let ab = 1
196+ $Tuple3(Z, aa, ab)
194197 }
195198 else {
196- let Y = 0
197- let Z = z
198- let aa = 0
199- $Tuple3(Y, Z, aa)
199+ let Z = 0
200+ let aa = z
201+ let ab = 0
202+ $Tuple3(Z, aa, ab)
200203 }
201- let ab = X._1
202- let ac = X._2
203- let ad = X._3
204- let W = if ((V[1] == "1"))
205- then StringEntry(g(M), q(Q[1], Q[2], Q[3], Q[4], toString(((value(parseInt(Q[5])) - value(parseInt(V[2]))) + ab)), toString((value(parseInt(Q[6])) + ac))))
206- else StringEntry(g(M), q(Q[1], Q[2], Q[3], Q[4], toString((value(parseInt(Q[5])) + ab)), toString(((value(parseInt(Q[6])) - value(parseInt(V[2]))) + ac))))
207-[W, StringEntry(i(M, toString(G.caller)), x(toString(ad), toString(z)))]
204+ let ac = Y._1
205+ let ad = Y._2
206+ let ae = Y._3
207+ let X = if ((W[1] == "1"))
208+ then StringEntry(g(N), r(R[1], R[2], R[3], toString(((value(parseInt(R[4])) - value(parseInt(W[2]))) + ac)), toString((value(parseInt(R[5])) + ad))))
209+ else StringEntry(g(N), r(R[1], R[2], R[3], toString((value(parseInt(R[4])) + ac)), toString(((value(parseInt(R[5])) - value(parseInt(W[2]))) + ad))))
210+[X, StringEntry(j(N, toString(G.caller)), x(toString(ae), toString(z)))]
208211 }
209212 else throw("Strict value is not equal to itself.")
210213 }
211214
212215
213216
214217 @Callable(G)
215-func getResultREADONLY (M) = {
216- let O = "EMPTY"
217- let P = valueOrElse(getString(this, g(M)), O)
218- let Q = split(P, a)
219- let K = [if ((P != O))
218+func getResultREADONLY (N) = {
219+ let P = "EMPTY"
220+ let Q = valueOrElse(getString(this, g(N)), P)
221+ let R = split(Q, a)
222+ let L = [if ((Q != P))
220223 then true
221224 else throw("No such vote")]
222- if ((K == K))
225+ if ((L == L))
223226 then {
224- let v = Q[5]
225- let w = Q[6]
226- let u = Q[4]
227+ let u = R[3]
228+ let v = R[4]
229+ let w = R[5]
227230 $Tuple2(nil, [v, w, u])
228231 }
229232 else throw("Strict value is not equal to itself.")
230233 }
231234
232235
233-@Verifier(ae)
234-func af () = {
235- let ag = {
236- let o = D()
237- if ($isInstanceOf(o, "ByteVector"))
236+@Verifier(af)
237+func ag () = {
238+ let ah = {
239+ let p = D()
240+ if ($isInstanceOf(p, "ByteVector"))
238241 then {
239- let H = o
242+ let H = p
240243 H
241244 }
242- else if ($isInstanceOf(o, "Unit"))
243- then ae.senderPublicKey
245+ else if ($isInstanceOf(p, "Unit"))
246+ then af.senderPublicKey
244247 else throw("Match error")
245248 }
246- sigVerify(ae.bodyBytes, ae.proofs[0], ag)
249+ sigVerify(af.bodyBytes, af.proofs[0], ah)
247250 }
248251

github/deemru/w8io/c3f4982 
78.73 ms