tx · 97PFzMKX5ZPpMiA3moAZ7ZgAZC1jP8U2wfzXaSELneN8

3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB:  -0.01400000 Waves

2020.02.01 20:12 [880346] smart account 3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB > SELF 0.00000000 Waves

{ "type": 13, "id": "97PFzMKX5ZPpMiA3moAZ7ZgAZC1jP8U2wfzXaSELneN8", "fee": 1400000, "feeAssetId": null, "timestamp": 1580577149825, "version": 1, "sender": "3NC28hSivrmsTUXaYD1x6L362J4ZpUnoTdB", "senderPublicKey": "Gd5NihbWQoWuTnSvq25TuV2BYZG4U1e9KDqZn9zBPix7", "proofs": [ "4F6U1D2aQQyYkeQR58vdPVSYBJFQGRCeyCBfwaQHswUurbvMeQPNKCQFgqRqvHsRFZNKSZXFYHvsuuKXiTBvX4do" ], "script": "base64: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dGVkAAAAAQUAAAANY2FsbGVyQWRkcmVzcwQAAAAOYWRkcmVzc2VzQXJyYXkJAARMAAAAAgkBAAAACGdldFZhbHVlAAAAAgUAAAAJYWRkcmVzc2VzAgAAAAhhZGRyZXNzMQkABEwAAAACCQEAAAAIZ2V0VmFsdWUAAAACBQAAAAlhZGRyZXNzZXMCAAAACGFkZHJlc3MyCQAETAAAAAIJAQAAAAhnZXRWYWx1ZQAAAAIFAAAACWFkZHJlc3NlcwIAAAAIYWRkcmVzczMJAARMAAAAAgkBAAAACGdldFZhbHVlAAAAAgUAAAAJYWRkcmVzc2VzAgAAAAhhZGRyZXNzNAkABEwAAAACCQEAAAAIZ2V0VmFsdWUAAAACBQAAAAlhZGRyZXNzZXMCAAAACGFkZHJlc3M1CQAETAAAAAIJAQAAAAhnZXRWYWx1ZQAAAAIFAAAACWFkZHJlc3NlcwIAAAAIYWRkcmVzczYFAAAAA25pbAQAAAAOdG90YWxBZGRyZXNzZXMEAAAADSRsaXN0NzUyNDc1NjQFAAAADmFkZHJlc3Nlc0FycmF5BAAAAA0kc2l6ZTc1MjQ3NTY0CQABkAAAAAEFAAAADSRsaXN0NzUyNDc1NjQEAAAADSRhY2MwNzUyNDc1NjQAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplNzUyNDc1NjQAAAAAAAAAAAAFAAAADSRhY2MwNzUyNDc1NjQEAAAADSRhY2MxNzUyNDc1NjQJAQAAAAxjb3VudFBhcnRpZXMAAAACBQAAAA0kYWNjMDc1MjQ3NTY0CQABkQAAAAIFAAAADSRsaXN0NzUyNDc1NjQAAAAAAAAAAAADCQAAAAAAAAIFAAAADSRzaXplNzUyNDc1NjQAAAAAAAAAAAEFAAAADSRhY2MxNzUyNDc1NjQEAAAADSRhY2MyNzUyNDc1NjQJAQAAAAxjb3VudFBhcnRpZXMAAAACBQAAAA0kYWNjMTc1MjQ3NTY0CQABkQAAAAIFAAAADSRsaXN0NzUyNDc1NjQAAAAAAAAAAAEDCQAAAAAAAAIFAAAADSRzaXplNzUyNDc1NjQAAAAAAAAAAAIFAAAADSRhY2MyNzUyNDc1NjQEAAAADSRhY2MzNzUyNDc1NjQJAQAAAAxjb3VudFBhcnRpZXMAAAACBQAAAA0kYWNjMjc1MjQ3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CQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAAAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAEAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAACAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAwAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgUAAAADbmlsAwkAAAAAAAACBQAAAA50b3RhbEFkZHJlc3NlcwAAAAAAAAAABQMJAABmAAAAAgUAAAAWY2FsbGVySXNXaGl0ZUxpc3RlZE51bQAAAAAAAAAAAAMJAABmAAAAAgUAAAAOdG90YWxBZGRyZXNzZXMFAAAAFmNhbGxlcklzV2hpdGVMaXN0ZWROdW0JAAACAAAAAQIAAAAqWW91IGRvbid0IGhhdmUgZW5vdWdoIGNlcnRpZmljYXRpb24gY3JlZGl0CQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAABFhZGRyX1dISVRFTElTVEVEXwUAAAANY2FsbGVyQWRkcmVzcwkAAGUAAAACBQAAABZjYWxsZXJJc1doaXRlTGlzdGVkTnVtBQAAAA50b3RhbEFkZHJlc3NlcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAAAl0aXRsZV9NQV8JAAJYAAAAAQUAAAACaWQFAAAABXRpdGxlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAACGhhc2hfTUFfCQACWAAAAAEFAAAAAmlkBQAAAARoYXNoCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhkYXRhX01BXwkAAlgAAAABBQAAAAJpZAIAAAABXwUAAAANY2FsbGVyQWRkcmVzcwUAAAAJYWRkcmVzc2VzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAAIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAECAAAABF9NQV8JAAJYAAAAAQUAAAACaWQCAAAAB1BFTkRJTkcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAACAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAdQRU5ESU5HCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAwIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAQCAAAABF9NQV8JAAJYAAAAAQUAAAACaWQCAAAAB1BFTkRJTkcFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAAAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAABAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAgAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAMAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAEAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuBQAAAANuaWwEAAAAB3BheW1lbnQJAQAAAAdleHRyYWN0AAAAAQgFAAAABmludm9rZQAAAAdwYXltZW50BAAAAAZhbW91bnQJAQAAAAdleHRyYWN0AAAAAQgFAAAAB3BheW1lbnQAAAAGYW1vdW50BAAAAA5wYXltZW50QXNzZXRJZAMJAQAAAAlpc0RlZmluZWQAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQEAAAAHZXh0cmFjdAAAAAEIBQAAAAdwYXltZW50AAAAB2Fzc2V0SWQJAAACAAAAAQIAAAAgV2F2ZXMgaXMgbm90IGFjY2VwdGVkIGFzIHBheW1lbnQEAAAADGN1cnJlbnRQcmljZQkBAAAAEUBleHRyTmF0aXZlKDEwNTApAAAAAgUAAAAIdmVyaWZpZXIJAAEsAAAAAgIAAAASY2VydGlmaWNhdGlvbl9mZWVfCQACWAAAAAEJAQAAAAdleHRyYWN0AAAAAQUAAAAOcGF5bWVudEFzc2V0SWQDCQEAAAACIT0AAAACBQAAAA1hY2NlcHRlZFRva2VuBQAAAA5wYXltZW50QXNzZXRJZAkAAAIAAAABAgAAAC9Pbmx5IHBheW1lbnRzIGluIFNJR04gYXJlIGFsbG93ZWQgYXQgdGhlIG1vbWVudAMJAABmAAAAAgkAAGgAAAACBQAAAAxjdXJyZW50UHJpY2UFAAAADnRvdGFsQWRkcmVzc2VzBQAAAAZhbW91bnQJAAACAAAAAQkAASwAAAACAgAAACFUaGUgcHJpY2UgaXMgd3JvbmcsIGl0IHNob3VsZCBiZSAJAAGkAAAAAQkAAGgAAAACBQAAAAxjdXJyZW50UHJpY2UFAAAADnRvdGFsQWRkcmVzc2VzCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAAAl0aXRsZV9NQV8JAAJYAAAAAQUAAAACaWQFAAAABXRpdGxlCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAACGhhc2hfTUFfCQACWAAAAAEFAAAAAmlkBQAAAARoYXNoCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAhkYXRhX01BXwkAAlgAAAABBQAAAAJpZAIAAAABXwUAAAANY2FsbGVyQWRkcmVzcwUAAAAJYWRkcmVzc2VzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAAIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAECAAAABF9NQV8JAAJYAAAAAQUAAAACaWQCAAAAB1BFTkRJTkcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAACAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAdQRU5ESU5HCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAwIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAQCAAAABF9NQV8JAAJYAAAAAQUAAAACaWQCAAAAB1BFTkRJTkcFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAABGJhbmsFAAAABmFtb3VudAUAAAANYWNjZXB0ZWRUb2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAAAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAABAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAgAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAMAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAEAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuBQAAAANuaWwDCQAAAAAAAAIFAAAADnRvdGFsQWRkcmVzc2VzAAAAAAAAAAAGAwkAAGYAAAACBQAAABZjYWxsZXJJc1doaXRlTGlzdGVkTnVtAAAAAAAAAAAAAwkAAGYAAAACBQAAAA50b3RhbEFkZHJlc3NlcwUAAAAWY2FsbGVySXNXaGl0ZUxpc3RlZE51bQkAAAIAAAABAgAAACpZb3UgZG9uJ3QgaGF2ZSBlbm91Z2ggY2VydGlmaWNhdGlvbiBjcmVkaXQJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAAEWFkZHJfV0hJVEVMSVNURURfBQAAAA1jYWxsZXJBZGRyZXNzCQAAZQAAAAIFAAAAFmNhbGxlcklzV2hpdGVMaXN0ZWROdW0FAAAADnRvdGFsQWRkcmVzc2VzCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAICAAAACXRpdGxlX01BXwkAAlgAAAABBQAAAAJpZAUAAAAFdGl0bGUJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAIaGFzaF9NQV8JAAJYAAAAAQUAAAACaWQFAAAABGhhc2gJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAACGRhdGFfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAFfBQAAAA1jYWxsZXJBZGRyZXNzBQAAAAlhZGRyZXNzZXMJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAAAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAdQRU5ESU5HCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAQIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAICAAAABF9NQV8JAAJYAAAAAQUAAAACaWQCAAAAB1BFTkRJTkcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAADAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAdQRU5ESU5HCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAABAIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAUCAAAABF9NQV8JAAJYAAAAAQUAAAACaWQCAAAAB1BFTkRJTkcFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAAAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAABAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAgAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAMAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAEAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAABQAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgUAAAADbmlsBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAZpbnZva2UAAAAHcGF5bWVudAQAAAAGYW1vdW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAdwYXltZW50AAAABmFtb3VudAQAAAAOcGF5bWVudEFzc2V0SWQDCQEAAAAJaXNEZWZpbmVkAAAAAQgFAAAAB3BheW1lbnQAAAAHYXNzZXRJZAkBAAAAB2V4dHJhY3QAAAABCAUAAAAHcGF5bWVudAAAAAdhc3NldElkCQAAAgAAAAECAAAAIFdhdmVzIGlzIG5vdCBhY2NlcHRlZCBhcyBwYXltZW50BAAAAAxjdXJyZW50UHJpY2UJAQAAABFAZXh0ck5hdGl2ZSgxMDUwKQAAAAIFAAAACHZlcmlmaWVyCQABLAAAAAICAAAAEmNlcnRpZmljYXRpb25fZmVlXwkAAlgAAAABCQEAAAAHZXh0cmFjdAAAAAEFAAAADnBheW1lbnRBc3NldElkAwkBAAAAAiE9AAAAAgUAAAANYWNjZXB0ZWRUb2tlbgUAAAAOcGF5bWVudEFzc2V0SWQJAAACAAAAAQIAAAAvT25seSBwYXltZW50cyBpbiBTSUdOIGFyZSBhbGxvd2VkIGF0IHRoZSBtb21lbnQDCQAAZgAAAAIJAABoAAAAAgUAAAAMY3VycmVudFByaWNlBQAAAA50b3RhbEFkZHJlc3NlcwUAAAAGYW1vdW50CQAAAgAAAAEJAAEsAAAAAgIAAAAhVGhlIHByaWNlIGlzIHdyb25nLCBpdCBzaG91bGQgYmUgCQABpAAAAAEJAABoAAAAAgUAAAAMY3VycmVudFByaWNlBQAAAA50b3RhbEFkZHJlc3NlcwkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgIAAAAJdGl0bGVfTUFfCQACWAAAAAEFAAAAAmlkBQAAAAV0aXRsZQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACAgAAAAhoYXNoX01BXwkAAlgAAAABBQAAAAJpZAUAAAAEaGFzaAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAAIZGF0YV9NQV8JAAJYAAAAAQUAAAACaWQCAAAAAV8FAAAADWNhbGxlckFkZHJlc3MFAAAACWFkZHJlc3NlcwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAACAAAABF9NQV8JAAJYAAAAAQUAAAACaWQCAAAAB1BFTkRJTkcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAABAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAdQRU5ESU5HCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAgIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAMCAAAABF9NQV8JAAJYAAAAAQUAAAACaWQCAAAAB1BFTkRJTkcJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAEAgAAAARfTUFfCQACWAAAAAEFAAAAAmlkAgAAAAdQRU5ESU5HCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAABQIAAAAEX01BXwkAAlgAAAABBQAAAAJpZAIAAAAHUEVORElORwUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQUAAAAEYmFuawUAAAAGYW1vdW50BQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAAAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAEAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAACAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMJAQAAABxAZXh0clVzZXIoYWRkcmVzc0Zyb21TdHJpbmcpAAAAAQkAAZEAAAACBQAAAA5hZGRyZXNzZXNBcnJheQAAAAAAAAAAAwAAAAAAAAAAAAUAAAANYWNjZXB0ZWRUb2tlbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEJAAGRAAAAAgUAAAAOYWRkcmVzc2VzQXJyYXkAAAAAAAAAAAQAAAAAAAAAAAAFAAAADWFjY2VwdGVkVG9rZW4JAARMAAAAAgkBAAAADlNjcmlwdFRyYW5zZmVyAAAAAwkBAAAAHEBleHRyVXNlcihhZGRyZXNzRnJvbVN0cmluZykAAAABCQABkQAAAAIFAAAADmFkZHJlc3Nlc0FycmF5AAAAAAAAAAAFAAAAAAAAAAAABQAAAA1hY2NlcHRlZFRva2VuBQAAAANuaWwJAAACAAAAAQkAASwAAAACAgAAAB5OZWVkcyAyIHRvIDYgcGFydGllcyBhZGRyZXNzZXMJAAGkAAAAAQUAAAAOdG90YWxBZGRyZXNzZXMAAAAGaW52b2tlAQAAAA1zaWduQWdyZWVtZW50AAAAAgAAAARoYXNoAAAAC2FncmVlbWVudElkBAAAAAdwYXltZW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAZpbnZva2UAAAAHcGF5bWVudAQAAAAGYW1vdW50CQEAAAAHZXh0cmFjdAAAAAEIBQAAAAdwYXltZW50AAAABmFtb3VudAQAAAACaWQJAQAAAAdleHRyYWN0AAAAAQgFAAAABmludm9rZQAAAA10cmFuc2FjdGlvbklkBAAAAAZzaWduZXIJAAJYAAAAAQgIBQAAAAZpbnZva2UAAAAGY2FsbGVyAAAABWJ5dGVzBAAAABNzaWduaW5nUmVxdWVzdEV4aXN0CQEAAAAUY2hlY2tJZlBlbmRpbmdUb1NpZ24AAAABCQABLAAAAAIJAAEsAAAAAgUAAAAGc2lnbmVyAgAAAARfTUFfBQAAAAthZ3JlZW1lbnRJZAMJAQAAAAEhAAAAAQUAAAATc2lnbmluZ1JlcXVlc3RFeGlzdAkAAAIAAAABAgAAACNTb3JyeSB0aGVyZSBpcyBubyBwZW5kaW5nIHNpZ25hdHVyZQkBAAAADFNjcmlwdFJlc3VsdAAAAAIJAQAAAAhXcml0ZVNldAAAAAEJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAZzaWduZXICAAAABF9NQV8FAAAAC2FncmVlbWVudElkCQABLAAAAAICAAAAB1NJR05FRF8JAAJYAAAAAQUAAAACaWQFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCQEAAAAcQGV4dHJVc2VyKGFkZHJlc3NGcm9tU3RyaW5nKQAAAAEFAAAABnNpZ25lcgAAAAAAAAehIAUAAAAEdW5pdAUAAAADbmlsAAAAAE3TOIc=", "chainId": 84, "height": 880346, "spentComplexity": 0 } View: original | compacted Prev: CyBCXf1CZmozfiHnDjMKPRCckTyLVgq1pFb9wTM4KMiQ Next: DTpBzKnSbt2G7WrH1LH5GCXVqi8fG9rChJXcUhasb3Mm Diff:
OldNewDifferences
4747 else (take(m, 2) == "3M")
4848
4949
50-func n (o) = {
51- let g = getString(this, o)
50+func n (o,m) = if ((size(m) > 0))
51+ then (o + 1)
52+ else (o + 0)
53+
54+
55+func p (q) = {
56+ let g = getString(this, q)
5257 if ($isInstanceOf(g, "String"))
5358 then {
5459 let h = g
6065 }
6166
6267
63-func p (q) = take(drop(q, 1), value(indexOf(drop(q, 1), "\"")))
68+func r (s) = take(drop(s, 1), value(indexOf(drop(s, 1), "\"")))
6469
6570
66-func r (q,o) = {
67- let s = value(indexOf(q, (("\"" + o) + "\":")))
68- let t = drop(q, ((s + size(o)) + 3))
69- let u = p(t)
70- u
71+func t (s,q) = {
72+ let u = value(indexOf(s, (("\"" + q) + "\":")))
73+ let v = drop(s, ((u + size(q)) + 3))
74+ let w = r(v)
75+ w
7176 }
7277
7378
74-@Callable(v)
75-func fileCertification (w,x,f,t) = {
76- let y = extract(v.transactionId)
77- let z = d(w, f)
78- let A = i(f)
79- let k = toBase58String(v.caller.bytes)
80- let B = j(k)
81- if ((z != "NONE"))
79+@Callable(x)
80+func fileCertification (y,z,f,v) = {
81+ let A = extract(x.transactionId)
82+ let B = d(y, f)
83+ let C = i(f)
84+ let k = toBase58String(x.caller.bytes)
85+ let D = j(k)
86+ if ((B != "NONE"))
8287 then throw("This entry already exist")
83- else if ((A != "NONE"))
88+ else if ((C != "NONE"))
8489 then throw("This uuid already exist")
8590 else if ((size(f) > 36))
8691 then throw("Uuid is too long")
87- else if ((size(w) > 64))
92+ else if ((size(y) > 64))
8893 then throw("Hash is too long")
89- else if ((size(x) > 64))
94+ else if ((size(z) > 64))
9095 then throw("Title is too long")
91- else if ((B > 0))
92- then ScriptResult(WriteSet([DataEntry(f, toBase58String(y)), DataEntry((w + f), toBase58String(y)), DataEntry((x + f), toBase58String(y)), DataEntry(("addr_WHITELISTED_" + k), (B - 1)), DataEntry(((("data_fc_" + toBase58String(y)) + "_") + k), t)]), TransferSet([ScriptTransfer(v.caller, 500000, unit)]))
96+ else if ((D > 0))
97+ 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)]))
9398 else {
94- let C = extract(v.payment)
95- let D = extract(C.amount)
96- let E = if (isDefined(C.assetId))
97- then extract(C.assetId)
99+ let E = extract(x.payment)
100+ let F = extract(E.amount)
101+ let G = if (isDefined(E.assetId))
102+ then extract(E.assetId)
98103 else throw("Waves is not accepted as payment")
99- let F = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(E))))
100- if ((c != E))
104+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
105+ if ((c != G))
101106 then throw("This token is not accepted at the moment")
102- else if (if ((D != F))
103- then (0 >= B)
107+ else if (if ((F != H))
108+ then (0 >= D)
104109 else false)
105110 then throw("The price is wrong")
106- else ScriptResult(WriteSet([DataEntry(f, toBase58String(y)), DataEntry((w + f), toBase58String(y)), DataEntry((x + f), toBase58String(y)), DataEntry(((("data_fc_" + toBase58String(y)) + "_") + k), t)]), TransferSet([ScriptTransfer(addressFromStringValue(b), D, C.assetId)]))
111+ 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)]))
107112 }
108113 }
109114
110115
111116
112-@Callable(v)
113-func emailCertification (G,f,t) = {
114- let y = extract(v.transactionId)
115- let z = d(G, f)
116- let A = i(f)
117- let k = toBase58String(v.caller.bytes)
118- let B = j(k)
119- if ((z != "NONE"))
117+@Callable(x)
118+func emailCertification (I,f,v) = {
119+ let A = extract(x.transactionId)
120+ let B = d(I, f)
121+ let C = i(f)
122+ let k = toBase58String(x.caller.bytes)
123+ let D = j(k)
124+ if ((B != "NONE"))
120125 then throw("This entry already exist")
121- else if ((A != "NONE"))
126+ else if ((C != "NONE"))
122127 then throw("This uuid already exist")
123128 else if ((size(f) > 36))
124129 then throw("Uuid is too long")
125- else if ((B > 0))
126- then ScriptResult(WriteSet([DataEntry(f, toBase58String(y)), DataEntry((G + f), toBase58String(y)), DataEntry(("addr_WHITELISTED_" + k), (B - 1)), DataEntry(((("data_ec_" + toBase58String(y)) + "_") + k), t)]), TransferSet([ScriptTransfer(v.caller, 500000, unit)]))
130+ else if ((D > 0))
131+ 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)]))
127132 else {
128- let C = extract(v.payment)
129- let D = extract(C.amount)
130- let E = if (isDefined(C.assetId))
131- then extract(C.assetId)
133+ let E = extract(x.payment)
134+ let F = extract(E.amount)
135+ let G = if (isDefined(E.assetId))
136+ then extract(E.assetId)
132137 else throw("Waves is not accepted as payment")
133- let F = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(E))))
134- if ((c != E))
138+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
139+ if ((c != G))
135140 then throw("This token is not accepted at the moment")
136- else if (if ((D != F))
137- then (0 >= B)
141+ else if (if ((F != H))
142+ then (0 >= D)
138143 else false)
139144 then throw("The price is wrong")
140- else ScriptResult(WriteSet([DataEntry(f, toBase58String(y)), DataEntry((G + f), toBase58String(y)), DataEntry(((("data_ec_" + toBase58String(y)) + "_") + k), t)]), TransferSet([ScriptTransfer(addressFromStringValue(b), D, C.assetId)]))
145+ 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)]))
141146 }
142147 }
143148
144149
145150
146-@Callable(v)
147-func createAgreement (w,x,H) = {
148- let y = extract(v.transactionId)
149- let k = toBase58String(v.caller.bytes)
150- let B = j(k)
151- let I = [r(H, "address1"), r(H, "address2"), r(H, "address3"), r(H, "address4"), r(H, "address5"), r(H, "address6")]
152- let J = if ((size(I[0]) > 0))
153- then 1
154- else 0
155- let K = if ((size(I[1]) > 0))
156- then 1
157- else 0
158- let L = if ((size(I[2]) > 0))
159- then 1
160- else 0
161- let M = if ((size(I[3]) > 0))
162- then 1
163- else 0
164- let N = if ((size(I[4]) > 0))
165- then 1
166- else 0
167- let O = if ((size(I[5]) > 0))
168- then 1
169- else 0
170- let P = (((((J + K) + L) + M) + N) + O)
171- if ((P == 2))
172- then if ((B > 0))
173- then if ((P > B))
151+@Callable(x)
152+func createAgreement (y,z,J) = {
153+ let A = extract(x.transactionId)
154+ let k = toBase58String(x.caller.bytes)
155+ let D = j(k)
156+ let K = [t(J, "address1"), t(J, "address2"), t(J, "address3"), t(J, "address4"), t(J, "address5"), t(J, "address6")]
157+ let L = {
158+ let M = K
159+ let N = size(M)
160+ let O = 0
161+ if ((N == 0))
162+ then O
163+ else {
164+ let P = n(O, M[0])
165+ if ((N == 1))
166+ then P
167+ else {
168+ let Q = n(P, M[1])
169+ if ((N == 2))
170+ then Q
171+ else {
172+ let R = n(Q, M[2])
173+ if ((N == 3))
174+ then R
175+ else {
176+ let S = n(R, M[3])
177+ if ((N == 4))
178+ then S
179+ else {
180+ let T = n(S, M[4])
181+ if ((N == 5))
182+ then T
183+ else {
184+ let U = n(T, M[5])
185+ if ((N == 6))
186+ then U
187+ else {
188+ let V = n(U, M[6])
189+ throw("List size exceed 6")
190+ }
191+ }
192+ }
193+ }
194+ }
195+ }
196+ }
197+ }
198+ if ((L == 2))
199+ then if ((D > 0))
200+ then if ((L > D))
174201 then throw("You don't have enough certification credit")
175- else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (B - P)), DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c)]))
202+ else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (D - L)), DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
176203 else {
177- let C = extract(v.payment)
178- let D = extract(C.amount)
179- let E = if (isDefined(C.assetId))
180- then extract(C.assetId)
204+ let E = extract(x.payment)
205+ let F = extract(E.amount)
206+ let G = if (isDefined(E.assetId))
207+ then extract(E.assetId)
181208 else throw("Waves is not accepted as payment")
182- let F = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(E))))
183- if ((c != E))
209+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
210+ if ((c != G))
184211 then throw("Only payments in SIGN are allowed at the moment")
185- else if (((F * P) > D))
186- then throw(("The price is wrong, it should be " + toString((F * P))))
187- else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), D, c), ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c)]))
212+ else if (((H * L) > F))
213+ then throw(("The price is wrong, it should be " + toString((H * L))))
214+ else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
188215 }
189- else if ((P == 3))
190- then if ((B > 0))
191- then if ((P > B))
216+ else if ((L == 3))
217+ then if ((D > 0))
218+ then if ((L > D))
192219 then throw("You don't have enough certification credit")
193- else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (B - P)), DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c)]))
220+ else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (D - L)), DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
194221 else {
195- let C = extract(v.payment)
196- let D = extract(C.amount)
197- let E = if (isDefined(C.assetId))
198- then extract(C.assetId)
222+ let E = extract(x.payment)
223+ let F = extract(E.amount)
224+ let G = if (isDefined(E.assetId))
225+ then extract(E.assetId)
199226 else throw("Waves is not accepted as payment")
200- let F = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(E))))
201- if ((c != E))
227+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
228+ if ((c != G))
202229 then throw("Only payments in SIGN are allowed at the moment")
203- else if (((F * P) > D))
204- then throw(("The price is wrong, it should be " + toString((F * P))))
205- else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), D, c), ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c)]))
230+ else if (((H * L) > F))
231+ then throw(("The price is wrong, it should be " + toString((H * L))))
232+ else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
206233 }
207- else if ((P == 4))
208- then if ((B > 0))
209- then if ((P > B))
234+ else if ((L == 4))
235+ then if ((D > 0))
236+ then if ((L > D))
210237 then throw("You don't have enough certification credit")
211- else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (B - P)), DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[3] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c), ScriptTransfer(addressFromStringValue(I[3]), 0, c)]))
238+ else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (D - L)), DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
212239 else {
213- let C = extract(v.payment)
214- let D = extract(C.amount)
215- let E = if (isDefined(C.assetId))
216- then extract(C.assetId)
240+ let E = extract(x.payment)
241+ let F = extract(E.amount)
242+ let G = if (isDefined(E.assetId))
243+ then extract(E.assetId)
217244 else throw("Waves is not accepted as payment")
218- let F = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(E))))
219- if ((c != E))
245+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
246+ if ((c != G))
220247 then throw("Only payments in SIGN are allowed at the moment")
221- else if (((F * P) > D))
222- then throw(("The price is wrong, it should be " + toString((F * P))))
223- else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[3] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), D, c), ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c), ScriptTransfer(addressFromStringValue(I[3]), 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([DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
224251 }
225- else if ((P == 5))
226- then if ((B > 0))
227- then if ((P > B))
252+ else if ((L == 5))
253+ then if ((D > 0))
254+ then if ((L > D))
228255 then throw("You don't have enough certification credit")
229- else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (B - P)), DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[3] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[4] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c), ScriptTransfer(addressFromStringValue(I[3]), 0, c), ScriptTransfer(addressFromStringValue(I[4]), 0, c)]))
256+ else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (D - L)), DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
230257 else {
231- let C = extract(v.payment)
232- let D = extract(C.amount)
233- let E = if (isDefined(C.assetId))
234- then extract(C.assetId)
258+ let E = extract(x.payment)
259+ let F = extract(E.amount)
260+ let G = if (isDefined(E.assetId))
261+ then extract(E.assetId)
235262 else throw("Waves is not accepted as payment")
236- let F = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(E))))
237- if ((c != E))
263+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
264+ if ((c != G))
238265 then throw("Only payments in SIGN are allowed at the moment")
239- else if (((F * P) > D))
240- then throw(("The price is wrong, it should be " + toString((F * P))))
241- else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[3] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[4] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), D, c), ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c), ScriptTransfer(addressFromStringValue(I[3]), 0, c), ScriptTransfer(addressFromStringValue(I[4]), 0, c)]))
266+ else if (((H * L) > F))
267+ then throw(("The price is wrong, it should be " + toString((H * L))))
268+ else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
242269 }
243- else if ((P == 6))
244- then if ((B > 0))
245- then if ((P > B))
270+ else if ((L == 6))
271+ then if ((D > 0))
272+ then if ((L > D))
246273 then throw("You don't have enough certification credit")
247- else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (B - P)), DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[3] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[4] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[5] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c), ScriptTransfer(addressFromStringValue(I[3]), 0, c), ScriptTransfer(addressFromStringValue(I[4]), 0, c), ScriptTransfer(addressFromStringValue(I[5]), 0, c)]))
274+ else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (D - L)), DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
248275 else {
249- let C = extract(v.payment)
250- let D = extract(C.amount)
251- let E = if (isDefined(C.assetId))
252- then extract(C.assetId)
276+ let E = extract(x.payment)
277+ let F = extract(E.amount)
278+ let G = if (isDefined(E.assetId))
279+ then extract(E.assetId)
253280 else throw("Waves is not accepted as payment")
254- let F = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(E))))
255- if ((c != E))
281+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
282+ if ((c != G))
256283 then throw("Only payments in SIGN are allowed at the moment")
257- else if (((F * P) > D))
258- then throw(("The price is wrong, it should be " + toString((F * P))))
259- else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[3] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[4] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[5] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), D, c), ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c), ScriptTransfer(addressFromStringValue(I[3]), 0, c), ScriptTransfer(addressFromStringValue(I[4]), 0, c), ScriptTransfer(addressFromStringValue(I[5]), 0, c)]))
284+ else if (((H * L) > F))
285+ then throw(("The price is wrong, it should be " + toString((H * L))))
286+ else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
260287 }
261- else throw(("Needs 2 to 6 parties addresses" + toString(P)))
288+ else throw(("Needs 2 to 6 parties addresses" + toString(L)))
262289 }
263290
264291
265292
266-@Callable(v)
267-func signAgreement (w,Q) = {
268- let C = extract(v.payment)
269- let D = extract(C.amount)
270- let y = extract(v.transactionId)
271- let R = toBase58String(v.caller.bytes)
272- let S = n(((R + "_MA_") + Q))
273- if (!(S))
293+@Callable(x)
294+func signAgreement (y,W) = {
295+ let E = extract(x.payment)
296+ let F = extract(E.amount)
297+ let A = extract(x.transactionId)
298+ let X = toBase58String(x.caller.bytes)
299+ let Y = p(((X + "_MA_") + W))
300+ if (!(Y))
274301 then throw("Sorry there is no pending signature")
275- else ScriptResult(WriteSet([DataEntry(((R + "_MA_") + Q), ("SIGNED_" + toBase58String(y)))]), TransferSet([ScriptTransfer(addressFromStringValue(R), 500000, unit)]))
302+ else ScriptResult(WriteSet([DataEntry(((X + "_MA_") + W), ("SIGNED_" + toBase58String(A)))]), TransferSet([ScriptTransfer(addressFromStringValue(X), 500000, unit)]))
276303 }
277304
278305
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
50-func n (o) = {
51- let g = getString(this, o)
50+func n (o,m) = if ((size(m) > 0))
51+ then (o + 1)
52+ else (o + 0)
53+
54+
55+func p (q) = {
56+ let g = getString(this, q)
5257 if ($isInstanceOf(g, "String"))
5358 then {
5459 let h = g
5560 if ((h == "PENDING"))
5661 then true
5762 else false
5863 }
5964 else false
6065 }
6166
6267
63-func p (q) = take(drop(q, 1), value(indexOf(drop(q, 1), "\"")))
68+func r (s) = take(drop(s, 1), value(indexOf(drop(s, 1), "\"")))
6469
6570
66-func r (q,o) = {
67- let s = value(indexOf(q, (("\"" + o) + "\":")))
68- let t = drop(q, ((s + size(o)) + 3))
69- let u = p(t)
70- u
71+func t (s,q) = {
72+ let u = value(indexOf(s, (("\"" + q) + "\":")))
73+ let v = drop(s, ((u + size(q)) + 3))
74+ let w = r(v)
75+ w
7176 }
7277
7378
74-@Callable(v)
75-func fileCertification (w,x,f,t) = {
76- let y = extract(v.transactionId)
77- let z = d(w, f)
78- let A = i(f)
79- let k = toBase58String(v.caller.bytes)
80- let B = j(k)
81- if ((z != "NONE"))
79+@Callable(x)
80+func fileCertification (y,z,f,v) = {
81+ let A = extract(x.transactionId)
82+ let B = d(y, f)
83+ let C = i(f)
84+ let k = toBase58String(x.caller.bytes)
85+ let D = j(k)
86+ if ((B != "NONE"))
8287 then throw("This entry already exist")
83- else if ((A != "NONE"))
88+ else if ((C != "NONE"))
8489 then throw("This uuid already exist")
8590 else if ((size(f) > 36))
8691 then throw("Uuid is too long")
87- else if ((size(w) > 64))
92+ else if ((size(y) > 64))
8893 then throw("Hash is too long")
89- else if ((size(x) > 64))
94+ else if ((size(z) > 64))
9095 then throw("Title is too long")
91- else if ((B > 0))
92- then ScriptResult(WriteSet([DataEntry(f, toBase58String(y)), DataEntry((w + f), toBase58String(y)), DataEntry((x + f), toBase58String(y)), DataEntry(("addr_WHITELISTED_" + k), (B - 1)), DataEntry(((("data_fc_" + toBase58String(y)) + "_") + k), t)]), TransferSet([ScriptTransfer(v.caller, 500000, unit)]))
96+ else if ((D > 0))
97+ 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)]))
9398 else {
94- let C = extract(v.payment)
95- let D = extract(C.amount)
96- let E = if (isDefined(C.assetId))
97- then extract(C.assetId)
99+ let E = extract(x.payment)
100+ let F = extract(E.amount)
101+ let G = if (isDefined(E.assetId))
102+ then extract(E.assetId)
98103 else throw("Waves is not accepted as payment")
99- let F = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(E))))
100- if ((c != E))
104+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
105+ if ((c != G))
101106 then throw("This token is not accepted at the moment")
102- else if (if ((D != F))
103- then (0 >= B)
107+ else if (if ((F != H))
108+ then (0 >= D)
104109 else false)
105110 then throw("The price is wrong")
106- else ScriptResult(WriteSet([DataEntry(f, toBase58String(y)), DataEntry((w + f), toBase58String(y)), DataEntry((x + f), toBase58String(y)), DataEntry(((("data_fc_" + toBase58String(y)) + "_") + k), t)]), TransferSet([ScriptTransfer(addressFromStringValue(b), D, C.assetId)]))
111+ 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)]))
107112 }
108113 }
109114
110115
111116
112-@Callable(v)
113-func emailCertification (G,f,t) = {
114- let y = extract(v.transactionId)
115- let z = d(G, f)
116- let A = i(f)
117- let k = toBase58String(v.caller.bytes)
118- let B = j(k)
119- if ((z != "NONE"))
117+@Callable(x)
118+func emailCertification (I,f,v) = {
119+ let A = extract(x.transactionId)
120+ let B = d(I, f)
121+ let C = i(f)
122+ let k = toBase58String(x.caller.bytes)
123+ let D = j(k)
124+ if ((B != "NONE"))
120125 then throw("This entry already exist")
121- else if ((A != "NONE"))
126+ else if ((C != "NONE"))
122127 then throw("This uuid already exist")
123128 else if ((size(f) > 36))
124129 then throw("Uuid is too long")
125- else if ((B > 0))
126- then ScriptResult(WriteSet([DataEntry(f, toBase58String(y)), DataEntry((G + f), toBase58String(y)), DataEntry(("addr_WHITELISTED_" + k), (B - 1)), DataEntry(((("data_ec_" + toBase58String(y)) + "_") + k), t)]), TransferSet([ScriptTransfer(v.caller, 500000, unit)]))
130+ else if ((D > 0))
131+ 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)]))
127132 else {
128- let C = extract(v.payment)
129- let D = extract(C.amount)
130- let E = if (isDefined(C.assetId))
131- then extract(C.assetId)
133+ let E = extract(x.payment)
134+ let F = extract(E.amount)
135+ let G = if (isDefined(E.assetId))
136+ then extract(E.assetId)
132137 else throw("Waves is not accepted as payment")
133- let F = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(E))))
134- if ((c != E))
138+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
139+ if ((c != G))
135140 then throw("This token is not accepted at the moment")
136- else if (if ((D != F))
137- then (0 >= B)
141+ else if (if ((F != H))
142+ then (0 >= D)
138143 else false)
139144 then throw("The price is wrong")
140- else ScriptResult(WriteSet([DataEntry(f, toBase58String(y)), DataEntry((G + f), toBase58String(y)), DataEntry(((("data_ec_" + toBase58String(y)) + "_") + k), t)]), TransferSet([ScriptTransfer(addressFromStringValue(b), D, C.assetId)]))
145+ 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)]))
141146 }
142147 }
143148
144149
145150
146-@Callable(v)
147-func createAgreement (w,x,H) = {
148- let y = extract(v.transactionId)
149- let k = toBase58String(v.caller.bytes)
150- let B = j(k)
151- let I = [r(H, "address1"), r(H, "address2"), r(H, "address3"), r(H, "address4"), r(H, "address5"), r(H, "address6")]
152- let J = if ((size(I[0]) > 0))
153- then 1
154- else 0
155- let K = if ((size(I[1]) > 0))
156- then 1
157- else 0
158- let L = if ((size(I[2]) > 0))
159- then 1
160- else 0
161- let M = if ((size(I[3]) > 0))
162- then 1
163- else 0
164- let N = if ((size(I[4]) > 0))
165- then 1
166- else 0
167- let O = if ((size(I[5]) > 0))
168- then 1
169- else 0
170- let P = (((((J + K) + L) + M) + N) + O)
171- if ((P == 2))
172- then if ((B > 0))
173- then if ((P > B))
151+@Callable(x)
152+func createAgreement (y,z,J) = {
153+ let A = extract(x.transactionId)
154+ let k = toBase58String(x.caller.bytes)
155+ let D = j(k)
156+ let K = [t(J, "address1"), t(J, "address2"), t(J, "address3"), t(J, "address4"), t(J, "address5"), t(J, "address6")]
157+ let L = {
158+ let M = K
159+ let N = size(M)
160+ let O = 0
161+ if ((N == 0))
162+ then O
163+ else {
164+ let P = n(O, M[0])
165+ if ((N == 1))
166+ then P
167+ else {
168+ let Q = n(P, M[1])
169+ if ((N == 2))
170+ then Q
171+ else {
172+ let R = n(Q, M[2])
173+ if ((N == 3))
174+ then R
175+ else {
176+ let S = n(R, M[3])
177+ if ((N == 4))
178+ then S
179+ else {
180+ let T = n(S, M[4])
181+ if ((N == 5))
182+ then T
183+ else {
184+ let U = n(T, M[5])
185+ if ((N == 6))
186+ then U
187+ else {
188+ let V = n(U, M[6])
189+ throw("List size exceed 6")
190+ }
191+ }
192+ }
193+ }
194+ }
195+ }
196+ }
197+ }
198+ if ((L == 2))
199+ then if ((D > 0))
200+ then if ((L > D))
174201 then throw("You don't have enough certification credit")
175- else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (B - P)), DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c)]))
202+ else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (D - L)), DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
176203 else {
177- let C = extract(v.payment)
178- let D = extract(C.amount)
179- let E = if (isDefined(C.assetId))
180- then extract(C.assetId)
204+ let E = extract(x.payment)
205+ let F = extract(E.amount)
206+ let G = if (isDefined(E.assetId))
207+ then extract(E.assetId)
181208 else throw("Waves is not accepted as payment")
182- let F = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(E))))
183- if ((c != E))
209+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
210+ if ((c != G))
184211 then throw("Only payments in SIGN are allowed at the moment")
185- else if (((F * P) > D))
186- then throw(("The price is wrong, it should be " + toString((F * P))))
187- else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), D, c), ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c)]))
212+ else if (((H * L) > F))
213+ then throw(("The price is wrong, it should be " + toString((H * L))))
214+ else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
188215 }
189- else if ((P == 3))
190- then if ((B > 0))
191- then if ((P > B))
216+ else if ((L == 3))
217+ then if ((D > 0))
218+ then if ((L > D))
192219 then throw("You don't have enough certification credit")
193- else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (B - P)), DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c)]))
220+ else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (D - L)), DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
194221 else {
195- let C = extract(v.payment)
196- let D = extract(C.amount)
197- let E = if (isDefined(C.assetId))
198- then extract(C.assetId)
222+ let E = extract(x.payment)
223+ let F = extract(E.amount)
224+ let G = if (isDefined(E.assetId))
225+ then extract(E.assetId)
199226 else throw("Waves is not accepted as payment")
200- let F = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(E))))
201- if ((c != E))
227+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
228+ if ((c != G))
202229 then throw("Only payments in SIGN are allowed at the moment")
203- else if (((F * P) > D))
204- then throw(("The price is wrong, it should be " + toString((F * P))))
205- else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), D, c), ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c)]))
230+ else if (((H * L) > F))
231+ then throw(("The price is wrong, it should be " + toString((H * L))))
232+ else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
206233 }
207- else if ((P == 4))
208- then if ((B > 0))
209- then if ((P > B))
234+ else if ((L == 4))
235+ then if ((D > 0))
236+ then if ((L > D))
210237 then throw("You don't have enough certification credit")
211- else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (B - P)), DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[3] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c), ScriptTransfer(addressFromStringValue(I[3]), 0, c)]))
238+ else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (D - L)), DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
212239 else {
213- let C = extract(v.payment)
214- let D = extract(C.amount)
215- let E = if (isDefined(C.assetId))
216- then extract(C.assetId)
240+ let E = extract(x.payment)
241+ let F = extract(E.amount)
242+ let G = if (isDefined(E.assetId))
243+ then extract(E.assetId)
217244 else throw("Waves is not accepted as payment")
218- let F = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(E))))
219- if ((c != E))
245+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
246+ if ((c != G))
220247 then throw("Only payments in SIGN are allowed at the moment")
221- else if (((F * P) > D))
222- then throw(("The price is wrong, it should be " + toString((F * P))))
223- else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[3] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), D, c), ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c), ScriptTransfer(addressFromStringValue(I[3]), 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([DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
224251 }
225- else if ((P == 5))
226- then if ((B > 0))
227- then if ((P > B))
252+ else if ((L == 5))
253+ then if ((D > 0))
254+ then if ((L > D))
228255 then throw("You don't have enough certification credit")
229- else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (B - P)), DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[3] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[4] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c), ScriptTransfer(addressFromStringValue(I[3]), 0, c), ScriptTransfer(addressFromStringValue(I[4]), 0, c)]))
256+ else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (D - L)), DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
230257 else {
231- let C = extract(v.payment)
232- let D = extract(C.amount)
233- let E = if (isDefined(C.assetId))
234- then extract(C.assetId)
258+ let E = extract(x.payment)
259+ let F = extract(E.amount)
260+ let G = if (isDefined(E.assetId))
261+ then extract(E.assetId)
235262 else throw("Waves is not accepted as payment")
236- let F = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(E))))
237- if ((c != E))
263+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
264+ if ((c != G))
238265 then throw("Only payments in SIGN are allowed at the moment")
239- else if (((F * P) > D))
240- then throw(("The price is wrong, it should be " + toString((F * P))))
241- else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[3] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[4] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), D, c), ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c), ScriptTransfer(addressFromStringValue(I[3]), 0, c), ScriptTransfer(addressFromStringValue(I[4]), 0, c)]))
266+ else if (((H * L) > F))
267+ then throw(("The price is wrong, it should be " + toString((H * L))))
268+ else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
242269 }
243- else if ((P == 6))
244- then if ((B > 0))
245- then if ((P > B))
270+ else if ((L == 6))
271+ then if ((D > 0))
272+ then if ((L > D))
246273 then throw("You don't have enough certification credit")
247- else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (B - P)), DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[3] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[4] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[5] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c), ScriptTransfer(addressFromStringValue(I[3]), 0, c), ScriptTransfer(addressFromStringValue(I[4]), 0, c), ScriptTransfer(addressFromStringValue(I[5]), 0, c)]))
274+ else ScriptResult(WriteSet([DataEntry(("addr_WHITELISTED_" + k), (D - L)), DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
248275 else {
249- let C = extract(v.payment)
250- let D = extract(C.amount)
251- let E = if (isDefined(C.assetId))
252- then extract(C.assetId)
276+ let E = extract(x.payment)
277+ let F = extract(E.amount)
278+ let G = if (isDefined(E.assetId))
279+ then extract(E.assetId)
253280 else throw("Waves is not accepted as payment")
254- let F = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(E))))
255- if ((c != E))
281+ let H = getIntegerValue(a, ("certification_fee_" + toBase58String(extract(G))))
282+ if ((c != G))
256283 then throw("Only payments in SIGN are allowed at the moment")
257- else if (((F * P) > D))
258- then throw(("The price is wrong, it should be " + toString((F * P))))
259- else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(y)), x), DataEntry(("hash_MA_" + toBase58String(y)), w), DataEntry(((("data_MA_" + toBase58String(y)) + "_") + k), H), DataEntry(((I[0] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[1] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[2] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[3] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[4] + "_MA_") + toBase58String(y)), "PENDING"), DataEntry(((I[5] + "_MA_") + toBase58String(y)), "PENDING")]), TransferSet([ScriptTransfer(addressFromStringValue(b), D, c), ScriptTransfer(addressFromStringValue(I[0]), 0, c), ScriptTransfer(addressFromStringValue(I[1]), 0, c), ScriptTransfer(addressFromStringValue(I[2]), 0, c), ScriptTransfer(addressFromStringValue(I[3]), 0, c), ScriptTransfer(addressFromStringValue(I[4]), 0, c), ScriptTransfer(addressFromStringValue(I[5]), 0, c)]))
284+ else if (((H * L) > F))
285+ then throw(("The price is wrong, it should be " + toString((H * L))))
286+ else ScriptResult(WriteSet([DataEntry(("title_MA_" + toBase58String(A)), z), DataEntry(("hash_MA_" + toBase58String(A)), y), DataEntry(((("data_MA_" + toBase58String(A)) + "_") + k), J), 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)]))
260287 }
261- else throw(("Needs 2 to 6 parties addresses" + toString(P)))
288+ else throw(("Needs 2 to 6 parties addresses" + toString(L)))
262289 }
263290
264291
265292
266-@Callable(v)
267-func signAgreement (w,Q) = {
268- let C = extract(v.payment)
269- let D = extract(C.amount)
270- let y = extract(v.transactionId)
271- let R = toBase58String(v.caller.bytes)
272- let S = n(((R + "_MA_") + Q))
273- if (!(S))
293+@Callable(x)
294+func signAgreement (y,W) = {
295+ let E = extract(x.payment)
296+ let F = extract(E.amount)
297+ let A = extract(x.transactionId)
298+ let X = toBase58String(x.caller.bytes)
299+ let Y = p(((X + "_MA_") + W))
300+ if (!(Y))
274301 then throw("Sorry there is no pending signature")
275- else ScriptResult(WriteSet([DataEntry(((R + "_MA_") + Q), ("SIGNED_" + toBase58String(y)))]), TransferSet([ScriptTransfer(addressFromStringValue(R), 500000, unit)]))
302+ else ScriptResult(WriteSet([DataEntry(((X + "_MA_") + W), ("SIGNED_" + toBase58String(A)))]), TransferSet([ScriptTransfer(addressFromStringValue(X), 500000, unit)]))
276303 }
277304
278305

github/deemru/w8io/c3f4982 
242.04 ms