tx · 4QparfGcsQhcQ2AbW7zTB1DsPT4Xrmd78gxHCAx4LRQZ

3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB:  -0.01400000 Waves

2020.02.02 12:31 [881353] smart account 3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB > SELF 0.00000000 Waves

{ "type": 13, "id": "4QparfGcsQhcQ2AbW7zTB1DsPT4Xrmd78gxHCAx4LRQZ", "fee": 1400000, "feeAssetId": null, "timestamp": 1580635901124, "version": 1, "sender": "3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB", "senderPublicKey": "Gd5NihbWQoWuTnSvq25TuV2BYZG4U1e9KDqZn9zBPix7", "proofs": [ "3TaqPEXWsmEXTcKx91EFPWeEGkXZh4KCNj5VQqKUHCpwfU6PfqKCN4gWqGuGsJ347BmjmCMyd2j3FEHzSirPgqQs" ], "script": "base64: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dGVkAAAAAQUAAAANY2FsbGVyQWRkcmVzcwQAAAAOYWRkcmVzc2VzQXJyYXkJAARMAAAAAgkBAAAACGdldFZhbHVlAAAAAgUAAAAJYWRkcmVzc2VzAgAAAAhhZGRyZXNzMQkABEwAAAACCQEAAAAIZ2V0VmFsdWUAAAACBQAAAAlhZGRyZXNzZXMCAAAACGFkZHJlc3MyCQAETAAAAAIJAQAAAAhnZXRWYWx1ZQAAAAIFAAAACWFkZHJlc3NlcwIAAAAIYWRkcmVzczMJAARMAAAAAgkBAAAACGdldFZhbHVlAAAAAgUAAAAJYWRkcmVzc2VzAgAAAAhhZGRyZXNzNAkABEwAAAACCQEAAAAIZ2V0VmFsdWUAAAACBQAAAAlhZGRyZXNzZXMCAAAACGFkZHJlc3M1CQAETAAAAAIJAQAAAAhnZXRWYWx1ZQAAAAIFAAAACWFkZHJlc3NlcwIAAAAIYWRkcmVzczYFAAAAA25pbAQAAAAOdG90YWxBZGRyZXNzZXMEAAAADSRsaXN0NzAzNjcwNzYFAAAADmFkZHJlc3Nlc0FycmF5BAAAAA0kc2l6ZTcwMzY3MDc2CQABkAAAAAEFAAAADSRsaXN0NzAzNjcwNzYEAAAADSRhY2MwNzAzNjcwNzYAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplNzAzNjcwNzYAAAAAAAAAAAAFAAAADSRhY2MwNzAzNjcwNzYEAAAADSRhY2MxNzAzNjcwNzYJAQAAAAxjb3VudFBhcnRpZXMAAAACBQAAAA0kYWNjMDcwMzY3MDc2CQABkQAAAAIFAAAADSRsaXN0NzAzNjcwNzYAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplNzAzNjcwNzYAAAAAAAAAAAEFAAAADSRhY2MxNzAzNjcwNzYEAAAADSRhY2MyNzAzNjcwNzYJAQAAAAxjb3VudFBhcnRpZXMAAAACBQAAAA0kYWNjMTcwMzY3MDc2CQABkQAAAAIFAAAADSRsaXN0NzAzNjcwNzYAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplNzAzNjcwNzYAAAAAAAAAAAIFAAAADSRhY2MyNzAzNjcwNzYEAAAADSRhY2MzNzAzNjcwNzYJAQAAAAxjb3VudFBhcnRpZXMAAAACBQAAAA0kYWNjMjcwMzY3MDc2CQABkQAAAAIFAAAADSRsaXN0NzAzNjcwNzYAAAAAAAAAAAIDCQAAAAAAAAIFAAAADSRzaXplNzAzNjcwNzYAAAAAAAAAAAMFAAAADSRhY2MzNzAzNjcwNzYEAAAADSRhY2M0NzAzNjcwNzYJAQAAAAxjb3VudFBhcnRpZXMAAAACBQAAAA0kYWNjMzcwMzY3MDc2CQABkQAAAAIFAAAADSRsaXN0NzAzNjcwNzYAAAAAAAAAAAMDCQAAAAAAAAIFAAAADSRzaXplNzAzNjcwNzYAAAAAAAAAAAQFAAAADSRhY2M0NzAzNjcwNzYEAAAADSRhY2M1NzAzNjcwNzYJAQAAAAxjb3VudFBhcnRpZXMAAAACBQAAAA0kYWNjNDcwMzY3MDc2CQABkQAAAAIFAAAADSRsaXN0NzAzNjcwNzYAAAAAAAAAAAQDCQAAAAAAAAIFAAAADSRzaXplNzAzNjcwNzYAAAAAAAAAAAUFAAAADSRhY2M1NzAzNjcwNzYEAAAADSRhY2M2NzAzNjcwNzYJAQAAAAxjb3VudFBhcnRpZXMAAAACBQAAAA0kYWNjNTcwMzY3MDc2CQABkQAAAAIFAAAADSRsaXN0NzAzNjcwNzYAAAAAAAAAAAUDCQAAAAAAAAIFAAAADSRzaXplNzAzNjcwNzYAAAAAAAAAAAYFAAAADSRhY2M2NzAzNjcwNzYEAAAADSRhY2M3NzAzNjcwNzYJAQAAAAxjb3VudFBhcnRpZXMAAAACBQAAAA0kYWNjNjcwMzY3MDc2CQABkQAAAAIFAAAADSRsaXN0NzAzNjcwNzYAAAAAAAAAAAYJAAACAAAAAQIAAAASTGlzdCBzaXplIGV4Y2VlZCA2BAAAAA9nbG9iYWxEYXRhVGl0bGUJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAACXRpdGxlX01BXwkAAlgAAAABBQAAAAJpZAUAAAAFdGl0bGUEAAAADmdsb2JhbERhdGFIYXNoCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAAAhoYXNoX01BXwkAAlgAAAABBQAAAAJpZAUAAAAEaGFzaAQAAAAOZ2xvYmFsRGF0YUpzb24JAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhkYXRhX01BXwkAAlgAAAABBQAAAAJpZAIAAAABXwUAAAANY2FsbGVyQWRkcmVzcwUAAAAJYWRkcmVzc2VzBAAAAA9nbG9iYWxEYXRhT3duZXIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAA1jYWxsZXJBZGRyZXNzAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAZfb3duZXIFAAAADWNhbGxlckFkZHJlc3MEAAAAD2RhdGFXaGl0ZUxpc3RlZAkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAARYWRkcl9XSElURUxJU1RFRF8FAAAADWNhbGxlckFkZHJlc3MJAABlAAAAAgUAAAAWY2FsbGVySXNXaGl0ZUxpc3RlZE51bQUAAAAOdG90YWxBZGRyZXNzZXMDCQAAAAAAAAIFAAAADnRvdGFsQWRkcmVzc2VzAAAAAAAAAAACAwkAAGYAAAACBQAAABZjYWxsZXJJc1doaXRlTGlzdGVkTnVtAAAAAAAAAAAAAwkAAGYAAAACBQAAAA50b3RhbEFkZHJlc3NlcwUAAAAWY2FsbGVySXNXaGl0ZUxpc3RlZE51bQkAAAIAAAABAgAAACpZb3UgZG9uJ3QgaGF2ZSBlbm91Z2ggY2VydGlmaWNhdGlvbiBjcmVkaXQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIFAAAAD2dsb2JhbERhdGFUaXRsZQkABEwAAAACBQAAAA5nbG9iYWxEYXRhSGFzaAkABEwAAAACBQAAAA5nbG9iYWxEYXRhSnNvbgkABEwAAAACBQAAAA9nbG9iYWxEYXRhT3duZXIJAARMAAAAAgUAAAAPZGF0YVdoaXRlTGlzdGVkCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAAIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAECAAAABF9NQV8JAAJYAAAAAQUAAAACaWQCAAAAB1BFTkRJTkcFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAAAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAABAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuBQAAAANuaWwEAAAAB3BheW1lbnQJAQAAAAdleHRyYWN0AAAAAQgFAAAABmludm9rZQAAAAdwYXltZW50BAAAAAZhbW91bnQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAGYW1vdW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAdwYXltZW50AAAABmFtb3VudAAAAAAAAAAAAAQAAAAOcGF5bWVudEFzc2V0SWQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkBAAAAB2V4dHJhY3QAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkBQAAAA1hY2NlcHRlZFRva2VuBAAAAAxjdXJyZW50UHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAACHZlcmlmaWVyCQABLAAAAAICAAAAEmNlcnRpZmljYXRpb25fZmVlXwkAAlgAAAABCQEAAAAHZXh0cmFjdAAAAAEFAAAADnBheW1lbnRBc3NldElkAwkAAGYAAAACCQAAaAAAAAIFAAAADGN1cnJlbnRQcmljZQUAAAAOdG90YWxBZGRyZXNzZXMFAAAABmFtb3VudAkAAAIAAAABCQABLAAAAAICAAAAIVRoZSBwcmljZSBpcyB3cm9uZywgaXQgc2hvdWxkIGJlIAkAAaQAAAABCQAAaAAAAAIFAAAADGN1cnJlbnRQcmljZQUAAAAOdG90YWxBZGRyZXNzZXMJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIFAAAAD2dsb2JhbERhdGFUaXRsZQkABEwAAAACBQAAAA5nbG9iYWxEYXRhSGFzaAkABEwAAAACBQAAAA5nbG9iYWxEYXRhSnNvbgkABEwAAAACBQAAAA9nbG9iYWxEYXRhT3duZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAAAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAdQRU5ESU5HCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAQIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAEYmFuawUAAAAGYW1vdW50BQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAAAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAEAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4FAAAAA25pbAMJAAAAAAAAAgUAAAAOdG90YWxBZGRyZXNzZXMAAAAAAAAAAAMDCQAAZgAAAAIFAAAAFmNhbGxlcklzV2hpdGVMaXN0ZWROdW0AAAAAAAAAAAADCQAAZgAAAAIFAAAADnRvdGFsQWRkcmVzc2VzBQAAABZjYWxsZXJJc1doaXRlTGlzdGVkTnVtCQAAAgAAAAECAAAAKllvdSBkb24ndCBoYXZlIGVub3VnaCBjZXJ0aWZpY2F0aW9uIGNyZWRpdAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgUAAAAPZ2xvYmFsRGF0YVRpdGxlCQAETAAAAAIFAAAADmdsb2JhbERhdGFIYXNoCQAETAAAAAIFAAAADmdsb2JhbERhdGFKc29uCQAETAAAAAIFAAAAD2dsb2JhbERhdGFPd25lcgkABEwAAAACBQAAAA9kYXRhV2hpdGVMaXN0ZWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAAAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAdQRU5ESU5HCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAQIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAICAAAABF9NQV8JAAJYAAAAAQUAAAACaWQCAAAAB1BFTkRJTkcFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAAAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAABAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAgAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgUAAAADbmlsBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAZpbnZva2UAAAAHcGF5bWVudAQAAAAGYW1vdW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAdwYXltZW50AAAABmFtb3VudAkBAAAAB2V4dHJhY3QAAAABCAUAAAAHcGF5bWVudAAAAAZhbW91bnQAAAAAAAAAAAAEAAAADnBheW1lbnRBc3NldElkAwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAQAAAAdleHRyYWN0AAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAUAAAANYWNjZXB0ZWRUb2tlbgQAAAAMY3VycmVudFByaWNlCQEAAAARQGV4dHJOYXRpdmUoMTA1MCkAAAACBQAAAAh2ZXJpZmllcgkAASwAAAACAgAAABJjZXJ0aWZpY2F0aW9uX2ZlZV8JAAJYAAAAAQkBAAAAB2V4dHJhY3QAAAABBQAAAA5wYXltZW50QXNzZXRJZAMJAABmAAAAAgkAAGgAAAACBQAAAAxjdXJyZW50UHJpY2UFAAAADnRvdGFsQWRkcmVzc2VzBQAAAAZhbW91bnQJAAACAAAAAQkAASwAAAACAgAAACFUaGUgcHJpY2UgaXMgd3JvbmcsIGl0IHNob3VsZCBiZSAJAAGkAAAAAQkAAGgAAAACBQAAAAxjdXJyZW50UHJpY2UFAAAADnRvdGFsQWRkcmVzc2VzCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACBQAAAA9nbG9iYWxEYXRhVGl0bGUJAARMAAAAAgUAAAAOZ2xvYmFsRGF0YUhhc2gJAARMAAAAAgUAAAAOZ2xvYmFsRGF0YUpzb24JAARMAAAAAgUAAAAPZ2xvYmFsRGF0YU93bmVyCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAAIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAECAAAABF9NQV8JAAJYAAAAAQUAAAACaWQCAAAAB1BFTkRJTkcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAACAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAdQRU5ESU5HBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAARiYW5rBQAAAAZhbW91bnQFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAAAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAQAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAIAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4FAAAAA25pbAMJAAAAAAAAAgUAAAAOdG90YWxBZGRyZXNzZXMAAAAAAAAAAAQDCQAAZgAAAAIFAAAAFmNhbGxlcklzV2hpdGVMaXN0ZWROdW0AAAAAAAAAAAADCQAAZgAAAAIFAAAADnRvdGFsQWRkcmVzc2VzBQAAABZjYWxsZXJJc1doaXRlTGlzdGVkTnVtCQAAAgAAAAECAAAAKllvdSBkb24ndCBoYXZlIGVub3VnaCBjZXJ0aWZpY2F0aW9uIGNyZWRpdAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgUAAAAPZ2xvYmFsRGF0YVRpdGxlCQAETAAAAAIFAAAADmdsb2JhbERhdGFIYXNoCQAETAAAAAIFAAAADmdsb2JhbERhdGFKc29uCQAETAAAAAIFAAAAD2dsb2JhbERhdGFPd25lcgkABEwAAAACBQAAAA9kYXRhV2hpdGVMaXN0ZWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAAAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAdQRU5ESU5HCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAQIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAICAAAABF9NQV8JAAJYAAAAAQUAAAACaWQCAAAAB1BFTkRJTkcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAADAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAdQRU5ESU5HBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAAAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAQAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAIAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAADAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuBQAAAANuaWwEAAAAB3BheW1lbnQJAQAAAAdleHRyYWN0AAAAAQgFAAAABmludm9rZQAAAAdwYXltZW50BAAAAAZhbW91bnQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAGYW1vdW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAdwYXltZW50AAAABmFtb3VudAAAAAAAAAAAAAQAAAAOcGF5bWVudEFzc2V0SWQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkBAAAAB2V4dHJhY3QAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkBQAAAA1hY2NlcHRlZFRva2VuBAAAAAxjdXJyZW50UHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAACHZlcmlmaWVyCQABLAAAAAICAAAAEmNlcnRpZmljYXRpb25fZmVlXwkAAlgAAAABCQEAAAAHZXh0cmFjdAAAAAEFAAAADnBheW1lbnRBc3NldElkAwkAAGYAAAACCQAAaAAAAAIFAAAADGN1cnJlbnRQcmljZQUAAAAOdG90YWxBZGRyZXNzZXMFAAAABmFtb3VudAkAAAIAAAABCQABLAAAAAICAAAAIVRoZSBwcmljZSBpcyB3cm9uZywgaXQgc2hvdWxkIGJlIAkAAaQAAAABCQAAaAAAAAIFAAAADGN1cnJlbnRQcmljZQUAAAAOdG90YWxBZGRyZXNzZXMJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIFAAAAD2dsb2JhbERhdGFUaXRsZQkABEwAAAACBQAAAA5nbG9iYWxEYXRhSGFzaAkABEwAAAACBQAAAA5nbG9iYWxEYXRhSnNvbgkABEwAAAACBQAAAA9nbG9iYWxEYXRhT3duZXIJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAAAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAdQRU5ESU5HCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAQIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAICAAAABF9NQV8JAAJYAAAAAQUAAAACaWQCAAAAB1BFTkRJTkcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAADAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAdQRU5ESU5HBQAAAANuaWwJAQAAAAtUcmFuc2ZlclNldAAAAAEJAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABBQAAAARiYW5rBQAAAAZhbW91bnQFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAAAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAQAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAIAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAADAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuBQAAAANuaWwDCQAAAAAAAAIFAAAADnRvdGFsQWRkcmVzc2VzAAAAAAAAAAAFAwkAAGYAAAACBQAAABZjYWxsZXJJc1doaXRlTGlzdGVkTnVtAAAAAAAAAAAAAwkAAGYAAAACBQAAAA50b3RhbEFkZHJlc3NlcwUAAAAWY2FsbGVySXNXaGl0ZUxpc3RlZE51bQkAAAIAAAABAgAAACpZb3UgZG9uJ3QgaGF2ZSBlbm91Z2ggY2VydGlmaWNhdGlvbiBjcmVkaXQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIFAAAAD2dsb2JhbERhdGFUaXRsZQkABEwAAAACBQAAAA5nbG9iYWxEYXRhSGFzaAkABEwAAAACBQAAAA5nbG9iYWxEYXRhSnNvbgkABEwAAAACBQAAAA9nbG9iYWxEYXRhT3duZXIJAARMAAAAAgUAAAAPZGF0YVdoaXRl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YW1vdW50BQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAAAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAEAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAACAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAwAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAQAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4FAAAAA25pbAMJAAAAAAAAAgUAAAAOdG90YWxBZGRyZXNzZXMAAAAAAAAAAAYDCQAAZgAAAAIFAAAAFmNhbGxlcklzV2hpdGVMaXN0ZWROdW0AAAAAAAAAAAADCQAAZgAAAAIFAAAADnRvdGFsQWRkcmVzc2VzBQAAABZjYWxsZXJJc1doaXRlTGlzdGVkTnVtCQAAAgAAAAECAAAAKllvdSBkb24ndCBoYXZlIGVub3VnaCBjZXJ0aWZpY2F0aW9uIGNyZWRpdAkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgUAAAAPZ2xvYmFsRGF0YVRpdGxlCQAETAAAAAIFAAAADmdsb2JhbERhdGFIYXNoCQAETAAAAAIFAAAADmdsb2JhbERhdGFKc29uCQAETAAAAAIFAAAAD2dsb2JhbERhdGFPd25lcgkABEwAAAACBQAAAA9kYXRhV2hpdGVMaXN0ZWQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAAAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAdQRU5ESU5HCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAQIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAICAAAABF9NQV8JAAJYAAAAAQUAAAACaWQCAAAAB1BFTkRJTkcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAADAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAdQRU5ESU5HCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAABAIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAUCAAAABF9NQV8JAAJYAAAAAQUAAAACaWQCAAAAB1BFTkRJTkcFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAAAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAABAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAgAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAMAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAEAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAABQAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgUAAAADbmlsBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAZpbnZva2UAAAAHcGF5bWVudAQAAAAGYW1vdW50AwkBAAAACWlzRGVmaW5lZAAAAAEIBQAAAAdwYXltZW50AAAABmFtb3VudAkB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cmVzc2VzQXJyYXkAAAAAAAAAAAIAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAADAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAABAAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAUAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4FAAAAA25pbAkAAAIAAAABCQABLAAAAAICAAAAHk5lZWRzIDIgdG8gNiBwYXJ0aWVzIGFkZHJlc3NlcwkAAaQAAAABBQAAAA50b3RhbEFkZHJlc3NlcwAAAAZpbnZva2UBAAAADXNpZ25BZ3JlZW1lbnQAAAACAAAABGhhc2gAAAALYWdyZWVtZW50SWQEAAAAB3BheW1lbnQJAQAAAAdleHRyYWN0AAAAAQgFAAAABmludm9rZQAAAAdwYXltZW50BAAAAAZhbW91bnQJAQAAAAdleHRyYWN0AAAAAQgFAAAAB3BheW1lbnQAAAAGYW1vdW50BAAAAAJpZAkBAAAAB2V4dHJhY3QAAAABCAUAAAAGaW52b2tlAAAADXRyYW5zYWN0aW9uSWQEAAAABnNpZ25lcgkAAlgAAAABCAgFAAAABmludm9rZQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAE3NpZ25pbmdSZXF1ZXN0RXhpc3QJAQAAABRjaGVja0lmUGVuZGluZ1RvU2lnbgAAAAEJAAEsAAAAAgkAASwAAAACBQAAAAZzaWduZXICAAAABF9NQV8FAAAAC2FncmVlbWVudElkAwkBAAAAASEAAAABBQAAABNzaWduaW5nUmVxdWVzdEV4aXN0CQAAAgAAAAECAAAAI1NvcnJ5IHRoZXJlIGlzIG5vIHBlbmRpbmcgc2lnbmF0dXJlCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAABnNpZ25lcgIAAAAEX01BXwUAAAALYWdyZWVtZW50SWQJAAEsAAAAAgIAAAAHU0lHTkVEXwkAAlgAAAABBQAAAAJpZAUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAGc2lnbmVyAAAAAAAAB6EgBQAAAAR1bml0BQAAAANuaWwAAAAA5ibdyg==", "chainId": 84, "height": 881353, "spentComplexity": 0 } View: original | compacted Prev: vkHFrEZyDDHUnmTE5cJafghBGupSwtkNuQVuhofFAsE Next: 3oV4wXKCwxuW1kR5eYLfbrUv2FDdBkJcYNS3xhEZnSCy Diff:
OldNewDifferences
153153 let A = extract(x.transactionId)
154154 let k = toBase58String(x.caller.bytes)
155155 let D = j(k)
156- let E = extract(x.payment)
157- let F = if (isDefined(E.amount))
158- then extract(E.amount)
159- else 0
160- let G = if (isDefined(E.assetId))
161- then extract(E.assetId)
162- else c
163- let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
164156 let K = [t(J, "address1"), t(J, "address2"), t(J, "address3"), t(J, "address4"), t(J, "address5"), t(J, "address6")]
165157 let L = {
166158 let M = K
213205 then if ((L > D))
214206 then throw("You don't have enough certification credit")
215207 else ScriptResult(WriteSet([W, X, Y, Z, aa, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c)]))
216- else if (((H * L) > F))
217- then throw(("The price is wrong, it should be " + toString((H * L))))
218- else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c)]))
208+ else {
209+ let E = extract(x.payment)
210+ let F = if (isDefined(E.amount))
211+ then extract(E.amount)
212+ else 0
213+ let G = if (isDefined(E.assetId))
214+ then extract(E.assetId)
215+ else c
216+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
217+ if (((H * L) > F))
218+ then throw(("The price is wrong, it should be " + toString((H * L))))
219+ else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c)]))
220+ }
219221 else if ((L == 3))
220222 then if ((D > 0))
221223 then if ((L > D))
222224 then throw("You don't have enough certification credit")
223225 else ScriptResult(WriteSet([W, X, Y, Z, aa, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c)]))
224- else if (((H * L) > F))
225- then throw(("The price is wrong, it should be " + toString((H * L))))
226- else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c)]))
226+ else {
227+ let E = extract(x.payment)
228+ let F = if (isDefined(E.amount))
229+ then extract(E.amount)
230+ else 0
231+ let G = if (isDefined(E.assetId))
232+ then extract(E.assetId)
233+ else c
234+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
235+ if (((H * L) > F))
236+ then throw(("The price is wrong, it should be " + toString((H * L))))
237+ else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c)]))
238+ }
227239 else if ((L == 4))
228240 then if ((D > 0))
229241 then if ((L > D))
230242 then throw("You don't have enough certification credit")
231243 else ScriptResult(WriteSet([W, X, Y, Z, aa, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c)]))
232- else if (((H * L) > F))
233- then throw(("The price is wrong, it should be " + toString((H * L))))
234- else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c)]))
244+ else {
245+ let E = extract(x.payment)
246+ let F = if (isDefined(E.amount))
247+ then extract(E.amount)
248+ else 0
249+ let G = if (isDefined(E.assetId))
250+ then extract(E.assetId)
251+ else c
252+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
253+ if (((H * L) > F))
254+ then throw(("The price is wrong, it should be " + toString((H * L))))
255+ else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c)]))
256+ }
235257 else if ((L == 5))
236258 then if ((D > 0))
237259 then if ((L > D))
238260 then throw("You don't have enough certification credit")
239261 else ScriptResult(WriteSet([W, X, Y, Z, aa, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c), ScriptTransfer(addressFromStringValue(K[4]), 0, c)]))
240- else if (((H * L) > F))
241- then throw(("The price is wrong, it should be " + toString((H * L))))
242- else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c), ScriptTransfer(addressFromStringValue(K[4]), 0, c)]))
262+ else {
263+ let E = extract(x.payment)
264+ let F = if (isDefined(E.amount))
265+ then extract(E.amount)
266+ else 0
267+ let G = if (isDefined(E.assetId))
268+ then extract(E.assetId)
269+ else c
270+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
271+ if (((H * L) > F))
272+ then throw(("The price is wrong, it should be " + toString((H * L))))
273+ else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c), ScriptTransfer(addressFromStringValue(K[4]), 0, c)]))
274+ }
243275 else if ((L == 6))
244276 then if ((D > 0))
245277 then if ((L > D))
246278 then throw("You don't have enough certification credit")
247279 else ScriptResult(WriteSet([W, X, Y, Z, aa, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[5] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c), ScriptTransfer(addressFromStringValue(K[4]), 0, c), ScriptTransfer(addressFromStringValue(K[5]), 0, c)]))
248- else if (((H * L) > F))
249- then throw(("The price is wrong, it should be " + toString((H * L))))
250- else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[5] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c), ScriptTransfer(addressFromStringValue(K[4]), 0, c), ScriptTransfer(addressFromStringValue(K[5]), 0, c)]))
280+ else {
281+ let E = extract(x.payment)
282+ let F = if (isDefined(E.amount))
283+ then extract(E.amount)
284+ else 0
285+ let G = if (isDefined(E.assetId))
286+ then extract(E.assetId)
287+ else c
288+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
289+ if (((H * L) > F))
290+ then throw(("The price is wrong, it should be " + toString((H * L))))
291+ else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[5] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c), ScriptTransfer(addressFromStringValue(K[4]), 0, c), ScriptTransfer(addressFromStringValue(K[5]), 0, c)]))
292+ }
251293 else throw(("Needs 2 to 6 parties addresses" + toString(L)))
252294 }
253295
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = extract(addressFromString("3N2s5RtaHPBenCsx2ECcoFRbYHx3noZhXW1"))
55
66 let b = "3N1E6tXddRoVaRfQ9dQ3vg5LaW2fsd8HKub"
77
88 let c = base58'Gf9t8FA4H3ssoZPCwrg3KwUFCci8zuUFP9ssRsUY3s6a'
99
1010 func d (e,f) = {
1111 let g = getString(this, (e + f))
1212 if ($isInstanceOf(g, "String"))
1313 then {
1414 let h = g
1515 h
1616 }
1717 else "NONE"
1818 }
1919
2020
2121 func i (f) = {
2222 let g = getString(this, f)
2323 if ($isInstanceOf(g, "String"))
2424 then {
2525 let h = g
2626 h
2727 }
2828 else "NONE"
2929 }
3030
3131
3232 func j (k) = {
3333 let g = getInteger(this, ("addr_WHITELISTED_" + k))
3434 if ($isInstanceOf(g, "Int"))
3535 then {
3636 let h = g
3737 h
3838 }
3939 else 0
4040 }
4141
4242
4343 func l (m) = if (if ((size(m) == 35))
4444 then (take(m, 2) == "3N")
4545 else false)
4646 then true
4747 else (take(m, 2) == "3M")
4848
4949
5050 func n (o,m) = if ((size(m) > 0))
5151 then (o + 1)
5252 else (o + 0)
5353
5454
5555 func p (q) = {
5656 let g = getString(this, q)
5757 if ($isInstanceOf(g, "String"))
5858 then {
5959 let h = g
6060 if ((h == "PENDING"))
6161 then true
6262 else false
6363 }
6464 else false
6565 }
6666
6767
6868 func r (s) = take(drop(s, 1), value(indexOf(drop(s, 1), "\"")))
6969
7070
7171 func t (s,q) = {
7272 let u = value(indexOf(s, (("\"" + q) + "\":")))
7373 let v = drop(s, ((u + size(q)) + 3))
7474 let w = r(v)
7575 w
7676 }
7777
7878
7979 @Callable(x)
8080 func fileCertification (y,z,f,v) = {
8181 let A = extract(x.transactionId)
8282 let B = d(y, f)
8383 let C = i(f)
8484 let k = toBase58String(x.caller.bytes)
8585 let D = j(k)
8686 if ((B != "NONE"))
8787 then throw("This entry already exist")
8888 else if ((C != "NONE"))
8989 then throw("This uuid already exist")
9090 else if ((size(f) > 36))
9191 then throw("Uuid is too long")
9292 else if ((size(y) > 64))
9393 then throw("Hash is too long")
9494 else if ((size(z) > 64))
9595 then throw("Title is too long")
9696 else if ((D > 0))
9797 then ScriptResult(WriteSet([DataEntry(f, toBase58String(A)), DataEntry((y + f), toBase58String(A)), DataEntry((z + f), toBase58String(A)), DataEntry(("addr_WHITELISTED_" + k), (D - 1)), DataEntry(((("data_fc_" + toBase58String(A)) + "_") + k), v)]), TransferSet([ScriptTransfer(x.caller, 500000, unit)]))
9898 else {
9999 let E = extract(x.payment)
100100 let F = extract(E.amount)
101101 let G = if (isDefined(E.assetId))
102102 then extract(E.assetId)
103103 else throw("Waves is not accepted as payment")
104104 let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
105105 if ((c != G))
106106 then throw("This token is not accepted at the moment")
107107 else if (if ((F != H))
108108 then (0 >= D)
109109 else false)
110110 then throw("The price is wrong")
111111 else ScriptResult(WriteSet([DataEntry(f, toBase58String(A)), DataEntry((y + f), toBase58String(A)), DataEntry((z + f), toBase58String(A)), DataEntry(((("data_fc_" + toBase58String(A)) + "_") + k), v)]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, E.assetId)]))
112112 }
113113 }
114114
115115
116116
117117 @Callable(x)
118118 func emailCertification (I,f,v) = {
119119 let A = extract(x.transactionId)
120120 let B = d(I, f)
121121 let C = i(f)
122122 let k = toBase58String(x.caller.bytes)
123123 let D = j(k)
124124 if ((B != "NONE"))
125125 then throw("This entry already exist")
126126 else if ((C != "NONE"))
127127 then throw("This uuid already exist")
128128 else if ((size(f) > 36))
129129 then throw("Uuid is too long")
130130 else if ((D > 0))
131131 then ScriptResult(WriteSet([DataEntry(f, toBase58String(A)), DataEntry((I + f), toBase58String(A)), DataEntry(("addr_WHITELISTED_" + k), (D - 1)), DataEntry(((("data_ec_" + toBase58String(A)) + "_") + k), v)]), TransferSet([ScriptTransfer(x.caller, 500000, unit)]))
132132 else {
133133 let E = extract(x.payment)
134134 let F = extract(E.amount)
135135 let G = if (isDefined(E.assetId))
136136 then extract(E.assetId)
137137 else throw("Waves is not accepted as payment")
138138 let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
139139 if ((c != G))
140140 then throw("This token is not accepted at the moment")
141141 else if (if ((F != H))
142142 then (0 >= D)
143143 else false)
144144 then throw("The price is wrong")
145145 else ScriptResult(WriteSet([DataEntry(f, toBase58String(A)), DataEntry((I + f), toBase58String(A)), DataEntry(((("data_ec_" + toBase58String(A)) + "_") + k), v)]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, E.assetId)]))
146146 }
147147 }
148148
149149
150150
151151 @Callable(x)
152152 func createAgreement (y,z,J) = {
153153 let A = extract(x.transactionId)
154154 let k = toBase58String(x.caller.bytes)
155155 let D = j(k)
156- let E = extract(x.payment)
157- let F = if (isDefined(E.amount))
158- then extract(E.amount)
159- else 0
160- let G = if (isDefined(E.assetId))
161- then extract(E.assetId)
162- else c
163- let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
164156 let K = [t(J, "address1"), t(J, "address2"), t(J, "address3"), t(J, "address4"), t(J, "address5"), t(J, "address6")]
165157 let L = {
166158 let M = K
167159 let N = size(M)
168160 let O = 0
169161 if ((N == 0))
170162 then O
171163 else {
172164 let P = n(O, M[0])
173165 if ((N == 1))
174166 then P
175167 else {
176168 let Q = n(P, M[1])
177169 if ((N == 2))
178170 then Q
179171 else {
180172 let R = n(Q, M[2])
181173 if ((N == 3))
182174 then R
183175 else {
184176 let S = n(R, M[3])
185177 if ((N == 4))
186178 then S
187179 else {
188180 let T = n(S, M[4])
189181 if ((N == 5))
190182 then T
191183 else {
192184 let U = n(T, M[5])
193185 if ((N == 6))
194186 then U
195187 else {
196188 let V = n(U, M[6])
197189 throw("List size exceed 6")
198190 }
199191 }
200192 }
201193 }
202194 }
203195 }
204196 }
205197 }
206198 let W = DataEntry(("title_MA_" + toBase58String(A)), z)
207199 let X = DataEntry(("hash_MA_" + toBase58String(A)), y)
208200 let Y = DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J)
209201 let Z = DataEntry((((k + "_MA_") + toBase58String(A)) + "_owner"), k)
210202 let aa = DataEntry(("addr_WHITELISTED_" + k), (D - L))
211203 if ((L == 2))
212204 then if ((D > 0))
213205 then if ((L > D))
214206 then throw("You don't have enough certification credit")
215207 else ScriptResult(WriteSet([W, X, Y, Z, aa, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c)]))
216- else if (((H * L) > F))
217- then throw(("The price is wrong, it should be " + toString((H * L))))
218- else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c)]))
208+ else {
209+ let E = extract(x.payment)
210+ let F = if (isDefined(E.amount))
211+ then extract(E.amount)
212+ else 0
213+ let G = if (isDefined(E.assetId))
214+ then extract(E.assetId)
215+ else c
216+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
217+ if (((H * L) > F))
218+ then throw(("The price is wrong, it should be " + toString((H * L))))
219+ else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c)]))
220+ }
219221 else if ((L == 3))
220222 then if ((D > 0))
221223 then if ((L > D))
222224 then throw("You don't have enough certification credit")
223225 else ScriptResult(WriteSet([W, X, Y, Z, aa, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c)]))
224- else if (((H * L) > F))
225- then throw(("The price is wrong, it should be " + toString((H * L))))
226- else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c)]))
226+ else {
227+ let E = extract(x.payment)
228+ let F = if (isDefined(E.amount))
229+ then extract(E.amount)
230+ else 0
231+ let G = if (isDefined(E.assetId))
232+ then extract(E.assetId)
233+ else c
234+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
235+ if (((H * L) > F))
236+ then throw(("The price is wrong, it should be " + toString((H * L))))
237+ else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c)]))
238+ }
227239 else if ((L == 4))
228240 then if ((D > 0))
229241 then if ((L > D))
230242 then throw("You don't have enough certification credit")
231243 else ScriptResult(WriteSet([W, X, Y, Z, aa, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c)]))
232- else if (((H * L) > F))
233- then throw(("The price is wrong, it should be " + toString((H * L))))
234- else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c)]))
244+ else {
245+ let E = extract(x.payment)
246+ let F = if (isDefined(E.amount))
247+ then extract(E.amount)
248+ else 0
249+ let G = if (isDefined(E.assetId))
250+ then extract(E.assetId)
251+ else c
252+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
253+ if (((H * L) > F))
254+ then throw(("The price is wrong, it should be " + toString((H * L))))
255+ else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c)]))
256+ }
235257 else if ((L == 5))
236258 then if ((D > 0))
237259 then if ((L > D))
238260 then throw("You don't have enough certification credit")
239261 else ScriptResult(WriteSet([W, X, Y, Z, aa, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c), ScriptTransfer(addressFromStringValue(K[4]), 0, c)]))
240- else if (((H * L) > F))
241- then throw(("The price is wrong, it should be " + toString((H * L))))
242- else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c), ScriptTransfer(addressFromStringValue(K[4]), 0, c)]))
262+ else {
263+ let E = extract(x.payment)
264+ let F = if (isDefined(E.amount))
265+ then extract(E.amount)
266+ else 0
267+ let G = if (isDefined(E.assetId))
268+ then extract(E.assetId)
269+ else c
270+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
271+ if (((H * L) > F))
272+ then throw(("The price is wrong, it should be " + toString((H * L))))
273+ else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c), ScriptTransfer(addressFromStringValue(K[4]), 0, c)]))
274+ }
243275 else if ((L == 6))
244276 then if ((D > 0))
245277 then if ((L > D))
246278 then throw("You don't have enough certification credit")
247279 else ScriptResult(WriteSet([W, X, Y, Z, aa, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[5] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c), ScriptTransfer(addressFromStringValue(K[4]), 0, c), ScriptTransfer(addressFromStringValue(K[5]), 0, c)]))
248- else if (((H * L) > F))
249- then throw(("The price is wrong, it should be " + toString((H * L))))
250- else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[5] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c), ScriptTransfer(addressFromStringValue(K[4]), 0, c), ScriptTransfer(addressFromStringValue(K[5]), 0, c)]))
280+ else {
281+ let E = extract(x.payment)
282+ let F = if (isDefined(E.amount))
283+ then extract(E.amount)
284+ else 0
285+ let G = if (isDefined(E.assetId))
286+ then extract(E.assetId)
287+ else c
288+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
289+ if (((H * L) > F))
290+ then throw(("The price is wrong, it should be " + toString((H * L))))
291+ else ScriptResult(WriteSet([W, X, Y, Z, DataEntry(((K[0] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[1] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[2] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[3] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[4] + "_MA_") + toBase58String(A)), "PENDING"), DataEntry(((K[5] + "_MA_") + toBase58String(A)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), F, c), ScriptTransfer(addressFromStringValue(K[0]), 0, c), ScriptTransfer(addressFromStringValue(K[1]), 0, c), ScriptTransfer(addressFromStringValue(K[2]), 0, c), ScriptTransfer(addressFromStringValue(K[3]), 0, c), ScriptTransfer(addressFromStringValue(K[4]), 0, c), ScriptTransfer(addressFromStringValue(K[5]), 0, c)]))
292+ }
251293 else throw(("Needs 2 to 6 parties addresses" + toString(L)))
252294 }
253295
254296
255297
256298 @Callable(x)
257299 func signAgreement (y,ab) = {
258300 let E = extract(x.payment)
259301 let F = extract(E.amount)
260302 let A = extract(x.transactionId)
261303 let ac = toBase58String(x.caller.bytes)
262304 let ad = p(((ac + "_MA_") + ab))
263305 if (!(ad))
264306 then throw("Sorry there is no pending signature")
265307 else ScriptResult(WriteSet([DataEntry(((ac + "_MA_") + ab), ("SIGNED_" + toBase58String(A)))]), TransferSet([ScriptTransfer(addressFromStringValue(ac), 500000, unit)]))
266308 }
267309
268310

github/deemru/w8io/3ef1775 
100.59 ms