Greasy Fork

以太坊日志翻译器

将以太坊的16进制data数据转换成原文

// ==UserScript==
// @name         以太坊日志翻译器
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  将以太坊的16进制data数据转换成原文
// @require      https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js
// @author       FIFO
// @include      https://etherscan.io/address/*
// @match        http://*/*
// @grant        none
// ==/UserScript==

(function() {
	'use strict';
	// Your code here...
    var page;
    var list;
    function re(){
        setTimeout(function(){
            page=document.getElementById("eventsIframe").contentWindow;
            list=page.document.getElementsByClassName("address-tag");
            if(list != null){
                console.log("--------try run---------");
                run();
            }else{
                console.log("--------re---------");
                re();
            }
        },1000);
    }
    re();

    function run(){
        if(list.length == 0){
            re();
        }
		for (var i = 1; i <= list.length ; i++) {
			var content_element;
			var content = "";
			for (var j = 3; j < 6; j++) {
				var name = "chunk_" + i + "_" + j;
				content_element = page.document.getElementById(name);
				if (content_element) {
					content = content + content_element.innerHTML;
				}
			}
			console.log(i);
			console.log(content);
			var str = prePro(content);
			console.log(str);
			var nameo = "chunk_" + i + "_1";
			var add =  page.document.getElementById(nameo).parentNode.parentNode.parentNode;
            add.parentNode.parentNode.parentNode.style.paddingBottom = "20px";
			var para=document.createElement("div");
			var node=document.createTextNode("文本: " + str);
			para.appendChild(node);
            para.style.position = "absolute";
            para.style.paddingTop = "5px";
            para.style.fontFamily = "微软雅黑";
			para.style.display = "block";
			add.appendChild(para);
			content = "";
		}
		function prePro(data){
            if (data.length % 2) return "error";
            data = Trim(data);
            if (data.length % 2) data = data + 0;
			var tmp='';
			for(var x=0;x<data.length;x+=2){
			    tmp += '%' + data.charAt(x) + data.charAt(x+1);
			}
			return decodeURI(tmp);
		}
		function Trim(str){
            return str.replace(/(^0*)|(0*$)/g, "");
        }
	}
})();