tx · FecnB2t2t1tnm7CExkFGJSt9vGjZCS3Uoqzo8Sy1nELb 3MvXnAcEtL9x3i499UcvTQZPufrT5ZZUEd5: -0.01300000 Waves 2022.10.20 11:14 [2280469] smart account 3MvXnAcEtL9x3i499UcvTQZPufrT5ZZUEd5 > SELF 0.00000000 Waves
{ "type": 13, "id": "FecnB2t2t1tnm7CExkFGJSt9vGjZCS3Uoqzo8Sy1nELb", "fee": 1300000, "feeAssetId": null, "timestamp": 1666253777913, "version": 1, "sender": "3MvXnAcEtL9x3i499UcvTQZPufrT5ZZUEd5", "senderPublicKey": "GSAhb4fdky75LiCZ4p4DDK4rmWpmsgGBg1ZVdtPfmRES", "proofs": [ "MpiwNHqYPTLjNKJGQsowUG3Krzedn8rtEwfqZBAUkrDw125iWDU4PoF5VDdg8xnFWM3DbQGJcFvFcc2ENVC1PmA" ], "script": "base64:BgKpCAgCEgoKCAgIAQEBAQEBEgMKAQgSAwoBCBIFCgMICAESBAoCCAgSAwoBCBIAIgNTRVAiE2tleU1hbmFnZXJQdWJsaWNLZXkiGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5IhBrZXlXaXRoZHJhd0RlbGF5IgZhc3NldEEiBmFzc2V0QiIVa2V5RGVwb3NpdEZlZVBlcm1pbGxlIhZrZXlXaXRoZHJhd0ZlZVBlcm1pbGxlIhNrZXlNaW5BbW91bnREZXBvc2l0IhNrZXlBc3NldHNQYWlyU3RhdHVzIhRrZXlNaW5BbW91bnRXaXRoZHJhdyIKa2V5QmFsYW5jZSILdXNlckFkZHJlc3MiG2tleVRvdGFsRmVlQ29sbGVjdGVkRGVwb3NpdCIca2V5VG90YWxGZWVDb2xsZWN0ZWRXaXRoZHJhdyIUa2V5UHJvY2Vzc0luUHJvZ3Jlc3MiC2hlaWdodEluS2V5Ig5rZXlQcm9jZXNzRG9uZSIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIHJG1hdGNoMCIBcyIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiC211c3RNYW5hZ2VyIgFpIgJwZCICcGsiBmZtdEVyciIDbXNnIgh0aHJvd0VyciINd2l0aGRyYXdEZWxheSIKZGVwb3NpdEZlZSILd2l0aGRyYXdGZWUiEG1pbkFtb3VudERlcG9zaXQiEW1pbkFtb3VudFdpdGhkcmF3IgpwYWlyU3RhdHVzIgtjaGVja0NhbGxlciIQd2l0aGRyYXdEZWxheUtleSIVZGVwb3NpdEZlZVBlcm1pbGxlS2V5IhZ3aXRoZHJhd0ZlZVBlcm1pbGxlS2V5IhNtaW5BbW91bnREZXBvc2l0S2V5IhRtaW5BbW91bnRXaXRoZHJhd0tleSINcGFpclN0YXR1c0tleSIHcGF5bWVudCIFYXNzZXQiCXRvRGVwb3NpdCIDZmVlIhJjdXJyZW50VXNlckJhbGFuY2UiEHRvdGFsQ29tbWlzc2lvbnMiD2NoZWNrUGFpclN0YXR1cyIMY2hlY2tQYXltZW50IgpuZXdCYWxhbmNlIgxjaGVja0JhbGFuY2UiCnRvV2l0aGRyYXciD2Fzc2V0TG9ja0hlaWdodCIWY2hlY2tQcm9jZXNzSW5Qcm9ncmVzcyILY2hlY2tIZWlnaHQiC3RvV2l0aGRyYXdCIg53aXRoZHJhd0Fzc2V0QiILdG9XaXRoZHJhd0EiDndpdGhkcmF3QXNzZXRBIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleRMAAWECAl9fAQFiAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAWMAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAWQCAWUBZgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAg13aXRoZHJhd0RlbGF5CQDMCAIFAWUJAMwIAgUBZgUDbmlsBQFhAQFnAgFlAWYJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgISZGVwb3NpdEZlZVBlcm1pbGxlCQDMCAIFAWUJAMwIAgUBZgUDbmlsBQFhAQFoAgFlAWYJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgITd2l0aGRyYXdGZWVQZXJtaWxsZQkAzAgCBQFlCQDMCAIFAWYFA25pbAUBYQEBaQIBZQFmCQC5CQIJAMwIAgIGJXMlcyVzCQDMCAICEG1pbkFtb3VudERlcG9zaXQJAMwIAgUBZQkAzAgCBQFmBQNuaWwFAWEBAWoCAWUBZgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAhBhc3NldHNQYWlyU3RhdHVzCQDMCAIFAWUJAMwIAgUBZgUDbmlsBQFhAQFrAgFlAWYJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIRbWluQW1vdW50V2l0aGRyYXcJAMwIAgUBZQkAzAgCBQFmBQNuaWwFAWEBAWwDAWUBZgFtCQC5CQIJAMwIAgIIJXMlcyVzJXMJAMwIAgIHYmFsYW5jZQkAzAgCBQFlCQDMCAIFAWYJAMwIAgUBbQUDbmlsBQFhAQFuAgFlAWYJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCAhF0b3RhbEZlZUNvbGxlY3RlZAkAzAgCAgdkZXBvc2l0CQDMCAIFAWUJAMwIAgUBZgUDbmlsBQFhAQFvAgFlAWYJALkJAgkAzAgCAgglcyVzJXMlcwkAzAgCAhF0b3RhbEZlZUNvbGxlY3RlZAkAzAgCAgh3aXRoZHJhdwkAzAgCBQFlCQDMCAIFAWYFA25pbAUBYQEBcAQBbQFlAWYBcQkAuQkCCQDMCAICDCVzJXMlcyVzJXMlZAkAzAgCAg93aXRoZHJhd1Byb2Nlc3MJAMwIAgIKaW5Qcm9ncmVzcwkAzAgCBQFtCQDMCAIFAWUJAMwIAgUBZgkAzAgCCQCkAwEFAXEFA25pbAUBYQEBcgQBbQFlAWYBcQkAuQkCCQDMCAICDCVzJXMlcyVzJXMlZAkAzAgCAg93aXRoZHJhd1Byb2Nlc3MJAMwIAgIEZG9uZQkAzAgCBQFtCQDMCAIFAWUJAMwIAgUBZgkAzAgCCQCkAwEFAXEFA25pbAUBYQEBcwAEAXQJAKIIAQkBAWIAAwkAAQIFAXQCBlN0cmluZwQBdQUBdAkA2QQBBQF1AwkAAQIFAXQCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgEBdgAEAXQJAKIIAQkBAWMAAwkAAQIFAXQCBlN0cmluZwQBdQUBdAkA2QQBBQF1AwkAAQIFAXQCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgEBdwEBeAQBeQkAAgECElBlcm1pc3Npb24gZGVuaWVkLgQBdAkBAXMAAwkAAQIFAXQCCkJ5dGVWZWN0b3IEAXoFAXQDCQAAAggFAXgPY2FsbGVyUHVibGljS2V5BQF6BgUBeQMJAAECBQF0AgRVbml0AwkAAAIIBQF4BmNhbGxlcgUEdGhpcwYFAXkJAAIBAgtNYXRjaCBlcnJvcgEBQQEBQgkAuQkCCQDMCAICFG90Y19tdWx0aWFzc2V0LnJpZGU6CQDMCAIFAUIFA25pbAIBIAEBQwEBQgkAAgEJAQFBAQUBQgcBeAENcmVnaXN0ZXJBc3NldAgBZQFmAUQBRQFGAUcBSAFJBAFKCQEBdwEFAXgDCQAAAgUBSgUBSgQBSwkBAWQCBQFlBQFmBAFMCQEBZwIFAWUFAWYEAU0JAQFoAgUBZQUBZgQBTgkBAWkCBQFlBQFmBAFPCQEBawIFAWUFAWYEAVAJAQFqAgUBZQUBZgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBSwUBRAkAzAgCCQEMSW50ZWdlckVudHJ5AgUBTAUBRQkAzAgCCQEMSW50ZWdlckVudHJ5AgUBTQUBRgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBTgUBRwkAzAgCCQEMSW50ZWdlckVudHJ5AgUBTwUBSAkAzAgCCQEMSW50ZWdlckVudHJ5AgUBUAUBSQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAXgBDnN3YXBBc3NldHNBVG9CAQFmBAFRCQEFdmFsdWUBCQCRAwIIBQF4CHBheW1lbnRzAAAEAWUJANgEAQkBBXZhbHVlAQgFAVEHYXNzZXRJZAQBUgkA2QQBCQEFdmFsdWUBBQFmBAFtCQClCAEIBQF4BmNhbGxlcgQBRwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEJAQFpAgUBZQUBZgkBAUEBAh9UaGlzIGFzc2V0IHBhaXIgZG9lcyBub3QgZXhpc3QuBAFTCAUBUQZhbW91bnQEAUUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBCQEBZwIFAWUFAWYJAQFBAQIzVGhlIGRlcG9zaXQgZmVlIGZvciB0aGlzIHBhaXIgb2YgYXNzZXRzIGlzIG5vdCBzZXQuBAFUCQBoAgkAaQIFAVMA6AcFAUUEAVUJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAWwDBQFlBQFmBQFtAAAEAVYJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAW4CBQFlBQFmAAAEAUkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBCQEBagIFAWUFAWYJAQFBAQI5VGhlIGFzc2V0IHBhaXIgc3RhdHVzIGZvciB0aGlzIHBhaXIgb2YgYXNzZXRzIGlzIG5vdCBzZXQuBAFXAwkAAAIFAUkAAAYJAQFDAQIgVGhlIGNvdXBsZSdzIGRlcG9zaXQgaXMgYmxvY2tlZC4DCQAAAgUBVwUBVwQBWAMJAGcCBQFTBQFHBgkBAUMBAixUaGUgZGVwb3NpdCBhbW91bnQgaXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtLgMJAAACBQFYBQFYBAFZCQBlAgkAZAIFAVUFAVMFAVQEAVoDCQBmAgUBWQAABgkBAUMBAi1UaGUgZmluYWwgYmFsYW5jZSBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMC4DCQAAAgUBWgUBWgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAWwDBQFlBQFmBQFtBQFZCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBbgIFAWUFAWYJAGQCBQFWBQFUCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQF4BmNhbGxlcgkAZQIFAVMFAVQFAVIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgF4ARxpbml0aWFsaXphdGlvblN3YXBBc3NldHNCVG9BAQFlBAFRCQEFdmFsdWUBCQCRAwIIBQF4CHBheW1lbnRzAAAEAmFhCAUBUQZhbW91bnQEAWYJANgEAQkBBXZhbHVlAQgFAVEHYXNzZXRJZAQBbQkApQgBCAUBeAZjYWxsZXIEAUgJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBCQEBawIFAWUFAWYJAQFBAQJBVGhlIG1pbmltdW0gd2l0aGRyYXdhbCBhbW91bnQgZm9yIHRoaXMgcGFpciBvZiBhc3NldHMgaXMgbm90IHNldC4EAmFiCQBkAgUGaGVpZ2h0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ8IAQkBAWQCBQFlBQFmCQEBQQECM1dpdGhkcmF3YWwgZGVsYXkgaXMgbm90IHNldCBmb3IgdGhlIHNwZWNpZmllZCBwYWlyLgQBVQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEJAQFsAwUBZQUBZgUBbQkBAUEBAiFUaGlzIHVzZXIgYmFsYW5jZSBkb2VzIG5vdCBleGlzdC4EAVYJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAW8CBQFlBQFmAAAEAU0JAQFoAgUBZQUBZgQBRgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEFAU0JAQFBAQI2VGhlIHdpdGhkcmF3YWwgZmVlIGZvciB0aGlzIHBhaXIgb2YgYXNzZXRzIGlzIG5vdCBzZXQuBAFUCQBoAgkAaQIFAmFhAOgHBQFGBAFZCQBlAgUBVQUCYWEEAVoDCQBnAgUBWQAABgkBAUMBAiVTd2FwIGFtb3VudCBmYWlsLCBhbW91bnQgaXMgdG8gc21hbGwuAwkAAAIFAVoFAVoEAVgDCQBnAgUCYWEFAUgGCQEBQwECLVRoZSB3aXRoZHJhdyBhbW91bnQgaXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtLgMJAAACBQFYBQFYBAJhYwMJAAACCQCfCAEJAQFwBAUBbQUBZQUBZgUCYWIFBHVuaXQGCQEBQwECOkF0IHRoaXMgaGVpZ2h0LCB0aGVyZSBpcyBhbHJlYWR5IGFuIGV4Y2hhbmdlIG9mIHRoaXMgcGFpci4DCQAAAgUCYWMFAmFjCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBbAMFAWUFAWYFAW0FAVkJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFwBAUBbQUBZQUBZgUCYWIJAGUCBQJhYQUBVAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAW8CBQFlBQFmCQBkAgUBVgUBVAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAXgBDXdpdGhkcmF3QXNzZXQDAWUBZgFxBAFtCQClCAEIBQF4BmNhbGxlcgQCYWEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBCQEBcAQFAW0FAWUFAWYFAXEJAQFBAQJGQXQgdGhpcyBoZWlnaHQsIHdpdGhkcmF3IHdhcyBub3QgaW5pdGlhbGl6ZWQgd2l0aCB0aGlzIHBhaXIgb2YgYXNzZXRzLgQBUgkA2QQBCQEFdmFsdWUBBQFlBAJhZAMJAGcCBQZoZWlnaHQFAXEGCQEBQwEJAKwCAgkArAICAh1XaXRoZHJhd2FsIGlzIHBvc3NpYmxlIGFmdGVyIAkApAMBBQFxAiYgaGVpZ2h0IG9yIHlvdSBoYXZlIGFscmVhZHkgd2l0aGRyYXduLgMJAAACBQJhZAUCYWQJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAXAEBQFtBQFlBQFmBQFxCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBcgQFAW0FAWUFAWYFAXEFAmFhCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQF4BmNhbGxlcgUCYWEFAVIFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgF4AQt3aXRoZHJhd0ZlZQIBZQFmBAFKCQEBdwEFAXgDCQAAAgUBSgUBSgQCYWUJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBAW4CBQFlBQFmAAAEAmFmCQDZBAEJAQV2YWx1ZQEFAWYEAmFnCQELdmFsdWVPckVsc2UCCQCfCAEJAQFvAgUBZQUBZgAABAJhaAkA2QQBCQEFdmFsdWUBBQFlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBbgIFAWUFAWYAAAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBeAZjYWxsZXIFAmFnBQJhaAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAW8CBQFlBQFmAAAJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAXgGY2FsbGVyBQJhZQUCYWYFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgF4AQpzZXRNYW5hZ2VyAQJhaQQBSgkBAXcBBQF4AwkAAAIFAUoFAUoEAmFqCQDZBAEFAmFpAwkAAAIFAmFqBQJhagkAzAgCCQELU3RyaW5nRW50cnkCCQEBYwAFAmFpBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BeAEOY29uZmlybU1hbmFnZXIABAJhawkBAXYABAJhbAMJAQlpc0RlZmluZWQBBQJhawYJAQFDAQITTm8gcGVuZGluZyBtYW5hZ2VyLgMJAAACBQJhbAUCYWwEAmFtAwkAAAIIBQF4D2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCYWsGCQEBQwECHFlvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlci4DCQAAAgUCYW0FAmFtCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFiAAkA2AQBCQEFdmFsdWUBBQJhawkAzAgCCQELRGVsZXRlRW50cnkBCQEBYwAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECYW4BAmFvAAQCYXAEAXQJAQFzAAMJAAECBQF0AgpCeXRlVmVjdG9yBAF6BQF0BQF6AwkAAQIFAXQCBFVuaXQIBQJhbg9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCYW4JYm9keUJ5dGVzCQCRAwIIBQJhbgZwcm9vZnMAAAUCYXBkdaWj", "chainId": 84, "height": 2280469, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: dHmWccVV24gUFnqycf5Mkma6NsgHntaad9Z5ZjjwpRm Next: 84gnY6HC6ERQjGTitcx2UbHM8DgAh1LMJJ85xiRB2b6t Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "__" | |
5 | 5 | ||
6 | 6 | func b () = "%s__managerPublicKey" | |
7 | 7 | ||
8 | 8 | ||
9 | 9 | func c () = "%s__pendingManagerPublicKey" | |
10 | 10 | ||
11 | 11 | ||
12 | 12 | func d (e,f) = makeString(["%s%s%s", "withdrawDelay", e, f], a) | |
13 | 13 | ||
14 | 14 | ||
15 | 15 | func g (e,f) = makeString(["%s%s%s", "depositFeePermille", e, f], a) | |
16 | 16 | ||
17 | 17 | ||
18 | 18 | func h (e,f) = makeString(["%s%s%s", "withdrawFeePermille", e, f], a) | |
19 | 19 | ||
20 | 20 | ||
21 | 21 | func i (e,f) = makeString(["%s%s%s", "minAmountDeposit", e, f], a) | |
22 | 22 | ||
23 | 23 | ||
24 | 24 | func j (e,f) = makeString(["%s%s%s", "assetsPairStatus", e, f], a) | |
25 | 25 | ||
26 | 26 | ||
27 | 27 | func k (e,f) = makeString(["%s%s%s", "minAmountWithdraw", e, f], a) | |
28 | 28 | ||
29 | 29 | ||
30 | 30 | func l (e,f,m) = makeString(["%s%s%s%s", "balance", e, f, m], a) | |
31 | 31 | ||
32 | 32 | ||
33 | 33 | func n (e,f) = makeString(["%s%s%s%s", "totalFeeCollected", "deposit", e, f], a) | |
34 | 34 | ||
35 | 35 | ||
36 | 36 | func o (e,f) = makeString(["%s%s%s%s", "totalFeeCollected", "withdraw", e, f], a) | |
37 | 37 | ||
38 | 38 | ||
39 | 39 | func p (m,e,f,q) = makeString(["%s%s%s%s%s%d", "withdrawProcess", "inProgress", m, e, f, toString(q)], a) | |
40 | 40 | ||
41 | 41 | ||
42 | 42 | func r (m,e,f,q) = makeString(["%s%s%s%s%s%d", "withdrawProcess", "done", m, e, f, toString(q)], a) | |
43 | 43 | ||
44 | 44 | ||
45 | 45 | func s () = { | |
46 | 46 | let t = getString(b()) | |
47 | 47 | if ($isInstanceOf(t, "String")) | |
48 | 48 | then { | |
49 | 49 | let u = t | |
50 | 50 | fromBase58String(u) | |
51 | 51 | } | |
52 | 52 | else if ($isInstanceOf(t, "Unit")) | |
53 | 53 | then unit | |
54 | 54 | else throw("Match error") | |
55 | 55 | } | |
56 | 56 | ||
57 | 57 | ||
58 | 58 | func v () = { | |
59 | 59 | let t = getString(c()) | |
60 | 60 | if ($isInstanceOf(t, "String")) | |
61 | 61 | then { | |
62 | 62 | let u = t | |
63 | 63 | fromBase58String(u) | |
64 | 64 | } | |
65 | 65 | else if ($isInstanceOf(t, "Unit")) | |
66 | 66 | then unit | |
67 | 67 | else throw("Match error") | |
68 | 68 | } | |
69 | 69 | ||
70 | 70 | ||
71 | 71 | func w (x) = { | |
72 | 72 | let y = throw("Permission denied.") | |
73 | 73 | let t = s() | |
74 | 74 | if ($isInstanceOf(t, "ByteVector")) | |
75 | 75 | then { | |
76 | 76 | let z = t | |
77 | 77 | if ((x.callerPublicKey == z)) | |
78 | 78 | then true | |
79 | 79 | else y | |
80 | 80 | } | |
81 | 81 | else if ($isInstanceOf(t, "Unit")) | |
82 | 82 | then if ((x.caller == this)) | |
83 | 83 | then true | |
84 | 84 | else y | |
85 | 85 | else throw("Match error") | |
86 | 86 | } | |
87 | 87 | ||
88 | 88 | ||
89 | 89 | func A (B) = makeString(["otc_multiasset.ride:", B], " ") | |
90 | 90 | ||
91 | 91 | ||
92 | 92 | func C (B) = throw(A(B)) | |
93 | 93 | ||
94 | 94 | ||
95 | 95 | @Callable(x) | |
96 | 96 | func registerAsset (e,f,D,E,F,G,H,I) = { | |
97 | 97 | let J = w(x) | |
98 | 98 | if ((J == J)) | |
99 | 99 | then { | |
100 | 100 | let K = d(e, f) | |
101 | 101 | let L = g(e, f) | |
102 | 102 | let M = h(e, f) | |
103 | 103 | let N = i(e, f) | |
104 | 104 | let O = k(e, f) | |
105 | 105 | let P = j(e, f) | |
106 | 106 | [IntegerEntry(K, D), IntegerEntry(L, E), IntegerEntry(M, F), IntegerEntry(N, G), IntegerEntry(O, H), IntegerEntry(P, I)] | |
107 | 107 | } | |
108 | 108 | else throw("Strict value is not equal to itself.") | |
109 | 109 | } | |
110 | 110 | ||
111 | 111 | ||
112 | 112 | ||
113 | 113 | @Callable(x) | |
114 | 114 | func swapAssetsAToB (f) = { | |
115 | 115 | let Q = value(x.payments[0]) | |
116 | 116 | let e = toBase58String(value(Q.assetId)) | |
117 | 117 | let R = fromBase58String(value(f)) | |
118 | 118 | let m = toString(x.caller) | |
119 | 119 | let G = valueOrErrorMessage(getInteger(i(e, f)), A("This asset pair does not exist.")) | |
120 | 120 | let S = Q.amount | |
121 | 121 | let E = valueOrErrorMessage(getInteger(g(e, f)), A("The deposit fee for this pair of assets is not set.")) | |
122 | 122 | let T = ((S / 1000) * E) | |
123 | 123 | let U = valueOrElse(getInteger(l(e, f, m)), 0) | |
124 | 124 | let V = valueOrElse(getInteger(n(e, f)), 0) | |
125 | 125 | let I = valueOrErrorMessage(getInteger(j(e, f)), A("The asset pair status for this pair of assets is not set.")) | |
126 | 126 | let W = if ((I == 0)) | |
127 | 127 | then true | |
128 | 128 | else C("The couple's deposit is blocked.") | |
129 | 129 | if ((W == W)) | |
130 | 130 | then { | |
131 | 131 | let X = if ((S >= G)) | |
132 | 132 | then true | |
133 | 133 | else C("The deposit amount is less than the minimum.") | |
134 | 134 | if ((X == X)) | |
135 | 135 | then { | |
136 | 136 | let Y = ((U + S) - T) | |
137 | 137 | let Z = if ((Y > 0)) | |
138 | 138 | then true | |
139 | 139 | else C("The final balance is less than or equal to 0.") | |
140 | 140 | if ((Z == Z)) | |
141 | 141 | then [IntegerEntry(l(e, f, m), Y), IntegerEntry(n(e, f), (V + T)), ScriptTransfer(x.caller, (S - T), R)] | |
142 | 142 | else throw("Strict value is not equal to itself.") | |
143 | 143 | } | |
144 | 144 | else throw("Strict value is not equal to itself.") | |
145 | 145 | } | |
146 | 146 | else throw("Strict value is not equal to itself.") | |
147 | 147 | } | |
148 | 148 | ||
149 | 149 | ||
150 | 150 | ||
151 | 151 | @Callable(x) | |
152 | 152 | func initializationSwapAssetsBToA (e) = { | |
153 | 153 | let Q = value(x.payments[0]) | |
154 | 154 | let aa = Q.amount | |
155 | 155 | let f = toBase58String(value(Q.assetId)) | |
156 | 156 | let m = toString(x.caller) | |
157 | 157 | let H = valueOrErrorMessage(getInteger(k(e, f)), A("The minimum withdrawal amount for this pair of assets is not set.")) | |
158 | 158 | let ab = (height + valueOrErrorMessage(getInteger(d(e, f)), A("Withdrawal delay is not set for the specified pair."))) | |
159 | 159 | let U = valueOrErrorMessage(getInteger(l(e, f, m)), A("This user balance does not exist.")) | |
160 | 160 | let V = valueOrElse(getInteger(o(e, f)), 0) | |
161 | 161 | let M = h(e, f) | |
162 | 162 | let F = valueOrErrorMessage(getInteger(M), A("The withdrawal fee for this pair of assets is not set.")) | |
163 | 163 | let T = ((aa / 1000) * F) | |
164 | 164 | let Y = (U - aa) | |
165 | 165 | let Z = if ((Y >= 0)) | |
166 | 166 | then true | |
167 | 167 | else C("Swap amount fail, amount is to small.") | |
168 | 168 | if ((Z == Z)) | |
169 | 169 | then { | |
170 | 170 | let X = if ((aa >= H)) | |
171 | 171 | then true | |
172 | 172 | else C("The withdraw amount is less than the minimum.") | |
173 | 173 | if ((X == X)) | |
174 | 174 | then { | |
175 | 175 | let ac = if ((getInteger(p(m, e, f, ab)) == unit)) | |
176 | 176 | then true | |
177 | 177 | else C("At this height, there is already an exchange of this pair.") | |
178 | 178 | if ((ac == ac)) | |
179 | 179 | then [IntegerEntry(l(e, f, m), Y), IntegerEntry(p(m, e, f, ab), (aa - T)), IntegerEntry(o(e, f), (V + T))] | |
180 | 180 | else throw("Strict value is not equal to itself.") | |
181 | 181 | } | |
182 | 182 | else throw("Strict value is not equal to itself.") | |
183 | 183 | } | |
184 | 184 | else throw("Strict value is not equal to itself.") | |
185 | 185 | } | |
186 | 186 | ||
187 | 187 | ||
188 | 188 | ||
189 | 189 | @Callable(x) | |
190 | 190 | func withdrawAsset (e,f,q) = { | |
191 | 191 | let m = toString(x.caller) | |
192 | 192 | let aa = valueOrErrorMessage(getInteger(p(m, e, f, q)), A("At this height, withdraw was not initialized with this pair of assets.")) | |
193 | 193 | let R = fromBase58String(value(e)) | |
194 | 194 | let ad = if ((height >= q)) | |
195 | 195 | then true | |
196 | 196 | else C((("Withdrawal is possible after " + toString(q)) + " height or you have already withdrawn.")) | |
197 | 197 | if ((ad == ad)) | |
198 | 198 | then [DeleteEntry(p(m, e, f, q)), IntegerEntry(r(m, e, f, q), aa), ScriptTransfer(x.caller, aa, R)] | |
199 | 199 | else throw("Strict value is not equal to itself.") | |
200 | 200 | } | |
201 | 201 | ||
202 | 202 | ||
203 | 203 | ||
204 | 204 | @Callable(x) | |
205 | 205 | func withdrawFee (e,f) = { | |
206 | 206 | let J = w(x) | |
207 | 207 | if ((J == J)) | |
208 | 208 | then { | |
209 | 209 | let ae = valueOrElse(getInteger(n(e, f)), 0) | |
210 | 210 | let af = fromBase58String(value(f)) | |
211 | 211 | let ag = valueOrElse(getInteger(o(e, f)), 0) | |
212 | 212 | let ah = fromBase58String(value(e)) | |
213 | 213 | [IntegerEntry(n(e, f), 0), ScriptTransfer(x.caller, ag, ah), IntegerEntry(o(e, f), 0), ScriptTransfer(x.caller, ae, af)] | |
214 | 214 | } | |
215 | 215 | else throw("Strict value is not equal to itself.") | |
216 | 216 | } | |
217 | 217 | ||
218 | 218 | ||
219 | 219 | ||
220 | 220 | @Callable(x) | |
221 | 221 | func setManager (ai) = { | |
222 | 222 | let J = w(x) | |
223 | 223 | if ((J == J)) | |
224 | 224 | then { | |
225 | 225 | let aj = fromBase58String(ai) | |
226 | 226 | if ((aj == aj)) | |
227 | 227 | then [StringEntry(c(), ai)] | |
228 | 228 | else throw("Strict value is not equal to itself.") | |
229 | 229 | } | |
230 | 230 | else throw("Strict value is not equal to itself.") | |
231 | 231 | } | |
232 | 232 | ||
233 | 233 | ||
234 | 234 | ||
235 | 235 | @Callable(x) | |
236 | 236 | func confirmManager () = { | |
237 | 237 | let ak = v() | |
238 | 238 | let al = if (isDefined(ak)) | |
239 | 239 | then true | |
240 | 240 | else C("No pending manager.") | |
241 | 241 | if ((al == al)) | |
242 | 242 | then { | |
243 | 243 | let am = if ((x.callerPublicKey == value(ak))) | |
244 | 244 | then true | |
245 | 245 | else C("You are not pending manager.") | |
246 | 246 | if ((am == am)) | |
247 | 247 | then [StringEntry(b(), toBase58String(value(ak))), DeleteEntry(c())] | |
248 | 248 | else throw("Strict value is not equal to itself.") | |
249 | 249 | } | |
250 | 250 | else throw("Strict value is not equal to itself.") | |
251 | 251 | } | |
252 | 252 | ||
253 | 253 | ||
254 | 254 | @Verifier(an) | |
255 | 255 | func ao () = { | |
256 | 256 | let ap = { | |
257 | 257 | let t = s() | |
258 | 258 | if ($isInstanceOf(t, "ByteVector")) | |
259 | 259 | then { | |
260 | 260 | let z = t | |
261 | 261 | z | |
262 | 262 | } | |
263 | 263 | else if ($isInstanceOf(t, "Unit")) | |
264 | 264 | then an.senderPublicKey | |
265 | 265 | else throw("Match error") | |
266 | 266 | } | |
267 | 267 | sigVerify(an.bodyBytes, an.proofs[0], ap) | |
268 | 268 | } | |
269 | 269 |
github/deemru/w8io/169f3d6 88.31 ms ◑![]()