tx · 998GTpcEfvuZn33A2s39oMv81gypA2XgXt7ygiBjT6M5

3MxFYk97QYdeHRMTu51rVyHqvFEVB4UtmBX:  -0.01700000 Waves

2022.09.14 19:01 [2228991] smart account 3MxFYk97QYdeHRMTu51rVyHqvFEVB4UtmBX > SELF 0.00000000 Waves

{ "type": 13, "id": "998GTpcEfvuZn33A2s39oMv81gypA2XgXt7ygiBjT6M5", "fee": 1700000, "feeAssetId": null, "timestamp": 1663171279302, "version": 2, "chainId": 84, "sender": "3MxFYk97QYdeHRMTu51rVyHqvFEVB4UtmBX", "senderPublicKey": "2panvMtE3s1p1oCdVqRGMuBYaZJV3AZ6zpdmZ6vHkDaL", "proofs": [ "ie2SyGb3ajJWB6c557LubGXbbQ63yCfbJfCiYecPTo6pcSPocNdLTLXVGMm93tGwaw3q5hv36A3GtqCntwe1PU4", "4MuXUvcEjKPmrrvBK3rEhakSPVQLF5fHpDGCL6HCY6v5rg79Rk7WZJp5vjKMfnBLnXD3r3Lczdju7T7Z6KaUYfsy" ], "script": "base64:BgISCAISABIDCgEBEgMKAQgSABIAIQAHa0FjdGl2ZQIGYWN0aXZlAAZrQ2F1c2UCDnNodXRkb3duX2NhdXNlABZrTGFzdFBvb2xUb2tlbkludGVyZXN0AhNfcG9vbF9sYXN0X2ludGVyZXN0ABFrVXNlckxhc3RJbnRlcmVzdAITX3VzZXJfbGFzdF9pbnRlcmVzdAATa1VzZXJDbGFpbUF2YWlsYWJsZQIYX3VzZXJfYXZhaWxhYmxlX3RvX2NsYWltABZrVXNlclNoYXJlVG9rZW5zTG9ja2VkAhRfc2hhcmVfdG9rZW5zX2xvY2tlZAASa1NoYXJlVG9rZW5zTG9ja2VkAhpfdG90YWxfc2hhcmVfdG9rZW5zX2xvY2tlZAALa09yYWNsZVBvb2wCBXBvb2xfAA1rUG9vbEFzc2V0SWRzAglhc3NldF9pZHMADWtBZG1pblB1YktleTECC2FkbWluX3B1Yl8xAA1rQWRtaW5QdWJLZXkyAgthZG1pbl9wdWJfMgANa0FkbWluUHViS2V5MwILYWRtaW5fcHViXzMADGtGYXJtaW5nQWRkcgIPZmFybWluZ19hZGRyZXNzAApzY2FsZVZhbHVlAIDC1y8ABm9yYWNsZQkBB0FkZHJlc3MBARoBVOlFqh6QLzqu8boO5i6akl8amITh82KzCAETZ2V0QmFzZTU4RnJvbU9yYWNsZQEDa2V5BAckbWF0Y2gwCQCdCAIFBm9yYWNsZQUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQGc3RyaW5nBQckbWF0Y2gwCQDZBAEFBnN0cmluZwQHbm90aGluZwUHJG1hdGNoMAkAAgEJAKwCAgUDa2V5AghpcyBlbXB0eQAMYWRtaW5QdWJLZXkxCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTEADGFkbWluUHViS2V5MgkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkyAAxhZG1pblB1YktleTMJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MwALZmFybWluZ0FkZHIJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQxrRmFybWluZ0FkZHIABmFjdGl2ZQkBC3ZhbHVlT3JFbHNlAgkAmwgCBQR0aGlzBQdrQWN0aXZlBgEIaXNBY3RpdmUAAwUGYWN0aXZlBQR1bml0CQACAQIfREFwcCBpcyBpbmFjdGl2ZSBhdCB0aGlzIG1vbWVudAEKaXNQb29sQ2FsbAEGY2FsbGVyAwkBCWlzRGVmaW5lZAEJAJ0IAgUGb3JhY2xlCQCsAgIFC2tPcmFjbGVQb29sCQClCAEFBmNhbGxlcgUEdW5pdAkAAgECIE9ubHkgcG9vbCBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAQ1pc0Zhcm1pbmdDYWxsAQZjYWxsZXIDCQAAAgUGY2FsbGVyBQtmYXJtaW5nQWRkcgUEdW5pdAkAAgECI09ubHkgZmFybWluZyBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uAQdzdXNwZW5kAQVjYXVzZQkAzAgCCQEMQm9vbGVhbkVudHJ5AgUHa0FjdGl2ZQcJAMwIAgkBC1N0cmluZ0VudHJ5AgUGa0NhdXNlBQVjYXVzZQUDbmlsARhnZXRVc2VyU2hhcmVUb2tlbnNMb2NrZWQCBHBvb2wLdXNlckFkZHJlc3MJAQt2YWx1ZU9yRWxzZQIJAJoIAgULZmFybWluZ0FkZHIJAKwCAgkArAICCQCsAgIFBHBvb2wCAV8FC3VzZXJBZGRyZXNzBRZrVXNlclNoYXJlVG9rZW5zTG9ja2VkAAABGWdldFRvdGFsU2hhcmVUb2tlbnNMb2NrZWQBBHBvb2wJAQt2YWx1ZU9yRWxzZQIJAJoIAgULZmFybWluZ0FkZHIJAKwCAgUEcG9vbAUSa1NoYXJlVG9rZW5zTG9ja2VkAAABE2dldFVzZXJMYXN0SW50ZXJlc3QDBHVzZXIEcG9vbAdhc3NldElkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQR1c2VyAgFfBQRwb29sAgFfBQdhc3NldElkBRFrVXNlckxhc3RJbnRlcmVzdAAAARhnZXRQb29sVG9rZW5MYXN0SW50ZXJlc3QCBHBvb2wHYXNzZXRJZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQCsAgIJAKwCAgkArAICBQRwb29sAgFfBQdhc3NldElkBRZrTGFzdFBvb2xUb2tlbkludGVyZXN0AAABFWdldFVzZXJDbGFpbUF2YWlsYWJsZQMEdXNlcgRwb29sB2Fzc2V0SWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFBHVzZXICAV8FBHBvb2wCAV8FB2Fzc2V0SWQFE2tVc2VyQ2xhaW1BdmFpbGFibGUAAAENZ2V0U3RyQXNzZXRJZAEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJpZAUHJG1hdGNoMAkA2AQBBQJpZAMJAAECBQckbWF0Y2gwAgRVbml0BAV3YXZlcwUHJG1hdGNoMAIFV0FWRVMJAAIBAgtNYXRjaCBlcnJvcgEPY2FsY0NsYWltQW1vdW50AwRwb29sB2Fzc2V0SWQEdXNlcgQMbGFzdEludGVyZXN0CQEYZ2V0UG9vbFRva2VuTGFzdEludGVyZXN0AgUEcG9vbAUHYXNzZXRJZAQQdXNlckxhc3RJbnRlcmVzdAkBE2dldFVzZXJMYXN0SW50ZXJlc3QDBQR1c2VyBQRwb29sBQdhc3NldElkBBV1c2VyU2hhcmVUb2tlbnNMb2NrZWQJARhnZXRVc2VyU2hhcmVUb2tlbnNMb2NrZWQCBQRwb29sBQR1c2VyBBJ1c2VyQ2xhaW1BdmFpbGFibGUJARVnZXRVc2VyQ2xhaW1BdmFpbGFibGUDBQR1c2VyBQRwb29sBQdhc3NldElkBBVuZXdVc2VyQ2xhaW1BdmFpbGFibGUJAGsDBRV1c2VyU2hhcmVUb2tlbnNMb2NrZWQJAGUCBQxsYXN0SW50ZXJlc3QFEHVzZXJMYXN0SW50ZXJlc3QFCnNjYWxlVmFsdWUJAJQKAgkAZAIFEnVzZXJDbGFpbUF2YWlsYWJsZQUVbmV3VXNlckNsYWltQXZhaWxhYmxlBQxsYXN0SW50ZXJlc3QBF2NhbGNDbGFpbUFtb3VudEV2YWx1YXRlAgRwb29sBHVzZXIECHBvb2xBZGRyCQEHQWRkcmVzcwEJANkEAQUEcG9vbAQIYXNzZXRJZHMJALUJAgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFCHBvb2xBZGRyBQ1rUG9vbEFzc2V0SWRzAhZDYW4ndCBmaW5kIHBvb2wgYXNzZXRzAgEsCgEQY2FsY0NsYWltQW1vdW50cwIDYWNjB2Fzc2V0SWQECyR0MDMzMzIzNDAyCQEPY2FsY0NsYWltQW1vdW50AwUEcG9vbAUHYXNzZXRJZAUEdXNlcgQLY2xhaW1BbW91bnQIBQskdDAzMzMyMzQwMgJfMQQMbGFzdEludGVyZXN0CAULJHQwMzMzMjM0MDICXzIJAM0IAgUDYWNjCQDMCAIFC2NsYWltQW1vdW50BQNuaWwEDGNsYWltQW1vdW50cwoAAiRsBQhhc3NldElkcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEQY2FsY0NsYWltQW1vdW50cwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTUJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8JAJQKAgUIYXNzZXRJZHMFDGNsYWltQW1vdW50cwUBaQEHYWlyRHJvcAAJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAJAQt2YWx1ZU9yRWxzZQIJAQppc1Bvb2xDYWxsAQgFAWkGY2FsbGVyBAskdDAzNjE1MzY5MAkAlAoCCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAgJAJEDAggFAWkIcGF5bWVudHMAAAdhc3NldElkBAlwbXRBbW91bnQIBQskdDAzNjE1MzY5MAJfMQQKcG10QXNzZXRJZAgFCyR0MDM2MTUzNjkwAl8yBARwb29sCQClCAEIBQFpBmNhbGxlcgQWdG90YWxTaGFyZVRva2Vuc0xvY2tlZAkBGWdldFRvdGFsU2hhcmVUb2tlbnNMb2NrZWQBBQRwb29sBAxsYXN0SW50ZXJlc3QJARhnZXRQb29sVG9rZW5MYXN0SW50ZXJlc3QCBQRwb29sCQENZ2V0U3RyQXNzZXRJZAEFCnBtdEFzc2V0SWQEC2ludGVyZXN0TmV3CQBkAgUMbGFzdEludGVyZXN0AwMJAGYCBRZ0b3RhbFNoYXJlVG9rZW5zTG9ja2VkAAAJAGYCBQlwbXRBbW91bnQAAAcJAGsDBQlwbXRBbW91bnQFCnNjYWxlVmFsdWUFFnRvdGFsU2hhcmVUb2tlbnNMb2NrZWQAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgUEcG9vbAIBXwkBDWdldFN0ckFzc2V0SWQBBQpwbXRBc3NldElkBRZrTGFzdFBvb2xUb2tlbkludGVyZXN0BQtpbnRlcmVzdE5ldwUDbmlsAWkBEnVwZGF0ZVVzZXJJbnRlcmVzdAEYbmV3VXNlclNoYXJlVG9rZW5zTG9ja2VkCQELdmFsdWVPckVsc2UCCQEIaXNBY3RpdmUACQELdmFsdWVPckVsc2UCCQENaXNGYXJtaW5nQ2FsbAEIBQFpBmNhbGxlcgQIcG9vbEFkZHIIBQFpBmNhbGxlcgQEdXNlcgkApQgBCAUBaQxvcmlnaW5DYWxsZXIEBHBvb2wJAKUIAQUIcG9vbEFkZHIECGFzc2V0SWRzCQC1CQIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQhwb29sQWRkcgUNa1Bvb2xBc3NldElkcwIWQ2FuJ3QgZmluZCBwb29sIGFzc2V0cwIBLAoBJ2NhbGNOZXdVc2VySW50ZXJlc3RBbmRDbGFpbUFtb3VudEV0cmllcwIDYWNjB2Fzc2V0SWQECyR0MDQ1NzU0NjQ1CQEPY2FsY0NsYWltQW1vdW50AwUEcG9vbAUHYXNzZXRJZAUEdXNlcgQLY2xhaW1BbW91bnQIBQskdDA0NTc1NDY0NQJfMQQMbGFzdEludGVyZXN0CAULJHQwNDU3NTQ2NDUCXzIJAM0IAgUDYWNjCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgUEdXNlcgIBXwUEcG9vbAIBXwUHYXNzZXRJZAUTa1VzZXJDbGFpbUF2YWlsYWJsZQULY2xhaW1BbW91bnQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICBQR1c2VyAgFfBQRwb29sAgFfBQdhc3NldElkBRFrVXNlckxhc3RJbnRlcmVzdAUMbGFzdEludGVyZXN0BQNuaWwKAAIkbAUIYXNzZXRJZHMKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBJ2NhbGNOZXdVc2VySW50ZXJlc3RBbmRDbGFpbUFtb3VudEV0cmllcwIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTUJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8BaQEFY2xhaW0BBHBvb2wJAQt2YWx1ZU9yRWxzZQIJAQhpc0FjdGl2ZQAECHBvb2xBZGRyCQEHQWRkcmVzcwEJANkEAQUEcG9vbAQEdXNlcgkApQgBCAUBaQZjYWxsZXIECGFzc2V0SWRzCQC1CQIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQhwb29sQWRkcgUNa1Bvb2xBc3NldElkcwIWQ2FuJ3QgZmluZCBwb29sIGFzc2V0cwIBLAoBFWNhbGNDbGFpbUFtb3VudEV0cmllcwIDYWNjB2Fzc2V0SWQECyR0MDUyOTg1MzIyBQNhY2MEB2VudHJpZXMIBQskdDA1Mjk4NTMyMgJfMQQDc3VtCAULJHQwNTI5ODUzMjICXzIECyR0MDUzMjk1Mzk5CQEPY2FsY0NsYWltQW1vdW50AwUEcG9vbAUHYXNzZXRJZAUEdXNlcgQLY2xhaW1BbW91bnQIBQskdDA1MzI5NTM5OQJfMQQMbGFzdEludGVyZXN0CAULJHQwNTMyOTUzOTkCXzIJAJQKAgkAzQgCBQdlbnRyaWVzCQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgULY2xhaW1BbW91bnQJANkEAQUHYXNzZXRJZAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFBHVzZXICAV8FBHBvb2wCAV8FB2Fzc2V0SWQFE2tVc2VyQ2xhaW1BdmFpbGFibGUAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIFBHVzZXICAV8FBHBvb2wCAV8FB2Fzc2V0SWQFEWtVc2VyTGFzdEludGVyZXN0BQxsYXN0SW50ZXJlc3QFA25pbAULY2xhaW1BbW91bnQECyR0MDU2OTk1NzgxCgACJGwFCGFzc2V0SWRzCgACJHMJAJADAQUCJGwKAAUkYWNjMAkAlAoCBQNuaWwAAAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEVY2FsY0NsYWltQW1vdW50RXRyaWVzAgUCJGEJAJEDAgUCJGwFAiRpCgEFJGYwXzICAiRhAiRpAwkAZwIFAiRpBQIkcwUCJGEJAAIBAhRMaXN0IHNpemUgZXhjZWVkcyAxNQkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwQMY2xhaW1FbnRyaWVzCAULJHQwNTY5OTU3ODECXzEECXN1bVRva2VucwgFCyR0MDU2OTk1NzgxAl8yAwkAAAIFCXN1bVRva2VucwAACQACAQIcWW91IGhhdmUgbm8gdG9rZW5zIGZvciBjbGFpbQUMY2xhaW1FbnRyaWVzAWkBCHNodXRkb3duAAMJAQEhAQUGYWN0aXZlCQACAQkArAICAiJEQXBwIGlzIGFscmVhZHkgc3VzcGVuZGVkLiBDYXVzZTogCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFBmtDYXVzZQIadGhlIGNhdXNlIHdhc24ndCBzcGVjaWZpZWQDCQEBIQEJAQ9jb250YWluc0VsZW1lbnQCCQDMCAIFDGFkbWluUHViS2V5MQkAzAgCBQxhZG1pblB1YktleTIJAMwIAgUMYWRtaW5QdWJLZXkzBQNuaWwIBQFpD2NhbGxlclB1YmxpY0tleQkAAgECIU9ubHkgYWRtaW4gY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgkBB3N1c3BlbmQBAg9QYXVzZWQgYnkgYWRtaW4BaQEIYWN0aXZhdGUAAwUGYWN0aXZlCQACAQIWREFwcCBpcyBhbHJlYWR5IGFjdGl2ZQMJAQEhAQkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgUMYWRtaW5QdWJLZXkxCQDMCAIFDGFkbWluUHViS2V5MgkAzAgCBQxhZG1pblB1YktleTMFA25pbAgFAWkPY2FsbGVyUHVibGljS2V5CQACAQIhT25seSBhZG1pbiBjYW4gY2FsbCB0aGlzIGZ1bmN0aW9uCQDMCAIJAQxCb29sZWFuRW50cnkCBQdrQWN0aXZlBgkAzAgCCQELRGVsZXRlRW50cnkBBQZrQ2F1c2UFA25pbAECdHgBBnZlcmlmeQAEEmFkbWluUHViS2V5MVNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MQABAAAEEmFkbWluUHViS2V5MlNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFDGFkbWluUHViS2V5MgABAAAEEmFkbWluUHViS2V5M1NpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFDGFkbWluUHViS2V5MwABAAAJAGcCCQBkAgkAZAIFEmFkbWluUHViS2V5MVNpZ25lZAUSYWRtaW5QdWJLZXkyU2lnbmVkBRJhZG1pblB1YktleTNTaWduZWQAAjj3UBc=", "height": 2228991, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2b1HweFDzDAUkGzFThayThXbg4J2fyqsxppSrxBjKVsJ Next: 4FmFGJwxneP5Jvrhq4XHJ4uHDpZaHcda9d74Yi4GXjUV Diff:
OldNewDifferences
6565 else throw("Only pool can call this function")
6666
6767
68-func C (D) = [BooleanEntry(a, false), StringEntry(b, D)]
68+func C (B) = if ((B == x))
69+ then unit
70+ else throw("Only farming can call this function")
6971
7072
71-func E (F,G) = valueOrElse(getInteger(x, (((F + "_") + G) + f)), 0)
73+func D (E) = [BooleanEntry(a, false), StringEntry(b, E)]
7274
7375
74-func H (F) = valueOrElse(getInteger(x, (F + g)), 0)
76+func F (G,H) = valueOrElse(getInteger(x, (((G + "_") + H) + f)), 0)
7577
7678
77-func I (J,F,K) = valueOrElse(getInteger(this, (((((J + "_") + F) + "_") + K) + d)), 0)
79+func I (G) = valueOrElse(getInteger(x, (G + g)), 0)
7880
7981
80-func L (F,K) = valueOrElse(getInteger(this, (((F + "_") + K) + c)), 0)
82+func J (K,G,L) = valueOrElse(getInteger(this, (((((K + "_") + G) + "_") + L) + d)), 0)
8183
8284
83-func M (J,F,K) = valueOrElse(getInteger(this, (((((J + "_") + F) + "_") + K) + e)), 0)
85+func M (G,L) = valueOrElse(getInteger(this, (((G + "_") + L) + c)), 0)
8486
8587
86-func N (K) = {
87- let r = K
88+func N (K,G,L) = valueOrElse(getInteger(this, (((((K + "_") + G) + "_") + L) + e)), 0)
89+
90+
91+func O (L) = {
92+ let r = L
8893 if ($isInstanceOf(r, "ByteVector"))
8994 then {
90- let O = r
91- toBase58String(O)
95+ let P = r
96+ toBase58String(P)
9297 }
9398 else if ($isInstanceOf(r, "Unit"))
9499 then {
95- let P = r
100+ let Q = r
96101 "WAVES"
97102 }
98103 else throw("Match error")
99104 }
100105
101106
102-func Q (F,K,J) = {
103- let R = L(F, K)
104- let S = I(J, F, K)
105- let T = E(F, J)
106- let U = M(J, F, K)
107- let V = fraction(T, (R - S), n)
108- $Tuple2((U + V), R)
107+func R (G,L,K) = {
108+ let S = M(G, L)
109+ let T = J(K, G, L)
110+ let U = F(G, K)
111+ let V = N(K, G, L)
112+ let W = fraction(U, (S - T), n)
113+ $Tuple2((V + W), S)
109114 }
110115
111116
112-func W (F,J) = {
113- let X = Address(fromBase58String(F))
114- let Y = split(valueOrErrorMessage(getString(X, i), "Can't find pool assets"), ",")
115- func Z (aa,K) = {
116- let ab = Q(F, K, J)
117- let ac = ab._1
118- let R = ab._2
119- (aa :+ [ac])
117+func X (G,K) = {
118+ let Y = Address(fromBase58String(G))
119+ let Z = split(valueOrErrorMessage(getString(Y, i), "Can't find pool assets"), ",")
120+ func aa (ab,L) = {
121+ let ac = R(G, L, K)
122+ let ad = ac._1
123+ let S = ac._2
124+ (ab :+ [ad])
120125 }
121126
122- let ad = {
123- let ae = Y
124- let af = size(ae)
125- let ag = nil
126- func ah (ai,aj) = if ((aj >= af))
127- then ai
128- else Z(ai, ae[aj])
127+ let ae = {
128+ let af = Z
129+ let ag = size(af)
130+ let ah = nil
131+ func ai (aj,ak) = if ((ak >= ag))
132+ then aj
133+ else aa(aj, af[ak])
129134
130- func ak (ai,aj) = if ((aj >= af))
131- then ai
135+ func al (aj,ak) = if ((ak >= ag))
136+ then aj
132137 else throw("List size exceeds 15")
133138
134- ak(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ag, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
139+ al(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ah, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
135140 }
136- $Tuple2(Y, ad)
141+ $Tuple2(Z, ae)
137142 }
138143
139144
140-@Callable(al)
141-func airDrop () = valueOrElse(z(), valueOrElse(A(al.caller), {
142- let am = $Tuple2(al.payments[0].amount, al.payments[0].assetId)
143- let an = am._1
144- let ao = am._2
145- let F = toString(al.caller)
146- let ap = H(F)
147- let R = L(F, N(ao))
148- let aq = (R + (if (if ((ap > 0))
149- then (an > 0)
145+@Callable(am)
146+func airDrop () = valueOrElse(z(), valueOrElse(A(am.caller), {
147+ let an = $Tuple2(am.payments[0].amount, am.payments[0].assetId)
148+ let ao = an._1
149+ let ap = an._2
150+ let G = toString(am.caller)
151+ let aq = I(G)
152+ let S = M(G, O(ap))
153+ let ar = (S + (if (if ((aq > 0))
154+ then (ao > 0)
150155 else false)
151- then fraction(an, n, ap)
156+ then fraction(ao, n, aq)
152157 else 0))
153-[IntegerEntry((((F + "_") + N(ao)) + c), aq)]
158+[IntegerEntry((((G + "_") + O(ap)) + c), ar)]
154159 }))
155160
156161
157162
158-@Callable(al)
159-func updateUserInterest (ar) = valueOrElse(z(), valueOrElse(A(al.caller), {
160- let X = al.caller
161- let J = toString(al.originCaller)
162- let F = toString(X)
163- let Y = split(valueOrErrorMessage(getString(X, i), "Can't find pool assets"), ",")
164- func as (aa,K) = {
165- let at = Q(F, K, J)
166- let ac = at._1
167- let R = at._2
168- (aa :+ [IntegerEntry((((((J + "_") + F) + "_") + K) + e), ac), IntegerEntry((((((J + "_") + F) + "_") + K) + d), R)])
163+@Callable(am)
164+func updateUserInterest (as) = valueOrElse(z(), valueOrElse(C(am.caller), {
165+ let Y = am.caller
166+ let K = toString(am.originCaller)
167+ let G = toString(Y)
168+ let Z = split(valueOrErrorMessage(getString(Y, i), "Can't find pool assets"), ",")
169+ func at (ab,L) = {
170+ let au = R(G, L, K)
171+ let ad = au._1
172+ let S = au._2
173+ (ab :+ [IntegerEntry((((((K + "_") + G) + "_") + L) + e), ad), IntegerEntry((((((K + "_") + G) + "_") + L) + d), S)])
169174 }
170175
171- let ae = Y
172- let af = size(ae)
173- let ag = nil
174- func ah (ai,aj) = if ((aj >= af))
175- then ai
176- else as(ai, ae[aj])
176+ let af = Z
177+ let ag = size(af)
178+ let ah = nil
179+ func ai (aj,ak) = if ((ak >= ag))
180+ then aj
181+ else at(aj, af[ak])
177182
178- func ak (ai,aj) = if ((aj >= af))
179- then ai
183+ func al (aj,ak) = if ((ak >= ag))
184+ then aj
180185 else throw("List size exceeds 15")
181186
182- ak(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ag, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
187+ al(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ah, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
183188 }))
184189
185190
186191
187-@Callable(al)
188-func claim (F) = valueOrElse(z(), {
189- let X = Address(fromBase58String(F))
190- let J = toString(al.caller)
191- let Y = split(valueOrErrorMessage(getString(X, i), "Can't find pool assets"), ",")
192- func au (aa,K) = {
193- let av = aa
194- let aw = av._1
195- let ax = av._2
196- let ay = Q(F, K, J)
197- let ac = ay._1
198- let R = ay._2
199- $Tuple2((aw :+ [ScriptTransfer(al.caller, ac, fromBase58String(K)), IntegerEntry((((((J + "_") + F) + "_") + K) + e), 0), IntegerEntry((((((J + "_") + F) + "_") + K) + d), R)]), ac)
192+@Callable(am)
193+func claim (G) = valueOrElse(z(), {
194+ let Y = Address(fromBase58String(G))
195+ let K = toString(am.caller)
196+ let Z = split(valueOrErrorMessage(getString(Y, i), "Can't find pool assets"), ",")
197+ func av (ab,L) = {
198+ let aw = ab
199+ let ax = aw._1
200+ let ay = aw._2
201+ let az = R(G, L, K)
202+ let ad = az._1
203+ let S = az._2
204+ $Tuple2((ax :+ [ScriptTransfer(am.caller, ad, fromBase58String(L)), IntegerEntry((((((K + "_") + G) + "_") + L) + e), 0), IntegerEntry((((((K + "_") + G) + "_") + L) + d), S)]), ad)
200205 }
201206
202- let az = {
203- let ae = Y
204- let af = size(ae)
205- let ag = $Tuple2(nil, 0)
206- func ah (ai,aj) = if ((aj >= af))
207- then ai
208- else au(ai, ae[aj])
207+ let aA = {
208+ let af = Z
209+ let ag = size(af)
210+ let ah = $Tuple2(nil, 0)
211+ func ai (aj,ak) = if ((ak >= ag))
212+ then aj
213+ else av(aj, af[ak])
209214
210- func ak (ai,aj) = if ((aj >= af))
211- then ai
215+ func al (aj,ak) = if ((ak >= ag))
216+ then aj
212217 else throw("List size exceeds 15")
213218
214- ak(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ag, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
219+ al(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ah, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
215220 }
216- let aA = az._1
217- let aB = az._2
218- if ((aB == 0))
221+ let aB = aA._1
222+ let aC = aA._2
223+ if ((aC == 0))
219224 then throw("You have no tokens for claim")
220- else aA
225+ else aB
221226 })
222227
223228
224229
225-@Callable(al)
230+@Callable(am)
226231 func shutdown () = if (!(y))
227232 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, b), "the cause wasn't specified")))
228- else if (!(containsElement([u, v, w], al.callerPublicKey)))
233+ else if (!(containsElement([u, v, w], am.callerPublicKey)))
229234 then throw("Only admin can call this function")
230- else C("Paused by admin")
235+ else D("Paused by admin")
231236
232237
233238
234-@Callable(al)
239+@Callable(am)
235240 func activate () = if (y)
236241 then throw("DApp is already active")
237- else if (!(containsElement([u, v, w], al.callerPublicKey)))
242+ else if (!(containsElement([u, v, w], am.callerPublicKey)))
238243 then throw("Only admin can call this function")
239244 else [BooleanEntry(a, true), DeleteEntry(b)]
240245
241246
242-@Verifier(aC)
243-func aD () = {
244- let aE = if (sigVerify(aC.bodyBytes, aC.proofs[0], u))
247+@Verifier(aD)
248+func aE () = {
249+ let aF = if (sigVerify(aD.bodyBytes, aD.proofs[0], u))
245250 then 1
246251 else 0
247- let aF = if (sigVerify(aC.bodyBytes, aC.proofs[1], v))
252+ let aG = if (sigVerify(aD.bodyBytes, aD.proofs[1], v))
248253 then 1
249254 else 0
250- let aG = if (sigVerify(aC.bodyBytes, aC.proofs[2], w))
255+ let aH = if (sigVerify(aD.bodyBytes, aD.proofs[2], w))
251256 then 1
252257 else 0
253- (((aE + aF) + aG) >= 2)
258+ (((aF + aG) + aH) >= 2)
254259 }
255260
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "active"
55
66 let b = "shutdown_cause"
77
88 let c = "_pool_last_interest"
99
1010 let d = "_user_last_interest"
1111
1212 let e = "_user_available_to_claim"
1313
1414 let f = "_share_tokens_locked"
1515
1616 let g = "_total_share_tokens_locked"
1717
1818 let h = "pool_"
1919
2020 let i = "asset_ids"
2121
2222 let j = "admin_pub_1"
2323
2424 let k = "admin_pub_2"
2525
2626 let l = "admin_pub_3"
2727
2828 let m = "farming_address"
2929
3030 let n = 100000000
3131
3232 let o = Address(base58'3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9')
3333
3434 func p (q) = {
3535 let r = getString(o, q)
3636 if ($isInstanceOf(r, "String"))
3737 then {
3838 let s = r
3939 fromBase58String(s)
4040 }
4141 else {
4242 let t = r
4343 throw((q + "is empty"))
4444 }
4545 }
4646
4747
4848 let u = p(j)
4949
5050 let v = p(k)
5151
5252 let w = p(l)
5353
5454 let x = Address(p(m))
5555
5656 let y = valueOrElse(getBoolean(this, a), true)
5757
5858 func z () = if (y)
5959 then unit
6060 else throw("DApp is inactive at this moment")
6161
6262
6363 func A (B) = if (isDefined(getString(o, (h + toString(B)))))
6464 then unit
6565 else throw("Only pool can call this function")
6666
6767
68-func C (D) = [BooleanEntry(a, false), StringEntry(b, D)]
68+func C (B) = if ((B == x))
69+ then unit
70+ else throw("Only farming can call this function")
6971
7072
71-func E (F,G) = valueOrElse(getInteger(x, (((F + "_") + G) + f)), 0)
73+func D (E) = [BooleanEntry(a, false), StringEntry(b, E)]
7274
7375
74-func H (F) = valueOrElse(getInteger(x, (F + g)), 0)
76+func F (G,H) = valueOrElse(getInteger(x, (((G + "_") + H) + f)), 0)
7577
7678
77-func I (J,F,K) = valueOrElse(getInteger(this, (((((J + "_") + F) + "_") + K) + d)), 0)
79+func I (G) = valueOrElse(getInteger(x, (G + g)), 0)
7880
7981
80-func L (F,K) = valueOrElse(getInteger(this, (((F + "_") + K) + c)), 0)
82+func J (K,G,L) = valueOrElse(getInteger(this, (((((K + "_") + G) + "_") + L) + d)), 0)
8183
8284
83-func M (J,F,K) = valueOrElse(getInteger(this, (((((J + "_") + F) + "_") + K) + e)), 0)
85+func M (G,L) = valueOrElse(getInteger(this, (((G + "_") + L) + c)), 0)
8486
8587
86-func N (K) = {
87- let r = K
88+func N (K,G,L) = valueOrElse(getInteger(this, (((((K + "_") + G) + "_") + L) + e)), 0)
89+
90+
91+func O (L) = {
92+ let r = L
8893 if ($isInstanceOf(r, "ByteVector"))
8994 then {
90- let O = r
91- toBase58String(O)
95+ let P = r
96+ toBase58String(P)
9297 }
9398 else if ($isInstanceOf(r, "Unit"))
9499 then {
95- let P = r
100+ let Q = r
96101 "WAVES"
97102 }
98103 else throw("Match error")
99104 }
100105
101106
102-func Q (F,K,J) = {
103- let R = L(F, K)
104- let S = I(J, F, K)
105- let T = E(F, J)
106- let U = M(J, F, K)
107- let V = fraction(T, (R - S), n)
108- $Tuple2((U + V), R)
107+func R (G,L,K) = {
108+ let S = M(G, L)
109+ let T = J(K, G, L)
110+ let U = F(G, K)
111+ let V = N(K, G, L)
112+ let W = fraction(U, (S - T), n)
113+ $Tuple2((V + W), S)
109114 }
110115
111116
112-func W (F,J) = {
113- let X = Address(fromBase58String(F))
114- let Y = split(valueOrErrorMessage(getString(X, i), "Can't find pool assets"), ",")
115- func Z (aa,K) = {
116- let ab = Q(F, K, J)
117- let ac = ab._1
118- let R = ab._2
119- (aa :+ [ac])
117+func X (G,K) = {
118+ let Y = Address(fromBase58String(G))
119+ let Z = split(valueOrErrorMessage(getString(Y, i), "Can't find pool assets"), ",")
120+ func aa (ab,L) = {
121+ let ac = R(G, L, K)
122+ let ad = ac._1
123+ let S = ac._2
124+ (ab :+ [ad])
120125 }
121126
122- let ad = {
123- let ae = Y
124- let af = size(ae)
125- let ag = nil
126- func ah (ai,aj) = if ((aj >= af))
127- then ai
128- else Z(ai, ae[aj])
127+ let ae = {
128+ let af = Z
129+ let ag = size(af)
130+ let ah = nil
131+ func ai (aj,ak) = if ((ak >= ag))
132+ then aj
133+ else aa(aj, af[ak])
129134
130- func ak (ai,aj) = if ((aj >= af))
131- then ai
135+ func al (aj,ak) = if ((ak >= ag))
136+ then aj
132137 else throw("List size exceeds 15")
133138
134- ak(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ag, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
139+ al(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ah, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
135140 }
136- $Tuple2(Y, ad)
141+ $Tuple2(Z, ae)
137142 }
138143
139144
140-@Callable(al)
141-func airDrop () = valueOrElse(z(), valueOrElse(A(al.caller), {
142- let am = $Tuple2(al.payments[0].amount, al.payments[0].assetId)
143- let an = am._1
144- let ao = am._2
145- let F = toString(al.caller)
146- let ap = H(F)
147- let R = L(F, N(ao))
148- let aq = (R + (if (if ((ap > 0))
149- then (an > 0)
145+@Callable(am)
146+func airDrop () = valueOrElse(z(), valueOrElse(A(am.caller), {
147+ let an = $Tuple2(am.payments[0].amount, am.payments[0].assetId)
148+ let ao = an._1
149+ let ap = an._2
150+ let G = toString(am.caller)
151+ let aq = I(G)
152+ let S = M(G, O(ap))
153+ let ar = (S + (if (if ((aq > 0))
154+ then (ao > 0)
150155 else false)
151- then fraction(an, n, ap)
156+ then fraction(ao, n, aq)
152157 else 0))
153-[IntegerEntry((((F + "_") + N(ao)) + c), aq)]
158+[IntegerEntry((((G + "_") + O(ap)) + c), ar)]
154159 }))
155160
156161
157162
158-@Callable(al)
159-func updateUserInterest (ar) = valueOrElse(z(), valueOrElse(A(al.caller), {
160- let X = al.caller
161- let J = toString(al.originCaller)
162- let F = toString(X)
163- let Y = split(valueOrErrorMessage(getString(X, i), "Can't find pool assets"), ",")
164- func as (aa,K) = {
165- let at = Q(F, K, J)
166- let ac = at._1
167- let R = at._2
168- (aa :+ [IntegerEntry((((((J + "_") + F) + "_") + K) + e), ac), IntegerEntry((((((J + "_") + F) + "_") + K) + d), R)])
163+@Callable(am)
164+func updateUserInterest (as) = valueOrElse(z(), valueOrElse(C(am.caller), {
165+ let Y = am.caller
166+ let K = toString(am.originCaller)
167+ let G = toString(Y)
168+ let Z = split(valueOrErrorMessage(getString(Y, i), "Can't find pool assets"), ",")
169+ func at (ab,L) = {
170+ let au = R(G, L, K)
171+ let ad = au._1
172+ let S = au._2
173+ (ab :+ [IntegerEntry((((((K + "_") + G) + "_") + L) + e), ad), IntegerEntry((((((K + "_") + G) + "_") + L) + d), S)])
169174 }
170175
171- let ae = Y
172- let af = size(ae)
173- let ag = nil
174- func ah (ai,aj) = if ((aj >= af))
175- then ai
176- else as(ai, ae[aj])
176+ let af = Z
177+ let ag = size(af)
178+ let ah = nil
179+ func ai (aj,ak) = if ((ak >= ag))
180+ then aj
181+ else at(aj, af[ak])
177182
178- func ak (ai,aj) = if ((aj >= af))
179- then ai
183+ func al (aj,ak) = if ((ak >= ag))
184+ then aj
180185 else throw("List size exceeds 15")
181186
182- ak(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ag, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
187+ al(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ah, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
183188 }))
184189
185190
186191
187-@Callable(al)
188-func claim (F) = valueOrElse(z(), {
189- let X = Address(fromBase58String(F))
190- let J = toString(al.caller)
191- let Y = split(valueOrErrorMessage(getString(X, i), "Can't find pool assets"), ",")
192- func au (aa,K) = {
193- let av = aa
194- let aw = av._1
195- let ax = av._2
196- let ay = Q(F, K, J)
197- let ac = ay._1
198- let R = ay._2
199- $Tuple2((aw :+ [ScriptTransfer(al.caller, ac, fromBase58String(K)), IntegerEntry((((((J + "_") + F) + "_") + K) + e), 0), IntegerEntry((((((J + "_") + F) + "_") + K) + d), R)]), ac)
192+@Callable(am)
193+func claim (G) = valueOrElse(z(), {
194+ let Y = Address(fromBase58String(G))
195+ let K = toString(am.caller)
196+ let Z = split(valueOrErrorMessage(getString(Y, i), "Can't find pool assets"), ",")
197+ func av (ab,L) = {
198+ let aw = ab
199+ let ax = aw._1
200+ let ay = aw._2
201+ let az = R(G, L, K)
202+ let ad = az._1
203+ let S = az._2
204+ $Tuple2((ax :+ [ScriptTransfer(am.caller, ad, fromBase58String(L)), IntegerEntry((((((K + "_") + G) + "_") + L) + e), 0), IntegerEntry((((((K + "_") + G) + "_") + L) + d), S)]), ad)
200205 }
201206
202- let az = {
203- let ae = Y
204- let af = size(ae)
205- let ag = $Tuple2(nil, 0)
206- func ah (ai,aj) = if ((aj >= af))
207- then ai
208- else au(ai, ae[aj])
207+ let aA = {
208+ let af = Z
209+ let ag = size(af)
210+ let ah = $Tuple2(nil, 0)
211+ func ai (aj,ak) = if ((ak >= ag))
212+ then aj
213+ else av(aj, af[ak])
209214
210- func ak (ai,aj) = if ((aj >= af))
211- then ai
215+ func al (aj,ak) = if ((ak >= ag))
216+ then aj
212217 else throw("List size exceeds 15")
213218
214- ak(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ah(ag, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
219+ al(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ai(ah, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15)
215220 }
216- let aA = az._1
217- let aB = az._2
218- if ((aB == 0))
221+ let aB = aA._1
222+ let aC = aA._2
223+ if ((aC == 0))
219224 then throw("You have no tokens for claim")
220- else aA
225+ else aB
221226 })
222227
223228
224229
225-@Callable(al)
230+@Callable(am)
226231 func shutdown () = if (!(y))
227232 then throw(("DApp is already suspended. Cause: " + valueOrElse(getString(this, b), "the cause wasn't specified")))
228- else if (!(containsElement([u, v, w], al.callerPublicKey)))
233+ else if (!(containsElement([u, v, w], am.callerPublicKey)))
229234 then throw("Only admin can call this function")
230- else C("Paused by admin")
235+ else D("Paused by admin")
231236
232237
233238
234-@Callable(al)
239+@Callable(am)
235240 func activate () = if (y)
236241 then throw("DApp is already active")
237- else if (!(containsElement([u, v, w], al.callerPublicKey)))
242+ else if (!(containsElement([u, v, w], am.callerPublicKey)))
238243 then throw("Only admin can call this function")
239244 else [BooleanEntry(a, true), DeleteEntry(b)]
240245
241246
242-@Verifier(aC)
243-func aD () = {
244- let aE = if (sigVerify(aC.bodyBytes, aC.proofs[0], u))
247+@Verifier(aD)
248+func aE () = {
249+ let aF = if (sigVerify(aD.bodyBytes, aD.proofs[0], u))
245250 then 1
246251 else 0
247- let aF = if (sigVerify(aC.bodyBytes, aC.proofs[1], v))
252+ let aG = if (sigVerify(aD.bodyBytes, aD.proofs[1], v))
248253 then 1
249254 else 0
250- let aG = if (sigVerify(aC.bodyBytes, aC.proofs[2], w))
255+ let aH = if (sigVerify(aD.bodyBytes, aD.proofs[2], w))
251256 then 1
252257 else 0
253- (((aE + aF) + aG) >= 2)
258+ (((aF + aG) + aH) >= 2)
254259 }
255260

github/deemru/w8io/169f3d6 
104.75 ms