tx · 3MHCbzwDDBfB2cvFz6vCZNadi35nK7XwwMJj9Usd2MhK

3N3vjjwCXWsTfu2w6biwcPhZe3v17HGY3tR:  -0.01300000 Waves

2023.09.21 14:42 [2765090] smart account 3N3vjjwCXWsTfu2w6biwcPhZe3v17HGY3tR > SELF 0.00000000 Waves

{ "type": 13, "id": "3MHCbzwDDBfB2cvFz6vCZNadi35nK7XwwMJj9Usd2MhK", "fee": 1300000, "feeAssetId": null, "timestamp": 1695296597178, "version": 2, "chainId": 84, "sender": "3N3vjjwCXWsTfu2w6biwcPhZe3v17HGY3tR", "senderPublicKey": "B2SJ1BXVdLQeEg3kiwBCznf5t6GjLEz81mEWEV3fs2vF", "proofs": [ "4NxyZanm26NrcxhZjctUyUpzm6fSrX2uk8HFho1LJcPBkQEzS5MFxwNCwxPR7DJg1Fpxgfv7ucKxm6w4xmzAPLAv" ], "script": "base64:BgIgCAISBgoECAgBARIECgIBBBIDCgEBEgQKAgEEEgMKAQETAANTRVACAl9fARBibG9ja0hlaWdodEVycm9yAAkAAgECL1RoZSBibG9jaydzIGhlaWdodCBpcyB0b28gYmlnIGZvciB0aGlzIHByb3Bvc2FsARBhbHJlYWR5Vm90ZUVycm9yAAkAAgECFllvdSBoYXZlIGFscmVhZHkgdm90ZWQBC25vVm90ZUVycm9yAAkAAgECGllvdSBoYXZlIG5vdCBhbHJlYWR5IHZvdGVkARJnd3hDb250cmFjdEFkZHJlc3MACQC5CQIJAMwIAgICJXMJAMwIAgISZ3d4Q29udHJhY3RBZGRyZXNzBQNuaWwFA1NFUAEPa2V5Q3VycmVudEluZGV4AAkAuQkCCQDMCAICAiVzCQDMCAICDGN1cnJlbnRJbmRleAUDbmlsBQNTRVABD2tleVByb3Bvc2FsSW5mbwEGbnVtYmVyCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgxwcm9wb3NhbEluZm8JAMwIAgkApAMBBQZudW1iZXIFA25pbAUDU0VQARZrZXlQcm9wb3NhbERlc2NyaXB0aW9uAQZudW1iZXIJALkJAgkAzAgCAgQlcyVkCQDMCAICE3Byb3Bvc2FsRGVzY3JpcHRpb24JAMwIAgkApAMBBQZudW1iZXIFA25pbAUDU0VQARVrZXlVc2VyVm90ZU9uUHJvcG9zYWwCBm51bWJlcgR1c2VyCQC5CQIJAMwIAgIGJXMlZCVzCQDMCAICEnVzZXJWb3RlT25Qcm9wb3NhbAkAzAgCCQCkAwEFBm51bWJlcgkAzAgCBQR1c2VyBQNuaWwFA1NFUAETa2V5TWFuYWdlclB1YmxpY0tleQACFCVzX19tYW5hZ2VyUHVibGljS2V5ARZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBD2dldEN1cnJlbnRJbmRleAAJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAQ9rZXlDdXJyZW50SW5kZXgAARxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzAAQHJG1hdGNoMAkAoggBCQEWa2V5TWFuYWdlclZhdWx0QWRkcmVzcwADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFzBQR0aGlzARJmb3JtYXRQcm9wb3NhbEluZm8FBG5hbWUDZW5kDHF1b3J1bU51bWJlcg1wb3NpdGl2ZVZvdGVzDW5lZ2F0aXZlVm90ZXMJALkJAgkAzAgCAgolZCVkJWQlZCVkCQDMCAIFBG5hbWUJAMwIAgUDZW5kCQDMCAIFDHF1b3J1bU51bWJlcgkAzAgCBQ1wb3NpdGl2ZVZvdGVzCQDMCAIFDW5lZ2F0aXZlVm90ZXMFA25pbAUDU0VQARhmb3JtYXRVc2VyVm90ZU9uUHJvcG9zYWwCBHZvdGUJZ3d4TnVtYmVyCQC5CQIJAMwIAgIEJWQlZAkAzAgCBQR2b3RlCQDMCAIFCWd3eE51bWJlcgUDbmlsBQNTRVABBWFzSW50AQN2YWwEByRtYXRjaDAFA3ZhbAMJAAECBQckbWF0Y2gwAgNJbnQEBnZhbEludAUHJG1hdGNoMAUGdmFsSW50CQACAQIVZmFpbCB0byBjYXN0IGludG8gSW50ARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAQTbWFuYWdlclZhdWx0QWRkcmVzcwkBHGdldE1hbmFnZXJWYXVsdEFkZHJlc3NPclRoaXMABAckbWF0Y2gwCQCdCAIFE21hbmFnZXJWYXVsdEFkZHJlc3MJARNrZXlNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBCWlzTWFuYWdlcgEBaQQHJG1hdGNoMAkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwCQAAAggFAWkPY2FsbGVyUHVibGljS2V5BQJwawMJAAECBQckbWF0Y2gwAgRVbml0CQAAAggFAWkGY2FsbGVyBQR0aGlzCQACAQILTWF0Y2ggZXJyb3IBC211c3RNYW5hZ2VyAQFpAwkBCWlzTWFuYWdlcgEFAWkGCQACAQIRcGVybWlzc2lvbiBkZW5pZWQFAWkBDHN0YXJ0TmV3Vm90ZQQEbmFtZQtkZXNjcmlwdGlvbhBleHBpcmF0aW9uSGVpZ2h0DHF1b3J1bU51bWJlcgQGY2hlY2tzCQDMCAIJAQttdXN0TWFuYWdlcgEFAWkFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQIdGhlSW5kZXgJAQ9nZXRDdXJyZW50SW5kZXgACQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEPa2V5Q3VycmVudEluZGV4AAkAZAIFCHRoZUluZGV4AAEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBD2tleVByb3Bvc2FsSW5mbwEFCHRoZUluZGV4CQESZm9ybWF0UHJvcG9zYWxJbmZvBQUEbmFtZQkApAMBCQBkAggFCWxhc3RCbG9jawZoZWlnaHQFEGV4cGlyYXRpb25IZWlnaHQJAKQDAQUMcXVvcnVtTnVtYmVyAgEwAgEwCQDMCAIJAQtTdHJpbmdFbnRyeQIJARZrZXlQcm9wb3NhbERlc2NyaXB0aW9uAQUIdGhlSW5kZXgFC2Rlc2NyaXB0aW9uBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHdm90ZUZvcgINcHJvcG9zYWxJbmRleAZjaG9pY2UEBUVNUFRZAgVFTVBUWQQIdm90ZUluZm8JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBD2tleVByb3Bvc2FsSW5mbwEFDXByb3Bvc2FsSW5kZXgFBUVNUFRZBA12b3RlSW5mb0FycmF5CQC1CQIFCHZvdGVJbmZvBQNTRVAEDHVzZXJWb3RlSW5mbwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEVa2V5VXNlclZvdGVPblByb3Bvc2FsAgUNcHJvcG9zYWxJbmRleAkApQgBCAUBaQZjYWxsZXIFBUVNUFRZBAZjaGVja3MJAMwIAgMJAQIhPQIFCHZvdGVJbmZvBQVFTVBUWQYJAAIBAgxObyBzdWNoIHZvdGUJAMwIAgMJAGYCCQEFdmFsdWUBCQC2CQEJAJEDAgUNdm90ZUluZm9BcnJheQACCAUJbGFzdEJsb2NrBmhlaWdodAYJARBibG9ja0hlaWdodEVycm9yAAkAzAgCAwkAAAIFDHVzZXJWb3RlSW5mbwUFRU1QVFkGCQEQYWxyZWFkeVZvdGVFcnJvcgAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQJZ3d4TnVtYmVyCQEFYXNJbnQBCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJARJnd3hDb250cmFjdEFkZHJlc3MAAiBnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHRSRUFET05MWQkAzAgCCQClCAEIBQFpBmNhbGxlcgkAzAgCCQEFdmFsdWUBCQC2CQEJAJEDAgUNdm90ZUluZm9BcnJheQACBQNuaWwFA25pbAQLJHQwMzUxMDQ1NDYDBQZjaG9pY2UEB2FjdGlvbjEJAQtTdHJpbmdFbnRyeQIJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4CQESZm9ybWF0UHJvcG9zYWxJbmZvBQkAkQMCBQ12b3RlSW5mb0FycmF5AAEJAJEDAgUNdm90ZUluZm9BcnJheQACCQCRAwIFDXZvdGVJbmZvQXJyYXkAAwkApAMBCQBkAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABAUJZ3d4TnVtYmVyCQCRAwIFDXZvdGVJbmZvQXJyYXkABQQHYWN0aW9uMgkBC1N0cmluZ0VudHJ5AgkBFWtleVVzZXJWb3RlT25Qcm9wb3NhbAIFDXByb3Bvc2FsSW5kZXgJAKUIAQgFAWkGY2FsbGVyCQEYZm9ybWF0VXNlclZvdGVPblByb3Bvc2FsAgIBMQkApAMBBQlnd3hOdW1iZXIJAJQKAgUHYWN0aW9uMQUHYWN0aW9uMgQHYWN0aW9uMQkBC1N0cmluZ0VudHJ5AgkBD2tleVByb3Bvc2FsSW5mbwEFDXByb3Bvc2FsSW5kZXgJARJmb3JtYXRQcm9wb3NhbEluZm8FCQCRAwIFDXZvdGVJbmZvQXJyYXkAAQkAkQMCBQ12b3RlSW5mb0FycmF5AAIJAJEDAgUNdm90ZUluZm9BcnJheQADCQCRAwIFDXZvdGVJbmZvQXJyYXkABAkApAMBCQBkAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABQUJZ3d4TnVtYmVyBAdhY3Rpb24yCQELU3RyaW5nRW50cnkCCQEVa2V5VXNlclZvdGVPblByb3Bvc2FsAgUNcHJvcG9zYWxJbmRleAkApQgBCAUBaQZjYWxsZXIJARhmb3JtYXRVc2VyVm90ZU9uUHJvcG9zYWwCAgEwCQCkAwEFCWd3eE51bWJlcgkAlAoCBQdhY3Rpb24xBQdhY3Rpb24yBAdhY3Rpb24xCAULJHQwMzUxMDQ1NDYCXzEEB2FjdGlvbjIIBQskdDAzNTEwNDU0NgJfMgkAzAgCBQdhY3Rpb24xCQDMCAIFB2FjdGlvbjIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpkZWxldGVWb3RlAQ1wcm9wb3NhbEluZGV4BAVFTVBUWQIFRU1QVFkECHZvdGVJbmZvCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4BQVFTVBUWQQNdm90ZUluZm9BcnJheQkAtQkCBQh2b3RlSW5mbwUDU0VQBAx1c2VyVm90ZUluZm8JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBFWtleVVzZXJWb3RlT25Qcm9wb3NhbAIFDXByb3Bvc2FsSW5kZXgJAKUIAQgFAWkGY2FsbGVyBQVFTVBUWQQRdXNlclZvdGVJbmZvQXJyYXkJALUJAgUMdXNlclZvdGVJbmZvBQNTRVAEBmNoZWNrcwkAzAgCAwkBAiE9AgUIdm90ZUluZm8FBUVNUFRZBgkAAgECDE5vIHN1Y2ggdm90ZQkAzAgCAwkAZgIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAIIBQlsYXN0QmxvY2sGaGVpZ2h0BgkBEGJsb2NrSGVpZ2h0RXJyb3IACQDMCAIDCQECIT0CBQx1c2VyVm90ZUluZm8FBUVNUFRZBgkBC25vVm90ZUVycm9yAAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAZhY3Rpb24DCQAAAgkAkQMCBRF1c2VyVm90ZUluZm9BcnJheQABAgExCQELU3RyaW5nRW50cnkCCQEPa2V5UHJvcG9zYWxJbmZvAQUNcHJvcG9zYWxJbmRleAkBEmZvcm1hdFByb3Bvc2FsSW5mbwUJAJEDAgUNdm90ZUluZm9BcnJheQABCQCRAwIFDXZvdGVJbmZvQXJyYXkAAgkAkQMCBQ12b3RlSW5mb0FycmF5AAMJAKQDAQkAZQIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAQJAQV2YWx1ZQEJALYJAQkAkQMCBRF1c2VyVm90ZUluZm9BcnJheQACCQCRAwIFDXZvdGVJbmZvQXJyYXkABQkBC1N0cmluZ0VudHJ5AgkBD2tleVByb3Bvc2FsSW5mbwEFDXByb3Bvc2FsSW5kZXgJARJmb3JtYXRQcm9wb3NhbEluZm8FCQCRAwIFDXZvdGVJbmZvQXJyYXkAAQkAkQMCBQ12b3RlSW5mb0FycmF5AAIJAJEDAgUNdm90ZUluZm9BcnJheQADCQCRAwIFDXZvdGVJbmZvQXJyYXkABAkApAMBCQBlAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABQkBBXZhbHVlAQkAtgkBCQCRAwIFEXVzZXJWb3RlSW5mb0FycmF5AAIJAMwIAgUGYWN0aW9uCQDMCAIJAQtEZWxldGVFbnRyeQEJARVrZXlVc2VyVm90ZU9uUHJvcG9zYWwCBQ1wcm9wb3NhbEluZGV4CQClCAEIBQFpBmNhbGxlcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmNoYW5nZVZvdGUCDXByb3Bvc2FsSW5kZXgGY2hvaWNlBAVFTVBUWQIFRU1QVFkECHZvdGVJbmZvCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4BQVFTVBUWQQNdm90ZUluZm9BcnJheQkAtQkCBQh2b3RlSW5mbwUDU0VQBAx1c2VyVm90ZUluZm8JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBFWtleVVzZXJWb3RlT25Qcm9wb3NhbAIFDXByb3Bvc2FsSW5kZXgJAKUIAQgFAWkGY2FsbGVyBQVFTVBUWQQRdXNlclZvdGVJbmZvQXJyYXkJALUJAgUMdXNlclZvdGVJbmZvBQNTRVAEBmNoZWNrcwkAzAgCAwkBAiE9AgUIdm90ZUluZm8FBUVNUFRZBgkAAgECDE5vIHN1Y2ggdm90ZQkAzAgCAwkAZgIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAIIBQlsYXN0QmxvY2sGaGVpZ2h0BgkBEGJsb2NrSGVpZ2h0RXJyb3IACQDMCAIDCQECIT0CBQx1c2VyVm90ZUluZm8FBUVNUFRZBgkBC25vVm90ZUVycm9yAAUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAlnd3hOdW1iZXIJAQVhc0ludAEJAPwHBAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQkBEmd3eENvbnRyYWN0QWRkcmVzcwACIGdldFVzZXJHd3hBbW91bnRBdEhlaWdodFJFQURPTkxZCQDMCAIJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAMFA25pbAUDbmlsBAskdDA2NzE0NzA1MwMFBmNob2ljZQQJZm9yTnVtYmVyBQlnd3hOdW1iZXIEDWFnYWluc3ROdW1iZXIAAAQNY2hvaWNlSW50ZWdlcgABCQCVCgMFCWZvck51bWJlcgUNYWdhaW5zdE51bWJlcgUNY2hvaWNlSW50ZWdlcgQJZm9yTnVtYmVyAAAEDWFnYWluc3ROdW1iZXIFCWd3eE51bWJlcgQNY2hvaWNlSW50ZWdlcgAACQCVCgMFCWZvck51bWJlcgUNYWdhaW5zdE51bWJlcgUNY2hvaWNlSW50ZWdlcgQMdXNlclBvd2VyRm9yCAULJHQwNjcxNDcwNTMCXzEEEHVzZXJQb3dlckFnYWluc3QIBQskdDA2NzE0NzA1MwJfMgQJY2hvaWNlSW50CAULJHQwNjcxNDcwNTMCXzMEBmFjdGlvbgMJAAACCQCRAwIFEXVzZXJWb3RlSW5mb0FycmF5AAECATEJAQtTdHJpbmdFbnRyeQIJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4CQESZm9ybWF0UHJvcG9zYWxJbmZvBQkAkQMCBQ12b3RlSW5mb0FycmF5AAEJAJEDAgUNdm90ZUluZm9BcnJheQACCQCRAwIFDXZvdGVJbmZvQXJyYXkAAwkApAMBCQBkAgkAZQIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAQJAQV2YWx1ZQEJALYJAQkAkQMCBRF1c2VyVm90ZUluZm9BcnJheQACBQx1c2VyUG93ZXJGb3IJAKQDAQkAZAIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAUFEHVzZXJQb3dlckFnYWluc3QJAQtTdHJpbmdFbnRyeQIJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4CQESZm9ybWF0UHJvcG9zYWxJbmZvBQkAkQMCBQ12b3RlSW5mb0FycmF5AAEJAJEDAgUNdm90ZUluZm9BcnJheQACCQCRAwIFDXZvdGVJbmZvQXJyYXkAAwkApAMBCQBkAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABAUMdXNlclBvd2VyRm9yCQCkAwEJAGQCCQBlAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABQkBBXZhbHVlAQkAtgkBCQCRAwIFEXVzZXJWb3RlSW5mb0FycmF5AAIFEHVzZXJQb3dlckFnYWluc3QJAMwIAgUGYWN0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJARVrZXlVc2VyVm90ZU9uUHJvcG9zYWwCBQ1wcm9wb3NhbEluZGV4CQClCAEIBQFpBmNhbGxlcgkBGGZvcm1hdFVzZXJWb3RlT25Qcm9wb3NhbAIJAKQDAQUJY2hvaWNlSW50CQCkAwEFCWd3eE51bWJlcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEWdldFJlc3VsdFJFQURPTkxZAQ1wcm9wb3NhbEluZGV4BAVFTVBUWQIFRU1QVFkECHZvdGVJbmZvCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4BQVFTVBUWQQNdm90ZUluZm9BcnJheQkAtQkCBQh2b3RlSW5mbwUDU0VQBAZjaGVja3MJAMwIAgMJAQIhPQIFCHZvdGVJbmZvBQVFTVBUWQYJAAIBAgxObyBzdWNoIHZvdGUFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQMcXVvcnVtTnVtYmVyCQCRAwIFDXZvdGVJbmZvQXJyYXkAAwQNcG9zaXRpdmVWb3RlcwkAkQMCBQ12b3RlSW5mb0FycmF5AAQEDW5lZ2F0aXZlVm90ZXMJAJEDAgUNdm90ZUluZm9BcnJheQAFCQCUCgIFA25pbAkAzAgCBQ1wb3NpdGl2ZVZvdGVzCQDMCAIFDW5lZ2F0aXZlVm90ZXMJAMwIAgUMcXVvcnVtTnVtYmVyBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABA90YXJnZXRQdWJsaWNLZXkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAgFAnR4D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQ90YXJnZXRQdWJsaWNLZXlkaMfV", "height": 2765090, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: ENWfVtLcvKw3k8owJSfBHbompimA1ahk4dewWK6SwinL Next: none Diff:
OldNewDifferences
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
6-let b = "proposal.ride"
7-
8-func c (d) = makeString([b, ": ", d], "")
6+func b () = throw("The block's height is too big for this proposal")
97
108
11-func e (d) = throw(c(d))
9+func c () = throw("You have already voted")
1210
1311
14-func f () = throw("The block's height is too big for this proposal")
12+func d () = throw("You have not already voted")
1513
1614
17-func g () = throw("You have already voted")
15+func e () = makeString(["%s", "gwxContractAddress"], a)
1816
1917
20-func h () = throw("You have not already voted")
18+func f () = makeString(["%s", "currentIndex"], a)
2119
2220
23-func i () = makeString(["%s", "gwxContractAddress"], a)
21+func g (h) = makeString(["%s%d", "proposalInfo", toString(h)], a)
2422
2523
26-func j () = makeString(["%s", "currentIndex"], a)
24+func i (h) = makeString(["%s%d", "proposalDescription", toString(h)], a)
2725
2826
29-func k (l) = makeString(["%s%d", "proposalInfo", toString(l)], a)
27+func j (h,k) = makeString(["%s%d%s", "userVoteOnProposal", toString(h), k], a)
3028
3129
32-func m (l) = makeString(["%s%d", "proposalDescription", toString(l)], a)
30+func l () = "%s__managerPublicKey"
3331
3432
35-func n (l,o) = makeString(["%s%d%s", "userVoteOnProposal", toString(l), o], a)
33+func m () = "%s__managerVaultAddress"
3634
3735
38-func p () = "%s__managerPublicKey"
36+func n () = getIntegerValue(this, f())
3937
4038
41-func q () = "%s__managerVaultAddress"
42-
43-
44-func r () = getIntegerValue(this, j())
45-
46-
47-func s () = {
48- let t = getString(q())
49- if ($isInstanceOf(t, "String"))
39+func o () = {
40+ let p = getString(m())
41+ if ($isInstanceOf(p, "String"))
5042 then {
51- let u = t
52- addressFromStringValue(u)
43+ let q = p
44+ addressFromStringValue(q)
5345 }
5446 else this
5547 }
5648
5749
58-let v = 1
59-
60-let w = 2
61-
62-let x = 3
63-
64-let y = 4
65-
66-let z = 5
67-
68-func A (B,C,D,E,F) = makeString(["%d%d%d%d%d", B, C, D, E, F], a)
50+func r (s,t,u,v,w) = makeString(["%d%d%d%d%d", s, t, u, v, w], a)
6951
7052
71-let G = 1
72-
73-let H = 2
74-
75-func I (J,K) = makeString(["%d%d", J, K], a)
53+func x (y,z) = makeString(["%d%d", y, z], a)
7654
7755
78-func L (M) = {
79- let t = M
80- if ($isInstanceOf(t, "Int"))
56+func A (B) = {
57+ let p = B
58+ if ($isInstanceOf(p, "Int"))
8159 then {
82- let N = t
83- N
60+ let C = p
61+ C
8462 }
8563 else throw("fail to cast into Int")
8664 }
8765
8866
89-func O () = {
90- let P = s()
91- let t = getString(P, p())
92- if ($isInstanceOf(t, "String"))
67+func D () = {
68+ let E = o()
69+ let p = getString(E, l())
70+ if ($isInstanceOf(p, "String"))
9371 then {
94- let u = t
95- fromBase58String(u)
72+ let q = p
73+ fromBase58String(q)
9674 }
97- else if ($isInstanceOf(t, "Unit"))
75+ else if ($isInstanceOf(p, "Unit"))
9876 then unit
9977 else throw("Match error")
10078 }
10179
10280
103-func Q (R) = {
104- let t = O()
105- if ($isInstanceOf(t, "ByteVector"))
81+func F (G) = {
82+ let p = D()
83+ if ($isInstanceOf(p, "ByteVector"))
10684 then {
107- let S = t
108- (R.callerPublicKey == S)
85+ let H = p
86+ (G.callerPublicKey == H)
10987 }
110- else if ($isInstanceOf(t, "Unit"))
111- then (R.caller == this)
88+ else if ($isInstanceOf(p, "Unit"))
89+ then (G.caller == this)
11290 else throw("Match error")
11391 }
11492
11593
116-func T (R) = if (Q(R))
94+func I (G) = if (F(G))
11795 then true
11896 else throw("permission denied")
11997
12098
121-@Callable(R)
122-func startNewVote (B,U,V,D) = {
123- let W = [T(R)]
124- if ((W == W))
99+@Callable(G)
100+func startNewVote (s,J,K,u) = {
101+ let L = [I(G)]
102+ if ((L == L))
125103 then {
126- let X = r()
127-[IntegerEntry(j(), (X + 1)), StringEntry(k(X), A(B, toString((lastBlock.height + V)), toString(D), "0", "0")), StringEntry(m(X), U)]
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)]
128106 }
129107 else throw("Strict value is not equal to itself.")
130108 }
131109
132110
133111
134-@Callable(R)
135-func voteFor (Y,Z) = {
136- let aa = "EMPTY"
137- let ab = valueOrElse(getString(this, k(Y)), aa)
138- let ac = split(ab, a)
139- let ad = valueOrElse(getString(this, n(Y, toString(R.caller))), aa)
140- let W = [if ((ab != aa))
112+@Callable(G)
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))
141119 then true
142- else throw("No such vote"), if ((value(parseInt(ac[2])) > lastBlock.height))
120+ else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
143121 then true
144- else f(), if ((ad == aa))
122+ else b(), if ((S == P))
145123 then true
146- else g()]
147- if ((W == W))
124+ else c()]
125+ if ((L == L))
148126 then {
149- let K = L(invoke(addressFromStringValue(getStringValue(i())), "getUserGwxAmountAtHeightREADONLY", [toString(R.caller), value(parseInt(ac[2]))], nil))
150- let ae = if (Z)
127+ let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(R[2]))], nil))
128+ let T = if (O)
151129 then {
152- let af = StringEntry(k(Y), A(ac[1], ac[2], ac[3], toString((value(parseInt(ac[4])) + K)), ac[5]))
153- let ag = StringEntry(n(Y, toString(R.caller)), I("1", toString(K)))
154- $Tuple2(af, ag)
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)
155133 }
156134 else {
157- let af = StringEntry(k(Y), A(ac[1], ac[2], ac[3], ac[4], toString((value(parseInt(ac[5])) + K))))
158- let ag = StringEntry(n(Y, toString(R.caller)), I("0", toString(K)))
159- $Tuple2(af, ag)
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)
160138 }
161- let af = ae._1
162- let ag = ae._2
163-[af, ag]
139+ let U = T._1
140+ let V = T._2
141+[U, V]
164142 }
165143 else throw("Strict value is not equal to itself.")
166144 }
167145
168146
169147
170-@Callable(R)
171-func deleteVote (Y) = {
172- let aa = "EMPTY"
173- let ab = valueOrElse(getString(this, k(Y)), aa)
174- let ac = split(ab, a)
175- let ad = valueOrElse(getString(this, n(Y, toString(R.caller))), aa)
176- let ah = split(ad, a)
177- let W = [if ((ab != aa))
148+@Callable(G)
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))
178156 then true
179- else throw("No such vote"), if ((value(parseInt(ac[2])) > lastBlock.height))
157+ else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
180158 then true
181- else f(), if ((ad != aa))
159+ else b(), if ((S != P))
182160 then true
183- else h()]
184- if ((W == W))
161+ else d()]
162+ if ((L == L))
185163 then {
186- let ai = if ((ah[1] == "1"))
187- then StringEntry(k(Y), A(ac[1], ac[2], ac[3], toString((value(parseInt(ac[4])) - value(parseInt(ah[2])))), ac[5]))
188- else StringEntry(k(Y), A(ac[1], ac[2], ac[3], ac[4], toString((value(parseInt(ac[5])) - value(parseInt(ah[2]))))))
189-[ai, DeleteEntry(n(Y, toString(R.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)))]
190168 }
191169 else throw("Strict value is not equal to itself.")
192170 }
193171
194172
195173
196-@Callable(R)
197-func changeVote (Y,Z) = {
198- let aa = "EMPTY"
199- let ab = valueOrElse(getString(this, k(Y)), aa)
200- let ac = split(ab, a)
201- let ad = valueOrElse(getString(this, n(Y, toString(R.caller))), aa)
202- let ah = split(ad, a)
203- let W = [if ((ab != aa))
174+@Callable(G)
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))
204182 then true
205- else throw("No such vote"), if ((value(parseInt(ac[2])) > lastBlock.height))
183+ else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
206184 then true
207- else f(), if ((ad != aa))
185+ else b(), if ((S != P))
208186 then true
209- else h()]
210- if ((W == W))
187+ else d()]
188+ if ((L == L))
211189 then {
212- let K = L(invoke(addressFromStringValue(getStringValue(i())), "getUserGwxAmountAtHeightREADONLY", [toString(R.caller), value(parseInt(ac[3]))], nil))
213- let aj = if (Z)
190+ let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(R[3]))], nil))
191+ let Y = if (O)
214192 then {
215- let ak = K
216- let al = 0
217- let am = 1
218- $Tuple3(ak, al, am)
193+ let Z = z
194+ let aa = 0
195+ let ab = 1
196+ $Tuple3(Z, aa, ab)
219197 }
220198 else {
221- let ak = 0
222- let al = K
223- let am = 0
224- $Tuple3(ak, al, am)
199+ let Z = 0
200+ let aa = z
201+ let ab = 0
202+ $Tuple3(Z, aa, ab)
225203 }
226- let an = aj._1
227- let ao = aj._2
228- let ap = aj._3
229- let ai = if ((ah[1] == "1"))
230- then StringEntry(k(Y), A(ac[1], ac[2], ac[3], toString(((value(parseInt(ac[4])) - value(parseInt(ah[2]))) + an)), toString((value(parseInt(ac[5])) + ao))))
231- else StringEntry(k(Y), A(ac[1], ac[2], ac[3], toString((value(parseInt(ac[4])) + an)), toString(((value(parseInt(ac[5])) - value(parseInt(ah[2]))) + ao))))
232-[ai, StringEntry(n(Y, toString(R.caller)), I(toString(ap), toString(K)))]
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)))]
233211 }
234212 else throw("Strict value is not equal to itself.")
235213 }
236214
237215
238216
239-@Callable(R)
240-func getResultREADONLY (Y) = {
241- let aa = "EMPTY"
242- let ab = valueOrElse(getString(this, k(Y)), aa)
243- let ac = split(ab, a)
244- let W = [if ((ab != aa))
217+@Callable(G)
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))
245223 then true
246224 else throw("No such vote")]
247- if ((W == W))
225+ if ((L == L))
248226 then {
249- let D = ac[3]
250- let E = ac[4]
251- let F = ac[5]
252- $Tuple2(nil, [E, F, D])
227+ let u = R[3]
228+ let v = R[4]
229+ let w = R[5]
230+ $Tuple2(nil, [v, w, u])
253231 }
254232 else throw("Strict value is not equal to itself.")
255233 }
256234
257235
258-@Verifier(aq)
259-func ar () = {
260- let as = {
261- let t = O()
262- if ($isInstanceOf(t, "ByteVector"))
236+@Verifier(af)
237+func ag () = {
238+ let ah = {
239+ let p = D()
240+ if ($isInstanceOf(p, "ByteVector"))
263241 then {
264- let S = t
265- S
242+ let H = p
243+ H
266244 }
267- else if ($isInstanceOf(t, "Unit"))
268- then aq.senderPublicKey
245+ else if ($isInstanceOf(p, "Unit"))
246+ then af.senderPublicKey
269247 else throw("Match error")
270248 }
271- sigVerify(aq.bodyBytes, aq.proofs[0], as)
249+ sigVerify(af.bodyBytes, af.proofs[0], ah)
272250 }
273251
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
6-let b = "proposal.ride"
7-
8-func c (d) = makeString([b, ": ", d], "")
6+func b () = throw("The block's height is too big for this proposal")
97
108
11-func e (d) = throw(c(d))
9+func c () = throw("You have already voted")
1210
1311
14-func f () = throw("The block's height is too big for this proposal")
12+func d () = throw("You have not already voted")
1513
1614
17-func g () = throw("You have already voted")
15+func e () = makeString(["%s", "gwxContractAddress"], a)
1816
1917
20-func h () = throw("You have not already voted")
18+func f () = makeString(["%s", "currentIndex"], a)
2119
2220
23-func i () = makeString(["%s", "gwxContractAddress"], a)
21+func g (h) = makeString(["%s%d", "proposalInfo", toString(h)], a)
2422
2523
26-func j () = makeString(["%s", "currentIndex"], a)
24+func i (h) = makeString(["%s%d", "proposalDescription", toString(h)], a)
2725
2826
29-func k (l) = makeString(["%s%d", "proposalInfo", toString(l)], a)
27+func j (h,k) = makeString(["%s%d%s", "userVoteOnProposal", toString(h), k], a)
3028
3129
32-func m (l) = makeString(["%s%d", "proposalDescription", toString(l)], a)
30+func l () = "%s__managerPublicKey"
3331
3432
35-func n (l,o) = makeString(["%s%d%s", "userVoteOnProposal", toString(l), o], a)
33+func m () = "%s__managerVaultAddress"
3634
3735
38-func p () = "%s__managerPublicKey"
36+func n () = getIntegerValue(this, f())
3937
4038
41-func q () = "%s__managerVaultAddress"
42-
43-
44-func r () = getIntegerValue(this, j())
45-
46-
47-func s () = {
48- let t = getString(q())
49- if ($isInstanceOf(t, "String"))
39+func o () = {
40+ let p = getString(m())
41+ if ($isInstanceOf(p, "String"))
5042 then {
51- let u = t
52- addressFromStringValue(u)
43+ let q = p
44+ addressFromStringValue(q)
5345 }
5446 else this
5547 }
5648
5749
58-let v = 1
59-
60-let w = 2
61-
62-let x = 3
63-
64-let y = 4
65-
66-let z = 5
67-
68-func A (B,C,D,E,F) = makeString(["%d%d%d%d%d", B, C, D, E, F], a)
50+func r (s,t,u,v,w) = makeString(["%d%d%d%d%d", s, t, u, v, w], a)
6951
7052
71-let G = 1
72-
73-let H = 2
74-
75-func I (J,K) = makeString(["%d%d", J, K], a)
53+func x (y,z) = makeString(["%d%d", y, z], a)
7654
7755
78-func L (M) = {
79- let t = M
80- if ($isInstanceOf(t, "Int"))
56+func A (B) = {
57+ let p = B
58+ if ($isInstanceOf(p, "Int"))
8159 then {
82- let N = t
83- N
60+ let C = p
61+ C
8462 }
8563 else throw("fail to cast into Int")
8664 }
8765
8866
89-func O () = {
90- let P = s()
91- let t = getString(P, p())
92- if ($isInstanceOf(t, "String"))
67+func D () = {
68+ let E = o()
69+ let p = getString(E, l())
70+ if ($isInstanceOf(p, "String"))
9371 then {
94- let u = t
95- fromBase58String(u)
72+ let q = p
73+ fromBase58String(q)
9674 }
97- else if ($isInstanceOf(t, "Unit"))
75+ else if ($isInstanceOf(p, "Unit"))
9876 then unit
9977 else throw("Match error")
10078 }
10179
10280
103-func Q (R) = {
104- let t = O()
105- if ($isInstanceOf(t, "ByteVector"))
81+func F (G) = {
82+ let p = D()
83+ if ($isInstanceOf(p, "ByteVector"))
10684 then {
107- let S = t
108- (R.callerPublicKey == S)
85+ let H = p
86+ (G.callerPublicKey == H)
10987 }
110- else if ($isInstanceOf(t, "Unit"))
111- then (R.caller == this)
88+ else if ($isInstanceOf(p, "Unit"))
89+ then (G.caller == this)
11290 else throw("Match error")
11391 }
11492
11593
116-func T (R) = if (Q(R))
94+func I (G) = if (F(G))
11795 then true
11896 else throw("permission denied")
11997
12098
121-@Callable(R)
122-func startNewVote (B,U,V,D) = {
123- let W = [T(R)]
124- if ((W == W))
99+@Callable(G)
100+func startNewVote (s,J,K,u) = {
101+ let L = [I(G)]
102+ if ((L == L))
125103 then {
126- let X = r()
127-[IntegerEntry(j(), (X + 1)), StringEntry(k(X), A(B, toString((lastBlock.height + V)), toString(D), "0", "0")), StringEntry(m(X), U)]
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)]
128106 }
129107 else throw("Strict value is not equal to itself.")
130108 }
131109
132110
133111
134-@Callable(R)
135-func voteFor (Y,Z) = {
136- let aa = "EMPTY"
137- let ab = valueOrElse(getString(this, k(Y)), aa)
138- let ac = split(ab, a)
139- let ad = valueOrElse(getString(this, n(Y, toString(R.caller))), aa)
140- let W = [if ((ab != aa))
112+@Callable(G)
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))
141119 then true
142- else throw("No such vote"), if ((value(parseInt(ac[2])) > lastBlock.height))
120+ else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
143121 then true
144- else f(), if ((ad == aa))
122+ else b(), if ((S == P))
145123 then true
146- else g()]
147- if ((W == W))
124+ else c()]
125+ if ((L == L))
148126 then {
149- let K = L(invoke(addressFromStringValue(getStringValue(i())), "getUserGwxAmountAtHeightREADONLY", [toString(R.caller), value(parseInt(ac[2]))], nil))
150- let ae = if (Z)
127+ let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(R[2]))], nil))
128+ let T = if (O)
151129 then {
152- let af = StringEntry(k(Y), A(ac[1], ac[2], ac[3], toString((value(parseInt(ac[4])) + K)), ac[5]))
153- let ag = StringEntry(n(Y, toString(R.caller)), I("1", toString(K)))
154- $Tuple2(af, ag)
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)
155133 }
156134 else {
157- let af = StringEntry(k(Y), A(ac[1], ac[2], ac[3], ac[4], toString((value(parseInt(ac[5])) + K))))
158- let ag = StringEntry(n(Y, toString(R.caller)), I("0", toString(K)))
159- $Tuple2(af, ag)
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)
160138 }
161- let af = ae._1
162- let ag = ae._2
163-[af, ag]
139+ let U = T._1
140+ let V = T._2
141+[U, V]
164142 }
165143 else throw("Strict value is not equal to itself.")
166144 }
167145
168146
169147
170-@Callable(R)
171-func deleteVote (Y) = {
172- let aa = "EMPTY"
173- let ab = valueOrElse(getString(this, k(Y)), aa)
174- let ac = split(ab, a)
175- let ad = valueOrElse(getString(this, n(Y, toString(R.caller))), aa)
176- let ah = split(ad, a)
177- let W = [if ((ab != aa))
148+@Callable(G)
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))
178156 then true
179- else throw("No such vote"), if ((value(parseInt(ac[2])) > lastBlock.height))
157+ else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
180158 then true
181- else f(), if ((ad != aa))
159+ else b(), if ((S != P))
182160 then true
183- else h()]
184- if ((W == W))
161+ else d()]
162+ if ((L == L))
185163 then {
186- let ai = if ((ah[1] == "1"))
187- then StringEntry(k(Y), A(ac[1], ac[2], ac[3], toString((value(parseInt(ac[4])) - value(parseInt(ah[2])))), ac[5]))
188- else StringEntry(k(Y), A(ac[1], ac[2], ac[3], ac[4], toString((value(parseInt(ac[5])) - value(parseInt(ah[2]))))))
189-[ai, DeleteEntry(n(Y, toString(R.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)))]
190168 }
191169 else throw("Strict value is not equal to itself.")
192170 }
193171
194172
195173
196-@Callable(R)
197-func changeVote (Y,Z) = {
198- let aa = "EMPTY"
199- let ab = valueOrElse(getString(this, k(Y)), aa)
200- let ac = split(ab, a)
201- let ad = valueOrElse(getString(this, n(Y, toString(R.caller))), aa)
202- let ah = split(ad, a)
203- let W = [if ((ab != aa))
174+@Callable(G)
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))
204182 then true
205- else throw("No such vote"), if ((value(parseInt(ac[2])) > lastBlock.height))
183+ else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
206184 then true
207- else f(), if ((ad != aa))
185+ else b(), if ((S != P))
208186 then true
209- else h()]
210- if ((W == W))
187+ else d()]
188+ if ((L == L))
211189 then {
212- let K = L(invoke(addressFromStringValue(getStringValue(i())), "getUserGwxAmountAtHeightREADONLY", [toString(R.caller), value(parseInt(ac[3]))], nil))
213- let aj = if (Z)
190+ let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(R[3]))], nil))
191+ let Y = if (O)
214192 then {
215- let ak = K
216- let al = 0
217- let am = 1
218- $Tuple3(ak, al, am)
193+ let Z = z
194+ let aa = 0
195+ let ab = 1
196+ $Tuple3(Z, aa, ab)
219197 }
220198 else {
221- let ak = 0
222- let al = K
223- let am = 0
224- $Tuple3(ak, al, am)
199+ let Z = 0
200+ let aa = z
201+ let ab = 0
202+ $Tuple3(Z, aa, ab)
225203 }
226- let an = aj._1
227- let ao = aj._2
228- let ap = aj._3
229- let ai = if ((ah[1] == "1"))
230- then StringEntry(k(Y), A(ac[1], ac[2], ac[3], toString(((value(parseInt(ac[4])) - value(parseInt(ah[2]))) + an)), toString((value(parseInt(ac[5])) + ao))))
231- else StringEntry(k(Y), A(ac[1], ac[2], ac[3], toString((value(parseInt(ac[4])) + an)), toString(((value(parseInt(ac[5])) - value(parseInt(ah[2]))) + ao))))
232-[ai, StringEntry(n(Y, toString(R.caller)), I(toString(ap), toString(K)))]
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)))]
233211 }
234212 else throw("Strict value is not equal to itself.")
235213 }
236214
237215
238216
239-@Callable(R)
240-func getResultREADONLY (Y) = {
241- let aa = "EMPTY"
242- let ab = valueOrElse(getString(this, k(Y)), aa)
243- let ac = split(ab, a)
244- let W = [if ((ab != aa))
217+@Callable(G)
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))
245223 then true
246224 else throw("No such vote")]
247- if ((W == W))
225+ if ((L == L))
248226 then {
249- let D = ac[3]
250- let E = ac[4]
251- let F = ac[5]
252- $Tuple2(nil, [E, F, D])
227+ let u = R[3]
228+ let v = R[4]
229+ let w = R[5]
230+ $Tuple2(nil, [v, w, u])
253231 }
254232 else throw("Strict value is not equal to itself.")
255233 }
256234
257235
258-@Verifier(aq)
259-func ar () = {
260- let as = {
261- let t = O()
262- if ($isInstanceOf(t, "ByteVector"))
236+@Verifier(af)
237+func ag () = {
238+ let ah = {
239+ let p = D()
240+ if ($isInstanceOf(p, "ByteVector"))
263241 then {
264- let S = t
265- S
242+ let H = p
243+ H
266244 }
267- else if ($isInstanceOf(t, "Unit"))
268- then aq.senderPublicKey
245+ else if ($isInstanceOf(p, "Unit"))
246+ then af.senderPublicKey
269247 else throw("Match error")
270248 }
271- sigVerify(aq.bodyBytes, aq.proofs[0], as)
249+ sigVerify(af.bodyBytes, af.proofs[0], ah)
272250 }
273251

github/deemru/w8io/873ac7e 
140.88 ms