Skip to content

Commit 39eda47

Browse files
committed
v 0.0.1 ripple submit offline signed tx
v 0.0.1 ripple submit offline signed tx
1 parent 170ea9a commit 39eda47

8 files changed

+142128
-0
lines changed

compile.py

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import os
2+
import re
3+
import datetime
4+
from io import open
5+
6+
# This script generates the index.html file.
7+
8+
# It removes script and style tags and replaces with the file content.
9+
10+
f = open('src/index.html', "r", encoding="utf-8")
11+
page = f.read()
12+
f.close()
13+
14+
15+
# Script tags
16+
17+
scriptsFinder = re.compile("""<script src="(.*)"></script>""")
18+
scripts = scriptsFinder.findall(page)
19+
20+
for script in scripts:
21+
filename = os.path.join("src", script)
22+
s = open(filename, "r", encoding="utf-8")
23+
scriptContent = "<script>%s</script>" % s.read()
24+
s.close()
25+
scriptTag = """<script src="%s"></script>""" % script
26+
page = page.replace(scriptTag, scriptContent)
27+
28+
29+
# Style tags
30+
31+
stylesFinder = re.compile("""<link rel="stylesheet" href="(.*)">""")
32+
styles = stylesFinder.findall(page)
33+
34+
for style in styles:
35+
filename = os.path.join("src", style)
36+
s = open(filename, "r", encoding="utf-8")
37+
styleContent = "<style>%s</style>" % s.read()
38+
s.close()
39+
styleTag = """<link rel="stylesheet" href="%s">""" % style
40+
page = page.replace(styleTag, styleContent)
41+
42+
43+
# Write the standalone file
44+
45+
f = open('index.html', 'w', encoding="utf-8")
46+
f.write(page)
47+
f.close()
48+
49+
print("%s - DONE" % datetime.datetime.now())

index.html

+71,038
Large diffs are not rendered by default.

src/css/app.css

+217
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/index.html

