tx · 5GuuAPnfZGHq14h3oz7GsFuadQ9dHEYdjyb2XtDpp6A5

3N6aJHiTjhKavSmVkiSdtAgU5MsXqmwrXcC:  -0.05000000 Waves

2023.07.12 15:24 [2662676] smart account 3N6aJHiTjhKavSmVkiSdtAgU5MsXqmwrXcC > SELF 0.00000000 Waves

{ "type": 13, "id": "5GuuAPnfZGHq14h3oz7GsFuadQ9dHEYdjyb2XtDpp6A5", "fee": 5000000, "feeAssetId": null, "timestamp": 1689164703280, "version": 2, "chainId": 84, "sender": "3N6aJHiTjhKavSmVkiSdtAgU5MsXqmwrXcC", "senderPublicKey": "F7aRDmkUVHuEAsxKucs37pQEfypFPa7PgHZ3ojFZVmB2", "proofs": [ "5c1zRXXDxZSPp85z5vSfKTHgrCG9EEfQpPaTbUfdVbVrw9TRWRQqP9acqVX8YNCrgLgFbKUz9RvSdhpKhpWQyccV" ], "script": "base64:BgLdDwgCEggKBggIAQEICBIECgIBARIDCgEIEgMKAQESAwoBCBIDCgEIEgMKAQgSBAoCCAESBQoDCAgBEgASAwoBCCIDU0VQIgVFTVBUWSIJUFJFQ0lTSU9OIhVNQVhfUkFURV9IRUlHSFRfREVMVEEiD09SQUNMRV9ERUNJTUFMUyIRTElRVUlEQVRJT05fQk9OVVMiGExJUVVJREFUSU9OX1BST1RPQ09MX0ZFRSISSWR4VmF1bHRBc3NldENvdW50IhNJZHhWYXVsdEFzc2V0QW1vdW50IhFJZHhWYXVsdEFzc2V0UmF0ZSIEZGl2cCICX3giAl95IgRtdWxwIgRqb2luIgJhciIOa2V5SW5pdGlhbGl6ZWQiFWtleUNvb3JkaW5hdG9yQWRkcmVzcyISa2V5VmVyaWZpZXJBZGRyZXNzIhJrZXlGcm9udGVuZEFkZHJlc3MiEmtleVRyZWFzdXJ5QWRkcmVzcyIQa2V5T3JhY2xlQWRkcmVzcyINa2V5VmF1bHRBc3NldCIHYWRkcmVzcyIFYXNzZXQiD2tleUJhY2tpbmdSYXRpbyITa2V5TGlxdWlkYXRpb25SYXRpbyIZa2V5TGlxdWlkYXRpb25Qcm90b2NvbEZlZSIJa2V5VGlja2VyIhVrZXlNYXhSYXRlSGVpZ2h0RGVsdGEiEmtleUNvbnRyYWN0QXNzZXRJZCIUa2V5T3JhY2xlVGlja2VyUHJpY2UiBnRpY2tlciIaa2V5T3JhY2xlVGlja2VyUHJpY2VIZWlnaHQiCWtleVNpZ25lZCIIX2FkZHJlc3MiBV90eElkIhFrZXlQcm90b2NvbEFjdGl2ZSINaXNJbml0aWFsaXplZCIPbXVzdEluaXRpYWxpemVkIhJtdXN0Tm90SW5pdGlhbGl6ZWQiCG11c3RTZWxmIgFpIgtjb29yZGluYXRvciIGb3JhY2xlIgh2ZXJpZmllciIHJG1hdGNoMCIBcyIKZ2V0QWRkcmVzcyIDa2V5IgNlcnIiEmdldEZyb250ZW5kQWRkcmVzcyISZ2V0VHJlYXN1cnlBZGRyZXNzIhVnZXRNYXhSYXRlSGVpZ2h0RGVsdGEiGWdldExpcXVpZGF0aW9uUHJvdG9jb2xGZWUiCmdldEFzc2V0SWQiCGlzQWN0aXZlIgptdXN0QWN0aXZlIgxtdXN0RnJvbnRlbmQiEm11c3RIYXZlT25lUGF5bWVudCIKaXNQb3NpdGl2ZSIGbnVtYmVyIg1pc05vdE5lZ2F0aXZlIhRnZXRBc3NldElkRnJvbVN0cmluZyIHYXNzZXRJZCIHaXNBc3NldCIBcCINY2hlY2tpbmdBc3NldCICYnYiBG5hbWUiByRtYXRjaDEiDHBheW1lbnRBc3NldCIPZ2V0QmFja2luZ1JhdGlvIhNnZXRMaXF1aWRhdGlvblJhdGlvIgxjaGVja0FkZHJlc3MiFWtleVRvdGFsQXNzZXRBY2NlcHRlZCISa2V5VG90YWxFYXN0TWludGVkIhJrZXlFYXN0TWludGVkTGltaXQiEGtleVN0YWtlckFkZHJlc3MiFWdldFRvdGFsQXNzZXRBY2NlcHRlZCISZ2V0VG90YWxFYXN0TWludGVkIhJnZXRFYXN0TWludGVkTGltaXQiEGdldFN0YWtlckFkZHJlc3MiBnN0YWtlciIIaXNTdGFrZWQiEmNoZWNrQmFja2luZ1JhdGlvcyIDX2JyIgNfbHIiDGdldFZhdWx0RGF0YSIIZnJvbnRlbmQiBXZhdWx0IgF2IgVjb3VudCILYXNzZXRBbW91bnQiBHJhdGUiEGNoZWNrSGVpZ2h0RGVsdGEiC3ByaWNlSGVpZ2h0Ig5tYXhIZWlnaHREZWx0YSILY3VycmVudERpZmYiEGdldEFzc2V0VXNkUHJpY2UiC2NoZWNrSGVpZ2h0IgVwcmljZSILdXBkYXRlVmF1bHQiB19hbW91bnQiDSR0MDEzMDk5MTMxNDgiCG5ld0NvdW50Ig5uZXdBc3NldEFtb3VudCIJYXNzZXRSYXRlIg9jb3VudEVxdWl2YWxlbnQiDGJhY2tpbmdSYXRpbyIFdXNkRXEiBmVhc3RFcSITX2Nvb3JkaW5hdG9yQWRkcmVzcyIOX29yYWNsZUFkZHJlc3MiDV9iYWNraW5nUmF0aW8iEV9saXF1aWRhdGlvblJhdGlvIghfYXNzZXRJZCIHX3RpY2tlciIGY2hlY2tzIgVjaGVjayIQX2Vhc3RNaW50ZWRMaW1pdCIHcGF5bWVudCIKdmF1bHRBc3NldCINJHQwMTU3NzAxNTgyMyIVbmV3VG90YWxBc3NldEFjY2VwdGVkIhJuZXdUb3RhbEVhc3RNaW50ZWQiD2Vhc3RNaW50ZWRMaW1pdCIIZG9BY3Rpb24iDHVwZGF0ZWRWYXVsdCINJHQwMTc0OTcxNzU0MyISX2xpcXVpZGF0b3JBZGRyZXNzIgZfcmF0aW8iDmFzc2V0UmVxdWVzdGVkIg0kdDAxODYzMzE4Njg2IgNmZWUiCmxpcXVpZGF0ZWQiD3RyZWFzdXJ5QWRkcmVzcyIRbGlxdWlkYXRvckFkZHJlc3MiDSR0MDE5NjczMTk3MjMiEGxpcXVpZGF0aW9uUmF0aW8iCXRocmVzaG9sZCICdHgiBnZlcmlmeUYAAWECAl9fAAFiAgAAAWMAgKCUpY0dAAFkAAUAAWUAwIQ9AAFmCQBoAgkAaQIFAWMAZAAFAAFnCQBoAgkAaQIFAWMAZAACAAFoAAEAAWkAAgABagADAQFrAgFsAW0JAG4EBQFsBQFjBQFtBQhIQUxGRVZFTgEBbgIBbAFtCQBuBAUBbAUBbQUBYwUISEFMRkVWRU4BAW8BAXAJALkJAgUBcAUBYQEBcQAJAQFvAQkAzAgCAgIlcwkAzAgCAgtpbml0aWFsaXplZAUDbmlsAQFyAAkBAW8BCQDMCAICAiVzCQDMCAICEmNvb3JkaW5hdG9yQWRkcmVzcwUDbmlsAQFzAAkBAW8BCQDMCAICAiVzCQDMCAICD3ZlcmlmaWVyQWRkcmVzcwUDbmlsAQF0AAkBAW8BCQDMCAICAiVzCQDMCAICD2Zyb250ZW5kQWRkcmVzcwUDbmlsAQF1AAkBAW8BCQDMCAICAiVzCQDMCAICD3RyZWFzdXJ5QWRkcmVzcwUDbmlsAQF2AAkBAW8BCQDMCAICAiVzCQDMCAICDW9yYWNsZUFkZHJlc3MFA25pbAEBdwIBeAF5CQEBbwEJAMwIAgIGJXMlcyVzCQDMCAICBXZhdWx0CQDMCAIFAXgJAMwIAgUBeQUDbmlsAQF6AAkBAW8BCQDMCAICAiVzCQDMCAICDGJhY2tpbmdSYXRpbwUDbmlsAQFBAAkBAW8BCQDMCAICAiVzCQDMCAICEGxpcXVpZGF0aW9uUmF0aW8FA25pbAEBQgAJAQFvAQkAzAgCAgIlcwkAzAgCAhZsaXF1aWRhdGlvblByb3RvY29sRmVlBQNuaWwBAUMACQEBbwEJAMwIAgICJXMJAMwIAgIGdGlja2VyBQNuaWwBAUQACQEBbwEJAMwIAgICJXMJAMwIAgISbWF4UmF0ZUhlaWdodERlbHRhBQNuaWwBAUUACQEBbwEJAMwIAgICJXMJAMwIAgIPY29udHJhY3RBc3NldElkBQNuaWwBAUYBAUcJAQFvAQkAzAgCAgQlcyVzCQDMCAICBXByaWNlCQDMCAIFAUcFA25pbAEBSAEBRwkBAW8BCQDMCAICBCVzJXMJAMwIAgIKbGFzdEhlaWdodAkAzAgCBQFHBQNuaWwBAUkCAUoBSwkBAW8BCQDMCAICBiVzJXMlcwkAzAgCAgZzaWduZWQJAMwIAgUBSgkAzAgCBQFLBQNuaWwBAUwACQEBbwEJAMwIAgICJXMJAMwIAgIOcHJvdG9jb2xBY3RpdmUFA25pbAEBTQAJAQt2YWx1ZU9yRWxzZQIJAJsIAgUEdGhpcwkBAXEABwEBTgADCQEBIQEJAQFNAAkAAgECD05vdCBpbml0aWFsaXplZAUEdW5pdAEBTwADCQEBTQAJAAIBAhNBbHJlYWR5IGluaXRpYWxpemVkBQR1bml0AQFQAQFRAwkBAiE9AggFAVEGY2FsbGVyBQR0aGlzCQACAQIdT25seSBzZWxmIGludm9jYXRpb24gYWxsb3dlZC4FBHVuaXQBAVIACQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkBAXIAAhZDb29yZGluYXRvciBpcyBub3Qgc2V0AQFTAAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJAQF2AAIRT3JhY2xlIGlzIG5vdCBzZXQBAVQABAFVCQCiCAEJAQFyAAMJAAECBQFVAgZTdHJpbmcEAVYFAVUJAJ0IAgkBEUBleHRyTmF0aXZlKDEwNjIpAQUBVgkBAXMAAwkAAQIFAVUCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgEBVwIBWAFZCQERQGV4dHJOYXRpdmUoMTA2MikBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgkBAVIABQFYBQFZAQFaAAkBAVcCCQEBdAACE0Zyb250ZW5kIGlzIG5vdCBzZXQBAmFhAAkBAVcCCQEBdQACE1RyZWFzdXJ5IGlzIG5vdCBzZXQBAmFiAAkBC3ZhbHVlT3JFbHNlAgkAmggCCQEBUgAJAQFEAAUBZAECYWMACQELdmFsdWVPckVsc2UCCQCaCAIJAQFSAAkBAUIABQFnAQJhZAAJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFFAAECYWUACQELdmFsdWVPckVsc2UCCQCbCAIJAQFSAAkBAUwABwECYWYAAwMJAQEhAQkBAmFlAAYJAQEhAQkBAU0ACQACAQItUHJvdG9jb2wgaXMgZGlzYWJsZWQuIFBsZWFzZSBjb250YWN0IHN1cHBvcnQuBQR1bml0AQJhZwEBUQMJAQIhPQIIBQFRBmNhbGxlcgkBAVoACQACAQILTm90IGFsbG93ZWQFBHVuaXQBAmFoAQFRAwkBAiE9AgkAkAMBCAUBUQhwYXltZW50cwABCQACAQIWTXVzdCBoYXZlIG9uZSBwYXltZW50LgUEdW5pdAECYWkBAmFqAwkAZwIAAAUCYWoJAAIBAh1BdHRyaWJ1dGUgc2hvdWxkIGJlIHBvc2l0aXZlLgUEdW5pdAECYWsBAmFqAwkAZgIAAAUCYWoJAAIBAiVBdHRyaWJ1dGUgc2hvdWxkIGJlIHBvc2l0aXZlIG9yIHplcm8uBQR1bml0AQJhbAECYW0DCQAAAgUCYW0CBVdBVkVTBQR1bml0CQDZBAEFAmFtAQJhbgICYW8CYXAEAmFtBAFVBQJhcAMJAAECBQFVAgpCeXRlVmVjdG9yBAJhcQUBVQUCYXEDCQABAgUBVQIGU3RyaW5nBAFWBQFVCQECYWwBBQFWAwkAAQIFAVUCBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgQBVQUCYW0DCQABAgUBVQIKQnl0ZVZlY3RvcgQCYXEFAVUEAmFyBAJhcwkA7AcBBQJhcQMJAAECBQJhcwIFQXNzZXQEAXkFAmFzCAUBeQRuYW1lAwkAAQIFAmFzAgRVbml0CQACAQkArAICAhFDYW4ndCBmaW5kIGFzc2V0IAkA2AQBBQJhcQkAAgECC01hdGNoIGVycm9yBAFZCQACAQkArAICAh5BdHRhY2hlZCBwYXltZW50IGFzc2V0IGlzIG5vdCAFAmFyBAJhcwgFAmFvB2Fzc2V0SWQDCQABAgUCYXMCCkJ5dGVWZWN0b3IEAmF0BQJhcwMJAQIhPQIFAmF0BQJhbQUBWQUEdW5pdAMJAAECBQJhcwIEVW5pdAUBWQkAAgECC01hdGNoIGVycm9yAwkAAQIFAVUCBFVuaXQDCQECIT0CCAUCYW8HYXNzZXRJZAUEdW5pdAkAAgECI0F0dGFjaGVkIHBheW1lbnQgYXNzZXQgaXMgbm90IFdBVkVTBQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAmF1AAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEJAQF6AAIYQmFja2luZyByYXRpbyBpcyBub3Qgc2V0AQJhdgAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnwgBCQEBQQACHExpcXVpZGF0aW9uIHJhdGlvIGlzIG5vdCBzZXQBAmF3AQFKBAFVCQCmCAEFAUoDCQABAgUBVQIHQWRkcmVzcwQBeAUBVQYDCQABAgUBVQIEVW5pdAkAAgECD0ludmFsaWQgYWRkcmVzcwkAAgECC01hdGNoIGVycm9yAQJheAAJAQFvAQkAzAgCAgIlcwkAzAgCAhJ0b3RhbEFzc2V0QWNjZXB0ZWQFA25pbAECYXkACQEBbwEJAMwIAgICJXMJAMwIAgIPdG90YWxFYXN0TWludGVkBQNuaWwBAmF6AAkBAW8BCQDMCAICAiVzCQDMCAICD2Vhc3RNaW50ZWRMaW1pdAUDbmlsAQJhQQAJAQFvAQkAzAgCAgIlcwkAzAgCAg1zdGFrZXJBZGRyZXNzBQNuaWwBAmFCAAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYXgAAAABAmFDAAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYXkAAAABAmFEAAkBC3ZhbHVlT3JFbHNlAgkAnwgBCQECYXoAAAABAmFFAAkBC3ZhbHVlT3JFbHNlAgkAoggBCQECYUEABQFiAQJhRgAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQJhRQABAmFHAAkBAiE9AgkBAmFFAAUBYgECYUgCAmFJAmFKAwMJAGYCAAAFAmFKBgkAZgIAAAUCYUkJAAIBAh5CYWNraW5nIHJhdGlvIG11c3QgYmUgcG9zaXRpdmUDCQBmAgkAZAIFAWMFAWYFAmFKCQACAQIqTGlxdWlkYXRpb24gcmF0aW8gbXVzdCBiZSBoaWdoZXIgdGhhbiAxMDUlAwkAZwIFAmFKBQJhSQkAAgECM0JhY2tpbmcgcmF0aW8gbXVzdCBiZSBoaWdoZXIgdGhhbiBsaXF1aWRhdGlvbiByYXRpbwUEdW5pdAECYUsBAUoEAXkJAQJhZAAEAmFMCQEBWgAEAmFNCQCdCAIFAmFMCQEBdwIFAUoFAXkEAmFOBAFVBQJhTQMJAAECBQFVAgRVbml0CQDMCAICBiVkJWQlZAkAzAgCAgEwCQDMCAICATAJAMwIAgIBMAUDbmlsAwkAAQIFAVUCBlN0cmluZwQBVgUBVQkAtQkCBQFWBQFhCQACAQILTWF0Y2ggZXJyb3IEAmFPCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYU4FAWgEAmFQCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYU4FAWkEAmFRCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYU4FAWoJAJUKAwUCYVAFAmFPBQJhUQECYVIBAmFTBAJhVAkBAmFiAAQCYVUJAGUCCAUJbGFzdEJsb2NrBmhlaWdodAUCYVMDCQBnAgUCYVQFAmFVBQR1bml0CQACAQISTGFyZ2UgcHJpY2UgZGVsdGEuAQJhVgAEAUcJARFAZXh0ck5hdGl2ZSgxMDU4KQEJAQFDAAQCYVMJARFAZXh0ck5hdGl2ZSgxMDUwKQIJAQFTAAkBAUgBBQFHBAJhVwkBAmFSAQUCYVMDCQAAAgUCYVcFAmFXBAJhWAkBEUBleHRyTmF0aXZlKDEwNTApAgkBAVMACQEBRgEFAUcJAGsDBQJhWAUBYwUBZQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECYVkCAUoCYVoEAmJhCQECYUsBBQFKBAJhUAgFAmJhAl8xBAJhTwgFAmJhAl8yBAJiYgkAZAIFAmFPAAEEAmJjCQBkAgUCYVAFAmFaAwkAZgIAAAUCYmMJAAIBAiZTb21ldGhpbmcgd2VudCB3cm9uZy4gQ29udGFjdCBzdXBwb3J0LgQCYmQJAQJhVgAJALkJAgkAzAgCAgYlZCVkJWQJAMwIAgkApAMBBQJiYgkAzAgCCQCkAwEFAmJjCQDMCAIJAKQDAQUCYmQFA25pbAUBYQECYmUBAmFaBAJiZgkBAmF1AAQCYmQJAQJhVgAEAmJnCQEBbgIFAmFaBQJiZAQCYmgJAQFrAgUCYmcFAmJmCQCUCgIFAmJnBQJiaAsBUQEKaW5pdGlhbGl6ZQYCYmkCYmoCYmsCYmwCYm0CYm4EAmJvCQDMCAIJAQFQAQUBUQkAzAgCCQEBTwAJAMwIAgkBAmF3AQUCYmkJAMwIAgkBAmF3AQUCYmoJAMwIAgkBAmFIAgUCYmsFAmJsBQNuaWwDCQAAAgUCYm8FAmJvCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBegAFAmJrCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBQQAFAmJsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFyAAUCYmkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAXYABQJiagkAzAgCCQELU3RyaW5nRW50cnkCCQEBQwAFAmJuCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFFAAUCYm0JAMwIAgkBDEJvb2xlYW5FbnRyeQIJAQFxAAYFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFRAQlzZXRSYXRpb3MCAmJrAmJsBAJibwkAzAgCCQEBTgAJAMwIAgkBAVABBQFRCQDMCAIJAQJhSAIFAmJrBQJibAUDbmlsAwkAAAIFAmJvBQJibwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAXoABQJiawkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAUEABQJibAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVEBCXNldE9yYWNsZQEBSgQCYnAJAMwIAgkBAVABBQFRCQDMCAIJAQJhdwEFAUoFA25pbAMJAAACBQJicAUCYnAJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAXYABQFKBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BUQESc2V0RWFzdE1pbnRlZExpbWl0AQJicQQCYm8JAMwIAgkBAU4ACQDMCAIJAQFQAQUBUQkAzAgCCQECYWsBBQJicQUDbmlsAwkAAAIFAmJvBQJibwkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmF6AAUCYnEFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFRAQlzZXRTdGFrZXIBAUoEAmJvCQDMCAIJAQFOAAkAzAgCCQEBUAEFAVEJAMwIAgkBAmF3AQUBSgUDbmlsAwkAAAIFAmJvBQJibwMJAQJhRwAJAAIBAilVbmFibGUgdG8gcHJvY2VlZC4gU3Rha2VyIGlzIGFscmVhZHkgc2V0LgkAzAgCCQELU3RyaW5nRW50cnkCCQECYUEABQFKBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BUQEEbWludAEBSgQCYnIJAJEDAggFAVEIcGF5bWVudHMAAAQCYnMJAQJhZAAEAmJwCQDMCAIJAQJhZgAJAMwIAgkBAmFnAQUBUQkAzAgCCQECYWgBBQFRCQDMCAIJAQJhbgIFAmJyBQJicwUDbmlsAwkAAAIFAmJwBQJicAQCYnQJAQJiZQEIBQJicgZhbW91bnQEAmJnCAUCYnQCXzEEAmJoCAUCYnQCXzIEAmFNCQECYVkCBQFKCAUCYnIGYW1vdW50BAJidQkAZAIJAQJhQgAIBQJicgZhbW91bnQEAmJ2CQBkAgkBAmFDAAkAaQIFAmJoAGQEAmJ3CQECYUQAAwMJAGYCBQJidwAACQBmAgUCYnYFAmJ3BwkAAgECOFVuYWJsZSB0byBwcm9jZWVkLiBUb28gbXVjaCBFQVNUIG1pbnRlZCB3aXRoIHRoaXMgYXNzZXQuBAJieAMJAQJhRwAJAPwHBAkBAmFGAAIFc3Rha2UFA25pbAkAzAgCBQJicgUDbmlsBQR1bml0AwkAAAIFAmJ4BQJieAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYXgABQJidQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmF5AAUCYnYFA25pbAkAlAoCBQJhTQUCYmgJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BUQEGc3VwcGx5AQFKBAJicgkAkQMCCAUBUQhwYXltZW50cwAABAJicwkBAmFkAAQCYnAJAMwIAgkBAmFmAAkAzAgCCQECYWcBBQFRCQDMCAIJAQJhaAEFAVEJAMwIAgkBAmFuAgUCYnIFAmJzBQNuaWwDCQAAAgUCYnAFAmJwBAJhTQkBAmFZAgUBSggFAmJyBmFtb3VudAQCYnUJAGQCCQECYUIACAUCYnIGYW1vdW50BAJieAMJAQJhRwAJAPwHBAkBAmFGAAIFc3Rha2UFA25pbAkAzAgCBQJicgUDbmlsBQR1bml0AwkAAAIFAmJ4BQJieAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYXgABQJidQUDbmlsBQJhTQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFRAQVjbG9zZQIBSgJhWgQCYnAJAMwIAgkBAmFmAAkAzAgCCQECYWcBBQFRCQDMCAIJAQJhdwEFAUoJAMwIAgkBAmFpAQUCYVoFA25pbAMJAAACBQJicAUCYnAEAmFQCAkBAmFLAQUBSgJfMQMJAGYCBQJhWgUCYVAJAAIBAi1VbmFibGUgdG8gcHJvY2VlZC4gTm90IGVub3VnaCBhc3NldCBpbiB2YXVsdC4DCQBmAgUCYVoJAQJhQgAJAAIBAjBVbmFibGUgdG8gcHJvY2VlZC4gTm90IGVub3VnaCBhc3NldCBpbiB0cmVhc3VyeS4EAmJ5CQECYVkCBQFKCQEBLQEFAmFaBAJiegkBAmJlAQUCYVoEAmJnCAUCYnoCXzEEAmJoCAUCYnoCXzIEAmJ4AwkBAmFHAAkA/AcECQECYUYAAgd1bnN0YWtlCQDMCAIFAmFaBQNuaWwFA25pbAUEdW5pdAMJAAACBQJieAUCYngEAmFtCQECYWwBCQECYWQABAF4CQERQGV4dHJOYXRpdmUoMTA2MikBBQFKBAJidQkAZQIJAQJhQgAFAmFaBAJidgkAZQIJAQJhQwAJAGkCBQJiaABkCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJheAAFAmJ1CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQECYXkABQJidgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQF4BQJhWgUCYW0FA25pbAkAlQoDBQJieQUCYmgFAmJnCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVEBCWxpcXVpZGF0ZQMCYkEBSgJiQgQCYnAJAMwIAgkBAmFmAAkAzAgCCQECYWcBBQFRBQNuaWwDCQAAAgUCYnAFAmJwBAJhUAgJAQJhSwEFAUoCXzEEAmJDCQEBbgIFAmFQBQJiQgMJAGYCBQJiQwUCYVAJAAIBAi1VbmFibGUgdG8gcHJvY2VlZC4gTm90IGVub3VnaCBhc3NldCBpbiB2YXVsdC4DCQBmAgUCYkMJAQJhQgAJAAIBAiRVbmFibGUgdG8gcHJvY2VlZC4gTm90IGVub3VnaCBhc3NldC4EAmJ5CQECYVkCBQFKCQEBLQEFAmJDBAJiRAkBAmJlAQUCYkMEAmJnCAUCYkQCXzEEAmJoCAUCYkQCXzIEAmJ4AwkBAmFHAAkA/AcECQECYUYAAgd1bnN0YWtlCQDMCAIFAmJDBQNuaWwFA25pbAUEdW5pdAMJAAACBQJieAUCYngEAmJFCQEBbgIFAmJDCQECYWMABAJiRgkAZQIFAmJDBQJiRQQCYnUJAGUCCQECYUIABQJiQwQCYnYJAGUCCQECYUMACQBpAgUCYmgAZAQCYkcJAQJhYQAEAmJICQERQGV4dHJOYXRpdmUoMTA2MikBBQJiQQQCYW0JAQJhbAEJAQJhZAAJAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgkBAmF4AAUCYnUJAMwIAgkBDEludGVnZXJFbnRyeQIJAQJheQAFAmJ2CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJIBQJiRgUCYW0JAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUCYkcFAmJFBQJhbQUDbmlsCQCUCgIFAmJ5BQJiaAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFRARJnZXRDdXJyZW50VXNkUHJpY2UACQCUCgIFA25pbAkBAmFWAAFRAQ9nZXRTdWJ2YXVsdEluZm8BAUoEAmFQCAkBAmFLAQUBSgJfMQQCYkkJAQJiZQEFAmFQBAJiZwgFAmJJAl8xBAJiaAgFAmJJAl8yBAJiSgkBAmF2AAQCYksJAQFuAgUCYmcFAmJKCQCUCgIFA25pbAkAlQoDBQJiZwUCYmgFAmJLAQJiTAECYk0ABAFVCQEBVAADCQABAgUBVQIGU3RyaW5nBAF4BQFVCQELdmFsdWVPckVsc2UCCQCbCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAXgJAQFJAgkApQgBBQR0aGlzCQDYBAEIBQJiTAJpZAcJAPQDAwgFAmJMCWJvZHlCeXRlcwkAkQMCCAUCYkwGcHJvb2ZzAAAIBQJiTA9zZW5kZXJQdWJsaWNLZXno9RIx", "height": 2662676, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = "__"
5+
6+let b = ""
7+
8+let c = 1000000000000
9+
10+let d = 5
11+
12+let e = 1000000
13+
14+let f = ((c / 100) * 5)
15+
16+let g = ((c / 100) * 2)
17+
18+let h = 1
19+
20+let i = 2
21+
22+let j = 3
23+
24+func k (l,m) = fraction(l, c, m, HALFEVEN)
25+
26+
27+func n (l,m) = fraction(l, m, c, HALFEVEN)
28+
29+
30+func o (p) = makeString(p, a)
31+
32+
33+func q () = o(["%s", "initialized"])
34+
35+
36+func r () = o(["%s", "coordinatorAddress"])
37+
38+
39+func s () = o(["%s", "verifierAddress"])
40+
41+
42+func t () = o(["%s", "frontendAddress"])
43+
44+
45+func u () = o(["%s", "treasuryAddress"])
46+
47+
48+func v () = o(["%s", "oracleAddress"])
49+
50+
51+func w (x,y) = o(["%s%s%s", "vault", x, y])
52+
53+
54+func z () = o(["%s", "backingRatio"])
55+
56+
57+func A () = o(["%s", "liquidationRatio"])
58+
59+
60+func B () = o(["%s", "liquidationProtocolFee"])
61+
62+
63+func C () = o(["%s", "ticker"])
64+
65+
66+func D () = o(["%s", "maxRateHeightDelta"])
67+
68+
69+func E () = o(["%s", "contractAssetId"])
70+
71+
72+func F (G) = o(["%s%s", "price", G])
73+
74+
75+func H (G) = o(["%s%s", "lastHeight", G])
76+
77+
78+func I (J,K) = o(["%s%s%s", "signed", J, K])
79+
80+
81+func L () = o(["%s", "protocolActive"])
82+
83+
84+func M () = valueOrElse(getBoolean(this, q()), false)
85+
86+
87+func N () = if (!(M()))
88+ then throw("Not initialized")
89+ else unit
90+
91+
92+func O () = if (M())
93+ then throw("Already initialized")
94+ else unit
95+
96+
97+func P (Q) = if ((Q.caller != this))
98+ then throw("Only self invocation allowed.")
99+ else unit
100+
101+
102+func R () = addressFromStringValue(valueOrErrorMessage(getString(r()), "Coordinator is not set"))
103+
104+
105+func S () = addressFromStringValue(valueOrErrorMessage(getString(v()), "Oracle is not set"))
106+
107+
108+func T () = {
109+ let U = getString(r())
110+ if ($isInstanceOf(U, "String"))
111+ then {
112+ let V = U
113+ getString(addressFromStringValue(V), s())
114+ }
115+ else if ($isInstanceOf(U, "Unit"))
116+ then unit
117+ else throw("Match error")
118+ }
119+
120+
121+func W (X,Y) = addressFromStringValue(valueOrErrorMessage(getString(R(), X), Y))
122+
123+
124+func Z () = W(t(), "Frontend is not set")
125+
126+
127+func aa () = W(u(), "Treasury is not set")
128+
129+
130+func ab () = valueOrElse(getInteger(R(), D()), d)
131+
132+
133+func ac () = valueOrElse(getInteger(R(), B()), g)
134+
135+
136+func ad () = getStringValue(E())
137+
138+
139+func ae () = valueOrElse(getBoolean(R(), L()), false)
140+
141+
142+func af () = if (if (!(ae()))
143+ then true
144+ else !(M()))
145+ then throw("Protocol is disabled. Please contact support.")
146+ else unit
147+
148+
149+func ag (Q) = if ((Q.caller != Z()))
150+ then throw("Not allowed")
151+ else unit
152+
153+
154+func ah (Q) = if ((size(Q.payments) != 1))
155+ then throw("Must have one payment.")
156+ else unit
157+
158+
159+func ai (aj) = if ((0 >= aj))
160+ then throw("Attribute should be positive.")
161+ else unit
162+
163+
164+func ak (aj) = if ((0 > aj))
165+ then throw("Attribute should be positive or zero.")
166+ else unit
167+
168+
169+func al (am) = if ((am == "WAVES"))
170+ then unit
171+ else fromBase58String(am)
172+
173+
174+func an (ao,ap) = {
175+ let am = {
176+ let U = ap
177+ if ($isInstanceOf(U, "ByteVector"))
178+ then {
179+ let aq = U
180+ aq
181+ }
182+ else if ($isInstanceOf(U, "String"))
183+ then {
184+ let V = U
185+ al(V)
186+ }
187+ else if ($isInstanceOf(U, "Unit"))
188+ then unit
189+ else throw("Match error")
190+ }
191+ let U = am
192+ if ($isInstanceOf(U, "ByteVector"))
193+ then {
194+ let aq = U
195+ let ar = {
196+ let as = assetInfo(aq)
197+ if ($isInstanceOf(as, "Asset"))
198+ then {
199+ let y = as
200+ y.name
201+ }
202+ else if ($isInstanceOf(as, "Unit"))
203+ then throw(("Can't find asset " + toBase58String(aq)))
204+ else throw("Match error")
205+ }
206+ let Y = throw(("Attached payment asset is not " + ar))
207+ let as = ao.assetId
208+ if ($isInstanceOf(as, "ByteVector"))
209+ then {
210+ let at = as
211+ if ((at != am))
212+ then Y
213+ else unit
214+ }
215+ else if ($isInstanceOf(as, "Unit"))
216+ then Y
217+ else throw("Match error")
218+ }
219+ else if ($isInstanceOf(U, "Unit"))
220+ then if ((ao.assetId != unit))
221+ then throw("Attached payment asset is not WAVES")
222+ else unit
223+ else throw("Match error")
224+ }
225+
226+
227+func au () = valueOrErrorMessage(getInteger(z()), "Backing ratio is not set")
228+
229+
230+func av () = valueOrErrorMessage(getInteger(A()), "Liquidation ratio is not set")
231+
232+
233+func aw (J) = {
234+ let U = addressFromString(J)
235+ if ($isInstanceOf(U, "Address"))
236+ then {
237+ let x = U
238+ true
239+ }
240+ else if ($isInstanceOf(U, "Unit"))
241+ then throw("Invalid address")
242+ else throw("Match error")
243+ }
244+
245+
246+func ax () = o(["%s", "totalAssetAccepted"])
247+
248+
249+func ay () = o(["%s", "totalEastMinted"])
250+
251+
252+func az () = o(["%s", "eastMintedLimit"])
253+
254+
255+func aA () = o(["%s", "stakerAddress"])
256+
257+
258+func aB () = valueOrElse(getInteger(ax()), 0)
259+
260+
261+func aC () = valueOrElse(getInteger(ay()), 0)
262+
263+
264+func aD () = valueOrElse(getInteger(az()), 0)
265+
266+
267+func aE () = valueOrElse(getString(aA()), b)
268+
269+
270+func aF () = addressFromStringValue(aE())
271+
272+
273+func aG () = (aE() != b)
274+
275+
276+func aH (aI,aJ) = if (if ((0 > aJ))
277+ then true
278+ else (0 > aI))
279+ then throw("Backing ratio must be positive")
280+ else if (((c + f) > aJ))
281+ then throw("Liquidation ratio must be higher than 105%")
282+ else if ((aJ >= aI))
283+ then throw("Backing ratio must be higher than liquidation ratio")
284+ else unit
285+
286+
287+func aK (J) = {
288+ let y = ad()
289+ let aL = Z()
290+ let aM = getString(aL, w(J, y))
291+ let aN = {
292+ let U = aM
293+ if ($isInstanceOf(U, "Unit"))
294+ then ["%d%d%d", "0", "0", "0"]
295+ else if ($isInstanceOf(U, "String"))
296+ then {
297+ let V = U
298+ split(V, a)
299+ }
300+ else throw("Match error")
301+ }
302+ let aO = parseIntValue(aN[h])
303+ let aP = parseIntValue(aN[i])
304+ let aQ = parseIntValue(aN[j])
305+ $Tuple3(aP, aO, aQ)
306+ }
307+
308+
309+func aR (aS) = {
310+ let aT = ab()
311+ let aU = (lastBlock.height - aS)
312+ if ((aT >= aU))
313+ then unit
314+ else throw("Large price delta.")
315+ }
316+
317+
318+func aV () = {
319+ let G = getStringValue(C())
320+ let aS = getIntegerValue(S(), H(G))
321+ let aW = aR(aS)
322+ if ((aW == aW))
323+ then {
324+ let aX = getIntegerValue(S(), F(G))
325+ fraction(aX, c, e)
326+ }
327+ else throw("Strict value is not equal to itself.")
328+ }
329+
330+
331+func aY (J,aZ) = {
332+ let ba = aK(J)
333+ let aP = ba._1
334+ let aO = ba._2
335+ let bb = (aO + 1)
336+ let bc = (aP + aZ)
337+ if ((0 > bc))
338+ then throw("Something went wrong. Contact support.")
339+ else {
340+ let bd = aV()
341+ makeString(["%d%d%d", toString(bb), toString(bc), toString(bd)], a)
342+ }
343+ }
344+
345+
346+func be (aZ) = {
347+ let bf = au()
348+ let bd = aV()
349+ let bg = n(aZ, bd)
350+ let bh = k(bg, bf)
351+ $Tuple2(bg, bh)
352+ }
353+
354+
355+@Callable(Q)
356+func initialize (bi,bj,bk,bl,bm,bn) = {
357+ let bo = [P(Q), O(), aw(bi), aw(bj), aH(bk, bl)]
358+ if ((bo == bo))
359+ then [IntegerEntry(z(), bk), IntegerEntry(A(), bl), StringEntry(r(), bi), StringEntry(v(), bj), StringEntry(C(), bn), StringEntry(E(), bm), BooleanEntry(q(), true)]
360+ else throw("Strict value is not equal to itself.")
361+ }
362+
363+
364+
365+@Callable(Q)
366+func setRatios (bk,bl) = {
367+ let bo = [N(), P(Q), aH(bk, bl)]
368+ if ((bo == bo))
369+ then [IntegerEntry(z(), bk), IntegerEntry(A(), bl)]
370+ else throw("Strict value is not equal to itself.")
371+ }
372+
373+
374+
375+@Callable(Q)
376+func setOracle (J) = {
377+ let bp = [P(Q), aw(J)]
378+ if ((bp == bp))
379+ then [StringEntry(v(), J)]
380+ else throw("Strict value is not equal to itself.")
381+ }
382+
383+
384+
385+@Callable(Q)
386+func setEastMintedLimit (bq) = {
387+ let bo = [N(), P(Q), ak(bq)]
388+ if ((bo == bo))
389+ then [IntegerEntry(az(), bq)]
390+ else throw("Strict value is not equal to itself.")
391+ }
392+
393+
394+
395+@Callable(Q)
396+func setStaker (J) = {
397+ let bo = [N(), P(Q), aw(J)]
398+ if ((bo == bo))
399+ then if (aG())
400+ then throw("Unable to proceed. Staker is already set.")
401+ else [StringEntry(aA(), J)]
402+ else throw("Strict value is not equal to itself.")
403+ }
404+
405+
406+
407+@Callable(Q)
408+func mint (J) = {
409+ let br = Q.payments[0]
410+ let bs = ad()
411+ let bp = [af(), ag(Q), ah(Q), an(br, bs)]
412+ if ((bp == bp))
413+ then {
414+ let bt = be(br.amount)
415+ let bg = bt._1
416+ let bh = bt._2
417+ let aM = aY(J, br.amount)
418+ let bu = (aB() + br.amount)
419+ let bv = (aC() + (bh / 100))
420+ let bw = aD()
421+ if (if ((bw > 0))
422+ then (bv > bw)
423+ else false)
424+ then throw("Unable to proceed. Too much EAST minted with this asset.")
425+ else {
426+ let bx = if (aG())
427+ then invoke(aF(), "stake", nil, [br])
428+ else unit
429+ if ((bx == bx))
430+ then $Tuple2([IntegerEntry(ax(), bu), IntegerEntry(ay(), bv)], $Tuple2(aM, bh))
431+ else throw("Strict value is not equal to itself.")
432+ }
433+ }
434+ else throw("Strict value is not equal to itself.")
435+ }
436+
437+
438+
439+@Callable(Q)
440+func supply (J) = {
441+ let br = Q.payments[0]
442+ let bs = ad()
443+ let bp = [af(), ag(Q), ah(Q), an(br, bs)]
444+ if ((bp == bp))
445+ then {
446+ let aM = aY(J, br.amount)
447+ let bu = (aB() + br.amount)
448+ let bx = if (aG())
449+ then invoke(aF(), "stake", nil, [br])
450+ else unit
451+ if ((bx == bx))
452+ then $Tuple2([IntegerEntry(ax(), bu)], aM)
453+ else throw("Strict value is not equal to itself.")
454+ }
455+ else throw("Strict value is not equal to itself.")
456+ }
457+
458+
459+
460+@Callable(Q)
461+func close (J,aZ) = {
462+ let bp = [af(), ag(Q), aw(J), ai(aZ)]
463+ if ((bp == bp))
464+ then {
465+ let aP = aK(J)._1
466+ if ((aZ > aP))
467+ then throw("Unable to proceed. Not enough asset in vault.")
468+ else if ((aZ > aB()))
469+ then throw("Unable to proceed. Not enough asset in treasury.")
470+ else {
471+ let by = aY(J, -(aZ))
472+ let bz = be(aZ)
473+ let bg = bz._1
474+ let bh = bz._2
475+ let bx = if (aG())
476+ then invoke(aF(), "unstake", [aZ], nil)
477+ else unit
478+ if ((bx == bx))
479+ then {
480+ let am = al(ad())
481+ let x = addressFromStringValue(J)
482+ let bu = (aB() - aZ)
483+ let bv = (aC() - (bh / 100))
484+ $Tuple2([IntegerEntry(ax(), bu), IntegerEntry(ay(), bv), ScriptTransfer(x, aZ, am)], $Tuple3(by, bh, bg))
485+ }
486+ else throw("Strict value is not equal to itself.")
487+ }
488+ }
489+ else throw("Strict value is not equal to itself.")
490+ }
491+
492+
493+
494+@Callable(Q)
495+func liquidate (bA,J,bB) = {
496+ let bp = [af(), ag(Q)]
497+ if ((bp == bp))
498+ then {
499+ let aP = aK(J)._1
500+ let bC = n(aP, bB)
501+ if ((bC > aP))
502+ then throw("Unable to proceed. Not enough asset in vault.")
503+ else if ((bC > aB()))
504+ then throw("Unable to proceed. Not enough asset.")
505+ else {
506+ let by = aY(J, -(bC))
507+ let bD = be(bC)
508+ let bg = bD._1
509+ let bh = bD._2
510+ let bx = if (aG())
511+ then invoke(aF(), "unstake", [bC], nil)
512+ else unit
513+ if ((bx == bx))
514+ then {
515+ let bE = n(bC, ac())
516+ let bF = (bC - bE)
517+ let bu = (aB() - bC)
518+ let bv = (aC() - (bh / 100))
519+ let bG = aa()
520+ let bH = addressFromStringValue(bA)
521+ let am = al(ad())
522+ $Tuple2([IntegerEntry(ax(), bu), IntegerEntry(ay(), bv), ScriptTransfer(bH, bF, am), ScriptTransfer(bG, bE, am)], $Tuple2(by, bh))
523+ }
524+ else throw("Strict value is not equal to itself.")
525+ }
526+ }
527+ else throw("Strict value is not equal to itself.")
528+ }
529+
530+
531+
532+@Callable(Q)
533+func getCurrentUsdPrice () = $Tuple2(nil, aV())
534+
535+
536+
537+@Callable(Q)
538+func getSubvaultInfo (J) = {
539+ let aP = aK(J)._1
540+ let bI = be(aP)
541+ let bg = bI._1
542+ let bh = bI._2
543+ let bJ = av()
544+ let bK = n(bg, bJ)
545+ $Tuple2(nil, $Tuple3(bg, bh, bK))
546+ }
547+
548+
549+@Verifier(bL)
550+func bM () = {
551+ let U = T()
552+ if ($isInstanceOf(U, "String"))
553+ then {
554+ let x = U
555+ valueOrElse(getBoolean(addressFromStringValue(x), I(toString(this), toBase58String(bL.id))), false)
556+ }
557+ else sigVerify(bL.bodyBytes, bL.proofs[0], bL.senderPublicKey)
558+ }
559+

github/deemru/w8io/026f985 
25.61 ms