tx · A6eWjiiWhq69KmqRSS3e1gcHu7Wr7sy33st6iEyA4rXZ

3MsC1Cit1aGB6qPW1hvkyGP2Gx79K1mtUAk:  -0.01500000 Waves

2023.01.11 13:51 [2400190] smart account 3MsC1Cit1aGB6qPW1hvkyGP2Gx79K1mtUAk > SELF 0.00000000 Waves

{ "type": 13, "id": "A6eWjiiWhq69KmqRSS3e1gcHu7Wr7sy33st6iEyA4rXZ", "fee": 1500000, "feeAssetId": null, "timestamp": 1673434313404, "version": 1, "sender": "3MsC1Cit1aGB6qPW1hvkyGP2Gx79K1mtUAk", "senderPublicKey": "2rdeGwVMkuRfRdUgrYaekNmjnegHokhyDx1z6TJq525F", "proofs": [ "CiJ29aNb3LWd9N4iTzJVQHfwANu7tXHd4ckCz1ryRf1fBBzGFgd4dMKrTR8ef5msegZDNHNuGQYGkh6SSyLSnNN" ], "script": "base64:BgLaEggCEgcKBQgICAEIEgMKAQESABIAEgUKAwgICBIDCgEIEgQKAgIBEgMKAQgSAwoBCBIAIgNTRVAiB3dyYXBFcnIiA21zZyIIdGhyb3dFcnIiD2dldFN0cmluZ09yRmFpbCIDa2V5IhBnZXRCb29sZWFuT3JGYWlsIg5mYWlsRXhlY3V0ZUdldCIMYmFzZUFzc2V0U3RyIg51c2VyQWRkcmVzc1N0ciIKZ2V0VHhJZFN0ciILa2V5QXNzZXRDZmciFmtleU5leHRJbnRlcm5hbEFzc2V0SWQiDGtleVByaWNlTGFzdCIVaW50ZXJuYWxCYXNldEFzc2V0U3RyIhJrZXlUb3BVcExhc3RIZWlnaHQiBnNlbmRlciIPa2V5UHJpY2VIaXN0b3J5IgFoIgl0aW1lc3RhbXAiDmtleVRvdGFsTG9ja2VkIhRrZXlUb3RhbExvY2tlZEJ5VXNlciIUaW50ZXJuYWxCYXNlQXNzZXRTdHIiH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQiEWludGVybmFsQmFzZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIhxrZXlNYXBwaW5nc1NoYXJlMmJhc2VBc3NldElkIg1zaGFyZUFzc2V0U3RyIhxrZXlNYXBwaW5nc0Jhc2VBc3NldDJzaGFyZUlkIhdrZXlTaHV0ZG93blB1dE9wZXJhdGlvbiILa2V5U2h1dGRvd24iEmtleVNodXRkb3duTWFuYWdlciISSWR4Q2ZnU2hhcmVBc3NldElkIhdJZHhDZmdJbnRlcm5hbEJhc2VBc3NldCIcSWR4Q2ZnRGVjaW1hbHNNdWx0Qm90aEFzc2V0cyIXSWR4Q2ZnRGVjaW1hbHNNdWx0UHJpY2UiFElkeENmZ0dldERlbGF5QmxvY2tzIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIHJG1hdGNoMCIBcyIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiFXBlcm1pc3Npb25EZW5pZWRFcnJvciIIbXVzdFRoaXMiAWkiC211c3RNYW5hZ2VyIgJwayIMZGF0YUFzc2V0Q2ZnIhZkZWNpbWFsc011bHRCb3RoQXNzZXRzIhFkZWNpbWFsc011bHRQcmljZSIQZ2V0RGVsYXlJbkJsb2NrcyITSWR4VG90YWxMb2NrZWRTaGFyZSISSWR4VG90YWxMb2NrZWRCYXNlIg9kYXRhVG90YWxMb2NrZWQiEHNoYXJlQXNzZXRBbW91bnQiD2Jhc2VBc3NldEFtb3VudCIPcmVhZFRvdGFsTG9ja2VkIhB0b3RhbExvY2tlZEFycmF5IgxrZXlPcGVyYXRpb24iDW9wZXJhdGlvblR5cGUiC3VzZXJBZGRyZXNzIgR0eElkIg1JZHhPcGVyU3RhdHVzIg9JZHhPcGVySW5BbW91bnQiDElkeE9wZXJQcmljZSIQSWR4T3Blck91dEFtb3VudCISSWR4T3BlclN0YXJ0SGVpZ2h0IhVJZHhPcGVyU3RhcnRUaW1lc3RhbXAiEElkeE9wZXJFbmRIZWlnaHQiE0lkeE9wZXJFbmRUaW1lc3RhbXAiHnByaXZhdGVEYXRhT3BlcmF0aW9uQWxsU3RyaW5ncyIGc3RhdHVzIg1pbkFzc2V0QW1vdW50IgVwcmljZSIOb3V0QXNzZXRBbW91bnQiC3N0YXJ0SGVpZ2h0Ig5zdGFydFRpbWVzdGFtcCIJZW5kSGVpZ2h0IgxlbmRUaW1lc3RhbXAiDWRhdGFPcGVyYXRpb24iHGRhdGFPcGVyYXRpb25FeGVjdXRpb25VcGRhdGUiDWN1cnJPcGVyQXJyYXkiCW5ld1N0YXR1cyIPbmV3RW5kVGltZXN0YW1wIhJyZWFkQXNzZXRDZmdPckZhaWwiFGluY3JlbWVudFRvdGFsTG9ja2VkIglkYXRhQXJyYXkiFGRlY3JlbWVudFRvdGFsTG9ja2VkIhBnZW5lcmljQ2FsY1ByaWNlIgtiYXNlQXNzZXRJZCIPdG9wVXBCYXNlQW1vdW50IgxzaGFyZUFzc2V0SWQiFXRvdGFsTG9ja2VkQmFzZUFtb3VudCIQYmFzZUFzc2V0QmFsYW5jZSIfYmFzZUFzc2V0QmFsYW5jZUNvbnNpZGVyaW5nTG9jayINc2hhcmVFbWlzc2lvbiIJY2FsY1ByaWNlIhtwcml2YXRlQ3VycmVudFN5c1BhcmFtc1JFU1QiCGNmZ0FycmF5IghzeXNTdGF0ZSIOc2hhcmVBc3NldE5hbWUiD3NoYXJlQXNzZXREZXNjciIQZ2V0RGVsYXlpbkJsb2NrcyIWc2h1dGRvd25NYW5hZ2VyQWRkcmVzcyIIZGVjaW1hbHMiC2NoZWNrQ2FsbGVyIhVzaGFyZUFzc2V0SXNzdWVBY3Rpb24iCnN0YXJ0UHJpY2UiFGludGVybmFsQmFzZUFzc2V0dElkIhNpbnRlcm5hbEJhc2VBc3NldElkIhZpbnRlcm5hbEJhc2VBc3NldElkU3RyIg5iYXNlQXNzZXRJZFN0ciIDcG10Igxpc1B1dEJsb2NrZWQiCHNodXRkb3duIgxjYWxsZXJQdWJTdHIiDmdldERlbGF5QmxvY2tzIgxvcGVyYXRpb25LZXkiDW9wZXJhdGlvbkRhdGEiDWFzc2V0Q2ZnQXJyYXkiDm9wZXJhdGlvbkFycmF5Ig1pblNoYXJlQW1vdW50Ig1vdXRCYXNlQW1vdW50IgpwbXRBc3NldElkIgtwbXRBc3NldFN0ciISdG9wVXBMYXN0SGVpZ2h0S0VZIg90b3BVcExhc3RIZWlnaHQiB2Fzc2V0SWQiBmFtb3VudCIWbHBTdGFraW5nUG9vbHNDb250cmFjdCIGY2hlY2tzIgxpc1JlaXNzdWFibGUiDXN5c1N0YXRlVHVwbGUiCHJlc3REYXRhIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleTcAAWECAl9fAQFiAQFjCQACAQkAuQkCCQDMCAICEGxwX3N0YWtpbmcucmlkZToJAMwIAgUBYwUDbmlsAgEgAQFkAQFjCQACAQkBAWIBBQFjAQFlAQFmCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUEdGhpcwUBZgkArAICAhVObyBkYXRhIGZvciB0aGlzLmtleT0FAWYBAWcBAWYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmwgCBQR0aGlzBQFmCQCsAgICFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUBZgEBaAQBYwFpAWoBawkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFAWMCDzogYmFzZUFzc2V0U3RyPQUBaQIQIHVzZXJBZGRyZXNzU3RyPQUBagIMIGdldFR4SWRTdHI9BQFrAQFsAQFpCQCsAgICFyVzJXMlc19fY29uZmlnX19hc3NldF9fBQFpAQFtAAIXJXNfX25leHRJbnRlcm5hbEFzc2V0SWQBAW4BAW8JAKwCAgIVJXMlcyVkX19wcmljZV9fbGFzdF9fBQFvAQFwAgFvAXEJALkJAgkAzAgCAh8lcyVzJXMlZCVzX190b3B1cF9fbGFzdF9faGVpZ2h0CQDMCAIFAW8JAMwIAgUBcQUDbmlsBQFhAQFyAwFvAXMBdAkAuQkCCQDMCAICGiVzJXMlZCVkJWRfX3ByaWNlX19oaXN0b3J5CQDMCAIFAW8JAMwIAgkApAMBBQFzCQDMCAIJAKQDAQUBdAUDbmlsBQFhAQF1AQFvCQCsAgICFyVzJXMlZF9fdG90YWxfX2xvY2tlZF9fBQFvAQF2AgF3AWoJALkJAgkAzAgCAhclcyVzJWQlc19fdG90YWxfX2xvY2tlZAkAzAgCBQF3CQDMCAIFAWoFA25pbAUBYQEBeAEBeQkArAICAiglcyVzJWRfX21hcHBpbmdzX19pbnRlcm5hbDJiYXNlQXNzZXRJZF9fCQCkAwEFAXkBAXoBAWkJAKwCAgIoJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MmludGVybmFsSWRfXwUBaQEBQQEBQgkArAICAiUlcyVzJXNfX21hcHBpbmdzX19zaGFyZTJiYXNlQXNzZXRJZF9fBQFCAQFDAQFpCQCsAgICJSVzJXMlc19fbWFwcGluZ3NfX2Jhc2VBc3NldDJzaGFyZUlkX18FAWkBAUQBAXcJAKwCAgIXJXMlcyVkX19zaHV0ZG93bl9fcHV0X18FAXcBAUUBAXcJAKwCAgIQJXMlZF9fc2h1dGRvd25fXwUBdwEBRgEBdwkArAICAhslcyVzJWRfX3NodXRkb3duX19tYW5hZ2VyX18FAXcAAUcAAQABSAACAAFJAAMAAUoABAABSwAFAQFMAAIUJXNfX21hbmFnZXJQdWJsaWNLZXkBAU0AAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkBAU4ABAFPCQCiCAEJAQFMAAMJAAECBQFPAgZTdHJpbmcEAVAFAU8JANkEAQUBUAMJAAECBQFPAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBAVEABAFPCQCiCAEJAQFNAAMJAAECBQFPAgZTdHJpbmcEAVAFAU8JANkEAQUBUAMJAAECBQFPAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IAAVIJAAIBAhFQZXJtaXNzaW9uIGRlbmllZAEBUwEBVAMJAAACCAUBVAZjYWxsZXIFBHRoaXMGBQFSAQFVAQFUBAFPCQEBTgADCQABAgUBTwIKQnl0ZVZlY3RvcgQBVgUBTwMJAAACCAUBVA9jYWxsZXJQdWJsaWNLZXkFAVYGBQFSAwkAAQIFAU8CBFVuaXQJAQFTAQUBVAkAAgECC01hdGNoIGVycm9yAQFXBQFCAXcBWAFZAVoJALkJAgkAzAgCAgolcyVkJWQlZCVkCQDMCAIFAUIJAMwIAgUBdwkAzAgCCQCkAwEFAVgJAMwIAgkApAMBBQFZCQDMCAIJAKQDAQUBWgUDbmlsBQFhAAJhYQABAAJhYgACAQJhYwICYWQCYWUJALkJAgkAzAgCAgQlZCVkCQDMCAIJAKQDAQUCYWQJAMwIAgkApAMBBQJhZQUDbmlsBQFhAQJhZgEBZgQCYWcJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzBQFmCQECYWMCAAAAAAUBYQkAzAgCAP///////////wEJAMwIAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFnBQJhYQkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYWcFAmFiBQNuaWwBAmFoBAJhaQF3AmFqAmFrCQC5CQIJAMwIAgIIJXMlZCVzJXMJAMwIAgUCYWkJAMwIAgUBdwkAzAgCBQJhagkAzAgCBQJhawUDbmlsBQFhAAJhbAABAAJhbQACAAJhbgADAAJhbwAEAAJhcAAFAAJhcQAGAAJhcgAHAAJhcwAIAQJhdAgCYXUCYXYCYXcCYXgCYXkCYXoCYUECYUIJALkJAgkAzAgCAhAlcyVkJWQlZCVkJWQlZCVkCQDMCAIFAmF1CQDMCAIFAmF2CQDMCAIFAmF3CQDMCAIFAmF4CQDMCAIFAmF5CQDMCAIFAmF6CQDMCAIFAmFBCQDMCAIFAmFCBQNuaWwFAWEBAmFDCAJhdQJhdgJhdwJheAJheQJhegJhQQJhQgkBAmF0CAUCYXUJAKQDAQUCYXYJAKQDAQUCYXcJAKQDAQUCYXgJAKQDAQUCYXkJAKQDAQUCYXoJAKQDAQUCYUEJAKQDAQUCYUIBAmFEAwJhRQJhRgJhRwkBAmF0CAUCYUYJAJEDAgUCYUUFAmFtCQCRAwIFAmFFBQJhbgkAkQMCBQJhRQUCYW8JAJEDAgUCYUUFAmFwCQCRAwIFAmFFBQJhcQkAkQMCBQJhRQUCYXIJAKQDAQUCYUcBAmFIAQFpBAFmCQEBbAEFAWkJALUJAgkBAWUBBQFmBQFhAQJhSQMBZgJhZAJhZQQCYUoJAQJhZgEFAWYJAQtTdHJpbmdFbnRyeQIFAWYJAQJhYwIJAGQCCQCRAwIFAmFKBQJhYQUCYWQJAGQCCQCRAwIFAmFKBQJhYgUCYWUBAmFLAwFmAmFkAmFlBAJhSgkBAmFmAQUBZgkBC1N0cmluZ0VudHJ5AgUBZgkBAmFjAgkAZQIJAJEDAgUCYUoFAmFhBQJhZAkAZQIJAJEDAgUCYUoFAmFiBQJhZQECYUwGAXcCYU0CYU4CYU8BWAFZBAJhZwkBAmFmAQkBAXUBBQF3BAJhUAkAkQMCBQJhZwUCYWIEAmFRCQDwBwIFBHRoaXMFAmFNBAJhUgkAZAIJAGUCBQJhUQUCYVAFAmFOAwkAZgIAAAUCYVIJAAIBCQCsAgIJAKwCAgkArAICAjZiYXNlQXNzZXRCYWxhbmNlQ29uc2lkZXJpbmdMb2NrIDwgMDogYmFzZUFzc2V0QmFsYW5jZT0JAKQDAQUCYVECISBiYXNlQXNzZXRCYWxhbmNlQ29uc2lkZXJpbmdMb2NrPQkApAMBBQJhUgQCYVMICQEFdmFsdWUBCQDsBwEFAmFPCHF1YW50aXR5BAJhdwMJAAACBQJhUwAACQBoAgABBQFZCQBrAwUCYVIFAVkFAmFTCQCXCgUFAmF3BQJhUQUCYVAFAmFSBQJhUwECYVQFAXcCYU0CYU8BWAFZCQECYUwGBQF3BQJhTQAABQJhTwUBWAUBWQECYVUBAWkEAmFNCQDZBAEFAWkEAmFWCQECYUgBBQFpBAFCCQCRAwIFAmFWBQFHBAJhTwkA2QQBBQFCBAFYCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYVYFAUkEAVkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhVgUBSgQBdwkAkQMCBQJhVgUBSAQCYVcJAQJhVAUFAXcFAmFNBQJhTwUBWAUBWQkAmAoGCQEMSW50ZWdlckVudHJ5AgIFcHJpY2UIBQJhVwJfMQkBDEludGVnZXJFbnRyeQICEWRlY2ltYWxzTXVsdFByaWNlBQFZCQEMSW50ZWdlckVudHJ5AgIQYmFzZUFzc2V0QmFsYW5jZQgFAmFXAl8yCQEMSW50ZWdlckVudHJ5AgIVdG90YWxMb2NrZWRCYXNlQW1vdW50CAUCYVcCXzMJAQxJbnRlZ2VyRW50cnkCAh9iYXNlQXNzZXRCYWxhbmNlQ29uc2lkZXJpbmdMb2NrCAUCYVcCXzQJAQxJbnRlZ2VyRW50cnkCAg1zaGFyZUVtaXNzaW9uCAUCYVcCXzUKAVQBEmFkbWluUmVnaXN0ZXJBc3NldAUBaQJhWAJhWQJhWgJiYQQCYU0JANkEAQUBaQQCYmIICQEFdmFsdWUBCQDsBwEFAmFNCGRlY2ltYWxzBAJiYwkBAVUBBQFUAwkAAAIFAmJjBQJiYwMJAQIhPQIJAKUIAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUCYmEFAmJhCQACAQIeaW52YWxpZCBzaHV0ZG93bk1hbmFnZXJBZGRyZXNzAwkAZgIAAAUCYVoJAAIBCQCsAgICGWludmFsaWQgZ2V0RGVsYXlpbkJsb2Nrcz0JAKQDAQUCYVoEAmJkCQDCCAUFAmFYBQJhWQABBQJiYgYEAmFPCQC4CAEFAmJkBAFCCQDYBAEFAmFPBAFZCQBoAgkAaAIAZADoBwDoBwQBWAkAbAYACgAABQJiYgAAAAAFBERPV04EAmJlCQBoAgABBQFZBAJiZgkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEBbQAAAAQBdwkApAMBBQJiZgkAzAgCCQELU3RyaW5nRW50cnkCCQEBbAEFAWkJAQFXBQUBQgUBdwUBWAUBWQUCYVoJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAXgBBQJiZgUBaQkAzAgCCQELU3RyaW5nRW50cnkCCQEBegEFAWkFAXcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUEBBQFCBQFpCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFDAQUBaQUBQgkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBAUQBBQF3BwkAzAgCCQELU3RyaW5nRW50cnkCCQEBRgEFAXcFAmJhCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBbQAJAGQCBQJiZgABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBbgEFAXcFAmJlCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBcgMFAXcFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmJlCQDMCAIFAmJkCQDMCAIJAQRCdXJuAgUCYU8AAQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVQBC3NodXRkb3duUHV0AQJiZwQCYmgJAKQDAQUCYmcEAmJpCQEBZQEJAQF4AQUCYmcEAmJhCQEBZQEJAQFGAQUCYmgDCQBmAgABCQCxAgEFAmJpCQACAQIbaW52YWxpZCBpbnRlcm5hbEJhc2VBc3NldElkAwkBAiE9AgkApQgBCAUBVAZjYWxsZXIFAmJhCQACAQINYWNjZXNzIGRlbmllZAkAzAgCCQEMQm9vbGVhbkVudHJ5AgkBAUQBCQCkAwEFAmJnBgUDbmlsAVQBA3B1dAAEAmJqCQEFdmFsdWUBCQCRAwIIBQFUCHBheW1lbnRzAAAEAmFNCQEFdmFsdWUBCAUCYmoHYXNzZXRJZAQBaQkA2AQBBQJhTQQBagkApQgBCAUBVAZjYWxsZXIEAmFWCQECYUgBBQFpBAFCCQCRAwIFAmFWBQFHBAJhTwkA2QQBBQFCBAFYCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYVYFAUkEAVkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhVgUBSgQBdwkAkQMCBQJhVgUBSAQCYmsJAQFnAQkBAUQBBQF3BAJibAkBC3ZhbHVlT3JFbHNlAgkAoAgBCQEBRQEFAXcHAwMFAmJrBgUCYmwJAAIBAhhwdXQgb3BlcmF0aW9uIGlzIGJsb2NrZWQEAmF3CAkBAmFUBQUBdwUCYU0FAmFPBQFYBQFZAl8xBAJhZAkAawMIBQJiagZhbW91bnQFAVkFAmF3CQDMCAIJAQdSZWlzc3VlAwUCYU8FAmFkBgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBVAZjYWxsZXIFAmFkBQJhTwkAzAgCCQELU3RyaW5nRW50cnkCCQECYWgEAgFQBQF3BQFqCQDYBAEIBQFUDXRyYW5zYWN0aW9uSWQJAQJhQwgCCEZJTklTSEVECAUCYmoGYW1vdW50BQJhdwUCYWQFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFA25pbAFUARBzdWJtaXRHZXRSZXF1ZXN0AAQCYmoJAQV2YWx1ZQEJAJEDAggFAVQIcGF5bWVudHMAAAQCYU8JAQV2YWx1ZQEIBQJiagdhc3NldElkBAFCCQDYBAEFAmFPBAJibQkA2AQBCAUBVA9jYWxsZXJQdWJsaWNLZXkEAmFqCAUBVAZjYWxsZXIEAWoJAKUIAQUCYWoEAmFkCAUCYmoGYW1vdW50BAFpCQEBZQEJAQFBAQUBQgQCYU0JANkEAQUBaQQCYVYJAQJhSAEFAWkEAVgJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhVgUBSQQBWQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFWBQFKBAJibgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFWBQFLBAF3CQCRAwIFAmFWBQFIBAJibAkBC3ZhbHVlT3JFbHNlAgkAoAgBCQEBRQEFAXcHAwUCYmwJAAIBAhRvcGVyYXRpb24gaXMgYmxvY2tlZAQCYXcICQECYVQFBQF3BQJhTQUCYU8FAVgFAVkCXzEEAmFlCQBrAwUCYWQFAmF3BQFZBAJibwkBAmFoBAIBRwUBdwUBagkA2AQBCAUBVA10cmFuc2FjdGlvbklkBAJicAkBAmFDCAIHUEVORElORwUCYWQFAmF3BQJhZQUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAZAIFBmhlaWdodAUCYm4AAAkAzAgCCQEEQnVybgIFAmFPBQJhZAkAzAgCCQELU3RyaW5nRW50cnkCBQJibwUCYnAJAMwIAgkBAmFJAwkBAXUBBQF3BQJhZAUCYWUJAMwIAgkBAmFJAwkBAXYCBQF3BQFqBQJhZAUCYWUFA25pbAFUARFleGVjdXRlR2V0UmVxdWVzdAMBaQFqAWsEAmFqCQERQGV4dHJOYXRpdmUoMTA2MikBBQFqBAJicQkBAmFIAQUBaQQCYU8JANkEAQkAkQMCBQJicQUBRwQCYU0JANkEAQUBaQQBdwkAkQMCBQJicQUBSAQCYmwJAQt2YWx1ZU9yRWxzZQIJAKAIAQkBAUUBBQF3BwMFAmJsCQACAQIUb3BlcmF0aW9uIGlzIGJsb2NrZWQEAmJvCQECYWgEAgFHBQF3BQFqBQFrBAJicgkAtQkCCQEBZQEFAmJvBQFhBAJhdQkAkQMCBQJicgUCYWwEAmFBCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnIFAmFyBAJicwkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJyBQJhbQQCYnQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJicgUCYW8DCQECIT0CBQJhdQIHUEVORElORwkBAWgEAhVTdGF0dXMgaXMgbm90IFBFTkRJTkcFAWkFAWoFAWsDCQBmAgUCYUEFBmhlaWdodAkBAWgECQCsAgIJAKwCAgkArAICAgpFbmRIZWlnaHRbCQCkAwEFAmFBAgRdID4gCQCkAwEFBmhlaWdodAUBaQUBagUBawkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJhagUCYnQFAmFNCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmJvCQECYUQDBQJicgIIRklOSVNIRUQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQJhSwMJAQF1AQUBdwUCYnMFAmJ0CQDMCAIJAQJhSwMJAQF2AgUBdwUBagUCYnMFAmJ0BQNuaWwBVAEMdG9wVXBCYWxhbmNlAQFpBAJicQkBAmFIAQUBaQQCYmoJAQV2YWx1ZQEJAJEDAggFAVQIcGF5bWVudHMAAAQCYnUJAQV2YWx1ZQEIBQJiagdhc3NldElkBAJidgkA2AQBBQJidQQCYU8JANkEAQkAkQMCBQJicQUBRwQBWAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJxBQFJBAFZCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnEFAUoEAXcJAJEDAgUCYnEFAUgEAmJ3CQEBcAIFAXcJAKUIAQgFAVQGY2FsbGVyBAJieAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQJidwAABAJibAkBC3ZhbHVlT3JFbHNlAgkAoAgBCQEBRQEFAXcHAwUCYmwJAAIBAhRvcGVyYXRpb24gaXMgYmxvY2tlZAMJAQIhPQIFAWkFAmJ2CQACAQI+YXR0YWNoZWQgcGF5bWVudCdzIGFzc2V0IGlkIGlzIE5PVCBtYXRjaGVkIHBhc3NlZCBiYXNlQXNzZXRTdHIDCQBmAgkAkAMBCAUBVAhwYXltZW50cwABCQACAQIgb25seSBvbmUgcGF5bWVudCBjYW4gYmUgYXR0YWNoZWQDCQBmAgBkCQBlAgUGaGVpZ2h0BQJieAkAAgECNzEgdG9wVXAgcGVyIDEwMCBibG9ja3MgZnJvbSB0aGUgc2FtZSBhZGRyZXNzIGlzIGFsbG93ZWQEAmF3CAkBAmFMBgUBdwUCYnUIBQJiagZhbW91bnQFAmFPBQFYBQFZAl8xCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBbgEFAXcFAmF3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBcgMFAXcFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAFAmF3CQDMCAIJAQxJbnRlZ2VyRW50cnkCBQJidwUGaGVpZ2h0BQNuaWwBVAEEZW1pdAICYnkCYnoEAmJBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCiCAEJALkJAgkAzAgCAgIlcwkAzAgCAhZscFN0YWtpbmdQb29sc0NvbnRyYWN0BQNuaWwFAWEJAQFiAQIubHBfc3Rha2luZ19wb29scyBjb250cmFjdCBhZGRyZXNzIGlzIHVuZGVmaW5lZAkBAWIBAilpbnZhbGlkIGxwX3N0YWtpbmdfcG9vbHMgY29udHJhY3QgYWRkcmVzcwQCYkIJAMwIAgMJAAACCAUBVAZjYWxsZXIFAmJBBgkBAWQBAhFwZXJtaXNzaW9uIGRlbmllZAkAzAgCAwkAZgIFAmJ6AAAGCQEBZAECFmludmFsaWQgYW1vdW50IHRvIGVtaXQJAMwIAgMJAQIhPQIJAKIIAQkBAUEBCQDYBAEFAmJ5BQR1bml0BgkBAWQBAg9pbnZhbGlkIGFzc2V0SWQFA25pbAMJAAACBQJiQgUCYkIEAmJDBgkAlAoCCQDMCAIJAQdSZWlzc3VlAwUCYnkFAmJ6BQJiQwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQJiQQUCYnoFAmJ5BQNuaWwFAmJ6CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVQBFGN1cnJlbnRTeXNQYXJhbXNSRVNUAQFpBAJiRAkBAmFVAQUBaQQCYXcICAUCYkQCXzEFdmFsdWUEAVkICAUCYkQCXzIFdmFsdWUEAmFRCAgFAmJEAl8zBXZhbHVlBAJhUAgIBQJiRAJfNAV2YWx1ZQQCYVIICAUCYkQCXzUFdmFsdWUEAmFTCAgFAmJEAl82BXZhbHVlBAJiRQkAuQkCCQDMCAICGXN0YXJ0Q3VycmVudFN5c1BhcmFtc1JFU1QJAMwIAgkApAMBBQJhdwkAzAgCCQCkAwEFAVkJAMwIAgkApAMBBQJhUQkAzAgCCQCkAwEFAmFQCQDMCAIJAKQDAQUCYVIJAMwIAgkApAMBBQJhUwkAzAgCAhdlbmRDdXJyZW50U3lzUGFyYW1zUkVTVAUDbmlsBQFhCQACAQUCYkUBVAEKc2V0TWFuYWdlcgECYkYEAmJjCQEBVQEFAVQDCQAAAgUCYmMFAmJjBAJiRwkA2QQBBQJiRgMJAAACBQJiRwUCYkcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU0ABQJiRgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVQBDmNvbmZpcm1NYW5hZ2VyAAQCYkgJAQFRAAQCYkkDCQEJaXNEZWZpbmVkAQUCYkgGCQEBZAECEm5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQJiSQUCYkkEAmJKAwkAAAIIBQFUD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCYkgGCQEBZAECG3lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJiSgUCYkoJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUwACQDYBAEJAQV2YWx1ZQEFAmJICQDMCAIJAQtEZWxldGVFbnRyeQEJAQFNAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJiSwECYkwABAJiTQQBTwkBAU4AAwkAAQIFAU8CCkJ5dGVWZWN0b3IEAVYFAU8FAVYDCQABAgUBTwIEVW5pdAgFAmJLD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJiSwlib2R5Qnl0ZXMJAJEDAggFAmJLBnByb29mcwAABQJiTecvJKI=", "chainId": 84, "height": 2400190, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3nbDoQet1dyK3yZkip8c1UbB6DdDiBjTbz66nwyHkhc8 Next: F6qPjohVAwGiuyRayjuXD82KbqjuvVdmwMt87ZWHzvma Diff:
OldNewDifferences
223223 func adminRegisterAsset (i,aX,aY,aZ,ba) = {
224224 let aM = fromBase58String(i)
225225 let bb = value(assetInfo(aM)).decimals
226- if ((T.caller != this))
227- then throw("permissions denied")
228- else if ((toString(addressFromStringValue(ba)) != ba))
226+ let bc = U(T)
227+ if ((bc == bc))
228+ then if ((toString(addressFromStringValue(ba)) != ba))
229229 then throw("invalid shutdownManagerAddress")
230230 else if ((0 > aZ))
231231 then throw(("invalid getDelayinBlocks=" + toString(aZ)))
232232 else {
233- let bc = Issue(aX, aY, 1, bb, true)
234- let aO = calculateAssetId(bc)
233+ let bd = Issue(aX, aY, 1, bb, true)
234+ let aO = calculateAssetId(bd)
235235 let B = toBase58String(aO)
236236 let Y = ((100 * 1000) * 1000)
237237 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)]
238+ let be = (1 * Y)
239+ let bf = valueOrElse(getInteger(this, m()), 0)
240+ let w = toString(bf)
241+[StringEntry(l(i), W(B, w, X, Y, aZ)), StringEntry(x(bf), i), StringEntry(z(i), w), StringEntry(A(B), i), StringEntry(C(i), B), BooleanEntry(D(w), false), StringEntry(F(w), ba), IntegerEntry(m(), (bf + 1)), IntegerEntry(n(w), be), IntegerEntry(r(w, height, lastBlock.timestamp), be), bd, Burn(aO, 1)]
242242 }
243+ else throw("Strict value is not equal to itself.")
243244 }
244245
245246
246247
247248 @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)))
249+func shutdownPut (bg) = {
250+ let bh = toString(bg)
251+ let bi = e(x(bg))
252+ let ba = e(F(bh))
253+ if ((1 > size(bi)))
253254 then throw("invalid internalBaseAssetId")
254255 else if ((toString(T.caller) != ba))
255256 then throw("access denied")
256- else [BooleanEntry(D(toString(bf)), true)]
257+ else [BooleanEntry(D(toString(bg)), true)]
257258 }
258259
259260
260261
261262 @Callable(T)
262263 func put () = {
263- let bi = value(T.payments[0])
264- let aM = value(bi.assetId)
264+ let bj = value(T.payments[0])
265+ let aM = value(bj.assetId)
265266 let i = toBase58String(aM)
266267 let j = toString(T.caller)
267268 let aV = aH(i)
270271 let X = parseIntValue(aV[I])
271272 let Y = parseIntValue(aV[J])
272273 let w = aV[H]
273- let bj = g(D(w))
274- let bk = valueOrElse(getBoolean(E(w)), false)
275- if (if (bj)
274+ let bk = g(D(w))
275+ let bl = valueOrElse(getBoolean(E(w)), false)
276+ if (if (bk)
276277 then true
277- else bk)
278+ else bl)
278279 then throw("put operation is blocked")
279280 else {
280281 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))]
282+ let ad = fraction(bj.amount, Y, aw)
283+[Reissue(aO, ad, true), ScriptTransfer(T.caller, ad, aO), StringEntry(ah("P", w, j, toBase58String(T.transactionId)), aC("FINISHED", bj.amount, aw, ad, height, lastBlock.timestamp, height, lastBlock.timestamp))]
283284 }
284285 }
285286
287288
288289 @Callable(T)
289290 func submitGetRequest () = {
290- let bi = value(T.payments[0])
291- let aO = value(bi.assetId)
291+ let bj = value(T.payments[0])
292+ let aO = value(bj.assetId)
292293 let B = toBase58String(aO)
293- let bl = toBase58String(T.callerPublicKey)
294+ let bm = toBase58String(T.callerPublicKey)
294295 let aj = T.caller
295296 let j = toString(aj)
296- let ad = bi.amount
297+ let ad = bj.amount
297298 let i = e(A(B))
298299 let aM = fromBase58String(i)
299300 let aV = aH(i)
300301 let X = parseIntValue(aV[I])
301302 let Y = parseIntValue(aV[J])
302- let bm = parseIntValue(aV[K])
303+ let bn = parseIntValue(aV[K])
303304 let w = aV[H]
304- let bk = valueOrElse(getBoolean(E(w)), false)
305- if (bk)
305+ let bl = valueOrElse(getBoolean(E(w)), false)
306+ if (bl)
306307 then throw("operation is blocked")
307308 else {
308309 let aw = aT(w, aM, aO, X, Y)._1
309310 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)]
311+ let bo = ah("G", w, j, toBase58String(T.transactionId))
312+ let bp = aC("PENDING", ad, aw, ae, height, lastBlock.timestamp, (height + bn), 0)
313+[Burn(aO, ad), StringEntry(bo, bp), aI(u(w), ad, ae), aI(v(w, j), ad, ae)]
313314 }
314315 }
315316
318319 @Callable(T)
319320 func executeGetRequest (i,j,k) = {
320321 let aj = addressFromStringValue(j)
321- let bp = aH(i)
322- let aO = fromBase58String(bp[G])
322+ let bq = aH(i)
323+ let aO = fromBase58String(bq[G])
323324 let aM = fromBase58String(i)
324- let w = bp[H]
325- let bk = valueOrElse(getBoolean(E(w)), false)
326- if (bk)
325+ let w = bq[H]
326+ let bl = valueOrElse(getBoolean(E(w)), false)
327+ if (bl)
327328 then throw("operation is blocked")
328329 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])
330+ let bo = ah("G", w, j, k)
331+ let br = split(e(bo), a)
332+ let au = br[al]
333+ let aA = parseIntValue(br[ar])
334+ let bs = parseIntValue(br[am])
335+ let bt = parseIntValue(br[ao])
335336 if ((au != "PENDING"))
336337 then h("Status is not PENDING", i, j, k)
337338 else if ((aA > height))
338339 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+ else [ScriptTransfer(aj, bt, aM), StringEntry(bo, aD(br, "FINISHED", lastBlock.timestamp)), aK(u(w), bs, bt), aK(v(w, j), bs, bt)]
340341 }
341342 }
342343
344345
345346 @Callable(T)
346347 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)
348+ let bq = aH(i)
349+ let bj = value(T.payments[0])
350+ let bu = value(bj.assetId)
351+ let bv = toBase58String(bu)
352+ let aO = fromBase58String(bq[G])
353+ let X = parseIntValue(bq[I])
354+ let Y = parseIntValue(bq[J])
355+ let w = bq[H]
356+ let bw = p(w, toString(T.caller))
357+ let bx = valueOrElse(getInteger(this, bw), 0)
358+ let bl = valueOrElse(getBoolean(E(w)), false)
359+ if (bl)
359360 then throw("operation is blocked")
360- else if ((i != bu))
361+ else if ((i != bv))
361362 then throw("attached payment's asset id is NOT matched passed baseAssetStr")
362363 else if ((size(T.payments) > 1))
363364 then throw("only one payment can be attached")
364- else if ((100 > (height - bw)))
365+ else if ((100 > (height - bx)))
365366 then throw("1 topUp per 100 blocks from the same address is allowed")
366367 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)]
368+ let aw = aL(w, bu, bj.amount, aO, X, Y)._1
369+[IntegerEntry(n(w), aw), IntegerEntry(r(w, height, lastBlock.timestamp), aw), IntegerEntry(bw, height)]
369370 }
370371 }
371372
372373
373374
374375 @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))
376+func emit (by,bz) = {
377+ let bA = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), b("lp_staking_pools contract address is undefined"))), b("invalid lp_staking_pools contract address"))
378+ let bB = [if ((T.caller == bA))
378379 then true
379- else d("permission denied"), if ((by > 0))
380+ else d("permission denied"), if ((bz > 0))
380381 then true
381- else d("invalid amount to emit"), if ((getString(A(toBase58String(bx))) != unit))
382+ else d("invalid amount to emit"), if ((getString(A(toBase58String(by))) != unit))
382383 then true
383384 else d("invalid assetId")]
384- if ((bA == bA))
385+ if ((bB == bB))
385386 then {
386- let bB = true
387- $Tuple2([Reissue(bx, by, bB), ScriptTransfer(bz, by, bx)], by)
387+ let bC = true
388+ $Tuple2([Reissue(by, bz, bC), ScriptTransfer(bA, bz, by)], bz)
388389 }
389390 else throw("Strict value is not equal to itself.")
390391 }
393394
394395 @Callable(T)
395396 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)
397+ let bD = aU(i)
398+ let aw = bD._1.value
399+ let Y = bD._2.value
400+ let aQ = bD._3.value
401+ let aP = bD._4.value
402+ let aR = bD._5.value
403+ let aS = bD._6.value
404+ let bE = makeString(["startCurrentSysParamsREST", toString(aw), toString(Y), toString(aQ), toString(aP), toString(aR), toString(aS), "endCurrentSysParamsREST"], a)
405+ throw(bE)
405406 }
406407
407408
408409
409410 @Callable(T)
410-func setManager (bE) = {
411- let bF = U(T)
412- if ((bF == bF))
411+func setManager (bF) = {
412+ let bc = U(T)
413+ if ((bc == bc))
413414 then {
414- let bG = fromBase58String(bE)
415+ let bG = fromBase58String(bF)
415416 if ((bG == bG))
416- then [StringEntry(M(), bE)]
417+ then [StringEntry(M(), bF)]
417418 else throw("Strict value is not equal to itself.")
418419 }
419420 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 func b (c) = throw(makeString(["lp_staking.ride:", c], " "))
77
88
99 func d (c) = throw(b(c))
1010
1111
1212 func e (f) = valueOrErrorMessage(getString(this, f), ("No data for this.key=" + f))
1313
1414
1515 func g (f) = valueOrErrorMessage(getBoolean(this, f), ("No data for this.key=" + f))
1616
1717
1818 func h (c,i,j,k) = throw(((((((c + ": baseAssetStr=") + i) + " userAddressStr=") + j) + " getTxIdStr=") + k))
1919
2020
2121 func l (i) = ("%s%s%s__config__asset__" + i)
2222
2323
2424 func m () = "%s__nextInternalAssetId"
2525
2626
2727 func n (o) = ("%s%s%d__price__last__" + o)
2828
2929
3030 func p (o,q) = makeString(["%s%s%s%d%s__topup__last__height", o, q], a)
3131
3232
3333 func r (o,s,t) = makeString(["%s%s%d%d%d__price__history", o, toString(s), toString(t)], a)
3434
3535
3636 func u (o) = ("%s%s%d__total__locked__" + o)
3737
3838
3939 func v (w,j) = makeString(["%s%s%d%s__total__locked", w, j], a)
4040
4141
4242 func x (y) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(y))
4343
4444
4545 func z (i) = ("%s%s%s__mappings__baseAsset2internalId__" + i)
4646
4747
4848 func A (B) = ("%s%s%s__mappings__share2baseAssetId__" + B)
4949
5050
5151 func C (i) = ("%s%s%s__mappings__baseAsset2shareId__" + i)
5252
5353
5454 func D (w) = ("%s%s%d__shutdown__put__" + w)
5555
5656
5757 func E (w) = ("%s%d__shutdown__" + w)
5858
5959
6060 func F (w) = ("%s%s%d__shutdown__manager__" + w)
6161
6262
6363 let G = 1
6464
6565 let H = 2
6666
6767 let I = 3
6868
6969 let J = 4
7070
7171 let K = 5
7272
7373 func L () = "%s__managerPublicKey"
7474
7575
7676 func M () = "%s__pendingManagerPublicKey"
7777
7878
7979 func N () = {
8080 let O = getString(L())
8181 if ($isInstanceOf(O, "String"))
8282 then {
8383 let P = O
8484 fromBase58String(P)
8585 }
8686 else if ($isInstanceOf(O, "Unit"))
8787 then unit
8888 else throw("Match error")
8989 }
9090
9191
9292 func Q () = {
9393 let O = getString(M())
9494 if ($isInstanceOf(O, "String"))
9595 then {
9696 let P = O
9797 fromBase58String(P)
9898 }
9999 else if ($isInstanceOf(O, "Unit"))
100100 then unit
101101 else throw("Match error")
102102 }
103103
104104
105105 let R = throw("Permission denied")
106106
107107 func S (T) = if ((T.caller == this))
108108 then true
109109 else R
110110
111111
112112 func U (T) = {
113113 let O = N()
114114 if ($isInstanceOf(O, "ByteVector"))
115115 then {
116116 let V = O
117117 if ((T.callerPublicKey == V))
118118 then true
119119 else R
120120 }
121121 else if ($isInstanceOf(O, "Unit"))
122122 then S(T)
123123 else throw("Match error")
124124 }
125125
126126
127127 func W (B,w,X,Y,Z) = makeString(["%s%d%d%d%d", B, w, toString(X), toString(Y), toString(Z)], a)
128128
129129
130130 let aa = 1
131131
132132 let ab = 2
133133
134134 func ac (ad,ae) = makeString(["%d%d", toString(ad), toString(ae)], a)
135135
136136
137137 func af (f) = {
138138 let ag = split(valueOrElse(getString(this, f), ac(0, 0)), a)
139139 [-1, parseIntValue(ag[aa]), parseIntValue(ag[ab])]
140140 }
141141
142142
143143 func ah (ai,w,aj,ak) = makeString(["%s%d%s%s", ai, w, aj, ak], a)
144144
145145
146146 let al = 1
147147
148148 let am = 2
149149
150150 let an = 3
151151
152152 let ao = 4
153153
154154 let ap = 5
155155
156156 let aq = 6
157157
158158 let ar = 7
159159
160160 let as = 8
161161
162162 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)
163163
164164
165165 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))
166166
167167
168168 func aD (aE,aF,aG) = at(aF, aE[am], aE[an], aE[ao], aE[ap], aE[aq], aE[ar], toString(aG))
169169
170170
171171 func aH (i) = {
172172 let f = l(i)
173173 split(e(f), a)
174174 }
175175
176176
177177 func aI (f,ad,ae) = {
178178 let aJ = af(f)
179179 StringEntry(f, ac((aJ[aa] + ad), (aJ[ab] + ae)))
180180 }
181181
182182
183183 func aK (f,ad,ae) = {
184184 let aJ = af(f)
185185 StringEntry(f, ac((aJ[aa] - ad), (aJ[ab] - ae)))
186186 }
187187
188188
189189 func aL (w,aM,aN,aO,X,Y) = {
190190 let ag = af(u(w))
191191 let aP = ag[ab]
192192 let aQ = assetBalance(this, aM)
193193 let aR = ((aQ - aP) + aN)
194194 if ((0 > aR))
195195 then throw(((("baseAssetBalanceConsideringLock < 0: baseAssetBalance=" + toString(aQ)) + " baseAssetBalanceConsideringLock=") + toString(aR)))
196196 else {
197197 let aS = value(assetInfo(aO)).quantity
198198 let aw = if ((aS == 0))
199199 then (1 * Y)
200200 else fraction(aR, Y, aS)
201201 $Tuple5(aw, aQ, aP, aR, aS)
202202 }
203203 }
204204
205205
206206 func aT (w,aM,aO,X,Y) = aL(w, aM, 0, aO, X, Y)
207207
208208
209209 func aU (i) = {
210210 let aM = fromBase58String(i)
211211 let aV = aH(i)
212212 let B = aV[G]
213213 let aO = fromBase58String(B)
214214 let X = parseIntValue(aV[I])
215215 let Y = parseIntValue(aV[J])
216216 let w = aV[H]
217217 let aW = aT(w, aM, aO, X, Y)
218218 $Tuple6(IntegerEntry("price", aW._1), IntegerEntry("decimalsMultPrice", Y), IntegerEntry("baseAssetBalance", aW._2), IntegerEntry("totalLockedBaseAmount", aW._3), IntegerEntry("baseAssetBalanceConsideringLock", aW._4), IntegerEntry("shareEmission", aW._5))
219219 }
220220
221221
222222 @Callable(T)
223223 func adminRegisterAsset (i,aX,aY,aZ,ba) = {
224224 let aM = fromBase58String(i)
225225 let bb = value(assetInfo(aM)).decimals
226- if ((T.caller != this))
227- then throw("permissions denied")
228- else if ((toString(addressFromStringValue(ba)) != ba))
226+ let bc = U(T)
227+ if ((bc == bc))
228+ then if ((toString(addressFromStringValue(ba)) != ba))
229229 then throw("invalid shutdownManagerAddress")
230230 else if ((0 > aZ))
231231 then throw(("invalid getDelayinBlocks=" + toString(aZ)))
232232 else {
233- let bc = Issue(aX, aY, 1, bb, true)
234- let aO = calculateAssetId(bc)
233+ let bd = Issue(aX, aY, 1, bb, true)
234+ let aO = calculateAssetId(bd)
235235 let B = toBase58String(aO)
236236 let Y = ((100 * 1000) * 1000)
237237 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)]
238+ let be = (1 * Y)
239+ let bf = valueOrElse(getInteger(this, m()), 0)
240+ let w = toString(bf)
241+[StringEntry(l(i), W(B, w, X, Y, aZ)), StringEntry(x(bf), i), StringEntry(z(i), w), StringEntry(A(B), i), StringEntry(C(i), B), BooleanEntry(D(w), false), StringEntry(F(w), ba), IntegerEntry(m(), (bf + 1)), IntegerEntry(n(w), be), IntegerEntry(r(w, height, lastBlock.timestamp), be), bd, Burn(aO, 1)]
242242 }
243+ else throw("Strict value is not equal to itself.")
243244 }
244245
245246
246247
247248 @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)))
249+func shutdownPut (bg) = {
250+ let bh = toString(bg)
251+ let bi = e(x(bg))
252+ let ba = e(F(bh))
253+ if ((1 > size(bi)))
253254 then throw("invalid internalBaseAssetId")
254255 else if ((toString(T.caller) != ba))
255256 then throw("access denied")
256- else [BooleanEntry(D(toString(bf)), true)]
257+ else [BooleanEntry(D(toString(bg)), true)]
257258 }
258259
259260
260261
261262 @Callable(T)
262263 func put () = {
263- let bi = value(T.payments[0])
264- let aM = value(bi.assetId)
264+ let bj = value(T.payments[0])
265+ let aM = value(bj.assetId)
265266 let i = toBase58String(aM)
266267 let j = toString(T.caller)
267268 let aV = aH(i)
268269 let B = aV[G]
269270 let aO = fromBase58String(B)
270271 let X = parseIntValue(aV[I])
271272 let Y = parseIntValue(aV[J])
272273 let w = aV[H]
273- let bj = g(D(w))
274- let bk = valueOrElse(getBoolean(E(w)), false)
275- if (if (bj)
274+ let bk = g(D(w))
275+ let bl = valueOrElse(getBoolean(E(w)), false)
276+ if (if (bk)
276277 then true
277- else bk)
278+ else bl)
278279 then throw("put operation is blocked")
279280 else {
280281 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))]
282+ let ad = fraction(bj.amount, Y, aw)
283+[Reissue(aO, ad, true), ScriptTransfer(T.caller, ad, aO), StringEntry(ah("P", w, j, toBase58String(T.transactionId)), aC("FINISHED", bj.amount, aw, ad, height, lastBlock.timestamp, height, lastBlock.timestamp))]
283284 }
284285 }
285286
286287
287288
288289 @Callable(T)
289290 func submitGetRequest () = {
290- let bi = value(T.payments[0])
291- let aO = value(bi.assetId)
291+ let bj = value(T.payments[0])
292+ let aO = value(bj.assetId)
292293 let B = toBase58String(aO)
293- let bl = toBase58String(T.callerPublicKey)
294+ let bm = toBase58String(T.callerPublicKey)
294295 let aj = T.caller
295296 let j = toString(aj)
296- let ad = bi.amount
297+ let ad = bj.amount
297298 let i = e(A(B))
298299 let aM = fromBase58String(i)
299300 let aV = aH(i)
300301 let X = parseIntValue(aV[I])
301302 let Y = parseIntValue(aV[J])
302- let bm = parseIntValue(aV[K])
303+ let bn = parseIntValue(aV[K])
303304 let w = aV[H]
304- let bk = valueOrElse(getBoolean(E(w)), false)
305- if (bk)
305+ let bl = valueOrElse(getBoolean(E(w)), false)
306+ if (bl)
306307 then throw("operation is blocked")
307308 else {
308309 let aw = aT(w, aM, aO, X, Y)._1
309310 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)]
311+ let bo = ah("G", w, j, toBase58String(T.transactionId))
312+ let bp = aC("PENDING", ad, aw, ae, height, lastBlock.timestamp, (height + bn), 0)
313+[Burn(aO, ad), StringEntry(bo, bp), aI(u(w), ad, ae), aI(v(w, j), ad, ae)]
313314 }
314315 }
315316
316317
317318
318319 @Callable(T)
319320 func executeGetRequest (i,j,k) = {
320321 let aj = addressFromStringValue(j)
321- let bp = aH(i)
322- let aO = fromBase58String(bp[G])
322+ let bq = aH(i)
323+ let aO = fromBase58String(bq[G])
323324 let aM = fromBase58String(i)
324- let w = bp[H]
325- let bk = valueOrElse(getBoolean(E(w)), false)
326- if (bk)
325+ let w = bq[H]
326+ let bl = valueOrElse(getBoolean(E(w)), false)
327+ if (bl)
327328 then throw("operation is blocked")
328329 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])
330+ let bo = ah("G", w, j, k)
331+ let br = split(e(bo), a)
332+ let au = br[al]
333+ let aA = parseIntValue(br[ar])
334+ let bs = parseIntValue(br[am])
335+ let bt = parseIntValue(br[ao])
335336 if ((au != "PENDING"))
336337 then h("Status is not PENDING", i, j, k)
337338 else if ((aA > height))
338339 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+ else [ScriptTransfer(aj, bt, aM), StringEntry(bo, aD(br, "FINISHED", lastBlock.timestamp)), aK(u(w), bs, bt), aK(v(w, j), bs, bt)]
340341 }
341342 }
342343
343344
344345
345346 @Callable(T)
346347 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)
348+ let bq = aH(i)
349+ let bj = value(T.payments[0])
350+ let bu = value(bj.assetId)
351+ let bv = toBase58String(bu)
352+ let aO = fromBase58String(bq[G])
353+ let X = parseIntValue(bq[I])
354+ let Y = parseIntValue(bq[J])
355+ let w = bq[H]
356+ let bw = p(w, toString(T.caller))
357+ let bx = valueOrElse(getInteger(this, bw), 0)
358+ let bl = valueOrElse(getBoolean(E(w)), false)
359+ if (bl)
359360 then throw("operation is blocked")
360- else if ((i != bu))
361+ else if ((i != bv))
361362 then throw("attached payment's asset id is NOT matched passed baseAssetStr")
362363 else if ((size(T.payments) > 1))
363364 then throw("only one payment can be attached")
364- else if ((100 > (height - bw)))
365+ else if ((100 > (height - bx)))
365366 then throw("1 topUp per 100 blocks from the same address is allowed")
366367 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)]
368+ let aw = aL(w, bu, bj.amount, aO, X, Y)._1
369+[IntegerEntry(n(w), aw), IntegerEntry(r(w, height, lastBlock.timestamp), aw), IntegerEntry(bw, height)]
369370 }
370371 }
371372
372373
373374
374375 @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))
376+func emit (by,bz) = {
377+ let bA = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), b("lp_staking_pools contract address is undefined"))), b("invalid lp_staking_pools contract address"))
378+ let bB = [if ((T.caller == bA))
378379 then true
379- else d("permission denied"), if ((by > 0))
380+ else d("permission denied"), if ((bz > 0))
380381 then true
381- else d("invalid amount to emit"), if ((getString(A(toBase58String(bx))) != unit))
382+ else d("invalid amount to emit"), if ((getString(A(toBase58String(by))) != unit))
382383 then true
383384 else d("invalid assetId")]
384- if ((bA == bA))
385+ if ((bB == bB))
385386 then {
386- let bB = true
387- $Tuple2([Reissue(bx, by, bB), ScriptTransfer(bz, by, bx)], by)
387+ let bC = true
388+ $Tuple2([Reissue(by, bz, bC), ScriptTransfer(bA, bz, by)], bz)
388389 }
389390 else throw("Strict value is not equal to itself.")
390391 }
391392
392393
393394
394395 @Callable(T)
395396 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)
397+ let bD = aU(i)
398+ let aw = bD._1.value
399+ let Y = bD._2.value
400+ let aQ = bD._3.value
401+ let aP = bD._4.value
402+ let aR = bD._5.value
403+ let aS = bD._6.value
404+ let bE = makeString(["startCurrentSysParamsREST", toString(aw), toString(Y), toString(aQ), toString(aP), toString(aR), toString(aS), "endCurrentSysParamsREST"], a)
405+ throw(bE)
405406 }
406407
407408
408409
409410 @Callable(T)
410-func setManager (bE) = {
411- let bF = U(T)
412- if ((bF == bF))
411+func setManager (bF) = {
412+ let bc = U(T)
413+ if ((bc == bc))
413414 then {
414- let bG = fromBase58String(bE)
415+ let bG = fromBase58String(bF)
415416 if ((bG == bG))
416- then [StringEntry(M(), bE)]
417+ then [StringEntry(M(), bF)]
417418 else throw("Strict value is not equal to itself.")
418419 }
419420 else throw("Strict value is not equal to itself.")
420421 }
421422
422423
423424
424425 @Callable(T)
425426 func confirmManager () = {
426427 let bH = Q()
427428 let bI = if (isDefined(bH))
428429 then true
429430 else d("no pending manager")
430431 if ((bI == bI))
431432 then {
432433 let bJ = if ((T.callerPublicKey == value(bH)))
433434 then true
434435 else d("you are not pending manager")
435436 if ((bJ == bJ))
436437 then [StringEntry(L(), toBase58String(value(bH))), DeleteEntry(M())]
437438 else throw("Strict value is not equal to itself.")
438439 }
439440 else throw("Strict value is not equal to itself.")
440441 }
441442
442443
443444 @Verifier(bK)
444445 func bL () = {
445446 let bM = {
446447 let O = N()
447448 if ($isInstanceOf(O, "ByteVector"))
448449 then {
449450 let V = O
450451 V
451452 }
452453 else if ($isInstanceOf(O, "Unit"))
453454 then bK.senderPublicKey
454455 else throw("Match error")
455456 }
456457 sigVerify(bK.bodyBytes, bK.proofs[0], bM)
457458 }
458459

github/deemru/w8io/c3f4982 
103.80 ms