+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head lang="en">
4+
<meta charset="utf-8" />
5+
<title>Ripple tools</title>
6+
<link rel="stylesheet" href="css/app.css">
7+
<meta content="Ripple tools" name="description"/>
8+
<link rel="shortcut icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAnxQTFRFAAAAIqm8IKu8I6e8K6C8Jaa8JKe8Iaq9IqK8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8Iqm8////egTc6QAAANJ0Uk5TAAAAAAAAAAAAMKCcKAeQ/NBrEQlcXQoUatX6u1AGAj6r9fauQAElienwojWM5/OTJjul4YQeEnDUvE9Hr/nXdBMIU8H9/s1LvmwLEA3KVxZv3xkxo/EkSLbFYRt69Ko2mI8nkjoumu33sUKblX/epOsEuG5ky8RWSvvYA0n4dxplQ9HvlCwFkWkj5pbHRsA5oYpbdr9VZnW3DGJFsuN+HGgq6vK0chXsjSFxZ1rZe4MgwsgyOKdYw4uG4IIOL+VEzGMindrTuk2z7imIYMnOF9s8toonBwAAAAFiS0dE05ffniYAAAAJcEhZcwAAHsIAAB7CAW7QdT4AAAKSSURBVDjLddP5P9NxHAdw727H+qbJsfp+2eprM7lGciSLLWwjWTItWm5hEZG2yblEOcsRkhSp6C4diu5D1/svaluqfbHPr+/n4/14P96f98vOzuoB2Ds4OgHY2XrAWk/gBueNywtgu2xydXP3QM7mLeRSApSnF5e3dRvtzRegj9CXZhIA7+1+yPVHQUAgHSTiYXDIDutRIHRnGBLhEZG7onB3tHhPTKxEujcOVvwtkzHxHPRIEMvkCpdEKRGbxNqXvB/5K1NYliagPJCKAv5BKk2VfshVfTgYMzKPgAb5q446ZJkFZCNPlEPl5uUjFhQeo+w1PlgExchfLcQECwhIj2GnlGix4HhRKpYWZ5VFnnBcAOUWoEyRVZyUSiurXMlTqmo8HS2W5zKATq8yoLbmDLu2DkIr6pGIrWIxgHsDNjQ2gfEspxkAzoW0ILeGAVrx/AVjky+7DZvBvNL2jijhItAJXdpu1kULMH/KpR56MdBg7z9g7qLuw07bAPovJ0qwZE3H8gB0A4M8HLoyrBhcAq6C6V9HAq7haJ6SGrhegM5W4AZpBjDWexqrVXqjU2Mpjt+csAK3TOA2faeSwPoeubh3Eg1enjp67SJATpX63b1nrLpP4IMumbgmjtGhDfseUu2PdDmP/TF4Sk0+eSr5M0NP6rQZwDMuPn8xDC+FOKqZoYMyM/CV3gLKXqeZQOYwGREvkc7WKsbm9MY30y3o/9aXWlgMDXyUzs7JxpLfoUGl18nL3yPx4SMb/h+1uluLhk8D1Ej2Z8wXhXMwzNmNkTCgZ1obcFzzhaorjEIUfA1cEkAwRg5ycLLbTTH/TRSkWy59IJ//jkR6UtmPfhvxBZgoGfpZy7KdbtMh/FKuY9Z/A5BpFQDfw7IqAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTA1LTI3VDEyOjEzOjMyKzAwOjAwGo+68wAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0wNS0yN1QxMjoxMzozMiswMDowMGvSAk8AAABGdEVYdHNvZnR3YXJlAEltYWdlTWFnaWNrIDYuNy44LTkgMjAxNC0wNS0xMiBRMTYgaHR0cDovL3d3dy5pbWFnZW1hZ2ljay5vcmfchu0AAAAAGHRFWHRUaHVtYjo6RG9jdW1lbnQ6OlBhZ2VzADGn/7svAAAAGHRFWHRUaHVtYjo6SW1hZ2U6OmhlaWdodAAxOTIPAHKFAAAAF3RFWHRUaHVtYjo6SW1hZ2U6OldpZHRoADE5MtOsIQgAAAAZdEVYdFRodW1iOjpNaW1ldHlwZQBpbWFnZS9wbmc/slZOAAAAF3RFWHRUaHVtYjo6TVRpbWUAMTUyNzQyMzIxMrt1QM4AAAAPdEVYdFRodW1iOjpTaXplADBCQpSiPuwAAABWdEVYdFRodW1iOjpVUkkAZmlsZTovLy9tbnRsb2cvZmF2aWNvbnMvMjAxOC0wNS0yNy9lYzg4MmQzYzExN2JiMjM1NWU1NTYxYTUzNzdmYzZlMy5pY28ucG5nwabHRwAAAABJRU5ErkJggg==">
9+
</head>
10+
<body>
11+
<div class="main-box">
12+
<div class="box-header">
13+
<a href="https://bithomp.com/">
14+
<div class="logo">
15+
<svg version="1.1" id="layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
16+
viewBox="0 0 180 52" enable-background="new 0 0 180 52" xml:space="preserve">
17+
<g>
18+
<path fill="#FFFFFF" stroke="#FFFFFF" stroke-width="0.3017" d="M55.4,20.2c0.4-0.3,1-0.6,1.9-0.8c0.8-0.3,1.8-0.4,2.9-0.4
19+
c1.4,0,2.6,0.2,3.6,0.7c1.1,0.5,2,1.2,2.7,2.1c0.7,0.9,1.3,1.9,1.7,3.2c0.4,1.2,0.6,2.6,0.6,4c0,1.5-0.2,2.9-0.7,4.2
20+
c-0.5,1.2-1.1,2.3-1.9,3.1c-0.8,0.9-1.8,1.5-3,2c-1.2,0.5-2.5,0.7-4,0.7c-1.6,0-3-0.1-4.2-0.3c-1.2-0.2-2.2-0.4-3-0.7V13.3l3.4-1.9
21+
V20.2z M55.4,35.5c0.3,0.1,0.8,0.2,1.4,0.3c0.6,0.1,1.4,0.1,2.3,0.1c1.8,0,3.3-0.6,4.4-1.8c1.1-1.2,1.6-2.9,1.6-5.2
22+
c0-1-0.1-1.9-0.3-2.8c-0.2-0.9-0.5-1.6-1-2.2c-0.4-0.6-1-1.1-1.7-1.5c-0.7-0.4-1.5-0.5-2.5-0.5c-0.9,0-1.8,0.2-2.6,0.5
23+
c-0.8,0.3-1.4,0.6-1.8,1V35.5z"/>
24+
<path fill="#FFFFFF" stroke="#FFFFFF" stroke-width="0.3017" d="M74.1,15.9c-0.6,0-1.1-0.2-1.6-0.6c-0.4-0.4-0.6-0.9-0.6-1.6
25+
c0-0.7,0.2-1.2,0.6-1.6c0.4-0.4,0.9-0.6,1.6-0.6c0.6,0,1.1,0.2,1.6,0.6c0.4,0.4,0.6,0.9,0.6,1.6c0,0.7-0.2,1.2-0.6,1.6
26+
C75.2,15.7,74.7,15.9,74.1,15.9z M75.8,38.5h-3.4V19.4h3.4V38.5z"/>
27+
<path fill="#FFFFFF" stroke="#FFFFFF" stroke-width="0.3017" d="M82.5,19.4h7.4v2.9h-7.4v8.8c0,1,0.1,1.7,0.2,2.4
28+
c0.2,0.6,0.4,1.1,0.7,1.5c0.3,0.4,0.7,0.6,1.1,0.8c0.5,0.1,1,0.2,1.6,0.2c1.1,0,1.9-0.1,2.5-0.3c0.6-0.2,1.1-0.4,1.3-0.5l0,3.1
29+
c-0.4,0.2-0.3,0.1-1.2,0.4c-0.9,0.3-1.9,0.4-3,0.4c-1.3,0-2.4-0.2-3.3-0.5c-0.9-0.3-1.6-0.8-2.1-1.5c-0.5-0.7-0.9-1.5-1.1-2.4
30+
c-0.2-1-0.3-2.1-0.3-3.4V13.3l3.5-1.9V19.4z"/>
31+
<path fill="#FFFFFF" stroke="#FFFFFF" stroke-width="0.3017" d="M93,38.5V13.3l3.5-1.9v8.3c0.7-0.2,1.4-0.4,2.1-0.6
32+
c0.7-0.1,1.5-0.2,2.2-0.2c1.6,0,2.9,0.2,3.9,0.6c1,0.4,1.9,1,2.5,1.8c0.6,0.8,1.1,1.7,1.3,2.8c0.3,1.1,0.4,2.3,0.4,3.6v10.7h-3.5
33+
v-10c0-1.2-0.1-2.2-0.2-3c-0.2-0.8-0.4-1.5-0.8-2c-0.4-0.5-0.9-0.9-1.5-1.1c-0.6-0.2-1.4-0.3-2.4-0.3c-0.4,0-0.8,0-1.2,0.1
34+
c-0.4,0-0.8,0.1-1.2,0.2c-0.4,0.1-0.7,0.1-1,0.2c-0.3,0.1-0.5,0.1-0.6,0.2v15.9H93z"/>
35+
<path fill="#FFFFFF" stroke="#FFFFFF" stroke-width="0.3017" d="M130,29c0,1.5-0.2,2.9-0.7,4.1c-0.4,1.2-1.1,2.3-1.9,3.1
36+
c-0.8,0.9-1.8,1.6-2.9,2c-1.1,0.5-2.3,0.7-3.6,0.7c-1.3,0-2.5-0.2-3.6-0.7c-1.1-0.5-2.1-1.2-2.9-2c-0.8-0.9-1.4-1.9-1.9-3.1
37+
c-0.4-1.2-0.7-2.6-0.7-4.1c0-1.5,0.2-2.8,0.7-4.1c0.4-1.2,1.1-2.3,1.9-3.2c0.8-0.9,1.8-1.6,2.9-2c1.1-0.5,2.3-0.7,3.6-0.7
38+
c1.3,0,2.5,0.2,3.6,0.7c1.1,0.5,2.1,1.2,2.9,2c0.8,0.9,1.4,1.9,1.9,3.2C129.8,26.1,130,27.5,130,29z M126.4,29
39+
c0-2.1-0.5-3.8-1.5-5.1c-1-1.3-2.3-1.9-4-1.9c-1.7,0-3,0.6-4,1.9c-1,1.3-1.5,3-1.5,5.1c0,2.1,0.5,3.8,1.5,5.1c1,1.3,2.3,1.9,4,1.9
40+
c1.7,0,3-0.6,4-1.9C125.9,32.8,126.4,31.1,126.4,29z"/>
41+
<path fill="#FFFFFF" stroke="#FFFFFF" stroke-width="0.3017" d="M133,20c0.8-0.2,1.8-0.4,3.1-0.6c1.3-0.2,2.8-0.3,4.5-0.3
42+
c1.2,0,2.3,0.2,3.1,0.5c0.8,0.3,1.5,0.8,2.1,1.5c0.2-0.1,0.4-0.3,0.8-0.5c0.4-0.2,0.8-0.4,1.4-0.7c0.5-0.2,1.1-0.4,1.8-0.6
43+
c0.7-0.2,1.4-0.2,2.1-0.2c1.5,0,2.7,0.2,3.6,0.7c0.9,0.4,1.7,1.1,2.2,1.9c0.5,0.8,0.9,1.8,1.1,2.9c0.2,1.1,0.3,2.3,0.3,3.6v11h-3.4
44+
V28.8c0-1.2-0.1-2.1-0.2-3c-0.1-0.8-0.3-1.5-0.6-2.1c-0.3-0.6-0.7-1-1.3-1.2c-0.5-0.3-1.2-0.4-2-0.4c-1.2,0-2.1,0.2-2.9,0.5
45+
c-0.7,0.3-1.3,0.6-1.5,0.8c0.2,0.7,0.3,1.4,0.4,2.1c0.1,0.8,0.1,1.6,0.1,2.4v11h-3.4V28.8c0-1.2-0.1-2.1-0.2-3
46+
c-0.1-0.8-0.3-1.5-0.6-2.1c-0.3-0.6-0.7-1-1.2-1.2c-0.5-0.3-1.2-0.4-2-0.4c-0.3,0-0.7,0-1.1,0c-0.4,0-0.8,0.1-1.1,0.1
47+
c-0.4,0-0.7,0.1-1,0.1c-0.3,0.1-0.5,0.1-0.6,0.1V39H133V20z"/>
48+
<path fill="#FFFFFF" stroke="#FFFFFF" stroke-width="0.3017" d="M180,28.9c0,1.4-0.2,2.8-0.6,4c-0.4,1.2-0.9,2.3-1.7,3.1
49+
c-0.7,0.9-1.7,1.6-2.7,2c-1.1,0.5-2.3,0.7-3.7,0.7c-1.1,0-2.1-0.1-3-0.4c-0.9-0.3-1.5-0.6-1.9-0.8v6.7L163,46V20
50+
c0.8-0.2,1.8-0.4,3.1-0.6c1.2-0.2,2.6-0.3,4.2-0.3c1.5,0,2.8,0.2,4,0.7c1.2,0.5,2.2,1.1,3,2c0.8,0.9,1.5,1.9,1.9,3.1
51+
C179.8,26,180,27.4,180,28.9z M176.4,28.9c0-2.2-0.6-3.9-1.7-5.1c-1.1-1.2-2.6-1.8-4.5-1.8c-1,0-1.8,0-2.4,0.1
52+
c-0.6,0.1-1,0.2-1.4,0.3v11.9c0.4,0.3,1,0.7,1.8,1c0.8,0.3,1.7,0.5,2.6,0.5c1,0,1.8-0.2,2.5-0.5c0.7-0.4,1.3-0.8,1.7-1.5
53+
c0.4-0.6,0.8-1.3,1-2.2C176.3,30.8,176.4,29.9,176.4,28.9z"/>
54+
</g>
55+
<g>
56+
<polygon fill="#63A6B9" points="0,13.5 15.6,4.6 31.3,13.6 31.3,17.5 15.7,8.6 0,17.5 "/>
57+
<polygon fill="#63A6B9" points="3.5,40.5 0,38.5 0,20.7 15.8,11.8 31.3,20.7 31.3,24.7 15.7,15.8 3.5,22.7 "/>
58+
<polygon fill="#63A6B9" points="44,13.5 44,31.2 28.3,40.2 24.8,38.2 40.4,29.3 40.5,11.5 "/>
59+
<polygon fill="#63A6B9" points="18.5,3 22,1 37.7,9.9 37.7,27.8 22.1,36.7 18.5,34.6 34.2,25.7 34.2,11.9 "/>
60+
<polygon fill="#63A6B9" points="22,51 6.4,42.1 6.4,24.2 9.9,22.2 9.9,40.1 25.5,49 "/>
61+
<polygon fill="#63A6B9" points="43.9,34.5 43.9,38.5 28.2,47.4 12.6,38.4 12.6,20.7 16.2,18.7 16.1,36.5 28.3,43.4 "/>
62+
</g>
63+
</svg>
64+
</div>
65+
</a>
66+
<div class="social-icons">
67+
<a href="https://twitter.com/bithomp" target="_blank">
68+
<svg width="22" height="22" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1684 408q-67 98-162 167 1 14 1 42 0 130-38 259.5t-115.5 248.5-184.5 210.5-258 146-323 54.5q-271 0-496-145 35 4 78 4 225 0 401-138-105-2-188-64.5t-114-159.5q33 5 61 5 43 0 85-11-112-23-185.5-111.5t-73.5-205.5v-4q68 38 146 41-66-44-105-115t-39-154q0-88 44-163 121 149 294.5 238.5t371.5 99.5q-8-38-8-74 0-134 94.5-228.5t228.5-94.5q140 0 236 102 109-21 205-78-37 115-142 178 93-10 186-50z" fill="#006b7d"/></svg>
69+
</a>
70+
<a href="https://www.instagram.com/bithomp/" target="_blank">
71+
<svg width="22" height="22" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1152 896q0-106-75-181t-181-75-181 75-75 181 75 181 181 75 181-75 75-181zm138 0q0 164-115 279t-279 115-279-115-115-279 115-279 279-115 279 115 115 279zm108-410q0 38-27 65t-65 27-65-27-27-65 27-65 65-27 65 27 27 65zm-502-220q-7 0-76.5-.5t-105.5 0-96.5 3-103 10-71.5 18.5q-50 20-88 58t-58 88q-11 29-18.5 71.5t-10 103-3 96.5 0 105.5.5 76.5-.5 76.5 0 105.5 3 96.5 10 103 18.5 71.5q20 50 58 88t88 58q29 11 71.5 18.5t103 10 96.5 3 105.5 0 76.5-.5 76.5.5 105.5 0 96.5-3 103-10 71.5-18.5q50-20 88-58t58-88q11-29 18.5-71.5t10-103 3-96.5 0-105.5-.5-76.5.5-76.5 0-105.5-3-96.5-10-103-18.5-71.5q-20-50-58-88t-88-58q-29-11-71.5-18.5t-103-10-96.5-3-105.5 0-76.5.5zm768 630q0 229-5 317-10 208-124 322t-322 124q-88 5-317 5t-317-5q-208-10-322-124t-124-322q-5-88-5-317t5-317q10-208 124-322t322-124q88-5 317-5t317 5q208 10 322 124t124 322q5 88 5 317z" fill="#006b7d"/></svg>
72+
</a>
73+
<a href="https://bithomp.com" target="_blank">
74+
<svg width="22" height="22" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1472 992v480q0 26-19 45t-45 19h-384v-384h-256v384h-384q-26 0-45-19t-19-45v-480q0-1 .5-3t.5-3l575-474 575 474q1 2 1 6zm223-69l-62 74q-8 9-21 11h-3q-13 0-21-7l-692-577-692 577q-12 8-24 7-13-2-21-11l-62-74q-8-10-7-23.5t11-21.5l719-599q32-26 76-26t76 26l244 204v-195q0-14 9-23t23-9h192q14 0 23 9t9 23v408l219 182q10 8 11 21.5t-7 23.5z" fill="#006b7d"/></svg>
75+
</a>
76+
</div>
77+
</div>
78+
<h2>Submit a signed ripple transaction</h2>
79+
80+
<textarea id="txBlob" class="tx-blob"></textarea>
81+
82+
<div class="feedback orange" id="feedback"></div>
83+
84+
<button type="button" class="button-submit" id="submit">Submit</button>
85+
86+
<hr>
87+
88+
<div class="footer">
89+
© 2015 <span id="thisYear"> - 2018</span> <a href="http://octillion.info" target="_blank">Octillion S.A.</a> All Rights Reserved
90+
| <a href="https://bithomp.com/donate" target="_blank">Donate</a>
91+
</div>
92+
93+
</div>
94+
95+
<script src="js/lodash.js"></script>
96+
<script src="js/ripple-0.22.0.js"></script>
97+
<script src="js/jquery-3.2.1.js"></script>
98+
<script src="js/index.js"></script>
99+
</body>
100+
</html>

