tx · EQjLwVUFBbF3KRw7i5cbqA4m8psZwy6XKi9pkT1ryJFb

3N7HtrKeFFLz5oy6PfGv1Lg3GwPk4gCPdGy:  -0.01500000 Waves

2023.08.01 02:17 [2690706] smart account 3N7HtrKeFFLz5oy6PfGv1Lg3GwPk4gCPdGy > SELF 0.00000000 Waves

{ "type": 13, "id": "EQjLwVUFBbF3KRw7i5cbqA4m8psZwy6XKi9pkT1ryJFb", "fee": 1500000, "feeAssetId": null, "timestamp": 1690845463059, "version": 2, "chainId": 84, "sender": "3N7HtrKeFFLz5oy6PfGv1Lg3GwPk4gCPdGy", "senderPublicKey": "FsR18761ZAsUqsTd7TK3XmR6bhihs1UXVmpHYxz5JzQ1", "proofs": [ "4JieY76dBLEGEEiXTtWtnvEukB34i5p96oZ32Hw3g3jRhoXsdZKnFaytCxdqkGT2S8W698khU8Gggtk9t26YSmmh" ], "script": "base64:BgIbCAISBgoECAgICBIDCgEBEgMKAQESABIDCgEIWQACTTYAwIQ9AAJNOACAwtcvAAhNSUxMSU9ONgCAgOmDsd4WAA5NQVJLRVRJTkdTSEFSRQCgjQYACVRFQU1TSEFSRQDAmgwADUFDVElWSVRZU0hBUkUAoI0GAAtQTEFZRVJTSEFSRQCAtRgACllFQVJNSUxMSVMAgIbrx3UACUNIRUNLVElNRQCAyeCrsAEAA0RBWQCAuJkpABBtYXJrZXRpbmdBZGRyS2V5Ag1tYXJrZXRpbmdBZGRyAAt0ZWFtQWRkcktleQIIdGVhbUFkZHIAFGxhc3RNYXJrZXRpbmdUaW1lS2V5AhlsYXN0Q2xhaW1lZFRpbWVfbWFya2V0aW5nABZtYXJrZXRpbmdBbW91bnRMZWZ0S2V5AhNtYXJrZXRpbmdBbW91bnRMZWZ0AA9sYXN0VGVhbVRpbWVLZXkCFGxhc3RDbGFpbWVkVGltZV90ZWFtABF0ZWFtQW1vdW50TGVmdEtleQIOdGVhbUFtb3VudExlZnQAFWxhc3RBY3Rpdml0aWVzVGltZUtleQIabGFzdENsYWltZWRUaW1lX2FjdGl2aXRpZXMAEGFjdEFtb3VudExlZnRLZXkCFGFjdGl2aXRpZXNBbW91bnRMZWZ0ABRzdGFrZXJzQW1vdW50TGVmdEtleQIRc3Rha2Vyc0Ftb3VudExlZnQBGGtleUxhc3RDbGFpbWVkVGltZUJ5VXNlcgEEYWRkcgkArAICAhRsYXN0Q2xhaW1lZFRpbWVVc2VyXwUEYWRkcgEUa2V5TGFzdEFyYlRpbWVCeVVzZXIBBGFkZHIJAKwCAgIQbGFzdEFyYlRpbWVVc2VyXwUEYWRkcgEUZGlzdHJpYnV0aW9uQnlQZXJpb2QBBnBlcmlvZAkAawMFCE1JTExJT042CQBoAgULUExBWUVSU0hBUkUJAGQCBQZwZXJpb2QAAQkAaAIABgUCTTYAD3dsZ0lzc3VlVGltZUtleQINd2xnX2lzc3VlVGltZQASd2xnSXNzdWVkQW1vdW50S2V5AhB3bGdfaXNzdWVkQW1vdW50ABF6Yklzc3VlZEFtb3VudEtleQISemJpbGxfaXNzdWVkQW1vdW50AAxpZHhXbGdBbW91bnQAAAALaWR4V2xnUHJpY2UAAQALaWR4V2xnRnVuZHMAAgAPaWR4V2xnSXNzdWVUaW1lAAcAFWlkeFdsZ01hcmtldGluZ0FtTGVmdAAKABlpZHhXbGdNYXJrZXRpbmdBbUF2YWlsTm93AAsAEGlkeFdsZ1RlYW1BbUxlZnQADgAUaWR4V2xnVGVhbUFtQXZhaWxOb3cADwAPaWR4V2xnQWN0QW1MZWZ0ABIAE2lkeFdsZ0FjdEFtQXZhaWxOb3cAEwARaWR4V2xnQW1MZWZ0VG90YWwAFgAUaWR4V2xnVXNlckFtQXZhaWxOb3cAGQAIZGFwcFJlc3QAAAALZGFwcFN0YWtpbmcAAQALZGFwcEVjb25vbXkAAgAHZGFwcFdsZwAEAApkYXBwUHV6emxlAAUADmRhcHBJbnZlc3RGdW5kAAYBCWdldFBpZWNlcwISdXNlckFkZHJTdHJPckVtcHR5D3N0YWtpbmdDb250cmFjdAQFcHJvcHMJALUJAgkBC3ZhbHVlT3JFbHNlAgkAnQgCBQ9zdGFraW5nQ29udHJhY3QCE3Jlc1R5cGVzUHJvcG9ydGlvbnMCCzBfMF8wXzBfMF8wAgFfCgEFYWRkZXICA2FjYwRpdGVtCQBkAgUDYWNjCQENcGFyc2VJbnRWYWx1ZQEFBGl0ZW0ECnRvdGFsUG93ZXIKAAIkbAUFcHJvcHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwAAAKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBBWFkZGVyAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhNMaXN0IHNpemUgZXhjZWVkcyA2CQEFJGYwXzICCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECCQEFJGYwXzECBQUkYWNjMAAAAAEAAgADAAQABQAGBAp1c2Vyc1Bvd2VyCQELdmFsdWVPckVsc2UCCQCaCAIFD3N0YWtpbmdDb250cmFjdAkArAICAhRzdGFrZWRQaWVjZXNCeU93bmVyXwUSdXNlckFkZHJTdHJPckVtcHR5AAAJAMwIAgUKdG90YWxQb3dlcgkAzAgCBQp1c2Vyc1Bvd2VyBQNuaWwBC2dldFdsZ1N0YXRzBAt1c2VyQWRkck9wdAljb250cmFjdHMGdXNkdElkFXVzZHRCYWxhbmNlQ29ycmVjdGlvbgQMaXNzdWVkQW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFEndsZ0lzc3VlZEFtb3VudEtleQIYV0xHT0xEIGlzIG5vdCBpc3N1ZWQgeWV0BAplY29ub215VXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQtkYXBwRWNvbm9teQUGdXNkdElkBAdyZXN0VXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQhkYXBwUmVzdAUGdXNkdElkBAZ3bGdVc2QJAGUCCQDwBwIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBQZ1c2R0SWQFFXVzZHRCYWxhbmNlQ29ycmVjdGlvbgQJcHV6emxlVXNkCQDwBwIJAJEDAgUJY29udHJhY3RzBQpkYXBwUHV6emxlBQZ1c2R0SWQEEmludmVzdEZ1bmRDb250cmFjdAkAkQMCBQljb250cmFjdHMFDmRhcHBJbnZlc3RGdW5kBA9pbnZlc3RGdW5kVG90YWwJAGQCCQDwBwIFEmludmVzdEZ1bmRDb250cmFjdAUGdXNkdElkCQELdmFsdWVPckVsc2UCCQCaCAIFEmludmVzdEZ1bmRDb250cmFjdAURemJJc3N1ZWRBbW91bnRLZXkAAAQNdG90YWxGdW5kc1VzZAkAZAIJAGQCBQplY29ub215VXNkBQZ3bGdVc2QFD2ludmVzdEZ1bmRUb3RhbAQFd2xnSWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwILd2xnX2Fzc2V0SWQCE05vdCBpbml0aWFsaXplZCB5ZXQEA25vdwgFCWxhc3RCbG9jawl0aW1lc3RhbXAECWlzc3VlVGltZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBQ93bGdJc3N1ZVRpbWVLZXkCD05vdCBpbml0aWFsaXplZAQObWFya2V0aW5nVG90YWwJAGsDBQhNSUxMSU9ONgUOTUFSS0VUSU5HU0hBUkUFAk02BBNtYXJrZXRpbmdBbW91bnRMZWZ0CQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBRZtYXJrZXRpbmdBbW91bnRMZWZ0S2V5BQ5tYXJrZXRpbmdUb3RhbAQRbGFzdE1hcmtldGluZ1RpbWUJAQt2YWx1ZU9yRWxzZQIJAJoIAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFFGxhc3RNYXJrZXRpbmdUaW1lS2V5BQlpc3N1ZVRpbWUEDW1hcmtldGluZ0FkZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAJ0IAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFEG1hcmtldGluZ0FkZHJLZXkEG21hcmtldGluZ0Ftb3VudEF2YWlsYWJsZU5vdwkAlwMBCQDMCAIJAGsDBQ5tYXJrZXRpbmdUb3RhbAkAZQIFA25vdwURbGFzdE1hcmtldGluZ1RpbWUFCllFQVJNSUxMSVMJAMwIAgUTbWFya2V0aW5nQW1vdW50TGVmdAUDbmlsBA9tYXJrZXRpbmdXbGdvbGQJAPAHAgUNbWFya2V0aW5nQWRkcgUFd2xnSWQECXRlYW1Ub3RhbAkAawMFCE1JTExJT042BQlURUFNU0hBUkUFAk02BA50ZWFtQW1vdW50TGVmdAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwURdGVhbUFtb3VudExlZnRLZXkFCXRlYW1Ub3RhbAQMbGFzdFRlYW1UaW1lCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBQ9sYXN0VGVhbVRpbWVLZXkFCWlzc3VlVGltZQQIdGVhbUFkZHIJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAJ0IAgkAkQMCBQljb250cmFjdHMFB2RhcHBXbGcFC3RlYW1BZGRyS2V5BBZ0ZWFtQW1vdW50QXZhaWxhYmxlTm93CQCXAwEJAMwIAgkAawMFCXRlYW1Ub3RhbAkAZQIFA25vdwUMbGFzdFRlYW1UaW1lCQBoAgADBQpZRUFSTUlMTElTCQDMCAIFDnRlYW1BbW91bnRMZWZ0BQNuaWwECnRlYW1XbGdvbGQJAPAHAgUIdGVhbUFkZHIFBXdsZ0lkBAhhY3RUb3RhbAkAawMFCE1JTExJT042BQ1BQ1RJVklUWVNIQVJFBQJNNgQNYWN0QW1vdW50TGVmdAkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUQYWN0QW1vdW50TGVmdEtleQUIYWN0VG90YWwEEmxhc3RBY3Rpdml0aWVzVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwUVbGFzdEFjdGl2aXRpZXNUaW1lS2V5BQlpc3N1ZVRpbWUEFWFjdEFtb3VudEF2YWlsYWJsZU5vdwkAlwMBCQDMCAIJAGsDBQhhY3RUb3RhbAkAZQIFA25vdwUSbGFzdEFjdGl2aXRpZXNUaW1lCQBoAgADBQpZRUFSTUlMTElTCQDMCAIFDWFjdEFtb3VudExlZnQFA25pbAQJYWN0V2xnb2xkCQDwBwIJAJEDAgUJY29udHJhY3RzBQhkYXBwUmVzdAUFd2xnSWQEDGxhc3RVc2VyVGltZQkBC3ZhbHVlT3JFbHNlAgkAmggCCQCRAwIFCWNvbnRyYWN0cwUHZGFwcFdsZwkBGGtleUxhc3RDbGFpbWVkVGltZUJ5VXNlcgEFC3VzZXJBZGRyT3B0BQlpc3N1ZVRpbWUEDmxhc3RVc2VyUGVyaW9kCQBpAgkAZQIFDGxhc3RVc2VyVGltZQUJaXNzdWVUaW1lBQpZRUFSTUlMTElTBApub3dMaW1pdGVkCQCXAwEJAMwIAgUDbm93CQDMCAIJAGQCBQlpc3N1ZVRpbWUJAGgCAAMFCllFQVJNSUxMSVMFA25pbAQJY3VyUGVyaW9kCQCXAwEJAMwIAgkAaQIJAGUCBQNub3cFCWlzc3VlVGltZQUKWUVBUk1JTExJUwkAzAgCAAIFA25pbAQDZWZmCQEJZ2V0UGllY2VzAgULdXNlckFkZHJPcHQJAJEDAgUJY29udHJhY3RzBQtkYXBwU3Rha2luZwQVY3VyUGVyaW9kRGlzdHJpYnV0aW9uCQEUZGlzdHJpYnV0aW9uQnlQZXJpb2QBBQljdXJQZXJpb2QECnVzZXJBbW91bnQJAGsDAwkAAAIFDmxhc3RVc2VyUGVyaW9kBQljdXJQZXJpb2QJAGsDBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAGUCBQpub3dMaW1pdGVkBQxsYXN0VXNlclRpbWUFCllFQVJNSUxMSVMDCQAAAgUObGFzdFVzZXJQZXJpb2QJAGUCBQljdXJQZXJpb2QAAQkAZAIJAGsDCQEUZGlzdHJpYnV0aW9uQnlQZXJpb2QBCQBlAgUJY3VyUGVyaW9kAAEJAGUCCQBkAgUJaXNzdWVUaW1lCQBoAgUKWUVBUk1JTExJUwUJY3VyUGVyaW9kBQxsYXN0VXNlclRpbWUFCllFQVJNSUxMSVMJAGsDBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAGUCBQpub3dMaW1pdGVkCQBkAgUJaXNzdWVUaW1lCQBoAgUKWUVBUk1JTExJUwUJY3VyUGVyaW9kBQpZRUFSTUlMTElTCQBkAgkAZAIJAGsDCQEUZGlzdHJpYnV0aW9uQnlQZXJpb2QBCQBlAgUJY3VyUGVyaW9kAAIJAGUCCQBkAgUJaXNzdWVUaW1lCQBoAgUKWUVBUk1JTExJUwkAZQIFCWN1clBlcmlvZAABBQxsYXN0VXNlclRpbWUFCllFQVJNSUxMSVMJARRkaXN0cmlidXRpb25CeVBlcmlvZAEJAGUCBQljdXJQZXJpb2QAAQkAawMFFWN1clBlcmlvZERpc3RyaWJ1dGlvbgkAZQIFCm5vd0xpbWl0ZWQJAGQCBQlpc3N1ZVRpbWUJAGgCBQpZRUFSTUlMTElTBQljdXJQZXJpb2QFCllFQVJNSUxMSVMJAJEDAgUDZWZmAAEJAJEDAgUDZWZmAAAEEHNMYW5kRGFpbHlBbW91bnQJAGsDCQBrAwUVY3VyUGVyaW9kRGlzdHJpYnV0aW9uBQNEQVkFCllFQVJNSUxMSVMAGQkAkQMCBQNlZmYAAAQPYW1vdW50TGVmdFRvdGFsCQELdmFsdWVPckVsc2UCCQCaCAIJAJEDAgUJY29udHJhY3RzBQdkYXBwV2xnBRRzdGFrZXJzQW1vdW50TGVmdEtleQAACQDMCAIFDGlzc3VlZEFtb3VudAkAzAgCCQBrAwUNdG90YWxGdW5kc1VzZAUCTTgFDGlzc3VlZEFtb3VudAkAzAgCBQ10b3RhbEZ1bmRzVXNkCQDMCAIFCmVjb25vbXlVc2QJAMwIAgUHcmVzdFVzZAkAzAgCBQZ3bGdVc2QJAMwIAgUJcHV6emxlVXNkCQDMCAIFCWlzc3VlVGltZQkAzAgCBRFsYXN0TWFya2V0aW5nVGltZQkAzAgCBQ5tYXJrZXRpbmdUb3RhbAkAzAgCBRNtYXJrZXRpbmdBbW91bnRMZWZ0CQDMCAIFG21hcmtldGluZ0Ftb3VudEF2YWlsYWJsZU5vdwkAzAgCBQ9tYXJrZXRpbmdXbGdvbGQJAMwIAgUJdGVhbVRvdGFsCQDMCAIFDnRlYW1BbW91bnRMZWZ0CQDMCAIFFnRlYW1BbW91bnRBdmFpbGFibGVOb3cJAMwIAgUKdGVhbVdsZ29sZAkAzAgCBQhhY3RUb3RhbAkAzAgCBQ1hY3RBbW91bnRMZWZ0CQDMCAIFFWFjdEFtb3VudEF2YWlsYWJsZU5vdwkAzAgCBQlhY3RXbGdvbGQJAMwIAgUJY3VyUGVyaW9kCQDMCAIFD2Ftb3VudExlZnRUb3RhbAkAzAgCBRVjdXJQZXJpb2REaXN0cmlidXRpb24JAMwIAgUMbGFzdFVzZXJUaW1lCQDMCAIFCnVzZXJBbW91bnQJAMwIAgUQc0xhbmREYWlseUFtb3VudAkAzAgCBQ9pbnZlc3RGdW5kVG90YWwFA25pbAANS1NBTExPV1dMR09MRAYABWNoYWluCQDJAQIJAMoBAggFBHRoaXMFYnl0ZXMAAQABAAt1c2R0QXNzZXRJZAQHJG1hdGNoMAUFY2hhaW4DCQAAAgEBVwUHJG1hdGNoMAEghNp6sggDP07Ru8qO7ouTvMmC3Qtd+geWqNQj+agP/7kDCQAAAgEBVAUHJG1hdGNoMAEgVbHYn3KHgu/l41uNrAWrZd6aQ6EvFrsF8xq3h6XxxRgJAAIBAg1Vbmtub3duIGNoYWluABVkZWZhdWx0UmVzdEFkZHJlc3NTdHIEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDACIzNQUUN1dkZidmg0TGtQVW5yblUxejNqbmJBMXA5bTNXTmh2AwkAAAIBAVQFByRtYXRjaDACIzNNdW1rR0d6dENLQVhwV0RxeGtkZG9mcVhTVWJxUWt2U0p5CQACAQINVW5rbm93biBjaGFpbgAOYXJiaXRyYWdlRGVsYXkEByRtYXRjaDAFBWNoYWluAwkAAAIBAVcFByRtYXRjaDAAwM8kAwkAAAIBAVQFByRtYXRjaDAA4NQDCQACAQINVW5rbm93biBjaGFpbgADU0VQAgJfXwAFTVVMVDYAwIQ9AAVNVUxUOACAwtcvAA5NSU5TSE9QUEFZTUVOVACgjQYBD2dldFN0cmluZ09yRmFpbAIHYWRkcmVzcwNrZXkJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQdhZGRyZXNzBQNrZXkJALkJAgkAzAgCAgptYW5kYXRvcnkgCQDMCAIJAKUIAQUHYWRkcmVzcwkAzAgCAgEuCQDMCAIFA2tleQkAzAgCAg8gaXMgbm90IGRlZmluZWQFA25pbAIAABFJZHhDZmdTdGFraW5nRGFwcAABABFJZHhDZmdFY29ub215RGFwcAACABRJZHhDZmdHb3Zlcm5hbmNlRGFwcAADAA1JZHhDZmdXbGdEYXBwAAQAFElkeENmZ1B1enpsZVBvb2xEYXBwAAUAFElkeENmZ0ludmVzdEZ1bmREYXBwAAYBCmtleVJlc3RDZmcAAg4lc19fcmVzdENvbmZpZwEOa2V5UmVzdEFkZHJlc3MAAgwlc19fcmVzdEFkZHIBEXJlYWRSZXN0Q2ZnT3JGYWlsAQRyZXN0CQC8CQIJAQ9nZXRTdHJpbmdPckZhaWwCBQRyZXN0CQEKa2V5UmVzdENmZwAFA1NFUAEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgdyZXN0Q2ZnA2lkeAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJAJEDAgUHcmVzdENmZwUDaWR4CQCsAgICKlJlc3QgY2ZnIGRvZXNuJ3QgY29udGFpbiBhZGRyZXNzIGF0IGluZGV4IAkApAMBBQNpZHgADHJlc3RDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBC3ZhbHVlT3JFbHNlAgkAnQgCBQR0aGlzCQEOa2V5UmVzdEFkZHJlc3MABRVkZWZhdWx0UmVzdEFkZHJlc3NTdHIAB3Jlc3RDZmcJARFyZWFkUmVzdENmZ09yRmFpbAEFDHJlc3RDb250cmFjdAAPc3Rha2luZ0NvbnRyYWN0CQEYZ2V0Q29udHJhY3RBZGRyZXNzT3JGYWlsAgUHcmVzdENmZwURSWR4Q2ZnU3Rha2luZ0RhcHAAD2Vjb25vbXlDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFEUlkeENmZ0Vjb25vbXlEYXBwAAtnb3ZDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFFElkeENmZ0dvdmVybmFuY2VEYXBwAAt3bGdDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFDUlkeENmZ1dsZ0RhcHAAEnB1enpsZVBvb2xDb250cmFjdAkBGGdldENvbnRyYWN0QWRkcmVzc09yRmFpbAIFB3Jlc3RDZmcFFElkeENmZ1B1enpsZVBvb2xEYXBwABJpbnZlc3RGdW5kQ29udHJhY3QJARhnZXRDb250cmFjdEFkZHJlc3NPckZhaWwCBQdyZXN0Q2ZnBRRJZHhDZmdJbnZlc3RGdW5kRGFwcAANd2xnQXNzZXRJZEtleQILd2xnX2Fzc2V0SWQACndsZ0Fzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnAgCBQt3bGdDb250cmFjdAUNd2xnQXNzZXRJZEtleQITTm90IGluaXRpYWxpemVkIHlldAAKSWR4RWZmVXNlcgABARFrZXlSZXNQcm9wb3J0aW9ucwACE3Jlc1R5cGVzUHJvcG9ydGlvbnMBFmtleVN0YWtlZFBpZWNlc0J5T3duZXIBCW93bmVyQWRkcgkArAICAhRzdGFrZWRQaWVjZXNCeU93bmVyXwUJb3duZXJBZGRyAQVhc0ludAEBdgQHJG1hdGNoMAUBdgMJAAECBQckbWF0Y2gwAgNJbnQEAW4FByRtYXRjaDAFAW4JAAIBAhVmYWlsIHRvIGNhc3QgaW50byBJbnQBDmdldFZvdGluZ1Bvd2VyARJ1c2VyQWRkclN0ck9yRW1wdHkEBXByb3BzCQC1CQIJAQt2YWx1ZU9yRWxzZQIJAJ0IAgUPc3Rha2luZ0NvbnRyYWN0CQERa2V5UmVzUHJvcG9ydGlvbnMAAgswXzBfMF8wXzBfMAIBXwoBBWFkZGVyAgNhY2MEaXRlbQkAZAIFA2FjYwkBDXBhcnNlSW50VmFsdWUBBQRpdGVtBAp0b3RhbFBvd2VyCgACJGwFBXByb3BzCgACJHMJAJADAQUCJGwKAAUkYWNjMAAACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQVhZGRlcgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgNgkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgQKdXNlcnNQb3dlcgkBC3ZhbHVlT3JFbHNlAgkAmggCBQ9zdGFraW5nQ29udHJhY3QJARZrZXlTdGFrZWRQaWVjZXNCeU93bmVyAQUSdXNlckFkZHJTdHJPckVtcHR5AAAJAMwIAgUKdG90YWxQb3dlcgkAzAgCBQp1c2Vyc1Bvd2VyBQNuaWwBCmZpeGVkUG9pbnQCA3ZhbAhkZWNpbWFscwQGdGVuUG93CQBsBgAKAAAFCGRlY2ltYWxzAAAAAAUERE9XTgQHbG93UGFydAkApAMBCQBqAgUDdmFsBQZ0ZW5Qb3cEB2xvd1NpemUJALECAQUHbG93UGFydAQGemVyb2VzCQCvAgIJAKQDAQUGdGVuUG93BQdsb3dTaXplCQCsAgIJAKwCAgkArAICCQCkAwEJAGkCBQN2YWwFBnRlblBvdwIBLgUGemVyb2VzBQdsb3dQYXJ0AAJBNgCAwtcvAAJCOACA4esXAA1wcm9maXRBZGRyS2V5Agpwcm9maXRBZGRyABlzdGFrZXJzQW1vdW50UGFpZFRvdGFsS2V5AhZzdGFrZXJzQW1vdW50UGFpZFRvdGFsARhrZXlTdGFrZXJzQW1vdW50UGFpZFVzZXIBBGFkZHIJAKwCAgIWc3Rha2Vyc0Ftb3VudFBhaWRVc2VyXwUEYWRkcgEGcHJvbG9nAAkBBWFzSW50AQkA/AcEBQ9zdGFraW5nQ29udHJhY3QCCnNhdmVMYXN0VHgFA25pbAUDbmlsAQxnZXRTd2FwTGltaXQBBGFkZHIECGxhc3RUaW1lCQELdmFsdWVPckVsc2UCCQCfCAEJARRrZXlMYXN0QXJiVGltZUJ5VXNlcgEFBGFkZHIAAAQDbm93CAUJbGFzdEJsb2NrCXRpbWVzdGFtcAMJAGYCBQ5hcmJpdHJhZ2VEZWxheQkAZQIFA25vdwUIbGFzdFRpbWUJAAIBCQCsAgIJAKwCAgIfQXJiaXRyYWdlcyBhcmUgcG9zc2libGUgb25jZSBhIAkApAMBCQBpAgUOYXJiaXRyYWdlRGVsYXkA4NQDAgNtaW4EBnBpZWNlcwkAkQMCCQEOZ2V0Vm90aW5nUG93ZXIBBQRhZGRyBQpJZHhFZmZVc2VyBARwb3c4CQBsBgUGcGllY2VzAAAFAkI4AAgACAUHQ0VJTElORwkAawMFAkE2BQRwb3c4BQVNVUxUOAENY2xhaW1JbnRlcm5hbAEEYWRkcgMJAQEhAQUNS1NBTExPV1dMR09MRAkAlAoCBQNuaWwAAAQGY2FsbGVyCQERQGV4dHJOYXRpdmUoMTA2MikBBQRhZGRyBAhjdXJTdGF0cwkBC2dldFdsZ1N0YXRzBAUEYWRkcgkAzAgCBQxyZXN0Q29udHJhY3QJAMwIAgUPc3Rha2luZ0NvbnRyYWN0CQDMCAIFD2Vjb25vbXlDb250cmFjdAkAzAgCBQtnb3ZDb250cmFjdAkAzAgCBQt3bGdDb250cmFjdAkAzAgCBRJwdXp6bGVQb29sQ29udHJhY3QJAMwIAgUSaW52ZXN0RnVuZENvbnRyYWN0BQNuaWwFC3VzZHRBc3NldElkAAAEA25vdwgFCWxhc3RCbG9jawl0aW1lc3RhbXAECWlzc3VlVGltZQkAkQMCBQhjdXJTdGF0cwUPaWR4V2xnSXNzdWVUaW1lBBNtYXJrZXRpbmdBbW91bnRMZWZ0CQCRAwIFCGN1clN0YXRzBRVpZHhXbGdNYXJrZXRpbmdBbUxlZnQED21hcmtldGluZ0Ftb3VudAkAkQMCBQhjdXJTdGF0cwUZaWR4V2xnTWFya2V0aW5nQW1BdmFpbE5vdwQOdGVhbUFtb3VudExlZnQJAJEDAgUIY3VyU3RhdHMFEGlkeFdsZ1RlYW1BbUxlZnQECnRlYW1BbW91bnQJAJEDAgUIY3VyU3RhdHMFFGlkeFdsZ1RlYW1BbUF2YWlsTm93BA1hY3RBbW91bnRMZWZ0CQCRAwIFCGN1clN0YXRzBQ9pZHhXbGdBY3RBbUxlZnQECWFjdEFtb3VudAkAkQMCBQhjdXJTdGF0cwUTaWR4V2xnQWN0QW1BdmFpbE5vdwMJAGYCCQBlAgUDbm93BQlpc3N1ZVRpbWUFCUNIRUNLVElNRQkAAgECPVBsZWFzZSBtb2RpZnkgY29udHJhY3QgZm9yIG5leHQgMS41IHllYXJzLCBhY2NvcmRpbmcgdG8gc3RhdHMECnVzZXJBbW91bnQJAJEDAgUIY3VyU3RhdHMFFGlkeFdsZ1VzZXJBbUF2YWlsTm93BAd1c2VyS2V5CQEYa2V5U3Rha2Vyc0Ftb3VudFBhaWRVc2VyAQUEYWRkcgkAlAoCCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAKIIAQUQbWFya2V0aW5nQWRkcktleQUPbWFya2V0aW5nQW1vdW50BQp3bGdBc3NldElkCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAKIIAQULdGVhbUFkZHJLZXkFCnRlYW1BbW91bnQFCndsZ0Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUMcmVzdENvbnRyYWN0BQlhY3RBbW91bnQFCndsZ0Fzc2V0SWQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwUGY2FsbGVyBQp1c2VyQW1vdW50BQp3bGdBc3NldElkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQd1c2VyS2V5CQBkAgkBC3ZhbHVlT3JFbHNlAgkAnwgBBQd1c2VyS2V5AAAFCnVzZXJBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFGXN0YWtlcnNBbW91bnRQYWlkVG90YWxLZXkJAGQCCQELdmFsdWVPckVsc2UCCQCfCAEFGXN0YWtlcnNBbW91bnRQYWlkVG90YWxLZXkAAAUKdXNlckFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUUc3Rha2Vyc0Ftb3VudExlZnRLZXkJAGUCCQCRAwIFCGN1clN0YXRzBRFpZHhXbGdBbUxlZnRUb3RhbAUKdXNlckFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUWbWFya2V0aW5nQW1vdW50TGVmdEtleQkAZQIFE21hcmtldGluZ0Ftb3VudExlZnQFD21hcmtldGluZ0Ftb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUUbGFzdE1hcmtldGluZ1RpbWVLZXkFA25vdwkAzAgCCQEMSW50ZWdlckVudHJ5AgURdGVhbUFtb3VudExlZnRLZXkJAGUCBQ50ZWFtQW1vdW50TGVmdAUKdGVhbUFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUPbGFzdFRlYW1UaW1lS2V5BQNub3cJAMwIAgkBDEludGVnZXJFbnRyeQIFEGFjdEFtb3VudExlZnRLZXkJAGUCBQ1hY3RBbW91bnRMZWZ0BQlhY3RBbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIFFWxhc3RBY3Rpdml0aWVzVGltZUtleQUDbm93CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEYa2V5TGFzdENsYWltZWRUaW1lQnlVc2VyAQUEYWRkcgUDbm93BQNuaWwFCnVzZXJBbW91bnQFAWkBDWNvbnN0cnVjdG9yVjEECHJlc3RBZGRyDW1hcmtldGluZ0FkZHIIdGVhbUFkZHIKcHJvZml0QWRkcgMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEVBlcm1pc3Npb24gZGVuaWVkAwkBCWlzRGVmaW5lZAEJAKEIAQUNd2xnQXNzZXRJZEtleQkAAgECE0FscmVhZHkgaW5pdGlhbGl6ZWQEDGlzc3VlZEFtb3VudAUITUlMTElPTjYEBWlzc3VlCQDDCAcCBldMR09MRAIgV2F2ZXNMYW5kcyBHb2xkIGludmVzdG1lbnQgdG9rZW4FDGlzc3VlZEFtb3VudAAIBgUEdW5pdAAABAdhc3NldElkCQC4CAEFBWlzc3VlCQDMCAIFBWlzc3VlCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ93bGdJc3N1ZVRpbWVLZXkIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRJ3bGdJc3N1ZWRBbW91bnRLZXkFDGlzc3VlZEFtb3VudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUZc3Rha2Vyc0Ftb3VudFBhaWRUb3RhbEtleQAACQDMCAIJAQxJbnRlZ2VyRW50cnkCBRRzdGFrZXJzQW1vdW50TGVmdEtleQkAawMFCE1JTExJT042BQtQTEFZRVJTSEFSRQUFTVVMVDYJAMwIAgkBC0JpbmFyeUVudHJ5AgUNd2xnQXNzZXRJZEtleQUHYXNzZXRJZAkAzAgCCQELU3RyaW5nRW50cnkCCQEOa2V5UmVzdEFkZHJlc3MABQhyZXN0QWRkcgkAzAgCCQELU3RyaW5nRW50cnkCBRBtYXJrZXRpbmdBZGRyS2V5BQ1tYXJrZXRpbmdBZGRyCQDMCAIJAQtTdHJpbmdFbnRyeQIFC3RlYW1BZGRyS2V5BQh0ZWFtQWRkcgkAzAgCCQELU3RyaW5nRW50cnkCBQ1wcm9maXRBZGRyS2V5BQpwcm9maXRBZGRyBQNuaWwBaQEGYnV5V2xnAQltaW5BbW91bnQDCQEBIQEFDUtTQUxMT1dXTEdPTEQJAJQKAgUDbmlsAAAEDHByb2xvZ1Jlc3VsdAkBBnByb2xvZwADCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAEJAAIBAiJleGFjdGx5IDEgcGF5bWVudCBtdXN0IGJlIGF0dGFjaGVkBANwbXQJAJEDAggFAWkIcGF5bWVudHMAAAQHdXNkdEFtdAgFA3BtdAZhbW91bnQECnBtdEFzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAggFA3BtdAdhc3NldElkAhNVU0RUIHBheW1lbnRzIG9ubHkhAwkBAiE9AgUKcG10QXNzZXRJZAULdXNkdEFzc2V0SWQJAAIBAhNVU0RUIHBheW1lbnRzIG9ubHkhBAZjYWxsZXIIBQFpBmNhbGxlcgQEYWRkcgkApQgBBQZjYWxsZXIEB21heFVzZHQJAQxnZXRTd2FwTGltaXQBBQRhZGRyAwkAZgIFB3VzZHRBbXQFB21heFVzZHQJAAIBCQCsAgIJAKwCAgISWW91IGNhbiBzcGVuZCBtYXggCQEKZml4ZWRQb2ludAIFB21heFVzZHQABgIFIFVTRFQDCQBmAgUOTUlOU0hPUFBBWU1FTlQFB3VzZHRBbXQJAAIBCQCsAgIJAKwCAgISWW91IGNhbiB0cmFkZSBtaW4gCQEKZml4ZWRQb2ludAIFDk1JTlNIT1BQQVlNRU5UAAYCBSBVU0RUBAhjdXJTdGF0cwkBC2dldFdsZ1N0YXRzBAIACQDMCAIFDHJlc3RDb250cmFjdAkAzAgCBQ9zdGFraW5nQ29udHJhY3QJAMwIAgUPZWNvbm9teUNvbnRyYWN0CQDMCAIFC2dvdkNvbnRyYWN0CQDMCAIFC3dsZ0NvbnRyYWN0CQDMCAIFEnB1enpsZVBvb2xDb250cmFjdAkAzAgCBRJpbnZlc3RGdW5kQ29udHJhY3QFA25pbAULdXNkdEFzc2V0SWQFB3VzZHRBbXQEDGN1cldsZ0Ftb3VudAkAkQMCBQhjdXJTdGF0cwUMaWR4V2xnQW1vdW50BAhmdW5kc1VzZAkAkQMCBQhjdXJTdGF0cwULaWR4V2xnRnVuZHMECHdsZ1ByaWNlCQBrAwUIZnVuZHNVc2QFBU1VTFQ4BQxjdXJXbGdBbW91bnQECGJ1eVByaWNlCQBrAwUId2xnUHJpY2UABgAFBAl3bGdBbW91bnQJAGsDBQd1c2R0QW10BQVNVUxUOAUIYnV5UHJpY2UDCQBmAgUJbWluQW1vdW50BQl3bGdBbW91bnQJAAIBAjBQcmljZSBjaGFuZ2VkIGR1cmluZyBvcGVyYXRpb24sIHBsZWFzZSB0cnkgYWdhaW4EDHByb2ZpdEFtb3VudAkAaQIFB3VzZHRBbXQABgQKZGVsdGFGdW5kcwkAZQIFB3VzZHRBbXQFDHByb2ZpdEFtb3VudAQIcmVpc3N1ZWQJAGsDBQxjdXJXbGdBbW91bnQFCmRlbHRhRnVuZHMFCGZ1bmRzVXNkCQCUCgIJAMwIAgkBB1JlaXNzdWUDBQp3bGdBc3NldElkBQhyZWlzc3VlZAYJAMwIAgkBDEludGVnZXJFbnRyeQIFEndsZ0lzc3VlZEFtb3VudEtleQkAZAIFDGN1cldsZ0Ftb3VudAUIcmVpc3N1ZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlMYXN0QXJiVGltZUJ5VXNlcgEFBGFkZHIIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAKIIAQUNcHJvZml0QWRkcktleQUMcHJvZml0QW1vdW50BQt1c2R0QXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQZjYWxsZXIFCXdsZ0Ftb3VudAUKd2xnQXNzZXRJZAUDbmlsBQxwcm9sb2dSZXN1bHQBaQEHc2VsbFdsZwEJbWluQW1vdW50AwkBASEBBQ1LU0FMTE9XV0xHT0xECQCUCgIFA25pbAAABAxwcm9sb2dSZXN1bHQJAQZwcm9sb2cAAwkBAiE9AgkAkAMBCAUBaQhwYXltZW50cwABCQACAQIiZXhhY3RseSAxIHBheW1lbnQgbXVzdCBiZSBhdHRhY2hlZAQDcG10CQCRAwIIBQFpCHBheW1lbnRzAAAEBndsZ0FtdAgFA3BtdAZhbW91bnQECnBtdEFzc2V0SWQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAggFA3BtdAdhc3NldElkAhVXTEdPTEQgcGF5bWVudHMgb25seSEDCQECIT0CBQpwbXRBc3NldElkBQp3bGdBc3NldElkCQACAQIVV0xHT0xEIHBheW1lbnRzIG9ubHkhBAZjYWxsZXIIBQFpBmNhbGxlcgQEYWRkcgkApQgBBQZjYWxsZXIEB21heFVzZHQJAQxnZXRTd2FwTGltaXQBBQRhZGRyBAhjdXJTdGF0cwkBC2dldFdsZ1N0YXRzBAIACQDMCAIFDHJlc3RDb250cmFjdAkAzAgCBQ9zdGFraW5nQ29udHJhY3QJAMwIAgUPZWNvbm9teUNvbnRyYWN0CQDMCAIFC2dvdkNvbnRyYWN0CQDMCAIFC3dsZ0NvbnRyYWN0CQDMCAIFEnB1enpsZVBvb2xDb250cmFjdAkAzAgCBRJpbnZlc3RGdW5kQ29udHJhY3QFA25pbAULdXNkdEFzc2V0SWQAAAQMY3VyV2xnQW1vdW50CQCRAwIFCGN1clN0YXRzBQxpZHhXbGdBbW91bnQECXNlbGxQcmljZQkAawMJAJEDAgUIY3VyU3RhdHMFC2lkeFdsZ1ByaWNlAAQABQQHdXNkdEFtdAkAawMFBndsZ0FtdAUJc2VsbFByaWNlBQVNVUxUOAMJAGYCBQd1c2R0QW10BQdtYXhVc2R0CQACAQkArAICCQCsAgICEFlvdSBjYW4gZ2V0IG1heCAJAQpmaXhlZFBvaW50AgUHbWF4VXNkdAAGAgUgVVNEVAMJAGYCBQ5NSU5TSE9QUEFZTUVOVAUHdXNkdEFtdAkAAgEJAKwCAgkArAICAhJZb3UgY2FuIHRyYWRlIG1pbiAJAQpmaXhlZFBvaW50AgUOTUlOU0hPUFBBWU1FTlQABgIFIFVTRFQDCQBmAgUJbWluQW1vdW50BQd1c2R0QW10CQACAQIwUHJpY2UgY2hhbmdlZCBkdXJpbmcgb3BlcmF0aW9uLCBwbGVhc2UgdHJ5IGFnYWluBAxwcm9maXRBbW91bnQJAGkCBQd1c2R0QW10AAQEBmJ1cm5lZAkAawMJAGQCBQd1c2R0QW10BQxwcm9maXRBbW91bnQFDGN1cldsZ0Ftb3VudAkAkQMCBQhjdXJTdGF0cwULaWR4V2xnRnVuZHMJAJQKAgkAzAgCCQEEQnVybgIFCndsZ0Fzc2V0SWQFBmJ1cm5lZAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSd2xnSXNzdWVkQW1vdW50S2V5CQBlAgUMY3VyV2xnQW1vdW50BQZidXJuZWQJAMwIAgkBDEludGVnZXJFbnRyeQIJARRrZXlMYXN0QXJiVGltZUJ5VXNlcgEFBGFkZHIIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQV2YWx1ZQEJAKIIAQUNcHJvZml0QWRkcktleQUMcHJvZml0QW1vdW50BQt1c2R0QXNzZXRJZAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQZjYWxsZXIFB3VzZHRBbXQFC3VzZHRBc3NldElkBQNuaWwFDHByb2xvZ1Jlc3VsdAFpAQVjbGFpbQAEDHByb2xvZ1Jlc3VsdAkBBnByb2xvZwADCQECIT0CCQCQAwEIBQFpCHBheW1lbnRzAAAJAAIBAhRObyBwYXltZW50cyByZXF1aXJlZAQHYWN0aW9ucwgJAQ1jbGFpbUludGVybmFsAQkApQgBCAUBaQZjYWxsZXICXzEJAJQKAgUHYWN0aW9ucwUMcHJvbG9nUmVzdWx0AWkBEm9uU3Rha2VVbnN0YWtlTGFuZAEEYWRkcgMJAQIhPQIIBQFpBmNhbGxlcgUPc3Rha2luZ0NvbnRyYWN0CQACAQIRUGVybWlzc2lvbiBkZW5pZWQJAQ1jbGFpbUludGVybmFsAQUEYWRkcgCARJfh", "height": 2690706, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: Dpe98dDAc71EQtxLfhYS8D5Nbe4PqGre9t9WqXDrzDkE Next: HRfRgTFHuSRukT9s9CH5J1GNJiWdAjag97ZaQq7EKngw Diff:
OldNewDifferences
289289
290290 func bO (bP,bQ) = {
291291 let bR = pow(10, 0, bQ, 0, 0, DOWN)
292- ((toString((bP / bR)) + ".") + toString((bP % bR)))
292+ let bS = toString((bP % bR))
293+ let bT = size(bS)
294+ let bU = take(toString(bR), bT)
295+ (((toString((bP / bR)) + ".") + bU) + bS)
293296 }
294297
295298
296-let bS = 100000000
299+let bV = 100000000
297300
298-let bT = 50000000
301+let bW = 50000000
299302
300-let bU = "profitAddr"
303+let bX = "profitAddr"
301304
302-let bV = "stakersAmountPaidTotal"
305+let bY = "stakersAmountPaidTotal"
303306
304-func bW (u) = ("stakersAmountPaidUser_" + u)
307+func bZ (u) = ("stakersAmountPaidUser_" + u)
305308
306309
307-func bX () = bK(invoke(V, "saveLastTx", nil, nil))
310+func ca () = bK(invoke(V, "saveLastTx", nil, nil))
308311
309312
310-func bY (u) = {
311- let bZ = valueOrElse(getInteger(v(u)), 0)
313+func cb (u) = {
314+ let cc = valueOrElse(getInteger(v(u)), 0)
312315 let ax = lastBlock.timestamp
313- if ((be > (ax - bZ)))
316+ if ((be > (ax - cc)))
314317 then throw((("Arbitrages are possible once a " + toString((be / 60000))) + "min"))
315318 else {
316- let ca = bN(u)[bG]
317- let cb = pow(ca, 0, bT, 8, 8, CEILING)
318- fraction(bS, cb, bh)
319+ let cd = bN(u)[bG]
320+ let ce = pow(cd, 0, bW, 8, 8, CEILING)
321+ fraction(bV, ce, bh)
319322 }
320323 }
321324
322325
323-func cc (u) = if (!(aZ))
326+func cf (u) = if (!(aZ))
324327 then $Tuple2(nil, 0)
325328 else {
326- let cd = addressFromStringValue(u)
327- let ce = aj(u, [bz, V, bA, bB, bC, bD, at], bb, 0)
329+ let cg = addressFromStringValue(u)
330+ let ch = aj(u, [bz, V, bA, bB, bC, bD, at], bb, 0)
328331 let ax = lastBlock.timestamp
329- let ay = ce[E]
330- let aA = ce[F]
331- let cf = ce[G]
332- let aG = ce[H]
333- let cg = ce[I]
334- let aM = ce[J]
335- let ch = ce[K]
332+ let ay = ch[E]
333+ let aA = ch[F]
334+ let ci = ch[G]
335+ let aG = ch[H]
336+ let cj = ch[I]
337+ let aM = ch[J]
338+ let ck = ch[K]
336339 if (((ax - ay) > i))
337340 then throw("Please modify contract for next 1.5 years, according to stats")
338341 else {
339- let aW = ce[M]
340- let ci = bW(u)
341- $Tuple2([ScriptTransfer(addressFromStringValue(value(getString(k))), cf, bF), ScriptTransfer(addressFromStringValue(value(getString(l))), cg, bF), ScriptTransfer(bz, ch, bF), ScriptTransfer(cd, aW, bF), IntegerEntry(ci, (valueOrElse(getInteger(ci), 0) + aW)), IntegerEntry(bV, (valueOrElse(getInteger(bV), 0) + aW)), IntegerEntry(s, (ce[L] - aW)), IntegerEntry(n, (aA - cf)), IntegerEntry(m, ax), IntegerEntry(p, (aG - cg)), IntegerEntry(o, ax), IntegerEntry(r, (aM - ch)), IntegerEntry(q, ax), IntegerEntry(t(u), ax)], aW)
342+ let aW = ch[M]
343+ let cl = bZ(u)
344+ $Tuple2([ScriptTransfer(addressFromStringValue(value(getString(k))), ci, bF), ScriptTransfer(addressFromStringValue(value(getString(l))), cj, bF), ScriptTransfer(bz, ck, bF), ScriptTransfer(cg, aW, bF), IntegerEntry(cl, (valueOrElse(getInteger(cl), 0) + aW)), IntegerEntry(bY, (valueOrElse(getInteger(bY), 0) + aW)), IntegerEntry(s, (ch[L] - aW)), IntegerEntry(n, (aA - ci)), IntegerEntry(m, ax), IntegerEntry(p, (aG - cj)), IntegerEntry(o, ax), IntegerEntry(r, (aM - ck)), IntegerEntry(q, ax), IntegerEntry(t(u), ax)], aW)
342345 }
343346 }
344347
345348
346-@Callable(cj)
347-func constructorV1 (ck,aC,aI,cl) = if ((cj.caller != this))
349+@Callable(cm)
350+func constructorV1 (cn,aC,aI,co) = if ((cm.caller != this))
348351 then throw("Permission denied")
349352 else if (isDefined(getBinary(bE)))
350353 then throw("Already initialized")
351354 else {
352355 let ao = c
353- let cm = Issue("WLGOLD", "WavesLands Gold investment token", ao, 8, true, unit, 0)
354- let cn = calculateAssetId(cm)
355-[cm, IntegerEntry(y, lastBlock.timestamp), IntegerEntry(z, ao), IntegerEntry(bV, 0), IntegerEntry(s, fraction(c, g, bg)), BinaryEntry(bE, cn), StringEntry(bt(), ck), StringEntry(k, aC), StringEntry(l, aI), StringEntry(bU, cl)]
356+ let cp = Issue("WLGOLD", "WavesLands Gold investment token", ao, 8, true, unit, 0)
357+ let cq = calculateAssetId(cp)
358+[cp, IntegerEntry(y, lastBlock.timestamp), IntegerEntry(z, ao), IntegerEntry(bY, 0), IntegerEntry(s, fraction(c, g, bg)), BinaryEntry(bE, cq), StringEntry(bt(), cn), StringEntry(k, aC), StringEntry(l, aI), StringEntry(bX, co)]
356359 }
357360
358361
359362
360-@Callable(cj)
361-func buyWlg (co) = if (!(aZ))
363+@Callable(cm)
364+func buyWlg (cr) = if (!(aZ))
362365 then $Tuple2(nil, 0)
363366 else {
364- let cp = bX()
365- if ((size(cj.payments) != 1))
367+ let cs = ca()
368+ if ((size(cm.payments) != 1))
366369 then throw("exactly 1 payment must be attached")
367370 else {
368- let cq = cj.payments[0]
369- let cr = cq.amount
370- let cs = valueOrErrorMessage(cq.assetId, "USDT payments only!")
371- if ((cs != bb))
371+ let ct = cm.payments[0]
372+ let cu = ct.amount
373+ let cv = valueOrErrorMessage(ct.assetId, "USDT payments only!")
374+ if ((cv != bb))
372375 then throw("USDT payments only!")
373376 else {
374- let cd = cj.caller
375- let u = toString(cd)
376- let ct = bY(u)
377- if ((cr > ct))
378- then throw((("You can spend max " + bO(ct, 6)) + " USDT"))
379- else if ((bi > cr))
377+ let cg = cm.caller
378+ let u = toString(cg)
379+ let cw = cb(u)
380+ if ((cu > cw))
381+ then throw((("You can spend max " + bO(cw, 6)) + " USDT"))
382+ else if ((bi > cu))
380383 then throw((("You can trade min " + bO(bi, 6)) + " USDT"))
381384 else {
382- let ce = aj("", [bz, V, bA, bB, bC, bD, at], bb, cr)
383- let cu = ce[B]
384- let cv = ce[D]
385- let cw = fraction(cv, bh, cu)
386- let cx = fraction(cw, 6, 5)
387- let cy = fraction(cr, bh, cx)
388- if ((co > cy))
385+ let ch = aj("", [bz, V, bA, bB, bC, bD, at], bb, cu)
386+ let cx = ch[B]
387+ let cy = ch[D]
388+ let cz = fraction(cy, bh, cx)
389+ let cA = fraction(cz, 6, 5)
390+ let cB = fraction(cu, bh, cA)
391+ if ((cr > cB))
389392 then throw("Price changed during operation, please try again")
390393 else {
391- let cz = (cr / 6)
392- let cA = (cr - cz)
393- let cB = fraction(cu, cA, cv)
394- $Tuple2([Reissue(bF, cB, true), IntegerEntry(z, (cu + cB)), IntegerEntry(v(u), lastBlock.timestamp), ScriptTransfer(addressFromStringValue(value(getString(bU))), cz, bb), ScriptTransfer(cd, cy, bF)], cp)
394+ let cC = (cu / 6)
395+ let cD = (cu - cC)
396+ let cE = fraction(cx, cD, cy)
397+ $Tuple2([Reissue(bF, cE, true), IntegerEntry(z, (cx + cE)), IntegerEntry(v(u), lastBlock.timestamp), ScriptTransfer(addressFromStringValue(value(getString(bX))), cC, bb), ScriptTransfer(cg, cB, bF)], cs)
395398 }
396399 }
397400 }
400403
401404
402405
403-@Callable(cj)
404-func sellWlg (co) = if (!(aZ))
406+@Callable(cm)
407+func sellWlg (cr) = if (!(aZ))
405408 then $Tuple2(nil, 0)
406409 else {
407- let cp = bX()
408- if ((size(cj.payments) != 1))
410+ let cs = ca()
411+ if ((size(cm.payments) != 1))
409412 then throw("exactly 1 payment must be attached")
410413 else {
411- let cq = cj.payments[0]
412- let cC = cq.amount
413- let cs = valueOrErrorMessage(cq.assetId, "WLGOLD payments only!")
414- if ((cs != bF))
414+ let ct = cm.payments[0]
415+ let cF = ct.amount
416+ let cv = valueOrErrorMessage(ct.assetId, "WLGOLD payments only!")
417+ if ((cv != bF))
415418 then throw("WLGOLD payments only!")
416419 else {
417- let cd = cj.caller
418- let u = toString(cd)
419- let ct = bY(u)
420- let ce = aj("", [bz, V, bA, bB, bC, bD, at], bb, 0)
421- let cu = ce[B]
422- let cD = fraction(ce[C], 4, 5)
423- let cr = fraction(cC, cD, bh)
424- if ((cr > ct))
425- then throw((("You can get max " + bO(ct, 6)) + " USDT"))
426- else if ((bi > cr))
420+ let cg = cm.caller
421+ let u = toString(cg)
422+ let cw = cb(u)
423+ let ch = aj("", [bz, V, bA, bB, bC, bD, at], bb, 0)
424+ let cx = ch[B]
425+ let cG = fraction(ch[C], 4, 5)
426+ let cu = fraction(cF, cG, bh)
427+ if ((cu > cw))
428+ then throw((("You can get max " + bO(cw, 6)) + " USDT"))
429+ else if ((bi > cu))
427430 then throw((("You can trade min " + bO(bi, 6)) + " USDT"))
428- else if ((co > cr))
431+ else if ((cr > cu))
429432 then throw("Price changed during operation, please try again")
430433 else {
431- let cz = (cr / 4)
432- let cE = fraction((cr + cz), cu, ce[D])
433- $Tuple2([Burn(bF, cE), IntegerEntry(z, (cu - cE)), IntegerEntry(v(u), lastBlock.timestamp), ScriptTransfer(addressFromStringValue(value(getString(bU))), cz, bb), ScriptTransfer(cd, cr, bb)], cp)
434+ let cC = (cu / 4)
435+ let cH = fraction((cu + cC), cx, ch[D])
436+ $Tuple2([Burn(bF, cH), IntegerEntry(z, (cx - cH)), IntegerEntry(v(u), lastBlock.timestamp), ScriptTransfer(addressFromStringValue(value(getString(bX))), cC, bb), ScriptTransfer(cg, cu, bb)], cs)
434437 }
435438 }
436439 }
438441
439442
440443
441-@Callable(cj)
444+@Callable(cm)
442445 func claim () = {
443- let cp = bX()
444- if ((size(cj.payments) != 0))
446+ let cs = ca()
447+ if ((size(cm.payments) != 0))
445448 then throw("No payments required")
446449 else {
447- let cF = cc(toString(cj.caller))._1
448- $Tuple2(cF, cp)
450+ let cI = cf(toString(cm.caller))._1
451+ $Tuple2(cI, cs)
449452 }
450453 }
451454
452455
453456
454-@Callable(cj)
455-func onStakeUnstakeLand (u) = if ((cj.caller != V))
457+@Callable(cm)
458+func onStakeUnstakeLand (u) = if ((cm.caller != V))
456459 then throw("Permission denied")
457- else cc(u)
460+ else cf(u)
458461
459462
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = 1000000
55
66 let b = 100000000
77
88 let c = 100000000000000
99
1010 let d = 100000
1111
1212 let e = 200000
1313
1414 let f = 100000
1515
1616 let g = 400000
1717
1818 let h = 31557600000
1919
2020 let i = 47336400000
2121
2222 let j = 86400000
2323
2424 let k = "marketingAddr"
2525
2626 let l = "teamAddr"
2727
2828 let m = "lastClaimedTime_marketing"
2929
3030 let n = "marketingAmountLeft"
3131
3232 let o = "lastClaimedTime_team"
3333
3434 let p = "teamAmountLeft"
3535
3636 let q = "lastClaimedTime_activities"
3737
3838 let r = "activitiesAmountLeft"
3939
4040 let s = "stakersAmountLeft"
4141
4242 func t (u) = ("lastClaimedTimeUser_" + u)
4343
4444
4545 func v (u) = ("lastArbTimeUser_" + u)
4646
4747
4848 func w (x) = fraction(c, (g * (x + 1)), (6 * a))
4949
5050
5151 let y = "wlg_issueTime"
5252
5353 let z = "wlg_issuedAmount"
5454
5555 let A = "zbill_issuedAmount"
5656
5757 let B = 0
5858
5959 let C = 1
6060
6161 let D = 2
6262
6363 let E = 7
6464
6565 let F = 10
6666
6767 let G = 11
6868
6969 let H = 14
7070
7171 let I = 15
7272
7373 let J = 18
7474
7575 let K = 19
7676
7777 let L = 22
7878
7979 let M = 25
8080
8181 let N = 0
8282
8383 let O = 1
8484
8585 let P = 2
8686
8787 let Q = 4
8888
8989 let R = 5
9090
9191 let S = 6
9292
9393 func T (U,V) = {
9494 let W = split(valueOrElse(getString(V, "resTypesProportions"), "0_0_0_0_0_0"), "_")
9595 func X (Y,Z) = (Y + parseIntValue(Z))
9696
9797 let aa = {
9898 let ab = W
9999 let ac = size(ab)
100100 let ad = 0
101101 func ae (af,ag) = if ((ag >= ac))
102102 then af
103103 else X(af, ab[ag])
104104
105105 func ah (af,ag) = if ((ag >= ac))
106106 then af
107107 else throw("List size exceeds 6")
108108
109109 ah(ae(ae(ae(ae(ae(ae(ad, 0), 1), 2), 3), 4), 5), 6)
110110 }
111111 let ai = valueOrElse(getInteger(V, ("stakedPiecesByOwner_" + U)), 0)
112112 [aa, ai]
113113 }
114114
115115
116116 func aj (ak,al,am,an) = {
117117 let ao = valueOrErrorMessage(getInteger(al[Q], z), "WLGOLD is not issued yet")
118118 let ap = assetBalance(al[P], am)
119119 let aq = assetBalance(al[N], am)
120120 let ar = (assetBalance(al[Q], am) - an)
121121 let as = assetBalance(al[R], am)
122122 let at = al[S]
123123 let au = (assetBalance(at, am) + valueOrElse(getInteger(at, A), 0))
124124 let av = ((ap + ar) + au)
125125 let aw = valueOrErrorMessage(getBinary(al[Q], "wlg_assetId"), "Not initialized yet")
126126 let ax = lastBlock.timestamp
127127 let ay = valueOrErrorMessage(getInteger(al[Q], y), "Not initialized")
128128 let az = fraction(c, d, a)
129129 let aA = valueOrElse(getInteger(al[Q], n), az)
130130 let aB = valueOrElse(getInteger(al[Q], m), ay)
131131 let aC = addressFromStringValue(value(getString(al[Q], k)))
132132 let aD = min([fraction(az, (ax - aB), h), aA])
133133 let aE = assetBalance(aC, aw)
134134 let aF = fraction(c, e, a)
135135 let aG = valueOrElse(getInteger(al[Q], p), aF)
136136 let aH = valueOrElse(getInteger(al[Q], o), ay)
137137 let aI = addressFromStringValue(value(getString(al[Q], l)))
138138 let aJ = min([fraction(aF, (ax - aH), (3 * h)), aG])
139139 let aK = assetBalance(aI, aw)
140140 let aL = fraction(c, f, a)
141141 let aM = valueOrElse(getInteger(al[Q], r), aL)
142142 let aN = valueOrElse(getInteger(al[Q], q), ay)
143143 let aO = min([fraction(aL, (ax - aN), (3 * h)), aM])
144144 let aP = assetBalance(al[N], aw)
145145 let aQ = valueOrElse(getInteger(al[Q], t(ak)), ay)
146146 let aR = ((aQ - ay) / h)
147147 let aS = min([ax, (ay + (3 * h))])
148148 let aT = min([((ax - ay) / h), 2])
149149 let aU = T(ak, al[O])
150150 let aV = w(aT)
151151 let aW = fraction(if ((aR == aT))
152152 then fraction(aV, (aS - aQ), h)
153153 else if ((aR == (aT - 1)))
154154 then (fraction(w((aT - 1)), ((ay + (h * aT)) - aQ), h) + fraction(aV, (aS - (ay + (h * aT))), h))
155155 else ((fraction(w((aT - 2)), ((ay + (h * (aT - 1))) - aQ), h) + w((aT - 1))) + fraction(aV, (aS - (ay + (h * aT))), h)), aU[1], aU[0])
156156 let aX = fraction(fraction(aV, j, h), 25, aU[0])
157157 let aY = valueOrElse(getInteger(al[Q], s), 0)
158158 [ao, fraction(av, b, ao), av, ap, aq, ar, as, ay, aB, az, aA, aD, aE, aF, aG, aJ, aK, aL, aM, aO, aP, aT, aY, aV, aQ, aW, aX, au]
159159 }
160160
161161
162162 let aZ = true
163163
164164 let ba = take(drop(this.bytes, 1), 1)
165165
166166 let bb = {
167167 let bc = ba
168168 if ((base58'2W' == bc))
169169 then base58'9wc3LXNA4TEBsXyKtoLE9mrbDD7WMHXvXrCjZvabLAsi'
170170 else if ((base58'2T' == bc))
171171 then base58'6mWwf9mZBjVgkC54idpyaZLQfAosD914wT8fGf2iiY63'
172172 else throw("Unknown chain")
173173 }
174174
175175 let bd = {
176176 let bc = ba
177177 if ((base58'2W' == bc))
178178 then "3PQCuvFbvh4LkPUnrnU1z3jnbA1p9m3WNhv"
179179 else if ((base58'2T' == bc))
180180 then "3MumkGGztCKAXpWDqxkddofqXSUbqQkvSJy"
181181 else throw("Unknown chain")
182182 }
183183
184184 let be = {
185185 let bc = ba
186186 if ((base58'2W' == bc))
187187 then 600000
188188 else if ((base58'2T' == bc))
189189 then 60000
190190 else throw("Unknown chain")
191191 }
192192
193193 let bf = "__"
194194
195195 let bg = 1000000
196196
197197 let bh = 100000000
198198
199199 let bi = 100000
200200
201201 func bj (bk,bl) = valueOrErrorMessage(getString(bk, bl), makeString(["mandatory ", toString(bk), ".", bl, " is not defined"], ""))
202202
203203
204204 let bm = 1
205205
206206 let bn = 2
207207
208208 let bo = 3
209209
210210 let bp = 4
211211
212212 let bq = 5
213213
214214 let br = 6
215215
216216 func bs () = "%s__restConfig"
217217
218218
219219 func bt () = "%s__restAddr"
220220
221221
222222 func bu (bv) = split_4C(bj(bv, bs()), bf)
223223
224224
225225 func bw (bx,by) = valueOrErrorMessage(addressFromString(bx[by]), ("Rest cfg doesn't contain address at index " + toString(by)))
226226
227227
228228 let bz = addressFromStringValue(valueOrElse(getString(this, bt()), bd))
229229
230230 let bx = bu(bz)
231231
232232 let V = bw(bx, bm)
233233
234234 let bA = bw(bx, bn)
235235
236236 let bB = bw(bx, bo)
237237
238238 let bC = bw(bx, bp)
239239
240240 let bD = bw(bx, bq)
241241
242242 let at = bw(bx, br)
243243
244244 let bE = "wlg_assetId"
245245
246246 let bF = valueOrErrorMessage(getBinary(bC, bE), "Not initialized yet")
247247
248248 let bG = 1
249249
250250 func bH () = "resTypesProportions"
251251
252252
253253 func bI (bJ) = ("stakedPiecesByOwner_" + bJ)
254254
255255
256256 func bK (bL) = {
257257 let bc = bL
258258 if ($isInstanceOf(bc, "Int"))
259259 then {
260260 let bM = bc
261261 bM
262262 }
263263 else throw("fail to cast into Int")
264264 }
265265
266266
267267 func bN (U) = {
268268 let W = split(valueOrElse(getString(V, bH()), "0_0_0_0_0_0"), "_")
269269 func X (Y,Z) = (Y + parseIntValue(Z))
270270
271271 let aa = {
272272 let ab = W
273273 let ac = size(ab)
274274 let ad = 0
275275 func ae (af,ag) = if ((ag >= ac))
276276 then af
277277 else X(af, ab[ag])
278278
279279 func ah (af,ag) = if ((ag >= ac))
280280 then af
281281 else throw("List size exceeds 6")
282282
283283 ah(ae(ae(ae(ae(ae(ae(ad, 0), 1), 2), 3), 4), 5), 6)
284284 }
285285 let ai = valueOrElse(getInteger(V, bI(U)), 0)
286286 [aa, ai]
287287 }
288288
289289
290290 func bO (bP,bQ) = {
291291 let bR = pow(10, 0, bQ, 0, 0, DOWN)
292- ((toString((bP / bR)) + ".") + toString((bP % bR)))
292+ let bS = toString((bP % bR))
293+ let bT = size(bS)
294+ let bU = take(toString(bR), bT)
295+ (((toString((bP / bR)) + ".") + bU) + bS)
293296 }
294297
295298
296-let bS = 100000000
299+let bV = 100000000
297300
298-let bT = 50000000
301+let bW = 50000000
299302
300-let bU = "profitAddr"
303+let bX = "profitAddr"
301304
302-let bV = "stakersAmountPaidTotal"
305+let bY = "stakersAmountPaidTotal"
303306
304-func bW (u) = ("stakersAmountPaidUser_" + u)
307+func bZ (u) = ("stakersAmountPaidUser_" + u)
305308
306309
307-func bX () = bK(invoke(V, "saveLastTx", nil, nil))
310+func ca () = bK(invoke(V, "saveLastTx", nil, nil))
308311
309312
310-func bY (u) = {
311- let bZ = valueOrElse(getInteger(v(u)), 0)
313+func cb (u) = {
314+ let cc = valueOrElse(getInteger(v(u)), 0)
312315 let ax = lastBlock.timestamp
313- if ((be > (ax - bZ)))
316+ if ((be > (ax - cc)))
314317 then throw((("Arbitrages are possible once a " + toString((be / 60000))) + "min"))
315318 else {
316- let ca = bN(u)[bG]
317- let cb = pow(ca, 0, bT, 8, 8, CEILING)
318- fraction(bS, cb, bh)
319+ let cd = bN(u)[bG]
320+ let ce = pow(cd, 0, bW, 8, 8, CEILING)
321+ fraction(bV, ce, bh)
319322 }
320323 }
321324
322325
323-func cc (u) = if (!(aZ))
326+func cf (u) = if (!(aZ))
324327 then $Tuple2(nil, 0)
325328 else {
326- let cd = addressFromStringValue(u)
327- let ce = aj(u, [bz, V, bA, bB, bC, bD, at], bb, 0)
329+ let cg = addressFromStringValue(u)
330+ let ch = aj(u, [bz, V, bA, bB, bC, bD, at], bb, 0)
328331 let ax = lastBlock.timestamp
329- let ay = ce[E]
330- let aA = ce[F]
331- let cf = ce[G]
332- let aG = ce[H]
333- let cg = ce[I]
334- let aM = ce[J]
335- let ch = ce[K]
332+ let ay = ch[E]
333+ let aA = ch[F]
334+ let ci = ch[G]
335+ let aG = ch[H]
336+ let cj = ch[I]
337+ let aM = ch[J]
338+ let ck = ch[K]
336339 if (((ax - ay) > i))
337340 then throw("Please modify contract for next 1.5 years, according to stats")
338341 else {
339- let aW = ce[M]
340- let ci = bW(u)
341- $Tuple2([ScriptTransfer(addressFromStringValue(value(getString(k))), cf, bF), ScriptTransfer(addressFromStringValue(value(getString(l))), cg, bF), ScriptTransfer(bz, ch, bF), ScriptTransfer(cd, aW, bF), IntegerEntry(ci, (valueOrElse(getInteger(ci), 0) + aW)), IntegerEntry(bV, (valueOrElse(getInteger(bV), 0) + aW)), IntegerEntry(s, (ce[L] - aW)), IntegerEntry(n, (aA - cf)), IntegerEntry(m, ax), IntegerEntry(p, (aG - cg)), IntegerEntry(o, ax), IntegerEntry(r, (aM - ch)), IntegerEntry(q, ax), IntegerEntry(t(u), ax)], aW)
342+ let aW = ch[M]
343+ let cl = bZ(u)
344+ $Tuple2([ScriptTransfer(addressFromStringValue(value(getString(k))), ci, bF), ScriptTransfer(addressFromStringValue(value(getString(l))), cj, bF), ScriptTransfer(bz, ck, bF), ScriptTransfer(cg, aW, bF), IntegerEntry(cl, (valueOrElse(getInteger(cl), 0) + aW)), IntegerEntry(bY, (valueOrElse(getInteger(bY), 0) + aW)), IntegerEntry(s, (ch[L] - aW)), IntegerEntry(n, (aA - ci)), IntegerEntry(m, ax), IntegerEntry(p, (aG - cj)), IntegerEntry(o, ax), IntegerEntry(r, (aM - ck)), IntegerEntry(q, ax), IntegerEntry(t(u), ax)], aW)
342345 }
343346 }
344347
345348
346-@Callable(cj)
347-func constructorV1 (ck,aC,aI,cl) = if ((cj.caller != this))
349+@Callable(cm)
350+func constructorV1 (cn,aC,aI,co) = if ((cm.caller != this))
348351 then throw("Permission denied")
349352 else if (isDefined(getBinary(bE)))
350353 then throw("Already initialized")
351354 else {
352355 let ao = c
353- let cm = Issue("WLGOLD", "WavesLands Gold investment token", ao, 8, true, unit, 0)
354- let cn = calculateAssetId(cm)
355-[cm, IntegerEntry(y, lastBlock.timestamp), IntegerEntry(z, ao), IntegerEntry(bV, 0), IntegerEntry(s, fraction(c, g, bg)), BinaryEntry(bE, cn), StringEntry(bt(), ck), StringEntry(k, aC), StringEntry(l, aI), StringEntry(bU, cl)]
356+ let cp = Issue("WLGOLD", "WavesLands Gold investment token", ao, 8, true, unit, 0)
357+ let cq = calculateAssetId(cp)
358+[cp, IntegerEntry(y, lastBlock.timestamp), IntegerEntry(z, ao), IntegerEntry(bY, 0), IntegerEntry(s, fraction(c, g, bg)), BinaryEntry(bE, cq), StringEntry(bt(), cn), StringEntry(k, aC), StringEntry(l, aI), StringEntry(bX, co)]
356359 }
357360
358361
359362
360-@Callable(cj)
361-func buyWlg (co) = if (!(aZ))
363+@Callable(cm)
364+func buyWlg (cr) = if (!(aZ))
362365 then $Tuple2(nil, 0)
363366 else {
364- let cp = bX()
365- if ((size(cj.payments) != 1))
367+ let cs = ca()
368+ if ((size(cm.payments) != 1))
366369 then throw("exactly 1 payment must be attached")
367370 else {
368- let cq = cj.payments[0]
369- let cr = cq.amount
370- let cs = valueOrErrorMessage(cq.assetId, "USDT payments only!")
371- if ((cs != bb))
371+ let ct = cm.payments[0]
372+ let cu = ct.amount
373+ let cv = valueOrErrorMessage(ct.assetId, "USDT payments only!")
374+ if ((cv != bb))
372375 then throw("USDT payments only!")
373376 else {
374- let cd = cj.caller
375- let u = toString(cd)
376- let ct = bY(u)
377- if ((cr > ct))
378- then throw((("You can spend max " + bO(ct, 6)) + " USDT"))
379- else if ((bi > cr))
377+ let cg = cm.caller
378+ let u = toString(cg)
379+ let cw = cb(u)
380+ if ((cu > cw))
381+ then throw((("You can spend max " + bO(cw, 6)) + " USDT"))
382+ else if ((bi > cu))
380383 then throw((("You can trade min " + bO(bi, 6)) + " USDT"))
381384 else {
382- let ce = aj("", [bz, V, bA, bB, bC, bD, at], bb, cr)
383- let cu = ce[B]
384- let cv = ce[D]
385- let cw = fraction(cv, bh, cu)
386- let cx = fraction(cw, 6, 5)
387- let cy = fraction(cr, bh, cx)
388- if ((co > cy))
385+ let ch = aj("", [bz, V, bA, bB, bC, bD, at], bb, cu)
386+ let cx = ch[B]
387+ let cy = ch[D]
388+ let cz = fraction(cy, bh, cx)
389+ let cA = fraction(cz, 6, 5)
390+ let cB = fraction(cu, bh, cA)
391+ if ((cr > cB))
389392 then throw("Price changed during operation, please try again")
390393 else {
391- let cz = (cr / 6)
392- let cA = (cr - cz)
393- let cB = fraction(cu, cA, cv)
394- $Tuple2([Reissue(bF, cB, true), IntegerEntry(z, (cu + cB)), IntegerEntry(v(u), lastBlock.timestamp), ScriptTransfer(addressFromStringValue(value(getString(bU))), cz, bb), ScriptTransfer(cd, cy, bF)], cp)
394+ let cC = (cu / 6)
395+ let cD = (cu - cC)
396+ let cE = fraction(cx, cD, cy)
397+ $Tuple2([Reissue(bF, cE, true), IntegerEntry(z, (cx + cE)), IntegerEntry(v(u), lastBlock.timestamp), ScriptTransfer(addressFromStringValue(value(getString(bX))), cC, bb), ScriptTransfer(cg, cB, bF)], cs)
395398 }
396399 }
397400 }
398401 }
399402 }
400403
401404
402405
403-@Callable(cj)
404-func sellWlg (co) = if (!(aZ))
406+@Callable(cm)
407+func sellWlg (cr) = if (!(aZ))
405408 then $Tuple2(nil, 0)
406409 else {
407- let cp = bX()
408- if ((size(cj.payments) != 1))
410+ let cs = ca()
411+ if ((size(cm.payments) != 1))
409412 then throw("exactly 1 payment must be attached")
410413 else {
411- let cq = cj.payments[0]
412- let cC = cq.amount
413- let cs = valueOrErrorMessage(cq.assetId, "WLGOLD payments only!")
414- if ((cs != bF))
414+ let ct = cm.payments[0]
415+ let cF = ct.amount
416+ let cv = valueOrErrorMessage(ct.assetId, "WLGOLD payments only!")
417+ if ((cv != bF))
415418 then throw("WLGOLD payments only!")
416419 else {
417- let cd = cj.caller
418- let u = toString(cd)
419- let ct = bY(u)
420- let ce = aj("", [bz, V, bA, bB, bC, bD, at], bb, 0)
421- let cu = ce[B]
422- let cD = fraction(ce[C], 4, 5)
423- let cr = fraction(cC, cD, bh)
424- if ((cr > ct))
425- then throw((("You can get max " + bO(ct, 6)) + " USDT"))
426- else if ((bi > cr))
420+ let cg = cm.caller
421+ let u = toString(cg)
422+ let cw = cb(u)
423+ let ch = aj("", [bz, V, bA, bB, bC, bD, at], bb, 0)
424+ let cx = ch[B]
425+ let cG = fraction(ch[C], 4, 5)
426+ let cu = fraction(cF, cG, bh)
427+ if ((cu > cw))
428+ then throw((("You can get max " + bO(cw, 6)) + " USDT"))
429+ else if ((bi > cu))
427430 then throw((("You can trade min " + bO(bi, 6)) + " USDT"))
428- else if ((co > cr))
431+ else if ((cr > cu))
429432 then throw("Price changed during operation, please try again")
430433 else {
431- let cz = (cr / 4)
432- let cE = fraction((cr + cz), cu, ce[D])
433- $Tuple2([Burn(bF, cE), IntegerEntry(z, (cu - cE)), IntegerEntry(v(u), lastBlock.timestamp), ScriptTransfer(addressFromStringValue(value(getString(bU))), cz, bb), ScriptTransfer(cd, cr, bb)], cp)
434+ let cC = (cu / 4)
435+ let cH = fraction((cu + cC), cx, ch[D])
436+ $Tuple2([Burn(bF, cH), IntegerEntry(z, (cx - cH)), IntegerEntry(v(u), lastBlock.timestamp), ScriptTransfer(addressFromStringValue(value(getString(bX))), cC, bb), ScriptTransfer(cg, cu, bb)], cs)
434437 }
435438 }
436439 }
437440 }
438441
439442
440443
441-@Callable(cj)
444+@Callable(cm)
442445 func claim () = {
443- let cp = bX()
444- if ((size(cj.payments) != 0))
446+ let cs = ca()
447+ if ((size(cm.payments) != 0))
445448 then throw("No payments required")
446449 else {
447- let cF = cc(toString(cj.caller))._1
448- $Tuple2(cF, cp)
450+ let cI = cf(toString(cm.caller))._1
451+ $Tuple2(cI, cs)
449452 }
450453 }
451454
452455
453456
454-@Callable(cj)
455-func onStakeUnstakeLand (u) = if ((cj.caller != V))
457+@Callable(cm)
458+func onStakeUnstakeLand (u) = if ((cm.caller != V))
456459 then throw("Permission denied")
457- else cc(u)
460+ else cf(u)
458461
459462

github/deemru/w8io/026f985 
101.04 ms