tx · 435qVExo6v5rMJvrWBdSraNkoEGDYTuuaxcybCjD6kdf

3PPEo6YV7XpCFknum9FNVLQuCu3x7AogcJT:  -0.01000000 Waves

2023.05.28 13:09 [3663216] smart account 3PPEo6YV7XpCFknum9FNVLQuCu3x7AogcJT > SELF 0.00000000 Waves

{ "type": 13, "id": "435qVExo6v5rMJvrWBdSraNkoEGDYTuuaxcybCjD6kdf", "fee": 1000000, "feeAssetId": null, "timestamp": 1685268669930, "version": 2, "chainId": 87, "sender": "3PPEo6YV7XpCFknum9FNVLQuCu3x7AogcJT", "senderPublicKey": "7kuQGHmvhzQW3ERxGyMrxfq3LuxHSJ6UdBZcuy498sf6", "proofs": [ "5UAfawYiCKr6rb724q22TCGsekiwMsmubrJyXwgR2oNhokcsWzi1EXSCnLiMEiJ6Hai2MH7fq3XJu2chefk5y5vS" ], "script": "base64:BgIfCAISBAoCCAgSAwoBARIFCgMICAgSBAoCCAESAwoBCB0ADWtfaW5pdGlhbGl6ZWQCDWtfaW5pdGlhbGl6ZWQAB2tfYWRtaW4CB2tfYWRtaW4ABmtfc3RlcAIGa19zdGVwAAxrX3F1b3RlQXNzZXQCDGtfcXVvdGVBc3NldAAMa19zcG90TWFya2V0AgxrX3Nwb3RNYXJrZXQAD2tfZnV0dXJlc01hcmtldAIPa19mdXR1cmVzTWFya2V0ABNrX21pbkluY3JlYXNlU3ByZWFkAhNrX21pbkluY3JlYXNlU3ByZWFkAA5rX3Bvc2l0aW9uTG9uZwIOa19wb3NpdGlvbkxvbmcAD2tfcG9zaXRpb25TaG9ydAIPa19wb3NpdGlvblNob3J0ABBrX3Bvc2l0aW9uU3ByZWFkAhBrX3Bvc2l0aW9uU3ByZWFkAA9rX3Bvc2l0aW9uTW9uZXkCD2tfcG9zaXRpb25Nb25leQAOa19wb3NpdGlvblNpemUCDmtfcG9zaXRpb25TaXplAAxERUNJTUFMX1VOSVQJAGgCAAEJAGgCCQBoAgkAaAIJAGgCCQBoAgAKAAoACgAKAAoACgEEZGl2ZAICX3gCX3kJAG4EBQJfeAUMREVDSU1BTF9VTklUBQJfeQUISEFMRkVWRU4BBG11bGQCAl94Al95CQBuBAUCX3gFAl95BQxERUNJTUFMX1VOSVQFCEhBTEZFVkVOAAlESVJfU0hPUlQAAgEOdG9Db21wb3NpdGVLZXkCBF9rZXkIX2FkZHJlc3MJAKwCAgkArAICBQRfa2V5AgFfBQhfYWRkcmVzcwEMYWRtaW5BZGRyZXNzAAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUHa19hZG1pbgENZ2V0UXVvdGVBc3NldAAJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwUMa19xdW90ZUFzc2V0AQ1nZXRTcG90TWFya2V0AQZfYXNzZXQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAQ50b0NvbXBvc2l0ZUtleQIFDGtfc3BvdE1hcmtldAUGX2Fzc2V0ARBnZXRGdXR1cmVzTWFya2V0AQZfYXNzZXQJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMJAQ50b0NvbXBvc2l0ZUtleQIFD2tfZnV0dXJlc01hcmtldAUGX2Fzc2V0ARFtaW5JbmNyZWFzZVNwcmVhZAAJARFAZXh0ck5hdGl2ZSgxMDUwKQIFBHRoaXMFE2tfbWluSW5jcmVhc2VTcHJlYWQBC2dldFBvc2l0aW9uAQZfYXNzZXQECGxvbmdTaXplCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ50b0NvbXBvc2l0ZUtleQIFDmtfcG9zaXRpb25Mb25nBQZfYXNzZXQAAAMJAAACBQhsb25nU2l6ZQAACQCWCgQAAAAAAAAAAAkAlgoEBQhsb25nU2l6ZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEOdG9Db21wb3NpdGVLZXkCBQ9rX3Bvc2l0aW9uU2hvcnQFBl9hc3NldAAACQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ50b0NvbXBvc2l0ZUtleQIFEGtfcG9zaXRpb25TcHJlYWQFBl9hc3NldAAACQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAQ50b0NvbXBvc2l0ZUtleQIFD2tfcG9zaXRpb25Nb25leQUGX2Fzc2V0AAABD2dldEFzc2V0QmFsYW5jZQEGX2Fzc2V0AwkAAAIFBl9hc3NldAIFV0FWRVMICQDvBwEFBHRoaXMHcmVndWxhcgkA8AcCBQR0aGlzCQDZBAEFBl9hc3NldAEKZ2V0QXNzZXRJZAEGX2Fzc2V0AwkAAAIFBl9hc3NldAIFV0FWRVMFBHVuaXQJANkEAQUGX2Fzc2V0AQlub3JtYWxpemUCB19hbW91bnQGX2Fzc2V0BAhkZWNpbWFscwMJAAACBQZfYXNzZXQCBVdBVkVTAAgICQEFdmFsdWUBCQDsBwEJANkEAQUGX2Fzc2V0CGRlY2ltYWxzAwkAAAIFCGRlY2ltYWxzAAgJAGkCBQdfYW1vdW50AGQDCQAAAgUIZGVjaW1hbHMABgUHX2Ftb3VudAkAAgECGkludmFsaWQgZGVjaW1hbHMgZm9yIGFzc2V0AQtkZU5vcm1hbGl6ZQIHX2Ftb3VudAZfYXNzZXQECGRlY2ltYWxzAwkAAAIFBl9hc3NldAIFV0FWRVMACAgJAQV2YWx1ZQEJAOwHAQkA2QQBBQZfYXNzZXQIZGVjaW1hbHMDCQAAAgUIZGVjaW1hbHMACAkAaAIFB19hbW91bnQAZAMJAAACBQhkZWNpbWFscwAGBQdfYW1vdW50CQACAQIaSW52YWxpZCBkZWNpbWFscyBmb3IgYXNzZXQBDnVwZGF0ZVBvc2l0aW9uBQZfYXNzZXQMX25ld0xvbmdTaXplDV9uZXdTaG9ydFNpemUNX25ld0F2Z1NwcmVhZA5fbmV3TW9uZXlTcGVudAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUOa19wb3NpdGlvbkxvbmcFBl9hc3NldAUMX25ld0xvbmdTaXplCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOdG9Db21wb3NpdGVLZXkCBQ9rX3Bvc2l0aW9uU2hvcnQFBl9hc3NldAUNX25ld1Nob3J0U2l6ZQkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDnRvQ29tcG9zaXRlS2V5AgUQa19wb3NpdGlvblNwcmVhZAUGX2Fzc2V0BQ1fbmV3QXZnU3ByZWFkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEOdG9Db21wb3NpdGVLZXkCBQ9rX3Bvc2l0aW9uTW9uZXkFBl9hc3NldAUOX25ld01vbmV5U3BlbnQFA25pbAEOZGVsZXRlUG9zaXRpb24BBl9hc3NldAkAzAgCCQELRGVsZXRlRW50cnkBCQEOdG9Db21wb3NpdGVLZXkCBQ5rX3Bvc2l0aW9uTG9uZwUGX2Fzc2V0CQDMCAIJAQtEZWxldGVFbnRyeQEJAQ50b0NvbXBvc2l0ZUtleQIFD2tfcG9zaXRpb25TaG9ydAUGX2Fzc2V0CQDMCAIJAQtEZWxldGVFbnRyeQEJAQ50b0NvbXBvc2l0ZUtleQIFEGtfcG9zaXRpb25TcHJlYWQFBl9hc3NldAkAzAgCCQELRGVsZXRlRW50cnkBCQEOdG9Db21wb3NpdGVLZXkCBQ9rX3Bvc2l0aW9uTW9uZXkFBl9hc3NldAUDbmlsBQFpAQppbml0aWFsaXplAgZfYWRtaW4LX3F1b3RlQXNzZXQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhlJbnZhbGlkIGluaXRpYWxpemUgcGFyYW1zCQDMCAIJAQtTdHJpbmdFbnRyeQIFB2tfYWRtaW4FBl9hZG1pbgkAzAgCCQELU3RyaW5nRW50cnkCBQxrX3F1b3RlQXNzZXQFC19xdW90ZUFzc2V0BQNuaWwBaQEOY2hhbmdlU2V0dGluZ3MBEl9taW5JbmNyZWFzZVNwcmVhZAMJAQIhPQIIBQFpBmNhbGxlcgkBDGFkbWluQWRkcmVzcwAJAAIBAh1JbnZhbGlkIGNoYW5nZVNldHRpbmdzIHBhcmFtcwkAzAgCCQEMSW50ZWdlckVudHJ5AgUTa19taW5JbmNyZWFzZVNwcmVhZAUSX21pbkluY3JlYXNlU3ByZWFkBQNuaWwBaQEJYWRkTWFya2V0AwZfYXNzZXQLX3Nwb3RNYXJrZXQOX2Z1dHVyZXNNYXJrZXQDCQECIT0CCAUBaQZjYWxsZXIJAQxhZG1pbkFkZHJlc3MACQACAQIYSW52YWxpZCBhZGRNYXJrZXQgcGFyYW1zCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ50b0NvbXBvc2l0ZUtleQIFDGtfc3BvdE1hcmtldAUGX2Fzc2V0BQtfc3BvdE1hcmtldAkAzAgCCQELU3RyaW5nRW50cnkCCQEOdG9Db21wb3NpdGVLZXkCBQ9rX2Z1dHVyZXNNYXJrZXQFBl9hc3NldAUOX2Z1dHVyZXNNYXJrZXQFA25pbAFpARBpbmNyZWFzZVBvc2l0aW9uAgZfYXNzZXQPX3F1b3RlQXNzZXRTdGVwBApxdW90ZUFzc2V0CQENZ2V0UXVvdGVBc3NldAAECnNwb3RNYXJrZXQJAQ1nZXRTcG90TWFya2V0AQUGX2Fzc2V0BAthc3NldEJlZm9yZQkBD2dldEFzc2V0QmFsYW5jZQEFBl9hc3NldAMJAAACBQthc3NldEJlZm9yZQULYXNzZXRCZWZvcmUEB2J1eVNwb3QJAPwHBAUKc3BvdE1hcmtldAIEc3dhcAkAzAgCAAAJAMwIAgUGX2Fzc2V0CQDMCAIJAKUIAQUEdGhpcwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCBQpxdW90ZUFzc2V0BQ9fcXVvdGVBc3NldFN0ZXAFA25pbAMJAAACBQdidXlTcG90BQdidXlTcG90BAphc3NldEFmdGVyCQEPZ2V0QXNzZXRCYWxhbmNlAQUGX2Fzc2V0AwkAAAIFCmFzc2V0QWZ0ZXIFCmFzc2V0QWZ0ZXIEC2Fzc2V0Qm91Z2h0CQBlAgUKYXNzZXRBZnRlcgULYXNzZXRCZWZvcmUED2Fzc2V0Qm91Z2h0Tm9ybQkBCW5vcm1hbGl6ZQIFC2Fzc2V0Qm91Z2h0BQZfYXNzZXQEEGJ1eVByaWNlTm9ybUZhY3QJAQRkaXZkAgUPX3F1b3RlQXNzZXRTdGVwBQ9hc3NldEJvdWdodE5vcm0EDWZ1dHVyZXNNYXJrZXQJARBnZXRGdXR1cmVzTWFya2V0AQUGX2Fzc2V0BAxzaG9ydEZ1dHVyZXMJAPwHBAUNZnV0dXJlc01hcmtldAIQaW5jcmVhc2VQb3NpdGlvbgkAzAgCBQlESVJfU0hPUlQJAMwIAgUMREVDSU1BTF9VTklUCQDMCAIAAAkAzAgCAgAJAMwIAgIABQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCnF1b3RlQXNzZXQFD19xdW90ZUFzc2V0U3RlcAUDbmlsAwkAAAIFDHNob3J0RnV0dXJlcwUMc2hvcnRGdXR1cmVzBAtwb3NpdGlvbktleQkArAICCQCsAgIJAKUIAQUEdGhpcwIBXwkApAMBBQlESVJfU0hPUlQED3Bvc2l0aW9uRnVsbEtleQkBDnRvQ29tcG9zaXRlS2V5AgUOa19wb3NpdGlvblNpemUFC3Bvc2l0aW9uS2V5BA5hc3NldFNob3J0Tm9ybQkBAS0BCQERQGV4dHJOYXRpdmUoMTA1MCkCBQ1mdXR1cmVzTWFya2V0BQ9wb3NpdGlvbkZ1bGxLZXkEEnNob3J0UHJpY2VOb3JtRmFjdAkBBGRpdmQCBQ9fcXVvdGVBc3NldFN0ZXAFDmFzc2V0U2hvcnROb3JtBApzcHJlYWRGYWN0CQBlAgUMREVDSU1BTF9VTklUCQEEZGl2ZAIFEGJ1eVByaWNlTm9ybUZhY3QFEnNob3J0UHJpY2VOb3JtRmFjdAQJbWluU3ByZWFkCQERbWluSW5jcmVhc2VTcHJlYWQAAwkAZgIFCnNwcmVhZEZhY3QFCW1pblNwcmVhZAQLJHQwNjAzMDYxMDAJAQtnZXRQb3NpdGlvbgEFBl9hc3NldAQIbG9uZ1NpemUIBQskdDA2MDMwNjEwMAJfMQQJc2hvcnRTaXplCAULJHQwNjAzMDYxMDACXzIECWF2Z1NwcmVhZAgFCyR0MDYwMzA2MTAwAl8zBAptb25leVNwZW50CAULJHQwNjAzMDYxMDACXzQEC25ld0xvbmdTaXplCQBkAgUIbG9uZ1NpemUFD2Fzc2V0Qm91Z2h0Tm9ybQQMbmV3U2hvcnRTaXplCQBkAgUJc2hvcnRTaXplBQ5hc3NldFNob3J0Tm9ybQQMbmV3QXZnU3ByZWFkCQEEZGl2ZAIJAGQCCQEEbXVsZAIFCWF2Z1NwcmVhZAkAZAIFCGxvbmdTaXplBQlzaG9ydFNpemUJAQRtdWxkAgUKc3ByZWFkRmFjdAkAZAIFD2Fzc2V0Qm91Z2h0Tm9ybQUOYXNzZXRTaG9ydE5vcm0JAGQCCQBkAgkAZAIFCGxvbmdTaXplBQlzaG9ydFNpemUFD2Fzc2V0Qm91Z2h0Tm9ybQUOYXNzZXRTaG9ydE5vcm0EDW5ld01vbmV5U3BlbnQJAGQCBQptb25leVNwZW50CQBoAgUPX3F1b3RlQXNzZXRTdGVwAAIJAQ51cGRhdGVQb3NpdGlvbgUFBl9hc3NldAULbmV3TG9uZ1NpemUFDG5ld1Nob3J0U2l6ZQUMbmV3QXZnU3ByZWFkBQ1uZXdNb25leVNwZW50BARkYXRhCQDMCAIJAKQDAQUPYXNzZXRCb3VnaHROb3JtCQDMCAIJAKQDAQUQYnV5UHJpY2VOb3JtRmFjdAkAzAgCCQCkAwEFDmFzc2V0U2hvcnROb3JtCQDMCAIJAKQDAQUSc2hvcnRQcmljZU5vcm1GYWN0CQDMCAIJAKQDAQUKc3ByZWFkRmFjdAkAzAgCCQCkAwEFCW1pblNwcmVhZAUDbmlsCQACAQkArAICAhBJbnZhbGlkIHNwcmVhZDogCQC5CQIFBGRhdGECASwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQENY2xvc2VQb3NpdGlvbgEGX2Fzc2V0BApxdW90ZUFzc2V0CQENZ2V0UXVvdGVBc3NldAAEDXF1b3RlQXNzZXRTdHIJANgEAQUKcXVvdGVBc3NldAQKc3BvdE1hcmtldAkBDWdldFNwb3RNYXJrZXQBBQZfYXNzZXQECyR0MDcwNzI3MTQyCQELZ2V0UG9zaXRpb24BBQZfYXNzZXQECGxvbmdTaXplCAULJHQwNzA3MjcxNDICXzEECXNob3J0U2l6ZQgFCyR0MDcwNzI3MTQyAl8yBAlhdmdTcHJlYWQIBQskdDA3MDcyNzE0MgJfMwQKbW9uZXlTcGVudAgFCyR0MDcwNzI3MTQyAl80BBBxdW90ZUFzc2V0QmVmb3JlCQEPZ2V0QXNzZXRCYWxhbmNlAQUNcXVvdGVBc3NldFN0cgMJAAACBRBxdW90ZUFzc2V0QmVmb3JlBRBxdW90ZUFzc2V0QmVmb3JlBAhzZWxsU3BvdAkA/AcEBQpzcG90TWFya2V0AgRzd2FwCQDMCAIAAAkAzAgCBQ1xdW90ZUFzc2V0U3RyCQDMCAIJAKUIAQUEdGhpcwUDbmlsCQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQEKZ2V0QXNzZXRJZAEFBl9hc3NldAkBC2RlTm9ybWFsaXplAgUIbG9uZ1NpemUFBl9hc3NldAUDbmlsAwkAAAIFCHNlbGxTcG90BQhzZWxsU3BvdAQPcXVvdGVBc3NldEFmdGVyCQEPZ2V0QXNzZXRCYWxhbmNlAQUNcXVvdGVBc3NldFN0cgMJAAACBQ9xdW90ZUFzc2V0QWZ0ZXIFD3F1b3RlQXNzZXRBZnRlcgQMYXNzZXRTb2xkRm9yCQBlAgUPcXVvdGVBc3NldEFmdGVyBRBxdW90ZUFzc2V0QmVmb3JlBBBhc3NldFNvbGRGb3JOb3JtCQEJbm9ybWFsaXplAgUMYXNzZXRTb2xkRm9yBQ1xdW90ZUFzc2V0U3RyBBFzZWxsUHJpY2VOb3JtRmFjdAkBBGRpdmQCBRBhc3NldFNvbGRGb3JOb3JtBQhsb25nU2l6ZQQNZnV0dXJlc01hcmtldAkBEGdldEZ1dHVyZXNNYXJrZXQBBQZfYXNzZXQEEXF1b3RlQXNzZXRCZWZvcmUyCQEPZ2V0QXNzZXRCYWxhbmNlAQUNcXVvdGVBc3NldFN0cgMJAAACBRFxdW90ZUFzc2V0QmVmb3JlMgURcXVvdGVBc3NldEJlZm9yZTIEEWNsb3NlU2hvcnRGdXR1cmVzCQD8BwQFDWZ1dHVyZXNNYXJrZXQCDWNsb3NlUG9zaXRpb24JAMwIAgUJc2hvcnRTaXplCQDMCAIFCURJUl9TSE9SVAkAzAgCAAAJAMwIAgcJAMwIAgIABQNuaWwFA25pbAMJAAACBRFjbG9zZVNob3J0RnV0dXJlcwURY2xvc2VTaG9ydEZ1dHVyZXMEEHF1b3RlQXNzZXRBZnRlcjIJAQ9nZXRBc3NldEJhbGFuY2UBBQ1xdW90ZUFzc2V0U3RyAwkAAAIFEHF1b3RlQXNzZXRBZnRlcjIFEHF1b3RlQXNzZXRBZnRlcjIEDnNob3J0Q2xvc2VkRm9yCQBlAgUQcXVvdGVBc3NldEFmdGVyMgURcXVvdGVBc3NldEJlZm9yZTIEEnNob3J0UHJpY2VOb3JtRmFjdAkBBGRpdmQCBQ5zaG9ydENsb3NlZEZvcgUJc2hvcnRTaXplBAhtb25leUdvdAkAZAIFDnNob3J0Q2xvc2VkRm9yBQxhc3NldFNvbGRGb3IDCQBmAgUIbW9uZXlHb3QFCm1vbmV5U3BlbnQJAQ5kZWxldGVQb3NpdGlvbgEFBl9hc3NldAQEZGF0YQkAzAgCCQCkAwEFEGFzc2V0U29sZEZvck5vcm0JAMwIAgkApAMBBRFzZWxsUHJpY2VOb3JtRmFjdAkAzAgCCQCkAwEFDnNob3J0Q2xvc2VkRm9yCQDMCAIJAKQDAQUSc2hvcnRQcmljZU5vcm1GYWN0BQNuaWwJAAIBCQCsAgICGkludmFsaWQgc3ByZWFkIGZvciBjbG9zZTogCQC5CQIFBGRhdGECASwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4AAiDcng==", "height": 3663216, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4PPDzhWH9E1T3Bhwmg6inSGe2BqMt1ssvJqPgTWkQ4vz Next: 4ys7oSUFgxcDsjzHNdXzfrNnDbnBGK1A2dCeLeeYqxfb Diff:
OldNewDifferences
2121
2222 let j = "k_positionSpread"
2323
24-let k = "k_positionSize"
24+let k = "k_positionMoney"
2525
26-let l = (1 * (((((10 * 10) * 10) * 10) * 10) * 10))
26+let l = "k_positionSize"
2727
28-func m (n,o) = fraction(n, l, o, HALFEVEN)
28+let m = (1 * (((((10 * 10) * 10) * 10) * 10) * 10))
29+
30+func n (o,p) = fraction(o, m, p, HALFEVEN)
2931
3032
31-func p (n,o) = fraction(n, o, l, HALFEVEN)
33+func q (o,p) = fraction(o, p, m, HALFEVEN)
3234
3335
34-let q = 2
36+let r = 2
3537
36-func r (s,t) = ((s + "_") + t)
38+func s (t,u) = ((t + "_") + u)
3739
3840
39-func u () = addressFromStringValue(getStringValue(this, b))
41+func v () = addressFromStringValue(getStringValue(this, b))
4042
4143
42-func v () = fromBase58String(getStringValue(this, d))
44+func w () = fromBase58String(getStringValue(this, d))
4345
4446
45-func w (x) = addressFromStringValue(getStringValue(this, r(e, x)))
47+func x (y) = addressFromStringValue(getStringValue(this, s(e, y)))
4648
4749
48-func y (x) = addressFromStringValue(getStringValue(this, r(f, x)))
50+func z (y) = addressFromStringValue(getStringValue(this, s(f, y)))
4951
5052
51-func z () = getIntegerValue(this, g)
53+func A () = getIntegerValue(this, g)
5254
5355
54-func A (x) = {
55- let B = valueOrElse(getInteger(this, r(h, x)), 0)
56- if ((B == 0))
57- then $Tuple3(0, 0, 0)
58- else $Tuple3(B, valueOrElse(getInteger(this, r(i, x)), 0), valueOrElse(getInteger(this, r(j, x)), 0))
56+func B (y) = {
57+ let C = valueOrElse(getInteger(this, s(h, y)), 0)
58+ if ((C == 0))
59+ then $Tuple4(0, 0, 0, 0)
60+ else $Tuple4(C, valueOrElse(getInteger(this, s(i, y)), 0), valueOrElse(getInteger(this, s(j, y)), 0), valueOrElse(getInteger(this, s(k, y)), 0))
5961 }
6062
6163
62-func C (x) = if ((x == "WAVES"))
64+func D (y) = if ((y == "WAVES"))
6365 then wavesBalance(this).regular
64- else assetBalance(this, fromBase58String(x))
66+ else assetBalance(this, fromBase58String(y))
6567
6668
67-func D (x) = if ((x == "WAVES"))
69+func E (y) = if ((y == "WAVES"))
6870 then unit
69- else fromBase58String(x)
71+ else fromBase58String(y)
7072
7173
72-func E (F,x) = {
73- let G = if ((x == "WAVES"))
74+func F (G,y) = {
75+ let H = if ((y == "WAVES"))
7476 then 8
75- else value(assetInfo(fromBase58String(x))).decimals
76- if ((G == 8))
77- then (F / 100)
78- else if ((G == 6))
79- then F
77+ else value(assetInfo(fromBase58String(y))).decimals
78+ if ((H == 8))
79+ then (G / 100)
80+ else if ((H == 6))
81+ then G
8082 else throw("Invalid decimals for asset")
8183 }
8284
8385
84-func H (F,x) = {
85- let G = if ((x == "WAVES"))
86+func I (G,y) = {
87+ let H = if ((y == "WAVES"))
8688 then 8
87- else value(assetInfo(fromBase58String(x))).decimals
88- if ((G == 8))
89- then (F * 100)
90- else if ((G == 6))
91- then F
89+ else value(assetInfo(fromBase58String(y))).decimals
90+ if ((H == 8))
91+ then (G * 100)
92+ else if ((H == 6))
93+ then G
9294 else throw("Invalid decimals for asset")
9395 }
9496
9597
96-func I (x,J,K,L) = [IntegerEntry(r(h, x), J), IntegerEntry(r(i, x), K), IntegerEntry(r(j, x), L)]
98+func J (y,K,L,M,N) = [IntegerEntry(s(h, y), K), IntegerEntry(s(i, y), L), IntegerEntry(s(j, y), M), IntegerEntry(s(k, y), N)]
9799
98100
99-func M (x) = [DeleteEntry(r(h, x)), DeleteEntry(r(i, x)), DeleteEntry(r(j, x))]
101+func O (y) = [DeleteEntry(s(h, y)), DeleteEntry(s(i, y)), DeleteEntry(s(j, y)), DeleteEntry(s(k, y))]
100102
101103
102-@Callable(N)
103-func initialize (O,P) = if ((N.caller != this))
104+@Callable(P)
105+func initialize (Q,R) = if ((P.caller != this))
104106 then throw("Invalid initialize params")
105- else [StringEntry(b, O), StringEntry(d, P)]
107+ else [StringEntry(b, Q), StringEntry(d, R)]
106108
107109
108110
109-@Callable(N)
110-func changeSettings (Q) = if ((N.caller != u()))
111+@Callable(P)
112+func changeSettings (S) = if ((P.caller != v()))
111113 then throw("Invalid changeSettings params")
112- else [IntegerEntry(g, Q)]
114+ else [IntegerEntry(g, S)]
113115
114116
115117
116-@Callable(N)
117-func addMarket (x,R,S) = if ((N.caller != u()))
118+@Callable(P)
119+func addMarket (y,T,U) = if ((P.caller != v()))
118120 then throw("Invalid addMarket params")
119- else [StringEntry(r(e, x), R), StringEntry(r(f, x), S)]
121+ else [StringEntry(s(e, y), T), StringEntry(s(f, y), U)]
120122
121123
122124
123-@Callable(N)
124-func increasePosition (x,T) = {
125- let U = v()
126- let V = w(x)
127- let W = C(x)
128- if ((W == W))
125+@Callable(P)
126+func increasePosition (y,V) = {
127+ let W = w()
128+ let X = x(y)
129+ let Y = D(y)
130+ if ((Y == Y))
129131 then {
130- let X = invoke(V, "swap", [0, x, toString(this)], [AttachedPayment(U, T)])
131- if ((X == X))
132+ let Z = invoke(X, "swap", [0, y, toString(this)], [AttachedPayment(W, V)])
133+ if ((Z == Z))
132134 then {
133- let Y = C(x)
134- if ((Y == Y))
135+ let aa = D(y)
136+ if ((aa == aa))
135137 then {
136- let Z = (Y - W)
137- let aa = E(Z, x)
138- let ab = m(T, aa)
139- let ac = y(x)
140- let ad = invoke(ac, "increasePosition", [q, l, 0, "", ""], [AttachedPayment(U, T)])
141- if ((ad == ad))
138+ let ab = (aa - Y)
139+ let ac = F(ab, y)
140+ let ad = n(V, ac)
141+ let ae = z(y)
142+ let af = invoke(ae, "increasePosition", [r, m, 0, "", ""], [AttachedPayment(W, V)])
143+ if ((af == af))
142144 then {
143- let ae = ((toString(this) + "_") + toString(q))
144- let af = r(k, ae)
145- let ag = -(getIntegerValue(ac, af))
146- let ah = m(T, ag)
147- let ai = (l - m(ab, ah))
148- let aj = z()
149- if ((ai > aj))
145+ let ag = ((toString(this) + "_") + toString(r))
146+ let ah = s(l, ag)
147+ let ai = -(getIntegerValue(ae, ah))
148+ let aj = n(V, ai)
149+ let ak = (m - n(ad, aj))
150+ let al = A()
151+ if ((ak > al))
150152 then {
151- let ak = A(x)
152- let B = ak._1
153- let al = ak._2
154- let am = ak._3
155- let an = (B + aa)
156- let ao = (al + ag)
157- let ap = m((p(am, (B + al)) + p(ai, (aa + ag))), (((B + al) + aa) + ag))
158- I(x, an, ao, ap)
153+ let am = B(y)
154+ let C = am._1
155+ let an = am._2
156+ let ao = am._3
157+ let ap = am._4
158+ let aq = (C + ac)
159+ let ar = (an + ai)
160+ let as = n((q(ao, (C + an)) + q(ak, (ac + ai))), (((C + an) + ac) + ai))
161+ let at = (ap + (V * 2))
162+ J(y, aq, ar, as, at)
159163 }
160164 else {
161- let aq = [toString(aa), toString(ab), toString(ag), toString(ah), toString(ai), toString(aj)]
162- throw(("Invalid spread: " + makeString(aq, ",")))
165+ let au = [toString(ac), toString(ad), toString(ai), toString(aj), toString(ak), toString(al)]
166+ throw(("Invalid spread: " + makeString(au, ",")))
163167 }
164168 }
165169 else throw("Strict value is not equal to itself.")
173177
174178
175179
176-@Callable(N)
177-func closePosition (x) = {
178- let U = v()
179- let ar = toBase58String(U)
180- let V = w(x)
181- let as = A(x)
182- let B = as._1
183- let al = as._2
184- let am = as._3
185- let at = C(ar)
186- if ((at == at))
180+@Callable(P)
181+func closePosition (y) = {
182+ let W = w()
183+ let av = toBase58String(W)
184+ let X = x(y)
185+ let aw = B(y)
186+ let C = aw._1
187+ let an = aw._2
188+ let ao = aw._3
189+ let ap = aw._4
190+ let ax = D(av)
191+ if ((ax == ax))
187192 then {
188- let au = invoke(V, "swap", [0, ar, toString(this)], [AttachedPayment(D(x), H(B, x))])
189- if ((au == au))
193+ let ay = invoke(X, "swap", [0, av, toString(this)], [AttachedPayment(E(y), I(C, y))])
194+ if ((ay == ay))
190195 then {
191- let av = C(ar)
192- if ((av == av))
196+ let az = D(av)
197+ if ((az == az))
193198 then {
194- let aw = (av - at)
195- let ax = E(aw, ar)
196- let ay = m(ax, B)
197- let ac = y(x)
198- let az = C(ar)
199- if ((az == az))
199+ let aA = (az - ax)
200+ let aB = F(aA, av)
201+ let aC = n(aB, C)
202+ let ae = z(y)
203+ let aD = D(av)
204+ if ((aD == aD))
200205 then {
201- let aA = invoke(ac, "closePosition", [al, q, 0, false, ""], nil)
202- if ((aA == aA))
206+ let aE = invoke(ae, "closePosition", [an, r, 0, false, ""], nil)
207+ if ((aE == aE))
203208 then {
204- let aB = C(ar)
205- if ((aB == aB))
209+ let aF = D(av)
210+ if ((aF == aF))
206211 then {
207- let aC = (aB - az)
208- let ah = m(aC, al)
209- let ai = (l - m(ah, ay))
210- if ((am > ai))
211- then {
212- let aq = [toString(ax), toString(ay), toString(aC), toString(ah), toString(ai), toString(am)]
213- throw(("Valid spread for close: " + makeString(aq, ",")))
214- }
212+ let aG = (aF - aD)
213+ let aj = n(aG, an)
214+ let aH = (aG + aA)
215+ if ((aH > ap))
216+ then O(y)
215217 else {
216- let aq = [toString(ax), toString(ay), toString(aC), toString(ah), toString(ai), toString(am)]
217- throw(("Invalid spread for close: " + makeString(aq, ",")))
218+ let au = [toString(aB), toString(aC), toString(aG), toString(aj)]
219+ throw(("Invalid spread for close: " + makeString(au, ",")))
218220 }
219221 }
220222 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "k_initialized"
55
66 let b = "k_admin"
77
88 let c = "k_step"
99
1010 let d = "k_quoteAsset"
1111
1212 let e = "k_spotMarket"
1313
1414 let f = "k_futuresMarket"
1515
1616 let g = "k_minIncreaseSpread"
1717
1818 let h = "k_positionLong"
1919
2020 let i = "k_positionShort"
2121
2222 let j = "k_positionSpread"
2323
24-let k = "k_positionSize"
24+let k = "k_positionMoney"
2525
26-let l = (1 * (((((10 * 10) * 10) * 10) * 10) * 10))
26+let l = "k_positionSize"
2727
28-func m (n,o) = fraction(n, l, o, HALFEVEN)
28+let m = (1 * (((((10 * 10) * 10) * 10) * 10) * 10))
29+
30+func n (o,p) = fraction(o, m, p, HALFEVEN)
2931
3032
31-func p (n,o) = fraction(n, o, l, HALFEVEN)
33+func q (o,p) = fraction(o, p, m, HALFEVEN)
3234
3335
34-let q = 2
36+let r = 2
3537
36-func r (s,t) = ((s + "_") + t)
38+func s (t,u) = ((t + "_") + u)
3739
3840
39-func u () = addressFromStringValue(getStringValue(this, b))
41+func v () = addressFromStringValue(getStringValue(this, b))
4042
4143
42-func v () = fromBase58String(getStringValue(this, d))
44+func w () = fromBase58String(getStringValue(this, d))
4345
4446
45-func w (x) = addressFromStringValue(getStringValue(this, r(e, x)))
47+func x (y) = addressFromStringValue(getStringValue(this, s(e, y)))
4648
4749
48-func y (x) = addressFromStringValue(getStringValue(this, r(f, x)))
50+func z (y) = addressFromStringValue(getStringValue(this, s(f, y)))
4951
5052
51-func z () = getIntegerValue(this, g)
53+func A () = getIntegerValue(this, g)
5254
5355
54-func A (x) = {
55- let B = valueOrElse(getInteger(this, r(h, x)), 0)
56- if ((B == 0))
57- then $Tuple3(0, 0, 0)
58- else $Tuple3(B, valueOrElse(getInteger(this, r(i, x)), 0), valueOrElse(getInteger(this, r(j, x)), 0))
56+func B (y) = {
57+ let C = valueOrElse(getInteger(this, s(h, y)), 0)
58+ if ((C == 0))
59+ then $Tuple4(0, 0, 0, 0)
60+ else $Tuple4(C, valueOrElse(getInteger(this, s(i, y)), 0), valueOrElse(getInteger(this, s(j, y)), 0), valueOrElse(getInteger(this, s(k, y)), 0))
5961 }
6062
6163
62-func C (x) = if ((x == "WAVES"))
64+func D (y) = if ((y == "WAVES"))
6365 then wavesBalance(this).regular
64- else assetBalance(this, fromBase58String(x))
66+ else assetBalance(this, fromBase58String(y))
6567
6668
67-func D (x) = if ((x == "WAVES"))
69+func E (y) = if ((y == "WAVES"))
6870 then unit
69- else fromBase58String(x)
71+ else fromBase58String(y)
7072
7173
72-func E (F,x) = {
73- let G = if ((x == "WAVES"))
74+func F (G,y) = {
75+ let H = if ((y == "WAVES"))
7476 then 8
75- else value(assetInfo(fromBase58String(x))).decimals
76- if ((G == 8))
77- then (F / 100)
78- else if ((G == 6))
79- then F
77+ else value(assetInfo(fromBase58String(y))).decimals
78+ if ((H == 8))
79+ then (G / 100)
80+ else if ((H == 6))
81+ then G
8082 else throw("Invalid decimals for asset")
8183 }
8284
8385
84-func H (F,x) = {
85- let G = if ((x == "WAVES"))
86+func I (G,y) = {
87+ let H = if ((y == "WAVES"))
8688 then 8
87- else value(assetInfo(fromBase58String(x))).decimals
88- if ((G == 8))
89- then (F * 100)
90- else if ((G == 6))
91- then F
89+ else value(assetInfo(fromBase58String(y))).decimals
90+ if ((H == 8))
91+ then (G * 100)
92+ else if ((H == 6))
93+ then G
9294 else throw("Invalid decimals for asset")
9395 }
9496
9597
96-func I (x,J,K,L) = [IntegerEntry(r(h, x), J), IntegerEntry(r(i, x), K), IntegerEntry(r(j, x), L)]
98+func J (y,K,L,M,N) = [IntegerEntry(s(h, y), K), IntegerEntry(s(i, y), L), IntegerEntry(s(j, y), M), IntegerEntry(s(k, y), N)]
9799
98100
99-func M (x) = [DeleteEntry(r(h, x)), DeleteEntry(r(i, x)), DeleteEntry(r(j, x))]
101+func O (y) = [DeleteEntry(s(h, y)), DeleteEntry(s(i, y)), DeleteEntry(s(j, y)), DeleteEntry(s(k, y))]
100102
101103
102-@Callable(N)
103-func initialize (O,P) = if ((N.caller != this))
104+@Callable(P)
105+func initialize (Q,R) = if ((P.caller != this))
104106 then throw("Invalid initialize params")
105- else [StringEntry(b, O), StringEntry(d, P)]
107+ else [StringEntry(b, Q), StringEntry(d, R)]
106108
107109
108110
109-@Callable(N)
110-func changeSettings (Q) = if ((N.caller != u()))
111+@Callable(P)
112+func changeSettings (S) = if ((P.caller != v()))
111113 then throw("Invalid changeSettings params")
112- else [IntegerEntry(g, Q)]
114+ else [IntegerEntry(g, S)]
113115
114116
115117
116-@Callable(N)
117-func addMarket (x,R,S) = if ((N.caller != u()))
118+@Callable(P)
119+func addMarket (y,T,U) = if ((P.caller != v()))
118120 then throw("Invalid addMarket params")
119- else [StringEntry(r(e, x), R), StringEntry(r(f, x), S)]
121+ else [StringEntry(s(e, y), T), StringEntry(s(f, y), U)]
120122
121123
122124
123-@Callable(N)
124-func increasePosition (x,T) = {
125- let U = v()
126- let V = w(x)
127- let W = C(x)
128- if ((W == W))
125+@Callable(P)
126+func increasePosition (y,V) = {
127+ let W = w()
128+ let X = x(y)
129+ let Y = D(y)
130+ if ((Y == Y))
129131 then {
130- let X = invoke(V, "swap", [0, x, toString(this)], [AttachedPayment(U, T)])
131- if ((X == X))
132+ let Z = invoke(X, "swap", [0, y, toString(this)], [AttachedPayment(W, V)])
133+ if ((Z == Z))
132134 then {
133- let Y = C(x)
134- if ((Y == Y))
135+ let aa = D(y)
136+ if ((aa == aa))
135137 then {
136- let Z = (Y - W)
137- let aa = E(Z, x)
138- let ab = m(T, aa)
139- let ac = y(x)
140- let ad = invoke(ac, "increasePosition", [q, l, 0, "", ""], [AttachedPayment(U, T)])
141- if ((ad == ad))
138+ let ab = (aa - Y)
139+ let ac = F(ab, y)
140+ let ad = n(V, ac)
141+ let ae = z(y)
142+ let af = invoke(ae, "increasePosition", [r, m, 0, "", ""], [AttachedPayment(W, V)])
143+ if ((af == af))
142144 then {
143- let ae = ((toString(this) + "_") + toString(q))
144- let af = r(k, ae)
145- let ag = -(getIntegerValue(ac, af))
146- let ah = m(T, ag)
147- let ai = (l - m(ab, ah))
148- let aj = z()
149- if ((ai > aj))
145+ let ag = ((toString(this) + "_") + toString(r))
146+ let ah = s(l, ag)
147+ let ai = -(getIntegerValue(ae, ah))
148+ let aj = n(V, ai)
149+ let ak = (m - n(ad, aj))
150+ let al = A()
151+ if ((ak > al))
150152 then {
151- let ak = A(x)
152- let B = ak._1
153- let al = ak._2
154- let am = ak._3
155- let an = (B + aa)
156- let ao = (al + ag)
157- let ap = m((p(am, (B + al)) + p(ai, (aa + ag))), (((B + al) + aa) + ag))
158- I(x, an, ao, ap)
153+ let am = B(y)
154+ let C = am._1
155+ let an = am._2
156+ let ao = am._3
157+ let ap = am._4
158+ let aq = (C + ac)
159+ let ar = (an + ai)
160+ let as = n((q(ao, (C + an)) + q(ak, (ac + ai))), (((C + an) + ac) + ai))
161+ let at = (ap + (V * 2))
162+ J(y, aq, ar, as, at)
159163 }
160164 else {
161- let aq = [toString(aa), toString(ab), toString(ag), toString(ah), toString(ai), toString(aj)]
162- throw(("Invalid spread: " + makeString(aq, ",")))
165+ let au = [toString(ac), toString(ad), toString(ai), toString(aj), toString(ak), toString(al)]
166+ throw(("Invalid spread: " + makeString(au, ",")))
163167 }
164168 }
165169 else throw("Strict value is not equal to itself.")
166170 }
167171 else throw("Strict value is not equal to itself.")
168172 }
169173 else throw("Strict value is not equal to itself.")
170174 }
171175 else throw("Strict value is not equal to itself.")
172176 }
173177
174178
175179
176-@Callable(N)
177-func closePosition (x) = {
178- let U = v()
179- let ar = toBase58String(U)
180- let V = w(x)
181- let as = A(x)
182- let B = as._1
183- let al = as._2
184- let am = as._3
185- let at = C(ar)
186- if ((at == at))
180+@Callable(P)
181+func closePosition (y) = {
182+ let W = w()
183+ let av = toBase58String(W)
184+ let X = x(y)
185+ let aw = B(y)
186+ let C = aw._1
187+ let an = aw._2
188+ let ao = aw._3
189+ let ap = aw._4
190+ let ax = D(av)
191+ if ((ax == ax))
187192 then {
188- let au = invoke(V, "swap", [0, ar, toString(this)], [AttachedPayment(D(x), H(B, x))])
189- if ((au == au))
193+ let ay = invoke(X, "swap", [0, av, toString(this)], [AttachedPayment(E(y), I(C, y))])
194+ if ((ay == ay))
190195 then {
191- let av = C(ar)
192- if ((av == av))
196+ let az = D(av)
197+ if ((az == az))
193198 then {
194- let aw = (av - at)
195- let ax = E(aw, ar)
196- let ay = m(ax, B)
197- let ac = y(x)
198- let az = C(ar)
199- if ((az == az))
199+ let aA = (az - ax)
200+ let aB = F(aA, av)
201+ let aC = n(aB, C)
202+ let ae = z(y)
203+ let aD = D(av)
204+ if ((aD == aD))
200205 then {
201- let aA = invoke(ac, "closePosition", [al, q, 0, false, ""], nil)
202- if ((aA == aA))
206+ let aE = invoke(ae, "closePosition", [an, r, 0, false, ""], nil)
207+ if ((aE == aE))
203208 then {
204- let aB = C(ar)
205- if ((aB == aB))
209+ let aF = D(av)
210+ if ((aF == aF))
206211 then {
207- let aC = (aB - az)
208- let ah = m(aC, al)
209- let ai = (l - m(ah, ay))
210- if ((am > ai))
211- then {
212- let aq = [toString(ax), toString(ay), toString(aC), toString(ah), toString(ai), toString(am)]
213- throw(("Valid spread for close: " + makeString(aq, ",")))
214- }
212+ let aG = (aF - aD)
213+ let aj = n(aG, an)
214+ let aH = (aG + aA)
215+ if ((aH > ap))
216+ then O(y)
215217 else {
216- let aq = [toString(ax), toString(ay), toString(aC), toString(ah), toString(ai), toString(am)]
217- throw(("Invalid spread for close: " + makeString(aq, ",")))
218+ let au = [toString(aB), toString(aC), toString(aG), toString(aj)]
219+ throw(("Invalid spread for close: " + makeString(au, ",")))
218220 }
219221 }
220222 else throw("Strict value is not equal to itself.")
221223 }
222224 else throw("Strict value is not equal to itself.")
223225 }
224226 else throw("Strict value is not equal to itself.")
225227 }
226228 else throw("Strict value is not equal to itself.")
227229 }
228230 else throw("Strict value is not equal to itself.")
229231 }
230232 else throw("Strict value is not equal to itself.")
231233 }
232234
233235

github/deemru/w8io/3ef1775 
90.05 ms