tx · 28DAJQDGWMLhKmHRTCR72v11NDteh36ZBGJh2syKuDFX

3MsC1Cit1aGB6qPW1hvkyGP2Gx79K1mtUAk:  -0.01600000 Waves

2023.01.13 12:52 [2403024] smart account 3MsC1Cit1aGB6qPW1hvkyGP2Gx79K1mtUAk > SELF 0.00000000 Waves

{ "type": 13, "id": "28DAJQDGWMLhKmHRTCR72v11NDteh36ZBGJh2syKuDFX", "fee": 1600000, "feeAssetId": null, "timestamp": 1673603572199, "version": 1, "sender": "3MsC1Cit1aGB6qPW1hvkyGP2Gx79K1mtUAk", "senderPublicKey": "2rdeGwVMkuRfRdUgrYaekNmjnegHokhyDx1z6TJq525F", "proofs": [ "2Q41vxf6QMZh22TeKQByR7j7qj1gWNmPzamSJyHYrku1FCgaA4k3p8uV9hRR1ctH9TFBAzw32NGoeDRNDWHcFmrV" ], "script": "base64:BgLgEggCEgcKBQgICAEIEgMKAQESABIAEgUKAwgICBIDCgEIEgQKAgIBEgQKAgIBEgMKAQgSAwoBCBIAIgNTRVAiB3dyYXBFcnIiA21zZyIIdGhyb3dFcnIiD2dldFN0cmluZ09yRmFpbCIDa2V5IhBnZXRCb29sZWFuT3JGYWlsIg5mYWlsRXhlY3V0ZUdldCIMYmFzZUFzc2V0U3RyIg51c2VyQWRkcmVzc1N0ciIKZ2V0VHhJZFN0ciILa2V5QXNzZXRDZmciFmtleU5leHRJbnRlcm5hbEFzc2V0SWQiDGtleVByaWNlTGFzdCIVaW50ZXJuYWxCYXNldEFzc2V0U3RyIhJrZXlUb3BVcExhc3RIZWlnaHQiBnNlbmRlciIPa2V5UHJpY2VIaXN0b3J5IgFoIgl0aW1lc3RhbXAiDmtleVRvdGFsTG9ja2VkIhRrZXlUb3RhbExvY2tlZEJ5VXNlciIUaW50ZXJuYWxCYXNlQXNzZXRTdHIiH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQiEWludGVybmFsQmFzZUFzc2V0Ih9rZXlNYXBwaW5nc0Jhc2VBc3NldDJpbnRlcm5hbElkIhxrZXlNYXBwaW5nc1NoYXJlMmJhc2VBc3NldElkIg1zaGFyZUFzc2V0U3RyIhxrZXlNYXBwaW5nc0Jhc2VBc3NldDJzaGFyZUlkIhdrZXlTaHV0ZG93blB1dE9wZXJhdGlvbiILa2V5U2h1dGRvd24iEmtleVNodXRkb3duTWFuYWdlciISSWR4Q2ZnU2hhcmVBc3NldElkIhdJZHhDZmdJbnRlcm5hbEJhc2VBc3NldCIcSWR4Q2ZnRGVjaW1hbHNNdWx0Qm90aEFzc2V0cyIXSWR4Q2ZnRGVjaW1hbHNNdWx0UHJpY2UiFElkeENmZ0dldERlbGF5QmxvY2tzIhNrZXlNYW5hZ2VyUHVibGljS2V5IhprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleSIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIHJG1hdGNoMCIBcyIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiFXBlcm1pc3Npb25EZW5pZWRFcnJvciIIbXVzdFRoaXMiAWkiC211c3RNYW5hZ2VyIgJwayIWbHBTdGFraW5nUG9vbHNDb250cmFjdCIMZGF0YUFzc2V0Q2ZnIhZkZWNpbWFsc011bHRCb3RoQXNzZXRzIhFkZWNpbWFsc011bHRQcmljZSIQZ2V0RGVsYXlJbkJsb2NrcyITSWR4VG90YWxMb2NrZWRTaGFyZSISSWR4VG90YWxMb2NrZWRCYXNlIg9kYXRhVG90YWxMb2NrZWQiEHNoYXJlQXNzZXRBbW91bnQiD2Jhc2VBc3NldEFtb3VudCIPcmVhZFRvdGFsTG9ja2VkIhB0b3RhbExvY2tlZEFycmF5IgxrZXlPcGVyYXRpb24iDW9wZXJhdGlvblR5cGUiC3VzZXJBZGRyZXNzIgR0eElkIg1JZHhPcGVyU3RhdHVzIg9JZHhPcGVySW5BbW91bnQiDElkeE9wZXJQcmljZSIQSWR4T3Blck91dEFtb3VudCISSWR4T3BlclN0YXJ0SGVpZ2h0IhVJZHhPcGVyU3RhcnRUaW1lc3RhbXAiEElkeE9wZXJFbmRIZWlnaHQiE0lkeE9wZXJFbmRUaW1lc3RhbXAiHnByaXZhdGVEYXRhT3BlcmF0aW9uQWxsU3RyaW5ncyIGc3RhdHVzIg1pbkFzc2V0QW1vdW50IgVwcmljZSIOb3V0QXNzZXRBbW91bnQiC3N0YXJ0SGVpZ2h0Ig5zdGFydFRpbWVzdGFtcCIJZW5kSGVpZ2h0IgxlbmRUaW1lc3RhbXAiDWRhdGFPcGVyYXRpb24iHGRhdGFPcGVyYXRpb25FeGVjdXRpb25VcGRhdGUiDWN1cnJPcGVyQXJyYXkiCW5ld1N0YXR1cyIPbmV3RW5kVGltZXN0YW1wIhJyZWFkQXNzZXRDZmdPckZhaWwiFGluY3JlbWVudFRvdGFsTG9ja2VkIglkYXRhQXJyYXkiFGRlY3JlbWVudFRvdGFsTG9ja2VkIhBnZW5lcmljQ2FsY1ByaWNlIgtiYXNlQXNzZXRJZCIPdG9wVXBCYXNlQW1vdW50IgxzaGFyZUFzc2V0SWQiFXRvdGFsTG9ja2VkQmFzZUFtb3VudCIQYmFzZUFzc2V0QmFsYW5jZSIfYmFzZUFzc2V0QmFsYW5jZUNvbnNpZGVyaW5nTG9jayINc2hhcmVFbWlzc2lvbiIJY2FsY1ByaWNlIhtwcml2YXRlQ3VycmVudFN5c1BhcmFtc1JFU1QiCGNmZ0FycmF5IghzeXNTdGF0ZSIOc2hhcmVBc3NldE5hbWUiD3NoYXJlQXNzZXREZXNjciIQZ2V0RGVsYXlpbkJsb2NrcyIWc2h1dGRvd25NYW5hZ2VyQWRkcmVzcyIIZGVjaW1hbHMiC2NoZWNrQ2FsbGVyIhVzaGFyZUFzc2V0SXNzdWVBY3Rpb24iCnN0YXJ0UHJpY2UiFGludGVybmFsQmFzZUFzc2V0dElkIhNpbnRlcm5hbEJhc2VBc3NldElkIhZpbnRlcm5hbEJhc2VBc3NldElkU3RyIg5iYXNlQXNzZXRJZFN0ciIDcG10Igxpc1B1dEJsb2NrZWQiCHNodXRkb3duIgxjYWxsZXJQdWJTdHIiDmdldERlbGF5QmxvY2tzIgxvcGVyYXRpb25LZXkiDW9wZXJhdGlvbkRhdGEiDWFzc2V0Q2ZnQXJyYXkiDm9wZXJhdGlvbkFycmF5Ig1pblNoYXJlQW1vdW50Ig1vdXRCYXNlQW1vdW50IgpwbXRBc3NldElkIgtwbXRBc3NldFN0ciISdG9wVXBMYXN0SGVpZ2h0S0VZIg90b3BVcExhc3RIZWlnaHQiB2Fzc2V0SWQiBmFtb3VudCIGY2hlY2tzIgxpc1JlaXNzdWFibGUiDXN5c1N0YXRlVHVwbGUiCHJlc3REYXRhIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleTgAAWECAl9fAQFiAQFjCQC5CQIJAMwIAgIQbHBfc3Rha2luZy5yaWRlOgkAzAgCBQFjBQNuaWwCASABAWQBAWMJAAIBCQEBYgEFAWMBAWUBAWYJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQFmCQCsAgICFU5vIGRhdGEgZm9yIHRoaXMua2V5PQUBZgEBZwEBZgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCbCAIFBHRoaXMFAWYJAKwCAgIVTm8gZGF0YSBmb3IgdGhpcy5rZXk9BQFmAQFoBAFjAWkBagFrCQACAQkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUBYwIPOiBiYXNlQXNzZXRTdHI9BQFpAhAgdXNlckFkZHJlc3NTdHI9BQFqAgwgZ2V0VHhJZFN0cj0FAWsBAWwBAWkJAKwCAgIXJXMlcyVzX19jb25maWdfX2Fzc2V0X18FAWkBAW0AAhclc19fbmV4dEludGVybmFsQXNzZXRJZAEBbgEBbwkArAICAhUlcyVzJWRfX3ByaWNlX19sYXN0X18FAW8BAXACAW8BcQkAuQkCCQDMCAICHyVzJXMlcyVkJXNfX3RvcHVwX19sYXN0X19oZWlnaHQJAMwIAgUBbwkAzAgCBQFxBQNuaWwFAWEBAXIDAW8BcwF0CQC5CQIJAMwIAgIaJXMlcyVkJWQlZF9fcHJpY2VfX2hpc3RvcnkJAMwIAgUBbwkAzAgCCQCkAwEFAXMJAMwIAgkApAMBBQF0BQNuaWwFAWEBAXUBAW8JAKwCAgIXJXMlcyVkX190b3RhbF9fbG9ja2VkX18FAW8BAXYCAXcBagkAuQkCCQDMCAICFyVzJXMlZCVzX190b3RhbF9fbG9ja2VkCQDMCAIFAXcJAMwIAgUBagUDbmlsBQFhAQF4AQF5CQCsAgICKCVzJXMlZF9fbWFwcGluZ3NfX2ludGVybmFsMmJhc2VBc3NldElkX18JAKQDAQUBeQEBegEBaQkArAICAiglcyVzJXNfX21hcHBpbmdzX19iYXNlQXNzZXQyaW50ZXJuYWxJZF9fBQFpAQFBAQFCCQCsAgICJSVzJXMlc19fbWFwcGluZ3NfX3NoYXJlMmJhc2VBc3NldElkX18FAUIBAUMBAWkJAKwCAgIlJXMlcyVzX19tYXBwaW5nc19fYmFzZUFzc2V0MnNoYXJlSWRfXwUBaQEBRAEBdwkArAICAhclcyVzJWRfX3NodXRkb3duX19wdXRfXwUBdwEBRQEBdwkArAICAhAlcyVkX19zaHV0ZG93bl9fBQF3AQFGAQF3CQCsAgICGyVzJXMlZF9fc2h1dGRvd25fX21hbmFnZXJfXwUBdwABRwABAAFIAAIAAUkAAwABSgAEAAFLAAUBAUwAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBTQACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQEBTgAEAU8JAKIIAQkBAUwAAwkAAQIFAU8CBlN0cmluZwQBUAUBTwkA2QQBBQFQAwkAAQIFAU8CBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgEBUQAEAU8JAKIIAQkBAU0AAwkAAQIFAU8CBlN0cmluZwQBUAUBTwkA2QQBBQFQAwkAAQIFAU8CBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgABUgkAAgECEVBlcm1pc3Npb24gZGVuaWVkAQFTAQFUAwkAAAIIBQFUBmNhbGxlcgUEdGhpcwYFAVIBAVUBAVQEAU8JAQFOAAMJAAECBQFPAgpCeXRlVmVjdG9yBAFWBQFPAwkAAAIIBQFUD2NhbGxlclB1YmxpY0tleQUBVgYFAVIDCQABAgUBTwIEVW5pdAkBAVMBBQFUCQACAQILTWF0Y2ggZXJyb3IAAVcJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKIIAQkAuQkCCQDMCAICAiVzCQDMCAICFmxwU3Rha2luZ1Bvb2xzQ29udHJhY3QFA25pbAUBYQkBAWIBAi5scF9zdGFraW5nX3Bvb2xzIGNvbnRyYWN0IGFkZHJlc3MgaXMgdW5kZWZpbmVkCQEBYgECKWludmFsaWQgbHBfc3Rha2luZ19wb29scyBjb250cmFjdCBhZGRyZXNzAQFYBQFCAXcBWQFaAmFhCQC5CQIJAMwIAgIKJXMlZCVkJWQlZAkAzAgCBQFCCQDMCAIFAXcJAMwIAgkApAMBBQFZCQDMCAIJAKQDAQUBWgkAzAgCCQCkAwEFAmFhBQNuaWwFAWEAAmFiAAEAAmFjAAIBAmFkAgJhZQJhZgkAuQkCCQDMCAICBCVkJWQJAMwIAgkApAMBBQJhZQkAzAgCCQCkAwEFAmFmBQNuaWwFAWEBAmFnAQFmBAJhaAkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFAWYJAQJhZAIAAAAABQFhCQDMCAIA////////////AQkAzAgCCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYWgFAmFiCQDMCAIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhaAUCYWMFA25pbAECYWkEAmFqAXcCYWsCYWwJALkJAgkAzAgCAgglcyVkJXMlcwkAzAgCBQJhagkAzAgCBQF3CQDMCAIFAmFrCQDMCAIFAmFsBQNuaWwFAWEAAmFtAAEAAmFuAAIAAmFvAAMAAmFwAAQAAmFxAAUAAmFyAAYAAmFzAAcAAmF0AAgBAmF1CAJhdgJhdwJheAJheQJhegJhQQJhQgJhQwkAuQkCCQDMCAICECVzJWQlZCVkJWQlZCVkJWQJAMwIAgUCYXYJAMwIAgUCYXcJAMwIAgUCYXgJAMwIAgUCYXkJAMwIAgUCYXoJAMwIAgUCYUEJAMwIAgUCYUIJAMwIAgUCYUMFA25pbAUBYQECYUQIAmF2AmF3AmF4AmF5AmF6AmFBAmFCAmFDCQECYXUIBQJhdgkApAMBBQJhdwkApAMBBQJheAkApAMBBQJheQkApAMBBQJhegkApAMBBQJhQQkApAMBBQJhQgkApAMBBQJhQwECYUUDAmFGAmFHAmFICQECYXUIBQJhRwkAkQMCBQJhRgUCYW4JAJEDAgUCYUYFAmFvCQCRAwIFAmFGBQJhcAkAkQMCBQJhRgUCYXEJAJEDAgUCYUYFAmFyCQCRAwIFAmFGBQJhcwkApAMBBQJhSAECYUkBAWkEAWYJAQFsAQUBaQkAtQkCCQEBZQEFAWYFAWEBAmFKAwFmAmFlAmFmBAJhSwkBAmFnAQUBZgkBC1N0cmluZ0VudHJ5AgUBZgkBAmFkAgkAZAIJAJEDAgUCYUsFAmFiBQJhZQkAZAIJAJEDAgUCYUsFAmFjBQJhZgECYUwDAWYCYWUCYWYEAmFLCQECYWcBBQFmCQELU3RyaW5nRW50cnkCBQFmCQECYWQCCQBlAgkAkQMCBQJhSwUCYWIFAmFlCQBlAgkAkQMCBQJhSwUCYWMFAmFmAQJhTQYBdwJhTgJhTwJhUAFZAVoEAmFoCQECYWcBCQEBdQEFAXcEAmFRCQCRAwIFAmFoBQJhYwQCYVIJAPAHAgUEdGhpcwUCYU4EAmFTCQBkAgkAZQIFAmFSBQJhUQUCYU8DCQBmAgAABQJhUwkAAgEJAKwCAgkArAICCQCsAgICNmJhc2VBc3NldEJhbGFuY2VDb25zaWRlcmluZ0xvY2sgPCAwOiBiYXNlQXNzZXRCYWxhbmNlPQkApAMBBQJhUgIhIGJhc2VBc3NldEJhbGFuY2VDb25zaWRlcmluZ0xvY2s9CQCkAwEFAmFTBAJhVAgJAQV2YWx1ZQEJAOwHAQUCYVAIcXVhbnRpdHkEAmF4AwkAAAIFAmFUAAAJAGgCAAEFAVoJAGsDBQJhUwUBWgUCYVQJAJcKBQUCYXgFAmFSBQJhUQUCYVMFAmFUAQJhVQUBdwJhTgJhUAFZAVoJAQJhTQYFAXcFAmFOAAAFAmFQBQFZBQFaAQJhVgEBaQQCYU4JANkEAQUBaQQCYVcJAQJhSQEFAWkEAUIJAJEDAgUCYVcFAUcEAmFQCQDZBAEFAUIEAVkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhVwUBSQQBWgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFXBQFKBAF3CQCRAwIFAmFXBQFIBAJhWAkBAmFVBQUBdwUCYU4FAmFQBQFZBQFaCQCYCgYJAQxJbnRlZ2VyRW50cnkCAgVwcmljZQgFAmFYAl8xCQEMSW50ZWdlckVudHJ5AgIRZGVjaW1hbHNNdWx0UHJpY2UFAVoJAQxJbnRlZ2VyRW50cnkCAhBiYXNlQXNzZXRCYWxhbmNlCAUCYVgCXzIJAQxJbnRlZ2VyRW50cnkCAhV0b3RhbExvY2tlZEJhc2VBbW91bnQIBQJhWAJfMwkBDEludGVnZXJFbnRyeQICH2Jhc2VBc3NldEJhbGFuY2VDb25zaWRlcmluZ0xvY2sIBQJhWAJfNAkBDEludGVnZXJFbnRyeQICDXNoYXJlRW1pc3Npb24IBQJhWAJfNQsBVAESYWRtaW5SZWdpc3RlckFzc2V0BQFpAmFZAmFaAmJhAmJiBAJhTgkA2QQBBQFpBAJiYwgJAQV2YWx1ZQEJAOwHAQUCYU4IZGVjaW1hbHMEAmJkCQEBVQEFAVQDCQAAAgUCYmQFAmJkAwkBAiE9AgkApQgBCQERQGV4dHJOYXRpdmUoMTA2MikBBQJiYgUCYmIJAAIBAh5pbnZhbGlkIHNodXRkb3duTWFuYWdlckFkZHJlc3MDCQBmAgAABQJiYQkAAgEJAKwCAgIZaW52YWxpZCBnZXREZWxheWluQmxvY2tzPQkApAMBBQJiYQQCYmUJAMIIBQUCYVkFAmFaAAEFAmJjBgQCYVAJALgIAQUCYmUEAUIJANgEAQUCYVAEAVoJAGgCCQBoAgBkAOgHAOgHBAFZCQBsBgAKAAAFAmJjAAAAAAUERE9XTgQCYmYJAGgCAAEFAVoEAmJnCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQFtAAAABAF3CQCkAwEFAmJnCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFsAQUBaQkBAVgFBQFCBQF3BQFZBQFaBQJiYQkAzAgCCQELU3RyaW5nRW50cnkCCQEBeAEFAmJnBQFpCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQF6AQUBaQUBdwkAzAgCCQELU3RyaW5nRW50cnkCCQEBQQEFAUIFAWkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUMBBQFpBQFCCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBRAEFAXcHCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFGAQUBdwUCYmIJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFtAAkAZAIFAmJnAAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFuAQUBdwUCYmYJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFyAwUBdwUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCYmYJAMwIAgUCYmUJAMwIAgkBBEJ1cm4CBQJhUAABBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BVAELc2h1dGRvd25QdXQBAmJoBAJiaQkApAMBBQJiaAQCYmoJAQFlAQkBAXgBBQJiaAQCYmIJAQFlAQkBAUYBBQJiaQMJAGYCAAEJALECAQUCYmoJAAIBAhtpbnZhbGlkIGludGVybmFsQmFzZUFzc2V0SWQDCQECIT0CCQClCAEIBQFUBmNhbGxlcgUCYmIJAAIBAg1hY2Nlc3MgZGVuaWVkCQDMCAIJAQxCb29sZWFuRW50cnkCCQEBRAEJAKQDAQUCYmgGBQNuaWwBVAEDcHV0AAQCYmsJAQV2YWx1ZQEJAJEDAggFAVQIcGF5bWVudHMAAAQCYU4JAQV2YWx1ZQEIBQJiawdhc3NldElkBAFpCQDYBAEFAmFOBAFqCQClCAEIBQFUBmNhbGxlcgQCYVcJAQJhSQEFAWkEAUIJAJEDAgUCYVcFAUcEAmFQCQDZBAEFAUIEAVkJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhVwUBSQQBWgkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFXBQFKBAF3CQCRAwIFAmFXBQFIBAJibAkBAWcBCQEBRAEFAXcEAmJtCQELdmFsdWVPckVsc2UCCQCgCAEJAQFFAQUBdwcDAwUCYmwGBQJibQkAAgECGHB1dCBvcGVyYXRpb24gaXMgYmxvY2tlZAQCYXgICQECYVUFBQF3BQJhTgUCYVAFAVkFAVoCXzEEAmFlCQBrAwgFAmJrBmFtb3VudAUBWgUCYXgJAMwIAgkBB1JlaXNzdWUDBQJhUAUCYWUGCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFUBmNhbGxlcgUCYWUFAmFQCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQJhaQQCAVAFAXcFAWoJANgEAQgFAVQNdHJhbnNhY3Rpb25JZAkBAmFECAIIRklOSVNIRUQIBQJiawZhbW91bnQFAmF4BQJhZQUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUDbmlsAVQBEHN1Ym1pdEdldFJlcXVlc3QABAJiawkBBXZhbHVlAQkAkQMCCAUBVAhwYXltZW50cwAABAJhUAkBBXZhbHVlAQgFAmJrB2Fzc2V0SWQEAUIJANgEAQUCYVAEAmJuCQDYBAEIBQFUD2NhbGxlclB1YmxpY0tleQQCYWsIBQFUBmNhbGxlcgQBagkApQgBBQJhawQCYWUIBQJiawZhbW91bnQEAWkJAQFlAQkBAUEBBQFCBAJhTgkA2QQBBQFpBAJhVwkBAmFJAQUBaQQBWQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmFXBQFJBAFaCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYVcFAUoEAmJvCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYVcFAUsEAXcJAJEDAgUCYVcFAUgEAmJtCQELdmFsdWVPckVsc2UCCQCgCAEJAQFFAQUBdwcDBQJibQkAAgECFG9wZXJhdGlvbiBpcyBibG9ja2VkBAJheAgJAQJhVQUFAXcFAmFOBQJhUAUBWQUBWgJfMQQCYWYJAGsDBQJhZQUCYXgFAVoEAmJwCQECYWkEAgFHBQF3BQFqCQDYBAEIBQFUDXRyYW5zYWN0aW9uSWQEAmJxCQECYUQIAgdQRU5ESU5HBQJhZQUCYXgFAmFmBQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQBkAgUGaGVpZ2h0BQJibwAACQDMCAIJAQRCdXJuAgUCYVAFAmFlCQDMCAIJAQtTdHJpbmdFbnRyeQIFAmJwBQJicQkAzAgCCQECYUoDCQEBdQEFAXcFAmFlBQJhZgkAzAgCCQECYUoDCQEBdgIFAXcFAWoFAmFlBQJhZgUDbmlsAVQBEWV4ZWN1dGVHZXRSZXF1ZXN0AwFpAWoBawQCYWsJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWoEAmJyCQECYUkBBQFpBAJhUAkA2QQBCQCRAwIFAmJyBQFHBAJhTgkA2QQBBQFpBAF3CQCRAwIFAmJyBQFIBAJibQkBC3ZhbHVlT3JFbHNlAgkAoAgBCQEBRQEFAXcHAwUCYm0JAAIBAhRvcGVyYXRpb24gaXMgYmxvY2tlZAQCYnAJAQJhaQQCAUcFAXcFAWoFAWsEAmJzCQC1CQIJAQFlAQUCYnAFAWEEAmF2CQCRAwIFAmJzBQJhbQQCYUIJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJicwUCYXMEAmJ0CQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnMFAmFuBAJidQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFAmJzBQJhcAMJAQIhPQIFAmF2AgdQRU5ESU5HCQEBaAQCFVN0YXR1cyBpcyBub3QgUEVORElORwUBaQUBagUBawMJAGYCBQJhQgUGaGVpZ2h0CQEBaAQJAKwCAgkArAICCQCsAgICCkVuZEhlaWdodFsJAKQDAQUCYUICBF0gPiAJAKQDAQUGaGVpZ2h0BQFpBQFqBQFrCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAmFrBQJidQUCYU4JAMwIAgkBC1N0cmluZ0VudHJ5AgUCYnAJAQJhRQMFAmJzAghGSU5JU0hFRAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBAmFMAwkBAXUBBQF3BQJidAUCYnUJAMwIAgkBAmFMAwkBAXYCBQF3BQFqBQJidAUCYnUFA25pbAFUAQx0b3BVcEJhbGFuY2UBAWkEAmJyCQECYUkBBQFpBAJiawkBBXZhbHVlAQkAkQMCCAUBVAhwYXltZW50cwAABAJidgkBBXZhbHVlAQgFAmJrB2Fzc2V0SWQEAmJ3CQDYBAEFAmJ2BAJhUAkA2QQBCQCRAwIFAmJyBQFHBAFZCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYnIFAUkEAVoJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJicgUBSgQBdwkAkQMCBQJicgUBSAQCYngJAQFwAgUBdwkApQgBCAUBVAZjYWxsZXIEAmJ5CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAmJ4AAAEAmJtCQELdmFsdWVPckVsc2UCCQCgCAEJAQFFAQUBdwcDBQJibQkAAgECFG9wZXJhdGlvbiBpcyBibG9ja2VkAwkBAiE9AgUBaQUCYncJAAIBAj5hdHRhY2hlZCBwYXltZW50J3MgYXNzZXQgaWQgaXMgTk9UIG1hdGNoZWQgcGFzc2VkIGJhc2VBc3NldFN0cgMJAGYCCQCQAwEIBQFUCHBheW1lbnRzAAEJAAIBAiBvbmx5IG9uZSBwYXltZW50IGNhbiBiZSBhdHRhY2hlZAMJAGYCAGQJAGUCBQZoZWlnaHQFAmJ5CQACAQI3MSB0b3BVcCBwZXIgMTAwIGJsb2NrcyBmcm9tIHRoZSBzYW1lIGFkZHJlc3MgaXMgYWxsb3dlZAQCYXgICQECYU0GBQF3BQJidggFAmJrBmFtb3VudAUCYVAFAVkFAVoCXzEJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFuAQUBdwUCYXgJAMwIAgkBDEludGVnZXJFbnRyeQIJAQFyAwUBdwUGaGVpZ2h0CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUCYXgJAMwIAgkBDEludGVnZXJFbnRyeQIFAmJ4BQZoZWlnaHQFA25pbAFUAQRlbWl0AgJiegJiQQQCYkIJAMwIAgMJAAACCAUBVAZjYWxsZXIFAVcGCQEBZAECEXBlcm1pc3Npb24gZGVuaWVkCQDMCAIDCQBmAgUCYkEAAAYJAQFkAQIWaW52YWxpZCBhbW91bnQgdG8gZW1pdAkAzAgCAwkBAiE9AgkAoggBCQEBQQEJANgEAQUCYnoFBHVuaXQGCQEBZAECD2ludmFsaWQgYXNzZXRJZAUDbmlsAwkAAAIFAmJCBQJiQgQCYkMGCQCUCgIJAMwIAgkBB1JlaXNzdWUDBQJiegUCYkEFAmJDCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMFAVcFAmJBBQJiegUDbmlsBQJiQQkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFUAQRidXJuAgJiegJiQQQCYkIJAMwIAgMJAAACCAUBVAZjYWxsZXIFAVcGCQEBZAECEXBlcm1pc3Npb24gZGVuaWVkCQDMCAIDCQBmAgUCYkEAAAYJAQFkAQIWaW52YWxpZCBhbW91bnQgdG8gYnVybgkAzAgCAwkBAiE9AgkAoggBCQEBQQEJANgEAQUCYnoFBHVuaXQGCQEBZAECD2ludmFsaWQgYXNzZXRJZAUDbmlsAwkAAAIFAmJCBQJiQgkAlAoCCQDMCAIJAQRCdXJuAgUCYnoFAmJBBQNuaWwFAmJBCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVQBFGN1cnJlbnRTeXNQYXJhbXNSRVNUAQFpBAJiRAkBAmFWAQUBaQQCYXgICAUCYkQCXzEFdmFsdWUEAVoICAUCYkQCXzIFdmFsdWUEAmFSCAgFAmJEAl8zBXZhbHVlBAJhUQgIBQJiRAJfNAV2YWx1ZQQCYVMICAUCYkQCXzUFdmFsdWUEAmFUCAgFAmJEAl82BXZhbHVlBAJiRQkAuQkCCQDMCAICGXN0YXJ0Q3VycmVudFN5c1BhcmFtc1JFU1QJAMwIAgkApAMBBQJheAkAzAgCCQCkAwEFAVoJAMwIAgkApAMBBQJhUgkAzAgCCQCkAwEFAmFRCQDMCAIJAKQDAQUCYVMJAMwIAgkApAMBBQJhVAkAzAgCAhdlbmRDdXJyZW50U3lzUGFyYW1zUkVTVAUDbmlsBQFhCQACAQUCYkUBVAEKc2V0TWFuYWdlcgECYkYEAmJkCQEBVQEFAVQDCQAAAgUCYmQFAmJkBAJiRwkA2QQBBQJiRgMJAAACBQJiRwUCYkcJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAU0ABQJiRgUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVQBDmNvbmZpcm1NYW5hZ2VyAAQCYkgJAQFRAAQCYkkDCQEJaXNEZWZpbmVkAQUCYkgGCQEBZAECEm5vIHBlbmRpbmcgbWFuYWdlcgMJAAACBQJiSQUCYkkEAmJKAwkAAAIIBQFUD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCYkgGCQEBZAECG3lvdSBhcmUgbm90IHBlbmRpbmcgbWFuYWdlcgMJAAACBQJiSgUCYkoJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUwACQDYBAEJAQV2YWx1ZQEFAmJICQDMCAIJAQtEZWxldGVFbnRyeQEJAQFNAAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJiSwECYkwABAJiTQQBTwkBAU4AAwkAAQIFAU8CCkJ5dGVWZWN0b3IEAVYFAU8FAVYDCQABAgUBTwIEVW5pdAgFAmJLD3NlbmRlclB1YmxpY0tleQkAAgECC01hdGNoIGVycm9yCQD0AwMIBQJiSwlib2R5Qnl0ZXMJAJEDAggFAmJLBnByb29mcwAABQJiTR+MzJc=", "chainId": 84, "height": 2403024, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: F6qPjohVAwGiuyRayjuXD82KbqjuvVdmwMt87ZWHzvma Next: 8FurQAffAdR21eerYn7eGTv7kMunvoJhooZecsmtyTs4 Diff:
OldNewDifferences
124124 }
125125
126126
127-func W (B,w,X,Y,Z) = makeString(["%s%d%d%d%d", B, w, toString(X), toString(Y), toString(Z)], a)
127+let W = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), b("lp_staking_pools contract address is undefined"))), b("invalid lp_staking_pools contract address"))
128+
129+func X (B,w,Y,Z,aa) = makeString(["%s%d%d%d%d", B, w, toString(Y), toString(Z), toString(aa)], a)
128130
129131
130-let aa = 1
132+let ab = 1
131133
132-let ab = 2
134+let ac = 2
133135
134-func ac (ad,ae) = makeString(["%d%d", toString(ad), toString(ae)], a)
136+func ad (ae,af) = makeString(["%d%d", toString(ae), toString(af)], a)
135137
136138
137-func af (f) = {
138- let ag = split(valueOrElse(getString(this, f), ac(0, 0)), a)
139-[-1, parseIntValue(ag[aa]), parseIntValue(ag[ab])]
139+func ag (f) = {
140+ let ah = split(valueOrElse(getString(this, f), ad(0, 0)), a)
141+[-1, parseIntValue(ah[ab]), parseIntValue(ah[ac])]
140142 }
141143
142144
143-func ah (ai,w,aj,ak) = makeString(["%s%d%s%s", ai, w, aj, ak], a)
145+func ai (aj,w,ak,al) = makeString(["%s%d%s%s", aj, w, ak, al], a)
144146
145147
146-let al = 1
148+let am = 1
147149
148-let am = 2
150+let an = 2
149151
150-let an = 3
152+let ao = 3
151153
152-let ao = 4
154+let ap = 4
153155
154-let ap = 5
156+let aq = 5
155157
156-let aq = 6
158+let ar = 6
157159
158-let ar = 7
160+let as = 7
159161
160-let as = 8
162+let at = 8
161163
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)
164+func au (av,aw,ax,ay,az,aA,aB,aC) = makeString(["%s%d%d%d%d%d%d%d", av, aw, ax, ay, az, aA, aB, aC], a)
163165
164166
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))
167+func aD (av,aw,ax,ay,az,aA,aB,aC) = au(av, toString(aw), toString(ax), toString(ay), toString(az), toString(aA), toString(aB), toString(aC))
166168
167169
168-func aD (aE,aF,aG) = at(aF, aE[am], aE[an], aE[ao], aE[ap], aE[aq], aE[ar], toString(aG))
170+func aE (aF,aG,aH) = au(aG, aF[an], aF[ao], aF[ap], aF[aq], aF[ar], aF[as], toString(aH))
169171
170172
171-func aH (i) = {
173+func aI (i) = {
172174 let f = l(i)
173175 split(e(f), a)
174176 }
175177
176178
177-func aI (f,ad,ae) = {
178- let aJ = af(f)
179- StringEntry(f, ac((aJ[aa] + ad), (aJ[ab] + ae)))
179+func aJ (f,ae,af) = {
180+ let aK = ag(f)
181+ StringEntry(f, ad((aK[ab] + ae), (aK[ac] + af)))
180182 }
181183
182184
183-func aK (f,ad,ae) = {
184- let aJ = af(f)
185- StringEntry(f, ac((aJ[aa] - ad), (aJ[ab] - ae)))
185+func aL (f,ae,af) = {
186+ let aK = ag(f)
187+ StringEntry(f, ad((aK[ab] - ae), (aK[ac] - af)))
186188 }
187189
188190
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)))
191+func aM (w,aN,aO,aP,Y,Z) = {
192+ let ah = ag(u(w))
193+ let aQ = ah[ac]
194+ let aR = assetBalance(this, aN)
195+ let aS = ((aR - aQ) + aO)
196+ if ((0 > aS))
197+ then throw(((("baseAssetBalanceConsideringLock < 0: baseAssetBalance=" + toString(aR)) + " baseAssetBalanceConsideringLock=") + toString(aS)))
196198 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)
199+ let aT = value(assetInfo(aP)).quantity
200+ let ax = if ((aT == 0))
201+ then (1 * Z)
202+ else fraction(aS, Z, aT)
203+ $Tuple5(ax, aR, aQ, aS, aT)
202204 }
203205 }
204206
205207
206-func aT (w,aM,aO,X,Y) = aL(w, aM, 0, aO, X, Y)
208+func aU (w,aN,aP,Y,Z) = aM(w, aN, 0, aP, Y, Z)
207209
208210
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))
211+func aV (i) = {
212+ let aN = fromBase58String(i)
213+ let aW = aI(i)
214+ let B = aW[G]
215+ let aP = fromBase58String(B)
216+ let Y = parseIntValue(aW[I])
217+ let Z = parseIntValue(aW[J])
218+ let w = aW[H]
219+ let aX = aU(w, aN, aP, Y, Z)
220+ $Tuple6(IntegerEntry("price", aX._1), IntegerEntry("decimalsMultPrice", Z), IntegerEntry("baseAssetBalance", aX._2), IntegerEntry("totalLockedBaseAmount", aX._3), IntegerEntry("baseAssetBalanceConsideringLock", aX._4), IntegerEntry("shareEmission", aX._5))
219221 }
220222
221223
222224 @Callable(T)
223-func adminRegisterAsset (i,aX,aY,aZ,ba) = {
224- let aM = fromBase58String(i)
225- let bb = value(assetInfo(aM)).decimals
226- let bc = U(T)
227- if ((bc == bc))
228- then if ((toString(addressFromStringValue(ba)) != ba))
225+func adminRegisterAsset (i,aY,aZ,ba,bb) = {
226+ let aN = fromBase58String(i)
227+ let bc = value(assetInfo(aN)).decimals
228+ let bd = U(T)
229+ if ((bd == bd))
230+ then if ((toString(addressFromStringValue(bb)) != bb))
229231 then throw("invalid shutdownManagerAddress")
230- else if ((0 > aZ))
231- then throw(("invalid getDelayinBlocks=" + toString(aZ)))
232+ else if ((0 > ba))
233+ then throw(("invalid getDelayinBlocks=" + toString(ba)))
232234 else {
233- let bd = Issue(aX, aY, 1, bb, true)
234- let aO = calculateAssetId(bd)
235- let B = toBase58String(aO)
236- let Y = ((100 * 1000) * 1000)
237- let X = pow(10, 0, bb, 0, 0, DOWN)
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)]
235+ let be = Issue(aY, aZ, 1, bc, true)
236+ let aP = calculateAssetId(be)
237+ let B = toBase58String(aP)
238+ let Z = ((100 * 1000) * 1000)
239+ let Y = pow(10, 0, bc, 0, 0, DOWN)
240+ let bf = (1 * Z)
241+ let bg = valueOrElse(getInteger(this, m()), 0)
242+ let w = toString(bg)
243+[StringEntry(l(i), X(B, w, Y, Z, ba)), StringEntry(x(bg), i), StringEntry(z(i), w), StringEntry(A(B), i), StringEntry(C(i), B), BooleanEntry(D(w), false), StringEntry(F(w), bb), IntegerEntry(m(), (bg + 1)), IntegerEntry(n(w), bf), IntegerEntry(r(w, height, lastBlock.timestamp), bf), be, Burn(aP, 1)]
242244 }
243245 else throw("Strict value is not equal to itself.")
244246 }
246248
247249
248250 @Callable(T)
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)))
251+func shutdownPut (bh) = {
252+ let bi = toString(bh)
253+ let bj = e(x(bh))
254+ let bb = e(F(bi))
255+ if ((1 > size(bj)))
254256 then throw("invalid internalBaseAssetId")
255- else if ((toString(T.caller) != ba))
257+ else if ((toString(T.caller) != bb))
256258 then throw("access denied")
257- else [BooleanEntry(D(toString(bg)), true)]
259+ else [BooleanEntry(D(toString(bh)), true)]
258260 }
259261
260262
261263
262264 @Callable(T)
263265 func put () = {
264- let bj = value(T.payments[0])
265- let aM = value(bj.assetId)
266- let i = toBase58String(aM)
266+ let bk = value(T.payments[0])
267+ let aN = value(bk.assetId)
268+ let i = toBase58String(aN)
267269 let j = toString(T.caller)
268- let aV = aH(i)
269- let B = aV[G]
270- let aO = fromBase58String(B)
271- let X = parseIntValue(aV[I])
272- let Y = parseIntValue(aV[J])
273- let w = aV[H]
274- let bk = g(D(w))
275- let bl = valueOrElse(getBoolean(E(w)), false)
276- if (if (bk)
270+ let aW = aI(i)
271+ let B = aW[G]
272+ let aP = fromBase58String(B)
273+ let Y = parseIntValue(aW[I])
274+ let Z = parseIntValue(aW[J])
275+ let w = aW[H]
276+ let bl = g(D(w))
277+ let bm = valueOrElse(getBoolean(E(w)), false)
278+ if (if (bl)
277279 then true
278- else bl)
280+ else bm)
279281 then throw("put operation is blocked")
280282 else {
281- let aw = aT(w, aM, aO, X, Y)._1
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))]
283+ let ax = aU(w, aN, aP, Y, Z)._1
284+ let ae = fraction(bk.amount, Z, ax)
285+[Reissue(aP, ae, true), ScriptTransfer(T.caller, ae, aP), StringEntry(ai("P", w, j, toBase58String(T.transactionId)), aD("FINISHED", bk.amount, ax, ae, height, lastBlock.timestamp, height, lastBlock.timestamp))]
284286 }
285287 }
286288
288290
289291 @Callable(T)
290292 func submitGetRequest () = {
291- let bj = value(T.payments[0])
292- let aO = value(bj.assetId)
293- let B = toBase58String(aO)
294- let bm = toBase58String(T.callerPublicKey)
295- let aj = T.caller
296- let j = toString(aj)
297- let ad = bj.amount
293+ let bk = value(T.payments[0])
294+ let aP = value(bk.assetId)
295+ let B = toBase58String(aP)
296+ let bn = toBase58String(T.callerPublicKey)
297+ let ak = T.caller
298+ let j = toString(ak)
299+ let ae = bk.amount
298300 let i = e(A(B))
299- let aM = fromBase58String(i)
300- let aV = aH(i)
301- let X = parseIntValue(aV[I])
302- let Y = parseIntValue(aV[J])
303- let bn = parseIntValue(aV[K])
304- let w = aV[H]
305- let bl = valueOrElse(getBoolean(E(w)), false)
306- if (bl)
301+ let aN = fromBase58String(i)
302+ let aW = aI(i)
303+ let Y = parseIntValue(aW[I])
304+ let Z = parseIntValue(aW[J])
305+ let bo = parseIntValue(aW[K])
306+ let w = aW[H]
307+ let bm = valueOrElse(getBoolean(E(w)), false)
308+ if (bm)
307309 then throw("operation is blocked")
308310 else {
309- let aw = aT(w, aM, aO, X, Y)._1
310- let ae = fraction(ad, aw, Y)
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)]
311+ let ax = aU(w, aN, aP, Y, Z)._1
312+ let af = fraction(ae, ax, Z)
313+ let bp = ai("G", w, j, toBase58String(T.transactionId))
314+ let bq = aD("PENDING", ae, ax, af, height, lastBlock.timestamp, (height + bo), 0)
315+[Burn(aP, ae), StringEntry(bp, bq), aJ(u(w), ae, af), aJ(v(w, j), ae, af)]
314316 }
315317 }
316318
318320
319321 @Callable(T)
320322 func executeGetRequest (i,j,k) = {
321- let aj = addressFromStringValue(j)
322- let bq = aH(i)
323- let aO = fromBase58String(bq[G])
324- let aM = fromBase58String(i)
325- let w = bq[H]
326- let bl = valueOrElse(getBoolean(E(w)), false)
327- if (bl)
323+ let ak = addressFromStringValue(j)
324+ let br = aI(i)
325+ let aP = fromBase58String(br[G])
326+ let aN = fromBase58String(i)
327+ let w = br[H]
328+ let bm = valueOrElse(getBoolean(E(w)), false)
329+ if (bm)
328330 then throw("operation is blocked")
329331 else {
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])
336- if ((au != "PENDING"))
332+ let bp = ai("G", w, j, k)
333+ let bs = split(e(bp), a)
334+ let av = bs[am]
335+ let aB = parseIntValue(bs[as])
336+ let bt = parseIntValue(bs[an])
337+ let bu = parseIntValue(bs[ap])
338+ if ((av != "PENDING"))
337339 then h("Status is not PENDING", i, j, k)
338- else if ((aA > height))
339- then h(((("EndHeight[" + toString(aA)) + "] > ") + toString(height)), i, j, k)
340- else [ScriptTransfer(aj, bt, aM), StringEntry(bo, aD(br, "FINISHED", lastBlock.timestamp)), aK(u(w), bs, bt), aK(v(w, j), bs, bt)]
340+ else if ((aB > height))
341+ then h(((("EndHeight[" + toString(aB)) + "] > ") + toString(height)), i, j, k)
342+ else [ScriptTransfer(ak, bu, aN), StringEntry(bp, aE(bs, "FINISHED", lastBlock.timestamp)), aL(u(w), bt, bu), aL(v(w, j), bt, bu)]
341343 }
342344 }
343345
345347
346348 @Callable(T)
347349 func topUpBalance (i) = {
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)
350+ let br = aI(i)
351+ let bk = value(T.payments[0])
352+ let bv = value(bk.assetId)
353+ let bw = toBase58String(bv)
354+ let aP = fromBase58String(br[G])
355+ let Y = parseIntValue(br[I])
356+ let Z = parseIntValue(br[J])
357+ let w = br[H]
358+ let bx = p(w, toString(T.caller))
359+ let by = valueOrElse(getInteger(this, bx), 0)
360+ let bm = valueOrElse(getBoolean(E(w)), false)
361+ if (bm)
360362 then throw("operation is blocked")
361- else if ((i != bv))
363+ else if ((i != bw))
362364 then throw("attached payment's asset id is NOT matched passed baseAssetStr")
363365 else if ((size(T.payments) > 1))
364366 then throw("only one payment can be attached")
365- else if ((100 > (height - bx)))
367+ else if ((100 > (height - by)))
366368 then throw("1 topUp per 100 blocks from the same address is allowed")
367369 else {
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)]
370+ let ax = aM(w, bv, bk.amount, aP, Y, Z)._1
371+[IntegerEntry(n(w), ax), IntegerEntry(r(w, height, lastBlock.timestamp), ax), IntegerEntry(bx, height)]
370372 }
371373 }
372374
373375
374376
375377 @Callable(T)
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))
378+func emit (bz,bA) = {
379+ let bB = [if ((T.caller == W))
379380 then true
380- else d("permission denied"), if ((bz > 0))
381+ else d("permission denied"), if ((bA > 0))
381382 then true
382- else d("invalid amount to emit"), if ((getString(A(toBase58String(by))) != unit))
383+ else d("invalid amount to emit"), if ((getString(A(toBase58String(bz))) != unit))
383384 then true
384385 else d("invalid assetId")]
385386 if ((bB == bB))
386387 then {
387388 let bC = true
388- $Tuple2([Reissue(by, bz, bC), ScriptTransfer(bA, bz, by)], bz)
389+ $Tuple2([Reissue(bz, bA, bC), ScriptTransfer(W, bA, bz)], bA)
389390 }
390391 else throw("Strict value is not equal to itself.")
391392 }
393394
394395
395396 @Callable(T)
397+func burn (bz,bA) = {
398+ let bB = [if ((T.caller == W))
399+ then true
400+ else d("permission denied"), if ((bA > 0))
401+ then true
402+ else d("invalid amount to burn"), if ((getString(A(toBase58String(bz))) != unit))
403+ then true
404+ else d("invalid assetId")]
405+ if ((bB == bB))
406+ then $Tuple2([Burn(bz, bA)], bA)
407+ else throw("Strict value is not equal to itself.")
408+ }
409+
410+
411+
412+@Callable(T)
396413 func currentSysParamsREST (i) = {
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)
414+ let bD = aV(i)
415+ let ax = bD._1.value
416+ let Z = bD._2.value
417+ let aR = bD._3.value
418+ let aQ = bD._4.value
419+ let aS = bD._5.value
420+ let aT = bD._6.value
421+ let bE = makeString(["startCurrentSysParamsREST", toString(ax), toString(Z), toString(aR), toString(aQ), toString(aS), toString(aT), "endCurrentSysParamsREST"], a)
405422 throw(bE)
406423 }
407424
409426
410427 @Callable(T)
411428 func setManager (bF) = {
412- let bc = U(T)
413- if ((bc == bc))
429+ let bd = U(T)
430+ if ((bd == bd))
414431 then {
415432 let bG = fromBase58String(bF)
416433 if ((bG == bG))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 func b (c) = 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
127-func W (B,w,X,Y,Z) = makeString(["%s%d%d%d%d", B, w, toString(X), toString(Y), toString(Z)], a)
127+let W = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(makeString(["%s", "lpStakingPoolsContract"], a)), b("lp_staking_pools contract address is undefined"))), b("invalid lp_staking_pools contract address"))
128+
129+func X (B,w,Y,Z,aa) = makeString(["%s%d%d%d%d", B, w, toString(Y), toString(Z), toString(aa)], a)
128130
129131
130-let aa = 1
132+let ab = 1
131133
132-let ab = 2
134+let ac = 2
133135
134-func ac (ad,ae) = makeString(["%d%d", toString(ad), toString(ae)], a)
136+func ad (ae,af) = makeString(["%d%d", toString(ae), toString(af)], a)
135137
136138
137-func af (f) = {
138- let ag = split(valueOrElse(getString(this, f), ac(0, 0)), a)
139-[-1, parseIntValue(ag[aa]), parseIntValue(ag[ab])]
139+func ag (f) = {
140+ let ah = split(valueOrElse(getString(this, f), ad(0, 0)), a)
141+[-1, parseIntValue(ah[ab]), parseIntValue(ah[ac])]
140142 }
141143
142144
143-func ah (ai,w,aj,ak) = makeString(["%s%d%s%s", ai, w, aj, ak], a)
145+func ai (aj,w,ak,al) = makeString(["%s%d%s%s", aj, w, ak, al], a)
144146
145147
146-let al = 1
148+let am = 1
147149
148-let am = 2
150+let an = 2
149151
150-let an = 3
152+let ao = 3
151153
152-let ao = 4
154+let ap = 4
153155
154-let ap = 5
156+let aq = 5
155157
156-let aq = 6
158+let ar = 6
157159
158-let ar = 7
160+let as = 7
159161
160-let as = 8
162+let at = 8
161163
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)
164+func au (av,aw,ax,ay,az,aA,aB,aC) = makeString(["%s%d%d%d%d%d%d%d", av, aw, ax, ay, az, aA, aB, aC], a)
163165
164166
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))
167+func aD (av,aw,ax,ay,az,aA,aB,aC) = au(av, toString(aw), toString(ax), toString(ay), toString(az), toString(aA), toString(aB), toString(aC))
166168
167169
168-func aD (aE,aF,aG) = at(aF, aE[am], aE[an], aE[ao], aE[ap], aE[aq], aE[ar], toString(aG))
170+func aE (aF,aG,aH) = au(aG, aF[an], aF[ao], aF[ap], aF[aq], aF[ar], aF[as], toString(aH))
169171
170172
171-func aH (i) = {
173+func aI (i) = {
172174 let f = l(i)
173175 split(e(f), a)
174176 }
175177
176178
177-func aI (f,ad,ae) = {
178- let aJ = af(f)
179- StringEntry(f, ac((aJ[aa] + ad), (aJ[ab] + ae)))
179+func aJ (f,ae,af) = {
180+ let aK = ag(f)
181+ StringEntry(f, ad((aK[ab] + ae), (aK[ac] + af)))
180182 }
181183
182184
183-func aK (f,ad,ae) = {
184- let aJ = af(f)
185- StringEntry(f, ac((aJ[aa] - ad), (aJ[ab] - ae)))
185+func aL (f,ae,af) = {
186+ let aK = ag(f)
187+ StringEntry(f, ad((aK[ab] - ae), (aK[ac] - af)))
186188 }
187189
188190
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)))
191+func aM (w,aN,aO,aP,Y,Z) = {
192+ let ah = ag(u(w))
193+ let aQ = ah[ac]
194+ let aR = assetBalance(this, aN)
195+ let aS = ((aR - aQ) + aO)
196+ if ((0 > aS))
197+ then throw(((("baseAssetBalanceConsideringLock < 0: baseAssetBalance=" + toString(aR)) + " baseAssetBalanceConsideringLock=") + toString(aS)))
196198 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)
199+ let aT = value(assetInfo(aP)).quantity
200+ let ax = if ((aT == 0))
201+ then (1 * Z)
202+ else fraction(aS, Z, aT)
203+ $Tuple5(ax, aR, aQ, aS, aT)
202204 }
203205 }
204206
205207
206-func aT (w,aM,aO,X,Y) = aL(w, aM, 0, aO, X, Y)
208+func aU (w,aN,aP,Y,Z) = aM(w, aN, 0, aP, Y, Z)
207209
208210
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))
211+func aV (i) = {
212+ let aN = fromBase58String(i)
213+ let aW = aI(i)
214+ let B = aW[G]
215+ let aP = fromBase58String(B)
216+ let Y = parseIntValue(aW[I])
217+ let Z = parseIntValue(aW[J])
218+ let w = aW[H]
219+ let aX = aU(w, aN, aP, Y, Z)
220+ $Tuple6(IntegerEntry("price", aX._1), IntegerEntry("decimalsMultPrice", Z), IntegerEntry("baseAssetBalance", aX._2), IntegerEntry("totalLockedBaseAmount", aX._3), IntegerEntry("baseAssetBalanceConsideringLock", aX._4), IntegerEntry("shareEmission", aX._5))
219221 }
220222
221223
222224 @Callable(T)
223-func adminRegisterAsset (i,aX,aY,aZ,ba) = {
224- let aM = fromBase58String(i)
225- let bb = value(assetInfo(aM)).decimals
226- let bc = U(T)
227- if ((bc == bc))
228- then if ((toString(addressFromStringValue(ba)) != ba))
225+func adminRegisterAsset (i,aY,aZ,ba,bb) = {
226+ let aN = fromBase58String(i)
227+ let bc = value(assetInfo(aN)).decimals
228+ let bd = U(T)
229+ if ((bd == bd))
230+ then if ((toString(addressFromStringValue(bb)) != bb))
229231 then throw("invalid shutdownManagerAddress")
230- else if ((0 > aZ))
231- then throw(("invalid getDelayinBlocks=" + toString(aZ)))
232+ else if ((0 > ba))
233+ then throw(("invalid getDelayinBlocks=" + toString(ba)))
232234 else {
233- let bd = Issue(aX, aY, 1, bb, true)
234- let aO = calculateAssetId(bd)
235- let B = toBase58String(aO)
236- let Y = ((100 * 1000) * 1000)
237- let X = pow(10, 0, bb, 0, 0, DOWN)
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)]
235+ let be = Issue(aY, aZ, 1, bc, true)
236+ let aP = calculateAssetId(be)
237+ let B = toBase58String(aP)
238+ let Z = ((100 * 1000) * 1000)
239+ let Y = pow(10, 0, bc, 0, 0, DOWN)
240+ let bf = (1 * Z)
241+ let bg = valueOrElse(getInteger(this, m()), 0)
242+ let w = toString(bg)
243+[StringEntry(l(i), X(B, w, Y, Z, ba)), StringEntry(x(bg), i), StringEntry(z(i), w), StringEntry(A(B), i), StringEntry(C(i), B), BooleanEntry(D(w), false), StringEntry(F(w), bb), IntegerEntry(m(), (bg + 1)), IntegerEntry(n(w), bf), IntegerEntry(r(w, height, lastBlock.timestamp), bf), be, Burn(aP, 1)]
242244 }
243245 else throw("Strict value is not equal to itself.")
244246 }
245247
246248
247249
248250 @Callable(T)
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)))
251+func shutdownPut (bh) = {
252+ let bi = toString(bh)
253+ let bj = e(x(bh))
254+ let bb = e(F(bi))
255+ if ((1 > size(bj)))
254256 then throw("invalid internalBaseAssetId")
255- else if ((toString(T.caller) != ba))
257+ else if ((toString(T.caller) != bb))
256258 then throw("access denied")
257- else [BooleanEntry(D(toString(bg)), true)]
259+ else [BooleanEntry(D(toString(bh)), true)]
258260 }
259261
260262
261263
262264 @Callable(T)
263265 func put () = {
264- let bj = value(T.payments[0])
265- let aM = value(bj.assetId)
266- let i = toBase58String(aM)
266+ let bk = value(T.payments[0])
267+ let aN = value(bk.assetId)
268+ let i = toBase58String(aN)
267269 let j = toString(T.caller)
268- let aV = aH(i)
269- let B = aV[G]
270- let aO = fromBase58String(B)
271- let X = parseIntValue(aV[I])
272- let Y = parseIntValue(aV[J])
273- let w = aV[H]
274- let bk = g(D(w))
275- let bl = valueOrElse(getBoolean(E(w)), false)
276- if (if (bk)
270+ let aW = aI(i)
271+ let B = aW[G]
272+ let aP = fromBase58String(B)
273+ let Y = parseIntValue(aW[I])
274+ let Z = parseIntValue(aW[J])
275+ let w = aW[H]
276+ let bl = g(D(w))
277+ let bm = valueOrElse(getBoolean(E(w)), false)
278+ if (if (bl)
277279 then true
278- else bl)
280+ else bm)
279281 then throw("put operation is blocked")
280282 else {
281- let aw = aT(w, aM, aO, X, Y)._1
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))]
283+ let ax = aU(w, aN, aP, Y, Z)._1
284+ let ae = fraction(bk.amount, Z, ax)
285+[Reissue(aP, ae, true), ScriptTransfer(T.caller, ae, aP), StringEntry(ai("P", w, j, toBase58String(T.transactionId)), aD("FINISHED", bk.amount, ax, ae, height, lastBlock.timestamp, height, lastBlock.timestamp))]
284286 }
285287 }
286288
287289
288290
289291 @Callable(T)
290292 func submitGetRequest () = {
291- let bj = value(T.payments[0])
292- let aO = value(bj.assetId)
293- let B = toBase58String(aO)
294- let bm = toBase58String(T.callerPublicKey)
295- let aj = T.caller
296- let j = toString(aj)
297- let ad = bj.amount
293+ let bk = value(T.payments[0])
294+ let aP = value(bk.assetId)
295+ let B = toBase58String(aP)
296+ let bn = toBase58String(T.callerPublicKey)
297+ let ak = T.caller
298+ let j = toString(ak)
299+ let ae = bk.amount
298300 let i = e(A(B))
299- let aM = fromBase58String(i)
300- let aV = aH(i)
301- let X = parseIntValue(aV[I])
302- let Y = parseIntValue(aV[J])
303- let bn = parseIntValue(aV[K])
304- let w = aV[H]
305- let bl = valueOrElse(getBoolean(E(w)), false)
306- if (bl)
301+ let aN = fromBase58String(i)
302+ let aW = aI(i)
303+ let Y = parseIntValue(aW[I])
304+ let Z = parseIntValue(aW[J])
305+ let bo = parseIntValue(aW[K])
306+ let w = aW[H]
307+ let bm = valueOrElse(getBoolean(E(w)), false)
308+ if (bm)
307309 then throw("operation is blocked")
308310 else {
309- let aw = aT(w, aM, aO, X, Y)._1
310- let ae = fraction(ad, aw, Y)
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)]
311+ let ax = aU(w, aN, aP, Y, Z)._1
312+ let af = fraction(ae, ax, Z)
313+ let bp = ai("G", w, j, toBase58String(T.transactionId))
314+ let bq = aD("PENDING", ae, ax, af, height, lastBlock.timestamp, (height + bo), 0)
315+[Burn(aP, ae), StringEntry(bp, bq), aJ(u(w), ae, af), aJ(v(w, j), ae, af)]
314316 }
315317 }
316318
317319
318320
319321 @Callable(T)
320322 func executeGetRequest (i,j,k) = {
321- let aj = addressFromStringValue(j)
322- let bq = aH(i)
323- let aO = fromBase58String(bq[G])
324- let aM = fromBase58String(i)
325- let w = bq[H]
326- let bl = valueOrElse(getBoolean(E(w)), false)
327- if (bl)
323+ let ak = addressFromStringValue(j)
324+ let br = aI(i)
325+ let aP = fromBase58String(br[G])
326+ let aN = fromBase58String(i)
327+ let w = br[H]
328+ let bm = valueOrElse(getBoolean(E(w)), false)
329+ if (bm)
328330 then throw("operation is blocked")
329331 else {
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])
336- if ((au != "PENDING"))
332+ let bp = ai("G", w, j, k)
333+ let bs = split(e(bp), a)
334+ let av = bs[am]
335+ let aB = parseIntValue(bs[as])
336+ let bt = parseIntValue(bs[an])
337+ let bu = parseIntValue(bs[ap])
338+ if ((av != "PENDING"))
337339 then h("Status is not PENDING", i, j, k)
338- else if ((aA > height))
339- then h(((("EndHeight[" + toString(aA)) + "] > ") + toString(height)), i, j, k)
340- else [ScriptTransfer(aj, bt, aM), StringEntry(bo, aD(br, "FINISHED", lastBlock.timestamp)), aK(u(w), bs, bt), aK(v(w, j), bs, bt)]
340+ else if ((aB > height))
341+ then h(((("EndHeight[" + toString(aB)) + "] > ") + toString(height)), i, j, k)
342+ else [ScriptTransfer(ak, bu, aN), StringEntry(bp, aE(bs, "FINISHED", lastBlock.timestamp)), aL(u(w), bt, bu), aL(v(w, j), bt, bu)]
341343 }
342344 }
343345
344346
345347
346348 @Callable(T)
347349 func topUpBalance (i) = {
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)
350+ let br = aI(i)
351+ let bk = value(T.payments[0])
352+ let bv = value(bk.assetId)
353+ let bw = toBase58String(bv)
354+ let aP = fromBase58String(br[G])
355+ let Y = parseIntValue(br[I])
356+ let Z = parseIntValue(br[J])
357+ let w = br[H]
358+ let bx = p(w, toString(T.caller))
359+ let by = valueOrElse(getInteger(this, bx), 0)
360+ let bm = valueOrElse(getBoolean(E(w)), false)
361+ if (bm)
360362 then throw("operation is blocked")
361- else if ((i != bv))
363+ else if ((i != bw))
362364 then throw("attached payment's asset id is NOT matched passed baseAssetStr")
363365 else if ((size(T.payments) > 1))
364366 then throw("only one payment can be attached")
365- else if ((100 > (height - bx)))
367+ else if ((100 > (height - by)))
366368 then throw("1 topUp per 100 blocks from the same address is allowed")
367369 else {
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)]
370+ let ax = aM(w, bv, bk.amount, aP, Y, Z)._1
371+[IntegerEntry(n(w), ax), IntegerEntry(r(w, height, lastBlock.timestamp), ax), IntegerEntry(bx, height)]
370372 }
371373 }
372374
373375
374376
375377 @Callable(T)
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))
378+func emit (bz,bA) = {
379+ let bB = [if ((T.caller == W))
379380 then true
380- else d("permission denied"), if ((bz > 0))
381+ else d("permission denied"), if ((bA > 0))
381382 then true
382- else d("invalid amount to emit"), if ((getString(A(toBase58String(by))) != unit))
383+ else d("invalid amount to emit"), if ((getString(A(toBase58String(bz))) != unit))
383384 then true
384385 else d("invalid assetId")]
385386 if ((bB == bB))
386387 then {
387388 let bC = true
388- $Tuple2([Reissue(by, bz, bC), ScriptTransfer(bA, bz, by)], bz)
389+ $Tuple2([Reissue(bz, bA, bC), ScriptTransfer(W, bA, bz)], bA)
389390 }
390391 else throw("Strict value is not equal to itself.")
391392 }
392393
393394
394395
395396 @Callable(T)
397+func burn (bz,bA) = {
398+ let bB = [if ((T.caller == W))
399+ then true
400+ else d("permission denied"), if ((bA > 0))
401+ then true
402+ else d("invalid amount to burn"), if ((getString(A(toBase58String(bz))) != unit))
403+ then true
404+ else d("invalid assetId")]
405+ if ((bB == bB))
406+ then $Tuple2([Burn(bz, bA)], bA)
407+ else throw("Strict value is not equal to itself.")
408+ }
409+
410+
411+
412+@Callable(T)
396413 func currentSysParamsREST (i) = {
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)
414+ let bD = aV(i)
415+ let ax = bD._1.value
416+ let Z = bD._2.value
417+ let aR = bD._3.value
418+ let aQ = bD._4.value
419+ let aS = bD._5.value
420+ let aT = bD._6.value
421+ let bE = makeString(["startCurrentSysParamsREST", toString(ax), toString(Z), toString(aR), toString(aQ), toString(aS), toString(aT), "endCurrentSysParamsREST"], a)
405422 throw(bE)
406423 }
407424
408425
409426
410427 @Callable(T)
411428 func setManager (bF) = {
412- let bc = U(T)
413- if ((bc == bc))
429+ let bd = U(T)
430+ if ((bd == bd))
414431 then {
415432 let bG = fromBase58String(bF)
416433 if ((bG == bG))
417434 then [StringEntry(M(), bF)]
418435 else throw("Strict value is not equal to itself.")
419436 }
420437 else throw("Strict value is not equal to itself.")
421438 }
422439
423440
424441
425442 @Callable(T)
426443 func confirmManager () = {
427444 let bH = Q()
428445 let bI = if (isDefined(bH))
429446 then true
430447 else d("no pending manager")
431448 if ((bI == bI))
432449 then {
433450 let bJ = if ((T.callerPublicKey == value(bH)))
434451 then true
435452 else d("you are not pending manager")
436453 if ((bJ == bJ))
437454 then [StringEntry(L(), toBase58String(value(bH))), DeleteEntry(M())]
438455 else throw("Strict value is not equal to itself.")
439456 }
440457 else throw("Strict value is not equal to itself.")
441458 }
442459
443460
444461 @Verifier(bK)
445462 func bL () = {
446463 let bM = {
447464 let O = N()
448465 if ($isInstanceOf(O, "ByteVector"))
449466 then {
450467 let V = O
451468 V
452469 }
453470 else if ($isInstanceOf(O, "Unit"))
454471 then bK.senderPublicKey
455472 else throw("Match error")
456473 }
457474 sigVerify(bK.bodyBytes, bK.proofs[0], bM)
458475 }
459476

github/deemru/w8io/026f985 
110.88 ms