tx · AWXpGLVBTpVYL7fFxs5F8XsA8zeTMwevVJv2WxLAWLeK

3N3vjjwCXWsTfu2w6biwcPhZe3v17HGY3tR:  -0.01300000 Waves

2023.07.21 12:34 [2675443] smart account 3N3vjjwCXWsTfu2w6biwcPhZe3v17HGY3tR > SELF 0.00000000 Waves

{ "type": 13, "id": "AWXpGLVBTpVYL7fFxs5F8XsA8zeTMwevVJv2WxLAWLeK", "fee": 1300000, "feeAssetId": null, "timestamp": 1689932194618, "version": 2, "chainId": 84, "sender": "3N3vjjwCXWsTfu2w6biwcPhZe3v17HGY3tR", "senderPublicKey": "B2SJ1BXVdLQeEg3kiwBCznf5t6GjLEz81mEWEV3fs2vF", "proofs": [ "SHoWs6xYgavfXKSp2JiEbqvEU1dEsCDUEsPCRHF5hKDvEpv9X2HCumvahng1mDNgpdSxbLKq1yHi44FLfdyGhmR" ], "script": "base64:BgIgCAISBgoECAgBARIECgIBBBIDCgEBEgQKAgEEEgMKAQESAANTRVACAl9fARBibG9ja0hlaWdodEVycm9yAAkAAgECL1RoZSBibG9jaydzIGhlaWdodCBpcyB0b28gYmlnIGZvciB0aGlzIHByb3Bvc2FsARBhbHJlYWR5Vm90ZUVycm9yAAkAAgECFllvdSBoYXZlIGFscmVhZHkgdm90ZWQBC25vVm90ZUVycm9yAAkAAgECGllvdSBoYXZlIG5vdCBhbHJlYWR5IHZvdGVkARJnd3hDb250cmFjdEFkZHJlc3MACQC5CQIJAMwIAgICJXMJAMwIAgISZ3d4Q29udHJhY3RBZGRyZXNzBQNuaWwFA1NFUAEPa2V5Q3VycmVudEluZGV4AAkAuQkCCQDMCAICAiVzCQDMCAICDGN1cnJlbnRJbmRleAUDbmlsBQNTRVABD2tleVByb3Bvc2FsSW5mbwEGbnVtYmVyCQC5CQIJAMwIAgIEJXMlZAkAzAgCAgxwcm9wb3NhbEluZm8JAMwIAgkApAMBBQZudW1iZXIFA25pbAUDU0VQARVrZXlVc2VyVm90ZU9uUHJvcG9zYWwCBm51bWJlcgR1c2VyCQC5CQIJAMwIAgIGJXMlZCVzCQDMCAICEnVzZXJWb3RlT25Qcm9wb3NhbAkAzAgCCQCkAwEFBm51bWJlcgkAzAgCBQR1c2VyBQNuaWwFA1NFUAETa2V5TWFuYWdlclB1YmxpY0tleQACFCVzX19tYW5hZ2VyUHVibGljS2V5ARZrZXlNYW5hZ2VyVmF1bHRBZGRyZXNzAAIXJXNfX21hbmFnZXJWYXVsdEFkZHJlc3MBD2dldEN1cnJlbnRJbmRleAAJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMJAQ9rZXlDdXJyZW50SW5kZXgAARxnZXRNYW5hZ2VyVmF1bHRBZGRyZXNzT3JUaGlzAAQHJG1hdGNoMAkAoggBCQEWa2V5TWFuYWdlclZhdWx0QWRkcmVzcwADCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFzBQR0aGlzARJmb3JtYXRQcm9wb3NhbEluZm8GBG5hbWULZGVzY3JpcHRpb24DZW5kDHF1b3J1bU51bWJlcg1wb3NpdGl2ZVZvdGVzDW5lZ2F0aXZlVm90ZXMJALkJAgkAzAgCAgwlZCVkJWQlZCVkJWQJAMwIAgUEbmFtZQkAzAgCBQtkZXNjcmlwdGlvbgkAzAgCBQNlbmQJAMwIAgUMcXVvcnVtTnVtYmVyCQDMCAIFDXBvc2l0aXZlVm90ZXMJAMwIAgUNbmVnYXRpdmVWb3RlcwUDbmlsBQNTRVABGGZvcm1hdFVzZXJWb3RlT25Qcm9wb3NhbAIEdm90ZQlnd3hOdW1iZXIJALkJAgkAzAgCAgQlZCVkCQDMCAIFBHZvdGUJAMwIAgUJZ3d4TnVtYmVyBQNuaWwFA1NFUAEFYXNJbnQBA3ZhbAQHJG1hdGNoMAUDdmFsAwkAAQIFByRtYXRjaDACA0ludAQGdmFsSW50BQckbWF0Y2gwBQZ2YWxJbnQJAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQABBNtYW5hZ2VyVmF1bHRBZGRyZXNzCQEcZ2V0TWFuYWdlclZhdWx0QWRkcmVzc09yVGhpcwAEByRtYXRjaDAJAJ0IAgUTbWFuYWdlclZhdWx0QWRkcmVzcwkBE2tleU1hbmFnZXJQdWJsaWNLZXkAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkA2QQBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgEJaXNNYW5hZ2VyAQFpBAckbWF0Y2gwCQEWbWFuYWdlclB1YmxpY0tleU9yVW5pdAADCQABAgUHJG1hdGNoMAIKQnl0ZVZlY3RvcgQCcGsFByRtYXRjaDAJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkFAnBrAwkAAQIFByRtYXRjaDACBFVuaXQJAAACCAUBaQZjYWxsZXIFBHRoaXMJAAIBAgtNYXRjaCBlcnJvcgELbXVzdE1hbmFnZXIBAWkDCQEJaXNNYW5hZ2VyAQUBaQYJAAIBAhFwZXJtaXNzaW9uIGRlbmllZAUBaQEMc3RhcnROZXdWb3RlBARuYW1lC2Rlc2NyaXB0aW9uEGV4cGlyYXRpb25IZWlnaHQMcXVvcnVtTnVtYmVyBAZjaGVja3MJAMwIAgkBC211c3RNYW5hZ2VyAQUBaQUDbmlsAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAh0aGVJbmRleAkBD2dldEN1cnJlbnRJbmRleAAJAMwIAgkBDEludGVnZXJFbnRyeQIJAQ9rZXlDdXJyZW50SW5kZXgACQBkAgUIdGhlSW5kZXgAAQkAzAgCCQELU3RyaW5nRW50cnkCCQEPa2V5UHJvcG9zYWxJbmZvAQUIdGhlSW5kZXgJARJmb3JtYXRQcm9wb3NhbEluZm8GBQRuYW1lBQtkZXNjcmlwdGlvbgkApAMBCQBkAggFCWxhc3RCbG9jawZoZWlnaHQFEGV4cGlyYXRpb25IZWlnaHQJAKQDAQUMcXVvcnVtTnVtYmVyAgEwAgEwBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEHdm90ZUZvcgINcHJvcG9zYWxJbmRleAZjaG9pY2UEBUVNUFRZAgVFTVBUWQQIdm90ZUluZm8JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBD2tleVByb3Bvc2FsSW5mbwEFDXByb3Bvc2FsSW5kZXgFBUVNUFRZBA12b3RlSW5mb0FycmF5CQC1CQIFCHZvdGVJbmZvBQNTRVAEDHVzZXJWb3RlSW5mbwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEVa2V5VXNlclZvdGVPblByb3Bvc2FsAgUNcHJvcG9zYWxJbmRleAkApQgBCAUBaQZjYWxsZXIFBUVNUFRZBAZjaGVja3MJAMwIAgMJAQIhPQIFCHZvdGVJbmZvBQVFTVBUWQYJAAIBAgxObyBzdWNoIHZvdGUJAMwIAgMJAGYCCQEFdmFsdWUBCQC2CQEJAJEDAgUNdm90ZUluZm9BcnJheQADCAUJbGFzdEJsb2NrBmhlaWdodAYJARBibG9ja0hlaWdodEVycm9yAAkAzAgCAwkAAAIFDHVzZXJWb3RlSW5mbwUFRU1QVFkGCQEQYWxyZWFkeVZvdGVFcnJvcgAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQJZ3d4TnVtYmVyCQEFYXNJbnQBCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJARJnd3hDb250cmFjdEFkZHJlc3MAAiBnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHRSRUFET05MWQkAzAgCCQClCAEIBQFpBmNhbGxlcgkAzAgCCQEFdmFsdWUBCQC2CQEJAJEDAgUNdm90ZUluZm9BcnJheQADBQNuaWwFA25pbAQLJHQwMzQzNTQ1MjMDBQZjaG9pY2UEB2FjdGlvbjEJAQtTdHJpbmdFbnRyeQIJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4CQESZm9ybWF0UHJvcG9zYWxJbmZvBgkAkQMCBQ12b3RlSW5mb0FycmF5AAEJAJEDAgUNdm90ZUluZm9BcnJheQACCQCRAwIFDXZvdGVJbmZvQXJyYXkAAwkAkQMCBQ12b3RlSW5mb0FycmF5AAQJAKQDAQkAZAIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAUFCWd3eE51bWJlcgkAkQMCBQ12b3RlSW5mb0FycmF5AAYEB2FjdGlvbjIJAQtTdHJpbmdFbnRyeQIJARVrZXlVc2VyVm90ZU9uUHJvcG9zYWwCBQ1wcm9wb3NhbEluZGV4CQClCAEIBQFpBmNhbGxlcgkBGGZvcm1hdFVzZXJWb3RlT25Qcm9wb3NhbAICATEJAKQDAQUJZ3d4TnVtYmVyCQCUCgIFB2FjdGlvbjEFB2FjdGlvbjIEB2FjdGlvbjEJAQtTdHJpbmdFbnRyeQIJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4CQESZm9ybWF0UHJvcG9zYWxJbmZvBgkAkQMCBQ12b3RlSW5mb0FycmF5AAEJAJEDAgUNdm90ZUluZm9BcnJheQACCQCRAwIFDXZvdGVJbmZvQXJyYXkAAwkAkQMCBQ12b3RlSW5mb0FycmF5AAQJAJEDAgUNdm90ZUluZm9BcnJheQAFCQCkAwEJAGQCCQEFdmFsdWUBCQC2CQEJAJEDAgUNdm90ZUluZm9BcnJheQAGBQlnd3hOdW1iZXIEB2FjdGlvbjIJAQtTdHJpbmdFbnRyeQIJARVrZXlVc2VyVm90ZU9uUHJvcG9zYWwCBQ1wcm9wb3NhbEluZGV4CQClCAEIBQFpBmNhbGxlcgkBGGZvcm1hdFVzZXJWb3RlT25Qcm9wb3NhbAICATAJAKQDAQUJZ3d4TnVtYmVyCQCUCgIFB2FjdGlvbjEFB2FjdGlvbjIEB2FjdGlvbjEIBQskdDAzNDM1NDUyMwJfMQQHYWN0aW9uMggFCyR0MDM0MzU0NTIzAl8yCQDMCAIFB2FjdGlvbjEJAMwIAgUHYWN0aW9uMgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmRlbGV0ZVZvdGUBDXByb3Bvc2FsSW5kZXgEBUVNUFRZAgVFTVBUWQQIdm90ZUluZm8JAQt2YWx1ZU9yRWxzZQIJAJ0IAgUEdGhpcwkBD2tleVByb3Bvc2FsSW5mbwEFDXByb3Bvc2FsSW5kZXgFBUVNUFRZBA12b3RlSW5mb0FycmF5CQC1CQIFCHZvdGVJbmZvBQNTRVAEDHVzZXJWb3RlSW5mbwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEVa2V5VXNlclZvdGVPblByb3Bvc2FsAgUNcHJvcG9zYWxJbmRleAkApQgBCAUBaQZjYWxsZXIFBUVNUFRZBBF1c2VyVm90ZUluZm9BcnJheQkAtQkCBQx1c2VyVm90ZUluZm8FA1NFUAQGY2hlY2tzCQDMCAIDCQECIT0CBQh2b3RlSW5mbwUFRU1QVFkGCQACAQIMTm8gc3VjaCB2b3RlCQDMCAIDCQBmAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkAAwgFCWxhc3RCbG9jawZoZWlnaHQGCQEQYmxvY2tIZWlnaHRFcnJvcgAJAMwIAgMJAQIhPQIFDHVzZXJWb3RlSW5mbwUFRU1QVFkGCQELbm9Wb3RlRXJyb3IABQNuaWwDCQAAAgUGY2hlY2tzBQZjaGVja3MEBmFjdGlvbgMJAAACCQCRAwIFEXVzZXJWb3RlSW5mb0FycmF5AAECATEJAQtTdHJpbmdFbnRyeQIJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4CQESZm9ybWF0UHJvcG9zYWxJbmZvBgkAkQMCBQ12b3RlSW5mb0FycmF5AAEJAJEDAgUNdm90ZUluZm9BcnJheQACCQCRAwIFDXZvdGVJbmZvQXJyYXkAAwkAkQMCBQ12b3RlSW5mb0FycmF5AAQJAKQDAQkAZQIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAUJAQV2YWx1ZQEJALYJAQkAkQMCBRF1c2VyVm90ZUluZm9BcnJheQACCQCRAwIFDXZvdGVJbmZvQXJyYXkABgkBC1N0cmluZ0VudHJ5AgkBD2tleVByb3Bvc2FsSW5mbwEFDXByb3Bvc2FsSW5kZXgJARJmb3JtYXRQcm9wb3NhbEluZm8GCQCRAwIFDXZvdGVJbmZvQXJyYXkAAQkAkQMCBQ12b3RlSW5mb0FycmF5AAIJAJEDAgUNdm90ZUluZm9BcnJheQADCQCRAwIFDXZvdGVJbmZvQXJyYXkABAkAkQMCBQ12b3RlSW5mb0FycmF5AAUJAKQDAQkAZQIJAQV2YWx1ZQEJALYJAQkAkQMCBQ12b3RlSW5mb0FycmF5AAYJAQV2YWx1ZQEJALYJAQkAkQMCBRF1c2VyVm90ZUluZm9BcnJheQACCQDMCAIFBmFjdGlvbgkAzAgCCQELRGVsZXRlRW50cnkBCQEVa2V5VXNlclZvdGVPblByb3Bvc2FsAgUNcHJvcG9zYWxJbmRleAkApQgBCAUBaQZjYWxsZXIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpjaGFuZ2VWb3RlAg1wcm9wb3NhbEluZGV4BmNob2ljZQQFRU1QVFkCBUVNUFRZBAh2b3RlSW5mbwkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEPa2V5UHJvcG9zYWxJbmZvAQUNcHJvcG9zYWxJbmRleAUFRU1QVFkEDXZvdGVJbmZvQXJyYXkJALUJAgUIdm90ZUluZm8FA1NFUAQMdXNlclZvdGVJbmZvCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJARVrZXlVc2VyVm90ZU9uUHJvcG9zYWwCBQ1wcm9wb3NhbEluZGV4CQClCAEIBQFpBmNhbGxlcgUFRU1QVFkEEXVzZXJWb3RlSW5mb0FycmF5CQC1CQIFDHVzZXJWb3RlSW5mbwUDU0VQBAZjaGVja3MJAMwIAgMJAQIhPQIFCHZvdGVJbmZvBQVFTVBUWQYJAAIBAgxObyBzdWNoIHZvdGUJAMwIAgMJAGYCCQEFdmFsdWUBCQC2CQEJAJEDAgUNdm90ZUluZm9BcnJheQADCAUJbGFzdEJsb2NrBmhlaWdodAYJARBibG9ja0hlaWdodEVycm9yAAkAzAgCAwkBAiE9AgUMdXNlclZvdGVJbmZvBQVFTVBUWQYJAQtub1ZvdGVFcnJvcgAFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQJZ3d4TnVtYmVyCQEFYXNJbnQBCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJARJnd3hDb250cmFjdEFkZHJlc3MAAiBnZXRVc2VyR3d4QW1vdW50QXRIZWlnaHRSRUFET05MWQkAzAgCCQClCAEIBQFpBmNhbGxlcgkAzAgCCQEFdmFsdWUBCQC2CQEJAJEDAgUNdm90ZUluZm9BcnJheQADBQNuaWwFA25pbAQLJHQwNjc0MzcwODIDBQZjaG9pY2UECWZvck51bWJlcgUJZ3d4TnVtYmVyBA1hZ2FpbnN0TnVtYmVyAAAEDWNob2ljZUludGVnZXIAAQkAlQoDBQlmb3JOdW1iZXIFDWFnYWluc3ROdW1iZXIFDWNob2ljZUludGVnZXIECWZvck51bWJlcgAABA1hZ2FpbnN0TnVtYmVyBQlnd3hOdW1iZXIEDWNob2ljZUludGVnZXIAAAkAlQoDBQlmb3JOdW1iZXIFDWFnYWluc3ROdW1iZXIFDWNob2ljZUludGVnZXIEDHVzZXJQb3dlckZvcggFCyR0MDY3NDM3MDgyAl8xBBB1c2VyUG93ZXJBZ2FpbnN0CAULJHQwNjc0MzcwODICXzIECWNob2ljZUludAgFCyR0MDY3NDM3MDgyAl8zBAZhY3Rpb24DCQAAAgkAkQMCBRF1c2VyVm90ZUluZm9BcnJheQABAgExCQELU3RyaW5nRW50cnkCCQEPa2V5UHJvcG9zYWxJbmZvAQUNcHJvcG9zYWxJbmRleAkBEmZvcm1hdFByb3Bvc2FsSW5mbwYJAJEDAgUNdm90ZUluZm9BcnJheQABCQCRAwIFDXZvdGVJbmZvQXJyYXkAAgkAkQMCBQ12b3RlSW5mb0FycmF5AAMJAJEDAgUNdm90ZUluZm9BcnJheQAECQCkAwEJAGQCCQBlAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABQkBBXZhbHVlAQkAtgkBCQCRAwIFEXVzZXJWb3RlSW5mb0FycmF5AAIFDHVzZXJQb3dlckZvcgkApAMBCQBkAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABgUQdXNlclBvd2VyQWdhaW5zdAkBC1N0cmluZ0VudHJ5AgkBD2tleVByb3Bvc2FsSW5mbwEFDXByb3Bvc2FsSW5kZXgJARJmb3JtYXRQcm9wb3NhbEluZm8GCQCRAwIFDXZvdGVJbmZvQXJyYXkAAQkAkQMCBQ12b3RlSW5mb0FycmF5AAIJAJEDAgUNdm90ZUluZm9BcnJheQADCQCRAwIFDXZvdGVJbmZvQXJyYXkABAkApAMBCQBkAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABQUMdXNlclBvd2VyRm9yCQCkAwEJAGQCCQBlAgkBBXZhbHVlAQkAtgkBCQCRAwIFDXZvdGVJbmZvQXJyYXkABgkBBXZhbHVlAQkAtgkBCQCRAwIFEXVzZXJWb3RlSW5mb0FycmF5AAIFEHVzZXJQb3dlckFnYWluc3QJAMwIAgUGYWN0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJARVrZXlVc2VyVm90ZU9uUHJvcG9zYWwCBQ1wcm9wb3NhbEluZGV4CQClCAEIBQFpBmNhbGxlcgkBGGZvcm1hdFVzZXJWb3RlT25Qcm9wb3NhbAIJAKQDAQUJY2hvaWNlSW50CQCkAwEFCWd3eE51bWJlcgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEWdldFJlc3VsdFJFQURPTkxZAQ1wcm9wb3NhbEluZGV4BAVFTVBUWQIFRU1QVFkECHZvdGVJbmZvCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMJAQ9rZXlQcm9wb3NhbEluZm8BBQ1wcm9wb3NhbEluZGV4BQVFTVBUWQQNdm90ZUluZm9BcnJheQkAtQkCBQh2b3RlSW5mbwUDU0VQBAZjaGVja3MJAMwIAgMJAQIhPQIFCHZvdGVJbmZvBQVFTVBUWQYJAAIBAgxObyBzdWNoIHZvdGUFA25pbAMJAAACBQZjaGVja3MFBmNoZWNrcwQNcG9zaXRpdmVWb3RlcwkAkQMCBQ12b3RlSW5mb0FycmF5AAUEDW5lZ2F0aXZlVm90ZXMJAJEDAgUNdm90ZUluZm9BcnJheQAGBAxxdW9ydW1OdW1iZXIJAJEDAgUNdm90ZUluZm9BcnJheQAECQCUCgIFA25pbAkAzAgCBQ1wb3NpdGl2ZVZvdGVzCQDMCAIFDW5lZ2F0aXZlVm90ZXMJAMwIAgUMcXVvcnVtTnVtYmVyBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABA90YXJnZXRQdWJsaWNLZXkEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAUCcGsDCQABAgUHJG1hdGNoMAIEVW5pdAgFAnR4D3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQ90YXJnZXRQdWJsaWNLZXn+uSJ5", "height": 2675443, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: BdRa4ufo2T9cM8ao4PsPeJ1sN1mtnEcmymotY5cmr4n9 Next: 2fXW4pocuqYC4MXZpcgPddsiXTUsyXXmivCAur1qf4Xq Diff:
OldNewDifferences
2121 func g (h) = makeString(["%s%d", "proposalInfo", toString(h)], a)
2222
2323
24-func i (h) = makeString(["%s%d", "proposalDescription", toString(h)], a)
24+func i (h,j) = makeString(["%s%d%s", "userVoteOnProposal", toString(h), j], a)
2525
2626
27-func j (h,k) = makeString(["%s%d%s", "userVoteOnProposal", toString(h), k], a)
27+func k () = "%s__managerPublicKey"
2828
2929
30-func l () = "%s__managerPublicKey"
30+func l () = "%s__managerVaultAddress"
3131
3232
33-func m () = "%s__managerVaultAddress"
33+func m () = getIntegerValue(this, f())
3434
3535
36-func n () = getIntegerValue(this, f())
37-
38-
39-func o () = {
40- let p = getString(m())
41- if ($isInstanceOf(p, "String"))
36+func n () = {
37+ let o = getString(l())
38+ if ($isInstanceOf(o, "String"))
4239 then {
43- let q = p
44- addressFromStringValue(q)
40+ let p = o
41+ addressFromStringValue(p)
4542 }
4643 else this
4744 }
4845
4946
50-func r (s,t,u,v,w) = makeString(["%d%d%d%d%d", s, t, u, v, w], a)
47+func q (r,s,t,u,v,w) = makeString(["%d%d%d%d%d%d", r, s, t, u, v, w], a)
5148
5249
5350 func x (y,z) = makeString(["%d%d", y, z], a)
5451
5552
5653 func A (B) = {
57- let p = B
58- if ($isInstanceOf(p, "Int"))
54+ let o = B
55+ if ($isInstanceOf(o, "Int"))
5956 then {
60- let C = p
57+ let C = o
6158 C
6259 }
6360 else throw("fail to cast into Int")
6562
6663
6764 func D () = {
68- let E = o()
69- let p = getString(E, l())
70- if ($isInstanceOf(p, "String"))
65+ let E = n()
66+ let o = getString(E, k())
67+ if ($isInstanceOf(o, "String"))
7168 then {
72- let q = p
73- fromBase58String(q)
69+ let p = o
70+ fromBase58String(p)
7471 }
75- else if ($isInstanceOf(p, "Unit"))
72+ else if ($isInstanceOf(o, "Unit"))
7673 then unit
7774 else throw("Match error")
7875 }
7976
8077
8178 func F (G) = {
82- let p = D()
83- if ($isInstanceOf(p, "ByteVector"))
79+ let o = D()
80+ if ($isInstanceOf(o, "ByteVector"))
8481 then {
85- let H = p
82+ let H = o
8683 (G.callerPublicKey == H)
8784 }
88- else if ($isInstanceOf(p, "Unit"))
85+ else if ($isInstanceOf(o, "Unit"))
8986 then (G.caller == this)
9087 else throw("Match error")
9188 }
9794
9895
9996 @Callable(G)
100-func startNewVote (s,J,K,u) = {
101- let L = [I(G)]
102- if ((L == L))
97+func startNewVote (r,s,J,u) = {
98+ let K = [I(G)]
99+ if ((K == K))
103100 then {
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)]
101+ let L = m()
102+[IntegerEntry(f(), (L + 1)), StringEntry(g(L), q(r, s, toString((lastBlock.height + J)), toString(u), "0", "0"))]
106103 }
107104 else throw("Strict value is not equal to itself.")
108105 }
110107
111108
112109 @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))
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))
119116 then true
120- else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
117+ else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
121118 then true
122- else b(), if ((S == P))
119+ else b(), if ((R == O))
123120 then true
124121 else c()]
125- if ((L == L))
122+ if ((K == K))
126123 then {
127- let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(R[2]))], nil))
128- let T = if (O)
124+ let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(Q[3]))], nil))
125+ let S = if (N)
129126 then {
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)
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)
133130 }
134131 else {
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)
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)
138135 }
139- let U = T._1
140- let V = T._2
141-[U, V]
136+ let T = S._1
137+ let U = S._2
138+[T, U]
142139 }
143140 else throw("Strict value is not equal to itself.")
144141 }
146143
147144
148145 @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))
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))
156153 then true
157- else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
154+ else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
158155 then true
159- else b(), if ((S != P))
156+ else b(), if ((R != O))
160157 then true
161158 else d()]
162- if ((L == L))
159+ if ((K == K))
163160 then {
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)))]
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)))]
168165 }
169166 else throw("Strict value is not equal to itself.")
170167 }
172169
173170
174171 @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))
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))
182179 then true
183- else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
180+ else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
184181 then true
185- else b(), if ((S != P))
182+ else b(), if ((R != O))
186183 then true
187184 else d()]
188- if ((L == L))
185+ if ((K == K))
189186 then {
190- let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(R[3]))], nil))
191- let Y = if (O)
187+ let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(Q[3]))], nil))
188+ let X = if (N)
192189 then {
190+ let Y = z
191+ let Z = 0
192+ let aa = 1
193+ $Tuple3(Y, Z, aa)
194+ }
195+ else {
196+ let Y = 0
193197 let Z = z
194198 let aa = 0
195- let ab = 1
196- $Tuple3(Z, aa, ab)
199+ $Tuple3(Y, Z, aa)
197200 }
198- else {
199- let Z = 0
200- let aa = z
201- let ab = 0
202- $Tuple3(Z, aa, ab)
203- }
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)))]
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)))]
211208 }
212209 else throw("Strict value is not equal to itself.")
213210 }
215212
216213
217214 @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))
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))
223220 then true
224221 else throw("No such vote")]
225- if ((L == L))
222+ if ((K == K))
226223 then {
227- let u = R[3]
228- let v = R[4]
229- let w = R[5]
224+ let v = Q[5]
225+ let w = Q[6]
226+ let u = Q[4]
230227 $Tuple2(nil, [v, w, u])
231228 }
232229 else throw("Strict value is not equal to itself.")
233230 }
234231
235232
236-@Verifier(af)
237-func ag () = {
238- let ah = {
239- let p = D()
240- if ($isInstanceOf(p, "ByteVector"))
233+@Verifier(ae)
234+func af () = {
235+ let ag = {
236+ let o = D()
237+ if ($isInstanceOf(o, "ByteVector"))
241238 then {
242- let H = p
239+ let H = o
243240 H
244241 }
245- else if ($isInstanceOf(p, "Unit"))
246- then af.senderPublicKey
242+ else if ($isInstanceOf(o, "Unit"))
243+ then ae.senderPublicKey
247244 else throw("Match error")
248245 }
249- sigVerify(af.bodyBytes, af.proofs[0], ah)
246+ sigVerify(ae.bodyBytes, ae.proofs[0], ag)
250247 }
251248
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) = makeString(["%s%d", "proposalDescription", toString(h)], a)
24+func i (h,j) = makeString(["%s%d%s", "userVoteOnProposal", toString(h), j], a)
2525
2626
27-func j (h,k) = makeString(["%s%d%s", "userVoteOnProposal", toString(h), k], a)
27+func k () = "%s__managerPublicKey"
2828
2929
30-func l () = "%s__managerPublicKey"
30+func l () = "%s__managerVaultAddress"
3131
3232
33-func m () = "%s__managerVaultAddress"
33+func m () = getIntegerValue(this, f())
3434
3535
36-func n () = getIntegerValue(this, f())
37-
38-
39-func o () = {
40- let p = getString(m())
41- if ($isInstanceOf(p, "String"))
36+func n () = {
37+ let o = getString(l())
38+ if ($isInstanceOf(o, "String"))
4239 then {
43- let q = p
44- addressFromStringValue(q)
40+ let p = o
41+ addressFromStringValue(p)
4542 }
4643 else this
4744 }
4845
4946
50-func r (s,t,u,v,w) = makeString(["%d%d%d%d%d", s, t, u, v, w], a)
47+func q (r,s,t,u,v,w) = makeString(["%d%d%d%d%d%d", r, s, t, u, v, w], a)
5148
5249
5350 func x (y,z) = makeString(["%d%d", y, z], a)
5451
5552
5653 func A (B) = {
57- let p = B
58- if ($isInstanceOf(p, "Int"))
54+ let o = B
55+ if ($isInstanceOf(o, "Int"))
5956 then {
60- let C = p
57+ let C = o
6158 C
6259 }
6360 else throw("fail to cast into Int")
6461 }
6562
6663
6764 func D () = {
68- let E = o()
69- let p = getString(E, l())
70- if ($isInstanceOf(p, "String"))
65+ let E = n()
66+ let o = getString(E, k())
67+ if ($isInstanceOf(o, "String"))
7168 then {
72- let q = p
73- fromBase58String(q)
69+ let p = o
70+ fromBase58String(p)
7471 }
75- else if ($isInstanceOf(p, "Unit"))
72+ else if ($isInstanceOf(o, "Unit"))
7673 then unit
7774 else throw("Match error")
7875 }
7976
8077
8178 func F (G) = {
82- let p = D()
83- if ($isInstanceOf(p, "ByteVector"))
79+ let o = D()
80+ if ($isInstanceOf(o, "ByteVector"))
8481 then {
85- let H = p
82+ let H = o
8683 (G.callerPublicKey == H)
8784 }
88- else if ($isInstanceOf(p, "Unit"))
85+ else if ($isInstanceOf(o, "Unit"))
8986 then (G.caller == this)
9087 else throw("Match error")
9188 }
9289
9390
9491 func I (G) = if (F(G))
9592 then true
9693 else throw("permission denied")
9794
9895
9996 @Callable(G)
100-func startNewVote (s,J,K,u) = {
101- let L = [I(G)]
102- if ((L == L))
97+func startNewVote (r,s,J,u) = {
98+ let K = [I(G)]
99+ if ((K == K))
103100 then {
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)]
101+ let L = m()
102+[IntegerEntry(f(), (L + 1)), StringEntry(g(L), q(r, s, toString((lastBlock.height + J)), toString(u), "0", "0"))]
106103 }
107104 else throw("Strict value is not equal to itself.")
108105 }
109106
110107
111108
112109 @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))
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))
119116 then true
120- else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
117+ else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
121118 then true
122- else b(), if ((S == P))
119+ else b(), if ((R == O))
123120 then true
124121 else c()]
125- if ((L == L))
122+ if ((K == K))
126123 then {
127- let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(R[2]))], nil))
128- let T = if (O)
124+ let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(Q[3]))], nil))
125+ let S = if (N)
129126 then {
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)
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)
133130 }
134131 else {
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)
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)
138135 }
139- let U = T._1
140- let V = T._2
141-[U, V]
136+ let T = S._1
137+ let U = S._2
138+[T, U]
142139 }
143140 else throw("Strict value is not equal to itself.")
144141 }
145142
146143
147144
148145 @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))
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))
156153 then true
157- else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
154+ else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
158155 then true
159- else b(), if ((S != P))
156+ else b(), if ((R != O))
160157 then true
161158 else d()]
162- if ((L == L))
159+ if ((K == K))
163160 then {
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)))]
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)))]
168165 }
169166 else throw("Strict value is not equal to itself.")
170167 }
171168
172169
173170
174171 @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))
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))
182179 then true
183- else throw("No such vote"), if ((value(parseInt(R[2])) > lastBlock.height))
180+ else throw("No such vote"), if ((value(parseInt(Q[3])) > lastBlock.height))
184181 then true
185- else b(), if ((S != P))
182+ else b(), if ((R != O))
186183 then true
187184 else d()]
188- if ((L == L))
185+ if ((K == K))
189186 then {
190- let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(R[3]))], nil))
191- let Y = if (O)
187+ let z = A(invoke(addressFromStringValue(getStringValue(e())), "getUserGwxAmountAtHeightREADONLY", [toString(G.caller), value(parseInt(Q[3]))], nil))
188+ let X = if (N)
192189 then {
190+ let Y = z
191+ let Z = 0
192+ let aa = 1
193+ $Tuple3(Y, Z, aa)
194+ }
195+ else {
196+ let Y = 0
193197 let Z = z
194198 let aa = 0
195- let ab = 1
196- $Tuple3(Z, aa, ab)
199+ $Tuple3(Y, Z, aa)
197200 }
198- else {
199- let Z = 0
200- let aa = z
201- let ab = 0
202- $Tuple3(Z, aa, ab)
203- }
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)))]
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)))]
211208 }
212209 else throw("Strict value is not equal to itself.")
213210 }
214211
215212
216213
217214 @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))
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))
223220 then true
224221 else throw("No such vote")]
225- if ((L == L))
222+ if ((K == K))
226223 then {
227- let u = R[3]
228- let v = R[4]
229- let w = R[5]
224+ let v = Q[5]
225+ let w = Q[6]
226+ let u = Q[4]
230227 $Tuple2(nil, [v, w, u])
231228 }
232229 else throw("Strict value is not equal to itself.")
233230 }
234231
235232
236-@Verifier(af)
237-func ag () = {
238- let ah = {
239- let p = D()
240- if ($isInstanceOf(p, "ByteVector"))
233+@Verifier(ae)
234+func af () = {
235+ let ag = {
236+ let o = D()
237+ if ($isInstanceOf(o, "ByteVector"))
241238 then {
242- let H = p
239+ let H = o
243240 H
244241 }
245- else if ($isInstanceOf(p, "Unit"))
246- then af.senderPublicKey
242+ else if ($isInstanceOf(o, "Unit"))
243+ then ae.senderPublicKey
247244 else throw("Match error")
248245 }
249- sigVerify(af.bodyBytes, af.proofs[0], ah)
246+ sigVerify(ae.bodyBytes, ae.proofs[0], ag)
250247 }
251248

github/deemru/w8io/873ac7e 
81.80 ms