src/js/index.js

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
(function() {
2+
3+
var api = new ripple.RippleAPI({server: 'wss://s1.ripple.com'});
4+
var explorer = 'https://bithomp.com/explorer/';
5+
6+
var DOM = {};
7+
DOM.txBlob = $('#txBlob');
8+
DOM.feedback = $('#feedback');
9+
DOM.submit = $('#submit');
10+
DOM.thisYear = $('#thisYear');
11+
12+
function init() {
13+
thisYear();
14+
DOM.submit.on("click", submit);
15+
DOM.txBlob.on("change keyup paste", txBlobChanged);
16+
}
17+
18+
function txBlobChanged() {
19+
DOM.feedback.html('');
20+
}
21+
22+
function submit() {
23+
DOM.feedback.html('');
24+
25+
var blob = DOM.txBlob.val();
26+
blob = blob.trim();
27+
28+
if (blob == '') {
29+
DOM.feedback.html('Error: tx blob is empty');
30+
return;
31+
}
32+
33+
if (!validateBlob(blob)) {
34+
DOM.feedback.html('Error: Incorrect transaction blob!');
35+
return;
36+
}
37+
38+
var buttonValue = addLoadingState(DOM.submit);
39+
40+
api.connect().then(function() {
41+
api.submit(
42+
blob
43+
).then(function(result) {
44+
DOM.feedback.html(result.resultMessage);
45+
DOM.submit.html(buttonValue);
46+
}).catch(function (error) {
47+
DOM.feedback.html(error.message);
48+
DOM.submit.html(buttonValue);
49+
});
50+
}).catch(function(err) {
51+
DOM.feedback.html('connect: ' + err.resultMessage);
52+
console.log(err);
53+
DOM.submit.html(buttonValue);
54+
});
55+
56+
}
57+
58+
function addLoadingState(element) {
59+
var buttonValue = element.html();
60+
element.html('<div class="bounce1"></div><div class="bounce2"></div><div class="bounce3"></div>');
61+
element.addClass('spinner');
62+
return buttonValue;
63+
}
64+
65+
function thisYear() {
66+
var d = new Date();
67+
var n = d.getFullYear();
68+
DOM.thisYear.html(" - " + n);
69+
}
70+
71+
function validateBlob(blob) {
72+
var re = /^[0-9A-F]*$/;
73+
return re.test(blob);
74+
}
75+
76+
init();
77+
78+
})();

0 commit comments

Comments
 (0)