tx · 6MZZMHg9mBq83XFhFJsXX4VfRijkAiqCVECZnfwumN6z

3PDTNbeHRk78go14CKhzkMhUHZzYRDeBE3v:  -0.01000000 Waves

2020.08.07 10:50 [2185110] smart account 3PDTNbeHRk78go14CKhzkMhUHZzYRDeBE3v > SELF 0.00000000 Waves

{ "type": 13, "id": "6MZZMHg9mBq83XFhFJsXX4VfRijkAiqCVECZnfwumN6z", "fee": 1000000, "feeAssetId": null, "timestamp": 1596786622133, "version": 1, "sender": "3PDTNbeHRk78go14CKhzkMhUHZzYRDeBE3v", "senderPublicKey": "2pi5VUPpnX3BvG3tttZYGo2AdJHGbGpfEJveewoLHb9c", "proofs": [ "vrJqAvKp4Lhi3rNVN6pKzbQ9w5DaJEWrRnvKpuwD8XTfJzX66Pt2LBEFRCd2vUmhMA6xoJBRaeqLwrMJdu15qmh" ], "script": "base64:AAIDAAAAAAAAACIIARIHCgUICAgICBIHCgUBAQEBBBIDCgEIEgASAwoBCBIAAAAAMgAAAAAHQlVMTEtleQIAAAAGQlVMTElkAAAAAAdCRUFSS2V5AgAAAAZCRUFSSWQAAAAADG1haW5Ub2tlbktleQIAAAALbWFpblRva2VuSWQAAAAAEmlzc3VlUGVyY2VudGlsZUtleQIAAAAPaXNzdWVQZXJjZW50aWxlAAAAABNyZWRlZW1QZXJjZW50aWxlS2V5AgAAABByZWRlZW1QZXJjZW50aWxlAAAAAAttaW5Jc3N1ZUtleQIAAAAIbWluSXNzdWUAAAAADG1pblJlZGVlbUtleQIAAAAJbWluUmVkZWVtAAAAABB3aGl0ZWxpc3RPbmx5S2V5AgAAAA13aGl0ZWxpc3RPbmx5AAAAAAtvcmFjbGVQS0tleQIAAAAGb3JhY2xlAAAAABFsYXN0UHJpY2VJbmRleEtleQIAAAALcHJpY2VfaW5kZXgAAAAAEHByaWNlSW5kZXhQcmVmaXgCAAAADHByaWNlX2luZGV4XwAAAAARcHJpY2VIZWlnaHRQcmVmaXgCAAAABnByaWNlXwAAAAAab3JhY2xlQ3VycmVudFByaWNlSW5kZXhLZXkCAAAAC3ByaWNlX2luZGV4AAAAABpsYXN0UmViYWxhbmNlUHJpY2VJbmRleEtleQIAAAAVbGFzdFNldHRsZW1lbnRQcmljZUlkAAAAABFidWxsQ29sbGF0ZXJhbEtleQIAAAAOYnVsbENvbGxhdGVyYWwAAAAAEWJlYXJDb2xsYXRlcmFsS2V5AgAAAA5iZWFyQ29sbGF0ZXJhbAAAAAASYnVsbENpcmN1bGF0aW9uS2V5AgAAAA9idWxsQ2lyY3VsYXRpb24AAAAAEmJlYXJDaXJjdWxhdGlvbktleQIAAAAPYmVhckNpcmN1bGF0aW9uAAAAAAx3aGl0ZWxpc3RLZXkCAAAADmlzc3VlV2hpdGVMaXN0AAAAAAl3aGl0ZWxpc3QJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAAx3aGl0ZWxpc3RLZXkCAAAAFG5vIGJ1bGxDb2xsYXRlcmFsS2V5AAAAAAdidWxsQ29sCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAARYnVsbENvbGxhdGVyYWxLZXkCAAAAFG5vIGJ1bGxDb2xsYXRlcmFsS2V5AAAAAAdiZWFyQ29sCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAARYmVhckNvbGxhdGVyYWxLZXkCAAAAFG5vIGJlYXJDb2xsYXRlcmFsS2V5AAAAAAhidWxsQ2lyYwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAEmJ1bGxDaXJjdWxhdGlvbktleQIAAAAVbm8gYnVsbENpcmN1bGF0aW9uS2V5AAAAAAhiZWFyQ2lyYwkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAEmJlYXJDaXJjdWxhdGlvbktleQIAAAAVbm8gYmVhckNpcmN1bGF0aW9uS2V5AAAAAARCVUxMCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwUAAAAHQlVMTEtleQIAAAAKbm8gQlVMTEtleQAAAAAEQkVBUgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAAB0JFQVJLZXkCAAAACm5vIEJFQVJLZXkAAAAACW1haW5Ub2tlbgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAADG1haW5Ub2tlbktleQIAAAAPbm8gbWFpblRva2VuS2V5AAAAAA9pc3N1ZVBlcmNlbnRpbGUJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAABJpc3N1ZVBlcmNlbnRpbGVLZXkCAAAAFW5vIGlzc3VlUGVyY2VudGlsZUtleQAAAAAQcmVkZWVtUGVyY2VudGlsZQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGgAAAAIFAAAABHRoaXMFAAAAE3JlZGVlbVBlcmNlbnRpbGVLZXkCAAAAFm5vIHJlZGVlbVBlcmNlbnRpbGVLZXkAAAAACG1pbklzc3VlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAALbWluSXNzdWVLZXkCAAAADm5vIG1pbklzc3VlS2V5AAAAAAltaW5SZWRlZW0JAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAAAxtaW5SZWRlZW1LZXkCAAAAD25vIG1pblJlZGVlbUtleQAAAAANd2hpdGVsaXN0T25seQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEGwAAAAIFAAAABHRoaXMFAAAAEHdoaXRlbGlzdE9ubHlLZXkCAAAAE25vIHdoaXRlbGlzdE9ubHlLZXkAAAAABm9yYWNsZQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAAtvcmFjbGVQS0tleQIAAAAObm8gb3JhY2xlUEtLZXkCAAAAEmJhZCBvcmFjbGUgYWRkcmVzcwAAAAAUcmViYWxhbmNlZFByaWNlSW5kZXgJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAR0aGlzBQAAABpsYXN0UmViYWxhbmNlUHJpY2VJbmRleEtleQIAAAAXbm8gbGFzdCByZWJhbGFuY2UgcHJpY2UAAAAAEG9yYWNsZVByaWNlSW5kZXgJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAZvcmFjbGUFAAAAEWxhc3RQcmljZUluZGV4S2V5CQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABNiYWQgb3JhY2xlIGRhdGEgYXQgCQAEJQAAAAEFAAAABm9yYWNsZQIAAAAQOiBubyBpbnRlZ2VyIGF0IAUAAAARbGFzdFByaWNlSW5kZXhLZXkAAAAADmhlYWRQb2ludGVyS2V5AgAAAAtoZWFkUG9pbnRlcgAAAAAOdGFpbFBvaW50ZXJLZXkCAAAAC3RhaWxQb2ludGVyAAAAAAxxdWV1ZVNpemVLZXkCAAAACXF1ZXVlU2l6ZQAAAAAJ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b2tlbgUAAAAEQlVMTAQAAAASYWRkZWRUb0NpcmN1bGF0aW9uCQAAawAAAAMFAAAACGJ1bGxDaXJjBQAAAA9hZGRlZENvbGxhdGVyYWwFAAAAB2J1bGxDb2wEAAAABWl0ZW1zCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABFidWxsQ29sbGF0ZXJhbEtleQkAAGQAAAACBQAAAAdidWxsQ29sBQAAAA9hZGRlZENvbGxhdGVyYWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEmJ1bGxDaXJjdWxhdGlvbktleQkAAGQAAAACBQAAAAhidWxsQ2lyYwUAAAASYWRkZWRUb0NpcmN1bGF0aW9uCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA5oZWFkUG9pbnRlcktleQUAAAAEbmV4dAkABEwAAAACCQEAAAAKY29sbGVjdEZlZQAAAAEFAAAAB2ZlZVNpemUJAARMAAAAAgUAAAARZGVjcmVhc2VRdWV1ZVNpemUFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEDBQAAAA1pc0xhc3RFbGVtZW50CQAETAAAAAIFAAAADW92ZXJ3cml0ZVRhaWwFAAAABWl0ZW1zBQAAAAVpdGVtcwkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAdpbnZva2VyBQAAABJhZGRlZFRvQ2lyY3VsYXRpb24JAAJZAAAAAQUAAAAEQlVMTAUAAAADbmlsAwkAAAAAAAACBQAAAAV0b2tlbgUAAAAEQkVBUgQAAAASYWRkZWRUb0NpcmN1bGF0aW9uCQAAawAAAAMFAAAACGJlYXJDaXJjBQAAAA9hZGRlZENvbGxhdGVyYWwFAAAAB2JlYXJDb2wEAAAABWl0ZW1zCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABFiZWFyQ29sbGF0ZXJhbEtleQkAAGQAAAACBQAAAAdiZWFyQ29sBQAAAA9hZGRlZENvbGxhdGVyYWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEmJlYXJDaXJjdWxhdGlvbktleQkAAGQAAAACBQAAAAhiZWFyQ2lyYwUAAAASYWRkZWRUb0NpcmN1bGF0aW9uCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA5oZWFkUG9pbnRlcktleQUAAAAEbmV4dAkABEwAAAACCQEAAAAKY29sbGVjdEZlZQAAAAEFAAAAB2ZlZVNpemUJAARMAAAAAgUAAAARZGVjcmVhc2VRdWV1ZVNpemUFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEDBQAAAA1pc0xhc3RFbGVtZW50CQAETAAAAAIFAAAADW92ZXJ3cml0ZVRhaWwFAAAABWl0ZW1zBQAAAAVpdGVtcwkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAdpbnZva2VyBQAAABJhZGRlZFRvQ2lyY3VsYXRpb24JAAJZAAAAAQUAAAAEQkVBUgUAAAADbmlsCQAAAgAAAAECAAAADGJhZCB0b2tlbiBpZAMJAAAAAAAAAgUAAAAGYWN0aW9uBQAAAAZSRURFRU0EAAAADXJlbW92ZWRUb2tlbnMFAAAAA2FtdAMJAAAAAAAAAgUAAAAFdG9rZW4FAAAABEJVTEwEAAAAEXJlbW92ZWRDb2xsYXRlcmFsCQAAawAAAAMFAAAAB2J1bGxDb2wFAAAADXJlbW92ZWRUb2tlbnMFAAAACGJ1bGxDaXJjBAAAAAdmZWVTaXplCQAAawAAAAMFAAAAEXJlbW92ZWRDb2xsYXRlcmFsBQAAABByZWRlZW1QZXJjZW50aWxlAAAAAAAAACcQBAAAAAZwYXlvdXQDCQAAZgAAAAIFAAAAEXJlbW92ZWRDb2xsYXRlcmFsBQAAAAdmZWVTaXplCQAAZQAAAAIFAAAAEXJlbW92ZWRDb2xsYXRlcmFsBQAAAAdmZWVTaXplAAAAAAAAAAAABAAAAAVpdGVtcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAARYnVsbENvbGxhdGVyYWxLZXkJAABlAAAAAgUAAAAHYnVsbENvbAUAAAARcmVtb3ZlZENvbGxhdGVyYWwJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEmJ1bGxDaXJjdWxhdGlvbktleQkAAGUAAAACBQAAAAhidWxsQ2lyYwUAAAANcmVtb3ZlZFRva2VucwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAOaGVhZFBvaW50ZXJLZXkFAAAABG5leHQJAARMAAAAAgkBAAAACmNvbGxlY3RGZWUAAAABBQAAAAdmZWVTaXplCQAETAAAAAIFAAAAEWRlY3JlYXNlUXVldWVTaXplBQAAAANuaWwJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABAwUAAAANaXNMYXN0RWxlbWVudAkABEwAAAACBQAAAA1vdmVyd3JpdGVUYWlsBQAAAAVpdGVtcwUAAAAFaXRlbXMJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwUAAAAHaW52b2tlcgUAAAAGcGF5b3V0CQACWQAAAAEFAAAACW1haW5Ub2tlbgUAAAADbmlsAwkAAAAAAAACBQAAAAV0b2tlbgUAAAAEQkVBUgQAAAARcmVtb3ZlZENvbGxhdGVyYWwJAABrAAAAAwUAAAAHYmVhckNvbAUAAAANcmVtb3ZlZFRva2VucwUAAAAIYmVhckNpcmMEAAAAB2ZlZVNpemUJAABrAAAAAwUAAAARcmVtb3ZlZENvbGxhdGVyYWwFAAAAEHJlZGVlbVBlcmNlbnRpbGUAAAAAAAAAJxAEAAAABnBheW91dAMJAABmAAAAAgUAAAARcmVtb3ZlZENvbGxhdGVyYWwFAAAAB2ZlZVNpemUJAABlAAAAAgUAAAARcmVtb3ZlZENvbGxhdGVyYWwFAAAAB2ZlZVNpemUAAAAAAAAAAAAEAAAABWl0ZW1zCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABFiZWFyQ29sbGF0ZXJhbEtleQkAAGUAAAACBQAAAAdiZWFyQ29sBQAAABFyZW1vdmVkQ29sbGF0ZXJhbAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAASYmVhckNpcmN1bGF0aW9uS2V5CQAAZQAAAAIFAAAACGJlYXJDaXJjBQAAAA1yZW1vdmVkVG9rZW5zCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAA5oZWFkUG9pbnRlcktleQUAAAAEbmV4dAkABEwAAAACCQEAAAAKY29sbGVjdEZlZQAAAAEFAAAAB2ZlZVNpemUJAARMAAAAAgUAAAARZGVjcmVhc2VRdWV1ZVNpemUFAAAAA25pbAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEDBQAAAA1pc0xhc3RFbGVtZW50CQAETAAAAAIFAAAADW92ZXJ3cml0ZVRhaWwFAAAABWl0ZW1zBQAAAAVpdGVtcwkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADBQAAAAdpbnZva2VyBQAAAAZwYXlvdXQJAAJZAAAAAQUAAAAJbWFpblRva2VuBQAAAANuaWwJAAACAAAAAQIAAAAMYmFkIHRva2VuIGlkCQAAAgAAAAEJAAEsAAAAAgIAAAAMYmFkIGFjdGlvbjogBQAAAAZhY3Rpb24BAAAACXJlYmFsYW5jZQAAAAAKAQAAAAJMVgAAAAMAAAABdgAAAAJwMAAAAAJwMQQAAAAFZGVub20AAAAAAAAAAGQEAAAABHBtYXgJAABpAAAAAgMJAABmAAAAAgUAAAACcDEFAAAAAnAwBQAAAAJwMQUAAAACcDAFAAAABWRlbm9tBAAAAARwbWluCQAAaQAAAAIDCQAAZgAAAAIFAAAAAnAwBQAAAAJwMQUAAAACcDEFAAAAAnAwBQAAAAVkZW5vbQQAAAABYQkAAGgAAAACBQAAAARwbWluBQAAAARwbWluBAAAAAFiCQAAZQAAAAIJAABoAAAAAgkAAGgAAAACAAAAAAAAAAAJBQAAAARwbWF4BQAAAARwbWF4CQAAaAAAAAIJAABoAAAAAgAAAAAAAAAADwUAAAAEcG1heAUAAAAEcG1pbgkAAGsAAAADBQAAAAF2CQAAZAAAAAIJAABoAAAAAgAAAAAAAAAABgUAAAABYQUAAAABYgkAAGQAAAACCQAAaAAAAAIAAAAAAAAAAAcFAAAAAWEFAAAAAWIEAAAAEXNldHRsZWRQcmljZUluZGV4CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAEdGhpcwUAAAAabGFzdFJlYmFsYW5jZVByaWNlSW5kZXhLZXkCAAAAEWluY29uc2lzdGVudCBkYXRhBAAAABN1bnNldHRsZWRQcmljZUluZGV4CQAAZAAAAAIFAAAAEXNldHRsZWRQcmljZUluZGV4AAAAAAAAAAABBAAAABJzZXR0bGVkUHJpY2VIZWlnaHQJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAZvcmFjbGUJAAEsAAAAAgIAAAAMcHJpY2VfaW5kZXhfCQABpAAAAAEFAAAAEXNldHRsZWRQcmljZUluZGV4AgAAAChiYWQgb3JhY2xlIGRhdGEgZm9yIHNldHRsZWQgcHJpY2UgaGVpZ2h0BAAAAAxzZXR0bGVkUHJpY2UJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAgkABBoAAAACBQAAAAZvcmFjbGUJAAEsAAAAAgIAAAAGcHJpY2VfCQABpAAAAAEFAAAAEnNldHRsZWRQcmljZUhlaWdodAIAAAAZYmFkIG9yYWNsZSBkYXRhIGZvciBwcmljZQQAAAAPbmV4dFByaWNlSGVpZ2h0CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAGb3JhY2xlCQABLAAAAAICAAAADHByaWNlX2luZGV4XwkAAaQAAAABBQAAABN1bnNldHRsZWRQcmljZUluZGV4AgAAABRubyBuZXh0IHByaWNlIGhlaWdodAQAAAAJbmV4dFByaWNlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgUAAAAGb3JhY2xlCQABLAAAAAICAAAABnByaWNlXwkAAaQAAAABBQAAAA9uZXh0UHJpY2VIZWlnaHQCAAAADW5vIG5leHQgcHJpY2UEAAAABm1pblZvbAMJAABmAAAAAgUAAAAHYmVhckNvbAUAAAAHYnVsbENvbAUAAAAHYnVsbENvbAUAAAAHYmVhckNvbAQAAAAGcmVkaXN0CQEAAAACTFYAAAADBQAAAAZtaW5Wb2wFAAAADHNldHRsZWRQcmljZQUAAAAJbmV4dFByaWNlAwkAAGYAAAACBQAAAAluZXh0UHJpY2UFAAAADHNldHRsZWRQcmljZQkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAARYnVsbENvbGxhdGVyYWxLZXkJAABkAAAAAgUAAAAHYnVsbENvbAUAAAAGcmVkaXN0CQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABFiZWFyQ29sbGF0ZXJhbEtleQkAAGUAAAACBQAAAAdiZWFyQ29sBQAAAAZyZWRpc3QJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAGmxhc3RSZWJhbGFuY2VQcmljZUluZGV4S2V5BQAAABN1bnNldHRsZWRQcmljZUluZGV4BQAAAANuaWwDCQAAZgAAAAIFAAAADHNldHRsZWRQcmljZQUAAAAJbmV4dFByaWNlCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAABFidWxsQ29sbGF0ZXJhbEtleQkAAGUAAAACBQAAAAdidWxsQ29sBQAAAAZyZWRpc3QJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAEWJlYXJDb2xsYXRlcmFsS2V5CQAAZAAAAAIFAAAAB2JlYXJDb2wFAAAABnJlZGlzdAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAabGFzdFJlYmFsYW5jZVByaWNlSW5kZXhLZXkFAAAAE3Vuc2V0dGxlZFByaWNlSW5kZXgFAAAAA25pbAkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAabGFzdFJlYmFsYW5jZVByaWNlSW5kZXhLZXkFAAAAE3Vuc2V0dGxlZFByaWNlSW5kZXgFAAAAA25pbAAAAAYAAAADaW52AQAAAARpbml0AAAABQAAAAZidWxsSWQAAAAGYmVhcklkAAAAC21haW5Ub2tlbklkAAAACG9yYWNsZVBLAAAAC3doaXRlbGlzdGVkAwkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwUAAAAHQlVMTEtleQkAAAIAAAABAgAAABNhbHJlYWR5IGluaXRpYWxpemVkAwkBAAAAASEAAAABCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAA2ludgAAAAdwYXltZW50CQAAAgAAAAECAAAAGW5ldXRyaW5vIHBheW1lbnQgcmVxdWlyZWQDCQEAAAACIT0AAAACCQACWAAAAAEJAQAAABN2YWx1ZU9yRXJyb3JNZXNzYWdlAAAAAggJAQAAAAV2YWx1ZQAAAAEIBQAAAANpbnYAAAAHcGF5bWVudAAAAAdhc3NldElkAgAAABluZXV0cmlubyBwYXltZW50IHJlcXVpcmVkBQAAAAttYWluVG9rZW5JZAkAAAIAAAABAgAAABdwYXltZW50IG5vdCBpbiBuZXV0cmlubwQAAAATdG90YWxPd25lZE1haW5Ub2tlbggJAQAAAAV2YWx1ZQAAAAEIBQAAAANpbnYAAAAHcGF5bWVudAAAAAZhbW91bnQEAAAABWJ1bGxzCQAAaQAAAAIFAAAAE3RvdGFsT3duZWRNYWluVG9rZW4AAAAAAAAAAAIEAAAABWJlYXJzCQAAZQAAAAIFAAAAE3RvdGFsT3duZWRNYWluVG9rZW4FAAAABWJ1bGxzAwMJAAAAAAAAAgUAAAAFYmVhcnMAAAAAAAAAAAAGCQAAAAAAAAIFAAAABWJ1bGxzAAAAAAAAAAAACQAAAgAAAAECAAAAE2Nhbid0IGluaXQgYmFsYW5jZXMEAAAAF29yYWNsZUN1cnJlbnRQcmljZUluZGV4CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQaAAAAAgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQEAAAAUYWRkcmVzc0Zyb21QdWJsaWNLZXkAAAABCQACWQAAAAEFAAAACG9yYWNsZVBLAgAAABJiYWQgb3JhY2xlIGFkZHJlc3MFAAAAEWxhc3RQcmljZUluZGV4S2V5AgAAACJjYW4ndCBmaW5kIGxhc3Qgb3JhY2xlIHByaWNlIGluZGV4CQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgUAAAAHQlVMTEtleQUAAAAGYnVsbElkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACBQAAAAdCRUFSS2V5BQAAAAZiZWFySWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAADG1haW5Ub2tlbktleQUAAAALbWFpblRva2VuSWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIFAAAAC29yYWNsZVBLS2V5BQAAAAhvcmFjbGVQSwkABEwAAAACCQEAAAAJ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", "chainId": 87, "height": 2185110, "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let a = "BULLId"
5+
6+let b = "BEARId"
7+
8+let c = "mainTokenId"
9+
10+let d = "issuePercentile"
11+
12+let e = "redeemPercentile"
13+
14+let f = "minIssue"
15+
16+let g = "minRedeem"
17+
18+let h = "whitelistOnly"
19+
20+let i = "oracle"
21+
22+let j = "price_index"
23+
24+let k = "price_index_"
25+
26+let l = "price_"
27+
28+let m = "price_index"
29+
30+let n = "lastSettlementPriceId"
31+
32+let o = "bullCollateral"
33+
34+let p = "bearCollateral"
35+
36+let q = "bullCirculation"
37+
38+let r = "bearCirculation"
39+
40+let s = "issueWhiteList"
41+
42+let t = valueOrErrorMessage(getString(this, s), "no bullCollateralKey")
43+
44+let u = valueOrErrorMessage(getInteger(this, o), "no bullCollateralKey")
45+
46+let v = valueOrErrorMessage(getInteger(this, p), "no bearCollateralKey")
47+
48+let w = valueOrErrorMessage(getInteger(this, q), "no bullCirculationKey")
49+
50+let x = valueOrErrorMessage(getInteger(this, r), "no bearCirculationKey")
51+
52+let y = valueOrErrorMessage(getString(this, a), "no BULLKey")
53+
54+let z = valueOrErrorMessage(getString(this, b), "no BEARKey")
55+
56+let A = valueOrErrorMessage(getString(this, c), "no mainTokenKey")
57+
58+let B = valueOrErrorMessage(getInteger(this, d), "no issuePercentileKey")
59+
60+let C = valueOrErrorMessage(getInteger(this, e), "no redeemPercentileKey")
61+
62+let D = valueOrErrorMessage(getInteger(this, f), "no minIssueKey")
63+
64+let E = valueOrErrorMessage(getInteger(this, g), "no minRedeemKey")
65+
66+let F = valueOrErrorMessage(getBoolean(this, h), "no whitelistOnlyKey")
67+
68+let G = valueOrErrorMessage(addressFromPublicKey(fromBase58String(valueOrErrorMessage(getString(this, i), "no oraclePKKey"))), "bad oracle address")
69+
70+let H = valueOrErrorMessage(getInteger(this, n), "no last rebalance price")
71+
72+let I = valueOrErrorMessage(getInteger(G, j), ((("bad oracle data at " + toString(G)) + ": no integer at ") + j))
73+
74+let J = "headPointer"
75+
76+let K = "tailPointer"
77+
78+let L = "queueSize"
79+
80+let M = {
81+ let N = getInteger(this, L)
82+ if ($isInstanceOf(N, "Int"))
83+ then {
84+ let O = N
85+ O
86+ }
87+ else 0
88+ }
89+
90+let P = {
91+ let N = getString(this, J)
92+ if ($isInstanceOf(N, "String"))
93+ then {
94+ let Q = N
95+ Q
96+ }
97+ else ""
98+ }
99+
100+let R = {
101+ let N = getString(this, K)
102+ if ($isInstanceOf(N, "String"))
103+ then {
104+ let Q = N
105+ Q
106+ }
107+ else ""
108+ }
109+
110+let S = "feesAccumulated"
111+
112+let T = {
113+ let N = getInteger(this, S)
114+ if ($isInstanceOf(N, "Int"))
115+ then {
116+ let O = N
117+ O
118+ }
119+ else 0
120+ }
121+
122+let U = "ISSUE"
123+
124+let V = "REDEEM"
125+
126+func W (X,Y,Z,aa,ab) = (((((((((X + "|") + toString(Y)) + "|") + Z) + "|") + toString(aa)) + "|") + ab) + "|")
127+
128+
129+func ac (ad) = if ((ad.caller == this))
130+ then throw("can't do")
131+ else {
132+ func ae (af) = throw(((((("only BULL(" + y) + ") or BEAR(") + z) + ") tokens are accepted, received: ") + af))
133+
134+ if (!(isDefined(ad.payment)))
135+ then ae("no attached payment")
136+ else {
137+ let ag = toBase58String(valueOrErrorMessage(value(ad.payment).assetId, "waves are not accepted here"))
138+ if (if ((ag != z))
139+ then (ag != y)
140+ else false)
141+ then ae(ag)
142+ else {
143+ let ah = value(ad.payment).amount
144+ let ai = if ((ag == z))
145+ then v
146+ else u
147+ let aj = if ((ag == z))
148+ then x
149+ else w
150+ let ak = fraction(ai, ah, aj)
151+ if ((E > ak))
152+ then throw((((((((((("Attached payment too small. Min redeem amount is " + toString((E / 1000000))) + " USDN, ") + "attached amount: ") + toString(ah)) + ", col: ") + toString(ai)) + ", circ: ") + toString(aj)) + ", estimated: ") + toString(ak)))
153+ else unit
154+ }
155+ }
156+ }
157+
158+
159+func al (am,X,Y,Z,aa,ab) = {
160+ let an = DataEntry(L, (M + 1))
161+ let ao = W(X, Y, Z, aa, ab)
162+ if ((M == 0))
163+ then WriteSet([DataEntry(J, am), DataEntry(K, am), DataEntry(am, ao), an])
164+ else {
165+ let ap = valueOrErrorMessage(getString(this, K), "can't get tail pointer")
166+ let aq = split(valueOrErrorMessage(getString(this, ap), "can't resolve pointer"), "|")
167+ let ar = ((((((((((aq[0] + "|") + aq[1]) + "|") + aq[2]) + "|") + aq[3]) + "|") + aq[4]) + "|") + am)
168+ WriteSet([DataEntry(ap, ar), DataEntry(am, ao), DataEntry(K, am), an])
169+ }
170+ }
171+
172+
173+func as () = if ((M == 0))
174+ then throw("nothing to settle")
175+ else {
176+ func at (au) = DataEntry(S, (T + au))
177+
178+ let av = DataEntry(L, (M - 1))
179+ let aw = (P == R)
180+ let ax = DataEntry(K, "")
181+ let ay = split(valueOrErrorMessage(getString(this, P), "bad head pointer"), "|")
182+ let X = ay[0]
183+ let Y = parseIntValue(ay[1])
184+ let Z = ay[2]
185+ let aa = parseIntValue(ay[3])
186+ let ab = addressFromStringValue(ay[4])
187+ let az = ay[5]
188+ if ((H > aa))
189+ then throw(((("corrupt state, rebalancedPriceIndex=" + toString(H)) + ", request price id=") + toString(aa)))
190+ else if ((aa > H))
191+ then throw("can't dequeue, too early, rebalance first")
192+ else if ((X == U))
193+ then {
194+ let aA = fraction(Y, B, 10000)
195+ let aB = (Y - aA)
196+ if ((Z == y))
197+ then {
198+ let aC = fraction(w, aB, u)
199+ let aD = [DataEntry(o, (u + aB)), DataEntry(q, (w + aC)), DataEntry(J, az), at(aA), av]
200+ ScriptResult(WriteSet(if (aw)
201+ then ax :: aD
202+ else aD), TransferSet([ScriptTransfer(ab, aC, fromBase58String(y))]))
203+ }
204+ else if ((Z == z))
205+ then {
206+ let aC = fraction(x, aB, v)
207+ let aD = [DataEntry(p, (v + aB)), DataEntry(r, (x + aC)), DataEntry(J, az), at(aA), av]
208+ ScriptResult(WriteSet(if (aw)
209+ then ax :: aD
210+ else aD), TransferSet([ScriptTransfer(ab, aC, fromBase58String(z))]))
211+ }
212+ else throw("bad token id")
213+ }
214+ else if ((X == V))
215+ then {
216+ let aE = Y
217+ if ((Z == y))
218+ then {
219+ let aF = fraction(u, aE, w)
220+ let aA = fraction(aF, C, 10000)
221+ let aG = if ((aF > aA))
222+ then (aF - aA)
223+ else 0
224+ let aD = [DataEntry(o, (u - aF)), DataEntry(q, (w - aE)), DataEntry(J, az), at(aA), av]
225+ ScriptResult(WriteSet(if (aw)
226+ then ax :: aD
227+ else aD), TransferSet([ScriptTransfer(ab, aG, fromBase58String(A))]))
228+ }
229+ else if ((Z == z))
230+ then {
231+ let aF = fraction(v, aE, x)
232+ let aA = fraction(aF, C, 10000)
233+ let aG = if ((aF > aA))
234+ then (aF - aA)
235+ else 0
236+ let aD = [DataEntry(p, (v - aF)), DataEntry(r, (x - aE)), DataEntry(J, az), at(aA), av]
237+ ScriptResult(WriteSet(if (aw)
238+ then ax :: aD
239+ else aD), TransferSet([ScriptTransfer(ab, aG, fromBase58String(A))]))
240+ }
241+ else throw("bad token id")
242+ }
243+ else throw(("bad action: " + X))
244+ }
245+
246+
247+func aH () = {
248+ func aI (aJ,aK,aL) = {
249+ let aM = 100
250+ let aN = ((if ((aL > aK))
251+ then aL
252+ else aK) / aM)
253+ let aO = ((if ((aK > aL))
254+ then aL
255+ else aK) / aM)
256+ let aP = (aO * aO)
257+ let aQ = (((9 * aN) * aN) - ((15 * aN) * aO))
258+ fraction(aJ, ((6 * aP) + aQ), ((7 * aP) + aQ))
259+ }
260+
261+ let aR = valueOrErrorMessage(getInteger(this, n), "inconsistent data")
262+ let aS = (aR + 1)
263+ let aT = valueOrErrorMessage(getInteger(G, ("price_index_" + toString(aR))), "bad oracle data for settled price height")
264+ let aU = valueOrErrorMessage(getInteger(G, ("price_" + toString(aT))), "bad oracle data for price")
265+ let aV = valueOrErrorMessage(getInteger(G, ("price_index_" + toString(aS))), "no next price height")
266+ let aW = valueOrErrorMessage(getInteger(G, ("price_" + toString(aV))), "no next price")
267+ let aX = if ((v > u))
268+ then u
269+ else v
270+ let aY = aI(aX, aU, aW)
271+ if ((aW > aU))
272+ then WriteSet([DataEntry(o, (u + aY)), DataEntry(p, (v - aY)), DataEntry(n, aS)])
273+ else if ((aU > aW))
274+ then WriteSet([DataEntry(o, (u - aY)), DataEntry(p, (v + aY)), DataEntry(n, aS)])
275+ else WriteSet([DataEntry(n, aS)])
276+ }
277+
278+
279+@Callable(ad)
280+func init (aZ,ba,bb,bc,bd) = if (isDefined(getString(this, a)))
281+ then throw("already initialized")
282+ else if (!(isDefined(ad.payment)))
283+ then throw("neutrino payment required")
284+ else if ((toBase58String(valueOrErrorMessage(value(ad.payment).assetId, "neutrino payment required")) != bb))
285+ then throw("payment not in neutrino")
286+ else {
287+ let be = value(ad.payment).amount
288+ let bf = (be / 2)
289+ let bg = (be - bf)
290+ if (if ((bg == 0))
291+ then true
292+ else (bf == 0))
293+ then throw("can't init balances")
294+ else {
295+ let bh = valueOrErrorMessage(getInteger(valueOrErrorMessage(addressFromPublicKey(fromBase58String(bc)), "bad oracle address"), j), "can't find last oracle price index")
296+ ScriptResult(WriteSet([DataEntry(a, aZ), DataEntry(b, ba), DataEntry(c, bb), DataEntry(i, bc), DataEntry(o, bf), DataEntry(p, bg), DataEntry(q, bf), DataEntry(r, bg), DataEntry(n, bh), DataEntry(s, bd), DataEntry(d, 0), DataEntry(e, 0), DataEntry(f, 0), DataEntry(g, 0), DataEntry(h, true)]), TransferSet([ScriptTransfer(ad.caller, bf, fromBase58String(aZ)), ScriptTransfer(ad.caller, bg, fromBase58String(ba))]))
297+ }
298+ }
299+
300+
301+
302+@Callable(O)
303+func setParams (bi,bj,bk,bl,bm) = if ((O.caller != this))
304+ then throw("only self can change whitelist")
305+ else WriteSet([DataEntry(d, bi), DataEntry(e, bj), DataEntry(f, bk), DataEntry(g, bl), DataEntry(h, bm)])
306+
307+
308+
309+@Callable(O)
310+func setWhitelist (bn) = if ((O.caller != this))
311+ then throw("only self can change whitelist")
312+ else WriteSet([DataEntry(s, bn)])
313+
314+
315+
316+@Callable(ad)
317+func requestRedeem () = if ((ac(ad) == unit))
318+ then {
319+ let ag = toBase58String(valueOrErrorMessage(value(ad.payment).assetId, "waves are not accepted here"))
320+ al(toBase58String(ad.transactionId), V, value(ad.payment).amount, ag, (I + 1), toString(ad.caller))
321+ }
322+ else throw("doesn't happen")
323+
324+
325+
326+@Callable(ad)
327+func requestIssue (bo) = if ((ad.caller == this))
328+ then throw("can't do")
329+ else if (if (F)
330+ then !(isDefined(indexOf(t, toString(ad.caller))))
331+ else false)
332+ then throw("only whitelisted can do")
333+ else {
334+ let ae = throw((((((("only BULL(" + y) + ") or BEAR(") + z) + ") tokens are available in exchange for USDN(") + A) + ")"))
335+ if (if ((bo != y))
336+ then (bo != z)
337+ else false)
338+ then ae
339+ else if (!(isDefined(ad.payment)))
340+ then ae
341+ else if ((value(ad.payment).assetId != fromBase58String(A)))
342+ then ae
343+ else if ((D > value(ad.payment).amount))
344+ then throw((("Attached payment too small. Min required: " + toString((D / 1000000))) + " USDN"))
345+ else al(toBase58String(ad.transactionId), U, value(ad.payment).amount, bo, (I + 1), toString(ad.caller))
346+ }
347+
348+
349+
350+@Callable(ad)
351+func settle () = {
352+ let bp = (P == "")
353+ let bq = (I > H)
354+ if (bp)
355+ then if (bq)
356+ then aH()
357+ else throw("[OK] all done, carry on")
358+ else {
359+ let ay = split(valueOrErrorMessage(getString(this, P), "bad head pointer"), "|")
360+ let aa = parseIntValue(ay[3])
361+ if ((aa > H))
362+ then if (bq)
363+ then aH()
364+ else throw("[OK] need to wait")
365+ else if ((aa == H))
366+ then as()
367+ else throw("corrupt data, future price id already rebalanced")
368+ }
369+ }
370+
371+

github/deemru/w8io/3ef1775 
36.42 ms