tx · 6avgBrkSjVmTjA6vuNDMQP7TyUeeSVWT4hYJptRQpNPJ 3N6G8j53WGVsDVPR8R8GBxmsaqkML1ayNKV: -0.01700000 Waves 2023.05.04 11:35 [2562780] smart account 3N6G8j53WGVsDVPR8R8GBxmsaqkML1ayNKV > SELF 0.00000000 Waves
{ "type": 13, "id": "6avgBrkSjVmTjA6vuNDMQP7TyUeeSVWT4hYJptRQpNPJ", "fee": 1700000, "feeAssetId": null, "timestamp": 1683189410718, "version": 2, "chainId": 84, "sender": "3N6G8j53WGVsDVPR8R8GBxmsaqkML1ayNKV", "senderPublicKey": "G8swj2SJhdPvP3eHnoPqp9DM2w2LQJABHJSY3ygtNSSo", "proofs": [ "2H84xvvKnw44Lym7G4SeFtoaBrqBo9kTCDaH5tubjXK3rZN9S88NRHGa8LrN76B6eDLqvr7PBLVxctPpqqmfpsi6" ], "script": "base64:BgLZEggCEgUKAwgIBBIFCgMIGAESBwoFEQgYAQESBgoECAgICBIGCgQICAgCEgUKAwgIBBIGCgQICAEBEgQKAggYEgMKAQgSABIECgIICBIDCgEIEgQKAggIIglzZXBhcmF0b3IiDGtleVd4QXNzZXRJZCITa2V5QmFja2VuZFB1YmxpY0tleSIba2V5RXhpc3RzUmVmZXJyZXJUb1JlZmVycmFsIgtwcm9ncmFtTmFtZSIPcmVmZXJyZXJBZGRyZXNzIg9yZWZlcnJhbEFkZHJlc3MiEmtleUNsYWltZWRSZWZlcnJlciIOY2xhaW1lckFkZHJlc3MiEmtleUNsYWltZWRSZWZlcnJhbCIUa2V5VW5jbGFpbWVkUmVmZXJyZXIiFGtleVVuY2xhaW1lZFJlZmVycmFsIgtrZXlSZWZlcnJlciIOa2V5UHJvZ3JhbU5hbWUiFWtleVRvdGFsUmVmZXJyYWxDb3VudCIWa2V5QWN0aXZlUmVmZXJyYWxDb3VudCITa2V5SXNSZWZlcnJhbEFjdGl2ZSIWa2V5Q2xhaW1lZFRvdGFsQWRkcmVzcyIHYWRkcmVzcyIYa2V5VW5jbGFpbWVkVG90YWxBZGRyZXNzIg9rZXlDbGFpbWVkVG90YWwiD2tleVJld2FyZHNUb3RhbCIQa2V5UmV3YXJkQXNzZXRJZCITa2V5VHJlYXN1cnlDb250cmFjdCIZa2V5SW1wbGVtZW50YXRpb25Db250cmFjdCIWa2V5QWxsUmVmZXJyYWxQcm9ncmFtcyITa2V5TWFuYWdlclB1YmxpY0tleSIWa2V5TWFuYWdlclZhdWx0QWRkcmVzcyIXZ2V0TWFuYWdlckFkZHJlc3NPckZhaWwiD2tleUNsYWltSGlzdG9yeSILdXNlckFkZHJlc3MiDXRyYW5zYWN0aW9uSWQiBHR5cGUiEmZvcm1hdENsYWltSGlzdG9yeSIGYW1vdW50Igh0aHJvd0VyciIDbXNnIhZtYW5hZ2VyUHVibGljS2V5T3JVbml0IhNtYW5hZ2VyVmF1bHRBZGRyZXNzIgckbWF0Y2gwIgFzIgttdXN0TWFuYWdlciIBaSICcGQiAnBrIhl1cGRhdGVBbGxSZWZlcnJhbFByb2dyYW1zIhNhbGxSZWZlcnJhbFByb2dyYW1zIhp1cGRhdGVkQWxsUmVmZXJyYWxQcm9ncmFtcyIWbmV3QWxsUmVmZXJyYWxQcm9ncmFtcyIYaXNJbXBsZW1lbnRhdGlvbkNvbnRyYWN0IhJjaGVja1Byb2dyYW1FeGlzdHMiCyR0MDQ3MDA1NjM3Ig5jbGFpbWVyQ2xhaW1lZCIQY2xhaW1lclVuY2xhaW1lZCIKa2V5Q2xhaW1lZCIMa2V5VW5jbGFpbWVkIg9jbGFpbUhpc3RvcnlLZXkiDGNsYWltZWRUb3RhbCIQdHJlYXN1cnlDb250cmFjdCINcmV3YXJkQXNzZXRJZCITY2xhaW1lZFRvdGFsQWRkcmVzcyIVdW5jbGFpbWVkVG90YWxBZGRyZXNzIg1jaGVja0NhbkNsYWltIhFuZXdDbGFpbWVyQ2xhaW1lZCIPbmV3Q2xhaW1lZFRvdGFsIhZuZXdDbGFpbWVkVG90YWxBZGRyZXNzIhhuZXdVbmNsYWltZWRUb3RhbEFkZHJlc3MiDWJhbGFuY2VCZWZvcmUiA3JlcyIMYmFsYW5jZUFmdGVyIgtiYWxhbmNlRGlmZiIMY2hlY2tCYWxhbmNlIgdjbGFpbWVyIgxwcm9ncmFtTmFtZXMiC2N1cnJlbnRJdGVyIgtjaGVja0NhbGxlciIQcHJvZ3JhbVVuY2xhaW1lZCIRY2xhaW1CdWxrSW50ZXJuYWwiEXVuY2xhaW1lZFJlZmVycmVyIgVjbGFpbSIOcGF5bWVudEFtb3VudHMiEXJlZmVycmVyQWRkcmVzc2VzIglyZXNBbW91bnQiDmFyZ3NDb21wYXJpc29uIgVjaGVjayIRcmVmZXJyZXJVbmNsYWltZWQiDHJld2FyZHNUb3RhbCIUbmV3UmVmZXJyZXJVbmNsYWltZWQiDG5ld1Jlc0Ftb3VudCIDaW52Ihp1cGRhdGVkQWxsUmVmZXJyZXJQcm9ncmFtcyIWaW1wbGVtZW50YXRpb25Db250cmFjdCIQY2hlY2tQcm9ncmFtTmFtZSIScHJvZ3JhbU5hbWVJc1ZhbGlkIhBjaGVja1Jld2FyZEFzc2V0IglzaWduYXR1cmUiIHBhaXJSZWZlcnJlclRvUmVmZXJyYWxFeGlzdENoZWNrIglub1JlZlNlbGYiBHBhaXIiEGJhY2tlbmRQdWJsaWNLZXkiEXZhbGlkYXRlU2lnbmF0dXJlIhJ0b3RhbFJlZmVycmFsQ291bnQiFW5ld1RvdGFsUmVmZXJyYWxDb3VudCIIaXNBY3RpdmUiEGlzUmVmZXJyYWxBY3RpdmUiBnVwZGF0ZSIWbmV3QWN0aXZlUmVmZXJyYWxDb3VudCIOcmVmZXJyZXJSZXdhcmQiDnJlZmVycmFsUmV3YXJkIgxjaGVja1Byb2dyYW0iFmNoZWNrUmVmZXJyZXJJblByb2dyYW0iFmNoZWNrUmVmZXJyYWxJblByb2dyYW0iFnVuY2xhaW1lZFRvdGFsUmVmZXJyZXIiFnVuY2xhaW1lZFRvdGFsUmVmZXJyYWwiEXJlZmVycmFsVW5jbGFpbWVkIhluZXdVbmNsYWltZWRUb3RhbFJlZmVycmVyIhluZXdVbmNsYWltZWRUb3RhbFJlZmVycmFsIhRuZXdSZWZlcnJhbFVuY2xhaW1lZCIDbWFwIgVhY2N1bSIEbmV4dCIMYXNzZXRJZENoZWNrIgthbW91bnRDaGVjayIIcGF5bWVudHMiAiRsIgIkcyIFJGFjYzAiBSRmMF8xIgIkYSICJGkiBSRmMF8yIgFAIg1jbGFpbUludGVybmFsIg1jYWxsZXJBZGRyZXNzIhFjYWxsZXJQcm9ncmFtc1N0ciIOcHJvZ3JhbXNFeGlzdHMiDmNhbGxlclByb2dyYW1zIglidWxrQ2xhaW0iD2NsYWltZWRSZWZlcnJlciIPY2xhaW1lZFJlZmVycmFsIhF1bmNsYWltZWRSZWZlcnJhbCICdHgiBnZlcmlmeSIPdGFyZ2V0UHVibGljS2V5HgABYQICX18BAWIACQC5CQIJAMwIAgICJXMJAMwIAgIJd3hBc3NldElkBQNuaWwFAWEAAWMJALkJAgkAzAgCAgIlcwkAzAgCAhBiYWNrZW5kUHVibGljS2V5BQNuaWwFAWEBAWQDAWUBZgFnCQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgIYZXhpc3RzUmVmZXJyZXJUb1JlZmVycmFsCQDMCAIFAWUJAMwIAgUBZgkAzAgCBQFnBQNuaWwFAWEBAWgCAWUBaQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAg9jbGFpbWVkUmVmZXJyZXIJAMwIAgUBZQkAzAgCBQFpBQNuaWwFAWEBAWoCAWUBaQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAg9jbGFpbWVkUmVmZXJyYWwJAMwIAgUBZQkAzAgCBQFpBQNuaWwFAWEBAWsCAWUBaQkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAhF1bmNsYWltZWRSZWZlcnJlcgkAzAgCBQFlCQDMCAIFAWkFA25pbAUBYQEBbAIBZQFpCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICEXVuY2xhaW1lZFJlZmVycmFsCQDMCAIFAWUJAMwIAgUBaQUDbmlsBQFhAQFtAgFlAWcJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIIcmVmZXJyZXIJAMwIAgUBZQkAzAgCBQFnBQNuaWwFAWEBAW4BAWUJALkJAgkAzAgCAgQlcyVzCQDMCAICC3Byb2dyYW1OYW1lCQDMCAIFAWUFA25pbAUBYQEBbwIBZQFmCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICEnRvdGFsUmVmZXJyYWxDb3VudAkAzAgCBQFlCQDMCAIFAWYFA25pbAUBYQEBcAIBZQFmCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICE2FjdGl2ZVJlZmVycmFsQ291bnQJAMwIAgUBZQkAzAgCBQFmBQNuaWwFAWEBAXECAWUBZwkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAg5hY3RpdmVSZWZlcnJhbAkAzAgCBQFlCQDMCAIFAWcFA25pbAUBYQEBcgEBcwkAuQkCCQDMCAICBCVzJXMJAMwIAgITY2xhaW1lZFRvdGFsQWRkcmVzcwkAzAgCBQFzBQNuaWwFAWEBAXQBAXMJALkJAgkAzAgCAgQlcyVzCQDMCAICFXVuY2xhaW1lZFRvdGFsQWRkcmVzcwkAzAgCBQFzBQNuaWwFAWEBAXUBAWUJALkJAgkAzAgCAgQlcyVzCQDMCAICDGNsYWltZWRUb3RhbAkAzAgCBQFlBQNuaWwFAWEBAXYBAWUJALkJAgkAzAgCAgQlcyVzCQDMCAICDHJld2FyZHNUb3RhbAkAzAgCBQFlBQNuaWwFAWEBAXcBAWUJALkJAgkAzAgCAgQlcyVzCQDMCAICDXJld2FyZEFzc2V0SWQJAMwIAgUBZQUDbmlsBQFhAQF4AQFlCQC5CQIJAMwIAgIEJXMlcwkAzAgCAhB0cmVhc3VyeUNvbnRyYWN0CQDMCAIFAWUFA25pbAUBYQEBeQEBZQkAuQkCCQDMCAICBCVzJXMJAMwIAgIWaW1wbGVtZW50YXRpb25Db250cmFjdAkAzAgCBQFlBQNuaWwFAWEBAXoBAXMJALkJAgkAzAgCAgQlcyVzCQDMCAICE2FsbFJlZmVycmFsUHJvZ3JhbXMJAMwIAgUBcwUDbmlsBQFhAQFBAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAUIAAhclc19fbWFuYWdlclZhdWx0QWRkcmVzcwEBQwAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFCAAEBRAQBZQFFAUYBRwkAuQkCCQDMCAICCiVzJXMlcyVzJXMJAMwIAgIHaGlzdG9yeQkAzAgCBQFHCQDMCAIFAWUJAMwIAgUBRQkAzAgCBQFGBQNuaWwFAWEBAUgBAUkJALkJAgkAzAgCAgYlZCVkJWQJAMwIAgkApAMBCAUJbGFzdEJsb2NrBmhlaWdodAkAzAgCCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAKQDAQUBSQUDbmlsBQFhAQFKAQFLCQACAQkAuQkCCQDMCAICDnJlZmVycmFsLnJpZGU6CQDMCAIFAUsFA25pbAIBIAEBTAAEAU0JAQFDAAQBTgkAnQgCBQFNCQEBQQADCQABAgUBTgIGU3RyaW5nBAFPBQFOCQDZBAEFAU8DCQABAgUBTgIEVW5pdAUEdW5pdAkAAgECC01hdGNoIGVycm9yAQFQAQFRBAFSCQEBSgECEXBlcm1pc3Npb24gZGVuaWVkBAFOCQEBTAADCQABAgUBTgIKQnl0ZVZlY3RvcgQBUwUBTgMJAAACCAUBUQ9jYWxsZXJQdWJsaWNLZXkFAVMGBQFSAwkAAQIFAU4CBFVuaXQDCQAAAggFAVEGY2FsbGVyBQR0aGlzBgUBUgkAAgECC01hdGNoIGVycm9yAQFUAgFzAWUEAVUJAQt2YWx1ZU9yRWxzZQIJAKIIAQkBAXoBBQFzAgAEAVYDCQEIY29udGFpbnMCBQFVBQFlBQNuaWwEAVcDCQAAAgUBVQIABQFlCQC5CQIJAMwIAgUBVQkAzAgCBQFlBQNuaWwFAWEJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAXoBBQFzBQFXBQNuaWwFAVYNAVEBDWNsYWltSW50ZXJuYWwDAWUBaQFYBAFZAwkBC3ZhbHVlT3JFbHNlAgkAoAgBCQEBbgEFAWUHBgkBAUoBAhZwcm9ncmFtIGRvZXMgbm90IGV4aXN0AwkAAAIFAVkFAVkEAVoDBQFYCQCXCgUJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAWoCBQFlBQFpAAAJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAWwCBQFlBQFpAAAJAQFqAgUBZQUBaQkBAWwCBQFlBQFpCQEBRAQFAWUFAWkJANgEAQgFAVENdHJhbnNhY3Rpb25JZAINY2xhaW1SZWZlcnJhbAkAlwoFCQELdmFsdWVPckVsc2UCCQCfCAEJAQFoAgUBZQUBaQAACQELdmFsdWVPckVsc2UCCQCfCAEJAQFrAgUBZQUBaQAACQEBaAIFAWUFAWkJAQFrAgUBZQUBaQkBAUQEBQFlBQFpCQDYBAEIBQFRDXRyYW5zYWN0aW9uSWQCDWNsYWltUmVmZXJyZXIEAmFhCAUBWgJfMQQCYWIIBQFaAl8yBAJhYwgFAVoCXzMEAmFkCAUBWgJfNAQCYWUIBQFaAl81BAJhZgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEBdQEFAWUAAAQCYWcJAQV2YWx1ZQEJAKYIAQkBBXZhbHVlAQkAoggBCQEBeAEFAWUEAmFoCQDZBAEJAQV2YWx1ZQEJAKIIAQkBAXcBBQFlBAJhaQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEBcgEFAWkAAAQCYWoJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAXQBBQFpAAADAwUBWAkAAAIFAmFiAAAHCQCUCgIFA25pbAAABAJhawMJAGYCBQJhYgAABgkBAUoBAhBub3RoaW5nIHRvIGNsYWltAwkAAAIFAmFrBQJhawQCYWwJAGQCBQJhYQUCYWIEAmFtCQBkAgUCYWYFAmFiBAJhbgkAZAIFAmFpBQJhYgQCYW8JAGUCBQJhagUCYWIEAmFwCQEFdmFsdWUBCQDwBwIFBHRoaXMFAmFoAwkAAAIFAmFwBQJhcAQCYXEJAPwHBAUCYWcCFndpdGhkcmF3UmVmZXJyYWxSZXdhcmQJAMwIAgUCYWIFA25pbAUDbmlsAwkAAAIFAmFxBQJhcQQCYXIJAQV2YWx1ZQEJAPAHAgUEdGhpcwUCYWgDCQAAAgUCYXIFAmFyBAJhcwkAZQIFAmFyBQJhcAMJAAACBQJhcwUCYXMEAmF0AwkAAAIFAmFzBQJhYgYJAQFKAQIpaW5zdWZmaWNpZW50IGJhbGFuY2Ugb24gcmVmZXJyYWwgY29udHJhY3QDCQAAAgUCYXQFAmF0CQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFAmFjBQJhbAkAzAgCCQEMSW50ZWdlckVudHJ5AgUCYWQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAXUBBQFlBQJhbQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAXIBBQFpBQJhbgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAXQBBQFpBQJhbwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQFpBQJhYgUCYWgJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYWUJAQFIAQUCYWIFA25pbAUCYWIJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BUQERY2xhaW1CdWxrSW50ZXJuYWwDAmF1AmF2AmF3BAJheAMJAAACCAUBUQZjYWxsZXIFBHRoaXMGCQEBSgECEXBlcm1pc3Npb24gZGVuaWVkAwkAAAIFAmF4BQJheAMJAAACBQJhdwkAkAMBBQJhdgUDbmlsBAFlCQCRAwIFAmF2BQJhdwQCYXkJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAWsCBQFlBQJhdQAABAJhZQkBAUQEBQFlBQJhdQkA2AQBCAUBUQ10cmFuc2FjdGlvbklkAgljbGFpbUJ1bGsEAmF6CQD8BwQFBHRoaXMCEWNsYWltQnVsa0ludGVybmFsCQDMCAIFAmF1CQDMCAIFAmF2CQDMCAIJAGQCBQJhdwABBQNuaWwFA25pbAMJAAACBQJhegUCYXoEAmFBCQELdmFsdWVPckVsc2UCCQCfCAEJAQFrAgUBZQUCYXUAAAQCYUIDCQBmAgUCYUEAAAkA/AcEBQR0aGlzAg1jbGFpbUludGVybmFsCQDMCAIFAWUJAMwIAgUCYXUJAMwIAgcFA25pbAUDbmlsBQR1bml0AwkAAAIFAmFCBQJhQgkAlAoCBQNuaWwJAMwIAgUCYXoJAMwIAgUCYUIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFRAR9pbmNVbmNsYWltZWRXaXRoUGF5bWVudEludGVybmFsBQJhQwFlAmFEAmF3AmFFBAJheAMJAAACCAUBUQZjYWxsZXIFBHRoaXMGCQEBSgECEXBlcm1pc3Npb24gZGVuaWVkAwkAAAIFAmF4BQJheAQCYUYJAAACCQCQAwEFAmFDCQCQAwEFAmFEBAJhRwMFAmFGBgkBAUoBAh9saXN0cyBpbiBhcmdzIG11c3QgYmUgc2FtZSBzaXplAwkAAAIFAmFHBQJhRwMJAAACBQJhdwkAkAMBBQJhQwkAlAoCBQNuaWwFAmFFBAFmCQCRAwIFAmFEBQJhdwQCYWoJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAXQBBQFmAAAEAmFICQELdmFsdWVPckVsc2UCCQCfCAEJAQFrAgUBZQUBZgAABAJhSQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEBdgEFAWUAAAQCYW8JAGQCBQJhagkAkQMCBQJhQwUCYXcEAmFKCQBkAgUCYUgJAJEDAgUCYUMFAmF3BAJhSwkAZAIFAmFFCQCRAwIFAmFDBQJhdwQCYUwJAPwHBAUEdGhpcwIfaW5jVW5jbGFpbWVkV2l0aFBheW1lbnRJbnRlcm5hbAkAzAgCBQJhQwkAzAgCBQFlCQDMCAIFAmFECQDMCAIJAGQCBQJhdwABCQDMCAIFAmFLBQNuaWwFA25pbAMJAAACBQJhTAUCYUwEAmFNCQEBVAIFAWYFAWUJAJQKAgkAzggCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBdAEFAWYFAmFvCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBawIFAWUFAWYFAmFKCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBdgEFAWUJAGQCBQJhSQkAkQMCBQJhQwUCYXcFA25pbAUCYU0FAmFMCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVEBFWNyZWF0ZVJlZmVycmFsUHJvZ3JhbQQBZQJhZwJhTgJhaAQCYXgJAQFQAQUBUQMJAAACBQJheAUCYXgEAmFPAwkAAAIJAKAIAQkBAW4BBQFlBQR1bml0BgkBAUoBAhtwcm9ncmFtIG5hbWUgYWxyZWFkeSBleGlzdHMDCQAAAgUCYU8FAmFPBAJhUAMJAQEhAQkBCGNvbnRhaW5zAgUBZQUBYQkBASEBCQEIY29udGFpbnMCBQFlAgEgBwQBWQMFAmFQBgkBAUoBAhRpbnZhbGlkIHByb2dyYW0gbmFtZQMJAAACBQFZBQFZBAJhUQMJAQIhPQIJAOwHAQkA2QQBBQJhaAUEdW5pdAYJAQFKAQIXaW52YWxpZCByZXdhcmQgYXNzZXQgaWQDCQAAAgUCYVEFAmFRCQCUCgIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQFuAQUBZQYJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAXgBBQFlBQJhZwkAzAgCCQELU3RyaW5nRW50cnkCCQEBeQEFAWUFAmFOCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQF3AQUBZQUCYWgJAMwIAgkBDEludGVnZXJFbnRyeQIJAQF2AQUBZQAABQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BUQEKY3JlYXRlUGFpcgQBZQFmAWcCYVIEAVkDCQELdmFsdWVPckVsc2UCCQCgCAEJAQFuAQUBZQcGCQEBSgECFnByb2dyYW0gZG9lcyBub3QgZXhpc3QDCQAAAgUBWQUBWQQCYVMDCQAAAgkAoAgBCQEBZAMFAWUFAWYFAWcFBHVuaXQGCQEBSgECE3BhaXIgYWxyZWFkeSBleGlzdHMDCQAAAgUCYVMFAmFTBAJhVAMJAQIhPQIFAWYFAWcGCQEBSgECFGNhbm5vdCByZWZlciB0byBzZWxmAwkAAAIFAmFUBQJhVAQCYVUJAJsDAQkAuQkCCQDMCAIFAWUJAMwIAgUBZgkAzAgCBQFnBQNuaWwCAToEAmFWCQDZBAEJAQV2YWx1ZQEJAKIIAQUBYwQCYVcDCQD0AwMFAmFVBQJhUgUCYVYGCQEBSgECDWJhZCBzaWduYXR1cmUDCQAAAgUCYVcFAmFXBAJhWAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEBbwIFAWUFAWYAAAQCYVkJAGQCBQJhWAABBAJhTQkBAVQCBQFmBQFlBAFWCQEBVAIFAWcFAWUJAJQKAgkAzggCCQDOCAIJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQFkAwUBZQUBZgUBZwYJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFvAgUBZQUBZgUCYVkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAW0CBQFlBQFnBQFmBQNuaWwFAmFNBQFWBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVEBFnVwZGF0ZVJlZmVycmFsQWN0aXZpdHkDAWUBZwJhWgQCYU4JAQV2YWx1ZQEJAKIIAQkBAXkBBQFlBAJiYQkBAiE9AgkAoAgBCQEBcQIFAWUFAWcFBHVuaXQEAWYJAQV2YWx1ZQEJAKIIAQkBAW0CBQFlBQFnBAJheAMJAAACCQClCAEIBQFRBmNhbGxlcgUCYU4GCQEBSgECEXBlcm1pc3Npb24gZGVuaWVkAwkAAAIFAmF4BQJheAQCYmIDCQAAAgUCYmEFAmFaCQCUCgIFA25pbAUEdW5pdAQCYmIDCQAAAgUCYVoGBAJiYwkAZAIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAXACBQFlBQFmAAAAAQkAlAoCCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBcQIFAWUFAWcGCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBcAIFAWUFAWYFAmJjBQNuaWwFBHVuaXQEAmJjCQBlAgkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEBcAIFAWUFAWYAAAABCQCUCgIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAXECBQFlBQFnCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBcAIFAWUFAWYFAmJjBQNuaWwFBHVuaXQFAmJiBQJiYgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFRAQxpbmNVbmNsYWltZWQEAWUBZwJiZAJiZQQCYU4JAQV2YWx1ZQEJAKIIAQkBAXkBBQFlBAFmCQEFdmFsdWUBCQCiCAEJAQFtAgUBZQUBZwQCYXgDCQAAAgkApQgBCAUBUQZjYWxsZXIFAmFOBgkBAUoBAhFwZXJtaXNzaW9uIGRlbmllZAMJAAACBQJheAUCYXgEAmJmAwkAAAIFAWUCBnd4bG9jawYJAQFKAQIPaW52YWxpZCBwcm9ncmFtAwkAAAIFAmJmBQJiZgQCYmcDCQEIY29udGFpbnMCCQELdmFsdWVPckVsc2UCCQCiCAEJAQF6AQUBZgIABQFlBgkBAUoBCQCsAgIJAKwCAgkArAICAhhyZWZlcnJlciBub3QgaW4gcHJvZ3JhbT0FAWUCBiBhZGRyPQUBZgMJAAACBQJiZwUCYmcEAmJoAwkBCGNvbnRhaW5zAgkBC3ZhbHVlT3JFbHNlAgkAoggBCQEBegEFAWcCAAUBZQYJAQFKAQkArAICCQCsAgIJAKwCAgIYcmVmZXJyYWwgbm90IGluIHByb2dyYW09BQFlAgYgYWRkcj0FAWcDCQAAAgUCYmgFAmJoBAJiaQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEBdAEFAWYAAAQCYUgJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAWsCBQFlBQFmAAAEAmJqCQELdmFsdWVPckVsc2UCCQCfCAEJAQF0AQUBZwAABAJiawkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEBbAIFAWUFAWcAAAQCYUkJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAXYBBQFlAAAEAmJsCQBkAgUCYmkFAmJkBAJhSgkAZAIFAmFIBQJiZAQCYm0JAGQCBQJiagUCYmUEAmJuCQBkAgUCYmsFAmJlCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQF0AQUBZgUCYmwJAMwIAgkBDEludGVnZXJFbnRyeQIJAQF0AQUBZwUCYm0JAMwIAgkBDEludGVnZXJFbnRyeQIJAQFrAgUBZQUBZgUCYUoJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFsAgUBZQUBZwUCYm4JAMwIAgkBDEludGVnZXJFbnRyeQIJAQF2AQUBZQkAZAIJAGQCBQJhSQUCYmQFAmJlBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BUQEXaW5jVW5jbGFpbWVkV2l0aFBheW1lbnQCAWUCYUQEAmJmAwkAAAIFAWUCCXd4U3BvdEZlZQYJAQFKAQIPaW52YWxpZCBwcm9ncmFtAwkAAAIFAmJmBQJiZgoBAmJvAgJicAJicQQCYnIJAAACCQDYBAEJAQV2YWx1ZQEIBQJicQdhc3NldElkCQEFdmFsdWUBCQCiCAEJAQF3AQUBZQQCYnMDBQJicgYJAQFKAQIQaW52YWxpZCBhc3NldCBpZAMJAAACBQJicwUCYnMJAM0IAgUCYnAIBQJicQZhbW91bnQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4EAmJ0CgACYnUIBQFRCHBheW1lbnRzCgACYnYJAJADAQUCYnUKAAJidwUDbmlsCgECYngCAmJ5AmJ6AwkAZwIFAmJ6BQJidgUCYnkJAQJibwIFAmJ5CQCRAwIFAmJ1BQJiegoBAmJBAgJieQJiegMJAGcCBQJiegUCYnYFAmJ5CQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQJiQQIJAQJieAIJAQJieAIJAQJieAIJAQJieAIJAQJieAIJAQJieAIJAQJieAIJAQJieAIJAQJieAIJAQJieAIFAmJ3AAAAAQACAAMABAAFAAYABwAIAAkACgQCYUUKAAJiQgkA/AcEBQR0aGlzAh9pbmNVbmNsYWltZWRXaXRoUGF5bWVudEludGVybmFsCQDMCAIFAmJ0CQDMCAIFAWUJAMwIAgUCYUQJAMwIAgAACQDMCAIAAAUDbmlsBQNuaWwDCQABAgUCYkICA0ludAUCYkIJAAIBCQCsAgIJAAMBBQJiQgIYIGNvdWxkbid0IGJlIGNhc3QgdG8gSW50AwkAAAIFAmFFBQJhRQQCYWcJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAKIIAQkBAXgBBQFlBAJhaAkA2QQBCQEFdmFsdWUBCQCiCAEJAQF3AQUBZQkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhZwUCYUUFAmFoBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BUQEFY2xhaW0BAWUEAVkDCQELdmFsdWVPckVsc2UCCQCgCAEJAQFuAQUBZQcGCQEBSgECFnByb2dyYW0gZG9lcyBub3QgZXhpc3QDCQAAAgUBWQUBWQQBWAkAAAIJAKUIAQgFAVEGY2FsbGVyCQEFdmFsdWUBCQCiCAEJAQF5AQUBZQQBaQMFAVgJAKUIAQgFAVEMb3JpZ2luQ2FsbGVyCQClCAEIBQFRBmNhbGxlcgQCYkMJAPwHBAUEdGhpcwINY2xhaW1JbnRlcm5hbAkAzAgCBQFlCQDMCAIFAWkJAMwIAgUBWAUDbmlsBQNuaWwDCQAAAgUCYkMFAmJDCQCUCgIFA25pbAUCYkMJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BUQEJY2xhaW1CdWxrAAQCYkQJAKUIAQgFAVEGY2FsbGVyBAJiRQkAoggBCQEBegEJAKUIAQgFAVEGY2FsbGVyBAJiRgMJAQlpc0RlZmluZWQBBQJiRQYJAQFKAQIUbm8gcmVmZXJyYWwgcHJvZ3JhbXMDCQAAAgUCYkYFAmJGBAJiRwkAtQkCCQEFdmFsdWUBBQJiRQICX18EAmJICQD8BwQFBHRoaXMCEWNsYWltQnVsa0ludGVybmFsCQDMCAIFAmJECQDMCAIFAmJHCQDMCAIAAAUDbmlsBQNuaWwDCQAAAgUCYkgFAmJICQCUCgIFA25pbAUCYkgJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BUQENY2xhaW1SRUFET05MWQIBZQFFBAJhYQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEBaAIFAWUFAUUAAAQCYWIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAWsCBQFlBQFFAAAJAJQKAgUDbmlsCQDMCAIFAmFiCQDMCAIFAmFhBQNuaWwBUQERY2xhaW1CdWxrUkVBRE9OTFkBAmF1BAJhaQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEBcgEFAmF1AAAEAmFqCQELdmFsdWVPckVsc2UCCQCfCAEJAQF0AQUCYXUAAAkAlAoCBQNuaWwJAMwIAgUCYWoJAMwIAgUCYWkFA25pbAFRAQxzZXRUb3RhbEtleXMCAWUBcwQCYkkJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAWgCBQFlBQFzAAAEAmJKCQELdmFsdWVPckVsc2UCCQCfCAEJAQFqAgUBZQUBcwAABAJhQQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEBawIFAWUFAXMAAAQCYksJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAWwCBQFlBQFzAAAEAmFpCQBkAgUCYkkFAmJKBAJhagkAZAIFAmFBBQJiSwkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBcgEFAXMFAmFpCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBdAEFAXMFAmFqBQNuaWwFBHVuaXQBAmJMAQJiTQAEAmJOBAFOCQEBTAADCQABAgUBTgIKQnl0ZVZlY3RvcgQBUwUBTgUBUwMJAAECBQFOAgRVbml0CAUCYkwPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmJMCWJvZHlCeXRlcwkAkQMCCAUCYkwGcHJvb2ZzAAAFAmJOgQYUSg==", "height": 2562780, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: A8x9rZyXp95QyYfHAvu9ewpFJU1fMKAB1Je8auYDMKni Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let a = "__" | |
5 | + | ||
6 | + | func b () = makeString(["%s", "wxAssetId"], a) | |
7 | + | ||
8 | + | ||
9 | + | let c = makeString(["%s", "backendPublicKey"], a) | |
10 | + | ||
11 | + | func d (e,f,g) = makeString(["%s%s%s%s", "existsReferrerToReferral", e, f, g], a) | |
12 | + | ||
13 | + | ||
14 | + | func h (e,i) = makeString(["%s%s%s", "claimedReferrer", e, i], a) | |
15 | + | ||
16 | + | ||
17 | + | func j (e,i) = makeString(["%s%s%s", "claimedReferral", e, i], a) | |
18 | + | ||
19 | + | ||
20 | + | func k (e,i) = makeString(["%s%s%s", "unclaimedReferrer", e, i], a) | |
21 | + | ||
22 | + | ||
23 | + | func l (e,i) = makeString(["%s%s%s", "unclaimedReferral", e, i], a) | |
24 | + | ||
25 | + | ||
26 | + | func m (e,g) = makeString(["%s%s%s", "referrer", e, g], a) | |
27 | + | ||
28 | + | ||
29 | + | func n (e) = makeString(["%s%s", "programName", e], a) | |
30 | + | ||
31 | + | ||
32 | + | func o (e,f) = makeString(["%s%s%s", "totalReferralCount", e, f], a) | |
33 | + | ||
34 | + | ||
35 | + | func p (e,f) = makeString(["%s%s%s", "activeReferralCount", e, f], a) | |
36 | + | ||
37 | + | ||
38 | + | func q (e,g) = makeString(["%s%s%s", "activeReferral", e, g], a) | |
39 | + | ||
40 | + | ||
41 | + | func r (s) = makeString(["%s%s", "claimedTotalAddress", s], a) | |
42 | + | ||
43 | + | ||
44 | + | func t (s) = makeString(["%s%s", "unclaimedTotalAddress", s], a) | |
45 | + | ||
46 | + | ||
47 | + | func u (e) = makeString(["%s%s", "claimedTotal", e], a) | |
48 | + | ||
49 | + | ||
50 | + | func v (e) = makeString(["%s%s", "rewardsTotal", e], a) | |
51 | + | ||
52 | + | ||
53 | + | func w (e) = makeString(["%s%s", "rewardAssetId", e], a) | |
54 | + | ||
55 | + | ||
56 | + | func x (e) = makeString(["%s%s", "treasuryContract", e], a) | |
57 | + | ||
58 | + | ||
59 | + | func y (e) = makeString(["%s%s", "implementationContract", e], a) | |
60 | + | ||
61 | + | ||
62 | + | func z (s) = makeString(["%s%s", "allReferralPrograms", s], a) | |
63 | + | ||
64 | + | ||
65 | + | func A () = "%s__managerPublicKey" | |
66 | + | ||
67 | + | ||
68 | + | func B () = "%s__managerVaultAddress" | |
69 | + | ||
70 | + | ||
71 | + | func C () = addressFromStringValue(getStringValue(B())) | |
72 | + | ||
73 | + | ||
74 | + | func D (e,E,F,G) = makeString(["%s%s%s%s%s", "history", G, e, E, F], a) | |
75 | + | ||
76 | + | ||
77 | + | func H (I) = makeString(["%d%d%d", toString(lastBlock.height), toString(lastBlock.timestamp), toString(I)], a) | |
78 | + | ||
79 | + | ||
80 | + | func J (K) = throw(makeString(["referral.ride:", K], " ")) | |
81 | + | ||
82 | + | ||
83 | + | func L () = { | |
84 | + | let M = C() | |
85 | + | let N = getString(M, A()) | |
86 | + | if ($isInstanceOf(N, "String")) | |
87 | + | then { | |
88 | + | let O = N | |
89 | + | fromBase58String(O) | |
90 | + | } | |
91 | + | else if ($isInstanceOf(N, "Unit")) | |
92 | + | then unit | |
93 | + | else throw("Match error") | |
94 | + | } | |
95 | + | ||
96 | + | ||
97 | + | func P (Q) = { | |
98 | + | let R = J("permission denied") | |
99 | + | let N = L() | |
100 | + | if ($isInstanceOf(N, "ByteVector")) | |
101 | + | then { | |
102 | + | let S = N | |
103 | + | if ((Q.callerPublicKey == S)) | |
104 | + | then true | |
105 | + | else R | |
106 | + | } | |
107 | + | else if ($isInstanceOf(N, "Unit")) | |
108 | + | then if ((Q.caller == this)) | |
109 | + | then true | |
110 | + | else R | |
111 | + | else throw("Match error") | |
112 | + | } | |
113 | + | ||
114 | + | ||
115 | + | func T (s,e) = { | |
116 | + | let U = valueOrElse(getString(z(s)), "") | |
117 | + | let V = if (contains(U, e)) | |
118 | + | then nil | |
119 | + | else { | |
120 | + | let W = if ((U == "")) | |
121 | + | then e | |
122 | + | else makeString([U, e], a) | |
123 | + | [StringEntry(z(s), W)] | |
124 | + | } | |
125 | + | V | |
126 | + | } | |
127 | + | ||
128 | + | ||
129 | + | @Callable(Q) | |
130 | + | func claimInternal (e,i,X) = { | |
131 | + | let Y = if (valueOrElse(getBoolean(n(e)), false)) | |
132 | + | then true | |
133 | + | else J("program does not exist") | |
134 | + | if ((Y == Y)) | |
135 | + | then { | |
136 | + | let Z = if (X) | |
137 | + | then $Tuple5(valueOrElse(getInteger(j(e, i)), 0), valueOrElse(getInteger(l(e, i)), 0), j(e, i), l(e, i), D(e, i, toBase58String(Q.transactionId), "claimReferral")) | |
138 | + | else $Tuple5(valueOrElse(getInteger(h(e, i)), 0), valueOrElse(getInteger(k(e, i)), 0), h(e, i), k(e, i), D(e, i, toBase58String(Q.transactionId), "claimReferrer")) | |
139 | + | let aa = Z._1 | |
140 | + | let ab = Z._2 | |
141 | + | let ac = Z._3 | |
142 | + | let ad = Z._4 | |
143 | + | let ae = Z._5 | |
144 | + | let af = valueOrElse(getInteger(u(e)), 0) | |
145 | + | let ag = value(addressFromString(value(getString(x(e))))) | |
146 | + | let ah = fromBase58String(value(getString(w(e)))) | |
147 | + | let ai = valueOrElse(getInteger(r(i)), 0) | |
148 | + | let aj = valueOrElse(getInteger(t(i)), 0) | |
149 | + | if (if (X) | |
150 | + | then (ab == 0) | |
151 | + | else false) | |
152 | + | then $Tuple2(nil, 0) | |
153 | + | else { | |
154 | + | let ak = if ((ab > 0)) | |
155 | + | then true | |
156 | + | else J("nothing to claim") | |
157 | + | if ((ak == ak)) | |
158 | + | then { | |
159 | + | let al = (aa + ab) | |
160 | + | let am = (af + ab) | |
161 | + | let an = (ai + ab) | |
162 | + | let ao = (aj - ab) | |
163 | + | let ap = value(assetBalance(this, ah)) | |
164 | + | if ((ap == ap)) | |
165 | + | then { | |
166 | + | let aq = invoke(ag, "withdrawReferralReward", [ab], nil) | |
167 | + | if ((aq == aq)) | |
168 | + | then { | |
169 | + | let ar = value(assetBalance(this, ah)) | |
170 | + | if ((ar == ar)) | |
171 | + | then { | |
172 | + | let as = (ar - ap) | |
173 | + | if ((as == as)) | |
174 | + | then { | |
175 | + | let at = if ((as == ab)) | |
176 | + | then true | |
177 | + | else J("insufficient balance on referral contract") | |
178 | + | if ((at == at)) | |
179 | + | then $Tuple2([IntegerEntry(ac, al), IntegerEntry(ad, 0), IntegerEntry(u(e), am), IntegerEntry(r(i), an), IntegerEntry(t(i), ao), ScriptTransfer(addressFromStringValue(i), ab, ah), StringEntry(ae, H(ab))], ab) | |
180 | + | else throw("Strict value is not equal to itself.") | |
181 | + | } | |
182 | + | else throw("Strict value is not equal to itself.") | |
183 | + | } | |
184 | + | else throw("Strict value is not equal to itself.") | |
185 | + | } | |
186 | + | else throw("Strict value is not equal to itself.") | |
187 | + | } | |
188 | + | else throw("Strict value is not equal to itself.") | |
189 | + | } | |
190 | + | else throw("Strict value is not equal to itself.") | |
191 | + | } | |
192 | + | } | |
193 | + | else throw("Strict value is not equal to itself.") | |
194 | + | } | |
195 | + | ||
196 | + | ||
197 | + | ||
198 | + | @Callable(Q) | |
199 | + | func claimBulkInternal (au,av,aw) = { | |
200 | + | let ax = if ((Q.caller == this)) | |
201 | + | then true | |
202 | + | else J("permission denied") | |
203 | + | if ((ax == ax)) | |
204 | + | then if ((aw == size(av))) | |
205 | + | then nil | |
206 | + | else { | |
207 | + | let e = av[aw] | |
208 | + | let ay = valueOrElse(getInteger(k(e, au)), 0) | |
209 | + | let ae = D(e, au, toBase58String(Q.transactionId), "claimBulk") | |
210 | + | let az = invoke(this, "claimBulkInternal", [au, av, (aw + 1)], nil) | |
211 | + | if ((az == az)) | |
212 | + | then { | |
213 | + | let aA = valueOrElse(getInteger(k(e, au)), 0) | |
214 | + | let aB = if ((aA > 0)) | |
215 | + | then invoke(this, "claimInternal", [e, au, false], nil) | |
216 | + | else unit | |
217 | + | if ((aB == aB)) | |
218 | + | then $Tuple2(nil, [az, aB]) | |
219 | + | else throw("Strict value is not equal to itself.") | |
220 | + | } | |
221 | + | else throw("Strict value is not equal to itself.") | |
222 | + | } | |
223 | + | else throw("Strict value is not equal to itself.") | |
224 | + | } | |
225 | + | ||
226 | + | ||
227 | + | ||
228 | + | @Callable(Q) | |
229 | + | func incUnclaimedWithPaymentInternal (aC,e,aD,aw,aE) = { | |
230 | + | let ax = if ((Q.caller == this)) | |
231 | + | then true | |
232 | + | else J("permission denied") | |
233 | + | if ((ax == ax)) | |
234 | + | then { | |
235 | + | let aF = (size(aC) == size(aD)) | |
236 | + | let aG = if (aF) | |
237 | + | then true | |
238 | + | else J("lists in args must be same size") | |
239 | + | if ((aG == aG)) | |
240 | + | then if ((aw == size(aC))) | |
241 | + | then $Tuple2(nil, aE) | |
242 | + | else { | |
243 | + | let f = aD[aw] | |
244 | + | let aj = valueOrElse(getInteger(t(f)), 0) | |
245 | + | let aH = valueOrElse(getInteger(k(e, f)), 0) | |
246 | + | let aI = valueOrElse(getInteger(v(e)), 0) | |
247 | + | let ao = (aj + aC[aw]) | |
248 | + | let aJ = (aH + aC[aw]) | |
249 | + | let aK = (aE + aC[aw]) | |
250 | + | let aL = invoke(this, "incUnclaimedWithPaymentInternal", [aC, e, aD, (aw + 1), aK], nil) | |
251 | + | if ((aL == aL)) | |
252 | + | then { | |
253 | + | let aM = T(f, e) | |
254 | + | $Tuple2(([IntegerEntry(t(f), ao), IntegerEntry(k(e, f), aJ), IntegerEntry(v(e), (aI + aC[aw]))] ++ aM), aL) | |
255 | + | } | |
256 | + | else throw("Strict value is not equal to itself.") | |
257 | + | } | |
258 | + | else throw("Strict value is not equal to itself.") | |
259 | + | } | |
260 | + | else throw("Strict value is not equal to itself.") | |
261 | + | } | |
262 | + | ||
263 | + | ||
264 | + | ||
265 | + | @Callable(Q) | |
266 | + | func createReferralProgram (e,ag,aN,ah) = { | |
267 | + | let ax = P(Q) | |
268 | + | if ((ax == ax)) | |
269 | + | then { | |
270 | + | let aO = if ((getBoolean(n(e)) == unit)) | |
271 | + | then true | |
272 | + | else J("program name already exists") | |
273 | + | if ((aO == aO)) | |
274 | + | then { | |
275 | + | let aP = if (!(contains(e, a))) | |
276 | + | then !(contains(e, " ")) | |
277 | + | else false | |
278 | + | let Y = if (aP) | |
279 | + | then true | |
280 | + | else J("invalid program name") | |
281 | + | if ((Y == Y)) | |
282 | + | then { | |
283 | + | let aQ = if ((assetInfo(fromBase58String(ah)) != unit)) | |
284 | + | then true | |
285 | + | else J("invalid reward asset id") | |
286 | + | if ((aQ == aQ)) | |
287 | + | then $Tuple2([BooleanEntry(n(e), true), StringEntry(x(e), ag), StringEntry(y(e), aN), StringEntry(w(e), ah), IntegerEntry(v(e), 0)], unit) | |
288 | + | else throw("Strict value is not equal to itself.") | |
289 | + | } | |
290 | + | else throw("Strict value is not equal to itself.") | |
291 | + | } | |
292 | + | else throw("Strict value is not equal to itself.") | |
293 | + | } | |
294 | + | else throw("Strict value is not equal to itself.") | |
295 | + | } | |
296 | + | ||
297 | + | ||
298 | + | ||
299 | + | @Callable(Q) | |
300 | + | func createPair (e,f,g,aR) = { | |
301 | + | let Y = if (valueOrElse(getBoolean(n(e)), false)) | |
302 | + | then true | |
303 | + | else J("program does not exist") | |
304 | + | if ((Y == Y)) | |
305 | + | then { | |
306 | + | let aS = if ((getBoolean(d(e, f, g)) == unit)) | |
307 | + | then true | |
308 | + | else J("pair already exists") | |
309 | + | if ((aS == aS)) | |
310 | + | then { | |
311 | + | let aT = if ((f != g)) | |
312 | + | then true | |
313 | + | else J("cannot refer to self") | |
314 | + | if ((aT == aT)) | |
315 | + | then { | |
316 | + | let aU = toBytes(makeString([e, f, g], ":")) | |
317 | + | let aV = fromBase58String(value(getString(c))) | |
318 | + | let aW = if (sigVerify(aU, aR, aV)) | |
319 | + | then true | |
320 | + | else J("bad signature") | |
321 | + | if ((aW == aW)) | |
322 | + | then { | |
323 | + | let aX = valueOrElse(getInteger(o(e, f)), 0) | |
324 | + | let aY = (aX + 1) | |
325 | + | let aM = T(f, e) | |
326 | + | let V = T(g, e) | |
327 | + | $Tuple2((([BooleanEntry(d(e, f, g), true), IntegerEntry(o(e, f), aY), StringEntry(m(e, g), f)] ++ aM) ++ V), unit) | |
328 | + | } | |
329 | + | else throw("Strict value is not equal to itself.") | |
330 | + | } | |
331 | + | else throw("Strict value is not equal to itself.") | |
332 | + | } | |
333 | + | else throw("Strict value is not equal to itself.") | |
334 | + | } | |
335 | + | else throw("Strict value is not equal to itself.") | |
336 | + | } | |
337 | + | ||
338 | + | ||
339 | + | ||
340 | + | @Callable(Q) | |
341 | + | func updateReferralActivity (e,g,aZ) = { | |
342 | + | let aN = value(getString(y(e))) | |
343 | + | let ba = (getBoolean(q(e, g)) != unit) | |
344 | + | let f = value(getString(m(e, g))) | |
345 | + | let ax = if ((toString(Q.caller) == aN)) | |
346 | + | then true | |
347 | + | else J("permission denied") | |
348 | + | if ((ax == ax)) | |
349 | + | then { | |
350 | + | let bb = if ((ba == aZ)) | |
351 | + | then $Tuple2(nil, unit) | |
352 | + | else { | |
353 | + | let bb = if ((aZ == true)) | |
354 | + | then { | |
355 | + | let bc = (valueOrElse(getInteger(p(e, f)), 0) + 1) | |
356 | + | $Tuple2([BooleanEntry(q(e, g), true), IntegerEntry(p(e, f), bc)], unit) | |
357 | + | } | |
358 | + | else { | |
359 | + | let bc = (valueOrElse(getInteger(p(e, f)), 0) - 1) | |
360 | + | $Tuple2([DeleteEntry(q(e, g)), IntegerEntry(p(e, f), bc)], unit) | |
361 | + | } | |
362 | + | bb | |
363 | + | } | |
364 | + | bb | |
365 | + | } | |
366 | + | else throw("Strict value is not equal to itself.") | |
367 | + | } | |
368 | + | ||
369 | + | ||
370 | + | ||
371 | + | @Callable(Q) | |
372 | + | func incUnclaimed (e,g,bd,be) = { | |
373 | + | let aN = value(getString(y(e))) | |
374 | + | let f = value(getString(m(e, g))) | |
375 | + | let ax = if ((toString(Q.caller) == aN)) | |
376 | + | then true | |
377 | + | else J("permission denied") | |
378 | + | if ((ax == ax)) | |
379 | + | then { | |
380 | + | let bf = if ((e == "wxlock")) | |
381 | + | then true | |
382 | + | else J("invalid program") | |
383 | + | if ((bf == bf)) | |
384 | + | then { | |
385 | + | let bg = if (contains(valueOrElse(getString(z(f)), ""), e)) | |
386 | + | then true | |
387 | + | else J(((("referrer not in program=" + e) + " addr=") + f)) | |
388 | + | if ((bg == bg)) | |
389 | + | then { | |
390 | + | let bh = if (contains(valueOrElse(getString(z(g)), ""), e)) | |
391 | + | then true | |
392 | + | else J(((("referral not in program=" + e) + " addr=") + g)) | |
393 | + | if ((bh == bh)) | |
394 | + | then { | |
395 | + | let bi = valueOrElse(getInteger(t(f)), 0) | |
396 | + | let aH = valueOrElse(getInteger(k(e, f)), 0) | |
397 | + | let bj = valueOrElse(getInteger(t(g)), 0) | |
398 | + | let bk = valueOrElse(getInteger(l(e, g)), 0) | |
399 | + | let aI = valueOrElse(getInteger(v(e)), 0) | |
400 | + | let bl = (bi + bd) | |
401 | + | let aJ = (aH + bd) | |
402 | + | let bm = (bj + be) | |
403 | + | let bn = (bk + be) | |
404 | + | $Tuple2([IntegerEntry(t(f), bl), IntegerEntry(t(g), bm), IntegerEntry(k(e, f), aJ), IntegerEntry(l(e, g), bn), IntegerEntry(v(e), ((aI + bd) + be))], unit) | |
405 | + | } | |
406 | + | else throw("Strict value is not equal to itself.") | |
407 | + | } | |
408 | + | else throw("Strict value is not equal to itself.") | |
409 | + | } | |
410 | + | else throw("Strict value is not equal to itself.") | |
411 | + | } | |
412 | + | else throw("Strict value is not equal to itself.") | |
413 | + | } | |
414 | + | ||
415 | + | ||
416 | + | ||
417 | + | @Callable(Q) | |
418 | + | func incUnclaimedWithPayment (e,aD) = { | |
419 | + | let bf = if ((e == "wxSpotFee")) | |
420 | + | then true | |
421 | + | else J("invalid program") | |
422 | + | if ((bf == bf)) | |
423 | + | then { | |
424 | + | func bo (bp,bq) = { | |
425 | + | let br = (toBase58String(value(bq.assetId)) == value(getString(w(e)))) | |
426 | + | let bs = if (br) | |
427 | + | then true | |
428 | + | else J("invalid asset id") | |
429 | + | if ((bs == bs)) | |
430 | + | then (bp :+ bq.amount) | |
431 | + | else throw("Strict value is not equal to itself.") | |
432 | + | } | |
433 | + | ||
434 | + | let bt = { | |
435 | + | let bu = Q.payments | |
436 | + | let bv = size(bu) | |
437 | + | let bw = nil | |
438 | + | func bx (by,bz) = if ((bz >= bv)) | |
439 | + | then by | |
440 | + | else bo(by, bu[bz]) | |
441 | + | ||
442 | + | func bA (by,bz) = if ((bz >= bv)) | |
443 | + | then by | |
444 | + | else throw("List size exceeds 10") | |
445 | + | ||
446 | + | bA(bx(bx(bx(bx(bx(bx(bx(bx(bx(bx(bw, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10) | |
447 | + | } | |
448 | + | let aE = { | |
449 | + | let bB = invoke(this, "incUnclaimedWithPaymentInternal", [bt, e, aD, 0, 0], nil) | |
450 | + | if ($isInstanceOf(bB, "Int")) | |
451 | + | then bB | |
452 | + | else throw(($getType(bB) + " couldn't be cast to Int")) | |
453 | + | } | |
454 | + | if ((aE == aE)) | |
455 | + | then { | |
456 | + | let ag = addressFromStringValue(value(getString(x(e)))) | |
457 | + | let ah = fromBase58String(value(getString(w(e)))) | |
458 | + | [ScriptTransfer(ag, aE, ah)] | |
459 | + | } | |
460 | + | else throw("Strict value is not equal to itself.") | |
461 | + | } | |
462 | + | else throw("Strict value is not equal to itself.") | |
463 | + | } | |
464 | + | ||
465 | + | ||
466 | + | ||
467 | + | @Callable(Q) | |
468 | + | func claim (e) = { | |
469 | + | let Y = if (valueOrElse(getBoolean(n(e)), false)) | |
470 | + | then true | |
471 | + | else J("program does not exist") | |
472 | + | if ((Y == Y)) | |
473 | + | then { | |
474 | + | let X = (toString(Q.caller) == value(getString(y(e)))) | |
475 | + | let i = if (X) | |
476 | + | then toString(Q.originCaller) | |
477 | + | else toString(Q.caller) | |
478 | + | let bC = invoke(this, "claimInternal", [e, i, X], nil) | |
479 | + | if ((bC == bC)) | |
480 | + | then $Tuple2(nil, bC) | |
481 | + | else throw("Strict value is not equal to itself.") | |
482 | + | } | |
483 | + | else throw("Strict value is not equal to itself.") | |
484 | + | } | |
485 | + | ||
486 | + | ||
487 | + | ||
488 | + | @Callable(Q) | |
489 | + | func claimBulk () = { | |
490 | + | let bD = toString(Q.caller) | |
491 | + | let bE = getString(z(toString(Q.caller))) | |
492 | + | let bF = if (isDefined(bE)) | |
493 | + | then true | |
494 | + | else J("no referral programs") | |
495 | + | if ((bF == bF)) | |
496 | + | then { | |
497 | + | let bG = split(value(bE), "__") | |
498 | + | let bH = invoke(this, "claimBulkInternal", [bD, bG, 0], nil) | |
499 | + | if ((bH == bH)) | |
500 | + | then $Tuple2(nil, bH) | |
501 | + | else throw("Strict value is not equal to itself.") | |
502 | + | } | |
503 | + | else throw("Strict value is not equal to itself.") | |
504 | + | } | |
505 | + | ||
506 | + | ||
507 | + | ||
508 | + | @Callable(Q) | |
509 | + | func claimREADONLY (e,E) = { | |
510 | + | let aa = valueOrElse(getInteger(h(e, E)), 0) | |
511 | + | let ab = valueOrElse(getInteger(k(e, E)), 0) | |
512 | + | $Tuple2(nil, [ab, aa]) | |
513 | + | } | |
514 | + | ||
515 | + | ||
516 | + | ||
517 | + | @Callable(Q) | |
518 | + | func claimBulkREADONLY (au) = { | |
519 | + | let ai = valueOrElse(getInteger(r(au)), 0) | |
520 | + | let aj = valueOrElse(getInteger(t(au)), 0) | |
521 | + | $Tuple2(nil, [aj, ai]) | |
522 | + | } | |
523 | + | ||
524 | + | ||
525 | + | ||
526 | + | @Callable(Q) | |
527 | + | func setTotalKeys (e,s) = { | |
528 | + | let bI = valueOrElse(getInteger(h(e, s)), 0) | |
529 | + | let bJ = valueOrElse(getInteger(j(e, s)), 0) | |
530 | + | let aA = valueOrElse(getInteger(k(e, s)), 0) | |
531 | + | let bK = valueOrElse(getInteger(l(e, s)), 0) | |
532 | + | let ai = (bI + bJ) | |
533 | + | let aj = (aA + bK) | |
534 | + | $Tuple2([IntegerEntry(r(s), ai), IntegerEntry(t(s), aj)], unit) | |
535 | + | } | |
536 | + | ||
537 | + | ||
538 | + | @Verifier(bL) | |
539 | + | func bM () = { | |
540 | + | let bN = { | |
541 | + | let N = L() | |
542 | + | if ($isInstanceOf(N, "ByteVector")) | |
543 | + | then { | |
544 | + | let S = N | |
545 | + | S | |
546 | + | } | |
547 | + | else if ($isInstanceOf(N, "Unit")) | |
548 | + | then bL.senderPublicKey | |
549 | + | else throw("Match error") | |
550 | + | } | |
551 | + | sigVerify(bL.bodyBytes, bL.proofs[0], bN) | |
552 | + | } | |
553 | + |
github/deemru/w8io/169f3d6 33.03 ms ◑