tx · 3nbDoQet1dyK3yZkip8c1UbB6DdDiBjTbz66nwyHkhc8

3MsC1Cit1aGB6qPW1hvkyGP2Gx79K1mtUAk:  -0.01500000 Waves

2023.01.11 13:38 [2400176] smart account 3MsC1Cit1aGB6qPW1hvkyGP2Gx79K1mtUAk > SELF 0.00000000 Waves

{ "type": 13, "id": "3nbDoQet1dyK3yZkip8c1UbB6DdDiBjTbz66nwyHkhc8", "fee": 1500000, "feeAssetId": null, "timestamp": 1673433550541, "version": 1, "sender": "3MsC1Cit1aGB6qPW1hvkyGP2Gx79K1mtUAk", "senderPublicKey": "2rdeGwVMkuRfRdUgrYaekNmjnegHokhyDx1z6TJq525F", "proofs": [ "3S6BSRiXQSd7cizKK9ev2iqXKyK8u3KaggY8tyLQ9X3TDvatyffEUjhZTPaRwUZf5nqsE7QonPjJJc1sJdz3uzrE" ], "script": "base64:BgLaEggCEgcKBQgICAEIEgMKAQESABIAEgUKAwgICBIDCgEIEgQKAgIBEgMKAQgSAwoBCBIAIgNTRVAiB3dyYXBFcnIiA21zZyIIdGhyb3dFcnIiD2dldFN0cmluZ09yRmFpbCIDa2V5IhBnZXRCb29sZWFuT3JGYWlsIg5mYWlsRXhlY3V0ZUdldCIMYmFzZUFzc2V0U3RyIg51c2VyQWRkcmVzc1N0ciIKZ2V0VHhJZFN0ciILa2V5QXNzZXRDZmciFmtleU5leHRJbnRlcm5hbEFzc2V0SWQiDGtleVByaWNlTGFzdCIVaW50ZXJuYWxCYXNldEFzc2V0U3RyIhJrZXlUb3BVcExhc3RIZWlnaHQiBnNlbmRlciIPa2V5UHJpY2VIaXN0b3J5IgFoIgl0aW1lc3RhbXAiDmtleVRvdGFsTG9ja2VkIhRrZXlUb3RhbExvY2tlZEJ5VXNlciIUaW50ZXJuYWxCYXNlQXNzZXRTdHIiH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQiEWludGVybmFsQmFzZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIhxrZXlNYXBwaW5nc1NoYXJlMmJhc2VBc3NldElkIg1zaGFyZUFzc2V0U3RyIhxrZXlNYXBwaW5nc0Jhc2VBc3NldDJzaGFyZUlkIhdrZXlTaHV0ZG93blB1dE9wZXJhdGlvbiILa2V5U2h1dGRvd24iEmtleVNodXRkb3duTWFuYWdlciISSWR4Q2ZnU2hhcmVBc3NldElkIhdJZHhDZmdJbnRlcm5hbEJhc2VBc3NldCIcSWR4Q2ZnRGVjaW1hbHNNdWx0Qm90aEFzc2V0cyIXSWR4Q2ZnRGVjaW1hbHNNdWx0UHJpY2UiFElkeENmZ0dldERlbGF5QmxvY2tzIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIHJG1hdGNoMCIBcyIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiFXBlcm1pc3Npb25EZW5pZWRFcnJvciIIbXVzdFRoaXMiAWkiC211c3RNYW5hZ2VyIgJwayIMZGF0YUFzc2V0Q2ZnIhZkZWNpbWFsc011bHRCb3RoQXNzZXRzIhFkZWNpbWFsc011bHRQcmljZSIQZ2V0RGVsYXlJbkJsb2NrcyITSWR4VG90YWxMb2NrZWRTaGFyZSISSWR4VG90YWxMb2NrZWRCYXNlIg9kYXRhVG90YWxMb2NrZWQiEHNoYXJlQXNzZXRBbW91bnQiD2Jhc2VBc3NldEFtb3VudCIPcmVhZFRvdGFsTG9ja2VkIhB0b3RhbExvY2tlZEFycmF5IgxrZXlPcGVyYXRpb24iDW9wZXJhdGlvblR5cGUiC3VzZXJBZGRyZXNzIgR0eElkIg1JZHhPcGVyU3RhdHVzIg9JZHhPcGVySW5BbW91bnQiDElkeE9wZXJQcmljZSIQSWR4T3Blck91dEFtb3VudCISSWR4T3BlclN0YXJ0SGVpZ2h0IhVJZHhPcGVyU3RhcnRUaW1lc3RhbXAiEElkeE9wZXJFbmRIZWlnaHQiE0lkeE9wZXJFbmRUaW1lc3RhbXAiHnByaXZhdGVEYXRhT3BlcmF0aW9uQWxsU3RyaW5ncyIGc3RhdHVzIg1pbkFzc2V0QW1vdW50IgVwcmljZSIOb3V0QXNzZXRBbW91bnQiC3N0YXJ0SGVpZ2h0Ig5zdGFydFRpbWVzdGFtcCIJZW5kSGVpZ2h0IgxlbmRUaW1lc3RhbXAiDWRhdGFPcGVyYXRpb24iHGRhdGFPcGVyYXRpb25FeGVjdXRpb25VcGRhdGUiDWN1cnJPcGVyQXJyYXkiCW5ld1N0YXR1cyIPbmV3RW5kVGltZXN0YW1wIhJyZWFkQXNzZXRDZmdPckZhaWwiFGluY3JlbWVudFRvdGFsTG9ja2VkIglkYXRhQXJyYXkiFGRlY3JlbWVudFRvdGFsTG9ja2VkIhBnZW5lcmljQ2FsY1ByaWNlIgtiYXNlQXNzZXRJZCIPdG9wVXBCYXNlQW1vdW50IgxzaGFyZUFzc2V0SWQiFXRvdGFsTG9ja2VkQmFzZUFtb3VudCIQYmFzZUFzc2V0QmFsYW5jZSIfYmFzZUFzc2V0QmFsYW5jZUNvbnNpZGVyaW5nTG9jayINc2hhcmVFbWlzc2lvbiIJY2FsY1ByaWNlIhtwcml2YXRlQ3VycmVudFN5c1BhcmFtc1JFU1QiCGNmZ0FycmF5IghzeXNTdGF0ZSIOc2hhcmVBc3NldE5hbWUiD3NoYXJlQXNzZXREZXNjciIQZ2V0RGVsYXlpbkJsb2NrcyIWc2h1dGRvd25NYW5hZ2VyQWRkcmVzcyIIZGVjaW1hbHMiFXNoYXJlQXNzZXRJc3N1ZUFjdGlvbiIKc3RhcnRQcmljZSIUaW50ZXJuYWxCYXNlQXNzZXR0SWQiE2ludGVybmFsQmFzZUFzc2V0SWQiFmludGVybmFsQmFzZUFzc2V0SWRTdHIiDmJhc2VBc3NldElkU3RyIgNwbXQiDGlzUHV0QmxvY2tlZCIIc2h1dGRvd24iDGNhbGxlclB1YlN0ciIOZ2V0RGVsYXlCbG9ja3MiDG9wZXJhdGlvbktleSINb3BlcmF0aW9uRGF0YSINYXNzZXRDZmdBcnJheSIOb3BlcmF0aW9uQXJyYXkiDWluU2hhcmVBbW91bnQiDW91dEJhc2VBbW91bnQiCnBtdEFzc2V0SWQiC3BtdEFzc2V0U3RyIhJ0b3BVcExhc3RIZWlnaHRLRVkiD3RvcFVwTGFzdEhlaWdodCIHYXNzZXRJZCIGYW1vdW50IhZscFN0YWtpbmdQb29sc0NvbnRyYWN0IgZjaGVja3MiDGlzUmVpc3N1YWJsZSINc3lzU3RhdGVUdXBsZSIIcmVzdERhdGEiF3BlbmRpbmdNYW5hZ2VyUHVibGljS2V5IgtjaGVja0NhbGxlciIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleTcAAWECAl9fAQFiAQFjCQACAQkAuQkCCQDMCAICEGxwX3N0YWtpbmcucmlkZToJAMwIAgUBYwUDbmlsAgEgAQFkAQFjCQACAQkBAWIBBQFjAQFlAQFmCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUBZgkArAICAhVObyBkYXRhIGZvciB0aGlzLmtleT0FAWYBAWcBAWYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmwgCBQR0aGlzBQFmCQCsAgICFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUBZgEBaAQBYwFpAWoBawkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFAWMCDzogYmFzZUFzc2V0U3RyPQUBaQIQIHVzZXJBZGRyZXNzU3RyPQUBagIMIGdldFR4SWRTdHI9BQFrAQFsAQFpCQCsAgICFyVzJXMlc19fY29uZmlnX19hc3NldF9fBQFpAQFtAAIXJXNfX25leHRJbnRlcm5hbEFzc2V0SWQBAW4BAW8JAKwCAgIVJXMlcyVkX19wcmljZV9fbGFzdF9fBQFvAQFwAgFvAXEJALkJAgkAzAgCAh8lcyVzJXMlZCVzX190b3B1cF9fbGFzdF9faGVpZ2h0CQDMCAIFAW8JAMwIAgUBcQUDbmlsBQFhAQFyAwFvAXMBdAkAuQkCCQDMCAICGiVzJXMlZCVkJWRfX3ByaWNlX19oaXN0b3J5CQDMCAIFAW8JAMwIAgkApAMBBQFzCQDMCAIJAKQDAQUBdAUDbmlsBQFhAQF1AQFvCQCsAgICFyVzJXMlZF9fdG90YWxfX2xvY2tlZF9fBQFvAQF2AgF3AWoJALkJAgkAzAgCAhclcyVzJWQlc19fdG90YWxfX2xvY2tlZAkAzAgCBQF3CQDMCAIFAWoFA25pbAUBYQEBeAEBeQkArAICAiglcyVzJWRfX21hcHBpbmdzX19pbnRlcm5hbDJiYXNlQXNzZXRJZF9fCQCkAwEFAXkBAXoBAWkJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUBaQEBQQEBQgkArAICAiUlcyVzJXNfX21hcHBpbmdzX19zaGFyZTJiYXNlQXNzZXRJZF9fBQFCAQFDAQFpCQCsAgICJSVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJzaGFyZUlkX18FAWkBAUQBAXcJAKwCAgIXJXMlcyVkX19zaHV0ZG93bl9fcHV0X18FAXcBAUUBAXcJAKwCAgIQJXMlZF9fc2h1dGRvd25fXwUBdwEBRgEBdwkArAICAhslcyVzJWRfX3NodXRkb3duX19tYW5hZ2VyX18FAXcAAUcAAQABSAACAAFJAAMAAUoABAABSwAFAQFMAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAU0AAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAU4ABAFPCQCiCAEJAQFMAAMJAAECBQFPAgZTdHJpbmcEAVAFAU8JANkEAQUBUAMJAAECBQFPAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAVEABAFPCQCiCAEJAQFNAAMJAAECBQFPAgZTdHJpbmcEAVAFAU8JANkEAQUBUAMJAAECBQFPAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAAVIJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAEBUwEBVAMJAAACCAUBVAZjYWxsZXIFBHRoaXMGBQFSAQFVAQFUBAFPCQEBTgADCQABAgUBTwIKQnl0ZVZlY3RvcgQBVgUBTwMJAAACCAUBVA9jYWxsZXJQdWJsaWNLZXkFAVYGBQFSAwkAAQIFAU8CBFVuaXQJAQFTAQUBVAkAAgECC01hdGNoIGVycm9yAQFXBQFCAXcBWAFZAVoJALkJAgkAzAgCAgolcyVkJWQlZCVkCQDMCAIFAUIJAMwIAgUBdwkAzAgCCQCkAwEFAVgJAMwIAgkApAMBBQFZCQDMCAIJAKQDAQUBWgUDbmlsBQFhAAJhYQABAAJhYgACAQJhYwICYWQCYWUJALkJAgkAzAgCAgQlZCVkCQDMCAIJAKQDAQUCYWQJAMwIAgkApAMBBQJhZQUDbmlsBQFhAQJhZgEBZgQCYWcJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQFmCQECYWMCAAAAAAUBYQkAzAgCAP///////////wEJAMwIAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFnBQJhYQkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYWcFAmFiBQNuaWwBAmFoBAJhaQF3AmFqAmFrCQC5CQIJAMwIAgIIJXMlZCVzJXMJAMwIAgUCYWkJAMwIAgUBdwkAzAgCBQJhagkAzAgCBQJhawUDbmlsBQFhAAJhbAABAAJhbQACAAJhbgADAAJhbwAEAAJhcAAFAAJhcQAGAAJhcgAHAAJhcwAIAQJhdAgCYXUCYXYCYXcCYXgCYXkCYXoCYUECYUIJALkJAgkAzAgCAhAlcyVkJWQlZCVkJWQlZCVkCQDMCAIFAmF1CQDMCAIFAmF2CQDMCAIFAmF3CQDMCAIFAmF4CQDMCAIFAmF5CQDMCAIFAmF6CQDMCAIFAmFBCQDMCAIFAmFCBQNuaWwFAWEBAmFDCAJhdQJhdgJhdwJheAJheQJhegJhQQJhQgkBAmF0CAUCYXUJAKQDAQUCYXYJAKQDAQUCYXcJAKQDAQUCYXgJAKQDAQUCYXkJAKQDAQUCYXoJAKQDAQUCYUEJAKQDAQUCYUIBAmFEAwJhRQJhRgJhRwkBAmF0CAUCYUYJAJEDAgUCYUUFAmFtCQCRAwIFAmFFBQJhbgkAkQMCBQJhRQUCYW8JAJEDAgUCYUUFAmFwCQCRAwIFAmFFBQJhcQkAkQMCBQJhRQUCYXIJAKQDAQUCYUcBAmFIAQFpBAFmCQEBbAEFAWkJALUJAgkBAWUBBQFmBQFhAQJhSQMBZgJhZAJhZQQCYUoJAQJhZgEFAWYJAQtTdHJpbmdFbnRyeQIFAWYJAQJhYwIJAGQCCQCRAwIFAmFKBQJhYQUCYWQJAGQCCQCRAwIFAmFKBQJhYgUCYWUBAmFLAwFmAmFkAmFlBAJhSgkBAmFmAQUBZgkBC1N0cmluZ0VudHJ5AgUBZgkBAmFjAgkAZQIJAJEDAgUCYUoFAmFhBQJhZAkAZQIJAJEDAgUCYUoFAmFiBQJhZQECYUwGAXcCYU0CYU4CYU8BWAFZBAJhZwkBAmFmAQkBAXUBBQF3BAJhUAkAkQMCBQJhZwUCYWIEAmFRCQDwBwIFBHRoaXMFAmFNBAJhUgkAZAIJAGUCBQJhUQUCYVAFAmFOAwkAZgIAAAUCYVIJAAIBCQCsAgIJAKwCAgkArAICAjZiYXNlQXNzZXRCYWxhbmNlQ29uc2lkZXJpbmdMb2NrIDwgMDogYmFzZUFzc2V0QmFsYW5jZT0JAKQDAQUCYVECISBiYXNlQXNzZXRCYWxhbmNlQ29uc2lkZXJpbmdMb2NrPQkApAMBBQJhUgQCYVMICQEFdmFsdWUBCQDsBwEFAmFPCHF1YW50aXR5BAJhdwMJAAACBQJhUwAACQBoAgABBQFZCQBrAwUCYVIFAVkFAmFTCQCXCgUFAmF3BQJhUQUCYVAFAmFSBQJhUwECYVQFAXcCYU0CYU8BWAFZCQECYUwGBQF3BQJhTQAABQJhTwUBWAUBWQECYVUBAWkEAmFNCQDZBAEFAWkEAmFWCQECYUgBBQFpBAFCCQCRAwIFAmFWBQFHBAJhTwkA2QQBBQFCBAFYCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYVYFAUkEAVkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhVgUBSgQBdwkAkQMCBQJhVgUBSAQCYVcJAQJhVAUFAXcFAmFNBQJhTwUBWAUBWQkAmAoGCQEMSW50ZWdlckVudHJ5AgIFcHJpY2UIBQJhVwJfMQkBDEludGVnZXJFbnRyeQICEWRlY2ltYWxzTXVsdFByaWNlBQFZCQEMSW50ZWdlckVudHJ5AgIQYmFzZUFzc2V0QmFsYW5jZQgFAmFXAl8yCQEMSW50ZWdlckVudHJ5AgIVdG90YWxMb2NrZWRCYXNlQW1vdW50CAUCYVcCXzMJAQxJbnRlZ2VyRW50cnkCAh9iYXNlQXNzZXRCYWxhbmNlQ29uc2lkZXJpbmdMb2NrCAUCYVcCXzQJAQxJbnRlZ2VyRW50cnkCAg1zaGFyZUVtaXNzaW9uCAUCYVcCXzUKAVQBEmFkbWluUmVnaXN0ZXJBc3NldAUBaQJhWAJhWQJhWgJiYQQCYU0JANkEAQUBaQQCYmIICQEFdmFsdWUBCQDsBwEFAmFNCGRlY2ltYWxzAwkBAiE9AggFAVQGY2FsbGVyBQR0aGlzCQACAQIScGVybWlzc2lvbnMgZGVuaWVkAwkBAiE9AgkApQgBCQERQGV4dHJOYXRpdmUoMTA2MikBBQJiYQUCYmEJAAIBAh5pbnZhbGlkIHNodXRkb3duTWFuYWdlckFkZHJlc3MDCQBmAgAABQJhWgkAAgEJAKwCAgIZaW52YWxpZCBnZXREZWxheWluQmxvY2tzPQkApAMBBQJhWgQCYmMJAMIIBQUCYVgFAmFZAAEFAmJiBgQCYU8JALgIAQUCYmMEAUIJANgEAQUCYU8EAVkJAGgCCQBoAgBkAOgHAOgHBAFYCQBsBgAKAAAFAmJiAAAAAAUERE9XTgQCYmQJAGgCAAEFAVkEAmJlCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFtAAAABAF3CQCkAwEFAmJlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFsAQUBaQkBAVcFBQFCBQF3BQFYBQFZBQJhWgkAzAgCCQELU3RyaW5nRW50cnkCCQEBeAEFAmJlBQFpCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQF6AQUBaQUBdwkAzAgCCQELU3RyaW5nRW50cnkCCQEBQQEFAUIFAWkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUMBBQFpBQFCCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBRAEFAXcHCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFGAQUBdwUCYmEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFtAAkAZAIFAmJlAAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFuAQUBdwUCYmQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFyAwUBdwUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCYmQJAMwIAgUCYmMJAMwIAgkBBEJ1cm4CBQJhTwABBQNuaWwBVAELc2h1dGRvd25QdXQBAmJmBAJiZwkApAMBBQJiZgQCYmgJAQFlAQkBAXgBBQJiZgQCYmEJAQFlAQkBAUYBBQJiZwMJAGYCAAEJALECAQUCYmgJAAIBAhtpbnZhbGlkIGludGVybmFsQmFzZUFzc2V0SWQDCQECIT0CCQClCAEIBQFUBmNhbGxlcgUCYmEJAAIBAg1hY2Nlc3MgZGVuaWVkCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBRAEJAKQDAQUCYmYGBQNuaWwBVAEDcHV0AAQCYmkJAQV2YWx1ZQEJAJEDAggFAVQIcGF5bWVudHMAAAQCYU0JAQV2YWx1ZQEIBQJiaQdhc3NldElkBAFpCQDYBAEFAmFNBAFqCQClCAEIBQFUBmNhbGxlcgQCYVYJAQJhSAEFAWkEAUIJAJEDAgUCYVYFAUcEAmFPCQDZBAEFAUIEAVgJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhVgUBSQQBWQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFWBQFKBAF3CQCRAwIFAmFWBQFIBAJiagkBAWcBCQEBRAEFAXcEAmJrCQELdmFsdWVPckVsc2UCCQCgCAEJAQFFAQUBdwcDAwUCYmoGBQJiawkAAgECGHB1dCBvcGVyYXRpb24gaXMgYmxvY2tlZAQCYXcICQECYVQFBQF3BQJhTQUCYU8FAVgFAVkCXzEEAmFkCQBrAwgFAmJpBmFtb3VudAUBWQUCYXcJAMwIAgkBB1JlaXNzdWUDBQJhTwUCYWQGCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFUBmNhbGxlcgUCYWQFAmFPCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhaAQCAVAFAXcFAWoJANgEAQgFAVQNdHJhbnNhY3Rpb25JZAkBAmFDCAIIRklOSVNIRUQIBQJiaQZhbW91bnQFAmF3BQJhZAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUDbmlsAVQBEHN1Ym1pdEdldFJlcXVlc3QABAJiaQkBBXZhbHVlAQkAkQMCCAUBVAhwYXltZW50cwAABAJhTwkBBXZhbHVlAQgFAmJpB2Fzc2V0SWQEAUIJANgEAQUCYU8EAmJsCQDYBAEIBQFUD2NhbGxlclB1YmxpY0tleQQCYWoIBQFUBmNhbGxlcgQBagkApQgBBQJhagQCYWQIBQJiaQZhbW91bnQEAWkJAQFlAQkBAUEBBQFCBAJhTQkA2QQBBQFpBAJhVgkBAmFIAQUBaQQBWAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFWBQFJBAFZCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYVYFAUoEAmJtCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYVYFAUsEAXcJAJEDAgUCYVYFAUgEAmJrCQELdmFsdWVPckVsc2UCCQCgCAEJAQFFAQUBdwcDBQJiawkAAgECFG9wZXJhdGlvbiBpcyBibG9ja2VkBAJhdwgJAQJhVAUFAXcFAmFNBQJhTwUBWAUBWQJfMQQCYWUJAGsDBQJhZAUCYXcFAVkEAmJuCQECYWgEAgFHBQF3BQFqCQDYBAEIBQFUDXRyYW5zYWN0aW9uSWQEAmJvCQECYUMIAgdQRU5ESU5HBQJhZAUCYXcFAmFlBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQBkAgUGaGVpZ2h0BQJibQAACQDMCAIJAQRCdXJuAgUCYU8FAmFkCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmJuBQJibwkAzAgCCQECYUkDCQEBdQEFAXcFAmFkBQJhZQkAzAgCCQECYUkDCQEBdgIFAXcFAWoFAmFkBQJhZQUDbmlsAVQBEWV4ZWN1dGVHZXRSZXF1ZXN0AwFpAWoBawQCYWoJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWoEAmJwCQECYUgBBQFpBAJhTwkA2QQBCQCRAwIFAmJwBQFHBAJhTQkA2QQBBQFpBAF3CQCRAwIFAmJwBQFIBAJiawkBC3ZhbHVlT3JFbHNlAgkAoAgBCQEBRQEFAXcHAwUCYmsJAAIBAhRvcGVyYXRpb24gaXMgYmxvY2tlZAQCYm4JAQJhaAQCAUcFAXcFAWoFAWsEAmJxCQC1CQIJAQFlAQUCYm4FAWEEAmF1CQCRAwIFAmJxBQJhbAQCYUEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJicQUCYXIEAmJyCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnEFAmFtBAJicwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJxBQJhbwMJAQIhPQIFAmF1AgdQRU5ESU5HCQEBaAQCFVN0YXR1cyBpcyBub3QgUEVORElORwUBaQUBagUBawMJAGYCBQJhQQUGaGVpZ2h0CQEBaAQJAKwCAgkArAICCQCsAgICCkVuZEhlaWdodFsJAKQDAQUCYUECBF0gPiAJAKQDAQUGaGVpZ2h0BQFpBQFqBQFrCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFqBQJicwUCYU0JAMwIAgkBC1N0cmluZ0VudHJ5AgUCYm4JAQJhRAMFAmJxAghGSU5JU0hFRAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBAmFLAwkBAXUBBQF3BQJicgUCYnMJAMwIAgkBAmFLAwkBAXYCBQF3BQFqBQJicgUCYnMFA25pbAFUAQx0b3BVcEJhbGFuY2UBAWkEAmJwCQECYUgBBQFpBAJiaQkBBXZhbHVlAQkAkQMCCAUBVAhwYXltZW50cwAABAJidAkBBXZhbHVlAQgFAmJpB2Fzc2V0SWQEAmJ1CQDYBAEFAmJ0BAJhTwkA2QQBCQCRAwIFAmJwBQFHBAFYCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnAFAUkEAVkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJicAUBSgQBdwkAkQMCBQJicAUBSAQCYnYJAQFwAgUBdwkApQgBCAUBVAZjYWxsZXIEAmJ3CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmJ2AAAEAmJrCQELdmFsdWVPckVsc2UCCQCgCAEJAQFFAQUBdwcDBQJiawkAAgECFG9wZXJhdGlvbiBpcyBibG9ja2VkAwkBAiE9AgUBaQUCYnUJAAIBAj5hdHRhY2hlZCBwYXltZW50J3MgYXNzZXQgaWQgaXMgTk9UIG1hdGNoZWQgcGFzc2VkIGJhc2VBc3NldFN0cgMJAGYCCQCQAwEIBQFUCHBheW1lbnRzAAEJAAIBAiBvbmx5IG9uZSBwYXltZW50IGNhbiBiZSBhdHRhY2hlZAMJAGYCAGQJAGUCBQZoZWlnaHQFAmJ3CQACAQI3MSB0b3BVcCBwZXIgMTAwIGJsb2NrcyBmcm9tIHRoZSBzYW1lIGFkZHJlc3MgaXMgYWxsb3dlZAQCYXcICQECYUwGBQF3BQJidAgFAmJpBmFtb3VudAUCYU8FAVgFAVkCXzEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFuAQUBdwUCYXcJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFyAwUBdwUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCYXcJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJ2BQZoZWlnaHQFA25pbAFUAQRlbWl0AgJieAJieQQCYnoJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkAuQkCCQDMCAICAiVzCQDMCAICFmxwU3Rha2luZ1Bvb2xzQ29udHJhY3QFA25pbAUBYQkBAWIBAi5scF9zdGFraW5nX3Bvb2xzIGNvbnRyYWN0IGFkZHJlc3MgaXMgdW5kZWZpbmVkCQEBYgECKWludmFsaWQgbHBfc3Rha2luZ19wb29scyBjb250cmFjdCBhZGRyZXNzBAJiQQkAzAgCAwkAAAIIBQFUBmNhbGxlcgUCYnoGCQEBZAECEXBlcm1pc3Npb24gZGVuaWVkCQDMCAIDCQBmAgUCYnkAAAYJAQFkAQIWaW52YWxpZCBhbW91bnQgdG8gZW1pdAkAzAgCAwkBAiE9AgkAoggBCQEBQQEJANgEAQUCYngFBHVuaXQGCQEBZAECD2ludmFsaWQgYXNzZXRJZAUDbmlsAwkAAAIFAmJBBQJiQQQCYkIGCQCUCgIJAMwIAgkBB1JlaXNzdWUDBQJieAUCYnkFAmJCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmJ6BQJieQUCYngFA25pbAUCYnkJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BVAEUY3VycmVudFN5c1BhcmFtc1JFU1QBAWkEAmJDCQECYVUBBQFpBAJhdwgIBQJiQwJfMQV2YWx1ZQQBWQgIBQJiQwJfMgV2YWx1ZQQCYVEICAUCYkMCXzMFdmFsdWUEAmFQCAgFAmJDAl80BXZhbHVlBAJhUggIBQJiQwJfNQV2YWx1ZQQCYVMICAUCYkMCXzYFdmFsdWUEAmJECQC5CQIJAMwIAgIZc3RhcnRDdXJyZW50U3lzUGFyYW1zUkVTVAkAzAgCCQCkAwEFAmF3CQDMCAIJAKQDAQUBWQkAzAgCCQCkAwEFAmFRCQDMCAIJAKQDAQUCYVAJAMwIAgkApAMBBQJhUgkAzAgCCQCkAwEFAmFTCQDMCAICF2VuZEN1cnJlbnRTeXNQYXJhbXNSRVNUBQNuaWwFAWEJAAIBBQJiRAFUAQpzZXRNYW5hZ2VyAQJiRQQCYkYJAQFVAQUBVAMJAAACBQJiRgUCYkYEAmJHCQDZBAEFAmJFAwkAAAIFAmJHBQJiRwkAzAgCCQELU3RyaW5nRW50cnkCCQEBTQAFAmJFBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BVAEOY29uZmlybU1hbmFnZXIABAJiSAkBAVEABAJiSQMJAQlpc0RlZmluZWQBBQJiSAYJAQFkAQISbm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmJJBQJiSQQCYkoDCQAAAggFAVQPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJiSAYJAQFkAQIbeW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmJKBQJiSgkAzAgCCQELU3RyaW5nRW50cnkCCQEBTAAJANgEAQkBBXZhbHVlAQUCYkgJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAU0ABQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAmJLAQJiTAAEAmJNBAFPCQEBTgADCQABAgUBTwIKQnl0ZVZlY3RvcgQBVgUBTwUBVgMJAAECBQFPAgRVbml0CAUCYksPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAmJLCWJvZHlCeXRlcwkAkQMCCAUCYksGcHJvb2ZzAAAFAmJNhoYWfQ==", "chainId": 84, "height": 2400176, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: A6eWjiiWhq69KmqRSS3e1gcHu7Wr7sy33st6iEyA4rXZ Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = "__"
5+
6+func b (c) = throw(makeString(["lp_staking.ride:", c], " "))
7+
8+
9+func d (c) = throw(b(c))
10+
11+
12+func e (f) = valueOrErrorMessage(getString(this, f), ("No data for this.key=" + f))
13+
14+
15+func g (f) = valueOrErrorMessage(getBoolean(this, f), ("No data for this.key=" + f))
16+
17+
18+func h (c,i,j,k) = throw(((((((c + ": baseAssetStr=") + i) + " userAddressStr=") + j) + " getTxIdStr=") + k))
19+
20+
21+func l (i) = ("%s%s%s__config__asset__" + i)
22+
23+
24+func m () = "%s__nextInternalAssetId"
25+
26+
27+func n (o) = ("%s%s%d__price__last__" + o)
28+
29+
30+func p (o,q) = makeString(["%s%s%s%d%s__topup__last__height", o, q], a)
31+
32+
33+func r (o,s,t) = makeString(["%s%s%d%d%d__price__history", o, toString(s), toString(t)], a)
34+
35+
36+func u (o) = ("%s%s%d__total__locked__" + o)
37+
38+
39+func v (w,j) = makeString(["%s%s%d%s__total__locked", w, j], a)
40+
41+
42+func x (y) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(y))
43+
44+
45+func z (i) = ("%s%s%s__mappings__baseAsset2internalId__" + i)
46+
47+
48+func A (B) = ("%s%s%s__mappings__share2baseAssetId__" + B)
49+
50+
51+func C (i) = ("%s%s%s__mappings__baseAsset2shareId__" + i)
52+
53+
54+func D (w) = ("%s%s%d__shutdown__put__" + w)
55+
56+
57+func E (w) = ("%s%d__shutdown__" + w)
58+
59+
60+func F (w) = ("%s%s%d__shutdown__manager__" + w)
61+
62+
63+let G = 1
64+
65+let H = 2
66+
67+let I = 3
68+
69+let J = 4
70+
71+let K = 5
72+
73+func L () = "%s__managerPublicKey"
74+
75+
76+func M () = "%s__pendingManagerPublicKey"
77+
78+
79+func N () = {
80+ let O = getString(L())
81+ if ($isInstanceOf(O, "String"))
82+ then {
83+ let P = O
84+ fromBase58String(P)
85+ }
86+ else if ($isInstanceOf(O, "Unit"))
87+ then unit
88+ else throw("Match error")
89+ }
90+
91+
92+func Q () = {
93+ let O = getString(M())
94+ if ($isInstanceOf(O, "String"))
95+ then {
96+ let P = O
97+ fromBase58String(P)
98+ }
99+ else if ($isInstanceOf(O, "Unit"))
100+ then unit
101+ else throw("Match error")
102+ }
103+
104+
105+let R = throw("Permission denied")
106+
107+func S (T) = if ((T.caller == this))
108+ then true
109+ else R
110+
111+
112+func U (T) = {
113+ let O = N()
114+ if ($isInstanceOf(O, "ByteVector"))
115+ then {
116+ let V = O
117+ if ((T.callerPublicKey == V))
118+ then true
119+ else R
120+ }
121+ else if ($isInstanceOf(O, "Unit"))
122+ then S(T)
123+ else throw("Match error")
124+ }
125+
126+
127+func W (B,w,X,Y,Z) = makeString(["%s%d%d%d%d", B, w, toString(X), toString(Y), toString(Z)], a)
128+
129+
130+let aa = 1
131+
132+let ab = 2
133+
134+func ac (ad,ae) = makeString(["%d%d", toString(ad), toString(ae)], a)
135+
136+
137+func af (f) = {
138+ let ag = split(valueOrElse(getString(this, f), ac(0, 0)), a)
139+[-1, parseIntValue(ag[aa]), parseIntValue(ag[ab])]
140+ }
141+
142+
143+func ah (ai,w,aj,ak) = makeString(["%s%d%s%s", ai, w, aj, ak], a)
144+
145+
146+let al = 1
147+
148+let am = 2
149+
150+let an = 3
151+
152+let ao = 4
153+
154+let ap = 5
155+
156+let aq = 6
157+
158+let ar = 7
159+
160+let as = 8
161+
162+func at (au,av,aw,ax,ay,az,aA,aB) = makeString(["%s%d%d%d%d%d%d%d", au, av, aw, ax, ay, az, aA, aB], a)
163+
164+
165+func aC (au,av,aw,ax,ay,az,aA,aB) = at(au, toString(av), toString(aw), toString(ax), toString(ay), toString(az), toString(aA), toString(aB))
166+
167+
168+func aD (aE,aF,aG) = at(aF, aE[am], aE[an], aE[ao], aE[ap], aE[aq], aE[ar], toString(aG))
169+
170+
171+func aH (i) = {
172+ let f = l(i)
173+ split(e(f), a)
174+ }
175+
176+
177+func aI (f,ad,ae) = {
178+ let aJ = af(f)
179+ StringEntry(f, ac((aJ[aa] + ad), (aJ[ab] + ae)))
180+ }
181+
182+
183+func aK (f,ad,ae) = {
184+ let aJ = af(f)
185+ StringEntry(f, ac((aJ[aa] - ad), (aJ[ab] - ae)))
186+ }
187+
188+
189+func aL (w,aM,aN,aO,X,Y) = {
190+ let ag = af(u(w))
191+ let aP = ag[ab]
192+ let aQ = assetBalance(this, aM)
193+ let aR = ((aQ - aP) + aN)
194+ if ((0 > aR))
195+ then throw(((("baseAssetBalanceConsideringLock < 0: baseAssetBalance=" + toString(aQ)) + " baseAssetBalanceConsideringLock=") + toString(aR)))
196+ else {
197+ let aS = value(assetInfo(aO)).quantity
198+ let aw = if ((aS == 0))
199+ then (1 * Y)
200+ else fraction(aR, Y, aS)
201+ $Tuple5(aw, aQ, aP, aR, aS)
202+ }
203+ }
204+
205+
206+func aT (w,aM,aO,X,Y) = aL(w, aM, 0, aO, X, Y)
207+
208+
209+func aU (i) = {
210+ let aM = fromBase58String(i)
211+ let aV = aH(i)
212+ let B = aV[G]
213+ let aO = fromBase58String(B)
214+ let X = parseIntValue(aV[I])
215+ let Y = parseIntValue(aV[J])
216+ let w = aV[H]
217+ let aW = aT(w, aM, aO, X, Y)
218+ $Tuple6(IntegerEntry("price", aW._1), IntegerEntry("decimalsMultPrice", Y), IntegerEntry("baseAssetBalance", aW._2), IntegerEntry("totalLockedBaseAmount", aW._3), IntegerEntry("baseAssetBalanceConsideringLock", aW._4), IntegerEntry("shareEmission", aW._5))
219+ }
220+
221+
222+@Callable(T)
223+func adminRegisterAsset (i,aX,aY,aZ,ba) = {
224+ let aM = fromBase58String(i)
225+ let bb = value(assetInfo(aM)).decimals
226+ if ((T.caller != this))
227+ then throw("permissions denied")
228+ else if ((toString(addressFromStringValue(ba)) != ba))
229+ then throw("invalid shutdownManagerAddress")
230+ else if ((0 > aZ))
231+ then throw(("invalid getDelayinBlocks=" + toString(aZ)))
232+ else {
233+ let bc = Issue(aX, aY, 1, bb, true)
234+ let aO = calculateAssetId(bc)
235+ let B = toBase58String(aO)
236+ let Y = ((100 * 1000) * 1000)
237+ let X = pow(10, 0, bb, 0, 0, DOWN)
238+ let bd = (1 * Y)
239+ let be = valueOrElse(getInteger(this, m()), 0)
240+ let w = toString(be)
241+[StringEntry(l(i), W(B, w, X, Y, aZ)), StringEntry(x(be), i), StringEntry(z(i), w), StringEntry(A(B), i), StringEntry(C(i), B), BooleanEntry(D(w), false), StringEntry(F(w), ba), IntegerEntry(m(), (be + 1)), IntegerEntry(n(w), bd), IntegerEntry(r(w, height, lastBlock.timestamp), bd), bc, Burn(aO, 1)]
242+ }
243+ }
244+
245+
246+
247+@Callable(T)
248+func shutdownPut (bf) = {
249+ let bg = toString(bf)
250+ let bh = e(x(bf))
251+ let ba = e(F(bg))
252+ if ((1 > size(bh)))
253+ then throw("invalid internalBaseAssetId")
254+ else if ((toString(T.caller) != ba))
255+ then throw("access denied")
256+ else [BooleanEntry(D(toString(bf)), true)]
257+ }
258+
259+
260+
261+@Callable(T)
262+func put () = {
263+ let bi = value(T.payments[0])
264+ let aM = value(bi.assetId)
265+ let i = toBase58String(aM)
266+ let j = toString(T.caller)
267+ let aV = aH(i)
268+ let B = aV[G]
269+ let aO = fromBase58String(B)
270+ let X = parseIntValue(aV[I])
271+ let Y = parseIntValue(aV[J])
272+ let w = aV[H]
273+ let bj = g(D(w))
274+ let bk = valueOrElse(getBoolean(E(w)), false)
275+ if (if (bj)
276+ then true
277+ else bk)
278+ then throw("put operation is blocked")
279+ else {
280+ let aw = aT(w, aM, aO, X, Y)._1
281+ let ad = fraction(bi.amount, Y, aw)
282+[Reissue(aO, ad, true), ScriptTransfer(T.caller, ad, aO), StringEntry(ah("P", w, j, toBase58String(T.transactionId)), aC("FINISHED", bi.amount, aw, ad, height, lastBlock.timestamp, height, lastBlock.timestamp))]
283+ }
284+ }
285+
286+
287+
288+@Callable(T)
289+func submitGetRequest () = {
290+ let bi = value(T.payments[0])
291+ let aO = value(bi.assetId)
292+ let B = toBase58String(aO)
293+ let bl = toBase58String(T.callerPublicKey)
294+ let aj = T.caller
295+ let j = toString(aj)
296+ let ad = bi.amount
297+ let i = e(A(B))
298+ let aM = fromBase58String(i)
299+ let aV = aH(i)
300+ let X = parseIntValue(aV[I])
301+ let Y = parseIntValue(aV[J])
302+ let bm = parseIntValue(aV[K])
303+ let w = aV[H]
304+ let bk = valueOrElse(getBoolean(E(w)), false)
305+ if (bk)
306+ then throw("operation is blocked")
307+ else {
308+ let aw = aT(w, aM, aO, X, Y)._1
309+ let ae = fraction(ad, aw, Y)
310+ let bn = ah("G", w, j, toBase58String(T.transactionId))
311+ let bo = aC("PENDING", ad, aw, ae, height, lastBlock.timestamp, (height + bm), 0)
312+[Burn(aO, ad), StringEntry(bn, bo), aI(u(w), ad, ae), aI(v(w, j), ad, ae)]
313+ }
314+ }
315+
316+
317+
318+@Callable(T)
319+func executeGetRequest (i,j,k) = {
320+ let aj = addressFromStringValue(j)
321+ let bp = aH(i)
322+ let aO = fromBase58String(bp[G])
323+ let aM = fromBase58String(i)
324+ let w = bp[H]
325+ let bk = valueOrElse(getBoolean(E(w)), false)
326+ if (bk)
327+ then throw("operation is blocked")
328+ else {
329+ let bn = ah("G", w, j, k)
330+ let bq = split(e(bn), a)
331+ let au = bq[al]
332+ let aA = parseIntValue(bq[ar])
333+ let br = parseIntValue(bq[am])
334+ let bs = parseIntValue(bq[ao])
335+ if ((au != "PENDING"))
336+ then h("Status is not PENDING", i, j, k)
337+ else if ((aA > height))
338+ then h(((("EndHeight[" + toString(aA)) + "] > ") + toString(height)), i, j, k)
339+ else [ScriptTransfer(aj, bs, aM), StringEntry(bn, aD(bq, "FINISHED", lastBlock.timestamp)), aK(u(w), br, bs), aK(v(w, j), br, bs)]
340+ }
341+ }
342+
343+
344+
345+@Callable(T)
346+func topUpBalance (i) = {
347+ let bp = aH(i)
348+ let bi = value(T.payments[0])
349+ let bt = value(bi.assetId)
350+ let bu = toBase58String(bt)
351+ let aO = fromBase58String(bp[G])
352+ let X = parseIntValue(bp[I])
353+ let Y = parseIntValue(bp[J])
354+ let w = bp[H]
355+ let bv = p(w, toString(T.caller))
356+ let bw = valueOrElse(getInteger(this, bv), 0)
357+ let bk = valueOrElse(getBoolean(E(w)), false)
358+ if (bk)
359+ then throw("operation is blocked")
360+ else if ((i != bu))
361+ then throw("attached payment's asset id is NOT matched passed baseAssetStr")
362+ else if ((size(T.payments) > 1))
363+ then throw("only one payment can be attached")
364+ else if ((100 > (height - bw)))
365+ then throw("1 topUp per 100 blocks from the same address is allowed")
366+ else {
367+ let aw = aL(w, bt, bi.amount, aO, X, Y)._1
368+[IntegerEntry(n(w), aw), IntegerEntry(r(w, height, lastBlock.timestamp), aw), IntegerEntry(bv, height)]
369+ }
370+ }
371+
372+
373+
374+@Callable(T)
375+func emit (bx,by) = {
376+ let bz = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), b("lp_staking_pools contract address is undefined"))), b("invalid lp_staking_pools contract address"))
377+ let bA = [if ((T.caller == bz))
378+ then true
379+ else d("permission denied"), if ((by > 0))
380+ then true
381+ else d("invalid amount to emit"), if ((getString(A(toBase58String(bx))) != unit))
382+ then true
383+ else d("invalid assetId")]
384+ if ((bA == bA))
385+ then {
386+ let bB = true
387+ $Tuple2([Reissue(bx, by, bB), ScriptTransfer(bz, by, bx)], by)
388+ }
389+ else throw("Strict value is not equal to itself.")
390+ }
391+
392+
393+
394+@Callable(T)
395+func currentSysParamsREST (i) = {
396+ let bC = aU(i)
397+ let aw = bC._1.value
398+ let Y = bC._2.value
399+ let aQ = bC._3.value
400+ let aP = bC._4.value
401+ let aR = bC._5.value
402+ let aS = bC._6.value
403+ let bD = makeString(["startCurrentSysParamsREST", toString(aw), toString(Y), toString(aQ), toString(aP), toString(aR), toString(aS), "endCurrentSysParamsREST"], a)
404+ throw(bD)
405+ }
406+
407+
408+
409+@Callable(T)
410+func setManager (bE) = {
411+ let bF = U(T)
412+ if ((bF == bF))
413+ then {
414+ let bG = fromBase58String(bE)
415+ if ((bG == bG))
416+ then [StringEntry(M(), bE)]
417+ else throw("Strict value is not equal to itself.")
418+ }
419+ else throw("Strict value is not equal to itself.")
420+ }
421+
422+
423+
424+@Callable(T)
425+func confirmManager () = {
426+ let bH = Q()
427+ let bI = if (isDefined(bH))
428+ then true
429+ else d("no pending manager")
430+ if ((bI == bI))
431+ then {
432+ let bJ = if ((T.callerPublicKey == value(bH)))
433+ then true
434+ else d("you are not pending manager")
435+ if ((bJ == bJ))
436+ then [StringEntry(L(), toBase58String(value(bH))), DeleteEntry(M())]
437+ else throw("Strict value is not equal to itself.")
438+ }
439+ else throw("Strict value is not equal to itself.")
440+ }
441+
442+
443+@Verifier(bK)
444+func bL () = {
445+ let bM = {
446+ let O = N()
447+ if ($isInstanceOf(O, "ByteVector"))
448+ then {
449+ let V = O
450+ V
451+ }
452+ else if ($isInstanceOf(O, "Unit"))
453+ then bK.senderPublicKey
454+ else throw("Match error")
455+ }
456+ sigVerify(bK.bodyBytes, bK.proofs[0], bM)
457+ }
458+

github/deemru/w8io/026f985 
40.77 ms