tx · 7yPFiZudnRcoUjkKB91zXQ2YXtNoiw3gbDfPNdSsQisT

3MpiUwTkYopBwQEjyTf8sqy7iWLNwyq9Md4:  -0.01800000 Waves

2024.12.17 13:18 [3418433] smart account 3MpiUwTkYopBwQEjyTf8sqy7iWLNwyq9Md4 > SELF 0.00000000 Waves

{ "type": 13, "id": "7yPFiZudnRcoUjkKB91zXQ2YXtNoiw3gbDfPNdSsQisT", "fee": 1800000, "feeAssetId": null, "timestamp": 1734430622827, "version": 2, "chainId": 84, "sender": "3MpiUwTkYopBwQEjyTf8sqy7iWLNwyq9Md4", "senderPublicKey": "9eCupW2UoCBhmiF1N9qWACCzkWT885DVzb65b8zxcSii", "proofs": [ "3wDj6Mvy5hFuAZCEAGXfN4gxcTeVMjT7bTVrEF6AhBmfyMVdHZW3Cm676sPwY8q1S75jSCaxfnnnG2erT8foiNrr" ], "script": "base64:BwItCAISBQoDCAgIEgYKBAgICAgSBQoDCAgIEgQKAggEEgMKAQgSAwoBCBIDCgEIPwAJU0VQQVJBVE9SAgJfXwAMS0VZX01VTFRJU0lHAghNVUxUSVNJRwAKS0VZX1NUQVRVUwIGU1RBVFVTAAhLRVlfSU5JVAIESU5JVAANS0VZX1NFUVVFTkNFUgIJU0VRVUVOQ0VSABNLRVlfQUNDT1VOVF9TVE9SQUdFAg9BQ0NPVU5UX1NUT1JBR0UAEUtFWV9GRUVfUkVDSVBJRU5UAg1GRUVfUkVDSVBJRU5UAApLRVlfU1lNQk9MAgZTWU1CT0wAF0tFWV9PUkRFUl9GSUxMRURfQU1PVU5UAhNPUkRFUl9GSUxMRURfQU1PVU5UABZLRVlfUkVXQVJEX0RJU1RSSUJVVE9SAhJSRVdBUkRfRElTVFJJQlVUT1IAFkZVTkNfRVhURVJOQUxfVFJBTlNGRVICEGV4dGVybmFsVHJhbnNmZXIAEUZVTkNfQ0xBSU1fUkVXQVJEAgtjbGFpbVJld2FyZAALU1BPVF9XQUxMRVQCBFNQT1QAEE9SREVSX1RZUEVfTElNSVQAAQART1JERVJfVFlQRV9NQVJLRVQAAgAPT1JERVJfVkVSU0lPTl8xAAEADk9SREVSX1NJREVfQlVZAAEAD09SREVSX1NJREVfU0VMTAACAA5BTEdfVFlQRV9XQVZFUwABAAxBTEdfVFlQRV9FVk0AAgALWkVST19CSUdJTlQJALYCAQAAAApPTkVfQklHSU5UCQC2AgEAAQAKTVVMVElQTElFUgkAtgIBAIDC1y8AEUZFRV9NQVhfVE9MRVJBTkNFCQC2AgEAoI0GAAxXQVZFU19QUkVGSVgBBP///wEACkVWTV9QUkVGSVgBHBlFdGhlcmV1bSBTaWduZWQgTWVzc2FnZToKMzIBEF92YWxpZGF0ZUFkZHJlc3MCCGFkZHJlc3NfBGVycl8EByRtYXRjaDAJAKYIAQUIYWRkcmVzc18DCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQBYQUHJG1hdGNoMAYJAAIBBQRlcnJfAQ9fdmFsaWRhdGVCaWdJbnQDBHZhbF8ObG93ZXJCb3VuZGFyeV8EZXJyXwMJAL8CAgUObG93ZXJCb3VuZGFyeV8FBHZhbF8JAAIBBQRlcnJfBgERX3ZhbGlkYXRlSW50RXF1YWwDBXZhbDFfBXZhbDJfBGVycl8DCQECIT0CBQV2YWwxXwUFdmFsMl8JAAIBBQRlcnJfBgEUX3ZhbGlkYXRlSW50Tm90RXF1YWwDBXZhbDFfBXZhbDJfBGVycl8DCQAAAgUFdmFsMV8FBXZhbDJfCQACAQUEZXJyXwYBD192YWxpZGF0ZVN0cmluZwIEdmFsXwRlcnJfAwMJAGcCAAAJALECAQUEdmFsXwYJAQhjb250YWlucwIFBHZhbF8FCVNFUEFSQVRPUgkAAgEFBGVycl8GARRfdmFsaWRhdGVTdHJpbmdFcXVhbAMFdmFsMV8FdmFsMl8EZXJyXwMJAQIhPQIFBXZhbDFfBQV2YWwyXwkAAgEFBGVycl8GAQlfbG9hZEluaXQABAckbWF0Y2gwCQCgCAEFCEtFWV9JTklUAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWEFByRtYXRjaDAFAWEHAQlfc2F2ZUluaXQBB2lzSW5pdF8JAMwIAgkBDEJvb2xlYW5FbnRyeQIFCEtFWV9JTklUBQdpc0luaXRfBQNuaWwBDV9sb2FkTXVsdGlzaWcABAckbWF0Y2gwCQCiCAEFDEtFWV9NVUxUSVNJRwMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWEJAQdBZGRyZXNzAQEAAQ1fc2F2ZU11bHRpc2lnAQltdWx0aXNpZ18JAMwIAgkBC1N0cmluZ0VudHJ5AgUMS0VZX01VTFRJU0lHCQClCAEFCW11bHRpc2lnXwUDbmlsAQ5fbG9hZFNlcXVlbmNlcgAEByRtYXRjaDAJAKIIAQUNS0VZX1NFUVVFTkNFUgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWEJAQdBZGRyZXNzAQEAAQ5fc2F2ZVNlcXVlbmNlcgEKc2VxdWVuY2VyXwkAzAgCCQELU3RyaW5nRW50cnkCBQ1LRVlfU0VRVUVOQ0VSCQClCAEFCnNlcXVlbmNlcl8FA25pbAETX2xvYWRBY2NvdW50U3RvcmFnZQAEByRtYXRjaDAJAKIIAQUTS0VZX0FDQ09VTlRfU1RPUkFHRQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWEJAQdBZGRyZXNzAQEAARNfc2F2ZUFjY291bnRTdG9yYWdlAQ9hY2NvdW50U3RvcmFnZV8JAMwIAgkBC1N0cmluZ0VudHJ5AgUTS0VZX0FDQ09VTlRfU1RPUkFHRQkApQgBBQ9hY2NvdW50U3RvcmFnZV8FA25pbAERX2xvYWRGZWVSZWNpcGllbnQABAckbWF0Y2gwCQCiCAEFEUtFWV9GRUVfUkVDSVBJRU5UAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAARFfc2F2ZUZlZVJlY2lwaWVudAENZmVlUmVjaXBpZW50XwkAzAgCCQELU3RyaW5nRW50cnkCBRFLRVlfRkVFX1JFQ0lQSUVOVAUNZmVlUmVjaXBpZW50XwUDbmlsARZfbG9hZFJld2FyZERpc3RyaWJ1dG9yAAQHJG1hdGNoMAkAoggBBRZLRVlfUkVXQVJEX0RJU1RSSUJVVE9SAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAUBYQIAARZfc2F2ZVJld2FyZERpc3RyaWJ1dG9yAQxkaXN0cmlidXRvcl8JAMwIAgkBC1N0cmluZ0VudHJ5AgUWS0VZX1JFV0FSRF9ESVNUUklCVVRPUgUMZGlzdHJpYnV0b3JfBQNuaWwBC19sb2FkU3ltYm9sAQdzeW1ib2xfBAckbWF0Y2gwCQCgCAEJALkJAgkAzAgCBQpLRVlfU1lNQk9MCQDMCAIFB3N5bWJvbF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWEFByRtYXRjaDAFAWEHAQtfc2F2ZVN5bWJvbAIHc3ltYm9sXwR2YWxfCQDMCAIJAQxCb29sZWFuRW50cnkCCQC5CQIJAMwIAgUKS0VZX1NZTUJPTAkAzAgCBQdzeW1ib2xfBQNuaWwFCVNFUEFSQVRPUgUEdmFsXwUDbmlsARZfbG9hZE9yZGVyRmlsbGVkQW1vdW50AQpvcmRlckhhc2hfBAckbWF0Y2gwCQCiCAEJALkJAgkAzAgCBRdLRVlfT1JERVJfRklMTEVEX0FNT1VOVAkAzAgCCQDYBAEFCm9yZGVySGFzaF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkApwMBBQFhBQtaRVJPX0JJR0lOVAEWX3NhdmVPcmRlckZpbGxlZEFtb3VudAIKb3JkZXJIYXNoXwdhbW91bnRfCQDMCAIJAQtTdHJpbmdFbnRyeQIJALkJAgkAzAgCBRdLRVlfT1JERVJfRklMTEVEX0FNT1VOVAkAzAgCCQDYBAEFCm9yZGVySGFzaF8FA25pbAUJU0VQQVJBVE9SCQCmAwEFB2Ftb3VudF8FA25pbAERX29ubHlUaGlzQ29udHJhY3QBB2NhbGxlcl8DCQECIT0CBQdjYWxsZXJfBQR0aGlzCQACAQIZX29ubHlUaGlzQ29udHJhY3Q6IHJldmVydAYBEF93aGVuTXVsdGlzaWdTZXQAAwkAAAIJAQ1fbG9hZE11bHRpc2lnAAkBB0FkZHJlc3MBAQAJAAIBAhhfd2hlbk11bHRpc2lnU2V0OiByZXZlcnQGARNfd2hlbk5vdEluaXRpYWxpemVkAAMJAQlfbG9hZEluaXQACQACAQIbX3doZW5Ob3RJbml0aWFsaXplZDogcmV2ZXJ0BgEQX3doZW5Jbml0aWFsaXplZAADCQEBIQEJAQlfbG9hZEluaXQACQACAQIYX3doZW5Jbml0aWFsaXplZDogcmV2ZXJ0BgESX3ZhbGlkYXRlU2VxdWVuY2VyAgZjYWxsZXIEZXJyXwMJAQIhPQIJAQ5fbG9hZFNlcXVlbmNlcgAFBmNhbGxlcgkAAgEFBGVycl8GARJfdmFsaWRhdGVPcmRlclR5cGUDBXR5cGVfCHZlcnNpb25fBGVycl8DAwkBAiE9AgUFdHlwZV8FEE9SREVSX1RZUEVfTElNSVQJAQIhPQIFBXR5cGVfBRFPUkRFUl9UWVBFX01BUktFVAcJAAIBBQRlcnJfAwkBAiE9AgUIdmVyc2lvbl8FD09SREVSX1ZFUlNJT05fMQkAAgEFBGVycl8GARRfdmFsaWRhdGVPcmRlclN5bWJvbAIHc3ltYm9sXwRlcnJfAwkBASEBCQELX2xvYWRTeW1ib2wBBQdzeW1ib2xfCQACAQUEZXJyXwYBEl92YWxpZGF0ZU9yZGVyU2lkZQIFc2lkZV8EZXJyXwMDCQECIT0CBQVzaWRlXwUOT1JERVJfU0lERV9CVVkJAQIhPQIFBXNpZGVfBQ9PUkRFUl9TSURFX1NFTEwHCQACAQUEZXJyXwYBFF92YWxpZGF0ZU9yZGVyUHJpY2VzBRBtYWtlck9yZGVyUHJpY2VfEHRha2VyT3JkZXJQcmljZV8PdGFrZXJPcmRlclNpZGVfD3Rha2VyT3JkZXJUeXBlXwRlcnJfBAZyZXN1bHQDCQAAAgUPdGFrZXJPcmRlclR5cGVfBRFPUkRFUl9UWVBFX01BUktFVAYDCQAAAgUPdGFrZXJPcmRlclNpZGVfBQ5PUkRFUl9TSURFX0JVWQkAwAICBRB0YWtlck9yZGVyUHJpY2VfBRBtYWtlck9yZGVyUHJpY2VfAwkAAAIFD3Rha2VyT3JkZXJTaWRlXwUPT1JERVJfU0lERV9TRUxMCQDAAgIFEG1ha2VyT3JkZXJQcmljZV8FEHRha2VyT3JkZXJQcmljZV8HAwkBASEBBQZyZXN1bHQJAAIBBQRlcnJfBgEYX3ZhbGlkYXRlU2lnbmF0dXJlRm9ybWF0AwpzaWduYXR1cmVfBGFsZ18EZXJyXwMJAAACBQRhbGdfBQ5BTEdfVFlQRV9XQVZFUwMJAQIhPQIJAMgBAQUKc2lnbmF0dXJlXwBACQACAQUEZXJyXwYDCQAAAgUEYWxnXwUMQUxHX1RZUEVfRVZNAwkBAiE9AgkAyAEBBQpzaWduYXR1cmVfAEEJAAIBBQRlcnJfBgkAAgEJAKwCAgUEZXJyXwIJOiBpbnYgYWxnAQ9fdmFsaWRhdGVXZWIzSWQDB3dlYjNJZF8EYWxnXwRlcnJfAwkAAAIFBGFsZ18FDkFMR19UWVBFX1dBVkVTAwkBAiE9AgkAyAEBBQd3ZWIzSWRfACAJAAIBBQRlcnJfBgMJAAACBQRhbGdfBQxBTEdfVFlQRV9FVk0DCQECIT0CCQDIAQEFB3dlYjNJZF8AFAkAAgEFBGVycl8GCQACAQkArAICBQRlcnJfAgk6IGludiBhbGcBF19jb252ZXJ0V2ViM0lkVG9BZGRyZXNzAgd3ZWIzSWRfBGFsZ18DCQAAAgUEYWxnXwUOQUxHX1RZUEVfV0FWRVMJAKUIAQkApwgBBQd3ZWIzSWRfAwkAAAIFBGFsZ18FDEFMR19UWVBFX0VWTQkArAICAgIweAkA3AQBBQd3ZWIzSWRfCQACAQIfX2NvbnZlcnRXZWIzSWRUb0FkZHJlc3M6IHJldmVydAEXX3ZhbGlkYXRlT3JkZXJTaWduYXR1cmUFCm9yZGVySGFzaF8Kc2lnbmF0dXJlXwd3ZWIzSWRfBGFsZ18EZXJyXwQGcmVzdWx0AwkAAAIFBGFsZ18FDkFMR19UWVBFX1dBVkVTBANtc2cJAMsBAgUMV0FWRVNfUFJFRklYCQCbAwEJANgEAQUKb3JkZXJIYXNoXwkA9AMDBQNtc2cFCnNpZ25hdHVyZV8FB3dlYjNJZF8DCQAAAgUEYWxnXwUMQUxHX1RZUEVfRVZNBA5oYXNoV2l0aFByZWZpeAkAjBUBCQDLAQIFCkVWTV9QUkVGSVgFCm9yZGVySGFzaF8JAAACCQDMAQIJAIwVAQkAhAcCBQ5oYXNoV2l0aFByZWZpeAUKc2lnbmF0dXJlXwAUBQd3ZWIzSWRfCQACAQkArAICBQRlcnJfAgk6IGludiBhbGcDCQEBIQEFBnJlc3VsdAkAAgEFBGVycl8GARVfdmFsaWRhdGVGZWVUb2xlcmFuY2UDB2Ftb3VudF8EZmVlXwRlcnJfAwkAvwICBQRmZWVfCQC9AgQFB2Ftb3VudF8FEUZFRV9NQVhfVE9MRVJBTkNFBQpNVUxUSVBMSUVSBQdDRUlMSU5HCQACAQUEZXJyXwYBC19wYXJzZU9yZGVyAgZvcmRlcl8EZXJyXwQGZmllbGRzCQC1CQIFBm9yZGVyXwUJU0VQQVJBVE9SBAR0eXBlCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQZmaWVsZHMAAAkArAICBQRlcnJfAgo6IGludiB0eXBlBAd2ZXJzaW9uCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQZmaWVsZHMAAQkArAICBQRlcnJfAg06IGludiB2ZXJzaW9uBAZzeW1ib2wJAJEDAgUGZmllbGRzAAIEBHNpZGUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAtgkBCQCRAwIFBmZpZWxkcwADCQCsAgIFBGVycl8CCjogaW52IHNpZGUEAnRzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJALYJAQkAkQMCBQZmaWVsZHMABAkArAICBQRlcnJfAgg6IGludiB0cwQGd2ViM0lkCQDZBAEJAJEDAgUGZmllbGRzAAUEA2FsZwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQC2CQEJAJEDAgUGZmllbGRzAAYJAKwCAgUEZXJyXwIJOiBpbnYgYWxnBAlzaWduYXR1cmUJANkEAQkAkQMCBQZmaWVsZHMABwQLJHQwODQ2NTk1MDMDAwkAAAIFBHR5cGUFEE9SREVSX1RZUEVfTElNSVQJAAACBQd2ZXJzaW9uBQ9PUkRFUl9WRVJTSU9OXzEHBAVwcmljZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEJAJEDAgUGZmllbGRzAAgJAKwCAgUEZXJyXwILOiBpbnYgcHJpY2UEBmFtb3VudAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEJAJEDAgUGZmllbGRzAAkJAKwCAgUEZXJyXwIMOiBpbnYgYW1vdW50BBFvcmRlckRldGFpbHNCeXRlcwkAywECCQCdAwEFBXByaWNlCQCdAwEFBmFtb3VudAkAlgoEBQVwcmljZQUGYW1vdW50BQtaRVJPX0JJR0lOVAURb3JkZXJEZXRhaWxzQnl0ZXMDAwkAAAIFBHR5cGUFEU9SREVSX1RZUEVfTUFSS0VUCQAAAgUHdmVyc2lvbgUPT1JERVJfVkVSU0lPTl8xBwQGYW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQkAkQMCBQZmaWVsZHMACAkArAICBQRlcnJfAgw6IGludiBhbW91bnQEDGlzQmFzZUFtb3VudAMJAAACCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQkAkQMCBQZmaWVsZHMACQkArAICBQRlcnJfAhI6IGludiBpc0Jhc2VBbW91bnQFC1pFUk9fQklHSU5UBwYDBQxpc0Jhc2VBbW91bnQJAJYKBAULWkVST19CSUdJTlQFBmFtb3VudAULWkVST19CSUdJTlQJAMsBAgkAnQMBBQZhbW91bnQJAJ0DAQUKT05FX0JJR0lOVAkAlgoEBQtaRVJPX0JJR0lOVAULWkVST19CSUdJTlQFBmFtb3VudAkAywECCQCdAwEFBmFtb3VudAkAnQMBBQtaRVJPX0JJR0lOVAkAAgEJAKwCAgUEZXJyXwIUOiBpbnYgdHlwZSAmIHZlcnNpb24EBXByaWNlCAULJHQwODQ2NTk1MDMCXzEECmJhc2VBbW91bnQIBQskdDA4NDY1OTUwMwJfMgQLcXVvdGVBbW91bnQIBQskdDA4NDY1OTUwMwJfMwQRb3JkZXJEZXRhaWxzQnl0ZXMIBQskdDA4NDY1OTUwMwJfNAQKb3JkZXJCeXRlcwkAywECCQDLAQIJAMsBAgkAywECCQDLAQIJAMsBAgkAywECCQDLAQIJAJoDAQUEdHlwZQkAmgMBBQd2ZXJzaW9uCQCaAwEJALECAQUGc3ltYm9sCQCbAwEFBnN5bWJvbAkAmgMBBQRzaWRlCQCaAwEFAnRzBQZ3ZWIzSWQJAJoDAQUDYWxnBRFvcmRlckRldGFpbHNCeXRlcwQJb3JkZXJIYXNoCQCNFQEFCm9yZGVyQnl0ZXMEA2VycgMDAwMDAwMJARJfdmFsaWRhdGVPcmRlclR5cGUDBQR0eXBlBQd2ZXJzaW9uCQCsAgIFBGVycl8CEDogaW52IG9yZGVyIHR5cGUJARRfdmFsaWRhdGVPcmRlclN5bWJvbAIFBnN5bWJvbAkArAICBQRlcnJfAhI6IGludiBvcmRlciBzeW1ib2wHCQESX3ZhbGlkYXRlT3JkZXJTaWRlAgUEc2lkZQkArAICBQRlcnJfAhA6IGludiBvcmRlciBzaWRlBwkBD192YWxpZGF0ZVdlYjNJZAMFBndlYjNJZAUDYWxnCQCsAgIFBGVycl8CEjogaW52IG9yZGVyIHdlYjNJZAcJARhfdmFsaWRhdGVTaWduYXR1cmVGb3JtYXQDBQlzaWduYXR1cmUFA2FsZwkArAICBQRlcnJfAhA6IGludiBzaWcgZm9ybWF0BwkBD192YWxpZGF0ZUJpZ0ludAMFBXByaWNlBQtaRVJPX0JJR0lOVAkArAICBQRlcnJfAgs6IG5lZyBwcmljZQcJAQ9fdmFsaWRhdGVCaWdJbnQDBQpiYXNlQW1vdW50BQtaRVJPX0JJR0lOVAkArAICBQRlcnJfAhE6IG5lZyBiYXNlIGFtb3VudAcJAQ9fdmFsaWRhdGVCaWdJbnQDBQtxdW90ZUFtb3VudAULWkVST19CSUdJTlQJAKwCAgUEZXJyXwISOiBuZWcgcXVvdGUgYW1vdW50BwMJAAACBQNlcnIFA2VycgkAnAoKBQR0eXBlBQZzeW1ib2wFBHNpZGUFBXByaWNlBQpiYXNlQW1vdW50BQtxdW90ZUFtb3VudAUJb3JkZXJIYXNoBQZ3ZWIzSWQFA2FsZwUJc2lnbmF0dXJlCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuBwFpAQRpbml0AwpzZXF1ZW5jZXJfD2FjY291bnRTdG9yYWdlXw1mZWVSZWNpcGllbnRfBANlcnIDAwMDAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQETX3doZW5Ob3RJbml0aWFsaXplZAAHCQEQX3doZW5NdWx0aXNpZ1NldAAHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFCnNlcXVlbmNlcl8CF2luaXQ6IGludmFsaWQgc2VxdWVuY2VyBwkBEF92YWxpZGF0ZUFkZHJlc3MCBQ9hY2NvdW50U3RvcmFnZV8CHGluaXQ6IGludmFsaWQgYWNjb3VudFN0b3JhZ2UHCQEPX3ZhbGlkYXRlU3RyaW5nAgUNZmVlUmVjaXBpZW50XwIaaW5pdDogaW52YWxpZCBmZWVSZWNpcGllbnQHAwkAAAIFA2VycgUDZXJyCQCUCgIJAM4IAgkAzggCCQDOCAIJAQlfc2F2ZUluaXQBBgkBDl9zYXZlU2VxdWVuY2VyAQkBEUBleHRyTmF0aXZlKDEwNjIpAQUKc2VxdWVuY2VyXwkBE19zYXZlQWNjb3VudFN0b3JhZ2UBCQERQGV4dHJOYXRpdmUoMTA2MikBBQ9hY2NvdW50U3RvcmFnZV8JARFfc2F2ZUZlZVJlY2lwaWVudAEFDWZlZVJlY2lwaWVudF8FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEFdHJhZGUEC21ha2VyT3JkZXJfC3Rha2VyT3JkZXJfCGJhc2VGZWVfCXF1b3RlRmVlXwQNJHQwMTEzMTkxMTY0OAkBC19wYXJzZU9yZGVyAgULbWFrZXJPcmRlcl8CGnRyYWRlOiBpbnZhbGlkIG1ha2VyIG9yZGVyBA5tYWtlck9yZGVyVHlwZQgFDSR0MDExMzE5MTE2NDgCXzEEEG1ha2VyT3JkZXJTeW1ib2wIBQ0kdDAxMTMxOTExNjQ4Al8yBA5tYWtlck9yZGVyU2lkZQgFDSR0MDExMzE5MTE2NDgCXzMED21ha2VyT3JkZXJQcmljZQgFDSR0MDExMzE5MTE2NDgCXzQEFG1ha2VyT3JkZXJCYXNlQW1vdW50CAUNJHQwMTEzMTkxMTY0OAJfNQQVbWFrZXJPcmRlclF1b3RlQW1vdW50CAUNJHQwMTEzMTkxMTY0OAJfNgQObWFrZXJPcmRlckhhc2gIBQ0kdDAxMTMxOTExNjQ4Al83BBBtYWtlck9yZGVyV2ViM0lkCAUNJHQwMTEzMTkxMTY0OAJfOAQNbWFrZXJPcmRlckFsZwgFDSR0MDExMzE5MTE2NDgCXzkEE21ha2VyT3JkZXJTaWduYXR1cmUIBQ0kdDAxMTMxOTExNjQ4A18xMAQNJHQwMTE2NTQxMTk4MwkBC19wYXJzZU9yZGVyAgULdGFrZXJPcmRlcl8CGnRyYWRlOiBpbnZhbGlkIHRha2VyIG9yZGVyBA50YWtlck9yZGVyVHlwZQgFDSR0MDExNjU0MTE5ODMCXzEEEHRha2VyT3JkZXJTeW1ib2wIBQ0kdDAxMTY1NDExOTgzAl8yBA50YWtlck9yZGVyU2lkZQgFDSR0MDExNjU0MTE5ODMCXzMED3Rha2VyT3JkZXJQcmljZQgFDSR0MDExNjU0MTE5ODMCXzQEFHRha2VyT3JkZXJCYXNlQW1vdW50CAUNJHQwMTE2NTQxMTk4MwJfNQQVdGFrZXJPcmRlclF1b3RlQW1vdW50CAUNJHQwMTE2NTQxMTk4MwJfNgQOdGFrZXJPcmRlckhhc2gIBQ0kdDAxMTY1NDExOTgzAl83BBB0YWtlck9yZGVyV2ViM0lkCAUNJHQwMTE2NTQxMTk4MwJfOAQNdGFrZXJPcmRlckFsZwgFDSR0MDExNjU0MTE5ODMCXzkEE3Rha2VyT3JkZXJTaWduYXR1cmUIBQ0kdDAxMTY1NDExOTgzA18xMAQHYmFzZUZlZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEFCGJhc2VGZWVfAhZ0cmFkZTogYmFzZUZlZSBub3QgaW50BAhxdW90ZUZlZQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCoAwEFCXF1b3RlRmVlXwIXdHJhZGU6IHF1b3RlRmVlIG5vdCBpbnQECnRyYWRlUHJpY2UFD21ha2VyT3JkZXJQcmljZQQWbWFrZXJPcmRlckZpbGxlZEFtb3VudAkBFl9sb2FkT3JkZXJGaWxsZWRBbW91bnQBBQ5tYWtlck9yZGVySGFzaAQYbWFrZXJPcmRlckJhc2VBbW91bnRGcmVlCQC4AgIFFG1ha2VyT3JkZXJCYXNlQW1vdW50BRZtYWtlck9yZGVyRmlsbGVkQW1vdW50BBZ0YWtlck9yZGVyRmlsbGVkQW1vdW50CQEWX2xvYWRPcmRlckZpbGxlZEFtb3VudAEFDnRha2VyT3JkZXJIYXNoBBh0YWtlck9yZGVyQmFzZUFtb3VudEZyZWUDCQAAAgUUdGFrZXJPcmRlckJhc2VBbW91bnQFC1pFUk9fQklHSU5UCQC9AgQJALgCAgUVdGFrZXJPcmRlclF1b3RlQW1vdW50BRZ0YWtlck9yZGVyRmlsbGVkQW1vdW50BQpNVUxUSVBMSUVSBQp0cmFkZVByaWNlBQRET1dOCQC4AgIFFHRha2VyT3JkZXJCYXNlQW1vdW50BRZ0YWtlck9yZGVyRmlsbGVkQW1vdW50BA90cmFkZUJhc2VBbW91bnQJAJkDAQkAzAgCBRhtYWtlck9yZGVyQmFzZUFtb3VudEZyZWUJAMwIAgUYdGFrZXJPcmRlckJhc2VBbW91bnRGcmVlBQNuaWwEEHRyYWRlUXVvdGVBbW91bnQJAL0CBAUPdHJhZGVCYXNlQW1vdW50BQp0cmFkZVByaWNlBQpNVUxUSVBMSUVSBQRET1dOBANlcnIDAwMDAwMDAwMJARJfdmFsaWRhdGVTZXF1ZW5jZXICCAUBaQZjYWxsZXICGHRyYWRlOiBpbnZhbGlkIHNlcXVlbmNlcgkBD192YWxpZGF0ZUJpZ0ludAMFD3RyYWRlQmFzZUFtb3VudAULWkVST19CSUdJTlQCF3RyYWRlOiBuZWcgdHJhZGUgYW1vdW50BwkBEV92YWxpZGF0ZUludEVxdWFsAwUObWFrZXJPcmRlclR5cGUFEE9SREVSX1RZUEVfTElNSVQCGXRyYWRlOiBtYWtlciBpcyBub3QgbGltaXQHCQEUX3ZhbGlkYXRlU3RyaW5nRXF1YWwDBRBtYWtlck9yZGVyU3ltYm9sBRB0YWtlck9yZGVyU3ltYm9sAhZ0cmFkZTogc3ltYm9sIG1pc21hdGNoBwkBFF92YWxpZGF0ZUludE5vdEVxdWFsAwUObWFrZXJPcmRlclNpZGUFDnRha2VyT3JkZXJTaWRlAhR0cmFkZTogc2lkZSBtaXNtYXRjaAcJARdfdmFsaWRhdGVPcmRlclNpZ25hdHVyZQUFDm1ha2VyT3JkZXJIYXNoBRNtYWtlck9yZGVyU2lnbmF0dXJlBRBtYWtlck9yZGVyV2ViM0lkBQ1tYWtlck9yZGVyQWxnAhh0cmFkZTogaW52YWxpZCBtYWtlciBzaWcHCQEXX3ZhbGlkYXRlT3JkZXJTaWduYXR1cmUFBQ50YWtlck9yZGVySGFzaAUTdGFrZXJPcmRlclNpZ25hdHVyZQUQdGFrZXJPcmRlcldlYjNJZAUNdGFrZXJPcmRlckFsZwIYdHJhZGU6IGludmFsaWQgdGFrZXIgc2lnBwkBFV92YWxpZGF0ZUZlZVRvbGVyYW5jZQMFD3RyYWRlQmFzZUFtb3VudAUHYmFzZUZlZQIYdHJhZGU6IGJhc2UgZmVlIHRvbyBtdWNoBwkBFV92YWxpZGF0ZUZlZVRvbGVyYW5jZQMFEHRyYWRlUXVvdGVBbW91bnQFCHF1b3RlRmVlAhl0cmFkZTogcXVvdGUgZmVlIHRvbyBtdWNoBwkBFF92YWxpZGF0ZU9yZGVyUHJpY2VzBQUPbWFrZXJPcmRlclByaWNlBQ90YWtlck9yZGVyUHJpY2UFDnRha2VyT3JkZXJTaWRlBQ50YWtlck9yZGVyVHlwZQIWdHJhZGU6IHByaWNlcyBtaXNtYXRjaAcDCQAAAgUDZXJyBQNlcnIEDG1ha2VyQWRkcmVzcwkBF19jb252ZXJ0V2ViM0lkVG9BZGRyZXNzAgUQbWFrZXJPcmRlcldlYjNJZAUNbWFrZXJPcmRlckFsZwQMdGFrZXJBZGRyZXNzCQEXX2NvbnZlcnRXZWIzSWRUb0FkZHJlc3MCBRB0YWtlck9yZGVyV2ViM0lkBQ10YWtlck9yZGVyQWxnBA0kdDAxNDE0MDE0NTYzAwkAAAIFDm1ha2VyT3JkZXJTaWRlBQ5PUkRFUl9TSURFX0JVWQkAlAoCBQxtYWtlckFkZHJlc3MFDHRha2VyQWRkcmVzcwkAlAoCBQx0YWtlckFkZHJlc3MFDG1ha2VyQWRkcmVzcwQFYnV5ZXIIBQ0kdDAxNDE0MDE0NTYzAl8xBAZzZWxsZXIIBQ0kdDAxNDE0MDE0NTYzAl8yBAZhc3NldHMJALUJAgUQbWFrZXJPcmRlclN5bWJvbAIBLQQJYmFzZUFzc2V0CQCRAwIFBmFzc2V0cwAABApxdW90ZUFzc2V0CQCRAwIFBmFzc2V0cwABBAxmZWVSZWNpcGllbnQJARFfbG9hZEZlZVJlY2lwaWVudAAEEXN0b3JhZ2VJbnZvY2F0aW9uCQD8BwQJARNfbG9hZEFjY291bnRTdG9yYWdlAAUWRlVOQ19FWFRFUk5BTF9UUkFOU0ZFUgkAzAgCBQtTUE9UX1dBTExFVAkAzAgCBQliYXNlQXNzZXQJAMwIAgUGc2VsbGVyCQDMCAIFBWJ1eWVyCQDMCAIJAKYDAQUPdHJhZGVCYXNlQW1vdW50CQDMCAIJAKYDAQUHYmFzZUZlZQkAzAgCBQxmZWVSZWNpcGllbnQFA25pbAUDbmlsAwkAAAIFEXN0b3JhZ2VJbnZvY2F0aW9uBRFzdG9yYWdlSW52b2NhdGlvbgQSc3RvcmFnZUludm9jYXRpb24xCQD8BwQJARNfbG9hZEFjY291bnRTdG9yYWdlAAUWRlVOQ19FWFRFUk5BTF9UUkFOU0ZFUgkAzAgCBQtTUE9UX1dBTExFVAkAzAgCBQpxdW90ZUFzc2V0CQDMCAIFBWJ1eWVyCQDMCAIFBnNlbGxlcgkAzAgCCQCmAwEFEHRyYWRlUXVvdGVBbW91bnQJAMwIAgkApgMBBQhxdW90ZUZlZQkAzAgCBQxmZWVSZWNpcGllbnQFA25pbAUDbmlsAwkAAAIFEnN0b3JhZ2VJbnZvY2F0aW9uMQUSc3RvcmFnZUludm9jYXRpb24xBBluZXdNYWtlck9yZGVyRmlsbGVkQW1vdW50CQC3AgIFFm1ha2VyT3JkZXJGaWxsZWRBbW91bnQFD3RyYWRlQmFzZUFtb3VudAQZbmV3VGFrZXJPcmRlckZpbGxlZEFtb3VudAMJAAACBRR0YWtlck9yZGVyQmFzZUFtb3VudAULWkVST19CSUdJTlQJALcCAgUWdGFrZXJPcmRlckZpbGxlZEFtb3VudAUQdHJhZGVRdW90ZUFtb3VudAkAtwICBRZ0YWtlck9yZGVyRmlsbGVkQW1vdW50BQ90cmFkZUJhc2VBbW91bnQJAJQKAgkAzggCCQEWX3NhdmVPcmRlckZpbGxlZEFtb3VudAIFDm1ha2VyT3JkZXJIYXNoBRluZXdNYWtlck9yZGVyRmlsbGVkQW1vdW50CQEWX3NhdmVPcmRlckZpbGxlZEFtb3VudAIFDnRha2VyT3JkZXJIYXNoBRluZXdUYWtlck9yZGVyRmlsbGVkQW1vdW50BQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBC2NsYWltUmV3YXJkAwV1c2VyXwljdXJyZW5jeV8HYW1vdW50XwQGYW1vdW50CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKgDAQUHYW1vdW50XwIbY2xhaW1SZXdhcmQ6IGFtb3VudCBub3QgaW50BANlcnIDAwMJARJfdmFsaWRhdGVTZXF1ZW5jZXICCAUBaQZjYWxsZXICHmNsYWltUmV3YXJkOiBpbnZhbGlkIHNlcXVlbmNlcgkBD192YWxpZGF0ZVN0cmluZwIFBXVzZXJfAhljbGFpbVJld2FyZDogaW52YWxpZCB1c2VyBwkBD192YWxpZGF0ZVN0cmluZwIFCWN1cnJlbmN5XwIdY2xhaW1SZXdhcmQ6IGludmFsaWQgY3VycmVuY3kHCQEPX3ZhbGlkYXRlQmlnSW50AwUGYW1vdW50BQtaRVJPX0JJR0lOVAIXY2xhaW1SZXdhcmQ6IG5lZyBhbW91bnQHAwkAAAIFA2VycgUDZXJyBBFzdG9yYWdlSW52b2NhdGlvbgkA/AcECQETX2xvYWRBY2NvdW50U3RvcmFnZQAFEUZVTkNfQ0xBSU1fUkVXQVJECQDMCAIJARZfbG9hZFJld2FyZERpc3RyaWJ1dG9yAAkAzAgCBQV1c2VyXwkAzAgCBQljdXJyZW5jeV8JAMwIAgUHYW1vdW50XwUDbmlsBQNuaWwDCQAAAgURc3RvcmFnZUludm9jYXRpb24FEXN0b3JhZ2VJbnZvY2F0aW9uCQCUCgIFA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQx1cGRhdGVTeW1ib2wCB3N5bWJvbF8KYWxsb3dhbmNlXwQDZXJyAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEPX3ZhbGlkYXRlU3RyaW5nAgUHc3ltYm9sXwIcdXBkYXRlU3ltYm9sOiBpbnZhbGlkIHN5bWJvbAcDCQAAAgUDZXJyBQNlcnIJAJQKAgkBC19zYXZlU3ltYm9sAgUHc3ltYm9sXwUKYWxsb3dhbmNlXwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARJ1cGRhdGVGZWVSZWNpcGllbnQBDWZlZVJlY2lwaWVudF8EA2VycgMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJAQ9fdmFsaWRhdGVTdHJpbmcCBQ1mZWVSZWNpcGllbnRfAih1cGRhdGVGZWVSZWNpcGllbnQ6IGludmFsaWQgZmVlUmVjaXBpZW50BwMJAAACBQNlcnIFA2VycgkAlAoCCQERX3NhdmVGZWVSZWNpcGllbnQBBQ1mZWVSZWNpcGllbnRfBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBF3VwZGF0ZVJld2FyZERpc3RyaWJ1dG9yARJyZXdhcmREaXN0cmlidXRvcl8EA2VycgMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJAQ9fdmFsaWRhdGVTdHJpbmcCBRJyZXdhcmREaXN0cmlidXRvcl8CMnVwZGF0ZVJld2FyZERpc3RyaWJ1dG9yOiBpbnZhbGlkIHJld2FyZERpc3RyaWJ1dG9yBwMJAAACBQNlcnIFA2VycgkAlAoCCQEWX3NhdmVSZXdhcmREaXN0cmlidXRvcgEFEnJld2FyZERpc3RyaWJ1dG9yXwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQtzZXRNdWx0aXNpZwEJbXVsdGlzaWdfBANlcnIDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfdmFsaWRhdGVBZGRyZXNzAgUJbXVsdGlzaWdfAh1zZXRNdWx0aXNpZzogaW52YWxpZCBtdWx0aXNpZwcDCQAAAgUDZXJyBQNlcnIJAJQKAgkBDV9zYXZlTXVsdGlzaWcBCQERQGV4dHJOYXRpdmUoMTA2MikBBQltdWx0aXNpZ18FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABAckbWF0Y2gwCQCiCAEFDEtFWV9NVUxUSVNJRwMJAAECBQckbWF0Y2gwAgZTdHJpbmcECG11bHRpc2lnBQckbWF0Y2gwCQELdmFsdWVPckVsc2UCCQCbCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCG11bHRpc2lnCQC5CQIJAMwIAgUKS0VZX1NUQVRVUwkAzAgCCQClCAEFBHRoaXMJAMwIAgkA2AQBCAUCdHgCaWQFA25pbAUJU0VQQVJBVE9SBwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tlefrRKwo=", "height": 3418433, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3uJdmYkbWwVbFaNh4BJLywXMi3vfWU4DmTqXD2xJPkvD Next: none Diff:
OldNewDifferences
310310 }
311311
312312
313-func aP (am,aQ,C) = if ((aQ > fraction(am, x, w, DOWN)))
313+func aP (am,aQ,C) = if ((aQ > fraction(am, x, w, CEILING)))
314314 then throw(C)
315315 else true
316316
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 7 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "MULTISIG"
77
88 let c = "STATUS"
99
1010 let d = "INIT"
1111
1212 let e = "SEQUENCER"
1313
1414 let f = "ACCOUNT_STORAGE"
1515
1616 let g = "FEE_RECIPIENT"
1717
1818 let h = "SYMBOL"
1919
2020 let i = "ORDER_FILLED_AMOUNT"
2121
2222 let j = "REWARD_DISTRIBUTOR"
2323
2424 let k = "externalTransfer"
2525
2626 let l = "claimReward"
2727
2828 let m = "SPOT"
2929
3030 let n = 1
3131
3232 let o = 2
3333
3434 let p = 1
3535
3636 let q = 1
3737
3838 let r = 2
3939
4040 let s = 1
4141
4242 let t = 2
4343
4444 let u = toBigInt(0)
4545
4646 let v = toBigInt(1)
4747
4848 let w = toBigInt(100000000)
4949
5050 let x = toBigInt(100000)
5151
5252 let y = base58'7YXq4t'
5353
5454 let z = base58'G5Nu92G2p7moXW9qjjN3na7gtq4dWCeVdaSjry'
5555
5656 func A (B,C) = {
5757 let D = addressFromString(B)
5858 if ($isInstanceOf(D, "Address"))
5959 then {
6060 let E = D
6161 true
6262 }
6363 else throw(C)
6464 }
6565
6666
6767 func F (G,H,C) = if ((H > G))
6868 then throw(C)
6969 else true
7070
7171
7272 func I (J,K,C) = if ((J != K))
7373 then throw(C)
7474 else true
7575
7676
7777 func L (J,K,C) = if ((J == K))
7878 then throw(C)
7979 else true
8080
8181
8282 func M (G,C) = if (if ((0 >= size(G)))
8383 then true
8484 else contains(G, a))
8585 then throw(C)
8686 else true
8787
8888
8989 func N (J,K,C) = if ((J != K))
9090 then throw(C)
9191 else true
9292
9393
9494 func O () = {
9595 let D = getBoolean(d)
9696 if ($isInstanceOf(D, "Boolean"))
9797 then {
9898 let E = D
9999 E
100100 }
101101 else false
102102 }
103103
104104
105105 func P (Q) = [BooleanEntry(d, Q)]
106106
107107
108108 func R () = {
109109 let D = getString(b)
110110 if ($isInstanceOf(D, "String"))
111111 then {
112112 let E = D
113113 addressFromStringValue(E)
114114 }
115115 else Address(base58'')
116116 }
117117
118118
119119 func S (T) = [StringEntry(b, toString(T))]
120120
121121
122122 func U () = {
123123 let D = getString(e)
124124 if ($isInstanceOf(D, "String"))
125125 then {
126126 let E = D
127127 addressFromStringValue(E)
128128 }
129129 else Address(base58'')
130130 }
131131
132132
133133 func V (W) = [StringEntry(e, toString(W))]
134134
135135
136136 func X () = {
137137 let D = getString(f)
138138 if ($isInstanceOf(D, "String"))
139139 then {
140140 let E = D
141141 addressFromStringValue(E)
142142 }
143143 else Address(base58'')
144144 }
145145
146146
147147 func Y (Z) = [StringEntry(f, toString(Z))]
148148
149149
150150 func aa () = {
151151 let D = getString(g)
152152 if ($isInstanceOf(D, "String"))
153153 then {
154154 let E = D
155155 E
156156 }
157157 else ""
158158 }
159159
160160
161161 func ab (ac) = [StringEntry(g, ac)]
162162
163163
164164 func ad () = {
165165 let D = getString(j)
166166 if ($isInstanceOf(D, "String"))
167167 then {
168168 let E = D
169169 E
170170 }
171171 else ""
172172 }
173173
174174
175175 func ae (af) = [StringEntry(j, af)]
176176
177177
178178 func ag (ah) = {
179179 let D = getBoolean(makeString([h, ah], a))
180180 if ($isInstanceOf(D, "Boolean"))
181181 then {
182182 let E = D
183183 E
184184 }
185185 else false
186186 }
187187
188188
189189 func ai (ah,G) = [BooleanEntry(makeString([h, ah], a), G)]
190190
191191
192192 func aj (ak) = {
193193 let D = getString(makeString([i, toBase58String(ak)], a))
194194 if ($isInstanceOf(D, "String"))
195195 then {
196196 let E = D
197197 parseBigIntValue(E)
198198 }
199199 else u
200200 }
201201
202202
203203 func al (ak,am) = [StringEntry(makeString([i, toBase58String(ak)], a), toString(am))]
204204
205205
206206 func an (ao) = if ((ao != this))
207207 then throw("_onlyThisContract: revert")
208208 else true
209209
210210
211211 func ap () = if ((R() == Address(base58'')))
212212 then throw("_whenMultisigSet: revert")
213213 else true
214214
215215
216216 func aq () = if (O())
217217 then throw("_whenNotInitialized: revert")
218218 else true
219219
220220
221221 func ar () = if (!(O()))
222222 then throw("_whenInitialized: revert")
223223 else true
224224
225225
226226 func as (at,C) = if ((U() != at))
227227 then throw(C)
228228 else true
229229
230230
231231 func au (av,aw,C) = if (if ((av != n))
232232 then (av != o)
233233 else false)
234234 then throw(C)
235235 else if ((aw != p))
236236 then throw(C)
237237 else true
238238
239239
240240 func ax (ah,C) = if (!(ag(ah)))
241241 then throw(C)
242242 else true
243243
244244
245245 func ay (az,C) = if (if ((az != q))
246246 then (az != r)
247247 else false)
248248 then throw(C)
249249 else true
250250
251251
252252 func aA (aB,aC,aD,aE,C) = {
253253 let aF = if ((aE == o))
254254 then true
255255 else if ((aD == q))
256256 then (aC >= aB)
257257 else if ((aD == r))
258258 then (aB >= aC)
259259 else false
260260 if (!(aF))
261261 then throw(C)
262262 else true
263263 }
264264
265265
266266 func aG (aH,aI,C) = if ((aI == s))
267267 then if ((size(aH) != 64))
268268 then throw(C)
269269 else true
270270 else if ((aI == t))
271271 then if ((size(aH) != 65))
272272 then throw(C)
273273 else true
274274 else throw((C + ": inv alg"))
275275
276276
277277 func aJ (aK,aI,C) = if ((aI == s))
278278 then if ((size(aK) != 32))
279279 then throw(C)
280280 else true
281281 else if ((aI == t))
282282 then if ((size(aK) != 20))
283283 then throw(C)
284284 else true
285285 else throw((C + ": inv alg"))
286286
287287
288288 func aL (aK,aI) = if ((aI == s))
289289 then toString(addressFromPublicKey(aK))
290290 else if ((aI == t))
291291 then ("0x" + toBase16String(aK))
292292 else throw("_convertWeb3IdToAddress: revert")
293293
294294
295295 func aM (ak,aH,aK,aI,C) = {
296296 let aF = if ((aI == s))
297297 then {
298298 let aN = (y + toBytes(toBase58String(ak)))
299299 sigVerify(aN, aH, aK)
300300 }
301301 else if ((aI == t))
302302 then {
303303 let aO = keccak256_16Kb((z + ak))
304304 (takeRight(keccak256_16Kb(ecrecover(aO, aH)), 20) == aK)
305305 }
306306 else throw((C + ": inv alg"))
307307 if (!(aF))
308308 then throw(C)
309309 else true
310310 }
311311
312312
313-func aP (am,aQ,C) = if ((aQ > fraction(am, x, w, DOWN)))
313+func aP (am,aQ,C) = if ((aQ > fraction(am, x, w, CEILING)))
314314 then throw(C)
315315 else true
316316
317317
318318 func aR (aS,C) = {
319319 let aT = split(aS, a)
320320 let aU = valueOrErrorMessage(parseInt(aT[0]), (C + ": inv type"))
321321 let aV = valueOrErrorMessage(parseInt(aT[1]), (C + ": inv version"))
322322 let aW = aT[2]
323323 let aX = valueOrErrorMessage(parseInt(aT[3]), (C + ": inv side"))
324324 let aY = valueOrErrorMessage(parseInt(aT[4]), (C + ": inv ts"))
325325 let aZ = fromBase58String(aT[5])
326326 let ba = valueOrErrorMessage(parseInt(aT[6]), (C + ": inv alg"))
327327 let bb = fromBase58String(aT[7])
328328 let bc = if (if ((aU == n))
329329 then (aV == p)
330330 else false)
331331 then {
332332 let bd = valueOrErrorMessage(parseBigInt(aT[8]), (C + ": inv price"))
333333 let be = valueOrErrorMessage(parseBigInt(aT[9]), (C + ": inv amount"))
334334 let bf = (toBytes(bd) + toBytes(be))
335335 $Tuple4(bd, be, u, bf)
336336 }
337337 else if (if ((aU == o))
338338 then (aV == p)
339339 else false)
340340 then {
341341 let be = valueOrErrorMessage(parseBigInt(aT[8]), (C + ": inv amount"))
342342 let bg = if ((valueOrErrorMessage(parseBigInt(aT[9]), (C + ": inv isBaseAmount")) == u))
343343 then false
344344 else true
345345 if (bg)
346346 then $Tuple4(u, be, u, (toBytes(be) + toBytes(v)))
347347 else $Tuple4(u, u, be, (toBytes(be) + toBytes(u)))
348348 }
349349 else throw((C + ": inv type & version"))
350350 let bd = bc._1
351351 let bh = bc._2
352352 let bi = bc._3
353353 let bf = bc._4
354354 let bj = ((((((((toBytes(aU) + toBytes(aV)) + toBytes(size(aW))) + toBytes(aW)) + toBytes(aX)) + toBytes(aY)) + aZ) + toBytes(ba)) + bf)
355355 let bk = keccak256_32Kb(bj)
356356 let bl = if (if (if (if (if (if (if (au(aU, aV, (C + ": inv order type")))
357357 then ax(aW, (C + ": inv order symbol"))
358358 else false)
359359 then ay(aX, (C + ": inv order side"))
360360 else false)
361361 then aJ(aZ, ba, (C + ": inv order web3Id"))
362362 else false)
363363 then aG(bb, ba, (C + ": inv sig format"))
364364 else false)
365365 then F(bd, u, (C + ": neg price"))
366366 else false)
367367 then F(bh, u, (C + ": neg base amount"))
368368 else false)
369369 then F(bi, u, (C + ": neg quote amount"))
370370 else false
371371 if ((bl == bl))
372372 then $Tuple10(aU, aW, aX, bd, bh, bi, bk, aZ, ba, bb)
373373 else throw("Strict value is not equal to itself.")
374374 }
375375
376376
377377 @Callable(bm)
378378 func init (W,Z,ac) = {
379379 let bl = if (if (if (if (if (an(bm.caller))
380380 then aq()
381381 else false)
382382 then ap()
383383 else false)
384384 then A(W, "init: invalid sequencer")
385385 else false)
386386 then A(Z, "init: invalid accountStorage")
387387 else false)
388388 then M(ac, "init: invalid feeRecipient")
389389 else false
390390 if ((bl == bl))
391391 then $Tuple2((((P(true) ++ V(addressFromStringValue(W))) ++ Y(addressFromStringValue(Z))) ++ ab(ac)), unit)
392392 else throw("Strict value is not equal to itself.")
393393 }
394394
395395
396396
397397 @Callable(bm)
398398 func trade (bn,bo,bp,bq) = {
399399 let br = aR(bn, "trade: invalid maker order")
400400 let bs = br._1
401401 let bt = br._2
402402 let bu = br._3
403403 let bv = br._4
404404 let bw = br._5
405405 let bx = br._6
406406 let by = br._7
407407 let bz = br._8
408408 let bA = br._9
409409 let bB = br._10
410410 let bC = aR(bo, "trade: invalid taker order")
411411 let bD = bC._1
412412 let bE = bC._2
413413 let bF = bC._3
414414 let bG = bC._4
415415 let bH = bC._5
416416 let bI = bC._6
417417 let bJ = bC._7
418418 let bK = bC._8
419419 let bL = bC._9
420420 let bM = bC._10
421421 let bN = valueOrErrorMessage(parseBigInt(bp), "trade: baseFee not int")
422422 let bO = valueOrErrorMessage(parseBigInt(bq), "trade: quoteFee not int")
423423 let bP = bv
424424 let bQ = aj(by)
425425 let bR = (bw - bQ)
426426 let bS = aj(bJ)
427427 let bT = if ((bH == u))
428428 then fraction((bI - bS), w, bP, DOWN)
429429 else (bH - bS)
430430 let bU = min([bR, bT])
431431 let bV = fraction(bU, bP, w, DOWN)
432432 let bl = if (if (if (if (if (if (if (if (if (as(bm.caller, "trade: invalid sequencer"))
433433 then F(bU, u, "trade: neg trade amount")
434434 else false)
435435 then I(bs, n, "trade: maker is not limit")
436436 else false)
437437 then N(bt, bE, "trade: symbol mismatch")
438438 else false)
439439 then L(bu, bF, "trade: side mismatch")
440440 else false)
441441 then aM(by, bB, bz, bA, "trade: invalid maker sig")
442442 else false)
443443 then aM(bJ, bM, bK, bL, "trade: invalid taker sig")
444444 else false)
445445 then aP(bU, bN, "trade: base fee too much")
446446 else false)
447447 then aP(bV, bO, "trade: quote fee too much")
448448 else false)
449449 then aA(bv, bG, bF, bD, "trade: prices mismatch")
450450 else false
451451 if ((bl == bl))
452452 then {
453453 let bW = aL(bz, bA)
454454 let bX = aL(bK, bL)
455455 let bY = if ((bu == q))
456456 then $Tuple2(bW, bX)
457457 else $Tuple2(bX, bW)
458458 let bZ = bY._1
459459 let ca = bY._2
460460 let cb = split(bt, "-")
461461 let cc = cb[0]
462462 let cd = cb[1]
463463 let ce = aa()
464464 let cf = invoke(X(), k, [m, cc, ca, bZ, toString(bU), toString(bN), ce], nil)
465465 if ((cf == cf))
466466 then {
467467 let cg = invoke(X(), k, [m, cd, bZ, ca, toString(bV), toString(bO), ce], nil)
468468 if ((cg == cg))
469469 then {
470470 let ch = (bQ + bU)
471471 let ci = if ((bH == u))
472472 then (bS + bV)
473473 else (bS + bU)
474474 $Tuple2((al(by, ch) ++ al(bJ, ci)), unit)
475475 }
476476 else throw("Strict value is not equal to itself.")
477477 }
478478 else throw("Strict value is not equal to itself.")
479479 }
480480 else throw("Strict value is not equal to itself.")
481481 }
482482
483483
484484
485485 @Callable(bm)
486486 func claimReward (cj,ck,am) = {
487487 let be = valueOrErrorMessage(parseBigInt(am), "claimReward: amount not int")
488488 let bl = if (if (if (as(bm.caller, "claimReward: invalid sequencer"))
489489 then M(cj, "claimReward: invalid user")
490490 else false)
491491 then M(ck, "claimReward: invalid currency")
492492 else false)
493493 then F(be, u, "claimReward: neg amount")
494494 else false
495495 if ((bl == bl))
496496 then {
497497 let cf = invoke(X(), l, [ad(), cj, ck, am], nil)
498498 if ((cf == cf))
499499 then $Tuple2(nil, unit)
500500 else throw("Strict value is not equal to itself.")
501501 }
502502 else throw("Strict value is not equal to itself.")
503503 }
504504
505505
506506
507507 @Callable(bm)
508508 func updateSymbol (ah,cl) = {
509509 let bl = if (an(bm.caller))
510510 then M(ah, "updateSymbol: invalid symbol")
511511 else false
512512 if ((bl == bl))
513513 then $Tuple2(ai(ah, cl), unit)
514514 else throw("Strict value is not equal to itself.")
515515 }
516516
517517
518518
519519 @Callable(bm)
520520 func updateFeeRecipient (ac) = {
521521 let bl = if (if (an(bm.caller))
522522 then ar()
523523 else false)
524524 then M(ac, "updateFeeRecipient: invalid feeRecipient")
525525 else false
526526 if ((bl == bl))
527527 then $Tuple2(ab(ac), unit)
528528 else throw("Strict value is not equal to itself.")
529529 }
530530
531531
532532
533533 @Callable(bm)
534534 func updateRewardDistributor (cm) = {
535535 let bl = if (if (an(bm.caller))
536536 then ar()
537537 else false)
538538 then M(cm, "updateRewardDistributor: invalid rewardDistributor")
539539 else false
540540 if ((bl == bl))
541541 then $Tuple2(ae(cm), unit)
542542 else throw("Strict value is not equal to itself.")
543543 }
544544
545545
546546
547547 @Callable(bm)
548548 func setMultisig (T) = {
549549 let bl = if (an(bm.caller))
550550 then A(T, "setMultisig: invalid multisig")
551551 else false
552552 if ((bl == bl))
553553 then $Tuple2(S(addressFromStringValue(T)), unit)
554554 else throw("Strict value is not equal to itself.")
555555 }
556556
557557
558558 @Verifier(cn)
559559 func co () = {
560560 let D = getString(b)
561561 if ($isInstanceOf(D, "String"))
562562 then {
563563 let cp = D
564564 valueOrElse(getBoolean(addressFromStringValue(cp), makeString([c, toString(this), toBase58String(cn.id)], a)), false)
565565 }
566566 else sigVerify(cn.bodyBytes, cn.proofs[0], cn.senderPublicKey)
567567 }
568568

github/deemru/w8io/169f3d6 
57.29 ms