tx · 4NPV2tWcrFhto2a4JhLT9orRxMTheEcVnB1ujBwxMx4X

3MuB15FfT7QUriD1R24GFbMPHz82NQ1Bm8X:  -0.01400000 Waves

2023.02.22 21:11 [2461208] smart account 3MuB15FfT7QUriD1R24GFbMPHz82NQ1Bm8X > SELF 0.00000000 Waves

{ "type": 13, "id": "4NPV2tWcrFhto2a4JhLT9orRxMTheEcVnB1ujBwxMx4X", "fee": 1400000, "feeAssetId": null, "timestamp": 1677089321591, "version": 2, "chainId": 84, "sender": "3MuB15FfT7QUriD1R24GFbMPHz82NQ1Bm8X", "senderPublicKey": "7qxgAGEdFEuaxkfo1V6qHhBmhHqHkYmiow76yMaFuQBx", "proofs": [ "G6unF5wPY9Luj2D2RpgXyXTBcoWKrvRodeexRj97SDysDTBwmNyC4u5oWRm2ffZuP7kCknRNewKjqYgXFrsSmMb" ], "script": "base64:BgIrCAISBQoDCAEIEgsKCQgIGAEBAQgICBIFCgMICAgSABIAEgMKAQgSAwoBCCIACVNFUEFSQVRPUgICX18ACEtFWV9JTklUAgRJTklUAAxLRVlfTVVMVElTSUcCCE1VTFRJU0lHAApLRVlfU1RBVFVTAgZTVEFUVVMACktFWV9QQVVTRUQCBlBBVVNFRAAKS0VZX1BBVVNFUgIGUEFVU0VSAAxLRVlfQ0hBSU5fSUQCCENIQUlOX0lEABVLRVlfU0lHTkVSX1BVQkxJQ19LRVkCEVNJR05FUl9QVUJMSUNfS0VZAA1LRVlfREFUQV9IQVNIAglEQVRBX0hBU0gAB01BWF9JTlQA//////////9/ARBfdmFsaWRhdGVBZGRyZXNzAghhZGRyZXNzXwRlcnJfBAckbWF0Y2gwCQCmCAEFCGFkZHJlc3NfAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWEFByRtYXRjaDAGCQACAQUEZXJyXwESX3ZhbGlkYXRlUHVibGljS2V5AgpwdWJsaWNLZXlfBGVycl8DCQECIT0CCQDIAQEJANkEAQUKcHVibGljS2V5XwAgCQACAQUEZXJyXwYBDF92YWxpZGF0ZUludAQEdmFsXw5sb3dlckJvdW5kYXJ5Xw51cHBlckJvdW5kYXJ5XwRlcnJfAwMJAGYCBQ5sb3dlckJvdW5kYXJ5XwUEdmFsXwYJAGYCBQR2YWxfBQ51cHBlckJvdW5kYXJ5XwkAAgEFBGVycl8GAQlfbG9hZEluaXQABAckbWF0Y2gwCQCgCAEFCEtFWV9JTklUAwkAAQIFByRtYXRjaDACB0Jvb2xlYW4EAWEFByRtYXRjaDAFAWEHAQlfc2F2ZUluaXQBB2lzSW5pdF8JAMwIAgkBDEJvb2xlYW5FbnRyeQIFCEtFWV9JTklUBQdpc0luaXRfBQNuaWwBCl9sb2FkUGF1c2UABAckbWF0Y2gwCQCgCAEFCktFWV9QQVVTRUQDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYQUHJG1hdGNoMAUBYQcBCl9zYXZlUGF1c2UBCWlzUGF1c2VkXwkAzAgCCQEMQm9vbGVhbkVudHJ5AgUKS0VZX1BBVVNFRAUJaXNQYXVzZWRfBQNuaWwBC19sb2FkUGF1c2VyAAQHJG1hdGNoMAkAoggBBQpLRVlfUEFVU0VSAwkAAQIFByRtYXRjaDACBlN0cmluZwQBYQUHJG1hdGNoMAkBEUBleHRyTmF0aXZlKDEwNjIpAQUBYQkBB0FkZHJlc3MBAQABC19zYXZlUGF1c2VyAQdwYXVzZXJfCQDMCAIJAQtTdHJpbmdFbnRyeQIFCktFWV9QQVVTRVIJAKUIAQUHcGF1c2VyXwUDbmlsAQ1fbG9hZE11bHRpc2lnAAQHJG1hdGNoMAkAoggBBQxLRVlfTVVMVElTSUcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAENX3NhdmVNdWx0aXNpZwEJbXVsdGlzaWdfCQDMCAIJAQtTdHJpbmdFbnRyeQIFDEtFWV9NVUxUSVNJRwkApQgBBQltdWx0aXNpZ18FA25pbAEMX2xvYWRDaGFpbklkAAQHJG1hdGNoMAkAnwgBBQxLRVlfQ0hBSU5fSUQDCQABAgUHJG1hdGNoMAIDSW50BAFhBQckbWF0Y2gwBQFhAAABDF9zYXZlQ2hhaW5JZAEIY2hhaW5JZF8JAMwIAgkBDEludGVnZXJFbnRyeQIFDEtFWV9DSEFJTl9JRAUIY2hhaW5JZF8FA25pbAEUX2xvYWRTaWduZXJQdWJsaWNLZXkABAckbWF0Y2gwCQCiCAEFFUtFWV9TSUdORVJfUFVCTElDX0tFWQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWEFByRtYXRjaDAJANkEAQUBYQEAARRfc2F2ZVNpZ25lclB1YmxpY0tleQEQc2lnbmVyUHVibGljS2V5XwkAzAgCCQELU3RyaW5nRW50cnkCBRVLRVlfU0lHTkVSX1BVQkxJQ19LRVkJANgEAQUQc2lnbmVyUHVibGljS2V5XwUDbmlsAQ1fbG9hZERhdGFIYXNoAQlkYXRhSGFzaF8EByRtYXRjaDAJAJ8IAQkAuQkCCQDMCAIFDUtFWV9EQVRBX0hBU0gJAMwIAgkA2AQBBQlkYXRhSGFzaF8FA25pbAUJU0VQQVJBVE9SAwkAAQIFByRtYXRjaDACA0ludAQBYQUHJG1hdGNoMAUBYQAAAQ1fc2F2ZURhdGFIYXNoAglkYXRhSGFzaF8HaGVpZ2h0XwkAzAgCCQEMSW50ZWdlckVudHJ5AgkAuQkCCQDMCAIFDUtFWV9EQVRBX0hBU0gJAMwIAgkA2AQBBQlkYXRhSGFzaF8FA25pbAUJU0VQQVJBVE9SBQdoZWlnaHRfBQNuaWwBEV9vbmx5VGhpc0NvbnRyYWN0AQdjYWxsZXJfAwkBAiE9AgUHY2FsbGVyXwUEdGhpcwkAAgECGV9vbmx5VGhpc0NvbnRyYWN0OiByZXZlcnQGARBfd2hlbk11bHRpc2lnU2V0AAMJAAACCQENX2xvYWRNdWx0aXNpZwAJAQdBZGRyZXNzAQEACQACAQIYX3doZW5NdWx0aXNpZ1NldDogcmV2ZXJ0BgETX3doZW5Ob3RJbml0aWFsaXplZAADCQEJX2xvYWRJbml0AAkAAgECG193aGVuTm90SW5pdGlhbGl6ZWQ6IHJldmVydAYBEF93aGVuSW5pdGlhbGl6ZWQAAwkBASEBCQEJX2xvYWRJbml0AAkAAgECGF93aGVuSW5pdGlhbGl6ZWQ6IHJldmVydAYBDl93aGVuTm90UGF1c2VkAAMJAQpfbG9hZFBhdXNlAAkAAgECFl93aGVuTm90UGF1c2VkOiByZXZlcnQGAQtfd2hlblBhdXNlZAADCQEBIQEJAQpfbG9hZFBhdXNlAAkAAgECE193aGVuUGF1c2VkOiByZXZlcnQGAQtfb25seVBhdXNlcgEHY2FsbGVyXwMJAQIhPQIFB2NhbGxlcl8JAQtfbG9hZFBhdXNlcgAJAAIBAhNfb25seVBhdXNlcjogcmV2ZXJ0BgcBaQEEaW5pdAMHcGF1c2VyXwhjaGFpbklkXxBzaWduZXJQdWJsaWNLZXlfBANlcnIDAwMDAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQETX3doZW5Ob3RJbml0aWFsaXplZAAHCQEQX3doZW5NdWx0aXNpZ1NldAAHCQEQX3ZhbGlkYXRlQWRkcmVzcwIFB3BhdXNlcl8CFGluaXQ6IGludmFsaWQgcGF1c2VyBwkBDF92YWxpZGF0ZUludAQFCGNoYWluSWRfAAAFB01BWF9JTlQCFmluaXQ6IGludmFsaWQgY2hhaW4gaWQHCQESX3ZhbGlkYXRlUHVibGljS2V5AgUQc2lnbmVyUHVibGljS2V5XwIfaW5pdDogaW52YWxpZCBzaWduZXIgcHVibGljIGtleQcDCQAAAgUDZXJyBQNlcnIJAJQKAgkAzggCCQDOCAIJAM4IAgkBCV9zYXZlSW5pdAEGCQELX3NhdmVQYXVzZXIBCQERQGV4dHJOYXRpdmUoMTA2MikBBQdwYXVzZXJfCQEMX3NhdmVDaGFpbklkAQUIY2hhaW5JZF8JARRfc2F2ZVNpZ25lclB1YmxpY0tleQEJANkEAQUQc2lnbmVyUHVibGljS2V5XwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQdleGVjdXRlCQljb250cmFjdF8NZnVuY3Rpb25OYW1lXw1mdW5jdGlvbkFyZ3NfDmNhbGxlckNoYWluSWRfEWV4ZWN1dGlvbkNoYWluSWRfBm5vbmNlXw9jYWxsZXJDb250cmFjdF8HdHhIYXNoXwpzaWduYXR1cmVfBANlcnIDAwMJARBfd2hlbkluaXRpYWxpemVkAAkBDl93aGVuTm90UGF1c2VkAAcJARBfdmFsaWRhdGVBZGRyZXNzAgUJY29udHJhY3RfAhlleGVjdXRlOiBpbnZhbGlkIGNvbnRyYWN0BwMJAQIhPQIJAQxfbG9hZENoYWluSWQABRFleGVjdXRpb25DaGFpbklkXwkAAgECI2V4ZWN1dGU6IGludmFsaWQgZXhlY3V0aW9uIGNoYWluIGlkBgcDCQAAAgUDZXJyBQNlcnIKAQhmb2xkRnVuYwIDYWNjBGVsZW0JAMsBAgUDYWNjCQCbAwEFBGVsZW0ECWFyZ3NCeXRlcwoAAiRsBQ1mdW5jdGlvbkFyZ3NfCgACJHMJAJADAQUCJGwKAAUkYWNjMAEACgEFJGYwXzECAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAQhmb2xkRnVuYwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMjIJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgQEZGF0YQkAywECCQDLAQIJAMsBAgkAywECCQDLAQIJAMsBAgkAywECCQCaAwEFDmNhbGxlckNoYWluSWRfCQCaAwEFEWV4ZWN1dGlvbkNoYWluSWRfCQCaAwEFBm5vbmNlXwkA2QQBBQ9jYWxsZXJDb250cmFjdF8JAJsDAQUHdHhIYXNoXwkA2QQBBQljb250cmFjdF8JAJsDAQUNZnVuY3Rpb25OYW1lXwUJYXJnc0J5dGVzBAhkYXRhSGFzaAkAjRUBBQRkYXRhBARlcnIxAwkBASEBCQD0AwMFCGRhdGFIYXNoCQDZBAEFCnNpZ25hdHVyZV8JARRfbG9hZFNpZ25lclB1YmxpY0tleQAJAAIBAhpleGVjdXRlOiBpbnZhbGlkIHNpZ25hdHVyZQMJAGYCCQENX2xvYWREYXRhSGFzaAEFCGRhdGFIYXNoAAAJAAIBAhdleGVjdXRlOiBkdXBsaWNhdGUgZGF0YQUEdW5pdAMJAAACBQRlcnIxBQRlcnIxBAppbnZvY2F0aW9uCQD8BwQJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCWNvbnRyYWN0XwUNZnVuY3Rpb25OYW1lXwkAzAgCBQ9jYWxsZXJDb250cmFjdF8FDWZ1bmN0aW9uQXJnc18FA25pbAMJAAACBQppbnZvY2F0aW9uBQppbnZvY2F0aW9uCQCUCgIJAQ1fc2F2ZURhdGFIYXNoAgUIZGF0YUhhc2gFBmhlaWdodAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQx1cGRhdGVTaWduZXIDE25ld1NpZ25lclB1YmxpY0tleV8Nb2xkU2lnbmF0dXJlXw1uZXdTaWduYXR1cmVfBANlcnIDAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEQX3doZW5Jbml0aWFsaXplZAAHCQESX3ZhbGlkYXRlUHVibGljS2V5AgUTbmV3U2lnbmVyUHVibGljS2V5XwIndXBkYXRlU2lnbmVyOiBpbnZhbGlkIHNpZ25lciBwdWJsaWMga2V5BwMJAAACBQNlcnIFA2VycgQSb2xkU2lnbmVyUHVibGljS2V5CQEUX2xvYWRTaWduZXJQdWJsaWNLZXkABAdvbGREYXRhCQDLAQIJAMsBAgkAmwMBAiU8PDxQVUJMSUMtLUtFWS0tTUlHUkFUSU9OLS1BTExPV0VEPj4+BRJvbGRTaWduZXJQdWJsaWNLZXkJANkEAQUTbmV3U2lnbmVyUHVibGljS2V5XwQSbmV3U2lnbmVyUHVibGljS2V5CQDZBAEFE25ld1NpZ25lclB1YmxpY0tleV8EB25ld0RhdGEJAMsBAgkAywECCQCbAwECJzw8PFBVQkxJQy0tS0VZLS1NSUdSQVRJT04tLUNPTkZJUk1FRD4+PgUSb2xkU2lnbmVyUHVibGljS2V5CQCbAwEFE25ld1NpZ25lclB1YmxpY0tleV8EBGVycjEDCQEBIQEJAMQTAwUHb2xkRGF0YQkA2QQBBQ1vbGRTaWduYXR1cmVfBRJvbGRTaWduZXJQdWJsaWNLZXkJAAIBAiN1cGRhdGVTaWduZXI6IGludmFsaWQgb2xkIHNpZ25hdHVyZQMJAQEhAQkAxBMDBQduZXdEYXRhCQDZBAEFDW5ld1NpZ25hdHVyZV8FEm5ld1NpZ25lclB1YmxpY0tleQkAAgECI3VwZGF0ZVNpZ25lcjogaW52YWxpZCBuZXcgc2lnbmF0dXJlBQR1bml0AwkAAAIFBGVycjEFBGVycjEJAJQKAgkBFF9zYXZlU2lnbmVyUHVibGljS2V5AQUSbmV3U2lnbmVyUHVibGljS2V5BQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBBXBhdXNlAAQDZXJyAwMJAQtfb25seVBhdXNlcgEIBQFpBmNhbGxlcgkBEF93aGVuSW5pdGlhbGl6ZWQABwkBDl93aGVuTm90UGF1c2VkAAcDCQAAAgUDZXJyBQNlcnIJAJQKAgkBCl9zYXZlUGF1c2UBBgUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQd1bnBhdXNlAAQDZXJyAwMJAQtfb25seVBhdXNlcgEIBQFpBmNhbGxlcgkBEF93aGVuSW5pdGlhbGl6ZWQABwkBC193aGVuUGF1c2VkAAcDCQAAAgUDZXJyBQNlcnIJAJQKAgkBCl9zYXZlUGF1c2UBBwUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQx1cGRhdGVQYXVzZXIBB3BhdXNlcl8EA2VycgMDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfd2hlbkluaXRpYWxpemVkAAcJARBfdmFsaWRhdGVBZGRyZXNzAgUHcGF1c2VyXwIUaW5pdDogaW52YWxpZCBwYXVzZXIHAwkAAAIFA2VycgUDZXJyCQCUCgIJAQtfc2F2ZVBhdXNlcgEJARFAZXh0ck5hdGl2ZSgxMDYyKQEFB3BhdXNlcl8FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQELc2V0TXVsdGlzaWcBCW11bHRpc2lnXwQDZXJyAwkBEV9vbmx5VGhpc0NvbnRyYWN0AQgFAWkGY2FsbGVyCQEQX3ZhbGlkYXRlQWRkcmVzcwIFCW11bHRpc2lnXwIlc2V0TXVsdGlzaWc6IGludmFsaWQgbXVsdGlzaWcgYWRkcmVzcwcDCQAAAgUDZXJyBQNlcnIJAJQKAgkBDV9zYXZlTXVsdGlzaWcBCQERQGV4dHJOYXRpdmUoMTA2MikBBQltdWx0aXNpZ18FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABAckbWF0Y2gwCQCiCAEFDEtFWV9NVUxUSVNJRwMJAAECBQckbWF0Y2gwAgZTdHJpbmcECG11bHRpc2lnBQckbWF0Y2gwCQELdmFsdWVPckVsc2UCCQCbCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCG11bHRpc2lnCQC5CQIJAMwIAgUKS0VZX1NUQVRVUwkAzAgCCQClCAEFBHRoaXMJAMwIAgkA2AQBCAUCdHgCaWQFA25pbAUJU0VQQVJBVE9SBwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleenZc5A=", "height": 2461208, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8dE7vpNc6D9y8oMor4Lvoi1rVdLn1r92kwVeXofGQ35x Next: 9Ujssntm6VUwkU6M9BvAmKGChWaGMeuwzP5uKaBzJzci Diff:
OldNewDifferences
228228 }
229229 let av = (((((((toBytes(ae) + toBytes(af)) + toBytes(ag)) + fromBase58String(ah)) + toBytes(ai)) + fromBase58String(ab)) + toBytes(ac)) + an)
230230 let aw = keccak256_32Kb(av)
231- let ax = if ((ecrecover(aw, fromBase58String(aj)) != K()))
231+ let ax = if (!(sigVerify(aw, fromBase58String(aj), K())))
232232 then throw("execute: invalid signature")
233233 else if ((N(aw) > 0))
234234 then throw("execute: duplicate data")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = "INIT"
77
88 let c = "MULTISIG"
99
1010 let d = "STATUS"
1111
1212 let e = "PAUSED"
1313
1414 let f = "PAUSER"
1515
1616 let g = "CHAIN_ID"
1717
1818 let h = "SIGNER_PUBLIC_KEY"
1919
2020 let i = "DATA_HASH"
2121
2222 let j = 9223372036854775807
2323
2424 func k (l,m) = {
2525 let n = addressFromString(l)
2626 if ($isInstanceOf(n, "Address"))
2727 then {
2828 let o = n
2929 true
3030 }
3131 else throw(m)
3232 }
3333
3434
3535 func p (q,m) = if ((size(fromBase58String(q)) != 32))
3636 then throw(m)
3737 else true
3838
3939
4040 func r (s,t,u,m) = if (if ((t > s))
4141 then true
4242 else (s > u))
4343 then throw(m)
4444 else true
4545
4646
4747 func v () = {
4848 let n = getBoolean(b)
4949 if ($isInstanceOf(n, "Boolean"))
5050 then {
5151 let o = n
5252 o
5353 }
5454 else false
5555 }
5656
5757
5858 func w (x) = [BooleanEntry(b, x)]
5959
6060
6161 func y () = {
6262 let n = getBoolean(e)
6363 if ($isInstanceOf(n, "Boolean"))
6464 then {
6565 let o = n
6666 o
6767 }
6868 else false
6969 }
7070
7171
7272 func z (A) = [BooleanEntry(e, A)]
7373
7474
7575 func B () = {
7676 let n = getString(f)
7777 if ($isInstanceOf(n, "String"))
7878 then {
7979 let o = n
8080 addressFromStringValue(o)
8181 }
8282 else Address(base58'')
8383 }
8484
8585
8686 func C (D) = [StringEntry(f, toString(D))]
8787
8888
8989 func E () = {
9090 let n = getString(c)
9191 if ($isInstanceOf(n, "String"))
9292 then {
9393 let o = n
9494 addressFromStringValue(o)
9595 }
9696 else Address(base58'')
9797 }
9898
9999
100100 func F (G) = [StringEntry(c, toString(G))]
101101
102102
103103 func H () = {
104104 let n = getInteger(g)
105105 if ($isInstanceOf(n, "Int"))
106106 then {
107107 let o = n
108108 o
109109 }
110110 else 0
111111 }
112112
113113
114114 func I (J) = [IntegerEntry(g, J)]
115115
116116
117117 func K () = {
118118 let n = getString(h)
119119 if ($isInstanceOf(n, "String"))
120120 then {
121121 let o = n
122122 fromBase58String(o)
123123 }
124124 else base58''
125125 }
126126
127127
128128 func L (M) = [StringEntry(h, toBase58String(M))]
129129
130130
131131 func N (O) = {
132132 let n = getInteger(makeString([i, toBase58String(O)], a))
133133 if ($isInstanceOf(n, "Int"))
134134 then {
135135 let o = n
136136 o
137137 }
138138 else 0
139139 }
140140
141141
142142 func P (O,Q) = [IntegerEntry(makeString([i, toBase58String(O)], a), Q)]
143143
144144
145145 func R (S) = if ((S != this))
146146 then throw("_onlyThisContract: revert")
147147 else true
148148
149149
150150 func T () = if ((E() == Address(base58'')))
151151 then throw("_whenMultisigSet: revert")
152152 else true
153153
154154
155155 func U () = if (v())
156156 then throw("_whenNotInitialized: revert")
157157 else true
158158
159159
160160 func V () = if (!(v()))
161161 then throw("_whenInitialized: revert")
162162 else true
163163
164164
165165 func W () = if (y())
166166 then throw("_whenNotPaused: revert")
167167 else true
168168
169169
170170 func X () = if (!(y()))
171171 then throw("_whenPaused: revert")
172172 else true
173173
174174
175175 func Y (S) = if ((S != B()))
176176 then throw("_onlyPauser: revert")
177177 else true
178178
179179
180180 @Callable(Z)
181181 func init (D,J,M) = {
182182 let aa = if (if (if (if (if (R(Z.caller))
183183 then U()
184184 else false)
185185 then T()
186186 else false)
187187 then k(D, "init: invalid pauser")
188188 else false)
189189 then r(J, 0, j, "init: invalid chain id")
190190 else false)
191191 then p(M, "init: invalid signer public key")
192192 else false
193193 if ((aa == aa))
194194 then $Tuple2((((w(true) ++ C(addressFromStringValue(D))) ++ I(J)) ++ L(fromBase58String(M))), unit)
195195 else throw("Strict value is not equal to itself.")
196196 }
197197
198198
199199
200200 @Callable(Z)
201201 func execute (ab,ac,ad,ae,af,ag,ah,ai,aj) = {
202202 let aa = if (if (if (V())
203203 then W()
204204 else false)
205205 then k(ab, "execute: invalid contract")
206206 else false)
207207 then if ((H() != af))
208208 then throw("execute: invalid execution chain id")
209209 else true
210210 else false
211211 if ((aa == aa))
212212 then {
213213 func ak (al,am) = (al + toBytes(am))
214214
215215 let an = {
216216 let ao = ad
217217 let ap = size(ao)
218218 let aq = base58''
219219 func ar (as,at) = if ((at >= ap))
220220 then as
221221 else ak(as, ao[at])
222222
223223 func au (as,at) = if ((at >= ap))
224224 then as
225225 else throw("List size exceeds 22")
226226
227227 au(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(ar(aq, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22)
228228 }
229229 let av = (((((((toBytes(ae) + toBytes(af)) + toBytes(ag)) + fromBase58String(ah)) + toBytes(ai)) + fromBase58String(ab)) + toBytes(ac)) + an)
230230 let aw = keccak256_32Kb(av)
231- let ax = if ((ecrecover(aw, fromBase58String(aj)) != K()))
231+ let ax = if (!(sigVerify(aw, fromBase58String(aj), K())))
232232 then throw("execute: invalid signature")
233233 else if ((N(aw) > 0))
234234 then throw("execute: duplicate data")
235235 else unit
236236 if ((ax == ax))
237237 then {
238238 let ay = invoke(addressFromStringValue(ab), ac, ah :: ad, nil)
239239 if ((ay == ay))
240240 then $Tuple2(P(aw, height), unit)
241241 else throw("Strict value is not equal to itself.")
242242 }
243243 else throw("Strict value is not equal to itself.")
244244 }
245245 else throw("Strict value is not equal to itself.")
246246 }
247247
248248
249249
250250 @Callable(Z)
251251 func updateSigner (az,aA,aB) = {
252252 let aa = if (if (R(Z.caller))
253253 then V()
254254 else false)
255255 then p(az, "updateSigner: invalid signer public key")
256256 else false
257257 if ((aa == aa))
258258 then {
259259 let aC = K()
260260 let aD = ((toBytes("<<<PUBLIC--KEY--MIGRATION--ALLOWED>>>") + aC) + fromBase58String(az))
261261 let aE = fromBase58String(az)
262262 let aF = ((toBytes("<<<PUBLIC--KEY--MIGRATION--CONFIRMED>>>") + aC) + toBytes(az))
263263 let ax = if (!(sigVerify_8Kb(aD, fromBase58String(aA), aC)))
264264 then throw("updateSigner: invalid old signature")
265265 else if (!(sigVerify_8Kb(aF, fromBase58String(aB), aE)))
266266 then throw("updateSigner: invalid new signature")
267267 else unit
268268 if ((ax == ax))
269269 then $Tuple2(L(aE), unit)
270270 else throw("Strict value is not equal to itself.")
271271 }
272272 else throw("Strict value is not equal to itself.")
273273 }
274274
275275
276276
277277 @Callable(Z)
278278 func pause () = {
279279 let aa = if (if (Y(Z.caller))
280280 then V()
281281 else false)
282282 then W()
283283 else false
284284 if ((aa == aa))
285285 then $Tuple2(z(true), unit)
286286 else throw("Strict value is not equal to itself.")
287287 }
288288
289289
290290
291291 @Callable(Z)
292292 func unpause () = {
293293 let aa = if (if (Y(Z.caller))
294294 then V()
295295 else false)
296296 then X()
297297 else false
298298 if ((aa == aa))
299299 then $Tuple2(z(false), unit)
300300 else throw("Strict value is not equal to itself.")
301301 }
302302
303303
304304
305305 @Callable(Z)
306306 func updatePauser (D) = {
307307 let aa = if (if (R(Z.caller))
308308 then V()
309309 else false)
310310 then k(D, "init: invalid pauser")
311311 else false
312312 if ((aa == aa))
313313 then $Tuple2(C(addressFromStringValue(D)), unit)
314314 else throw("Strict value is not equal to itself.")
315315 }
316316
317317
318318
319319 @Callable(Z)
320320 func setMultisig (G) = {
321321 let aa = if (R(Z.caller))
322322 then k(G, "setMultisig: invalid multisig address")
323323 else false
324324 if ((aa == aa))
325325 then $Tuple2(F(addressFromStringValue(G)), unit)
326326 else throw("Strict value is not equal to itself.")
327327 }
328328
329329
330330 @Verifier(aG)
331331 func aH () = {
332332 let n = getString(c)
333333 if ($isInstanceOf(n, "String"))
334334 then {
335335 let aI = n
336336 valueOrElse(getBoolean(addressFromStringValue(aI), makeString([d, toString(this), toBase58String(aG.id)], a)), false)
337337 }
338338 else sigVerify(aG.bodyBytes, aG.proofs[0], aG.senderPublicKey)
339339 }
340340

github/deemru/w8io/873ac7e 
53.51 ms