This commit is contained in:
Paul Corbalan 2023-08-21 16:49:53 +02:00
commit 444630737e
85 changed files with 127250 additions and 0 deletions

View File

@ -0,0 +1,104 @@
# Module 1 - Create a Blockchain
# To be installed:
# Flask==0.12.2: pip install Flask==0.12.2
# Postman HTTP Client: https://www.getpostman.com/
# Importing the libraries
import datetime
import hashlib
import json
from flask import Flask, jsonify
# Part 1 - Building a Blockchain
class Blockchain:
def __init__(self):
self.chain = []
self.create_block(proof = 1, previous_hash = '0')
def create_block(self, proof, previous_hash):
block = {'index': len(self.chain) + 1,
'timestamp': str(datetime.datetime.now()),
'proof': proof,
'previous_hash': previous_hash}
self.chain.append(block)
return block
def get_previous_block(self):
return self.chain[-1]
def proof_of_work(self, previous_proof):
new_proof = 1
check_proof = False
while check_proof is False:
hash_operation = hashlib.sha256(str(new_proof**2 - previous_proof**2).encode()).hexdigest()
if hash_operation[:4] == '0000':
check_proof = True
else:
new_proof += 1
return new_proof
def hash(self, block):
encoded_block = json.dumps(block, sort_keys = True).encode()
return hashlib.sha256(encoded_block).hexdigest()
def is_chain_valid(self, chain):
previous_block = chain[0]
block_index = 1
while block_index < len(chain):
block = chain[block_index]
if block['previous_hash'] != self.hash(previous_block):
return False
previous_proof = previous_block['proof']
proof = block['proof']
hash_operation = hashlib.sha256(str(proof**2 - previous_proof**2).encode()).hexdigest()
if hash_operation[:4] != '0000':
return False
previous_block = block
block_index += 1
return True
# Part 2 - Mining our Blockchain
# Creating a Web App
app = Flask(__name__)
# Creating a Blockchain
blockchain = Blockchain()
# Mining a new block
@app.route('/mine_block', methods = ['GET'])
def mine_block():
previous_block = blockchain.get_previous_block()
previous_proof = previous_block['proof']
proof = blockchain.proof_of_work(previous_proof)
previous_hash = blockchain.hash(previous_block)
block = blockchain.create_block(proof, previous_hash)
response = {'message': 'Congratulations, you just mined a block!',
'index': block['index'],
'timestamp': block['timestamp'],
'proof': block['proof'],
'previous_hash': block['previous_hash']}
return jsonify(response), 200
# Getting the full Blockchain
@app.route('/get_chain', methods = ['GET'])
def get_chain():
response = {'chain': blockchain.chain,
'length': len(blockchain.chain)}
return jsonify(response), 200
# Checking if the Blockchain is valid
@app.route('/is_valid', methods = ['GET'])
def is_valid():
is_valid = blockchain.is_chain_valid(blockchain.chain)
if is_valid:
response = {'message': 'All good. The Blockchain is valid.'}
else:
response = {'message': 'Houston, we have a problem. The Blockchain is not valid.'}
return jsonify(response), 200
# Running the app
app.run(host = '0.0.0.0', port = 5000)

View File

@ -0,0 +1,183 @@
# Module 2 - Create a Cryptocurrency
# To be installed:
# Flask==0.12.2: pip install Flask==0.12.2
# Postman HTTP Client: https://www.getpostman.com/
# requests==2.18.4: pip install requests==2.18.4
# Importing the libraries
import datetime
import hashlib
import json
from flask import Flask, jsonify, request
import requests
from uuid import uuid4
from urllib.parse import urlparse
# Part 1 - Building a Blockchain
class Blockchain:
def __init__(self):
self.chain = []
self.transactions = []
self.create_block(proof = 1, previous_hash = '0')
self.nodes = set()
def create_block(self, proof, previous_hash):
block = {'index': len(self.chain) + 1,
'timestamp': str(datetime.datetime.now()),
'proof': proof,
'previous_hash': previous_hash,
'transactions': self.transactions}
self.transactions = []
self.chain.append(block)
return block
def get_previous_block(self):
return self.chain[-1]
def proof_of_work(self, previous_proof):
new_proof = 1
check_proof = False
while check_proof is False:
hash_operation = hashlib.sha256(str(new_proof**2 - previous_proof**2).encode()).hexdigest()
if hash_operation[:4] == '0000':
check_proof = True
else:
new_proof += 1
return new_proof
def hash(self, block):
encoded_block = json.dumps(block, sort_keys = True).encode()
return hashlib.sha256(encoded_block).hexdigest()
def is_chain_valid(self, chain):
previous_block = chain[0]
block_index = 1
while block_index < len(chain):
block = chain[block_index]
if block['previous_hash'] != self.hash(previous_block):
return False
previous_proof = previous_block['proof']
proof = block['proof']
hash_operation = hashlib.sha256(str(proof**2 - previous_proof**2).encode()).hexdigest()
if hash_operation[:4] != '0000':
return False
previous_block = block
block_index += 1
return True
def add_transaction(self, sender, receiver, amount):
self.transactions.append({'sender': sender,
'receiver': receiver,
'amount': amount})
previous_block = self.get_previous_block()
return previous_block['index'] + 1
def add_node(self, address):
parsed_url = urlparse(address)
self.nodes.add(parsed_url.netloc)
def replace_chain(self):
network = self.nodes
longest_chain = None
max_length = len(self.chain)
for node in network:
response = requests.get(f'http://{node}/get_chain')
if response.status_code == 200:
length = response.json()['length']
chain = response.json()['chain']
if length > max_length and self.is_chain_valid(chain):
max_length = length
longest_chain = chain
if longest_chain:
self.chain = longest_chain
return True
return False
# Part 2 - Mining our Blockchain
# Creating a Web App
app = Flask(__name__)
# Creating an address for the node on Port 5000
node_address = str(uuid4()).replace('-', '')
# Creating a Blockchain
blockchain = Blockchain()
# Mining a new block
@app.route('/mine_block', methods = ['GET'])
def mine_block():
previous_block = blockchain.get_previous_block()
previous_proof = previous_block['proof']
proof = blockchain.proof_of_work(previous_proof)
previous_hash = blockchain.hash(previous_block)
blockchain.add_transaction(sender = node_address, receiver = 'Hadelin', amount = 1)
block = blockchain.create_block(proof, previous_hash)
response = {'message': 'Congratulations, you just mined a block!',
'index': block['index'],
'timestamp': block['timestamp'],
'proof': block['proof'],
'previous_hash': block['previous_hash'],
'transactions': block['transactions']}
return jsonify(response), 200
# Getting the full Blockchain
@app.route('/get_chain', methods = ['GET'])
def get_chain():
response = {'chain': blockchain.chain,
'length': len(blockchain.chain)}
return jsonify(response), 200
# Checking if the Blockchain is valid
@app.route('/is_valid', methods = ['GET'])
def is_valid():
is_valid = blockchain.is_chain_valid(blockchain.chain)
if is_valid:
response = {'message': 'All good. The Blockchain is valid.'}
else:
response = {'message': 'Houston, we have a problem. The Blockchain is not valid.'}
return jsonify(response), 200
# Adding a new transaction to the Blockchain
@app.route('/add_transaction', methods = ['POST'])
def add_transaction():
json = request.get_json()
transaction_keys = ['sender', 'receiver', 'amount']
if not all(key in json for key in transaction_keys):
return 'Some elements of the transaction are missing', 400
index = blockchain.add_transaction(json['sender'], json['receiver'], json['amount'])
response = {'message': f'This transaction will be added to Block {index}'}
return jsonify(response), 201
# Part 3 - Decentralizing our Blockchain
# Connecting new nodes
@app.route('/connect_node', methods = ['POST'])
def connect_node():
json = request.get_json()
nodes = json.get('nodes')
if nodes is None:
return "No node", 400
for node in nodes:
blockchain.add_node(node)
response = {'message': 'All the nodes are now connected. The Hadcoin Blockchain now contains the following nodes:',
'total_nodes': list(blockchain.nodes)}
return jsonify(response), 201
# Replacing the chain by the longest chain if needed
@app.route('/replace_chain', methods = ['GET'])
def replace_chain():
is_chain_replaced = blockchain.replace_chain()
if is_chain_replaced:
response = {'message': 'The nodes had different chains so the chain was replaced by the longest one.',
'new_chain': blockchain.chain}
else:
response = {'message': 'All good. The chain is the largest one.',
'actual_chain': blockchain.chain}
return jsonify(response), 200
# Running the app
app.run(host = '0.0.0.0', port = 5000)

View File

@ -0,0 +1,183 @@
# Module 2 - Create a Cryptocurrency
# To be installed:
# Flask==0.12.2: pip install Flask==0.12.2
# Postman HTTP Client: https://www.getpostman.com/
# requests==2.18.4: pip install requests==2.18.4
# Importing the libraries
import datetime
import hashlib
import json
from flask import Flask, jsonify, request
import requests
from uuid import uuid4
from urllib.parse import urlparse
# Part 1 - Building a Blockchain
class Blockchain:
def __init__(self):
self.chain = []
self.transactions = []
self.create_block(proof = 1, previous_hash = '0')
self.nodes = set()
def create_block(self, proof, previous_hash):
block = {'index': len(self.chain) + 1,
'timestamp': str(datetime.datetime.now()),
'proof': proof,
'previous_hash': previous_hash,
'transactions': self.transactions}
self.transactions = []
self.chain.append(block)
return block
def get_previous_block(self):
return self.chain[-1]
def proof_of_work(self, previous_proof):
new_proof = 1
check_proof = False
while check_proof is False:
hash_operation = hashlib.sha256(str(new_proof**2 - previous_proof**2).encode()).hexdigest()
if hash_operation[:4] == '0000':
check_proof = True
else:
new_proof += 1
return new_proof
def hash(self, block):
encoded_block = json.dumps(block, sort_keys = True).encode()
return hashlib.sha256(encoded_block).hexdigest()
def is_chain_valid(self, chain):
previous_block = chain[0]
block_index = 1
while block_index < len(chain):
block = chain[block_index]
if block['previous_hash'] != self.hash(previous_block):
return False
previous_proof = previous_block['proof']
proof = block['proof']
hash_operation = hashlib.sha256(str(proof**2 - previous_proof**2).encode()).hexdigest()
if hash_operation[:4] != '0000':
return False
previous_block = block
block_index += 1
return True
def add_transaction(self, sender, receiver, amount):
self.transactions.append({'sender': sender,
'receiver': receiver,
'amount': amount})
previous_block = self.get_previous_block()
return previous_block['index'] + 1
def add_node(self, address):
parsed_url = urlparse(address)
self.nodes.add(parsed_url.netloc)
def replace_chain(self):
network = self.nodes
longest_chain = None
max_length = len(self.chain)
for node in network:
response = requests.get(f'http://{node}/get_chain')
if response.status_code == 200:
length = response.json()['length']
chain = response.json()['chain']
if length > max_length and self.is_chain_valid(chain):
max_length = length
longest_chain = chain
if longest_chain:
self.chain = longest_chain
return True
return False
# Part 2 - Mining our Blockchain
# Creating a Web App
app = Flask(__name__)
# Creating an address for the node on Port 5001
node_address = str(uuid4()).replace('-', '')
# Creating a Blockchain
blockchain = Blockchain()
# Mining a new block
@app.route('/mine_block', methods = ['GET'])
def mine_block():
previous_block = blockchain.get_previous_block()
previous_proof = previous_block['proof']
proof = blockchain.proof_of_work(previous_proof)
previous_hash = blockchain.hash(previous_block)
blockchain.add_transaction(sender = node_address, receiver = 'Hadelin', amount = 1)
block = blockchain.create_block(proof, previous_hash)
response = {'message': 'Congratulations, you just mined a block!',
'index': block['index'],
'timestamp': block['timestamp'],
'proof': block['proof'],
'previous_hash': block['previous_hash'],
'transactions': block['transactions']}
return jsonify(response), 200
# Getting the full Blockchain
@app.route('/get_chain', methods = ['GET'])
def get_chain():
response = {'chain': blockchain.chain,
'length': len(blockchain.chain)}
return jsonify(response), 200
# Checking if the Blockchain is valid
@app.route('/is_valid', methods = ['GET'])
def is_valid():
is_valid = blockchain.is_chain_valid(blockchain.chain)
if is_valid:
response = {'message': 'All good. The Blockchain is valid.'}
else:
response = {'message': 'Houston, we have a problem. The Blockchain is not valid.'}
return jsonify(response), 200
# Adding a new transaction to the Blockchain
@app.route('/add_transaction', methods = ['POST'])
def add_transaction():
json = request.get_json()
transaction_keys = ['sender', 'receiver', 'amount']
if not all(key in json for key in transaction_keys):
return 'Some elements of the transaction are missing', 400
index = blockchain.add_transaction(json['sender'], json['receiver'], json['amount'])
response = {'message': f'This transaction will be added to Block {index}'}
return jsonify(response), 201
# Part 3 - Decentralizing our Blockchain
# Connecting new nodes
@app.route('/connect_node', methods = ['POST'])
def connect_node():
json = request.get_json()
nodes = json.get('nodes')
if nodes is None:
return "No node", 400
for node in nodes:
blockchain.add_node(node)
response = {'message': 'All the nodes are now connected. The Hadcoin Blockchain now contains the following nodes:',
'total_nodes': list(blockchain.nodes)}
return jsonify(response), 201
# Replacing the chain by the longest chain if needed
@app.route('/replace_chain', methods = ['GET'])
def replace_chain():
is_chain_replaced = blockchain.replace_chain()
if is_chain_replaced:
response = {'message': 'The nodes had different chains so the chain was replaced by the longest one.',
'new_chain': blockchain.chain}
else:
response = {'message': 'All good. The chain is the largest one.',
'actual_chain': blockchain.chain}
return jsonify(response), 200
# Running the app
app.run(host = '0.0.0.0', port = 5001)

View File

@ -0,0 +1,183 @@
# Module 2 - Create a Cryptocurrency
# To be installed:
# Flask==0.12.2: pip install Flask==0.12.2
# Postman HTTP Client: https://www.getpostman.com/
# requests==2.18.4: pip install requests==2.18.4
# Importing the libraries
import datetime
import hashlib
import json
from flask import Flask, jsonify, request
import requests
from uuid import uuid4
from urllib.parse import urlparse
# Part 1 - Building a Blockchain
class Blockchain:
def __init__(self):
self.chain = []
self.transactions = []
self.create_block(proof = 1, previous_hash = '0')
self.nodes = set()
def create_block(self, proof, previous_hash):
block = {'index': len(self.chain) + 1,
'timestamp': str(datetime.datetime.now()),
'proof': proof,
'previous_hash': previous_hash,
'transactions': self.transactions}
self.transactions = []
self.chain.append(block)
return block
def get_previous_block(self):
return self.chain[-1]
def proof_of_work(self, previous_proof):
new_proof = 1
check_proof = False
while check_proof is False:
hash_operation = hashlib.sha256(str(new_proof**2 - previous_proof**2).encode()).hexdigest()
if hash_operation[:4] == '0000':
check_proof = True
else:
new_proof += 1
return new_proof
def hash(self, block):
encoded_block = json.dumps(block, sort_keys = True).encode()
return hashlib.sha256(encoded_block).hexdigest()
def is_chain_valid(self, chain):
previous_block = chain[0]
block_index = 1
while block_index < len(chain):
block = chain[block_index]
if block['previous_hash'] != self.hash(previous_block):
return False
previous_proof = previous_block['proof']
proof = block['proof']
hash_operation = hashlib.sha256(str(proof**2 - previous_proof**2).encode()).hexdigest()
if hash_operation[:4] != '0000':
return False
previous_block = block
block_index += 1
return True
def add_transaction(self, sender, receiver, amount):
self.transactions.append({'sender': sender,
'receiver': receiver,
'amount': amount})
previous_block = self.get_previous_block()
return previous_block['index'] + 1
def add_node(self, address):
parsed_url = urlparse(address)
self.nodes.add(parsed_url.netloc)
def replace_chain(self):
network = self.nodes
longest_chain = None
max_length = len(self.chain)
for node in network:
response = requests.get(f'http://{node}/get_chain')
if response.status_code == 200:
length = response.json()['length']
chain = response.json()['chain']
if length > max_length and self.is_chain_valid(chain):
max_length = length
longest_chain = chain
if longest_chain:
self.chain = longest_chain
return True
return False
# Part 2 - Mining our Blockchain
# Creating a Web App
app = Flask(__name__)
# Creating an address for the node on Port 5002
node_address = str(uuid4()).replace('-', '')
# Creating a Blockchain
blockchain = Blockchain()
# Mining a new block
@app.route('/mine_block', methods = ['GET'])
def mine_block():
previous_block = blockchain.get_previous_block()
previous_proof = previous_block['proof']
proof = blockchain.proof_of_work(previous_proof)
previous_hash = blockchain.hash(previous_block)
blockchain.add_transaction(sender = node_address, receiver = 'Kirill', amount = 1)
block = blockchain.create_block(proof, previous_hash)
response = {'message': 'Congratulations, you just mined a block!',
'index': block['index'],
'timestamp': block['timestamp'],
'proof': block['proof'],
'previous_hash': block['previous_hash'],
'transactions': block['transactions']}
return jsonify(response), 200
# Getting the full Blockchain
@app.route('/get_chain', methods = ['GET'])
def get_chain():
response = {'chain': blockchain.chain,
'length': len(blockchain.chain)}
return jsonify(response), 200
# Checking if the Blockchain is valid
@app.route('/is_valid', methods = ['GET'])
def is_valid():
is_valid = blockchain.is_chain_valid(blockchain.chain)
if is_valid:
response = {'message': 'All good. The Blockchain is valid.'}
else:
response = {'message': 'Houston, we have a problem. The Blockchain is not valid.'}
return jsonify(response), 200
# Adding a new transaction to the Blockchain
@app.route('/add_transaction', methods = ['POST'])
def add_transaction():
json = request.get_json()
transaction_keys = ['sender', 'receiver', 'amount']
if not all(key in json for key in transaction_keys):
return 'Some elements of the transaction are missing', 400
index = blockchain.add_transaction(json['sender'], json['receiver'], json['amount'])
response = {'message': f'This transaction will be added to Block {index}'}
return jsonify(response), 201
# Part 3 - Decentralizing our Blockchain
# Connecting new nodes
@app.route('/connect_node', methods = ['POST'])
def connect_node():
json = request.get_json()
nodes = json.get('nodes')
if nodes is None:
return "No node", 400
for node in nodes:
blockchain.add_node(node)
response = {'message': 'All the nodes are now connected. The Hadcoin Blockchain now contains the following nodes:',
'total_nodes': list(blockchain.nodes)}
return jsonify(response), 201
# Replacing the chain by the longest chain if needed
@app.route('/replace_chain', methods = ['GET'])
def replace_chain():
is_chain_replaced = blockchain.replace_chain()
if is_chain_replaced:
response = {'message': 'The nodes had different chains so the chain was replaced by the longest one.',
'new_chain': blockchain.chain}
else:
response = {'message': 'All good. The chain is the largest one.',
'actual_chain': blockchain.chain}
return jsonify(response), 200
# Running the app
app.run(host = '0.0.0.0', port = 5002)

View File

@ -0,0 +1,183 @@
# Module 2 - Create a Cryptocurrency
# To be installed:
# Flask==0.12.2: pip install Flask==0.12.2
# Postman HTTP Client: https://www.getpostman.com/
# requests==2.18.4: pip install requests==2.18.4
# Importing the libraries
import datetime
import hashlib
import json
from flask import Flask, jsonify, request
import requests
from uuid import uuid4
from urllib.parse import urlparse
# Part 1 - Building a Blockchain
class Blockchain:
def __init__(self):
self.chain = []
self.transactions = []
self.create_block(proof = 1, previous_hash = '0')
self.nodes = set()
def create_block(self, proof, previous_hash):
block = {'index': len(self.chain) + 1,
'timestamp': str(datetime.datetime.now()),
'proof': proof,
'previous_hash': previous_hash,
'transactions': self.transactions}
self.transactions = []
self.chain.append(block)
return block
def get_previous_block(self):
return self.chain[-1]
def proof_of_work(self, previous_proof):
new_proof = 1
check_proof = False
while check_proof is False:
hash_operation = hashlib.sha256(str(new_proof**2 - previous_proof**2).encode()).hexdigest()
if hash_operation[:4] == '0000':
check_proof = True
else:
new_proof += 1
return new_proof
def hash(self, block):
encoded_block = json.dumps(block, sort_keys = True).encode()
return hashlib.sha256(encoded_block).hexdigest()
def is_chain_valid(self, chain):
previous_block = chain[0]
block_index = 1
while block_index < len(chain):
block = chain[block_index]
if block['previous_hash'] != self.hash(previous_block):
return False
previous_proof = previous_block['proof']
proof = block['proof']
hash_operation = hashlib.sha256(str(proof**2 - previous_proof**2).encode()).hexdigest()
if hash_operation[:4] != '0000':
return False
previous_block = block
block_index += 1
return True
def add_transaction(self, sender, receiver, amount):
self.transactions.append({'sender': sender,
'receiver': receiver,
'amount': amount})
previous_block = self.get_previous_block()
return previous_block['index'] + 1
def add_node(self, address):
parsed_url = urlparse(address)
self.nodes.add(parsed_url.netloc)
def replace_chain(self):
network = self.nodes
longest_chain = None
max_length = len(self.chain)
for node in network:
response = requests.get(f'http://{node}/get_chain')
if response.status_code == 200:
length = response.json()['length']
chain = response.json()['chain']
if length > max_length and self.is_chain_valid(chain):
max_length = length
longest_chain = chain
if longest_chain:
self.chain = longest_chain
return True
return False
# Part 2 - Mining our Blockchain
# Creating a Web App
app = Flask(__name__)
# Creating an address for the node on Port 5003
node_address = str(uuid4()).replace('-', '')
# Creating a Blockchain
blockchain = Blockchain()
# Mining a new block
@app.route('/mine_block', methods = ['GET'])
def mine_block():
previous_block = blockchain.get_previous_block()
previous_proof = previous_block['proof']
proof = blockchain.proof_of_work(previous_proof)
previous_hash = blockchain.hash(previous_block)
blockchain.add_transaction(sender = node_address, receiver = 'You', amount = 1)
block = blockchain.create_block(proof, previous_hash)
response = {'message': 'Congratulations, you just mined a block!',
'index': block['index'],
'timestamp': block['timestamp'],
'proof': block['proof'],
'previous_hash': block['previous_hash'],
'transactions': block['transactions']}
return jsonify(response), 200
# Getting the full Blockchain
@app.route('/get_chain', methods = ['GET'])
def get_chain():
response = {'chain': blockchain.chain,
'length': len(blockchain.chain)}
return jsonify(response), 200
# Checking if the Blockchain is valid
@app.route('/is_valid', methods = ['GET'])
def is_valid():
is_valid = blockchain.is_chain_valid(blockchain.chain)
if is_valid:
response = {'message': 'All good. The Blockchain is valid.'}
else:
response = {'message': 'Houston, we have a problem. The Blockchain is not valid.'}
return jsonify(response), 200
# Adding a new transaction to the Blockchain
@app.route('/add_transaction', methods = ['POST'])
def add_transaction():
json = request.get_json()
transaction_keys = ['sender', 'receiver', 'amount']
if not all(key in json for key in transaction_keys):
return 'Some elements of the transaction are missing', 400
index = blockchain.add_transaction(json['sender'], json['receiver'], json['amount'])
response = {'message': f'This transaction will be added to Block {index}'}
return jsonify(response), 201
# Part 3 - Decentralizing our Blockchain
# Connecting new nodes
@app.route('/connect_node', methods = ['POST'])
def connect_node():
json = request.get_json()
nodes = json.get('nodes')
if nodes is None:
return "No node", 400
for node in nodes:
blockchain.add_node(node)
response = {'message': 'All the nodes are now connected. The Hadcoin Blockchain now contains the following nodes:',
'total_nodes': list(blockchain.nodes)}
return jsonify(response), 201
# Replacing the chain by the longest chain if needed
@app.route('/replace_chain', methods = ['GET'])
def replace_chain():
is_chain_replaced = blockchain.replace_chain()
if is_chain_replaced:
response = {'message': 'The nodes had different chains so the chain was replaced by the longest one.',
'new_chain': blockchain.chain}
else:
response = {'message': 'All good. The chain is the largest one.',
'actual_chain': blockchain.chain}
return jsonify(response), 200
# Running the app
app.run(host = '0.0.0.0', port = 5003)

View File

@ -0,0 +1,5 @@
{
"nodes": ["http://127.0.0.1:5001",
"http://127.0.0.1:5002",
"http://127.0.0.1:5003"]
}

View File

@ -0,0 +1,5 @@
{
"sender": "",
"receiver": "",
"amount":
}

Binary file not shown.

View File

@ -0,0 +1,236 @@
### [https://www.MyEtherWallet.com](https://www.MyEtherWallet.com)
### [Chrome Extension](https://chrome.google.com/webstore/detail/myetherwallet-cx/nlbmnnijcnlegkjjpcfjclmcfggfefdm)
### [Download the Latest Release](https://github.com/kvhnuke/etherwallet/releases/latest)
- etherwallet-vX.X.X.X.zip is the smaller package containing the gh-pages branch aka MyEtherWallet.com
- chrome-extension-vX.X.X.X.zip is the chrome extension package
- source code is the full source for developers to get started with (although cloning or forking the mercury branch is probably a better choice)
### MEW Around the Web
- [Website: https://www.myetherwallet.com/](https://www.myetherwallet.com/)
- [CX: https://chrome.google.com/webstore/detail/myetherwallet-cx/nlbmnnijcnlegkjjpcfjclmcfggfefdm](https://chrome.google.com/webstore/detail/myetherwallet-cx/nlbmnnijcnlegkjjpcfjclmcfggfefdm)
- [Anti-phish CX](https://chrome.google.com/webstore/detail/etheraddresslookup/pdknmigbbbhmllnmgdfalmedcmcefdfn)
- [FB: https://www.facebook.com/MyEtherWallet/](https://www.facebook.com/MyEtherWallet/)
- [Twitter: https://twitter.com/myetherwallet](https://twitter.com/myetherwallet)
- [Medium: https://medium.com/@myetherwallet](https://medium.com/@myetherwallet)
- [Help Center: https://myetherwallet.groovehq.com/help_center](https://myetherwallet.groovehq.com/help_center)
- [Github MEW Repo: https://github.com/kvhnuke/etherwallet](https://github.com/kvhnuke/etherwallet)
- [Github MEW Org: https://github.com/MyEtherWallet](https://github.com/MyEtherWallet)
- [Github Pages URL: https://kvhnuke.github.io/etherwallet/](https://kvhnuke.github.io/etherwallet/)
- [Github Latest Releases: https://github.com/kvhnuke/etherwallet/releases/latest](https://github.com/kvhnuke/etherwallet/releases/latest)
- [Github Anti-phish CX: https://github.com/409H/EtherAddressLookup](https://github.com/409H/EtherAddressLookup)
- [Slack: https://myetherwallet.slack.com/ & https://myetherwallet.herokuapp.com/](https://myetherwallet.slack.com/ & https://myetherwallet.herokuapp.com/)
- [Reddit: https://www.reddit.com/r/MyEtherWallet/](https://www.reddit.com/r/MyEtherWallet/)
- [tayvano (founder) reddit: https://www.reddit.com/user/insomniasexx/](https://www.reddit.com/user/insomniasexx/)
- [kvhnuke (founder) reddit: https://www.reddit.com/user/kvhnuke/](https://www.reddit.com/user/kvhnuke/)
- [jordan (cmo) reddit: https://www.reddit.com/user/trogdortb001](https://www.reddit.com/user/trogdortb001)
- [myetherwallet reddit user: https://www.reddit.com/user/myetherwallet](https://www.reddit.com/user/myetherwallet)
- MEW ETH Donation Address: 0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8 (mewtopia.eth)
- MEW BTC Donation Address: 1MEWT2SGbqtz6mPCgFcnea8XmWV5Z4Wc6
### `mercury` is the development branch. gh-pages contains only the smaller dist folder only and is served to MyEtherWallet.com
- Our infrastructure ("node") is on AWS. [You can also use your own node.](https://myetherwallet.github.io/knowledge-base/networks/run-your-own-node-with-myetherwallet.html)
- We also provide access to Infura.io & Etherscan.io nodes. Use the drop-down in the top-right.
### MyEtherWallet
- MyEtherWallet is a free, open-source, client-side tool for easily & securely interacting with the Ethereum network. As one of the leading providers of Ethereum services, MyEtherWallet equips users with an easy-to-understand and accessible suite of tools for their needs.
- It was created and is maintained by [kvhnuke](https://github.com/kvhnuke) and [tayvano](https://github.com/tayvano).
#### Features
- Create new wallets completely client side.
- Access your wallet via unencrypted private key, encrypted private key, keystore files, mnemonics, or Digital Bitbox, Ledger Nano S or TREZOR hardware wallet.
- Easily send ETH and *any* ERC-20 Standard Token. [Many tokens included as default.](https://myetherwallet.groovehq.com/knowledge_base/topics/can-i-send-my-steem-slash-btc-slash-ltc-slash-nem-slash-to-myetherwallet)
- Generate, sign & send transactions offline, ensuring your private keys never touch an internet-connected device.
- Securely access your ETH & Tokens on your [Digital Bitbox, Ledger or TREZOR Hardware Wallet](https://myetherwallet.groovehq.com/knowledge_base/topics/hardware-wallet-recommends) via the MyEtherWallet interface (Chrome & Opera natively, Firefox w/ [add-on](https://addons.mozilla.org/en-US/firefox/addon/u2f-support-add-on/))
- Now in 18 languages thanks 100% to the amazing Ethereum community.
- Supports URI Strings on Send Transaction Page.
- to=[address]
- value=[number]
- sendMode=[ether | token]
- tokenSymbol=[ARC | ICN | MKR | ....]
- gasLimit=[number] OR gas=[number]
- data=[hex data]
- Example 1: https://www.myetherwallet.com/?to=0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8&value=1&tokenSymbol=REP&gaslimit=50000#send-transaction
- Example 2: https://www.myetherwallet.com/?to=0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8&value=1&gaslimit=23000&data=0x5468616e6b20796f752c204d455720322e30#send-transaction
### Our Philosophy
- **Empower the people**: Give people the ability to interact with the Ethereum blockchain easily, without having to run a full node.
- **Make it easy & free**: Everyone should be able to create a wallet and send Ether & Tokens without additional cost.
- **People are the Priority**: People are the most important & their experience trumps all else. If monetization worsens the experience, we don't do it. (e.g. ads)
- **A learning experience, too**: We want to educate about Ethereum, security, privacy, the importance of controlling your own keys, how the blockchain works, and how Ethereum and blockchain technologies enable a better world.
- **If it can be hacked, it will be hacked**: Never save, store, or transmit secret info, like passwords or keys.
- **Offline / Client-Side**: User should be able to run locally and offline without issue.
- **Private**: No tracking!!! No emails. No ads. No demographics. We don't even know how many wallets have been generated, let alone who / what / where you are.
- **Open source & audit-able**
### Users (non-developers)
- [It is recommended you start here.](https://myetherwallet.github.io/knowledge-base/getting-started/getting-started-new.html)
- You can run MyEtherWallet.com on your computer. You can create a wallet completely offline & send transactions from the "Offline Transaction" page.
1. Go to https://github.com/kvhnuke/etherwallet/releases/latest.
2. Click on dist-vX.X.X.X.zip.
3. Move zip to an airgapped computer.
4. Unzip it and double-click index.html.
5. MyEtherWallet.com is now running entirely on your computer.
In case you are not familiar, you need to keep the entire folder in order to run the website, not just index.html. Don't touch or move anything around in the folder. If you are storing a backup of the MyEtherWallet repo for the future, we recommend just storing the ZIP so you can be sure the folder contents stay intact.
As we are constantly updating MyEtherWallet.com, we recommend you periodically update your saved version of the repo.
### Developers
If you want to help contribute, here's what you need to know to get it up and running and compiling.
- Both the Chrome Extension and the MyEtherWallet.com are compiling from the same codebase. This code is found in the `app` folder. Don't touch the `dist` or `chrome-extension` folders.
- We use angular and bootstrap. We used to use jQuery and Bootstrap until it was converted in April 2016. If you wonder why some things are set up funky, that's why.
- The mercury branch is currently the active development branch. We then push the dist folder live to gh-pages, which then gets served to MyEtherWallet.com.
- We use npm / gulp for compiling. There is a lot of stuff happening in the compilation.
- Old node setups can be found in in `json_relay_node` (node.js) & `json_relay_php` (php). These are great resources for developers looking to get started and launch a public node on a $40 Linode instance.
**Getting Started**
- Start by running `npm install`.
- Run `npm run dev`. Gulp will then watch & compile everything and then watch for changes to the HTML, JS, or CSS.
- For distribution, run `npm run dist`.
**Folder Structure**
- `fonts` and `images` get moved into their respective folders. This isn't watched via gulp so if you add an image or font, you need to run `gulp` again.
- `includes` are the pieces of the pages / the pages themselves. These are pretty self-explanatory and where you will make most frontend changes.
- `layouts` are the pages themselves. These basically take all the pieces of the pages and compile into one massive page. The navigation is also found here...sort of.
* `index.html` is for MyEtherWallet.com.
* `cx-wallet.html` is the main page for the Chrome Extension.
* `embedded.html` is for https://www.myetherwallet.com/embedded.html.
- You can control what shows up on MyEtherWallet.com vs the Chrome Extension by using: `@@if (site === 'cx' ) { ... }` and `@@if (site === 'mew' ) { ... }`. Check out `sendTransaction.tpl` to see it in action. The former will only compile for the Chrome Extension. The latter only to MyEtherWallet.com.
- `embedded.html` is for embedding the wallet generation into third-party sites. [Read more about it and how to listen for the address generated here.](https://www.reddit.com/r/ethereum/comments/4gn37o/embeddable_myetherwallet_super_simple_wallet/)
- The wallet decrypt directives are at `scripts/directives/walletDecryptDrtv.js`. These show up on a lot of pages.
- The navigation is in `scripts/services/globalServices.js`. Again, we control which navigation items show up in which version of the site in this single file.
- As of September 2016, almost all the copy in the .tpl files are only there as placeholders. It all gets replaced via angular-translate. If you want to change some copy you need to do so in `scripts/translations/en.js` folder. You should also make a note about what you changed and move it to the top of the file so that we can make sure it gets translated if necessary.
- `styles` is all the less. It's a couple custom folders and bootstrap. This badly needs to be redone. Ugh.
### Use Your Own Servers / Node Guide
- [Setting up on AWS super easily.](https://github.com/MyEtherWallet/docker-geth-lb)
- [Running MyEtherWallet w/ Your Own Personal Node](https://myetherwallet.github.io/knowledge-base/networks/run-your-own-node-with-myetherwallet.html)
- [Guide by benjaminion for MEW + Ledger Nano S + Local Parity Node](https://github.com/benjaminion/eth-parity-qnap/wiki/Connecting-to-MyEtherWallet)
**Old**
- https://github.com/kvhnuke/etherwallet/issues/226.
- [Announcing MyEtherWallet v3.4: The Node Switcher](https://www.reddit.com/r/ethereum/comments/5lqx90/announcing_myetherwallet_v34_the_node_switcher/)**
### How to Help Translate
**A couple of notes:**
- Everything on the entire site is broken down into lines and in this one file. The uppermost items are the highest priority and the further you go down, the less of a priority it is.
- You can add comments anywhere by wrapping it in /* Your Comment Here */. If you want to leave a note for yourself or someone else, do so in this format. That way it doesn't screw up the code or show up somewhere on the site.
- Don't delete any lines. Just leave it in English if you don't know how to translate it.
- Always make sure each line ends with `',`. So the format is `NAME: ' your text here ',` You only need to change the `your text here` part - try not to touch anything else.
**If you are NOT a developer and have no idea how this works:**
Anyone can help out and it looks way more complicated than it is! If you would rather not deal with Github, please send us an email to info@myetherwallet.com and I'll email you the file and you can make changes and send it back to us and I'll make sure you don't screw anything up. If you feel like experiencing something new, read on!
1. Sign into your Github account or make a new Github account.
2. Go to https://github.com/kvhnuke/etherwallet/tree/mercury/app/scripts/translations
3. Click on the language file you want to update.
4. Look in the upper right. Click the pencil icon. This will then tell you, *"Youre editing a file in a project you dont have write access to. Weve created a fork of this project for you to commit your proposed changes to. Submitting a change to this file will write it to a new branch in your fork, so you can send a pull request."* Ignore it all.
5. In your browser, start translating. Translate as little or as much as you want.
6. Scroll down to halfway to the translator's section. Enter your name/username, donation address, and any comments you would like to leave.
7. When you are done, tell us what language you updated. You can also leave any notes about problems you had or things you'd like us to know.
8. Click the green "Propose File change" button.
9. This next page is a review of what you did.
10. Click the "Create Pull Request" button.....twice. [Screenshot](https://ipfs.pics/ipfs/QmZJJvPxXu7BFHDQ1zj1a73EATQETbsDuAJVEJnatTHrms).
11. That's it. You successfully made a new pull request! Tell all your friends.
12. We will now review it and pull it in and it will be made live on the site. We may also ask you questions if something is confusing for whatever reason.
**If you are a developer and familiar with GitHub, Pull Requests, and know how to save a JS file as a .js file rather than a Word Doc:**
1. Clone the [mercury branch](https://github.com/kvhnuke/etherwallet/tree/mercury).
2. Go to `/app/scripts/translations/`.
3. Open the language you want to translate.
4. Translate as much or as little as you wish.
5. Add your name/username, donation address, and any notes you would like on in the translator's section, about halfway down.
6. Open a PR and leave us a brief description of what you did and any issues you ran into or comments you have.
Read more @ [Help us translate MyEtherWallet.com into ALL THE LANGUAGES!](https://www.reddit.com/r/ethereum/comments/4z55s2/help_us_translate_myetherwalletcom_into_all_the/)
### Contact
If you can think of any other features or run into bugs, let us know. You can fork, open a PR, open an issue, or support at myetherwallet dot com.
### Announcement History
- 08/12/15: [Launch Post: Ether Wallet Generator (for now)](https://www.reddit.com/r/ethereum/comments/3gkknd/ether_wallet_generator_for_now/). Never forget where you [came from](https://ipfs.pics/ipfs/QmXFK6NBy81ibvTEwnwwEUecXiRyQBriJUnKpaCaE4w7nF).
- 08/19/15: [ETHER WALLET- Ready for the second round?](https://www.reddit.com/r/ethereum/comments/3h6o38/ether_wallet_ready_for_the_second_round/). We the domain name & SSL.
- 08/24/15: [Lets purchase Augur rep, the easy way!](https://www.reddit.com/r/ethereum/comments/3i6eyd/lets_purchase_augur_rep_the_easy_way/)
- 02/08/16: [MyEtherWallet Chrome Extension: The Beta has Arrived](https://www.reddit.com/r/ethereum/comments/44vbef/myetherwallet_chrome_extension_the_beta_has/)
- 03/03/16: [Weve heard you loud and clear so tonight…we've launch offline / advanced transactions for MyEtherWallet.com](https://www.reddit.com/r/ethereum/comments/48rf3d/weve_heard_you_loud_and_clear_so_tonightweve/)
- 03/05/16: [[Small Announcement] We updated the "Generate Wallet" Page & "Help" Page on MyEtherWallet.com to be more noob-friendly. Hit us with your feedback, please.](https://www.reddit.com/r/ethereum/comments/493t5u/small_announcement_we_updated_the_generate_wallet/)
- 04/18/16: [MyEtherWallet.com v2.0 (aka Mewtwo) has arrived!](https://www.reddit.com/r/ethereum/comments/4faooz/myetherwalletcom_v20_aka_mewtwo_has_arrived/)
- 04/28/16: [Embeddable MyEtherWallet: Super Simple Wallet Generation w/ ability to get the address generated](https://www.reddit.com/r/ethereum/comments/4gn37o/embeddable_myetherwallet_super_simple_wallet/)
- 04/30/16: [How to participate in “The DAO” creation via MyEtherWallet (yes...right NOW!)](https://www.reddit.com/r/ethtrader/comments/4h3xph/how_to_participate_in_the_dao_creation_via/)
- 05/30/16: [MyEtherWallet Update: Send DAO Tokens, Vote on Proposals, and the Chrome Extension finally gets updated!!](https://www.reddit.com/r/ethereum/comments/4lf71h/myetherwallet_update_send_dao_tokens_vote_on/)
- 06/07/16: [⚠ BEWARE: MYETHERWALLET >>.INFO<< IS A PHISHING SCAM AND WILL TAKE ALL YOUR FUNDS. myEtherWallet is MyEtherWallet.com](https://www.reddit.com/r/ethereum/comments/4rpurc/beware_myetherwallet_info_is_a_phishing_scam_and/)
- 07/28/16: [MyEtherWallet now Supports Sending Any Ethereum Token (ERC-20) — also learn about our future plans](https://www.reddit.com/r/ethereum/comments/4v0r32/myetherwallet_now_supports_sending_any_ethereum/)
- 07/28/16: [MyEtherWallet, Preventing Replays, and Ethereum Classic (ETC)](https://www.reddit.com/r/ethereum/comments/4v1y2t/myetherwallet_preventing_replays_and_ethereum/)
- 08/14/16: [⚠ Malicious Phisher is running Google Ads for MyEtherWallet.com ⚠ It does NOT go to MyEtherWallet.com. Always check the URL before accessing or creating a new wallet! Use your bookmarks bar!](https://www.reddit.com/r/ethereum/comments/4xpj0u/malicious_phisher_is_running_google_ads_for/)
- 08/22/16: [Help us translate MyEtherWallet.com into ALL THE LANGUAGES!](https://www.reddit.com/r/ethereum/comments/4z55s2/help_us_translate_myetherwalletcom_into_all_the/)
- 11/21/16: [Massive MyEtherWallet.com Update: Better URIs, The Hardfork, and looking back at the Golem Crowdfund.](https://www.reddit.com/r/ethereum/comments/5e3alw/massive_myetherwalletcom_update_better_uris_the/)
- 1/2/17: [Announcing MyEtherWallet v3.4: The Node Switcher](https://www.reddit.com/r/ethereum/comments/5lqx90/announcing_myetherwallet_v34_the_node_switcher/)
- 1/9/17: [Announcing MyEtherWallet v3.4.3: Interacting with Contracts](https://www.reddit.com/r/ethereum/comments/5n0dj0/announcing_myetherwallet_v343_interacting_with/?utm_content=title&utm_medium=user&utm_source=reddit&utm_name=frontpage)
- 2/3/17: [MyEtherWallet.com v3.4.7: You can use your TREZOR on MEW. Thanks to all who made this a reality 🤗](https://www.reddit.com/r/ethereum/comments/5rsfu9/myetherwalletcom_v347_you_can_use_your_trezor_on/?utm_content=comments&utm_medium=user&utm_source=reddit&utm_name=frontpage)
- 2/16/17: [MyEtherWallet v3.5.0: Swap ETH <-> BTC <-> REP via Bity, directly from MEW! (also: Parity backup phrase support + add'l contract features + our roadmap)](https://www.reddit.com/r/ethereum/comments/5ueysp/myetherwallet_v350_swap_eth_btc_rep_via_bity/?utm_content=comments&utm_medium=user&utm_source=reddit&utm_name=frontpage)
- 4/9/17: [Ethereum vanity address generator](https://www.reddit.com/r/ethereum/comments/5yeb4n/ethereum_vanity_address_generator/?utm_content=comments&utm_medium=user&utm_source=reddit&utm_name=frontpage)
- 4/30/17: [MEW v3.6.6: Enables you to access any path for your Mnemonic, Ledger & TREZOR. (ATTN: folks who have ETH / ETC / Tokens stuck in a different path)](https://www.reddit.com/r/ethereum/comments/68f70l/mew_v366_enables_you_to_access_any_path_for_your/)
- 5/7/17: [ENS disguise bid issue on MyEtherWallet](https://www.reddit.com/r/ethereum/comments/69vz57/ens_disguise_bid_issue_on_myetherwallet/)
- - 8/15/17: [MyEtherWallet needs motivated devs!](https://www.reddit.com/r/ethereum/comments/6tqrs1/myetherwallet_needs_motivated_devs/?utm_content=comments&utm_medium=user&utm_source=reddit&utm_name=frontpage)
- 10/28/17: [MyEtherWallet - New Contract Interaction Tools](https://www.reddit.com/r/ethereum/comments/7961ml/myetherwallet_new_contract_interaction_tools/)
#### MyEtherWallet.com & MyEtherWallet CX are licensed under The MIT License (MIT).

View File

@ -0,0 +1,5 @@
#! /usr/bin/env node
var open = require("open");
var seperator = process.platform=="win32" ? "\\" : "/";
open(require('path').dirname(require.main.filename)+seperator+".."+seperator+"index.html");

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,554 @@
<!DOCTYPE html>
<html lang="en" ng-app="mewApp">
<head>
<meta charset="utf-8">
<title>MyEtherWallet.com</title>
<link rel="canonical" href="https://www.myetherwallet.com" />
<meta name="description" content="MyEtherWallet.com is a free, open-source, client-side interface for generating Ethereum wallets &amp; more. Interact with the Ethereum blockchain easily &amp; securely. Double-check the URL ( myetherwallet.com ) before unlocking your wallet.">
<meta name="author" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/etherwallet-master.min.css">
<script type="text/javascript" src="js/etherwallet-static.min.js"></script>
<script type="text/javascript" src="js/etherwallet-master.js"></script>
<link rel="apple-touch-icon" sizes="60x60" href="images/fav/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="76x76" href="images/fav/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="120x120" href="images/fav/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="152x152" href="images/fav/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="images/fav/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="images/fav/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="images/fav/favicon-194x194.png" sizes="194x194">
<link rel="icon" type="image/png" href="images/fav/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="images/fav/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="images/fav/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="images/fav/manifest.json">
<link rel="shortcut icon" href="images/favicon.ico">
<meta name="msapplication-TileColor" content="#2e4868">
<meta name="msapplication-TileImage" content="images/fav/mstile-144x144.png">
<meta name="msapplication-config" content="images/fav/browserconfig.xml">
<meta name="theme-color" content="#2e4868">
</head>
<body>
<header class="bg-gradient text-white">
<section class="container text-center">
<a href="https://www.myetherwallet.com/"><img src="images/logo-myetherwallet.svg" height="50px" width="auto" alt="Ether Wallet" class="embedded-logo" /></a>
</section>
</header>
<section class="container" style="min-height: 50%" ng-controller='viewCtrl'>
<!-- tab panes -->
<div class="tab-content" >
<main class="tab-pane block--container active"
ng-if="globalService.currentTab==globalService.tabs.generateWallet.id"
ng-controller='walletGenCtrl'
role="main"
ng-cloak>
<article class="block__wrap gen__1" ng-show="!wallet && !showGetAddress">
<section class="block__main gen__1--inner">
<br />
<h1 translate="NAV_GenerateWallet" aria-live="polite">
Create New Wallet
</h1>
<h4 translate="GEN_Label_1">
Enter password
</h4>
<div class="input-group">
<input name="password"
class="form-control"
type="{{showPass && 'password' || 'text'}}"
placeholder="{{'GEN_Placeholder_1' | translate }}"
ng-model="password"
ng-class="isStrongPass() ? 'is-valid' : 'is-invalid'"
aria-label="{{'GEN_Label_1' | translate}}"/>
<span tabindex="0"
aria-label="make password visible"
role="button"
class="input-group-addon eye"
ng-click="showPass=!showPass">
</span>
</div>
<a tabindex="0"
role="button"
class="btn btn-primary"
ng-click="genNewWallet()"
translate="NAV_GenerateWallet">
Generate Wallet
</a>
<p translate="x_PasswordDesc"></p>
<div class="text-center">
<strong>
<a href="https://myetherwallet.github.io/knowledge-base/getting-started/creating-a-new-wallet-on-myetherwallet.html"
target="_blank"
rel="noopener noreferrer"
translate="GEN_Help_5">
How to Create a Wallet
</a>
&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="https://myetherwallet.github.io/knowledge-base/getting-started/getting-started-new.html"
target="_blank"
rel="noopener noreferrer"
translate="GEN_Help_6">
Getting Started
</a>
</strong>
</div>
<br>
</section>
<section class="block__help">
<h2 translate="GEN_Help_0">
Already have a wallet somewhere?
</h2>
<ul>
<li>
<p>
<strong>
Ledger / TREZOR / Digital Bitbox
</strong>:
<span translate="GEN_Help_1">
Use your
</span>
<a ng-click="globalService.currentTab=globalService.tabs.sendTransaction.id">
hardware wallet
</a>.
<span translate="GEN_Help_3">
Your device * is * your wallet.
</span>
</p>
</li>
</ul>
<ul>
<li>
<p>
<strong>
MetaMask
</strong>
<span>
Connect via your
</span>
<a ng-click="globalService.currentTab=globalService.tabs.sendTransaction.id">
MetaMask Extension
</a>.
<span translate="GEN_Help_MetaMask">
So easy! Keys stay in MetaMask, not on a phishing site! Try it today.
</span>
</p>
</li>
</ul>
<ul>
<li>
<p>
<strong>
Jaxx / imToken
</strong>
<span translate="GEN_Help_1">Use your</span>
<a ng-click="globalService.currentTab=globalService.tabs.sendTransaction.id" translate="x_Mnemonic">
Mnemonic Phrase
</a>
<span translate="GEN_Help_2">
to access your account.
</span>
</p>
</li>
</ul>
<ul>
<li>
<p>
<strong>
Mist / Geth / Parity:
</strong>
<span translate="GEN_Help_1">
Use your
</span>
<a ng-click="globalService.currentTab=globalService.tabs.sendTransaction.id" translate="x_Keystore2">
Keystore File (UTC / JSON)
</a>
<span translate="GEN_Help_2">
to access your account.
</span>
</p>
</li>
</ul>
</section>
</article>
<article role="main" class="block__wrap gen__2" ng-show="wallet && !showPaperWallet" > <!-- -->
<section class="block__main gen__2--inner">
<br />
<h1 translate="GEN_Label_2">
Save your Keystore File (UTC / JSON)
</h1>
<a tabindex="0" role="button"
class="btn btn-primary"
href="{{blobEnc}}"
download="{{encFileName}}"
aria-label="{{'x_Download'|translate}} {{'x_Keystore'|translate}}"
aria-describedby="x_KeystoreDesc"
ng-click="downloaded()"
target="_blank" rel="noopener noreferrer">
<span translate="x_Download">
DOWNLOAD
</span>
<span translate="x_Keystore2">
Keystore File (UTC / JSON)
</span>
</a>
<div class="warn">
<p class="GEN_Warning_1">
**Do not lose it!** It cannot be recovered if you lose it.
</p>
<p class="GEN_Warning_2">
**Do not share it!** Your funds will be stolen if you use this file on a malicious/phishing site.
</p>
<p class="GEN_Warning_3">
**Make a backup!** Secure it like the millions of dollars it may one day be worth.
</p>
</div>
<p>
<a tabindex="0"
role="button"
class="btn btn-danger"
ng-class="fileDownloaded ? '' : 'disabled' "
ng-click="continueToPaper()">
<span translate="GET_ConfButton">
I understand. Continue.
</span>
</a>
</p>
</section>
<section class="block__help">
<h2 translate="GEN_Help_8">
Not Downloading a File?
</h2>
<ul>
<li translate="GEN_Help_9">
Try using Google Chrome
</li>
<li translate="GEN_Help_10">
Right click &amp; save file as. Filename:
</li>
<input value="{{encFileName}}" class="form-control input-sm" />
</ul>
<h2 translate="GEN_Help_11">
Don't open this file on your computer
</h2>
<ul>
<li translate="GEN_Help_12">
Use it to unlock your wallet via MyEtherWallet (or Mist, Geth, Parity &amp; other wallet clients.)
</li>
</ul>
<h2 translate="GEN_Help_4">Guides &amp; FAQ</h2>
<ul>
<li>
<a href="https://myetherwallet.github.io/knowledge-base/getting-started/backing-up-your-new-wallet.html" target="_blank" rel="noopener noreferrer">
<strong translate="GEN_Help_13">
How to Back Up Your Keystore File
</strong>
</a>
</li>
<li>
<a href="https://myetherwallet.github.io/knowledge-base/private-keys-passwords/difference-beween-private-key-and-keystore-file.html" target="_blank" rel="noopener noreferrer">
<strong translate="GEN_Help_14">
What are these Different Formats?
</strong>
</a>
</li>
</ul>
</section>
</article>
<article role="main" class="block__wrap gen__3" ng-show="showPaperWallet">
<section class="block__main gen__3--inner">
<br />
<h1 translate="GEN_Label_5"> Save your Private Key</h1>
<textarea aria-label="{{'x_PrivKey'|translate}}"
aria-describedby="{{'x_PrivKeyDesc'|translate}}"
class="form-control"
readonly="readonly"
rows="3"
style="max-width: 50rem;margin: auto;"
>{{wallet.getPrivateKeyString()}}</textarea>
<br />
<a tabindex="0"
aria-label="{{'x_Print'|translate}}"
aria-describedby="x_PrintDesc"
role="button"
class="btn btn-primary"
ng-click="printQRCode()"
translate="x_Print">
PRINT
</a>
<div class="warn">
<p>
**Do not lose it!** It cannot be recovered if you lose it.
</p>
<p>
**Do not share it!** Your funds will be stolen if you use this file on a malicious/phishing site.
</p>
<p>
**Make a backup!** Secure it like the millions of dollars it may one day be worth.
</p>
</div>
<br />
<a class="btn btn-default btn-sm" ng-click="getAddress()">
<span translate="GEN_Label_3"> Save your Address </span>
</a>
</section>
<section class="block__help">
<h2 translate="GEN_Help_4">
Guides &amp; FAQ
</h2>
<ul>
<li><a href="https://myetherwallet.github.io/knowledge-base/getting-started/backing-up-your-new-wallet.html" target="_blank" rel="noopener noreferrer">
<strong translate="HELP_2a_Title">
How to Save & Backup Your Wallet.
</strong>
</a></li>
<li><a href="https://myetherwallet.github.io/knowledge-base/getting-started/protecting-yourself-and-your-funds.html" target="_blank" rel="noopener noreferrer">
<strong translate="GEN_Help_15">Preventing loss &amp; theft of your funds.</strong>
</a></li>
<li><a href="https://myetherwallet.github.io/knowledge-base/private-keys-passwords/difference-beween-private-key-and-keystore-file.html" target="_blank" rel="noopener noreferrer">
<strong translate="GEN_Help_16">What are these Different Formats?</strong>
</a></li>
</ul>
<h2 translate="GEN_Help_17">
Why Should I?
</h2>
<ul>
<li translate="GEN_Help_18">
To have a secondary backup.
</li>
<li translate="GEN_Help_19">
In case you ever forget your password.
</li>
<li>
<a href="https://myetherwallet.github.io/knowledge-base/offline/ethereum-cold-storage-with-myetherwallet.html" target="_blank" rel="noopener noreferrer" translate="GEN_Help_20">Cold Storage</a>
</li>
</ul>
<h2 translate="x_PrintDesc"></h2>
</section>
</article>
<article class="text-left" ng-show="showGetAddress">
<div class="clearfix collapse-container">
<div ng-click="wd = !wd">
<a class="collapse-button"><span ng-show="wd">+</span><span ng-show="!wd">-</span></a>
<h1 traslate="GEN_Unlock">Unlock your wallet to see your address</h1>
<p translate="x_AddessDesc"></p>
</div>
<div ng-show="!wd">
<wallet-decrypt-drtv></wallet-decrypt-drtv>
</div>
</div>
<div class="row" ng-show="wallet!=null" ng-controller='viewWalletCtrl'>
<article class="col-sm-8 view-wallet-content">
<section class="block">
<div class="col-xs-11">
<div class="account-help-icon">
<img src="images/icon-help.svg" class="help-icon" />
<p class="account-help-text" translate="x_AddessDesc">
You may know this as your "Account #" or your "Public Key". It's what you send people so they can send you ETH. That icon is an easy way to recognize your address.
</p>
<h5 translate="x_Address">
Your Address:
</h5>
</div>
<input class="form-control"
type="text"
ng-value="wallet.getChecksumAddressString()"
readonly="readonly">
</div>
<div class="col-xs-1 address-identicon-container">
<div class="addressIdenticon"
title="Address Indenticon"
blockie-address="{{wallet.getAddressString()}}"
watch-var="wallet">
</div>
</div>
<div class="col-xs-12" ng-show='showEnc'>
<div class="account-help-icon">
<img src="images/icon-help.svg" class="help-icon" />
<p class="account-help-text" translate="x_KeystoreDesc">
This Keystore / JSON file matches the format used by Mist & Geth so you can easily import it in the future. It is the recommended file to download and back up.
</p>
<h5 translate="x_Keystore">
Keystore/JSON File (Recommended • Encrypted • Mist/Geth Format)
</h5>
</div>
<a class="btn btn-info btn-block" href="{{blobEnc}}" download="{{encFileName}}" translate="x_Download">
DOWNLOAD
</a>
</div>
<div class="col-xs-12" ng-show="wallet.type=='default'">
<div class="account-help-icon">
<img src="images/icon-help.svg" class="help-icon" />
<p class="account-help-text" translate="x_PrivKeyDesc">
This is the unencrypted text version of your private key, meaning no password is necessary. If someone were to find your unencrypted private key, they could access your wallet without a password. For this reason, encrypted versions are typically recommended.
</p>
<h5>
<span translate="x_PrivKey">
Private Key (unencrypted)
</span>
</h5>
</div>
<div class="input-group">
<input class="form-control no-animate"
type="{{pkeyVisible ? 'text' : 'password'}}"
ng-value="wallet.getPrivateKeyString()"
readonly="readonly">
<span tabindex="0"
aria-label="make private key visible"
role="button"
class="input-group-addon eye"
ng-click="showHidePkey()"></span>
</div>
</div>
<div class="col-xs-12" ng-show="wallet.type=='default'">
<div class="account-help-icon">
<img src="images/icon-help.svg" class="help-icon" />
<p class="account-help-text" translate="x_PrintDesc">
ProTip: If you cannot print this right now, click "Print" and save it as a PDF until you are able to get it printed. Remove it from your computer afterwards!
</p>
<h5 translate="x_Print">
Print Paper Wallet:
</h5>
</div>
<a class="btn btn-info btn-block" ng-click="printQRCode()" translate="x_Print">
Print Paper Wallet
</a>
</div>
</section>
<section class="block">
<div class="col-xs-6">
<h5 translate="x_Address">
Your Address:
</h5>
<div class="qr-code" qr-code="{{wallet.getChecksumAddressString()}}" watch-var="wallet" width="100%"></div>
</div>
<div class="col-xs-6">
<h5 ng-show="wallet.type=='default'">
<span translate="x_PrivKey">
Private Key (unencrypted)
</span>
</h5>
<div class="qr-pkey-container" ng-show="wallet.type=='default'">
<div class="qr-overlay" ng-show="!pkeyVisible"></div>
<div class="qr-code" qr-code="{{wallet.getPrivateKeyString()}}" watch-var="wallet" width="100%"></div>
<div class="input-group">
<input class="form-control no-animate"
type="{{pkeyVisible ? 'text' : 'password'}}"
ng-value="wallet.getPrivateKeyString()"
readonly="readonly"
style="display:none;width:0;height:0;padding:0">
<span tabindex="0"
aria-label="make private key visible"
role="button" class="input-group-addon eye"
ng-click="showHidePkey()"></span>
</div>
</div>
</div>
</section>
</article>
<article class="col-sm-4">
<wallet-balance-drtv></wallet-balance-drtv>
</article>
</div>
</article>
</main>
</div>
<!-- /tab panes -->
<div data-ng-repeat="alert in notifier.alerts">
<div class="alert popup alert-{{alert.type}} animated-show-hide"
style="bottom: {{85*$index}}px; z-index: {{999+$index}};">
<div class="container">
<div class='alert-message' ng-bind-html="alert.message"></div>
</div>
<i class="icon-close" ng-click="alert.close()"></i>
</div>
</div>
</section>
<footer>
<script type='application/ld+json'>{"@context":"http://schema.org","@type":"Organization","@id":"#organization","url":"https://www.myetherwallet.com/","name":"MyEtherWallet",
"logo":"https://myetherwallet.com/images/myetherwallet-logo-banner.png","description": "MyEtherWallet.com is a free, open-source, client-side interface for generating Ethereum wallets &amp; more. Interact with the Ethereum blockchain easily &amp; securely. Double-check the URL ( myetherwallet.com ) before unlocking your wallet.","sameAs":["https://www.myetherwallet.com/","https://chrome.google.com/webstore/detail/myetherwallet-cx/nlbmnnijcnlegkjjpcfjclmcfggfefdm","https://www.facebook.com/MyEtherWallet/","https://twitter.com/myetherwallet","https://medium.com/@myetherwallet_96408","https://myetherwallet.github.io/knowledge-base/","https://github.com/kvhnuke/etherwallet","https://github.com/MyEtherWallet","https://kvhnuke.github.io/etherwallet/","https://github.com/kvhnuke/etherwallet/releases/latest","https://github.com/409H/EtherAddressLookup","https://myetherwallet.slack.com/","https://myetherwallet.herokuapp.com/","https://www.reddit.com/r/MyEtherWallet/","https://www.reddit.com/user/insomniasexx/","https://www.reddit.com/user/kvhnuke/","https://www.reddit.com/user/myetherwallet"]}</script>
</body>
</html>

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/images/fav/mstile-150x150.png"/>
<TileColor>#1d6986</TileColor>
</tile>
</msapplication>
</browserconfig>

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,18 @@
{
"name": "MyEtherWallet",
"icons": [
{
"src": "/images/fav/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/images/fav/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#1d6986",
"background_color": "#1d6986",
"display": "standalone"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1 @@
<svg version="1" xmlns="http://www.w3.org/2000/svg" width="1280" height="1280" viewBox="0 0 960.000000 960.000000"><path d="M459 .7c-15.3.6-42 3.5-59 6.4C331.2 18.6 263.9 45.9 207.8 85c-67 46.6-119.4 106.3-155.7 177.3-23.5 46-39.7 97.1-47 148.2-3.8 26.6-4.5 36.8-4.5 69-.1 32.5.7 44.1 4.5 70.5C21.4 662.3 77.8 765.6 164 841.3c63.8 56 143.8 94.9 226.5 110.2 64.9 12 131.1 10.8 195.5-3.5 88-19.5 175.1-68.4 237.9-133.5 74.4-77.3 119.9-173.7 132.6-281 2.2-18.4 3.1-70.2 1.6-89-4.1-50.8-14.3-95-32.3-140.8-31.9-81.1-86.7-153.1-156.9-206.4C680.7 30.4 570.8-3.8 459 .7zm56.5 174.8c55.9 7.1 108.7 29.6 153 65 12.8 10.2 37 34.3 46.6 46.5 46.6 58.7 68 123.9 65.6 200-.9 27.6-4.5 51.2-11.7 76.2-3.2 11.1-9.8 29.8-10.9 31.1-.4.4-58.3-23.7-128.7-53.7-70.3-29.9-144.2-61.4-164.2-69.8l-36.3-15.5 60.8-.6c33.4-.4 80.7-.7 105.1-.7H639v-3.4c0-5.6-5.5-25.5-9.8-35.4-21.8-49.9-74.2-89.4-129.5-97.6-21.8-3.3-42.4-1.4-67.3 5.9-1.9.6-3-.8-9.1-11.2-50.8-86.2-63.8-108.1-65.1-110.1-1.4-2.2-1.3-2.3 5.2-5.2 22.7-10.3 61.9-20.3 90.1-22.9 13.4-1.3 47.1-.5 62 1.4zM237 383.3c96.1 40.8 90.5 38.3 90.4 41.4 0 1.5-1.3 8.9-2.7 16.3-5.4 28.5-5.6 39-1.1 61.6 6.8 34.4 20.8 60.9 44.8 85 27.4 27.3 56.7 41.2 95.8 45.5 12 1.3 33 .6 43.3-1.5 6.1-1.3 7.1-1.3 8.1 0 .7.8 17.3 28.9 36.9 62.5 21.9 37.3 35.4 61.4 34.9 61.9-1.4 1.4-26.3 9.4-38.4 12.4-68.3 16.6-140.7 8.1-205-24-30.8-15.4-54.1-32.4-79.6-57.8-34-34-55.7-68.2-70.7-111.4-16.1-46-19.9-96.4-11.2-147.9 4.3-25.1 14.3-61 16.8-60 .7.3 17.6 7.5 37.7 16z"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.5 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 79.536 79.536"><path fill="#5dba5a" d="M39.769 0C17.8 0 0 17.8 0 39.768c0 21.965 17.8 39.768 39.769 39.768 21.965 0 39.768-17.803 39.768-39.768C79.536 17.8 61.733 0 39.769 0zm-5.627 58.513L15.397 39.768l7.498-7.498 11.247 11.247 22.497-22.493 7.498 7.498-29.995 29.991z"/></svg>

After

Width:  |  Height:  |  Size: 355 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 79.536 79.536"><path fill="#999" d="M39.769 0C17.8 0 0 17.8 0 39.768c0 21.965 17.8 39.768 39.769 39.768 21.965 0 39.768-17.803 39.768-39.768C79.536 17.8 61.733 0 39.769 0zm-5.627 58.513L15.397 39.768l7.498-7.498 11.247 11.247 22.497-22.493 7.498 7.498-29.995 29.991z"/></svg>

After

Width:  |  Height:  |  Size: 352 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 528.899 528.899"><path fill="#21a4ce" d="M328.883 89.125l107.59 107.589-272.34 272.34L56.604 361.465l272.279-272.34zm189.23-25.948l-47.981-47.981c-18.543-18.543-48.653-18.543-67.259 0l-45.961 45.961 107.59 107.59 53.611-53.611c14.382-14.383 14.382-37.577 0-51.959zM.3 512.69c-1.958 8.812 5.998 16.708 14.811 14.565l119.891-29.069L27.473 390.597.3 512.69z"/></svg>

After

Width:  |  Height:  |  Size: 440 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" title="external link icon" width="16" height="16" viewBox="0 0 511.626 511.627"><path fill="#0e97c0" d="M392.857 292.354h-18.274c-2.669 0-4.859.855-6.563 2.573-1.718 1.708-2.573 3.897-2.573 6.563v91.361c0 12.563-4.47 23.315-13.415 32.262-8.945 8.945-19.701 13.414-32.264 13.414H82.224c-12.562 0-23.317-4.469-32.264-13.414-8.945-8.946-13.417-19.698-13.417-32.262V155.31c0-12.562 4.471-23.313 13.417-32.259 8.947-8.947 19.702-13.418 32.264-13.418h200.994c2.669 0 4.859-.859 6.57-2.57 1.711-1.713 2.566-3.9 2.566-6.567V82.221c0-2.662-.855-4.853-2.566-6.563-1.711-1.713-3.901-2.568-6.57-2.568H82.224c-22.648 0-42.016 8.042-58.102 24.125C8.042 113.297 0 132.665 0 155.313v237.542c0 22.647 8.042 42.018 24.123 58.095 16.086 16.084 35.454 24.13 58.102 24.13h237.543c22.647 0 42.017-8.046 58.101-24.13 16.085-16.077 24.127-35.447 24.127-58.095v-91.358c0-2.669-.856-4.859-2.574-6.57-1.713-1.718-3.903-2.573-6.565-2.573z"/><path fill="#0e97c0" d="M506.199 41.971c-3.617-3.617-7.905-5.424-12.85-5.424H347.171c-4.948 0-9.233 1.807-12.847 5.424-3.617 3.615-5.428 7.898-5.428 12.847s1.811 9.233 5.428 12.85l50.247 50.248-186.147 186.151c-1.906 1.903-2.856 4.093-2.856 6.563 0 2.479.953 4.668 2.856 6.571l32.548 32.544c1.903 1.903 4.093 2.852 6.567 2.852s4.665-.948 6.567-2.852l186.148-186.148 50.251 50.248c3.614 3.617 7.898 5.426 12.847 5.426s9.233-1.809 12.851-5.426c3.617-3.616 5.424-7.898 5.424-12.847V54.818c-.001-4.952-1.814-9.232-5.428-12.847z"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 511.626 511.626"><path fill="#999" d="M505.918 236.117c-26.651-43.587-62.485-78.609-107.497-105.065-45.015-26.457-92.549-39.687-142.608-39.687s-97.595 13.225-142.61 39.687C68.187 157.508 32.355 192.53 5.708 236.117 1.903 242.778 0 249.345 0 255.818c0 6.473 1.903 13.04 5.708 19.699 26.647 43.589 62.479 78.614 107.495 105.064 45.015 26.46 92.551 39.68 142.61 39.68 50.06 0 97.594-13.176 142.608-39.536 45.012-26.361 80.852-61.432 107.497-105.208 3.806-6.659 5.708-13.223 5.708-19.699 0-6.473-1.902-13.04-5.708-19.701zm-311.35-78.087c17.034-17.034 37.447-25.554 61.242-25.554 3.805 0 7.043 1.336 9.709 3.999 2.662 2.664 4 5.901 4 9.707 0 3.809-1.338 7.044-3.994 9.704-2.662 2.667-5.902 3.999-9.708 3.999-16.368 0-30.362 5.808-41.971 17.416-11.613 11.615-17.416 25.603-17.416 41.971 0 3.811-1.336 7.044-3.999 9.71-2.667 2.668-5.901 3.999-9.707 3.999-3.809 0-7.044-1.334-9.71-3.999-2.667-2.666-3.999-5.903-3.999-9.71 0-23.79 8.52-44.207 25.553-61.242zm185.299 191.01c-38.164 23.12-79.514 34.687-124.054 34.687-44.539 0-85.889-11.56-124.051-34.687s-69.901-54.2-95.215-93.222c28.931-44.921 65.19-78.518 108.777-100.783-11.61 19.792-17.417 41.207-17.417 64.236 0 35.216 12.517 65.329 37.544 90.362s55.151 37.544 90.362 37.544c35.214 0 65.329-12.518 90.362-37.544s37.545-55.146 37.545-90.362c0-23.029-5.808-44.447-17.419-64.236 43.585 22.265 79.846 55.865 108.776 100.783-25.31 39.022-57.046 70.095-95.21 93.222z"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 511.626 511.627"><path fill="#999" d="M361.161 291.652c15.037-21.796 22.56-45.922 22.56-72.375 0-7.422-.76-15.417-2.286-23.984l-79.938 143.321c24.738-9.513 44.628-25.176 59.664-46.962zM372.872 94.221c.191-.378.28-1.235.28-2.568 0-3.237-1.522-5.802-4.571-7.715-.568-.38-2.423-1.475-5.568-3.287a526.3 526.3 0 0 1-8.989-5.282 194.001 194.001 0 0 0-9.422-5.28c-3.426-1.809-6.375-3.284-8.846-4.427-2.479-1.141-4.189-1.713-5.141-1.713-3.426 0-6.092 1.525-7.994 4.569l-15.413 27.696c-17.316-3.234-34.451-4.854-51.391-4.854-51.201 0-98.404 12.946-141.613 38.831C70.998 156.08 34.836 191.385 5.711 236.114 1.903 242.019 0 248.586 0 255.819c0 7.231 1.903 13.801 5.711 19.698 16.748 26.073 36.592 49.396 59.528 69.949 22.936 20.561 48.011 37.018 75.229 49.396-8.375 14.273-12.562 22.556-12.562 24.842 0 3.425 1.524 6.088 4.57 7.99 23.219 13.329 35.97 19.985 38.256 19.985 3.422 0 6.089-1.529 7.992-4.575l13.99-25.406c20.177-35.967 50.248-89.931 90.222-161.878 39.972-71.949 69.95-125.815 89.936-161.599zM158.456 362.885C108.97 340.616 68.33 304.93 36.547 255.822c28.931-44.921 65.19-78.518 108.777-100.783-11.61 19.792-17.417 41.206-17.417 64.237 0 20.365 4.661 39.68 13.99 57.955 9.327 18.274 22.27 33.4 38.83 45.392l-22.271 40.262zm107.069-206.998c-2.662 2.667-5.906 3.999-9.712 3.999-16.368 0-30.361 5.808-41.971 17.416-11.613 11.615-17.416 25.603-17.416 41.971 0 3.811-1.336 7.044-3.999 9.71-2.668 2.667-5.902 3.999-9.707 3.999-3.809 0-7.045-1.334-9.71-3.999-2.667-2.666-3.999-5.903-3.999-9.71 0-23.79 8.52-44.206 25.553-61.242 17.034-17.034 37.447-25.553 61.241-25.553 3.806 0 7.043 1.336 9.713 3.999 2.662 2.664 3.996 5.901 3.996 9.707.001 3.808-1.333 7.044-3.989 9.703z"/><path fill="#999" d="M505.916 236.114c-10.853-18.08-24.603-35.594-41.255-52.534-16.646-16.939-34.022-31.496-52.105-43.68l-17.987 31.977c31.785 21.888 58.625 49.87 80.51 83.939-23.024 35.782-51.723 65-86.07 87.648-34.358 22.661-71.712 35.693-112.065 39.115l-21.129 37.688c42.257 0 82.18-9.038 119.769-27.121 37.59-18.076 70.668-43.488 99.216-76.225 13.322-15.421 23.695-29.219 31.121-41.401 3.806-6.476 5.708-13.046 5.708-19.702-.003-6.661-1.905-13.228-5.713-19.704z"/></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1 @@
<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 92 92"><path fill="#ECECEC" d="M45.386.004C19.983.344-.333 21.215.005 46.619c.34 25.393 21.209 45.715 46.611 45.377 25.398-.342 45.718-21.213 45.38-46.615-.34-25.395-21.21-45.716-46.61-45.377zM45.25 74l-.254-.004c-3.912-.116-6.67-2.998-6.559-6.852.109-3.788 2.934-6.538 6.717-6.538l.227.004c4.021.119 6.748 2.972 6.635 6.937C51.904 71.346 49.123 74 45.25 74zm16.455-32.659c-.92 1.307-2.943 2.93-5.492 4.916l-2.807 1.938c-1.541 1.198-2.471 2.325-2.82 3.434-.275.873-.41 1.104-.434 2.88l-.004.451H39.43l.031-.907c.131-3.728.223-5.921 1.768-7.733 2.424-2.846 7.771-6.289 7.998-6.435.766-.577 1.412-1.234 1.893-1.936 1.125-1.551 1.623-2.772 1.623-3.972a7.74 7.74 0 0 0-1.471-4.576c-.939-1.323-2.723-1.993-5.303-1.993-2.559 0-4.311.812-5.359 2.478-1.078 1.713-1.623 3.512-1.623 5.35v.457H27.936l.02-.477c.285-6.769 2.701-11.643 7.178-14.487C37.947 18.918 41.447 18 45.531 18c5.346 0 9.859 1.299 13.412 3.861 3.6 2.596 5.426 6.484 5.426 11.556 0 2.837-.896 5.502-2.664 7.924z"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1 @@
<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 92 92"><path fill="#0e97c0" d="M45.386.004C19.983.344-.333 21.215.005 46.619c.34 25.393 21.209 45.715 46.611 45.377 25.398-.342 45.718-21.213 45.38-46.615-.34-25.395-21.21-45.716-46.61-45.377zM45.25 74l-.254-.004c-3.912-.116-6.67-2.998-6.559-6.852.109-3.788 2.934-6.538 6.717-6.538l.227.004c4.021.119 6.748 2.972 6.635 6.937C51.904 71.346 49.123 74 45.25 74zm16.455-32.659c-.92 1.307-2.943 2.93-5.492 4.916l-2.807 1.938c-1.541 1.198-2.471 2.325-2.82 3.434-.275.873-.41 1.104-.434 2.88l-.004.451H39.43l.031-.907c.131-3.728.223-5.921 1.768-7.733 2.424-2.846 7.771-6.289 7.998-6.435.766-.577 1.412-1.234 1.893-1.936 1.125-1.551 1.623-2.772 1.623-3.972a7.74 7.74 0 0 0-1.471-4.576c-.939-1.323-2.723-1.993-5.303-1.993-2.559 0-4.311.812-5.359 2.478-1.078 1.713-1.623 3.512-1.623 5.35v.457H27.936l.02-.477c.285-6.769 2.701-11.643 7.178-14.487C37.947 18.918 41.447 18 45.531 18c5.346 0 9.859 1.299 13.412 3.861 3.6 2.596 5.426 6.484 5.426 11.556 0 2.837-.896 5.502-2.664 7.924z"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1 @@
<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 92 92"><path fill="#d6dee0" d="M45.386.004C19.983.344-.333 21.215.005 46.619c.34 25.393 21.209 45.715 46.611 45.377 25.398-.342 45.718-21.213 45.38-46.615-.34-25.395-21.21-45.716-46.61-45.377zM45.25 74l-.254-.004c-3.912-.116-6.67-2.998-6.559-6.852.109-3.788 2.934-6.538 6.717-6.538l.227.004c4.021.119 6.748 2.972 6.635 6.937C51.904 71.346 49.123 74 45.25 74zm16.455-32.659c-.92 1.307-2.943 2.93-5.492 4.916l-2.807 1.938c-1.541 1.198-2.471 2.325-2.82 3.434-.275.873-.41 1.104-.434 2.88l-.004.451H39.43l.031-.907c.131-3.728.223-5.921 1.768-7.733 2.424-2.846 7.771-6.289 7.998-6.435.766-.577 1.412-1.234 1.893-1.936 1.125-1.551 1.623-2.772 1.623-3.972a7.74 7.74 0 0 0-1.471-4.576c-.939-1.323-2.723-1.993-5.303-1.993-2.559 0-4.311.812-5.359 2.478-1.078 1.713-1.623 3.512-1.623 5.35v.457H27.936l.02-.477c.285-6.769 2.701-11.643 7.178-14.487C37.947 18.918 41.447 18 45.531 18c5.346 0 9.859 1.299 13.412 3.861 3.6 2.596 5.426 6.484 5.426 11.556 0 2.837-.896 5.502-2.664 7.924z"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52.519 52.519"><g fill="#fff"><path d="M16.049 31.137H4.001l20.08 19.971 20.08-19.971H32.113S27.821 13.402 48.177 1.288c0 0-15.536-3.02-26.794 10.51-.001-.001-5.732 6.129-5.334 19.339z"/><path d="M24.081 52.519L1.577 30.137H15.03c-.092-12.759 5.383-18.767 5.622-19.022C28.691 1.45 38.933 0 44.318 0c2.446 0 3.985.294 4.049.307l2.574.5-2.253 1.341C31.371 12.453 32.394 26.663 32.94 30.137h13.645L24.081 52.519zM6.425 32.137l17.656 17.562 17.656-17.562H31.326l-.185-.765c-.043-.177-3.881-17.082 14.041-29.358-4.784-.15-15.02.795-23.031 10.423-.091.1-5.481 6.089-5.103 18.67l.03 1.03H6.425z"/></g></svg>

After

Width:  |  Height:  |  Size: 654 B

View File

@ -0,0 +1,12 @@
<svg id="Capa_1" data-name="Capa 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 161.69 192.36">
<title>idea</title>
<g>
<path d="M82.94,35.35a49,49,0,0,0-32.53,84.33,25.28,25.28,0,0,1,7.87,18.22v13.51h52.08V137.9a25.17,25.17,0,0,1,7.83-18.17A49,49,0,0,0,82.94,35.35Z" transform="translate(-3.49 -3.49)" style="fill: #ffdb57"/>
<path d="M91.14,35.81a49,49,0,0,1,18.92,82.07A25.17,25.17,0,0,0,102.23,136v13.51h-.67a7.76,7.76,0,0,1,1.23,1.85h7.58V137.9a25.17,25.17,0,0,1,7.83-18.17A49,49,0,0,0,91.14,35.81Z" transform="translate(-3.49 -3.49)" style="fill: #ffbe49"/>
<path d="M110.37,169.44H58.29L65,181.56A22.11,22.11,0,0,0,84.33,193h0a22.11,22.11,0,0,0,19.38-11.47Z" transform="translate(-3.49 -3.49)" style="fill: #0092bb"/>
<path d="M58.29,169.44l5.14,9.36H98.86l-1.52,2.76a22.11,22.11,0,0,1-16.2,11.24h0a22.11,22.11,0,0,0,3.18.23h0a22.11,22.11,0,0,0,19.38-11.47l6.66-12.12Z" transform="translate(-3.49 -3.49)" style="opacity: 0.10000000149011612;isolation: isolate"/>
<path d="M109.22,174.33H59.44A10.93,10.93,0,0,1,48.51,163.4v-5.93a10.93,10.93,0,0,1,10.93-10.93h49.78a10.93,10.93,0,0,1,10.93,10.93v5.93A10.93,10.93,0,0,1,109.22,174.33Z" transform="translate(-3.49 -3.49)" style="fill: #fff"/>
<path d="M109.22,146.54h-7.58a10.93,10.93,0,0,1,10.93,10.93v5.93a10.93,10.93,0,0,1-10.93,10.93h7.58a10.93,10.93,0,0,0,10.93-10.93v-5.93A10.93,10.93,0,0,0,109.22,146.54Z" transform="translate(-3.49 -3.49)" style="opacity: 0.10000000149011612;isolation: isolate"/>
<path d="M45.64,109.54A46.18,46.18,0,0,1,119.7,54.63,2.82,2.82,0,0,0,124,51a51.82,51.82,0,0,0-83.08,61.62,2.82,2.82,0,1,0,4.72-3.08ZM84.33,22.68a2.82,2.82,0,0,0,2.82-2.82V6.3a2.82,2.82,0,0,0-5.64,0V19.86A2.82,2.82,0,0,0,84.33,22.68Zm18.16,49.8v3.67a2.94,2.94,0,1,0,5.87,0V72.48a2.94,2.94,0,1,0-5.87,0ZM38.75,41.56a2.82,2.82,0,0,0,2-4.81l-9.59-9.59a2.82,2.82,0,1,0-4,4l9.59,9.59A2.81,2.81,0,0,0,38.75,41.56Zm-18.88,40H6.31a2.82,2.82,0,0,0,0,5.64H19.86a2.82,2.82,0,1,0,0-5.64ZM137.51,27.16l-9.59,9.59a2.82,2.82,0,1,0,4,4l9.59-9.59a2.82,2.82,0,1,0-4-4Zm24.85,54.35H148.8a2.82,2.82,0,0,0,0,5.64h13.56a2.82,2.82,0,0,0,0-5.64Zm-101.06-9v3.67a2.94,2.94,0,0,0,5.87,0V72.48a2.94,2.94,0,1,0-5.87,0Zm58.85,49.28A51.85,51.85,0,0,0,131.74,63.4a2.82,2.82,0,0,0-5.15,2.28,46.22,46.22,0,0,1-10.33,52,28.14,28.14,0,0,0-8.7,20.21v5.82H61.11V137.9a28,28,0,0,0-6.32-17.62,2.82,2.82,0,0,0-4.37,3.56,22.4,22.4,0,0,1,5.06,14.07v6.41a13.79,13.79,0,0,0-9.65,11.26s0,.1,0,.15a13.81,13.81,0,0,0-.12,1.75v5.93a13.81,13.81,0,0,0,.12,1.78v0a13.77,13.77,0,0,0,13.5,11.92l3.17,5.77a24.93,24.93,0,0,0,43.7,0l3.17-5.77a13.77,13.77,0,0,0,13.49-11.9v-.07a13.83,13.83,0,0,0,.12-1.77v-5.93a13.77,13.77,0,0,0-.12-1.77v-.07a13.78,13.78,0,0,0-9.66-11.32V137.9A22.48,22.48,0,0,1,120.15,121.76ZM101.25,180.2a19.29,19.29,0,0,1-33.82,0l-1.68-3.05h37.18Zm16.09-18.12H105.56a2.82,2.82,0,0,0-2.82,2.82c0,1.56,1.26,3.82,2.82,3.82h11.53c-1.44,2.28-5,2.79-7.87,2.79H59.44c-2.89,0-6.43-.52-7.87-2.79H92c1.56,0,2.82-2.26,2.82-3.82A2.82,2.82,0,0,0,92,162.08H51.33v-4.29h66v4.29Zm-.25-7.93H51.58c1.44-2.28,5-4.8,7.87-4.8h49.78C112.11,149.36,115.65,151.88,117.09,154.16ZM88.52,89.21a5.54,5.54,0,0,1-8.37,0A3.4,3.4,0,1,0,75,93.68a12.34,12.34,0,0,0,18.62,0,3.4,3.4,0,1,0-5.12-4.47Z" transform="translate(-3.49 -3.49)"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 512 512"><path fill="#d9534f" d="M256 0C114.844 0 0 114.844 0 256s114.844 256 256 256 256-114.844 256-256S397.156 0 256 0zm102.625 313.375c12.5 12.492 12.5 32.758 0 45.25C352.383 364.875 344.188 368 336 368s-16.383-3.125-22.625-9.375L256 301.25l-57.375 57.375C192.383 364.875 184.188 368 176 368s-16.383-3.125-22.625-9.375c-12.5-12.492-12.5-32.758 0-45.25L210.75 256l-57.375-57.375c-12.5-12.492-12.5-32.758 0-45.25 12.484-12.5 32.766-12.5 45.25 0L256 210.75l57.375-57.375c12.484-12.5 32.766-12.5 45.25 0 12.5 12.492 12.5 32.758 0 45.25L301.25 256l57.375 57.375z"/></svg>

After

Width:  |  Height:  |  Size: 647 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 31.059 31.059" width="16" height="16"><path d="M15.529 31.059C6.966 31.059 0 24.092 0 15.529 0 6.966 6.966 0 15.529 0s15.529 6.966 15.529 15.529c.001 8.563-6.966 15.53-15.529 15.53zm0-29.285c-7.584 0-13.754 6.171-13.754 13.755s6.17 13.754 13.754 13.754 13.754-6.17 13.754-13.754S23.114 1.774 15.529 1.774z" fill="#0e97c0"/><path d="M21.652 16.416H9.406a.888.888 0 0 1 0-1.775h12.246a.888.888 0 0 1 0 1.775z" fill="#0e97c0"/></svg>

After

Width:  |  Height:  |  Size: 484 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 511.626 511.626"><path fill="#f0ad4e" d="M505.918 236.117c-26.651-43.587-62.485-78.609-107.497-105.065-45.015-26.457-92.549-39.687-142.608-39.687s-97.595 13.225-142.61 39.687C68.187 157.508 32.355 192.53 5.708 236.117 1.903 242.778 0 249.345 0 255.818c0 6.473 1.903 13.04 5.708 19.699 26.647 43.589 62.479 78.614 107.495 105.064 45.015 26.46 92.551 39.68 142.61 39.68 50.06 0 97.594-13.176 142.608-39.536 45.012-26.361 80.852-61.432 107.497-105.208 3.806-6.659 5.708-13.223 5.708-19.699 0-6.473-1.902-13.04-5.708-19.701zm-311.35-78.087c17.034-17.034 37.447-25.554 61.242-25.554 3.805 0 7.043 1.336 9.709 3.999 2.662 2.664 4 5.901 4 9.707 0 3.809-1.338 7.044-3.994 9.704-2.662 2.667-5.902 3.999-9.708 3.999-16.368 0-30.362 5.808-41.971 17.416-11.613 11.615-17.416 25.603-17.416 41.971 0 3.811-1.336 7.044-3.999 9.71-2.667 2.668-5.901 3.999-9.707 3.999-3.809 0-7.044-1.334-9.71-3.999-2.667-2.666-3.999-5.903-3.999-9.71 0-23.79 8.52-44.207 25.553-61.242zm185.299 191.01c-38.164 23.12-79.514 34.687-124.054 34.687-44.539 0-85.889-11.56-124.051-34.687s-69.901-54.2-95.215-93.222c28.931-44.921 65.19-78.518 108.777-100.783-11.61 19.792-17.417 41.207-17.417 64.236 0 35.216 12.517 65.329 37.544 90.362s55.151 37.544 90.362 37.544c35.214 0 65.329-12.518 90.362-37.544s37.545-55.146 37.545-90.362c0-23.029-5.808-44.447-17.419-64.236 43.585 22.265 79.846 55.865 108.776 100.783-25.31 39.022-57.046 70.095-95.21 93.222z"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 27.965 27.965"><path fill="#ff9800" d="M13.98 0C6.259 0 0 6.261 0 13.983c0 7.721 6.259 13.982 13.98 13.982 7.725 0 13.985-6.262 13.985-13.982C27.965 6.261 21.705 0 13.98 0zm6.012 17.769l-2.227 2.224s-3.523-3.78-3.786-3.78c-.259 0-3.783 3.78-3.783 3.78l-2.228-2.224s3.784-3.472 3.784-3.781c0-.314-3.784-3.787-3.784-3.787l2.228-2.229s3.553 3.782 3.783 3.782c.232 0 3.786-3.782 3.786-3.782l2.227 2.229s-3.785 3.523-3.785 3.787c0 .251 3.785 3.781 3.785 3.781z"/></svg>

After

Width:  |  Height:  |  Size: 541 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 27.965 27.965"><path fill="#999" d="M13.98 0C6.259 0 0 6.261 0 13.983c0 7.721 6.259 13.982 13.98 13.982 7.725 0 13.985-6.262 13.985-13.982C27.965 6.261 21.705 0 13.98 0zm6.012 17.769l-2.227 2.224s-3.523-3.78-3.786-3.78c-.259 0-3.783 3.78-3.783 3.78l-2.228-2.224s3.784-3.472 3.784-3.781c0-.314-3.784-3.787-3.784-3.787l2.228-2.229s3.553 3.782 3.783 3.782c.232 0 3.786-3.782 3.786-3.782l2.227 2.229s-3.785 3.523-3.785 3.787c0 .251 3.785 3.781 3.785 3.781z"/></svg>

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 836 B

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 274.72 111.33"><path d="M16.69 38.23a3.19 3.19 0 0 1 0-6.38h22.38c10.75 0 17.06 6.48 17.06 15.86S49 60.33 49 60.35c.06 0 10.58 3.78 10.58 14S50 90 42.65 90h-26a3.26 3.26 0 1 1 0-6.52h24.81c5.8 0 11.26-2.9 11.26-9.21 0-7.68-6.82-10.58-11.94-10.58H19.56a3.19 3.19 0 0 1 0-6.38h20.37C44.7 57.45 50 54 50 47.82s-4.44-9.64-9.72-9.64z" fill="#fff"/><path d="M15.74 89.76a3.24 3.24 0 0 1-2.36-3.19V35.43a3.24 3.24 0 0 1 2.36-3.19 3.14 3.14 0 0 1 3.91 3v51.48a3.14 3.14 0 0 1-3.91 3.04zM88.62 90.08a3.15 3.15 0 0 1-3.13-3.17V34.85a3.13 3.13 0 1 1 6.27 0v52.06a3.15 3.15 0 0 1-3.14 3.17zM163.2 37.91h-43.57a3.22 3.22 0 0 1-3.18-2.34 3.13 3.13 0 0 1 3-3.89H163a3.22 3.22 0 0 1 3.23 2.32 3.13 3.13 0 0 1-3.03 3.91z" fill="#fff"/><path d="M141.19 89a3.12 3.12 0 0 1-3.11-3.13l.15-50.26a3.12 3.12 0 0 1 3.12-3.11 3.12 3.12 0 0 1 3.11 3.13l-.15 50.26a3.12 3.12 0 0 1-3.12 3.11z" fill="#fff"/><path d="M180.89 24.82a3 3 0 0 1 .6-3.67 48.75 48.75 0 0 1 67.36.74 3 3 0 0 1-.4 4.68 3.17 3.17 0 0 1-4-.47 42.66 42.66 0 0 0-58.68-.62 3 3 0 0 1-4.88-.67z" fill="#f2db9e"/><path d="M171.93 79.77a48.54 48.54 0 0 1-4.35-35 3.11 3.11 0 0 1 3-2.4 3 3 0 0 1 2.93 3.8 42.59 42.59 0 0 0 28.95 51.25 3.17 3.17 0 0 1 2.36 3.07 3.05 3.05 0 0 1-3.92 2.82 48.35 48.35 0 0 1-28.97-23.54z" fill="#f27eb2"/><path d="M226.35 101.5a3 3 0 0 1 1.9-4.4 42.66 42.66 0 0 0 28.11-49.74 3.18 3.18 0 0 1 1.64-3.65 3 3 0 0 1 4.21 2.1A48.75 48.75 0 0 1 230 102.94a3 3 0 0 1-3.65-1.44z" fill="#0aa9b4"/><path d="M215.08 90.65a2.91 2.91 0 0 1-2.91-2.92v-14.1a2.91 2.91 0 0 1 2.91-2.91 2.91 2.91 0 0 1 2.92 2.92v14.1a2.91 2.91 0 0 1-2.92 2.91zM231.94 34.93s.05 2.26.05 11.22c0 13-7.57 14.73-16.84 14.8s-16.84-1.82-16.84-14.8c0-7.92.05-11.22.05-11.22 0-4.29-6.38-3.86-6.38 0V49c0 7.88 4.15 17.14 22.18 17.66h2c18-.53 22.18-9.78 22.18-17.66V34.93c-.03-3.86-6.4-4.29-6.4 0z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 274.72 111.33"><title>Bity Logo</title><path d="M16.69 38.23a3.19 3.19 0 0 1 0-6.38h22.38c10.75 0 17.06 6.48 17.06 15.86S49 60.33 49 60.35c.06 0 10.58 3.78 10.58 14S50 90 42.65 90h-26a3.26 3.26 0 1 1 0-6.52h24.81c5.8 0 11.26-2.9 11.26-9.21 0-7.68-6.82-10.58-11.94-10.58H19.56a3.19 3.19 0 0 1 0-6.38h20.37C44.7 57.45 50 54 50 47.82s-4.44-9.64-9.72-9.64z" fill="#0aa9b4"/><path d="M15.74 89.76a3.24 3.24 0 0 1-2.36-3.19V35.43a3.24 3.24 0 0 1 2.36-3.19 3.14 3.14 0 0 1 3.91 3v51.48a3.14 3.14 0 0 1-3.91 3.04zM88.62 90.08a3.15 3.15 0 0 1-3.13-3.17V34.85a3.13 3.13 0 1 1 6.27 0v52.06a3.15 3.15 0 0 1-3.14 3.17zM163.2 37.91h-43.57a3.22 3.22 0 0 1-3.18-2.34 3.13 3.13 0 0 1 3-3.89H163a3.22 3.22 0 0 1 3.23 2.32 3.13 3.13 0 0 1-3.03 3.91z" fill="#0aa9b4"/><path d="M141.19 89a3.12 3.12 0 0 1-3.11-3.13l.15-50.26a3.12 3.12 0 0 1 3.12-3.11 3.12 3.12 0 0 1 3.11 3.13l-.15 50.26a3.12 3.12 0 0 1-3.12 3.11z" fill="#0aa9b4"/><path d="M180.89 24.82a3 3 0 0 1 .6-3.67 48.75 48.75 0 0 1 67.36.74 3 3 0 0 1-.4 4.68 3.17 3.17 0 0 1-4-.47 42.66 42.66 0 0 0-58.68-.62 3 3 0 0 1-4.88-.67z" fill="#f2db9e"/><path d="M171.93 79.77a48.54 48.54 0 0 1-4.35-35 3.11 3.11 0 0 1 3-2.4 3 3 0 0 1 2.93 3.8 42.59 42.59 0 0 0 28.95 51.25 3.17 3.17 0 0 1 2.36 3.07 3.05 3.05 0 0 1-3.92 2.82 48.35 48.35 0 0 1-28.97-23.54z" fill="#f27eb2"/><path d="M226.35 101.5a3 3 0 0 1 1.9-4.4 42.66 42.66 0 0 0 28.11-49.74 3.18 3.18 0 0 1 1.64-3.65 3 3 0 0 1 4.21 2.1A48.75 48.75 0 0 1 230 102.94a3 3 0 0 1-3.65-1.44zM215.08 90.65a2.91 2.91 0 0 1-2.91-2.92v-14.1a2.91 2.91 0 0 1 2.91-2.91 2.91 2.91 0 0 1 2.92 2.92v14.1a2.91 2.91 0 0 1-2.92 2.91zM231.94 34.93s.05 2.26.05 11.22c0 13-7.57 14.73-16.84 14.8s-16.84-1.82-16.84-14.8c0-7.92.05-11.22.05-11.22 0-4.29-6.38-3.86-6.38 0V49c0 7.88 4.15 17.14 22.18 17.66h2c18-.53 22.18-9.78 22.18-17.66V34.93c-.03-3.86-6.4-4.29-6.4 0z" fill="#0aa9b4"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1 @@
<svg width="579" height="126" viewBox="0 0 579 126" xmlns="http://www.w3.org/2000/svg"><g fill="#ffffff" fill-rule="evenodd"><path d="M37.752 125.873c-18.928 0-37.383-13.566-37.383-44.324 0-30.759 18.455-44.167 37.383-44.167 9.307 0 16.563 2.367 21.768 5.837L53.841 55.68c-3.47-2.524-8.675-4.101-13.88-4.101-11.357 0-21.768 8.991-21.768 29.812s10.726 29.97 21.768 29.97c5.205 0 10.41-1.578 13.88-4.101l5.679 12.776c-5.363 3.628-12.461 5.837-21.768 5.837M102.898 125.873c-24.133 0-37.383-19.087-37.383-44.324 0-25.238 13.25-44.167 37.383-44.167 24.134 0 37.384 18.929 37.384 44.167 0 25.237-13.25 44.324-37.384 44.324zm0-74.768c-13.407 0-20.032 11.988-20.032 30.286 0 18.297 6.625 30.443 20.032 30.443 13.408 0 20.033-12.146 20.033-30.443 0-18.298-6.625-30.286-20.033-30.286zM163.468 23.659c-5.678 0-10.253-4.416-10.253-9.779 0-5.363 4.575-9.78 10.253-9.78s10.253 4.417 10.253 9.78c0 5.363-4.575 9.779-10.253 9.779zm-8.675 15.459h17.351v85.02h-17.351v-85.02zM240.443 124.137V67.352c0-9.937-5.994-16.089-17.824-16.089-6.309 0-12.146 1.104-15.616 2.524v70.35H189.81V43.376c8.518-3.47 19.402-5.994 32.651-5.994 23.819 0 35.333 10.411 35.333 28.393v58.362h-17.351M303.536 125.873c-11.042 0-21.925-2.682-28.55-5.994V.314h17.193v41.012c4.101-1.893 10.726-3.47 16.562-3.47 21.926 0 36.753 15.773 36.753 41.8 0 32.02-16.563 46.217-41.958 46.217zm2.208-74.61c-4.732 0-10.253 1.104-13.565 2.84v55.838c2.524 1.104 7.414 2.208 12.303 2.208 13.723 0 23.819-9.464 23.819-31.231 0-18.613-8.834-29.655-22.557-29.655zM392.341 125.873c-24.449 0-36.752-9.938-36.752-26.658 0-23.66 25.237-27.919 50.948-29.339v-5.363c0-10.726-7.098-14.512-17.982-14.512-8.044 0-17.824 2.524-23.502 5.206l-4.417-11.831c6.783-2.997 18.297-5.994 29.654-5.994 20.348 0 32.652 7.887 32.652 28.866v53.631c-6.152 3.312-18.613 5.994-30.601 5.994zm14.196-44.482c-17.351.946-34.702 2.366-34.702 17.509 0 8.99 6.941 14.511 20.033 14.511 5.521 0 11.988-.946 14.669-2.208V81.391zM461.743 125.873c-9.937 0-20.348-2.682-26.499-5.994l5.836-13.25c4.416 2.681 13.723 5.52 20.19 5.52 9.306 0 15.458-4.574 15.458-11.672 0-7.729-6.467-10.726-15.142-13.881-11.358-4.259-24.134-9.464-24.134-25.395 0-14.039 10.884-23.819 29.812-23.819 10.253 0 18.771 2.524 24.765 5.994l-5.364 11.988c-3.785-2.366-11.356-5.047-17.508-5.047-8.991 0-14.039 4.732-14.039 10.884 0 7.729 6.31 10.41 14.67 13.565 11.83 4.417 24.922 9.306 24.922 25.869 0 15.3-11.672 25.238-32.967 25.238M578.625 81.233l-56.47 7.887c1.735 15.3 11.673 23.029 26.027 23.029 8.517 0 17.666-2.05 23.502-5.205l5.048 12.935c-6.625 3.47-17.982 5.994-29.654 5.994-26.816 0-41.801-17.194-41.801-44.324 0-26.027 14.512-44.167 38.33-44.167 22.083 0 35.175 14.512 35.175 37.384 0 2.05 0 4.259-.157 6.467zm-35.333-31.232c-13.25 0-21.925 10.096-22.241 27.762l41.169-5.679c-.158-14.827-7.571-22.083-18.928-22.083z"/></g></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1 @@
<svg id="Layer_1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1916.3 516.8" width="2500" height="674"><style>.st0{fill:#fff}</style><g id="squares_1_"><path class="st0" d="M578.2 392.7V24.3h25.6v344.1h175.3v24.3H578.2zm327.5 5.1c-39.7 0-70.4-12.8-93.4-37.1-21.7-24.3-33.3-58.8-33.3-103.6 0-43.5 10.2-79.3 32-104.9 21.7-26.9 49.9-39.7 87-39.7 32 0 57.6 11.5 76.8 33.3 19.2 23 28.1 53.7 28.1 92.1v20.5H804.6c0 37.1 9 66.5 26.9 85.7 16.6 20.5 42.2 29.4 74.2 29.4 15.3 0 29.4-1.3 40.9-3.8 11.5-2.6 26.9-6.4 44.8-14.1v24.3c-15.3 6.4-29.4 11.5-42.2 14.1-14.3 2.6-28.9 3.9-43.5 3.8zM898 135.6c-26.9 0-47.3 9-64 25.6-15.3 17.9-25.6 42.2-28.1 75.5h168.9c0-32-6.4-56.3-20.5-74.2-12.8-18-32-26.9-56.3-26.9zm238-21.8c19.2 0 37.1 3.8 51.2 10.2 14.1 7.7 26.9 19.2 38.4 37.1h1.3c-1.3-21.7-1.3-42.2-1.3-62.7V0h24.3v392.7h-16.6l-6.4-42.2c-20.5 30.7-51.2 47.3-89.6 47.3s-66.5-11.5-87-35.8c-20.5-23-29.4-57.6-29.4-102.3 0-47.3 10.2-83.2 29.4-108.7 19.2-25.6 48.6-37.2 85.7-37.2zm0 21.8c-29.4 0-52.4 10.2-67.8 32-15.3 20.5-23 51.2-23 92.1 0 78 30.7 116.4 90.8 116.4 30.7 0 53.7-9 67.8-26.9 14.1-17.9 21.7-47.3 21.7-89.6v-3.8c0-42.2-7.7-72.9-21.7-90.8-12.8-20.5-35.8-29.4-67.8-29.4zm379.9-16.6v17.9l-56.3 3.8c15.3 19.2 23 39.7 23 61.4 0 26.9-9 47.3-26.9 64-17.9 16.6-40.9 24.3-70.4 24.3-12.8 0-21.7 0-25.6-1.3-10.2 5.1-17.9 11.5-23 17.9-5.1 7.7-7.7 14.1-7.7 23s3.8 15.3 10.2 19.2c6.4 3.8 17.9 6.4 33.3 6.4h47.3c29.4 0 52.4 6.4 67.8 17.9s24.3 29.4 24.3 53.7c0 29.4-11.5 51.2-34.5 66.5-23 15.3-56.3 23-99.8 23-34.5 0-61.4-6.4-80.6-20.5-19.2-12.8-28.1-32-28.1-55 0-19.2 6.4-34.5 17.9-47.3s28.1-20.5 47.3-25.6c-7.7-3.8-15.3-9-19.2-15.3-5-6.2-7.7-13.8-7.7-21.7 0-17.9 11.5-34.5 34.5-48.6-15.3-6.4-28.1-16.6-37.1-30.7-9-14.1-12.8-30.7-12.8-48.6 0-26.9 9-49.9 25.6-66.5 17.9-16.6 40.9-24.3 70.4-24.3 17.9 0 32 1.3 42.2 5.1h85.7v1.3h.2zm-222.6 319.8c0 37.1 28.1 56.3 84.4 56.3 71.6 0 107.5-23 107.5-69.1 0-16.6-5.1-28.1-16.6-35.8-11.5-7.7-29.4-11.5-55-11.5h-44.8c-49.9 1.2-75.5 20.4-75.5 60.1zm21.8-235.4c0 21.7 6.4 37.1 19.2 49.9 12.8 11.5 29.4 17.9 51.2 17.9 23 0 40.9-6.4 52.4-17.9 12.8-11.5 17.9-28.1 17.9-49.9 0-23-6.4-40.9-19.2-52.4-12.8-11.5-29.4-17.9-52.4-17.9-21.7 0-39.7 6.4-51.2 19.2-12.8 11.4-17.9 29.3-17.9 51.1z"/><path class="st0" d="M1640 397.8c-39.7 0-70.4-12.8-93.4-37.1-21.7-24.3-33.3-58.8-33.3-103.6 0-43.5 10.2-79.3 32-104.9 21.7-26.9 49.9-39.7 87-39.7 32 0 57.6 11.5 76.8 33.3 19.2 23 28.1 53.7 28.1 92.1v20.5h-197c0 37.1 9 66.5 26.9 85.7 16.6 20.5 42.2 29.4 74.2 29.4 15.3 0 29.4-1.3 40.9-3.8 11.5-2.6 26.9-6.4 44.8-14.1v24.3c-15.3 6.4-29.4 11.5-42.2 14.1-14.1 2.6-28.2 3.8-44.8 3.8zm-6.4-262.2c-26.9 0-47.3 9-64 25.6-15.3 17.9-25.6 42.2-28.1 75.5h168.9c0-32-6.4-56.3-20.5-74.2-12.8-18-32-26.9-56.3-26.9zm245.6-21.8c11.5 0 24.3 1.3 37.1 3.8l-5.1 24.3c-11.8-2.6-23.8-3.9-35.8-3.8-23 0-42.2 10.2-57.6 29.4-15.3 20.5-23 44.8-23 75.5v149.7h-25.6V119h21.7l2.6 49.9h1.3c11.5-20.5 23-34.5 35.8-42.2 15.4-9 30.7-12.9 48.6-12.9zM333.9 12.8h-183v245.6h245.6V76.7c.1-34.5-28.1-63.9-62.6-63.9zm-239.2 0H64c-34.5 0-64 28.1-64 64v30.7h94.7V12.8zM0 165h94.7v94.7H0V165zm301.9 245.6h30.7c34.5 0 64-28.1 64-64V316h-94.7v94.6zm-151-94.6h94.7v94.7h-94.7V316zM0 316v30.7c0 34.5 28.1 64 64 64h30.7V316H0z"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.2 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -0,0 +1,147 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<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"
viewBox="0 0 1050 350" style="enable-background:new 0 0 1050 350;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#273C51;}
.st2{fill:url(#SVGID_1_);}
.st3{fill:#466284;}
.st4{fill:#354D6A;}
.st5{fill:url(#SVGID_2_);}
.st6{fill:url(#SVGID_3_);}
.st7{fill:url(#SVGID_4_);}
.st8{fill:url(#SVGID_5_);}
.st9{fill:url(#SVGID_6_);}
.st10{fill:url(#SVGID_7_);}
.st11{fill:url(#SVGID_8_);}
.st12{fill:url(#SVGID_9_);}
.st13{fill:url(#SVGID_10_);}
.st14{fill:none;}
</style>
<g>
<g>
<g>
<path class="st0" d="M280.6,198.7c-15.2,0-31.5,6-31.5,20.6c0,13,14.9,16.8,32.6,19.7c24,3.8,47.6,8.6,47.6,35.6
c-0.2,26.9-25.9,35.6-48.8,35.6c-21.2,0-41.5-7.7-50.7-27.8l12.3-7.2c7.7,14.2,23.8,21.1,38.6,21.1c14.6,0,33.9-4.6,33.9-22.3
c0.2-14.9-16.6-19.2-34.6-21.9c-23.1-3.6-45.6-8.9-45.6-33.2c-0.3-25,25.2-33.6,45.9-33.6c17.8,0,34.8,3.6,45.4,21.8l-11.3,7
C307.9,203.7,294,198.9,280.6,198.7z"/>
<path class="st0" d="M353.8,188.1v49.2c7.2-11.1,18.5-14.9,29.3-15.1c23.8,0,35.5,15.8,35.5,39.1v46.6h-13.9v-46.4
c0-16.6-8.6-26-24-26S354,247.5,354,263v44.9h-14V187.9h13.9V188.1z"/>
<path class="st0" d="M504.4,308.2l-0.3-15.4c-6.7,11.7-19.5,17.1-31.2,17.1c-24.3,0-43.3-16.8-43.3-44.4
c0-27.4,19.4-43.9,43.5-43.7c12.7,0,25.2,5.8,31.4,16.8l0.2-15.4h13.7v84.6h-13.5L504.4,308.2z M473.5,235.2
c-16.8,0-30.3,12-30.3,30.8s13.5,31,30.3,31c40.8,0,40.8-62,0.2-62L473.5,235.2z"/>
<path class="st0" d="M529.5,223.6h13.4l0.7,16.3c6.7-11.3,19.2-17.8,32.6-17.8c24.3,0.5,42.1,17.6,42.1,43.7
c0,26.7-17.6,44-43,44c-12,0-25.4-5.1-32-17.1v55.2h-13.7V223.6z M604.2,266c0-19-12.5-30.3-29.8-30.3c-17.6,0-29.6,13-29.6,30.3
s12.5,30.3,29.6,30.5C591.3,296.5,604.2,285.1,604.2,266z"/>
<path class="st0" d="M708.9,294.3c-8.6,10.1-23.3,15.1-36.5,15.1c-26.2,0-44.5-17.3-44.5-44.2c0-25.5,18.3-43.9,43.9-43.9
c25.9,0,45.6,15.9,42.3,49.7h-72c1.5,15.6,14.4,25.4,30.7,25.4c9.6,0,21.2-3.8,26.9-10.6l9.4,8.6H708.9z M700.6,259.4
c-0.7-16.4-12-25.4-28.6-25.4c-14.7,0-27.6,8.9-30,25.2h58.6V259.4z"/>
</g>
<g>
<path class="st0" d="M771.2,198.7c-15.2,0-31.5,6-31.5,20.6c0,13,14.9,16.8,32.6,19.7c24,3.8,47.6,8.6,47.6,35.6
c-0.2,26.9-25.9,35.6-48.8,35.6c-21.2,0-41.5-7.7-50.7-27.8l12.3-7.2c7.7,14.2,23.8,21.1,38.6,21.1c14.6,0,33.9-4.6,33.9-22.3
c0.2-14.9-16.6-19.2-34.6-21.9c-23.1-3.6-45.6-8.9-45.6-33.2c-0.3-25,25.2-33.6,45.9-33.6c17.8,0,34.8,3.6,45.4,21.8l-11.3,7
C798.5,203.7,784.6,198.9,771.2,198.7z"/>
<path class="st0" d="M844.4,188.1v49.2c7.2-11.1,18.5-14.9,29.3-15.1c23.8,0,35.5,15.8,35.5,39.1v46.6h-13.9v-46.4
c0-16.6-8.6-26-24-26s-26.7,12.2-26.7,27.6v44.9h-14V187.9h13.9V188.1z"/>
<path class="st0" d="M920.6,307.8h14v-83.4h-14V307.8z M927.8,211.7l-11.1-12.2l11.1-12.2l11.1,12.2L927.8,211.7z"/>
<g>
<polygon class="st0" points="960.8,308 960.8,307.8 960.7,307.8 "/>
<path class="st0" d="M974.7,217.6c0-12.7,5.8-18.3,14.9-18.3c0.2,0,0.4,0,0.5,0l3.2-12.1c-1.3-0.2-2.7-0.3-4-0.3
c-17.8,0-28.4,11.3-28.4,30.7v6.7h-16.6v12.3h16.6v71.3h13.9v-71.3h16.8v-12.3h-16.8V217.6z"/>
</g>
<path class="st0" d="M1046.1,296.1c-1.1,0.2-2.2,0.3-3.3,0.3c-10.1,0-13.4-6.3-13.4-16.3v-43.6h18v-12.2h-17.9v-25.8l-14,1.5
v24.2h-17v12.2h17v43.6c0,18.7,8.6,29.3,26.7,29c2.2-0.1,4.4-0.3,6.5-0.8L1046.1,296.1z"/>
</g>
</g>
<polygon class="st1" points="216,82.1 230.5,-0.7 169.9,24.6 103.3,24.6 42.7,-0.8 57.3,82.1 43.6,128.3 56.5,136.4 0,186 0,232.6
64.6,321.6 125.5,342 125.6,342.1 173.2,317.7 173.3,317.6 173.3,281.5 146.3,266.7 146.3,266.7 146.3,266.7 188.7,153.8
188.4,153.8 229.6,128.3 "/>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="136.7364" y1="25.9921" x2="60.3198" y2="247.6647">
<stop offset="0.1345" style="stop-color:#2B415B"/>
<stop offset="0.3762" style="stop-color:#3B5676"/>
<stop offset="0.6923" style="stop-color:#54769E"/>
<stop offset="0.7901" style="stop-color:#52749B"/>
<stop offset="0.8614" style="stop-color:#4D6C92"/>
<stop offset="0.9244" style="stop-color:#436082"/>
<stop offset="0.9822" style="stop-color:#364F6C"/>
<stop offset="1" style="stop-color:#314863"/>
</linearGradient>
<polygon class="st2" points="97.7,100.3 0,186 136.1,264.3 136.6,102.9 "/>
<polygon class="st3" points="83.8,153.3 136.2,293.4 136.6,161.1 "/>
<polygon class="st4" points="188.7,153.8 136.2,293.4 136.6,161.1 "/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="230.1033" y1="127.4219" x2="34.0475" y2="14.229">
<stop offset="0" style="stop-color:#54769E"/>
<stop offset="0.4802" style="stop-color:#53749C"/>
<stop offset="0.6878" style="stop-color:#4F6F95"/>
<stop offset="0.8423" style="stop-color:#486588"/>
<stop offset="0.9095" style="stop-color:#435F80"/>
</linearGradient>
<polygon class="st5" points="230.5,-0.7 178.4,26.7 136.7,35.8 94.6,26.7 42.7,-0.8 60.6,81.9 43.6,128.3 103.2,165.3
136.3,201.3 136.3,201.6 136.5,201.4 136.7,201.6 136.7,201.3 169.8,165.3 229.6,128.3 212.6,82 "/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="342.5284" y1="63.8296" x2="150.4648" y2="63.8296">
<stop offset="0.2539" style="stop-color:#20344C"/>
<stop offset="0.4072" style="stop-color:#273D57"/>
<stop offset="0.6733" style="stop-color:#395373"/>
<stop offset="1" style="stop-color:#54769E"/>
</linearGradient>
<polygon class="st6" points="230.5,-0.7 216,82.1 229.6,128.3 212.6,82 "/>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="-74.3281" y1="63.7777" x2="124.2335" y2="63.7777">
<stop offset="0.2539" style="stop-color:#54769E"/>
<stop offset="0.4133" style="stop-color:#4D6E93"/>
<stop offset="0.6897" style="stop-color:#3C5777"/>
<stop offset="1" style="stop-color:#233850"/>
</linearGradient>
<polygon class="st7" points="42.7,-0.8 57.3,82.1 43.6,128.3 60.6,81.9 "/>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="138.4299" y1="-77.4169" x2="134.5027" y2="85.5632">
<stop offset="6.545247e-03" style="stop-color:#54769E"/>
<stop offset="0.1993" style="stop-color:#507198"/>
<stop offset="0.4502" style="stop-color:#466488"/>
<stop offset="0.7318" style="stop-color:#354F6D"/>
<stop offset="1" style="stop-color:#21354D"/>
</linearGradient>
<polygon class="st8" points="42.7,-0.8 103.3,24.6 169.9,24.6 230.5,-0.7 178.4,26.7 136.7,35.8 94.6,26.7 "/>
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="173.2798" y1="-23.2345" x2="12.7505" y2="132.5687">
<stop offset="0.2539" style="stop-color:#54769E"/>
<stop offset="0.4102" style="stop-color:#4D6E93"/>
<stop offset="0.6813" style="stop-color:#3C5777"/>
<stop offset="1" style="stop-color:#22364E"/>
</linearGradient>
<polygon class="st9" points="60.6,81.9 57.6,90.2 120.5,32.2 "/>
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="114.997" y1="-2.4443" x2="248.7759" y2="116.8474">
<stop offset="0.2539" style="stop-color:#54769E"/>
<stop offset="0.4102" style="stop-color:#4D6E93"/>
<stop offset="0.6813" style="stop-color:#3C5777"/>
<stop offset="1" style="stop-color:#22364E"/>
</linearGradient>
<polygon class="st10" points="212.6,82 153,32.2 215.5,89.8 "/>
<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="-31.9333" y1="230.8414" x2="255.118" y2="333.2895">
<stop offset="0.2664" style="stop-color:#54769E"/>
<stop offset="1" style="stop-color:#425E7F"/>
</linearGradient>
<polygon class="st11" points="0,186 146.3,266.7 164.8,313 125.6,327.9 64.6,321.6 0,232.6 "/>
<polygon class="st0" points="121.1,252.8 64.8,321.4 64.6,321.6 125.5,342 125.6,342.1 173.2,317.7 173.3,317.6 173.3,281.5 "/>
<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="97.761" y1="-67.9411" x2="268.6103" y2="84.2801">
<stop offset="0.4609" style="stop-color:#54769E;stop-opacity:0"/>
<stop offset="0.5699" style="stop-color:#52739A;stop-opacity:0.2156"/>
<stop offset="0.6764" style="stop-color:#4A698E;stop-opacity:0.4266"/>
<stop offset="0.782" style="stop-color:#3D597B;stop-opacity:0.6356"/>
<stop offset="0.8863" style="stop-color:#2C435F;stop-opacity:0.8422"/>
<stop offset="0.9661" style="stop-color:#1B2E45"/>
</linearGradient>
<polygon class="st12" points="212.6,82 230.5,-0.7 178.4,26.7 153,32.2 "/>
<polygon class="st0" points="136.6,201.6 120.1,183.5 136.6,165.3 153.2,183.5 "/>
<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="136.6099" y1="347.9733" x2="136.6099" y2="-96.2296">
<stop offset="0.2539" style="stop-color:#54769E"/>
<stop offset="0.4102" style="stop-color:#4D6E93"/>
<stop offset="0.6813" style="stop-color:#3C5777"/>
<stop offset="1" style="stop-color:#22364E"/>
</linearGradient>
<polygon class="st13" points="135,35.4 136.7,35.8 138.2,35.5 136.6,141 "/>
<path class="st14" d="M77.6,35.5"/>
<path class="st14" d="M75.1,35.5"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.0 KiB

View File

@ -0,0 +1 @@
<svg width="2568" height="723" viewBox="0 0 2568 723" xmlns="http://www.w3.org/2000/svg"><g fill-rule="nonzero" fill="#FFF"><path d="M249 0C149.9 0 69.7 80.2 69.7 179.3v67.2C34.9 252.8 0 261.2 0 272.1v350.7s0 9.7 10.9 14.3c39.5 16 194.9 71 230.6 83.6 4.6 1.7 5.9 1.7 7.1 1.7 1.7 0 2.5 0 7.1-1.7 35.7-12.6 191.5-67.6 231-83.6 10.1-4.2 10.5-13.9 10.5-13.9V272.1c0-10.9-34.4-19.7-69.3-25.6v-67.2C428.4 80.2 347.7 0 249 0zm0 85.7c58.4 0 93.7 35.3 93.7 93.7v58.4c-65.5-4.6-121.4-4.6-187.3 0v-58.4c0-58.5 35.3-93.7 93.6-93.7zm-.4 238.1c81.5 0 149.9 6.3 149.9 17.6v218.8c0 3.4-.4 3.8-3.4 5-2.9 1.3-139 50.4-139 50.4s-5.5 1.7-7.1 1.7c-1.7 0-7.1-2.1-7.1-2.1s-136.1-49.1-139-50.4c-2.9-1.3-3.4-1.7-3.4-5V341c-.8-11.3 67.6-17.2 149.1-17.2zM728.547 562.528V322.922H641V237h272.962v85.922h-86.686v239.606zM1134.394 562.528l-44.92-102.36h-35.745v102.36H955V237h173.755c76.27 0 117.175 50.56 117.175 111.536 0 56.198-32.495 85.922-58.587 98.729l58.97 115.168h-111.919v.095zm11.66-213.992c0-17.681-15.674-25.327-32.113-25.327h-60.212v51.419h60.212c16.44-.382 32.113-8.028 32.113-26.092zM1298 562.528V237h246.87v85.922h-148.523v32.113h144.891v85.922h-144.891v35.745h148.523v85.826zM1596 563.528v-78.275l124.056-161.331H1596V238h254.038v77.511L1725.6 477.702h128.07v85.922l-257.67-.096zM1878 400.594C1878 300.623 1955.511 232 2056.247 232c100.354 0 178.248 68.24 178.248 168.594 0 99.972-77.512 168.212-178.248 168.212-100.736 0-178.247-68.24-178.247-168.212zm256.141 0c0-45.398-30.87-81.525-78.276-81.525-47.405 0-78.276 36.127-78.276 81.525s30.87 81.526 78.276 81.526c47.788 0 78.276-36.128 78.276-81.526zM2455.394 563.528l-44.92-102.36h-35.745v102.36H2276V238h173.755c76.27 0 117.175 50.56 117.175 111.536 0 56.198-32.495 85.922-58.587 98.729l58.97 115.168h-111.919v.095zm12.043-214.374c0-17.682-15.675-25.328-32.113-25.328h-60.213v51.42h60.213c16.534-.383 32.113-8.029 32.113-26.092z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 19 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -0,0 +1 @@
<svg id="Capa_1" data-name="Capa 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 576.05 491.69"><defs><style>.cls-1{fill:url(#linear-gradient);}.cls-2{fill:#81cc3b;}.cls-3{fill:#ffa21a;}</style><linearGradient id="linear-gradient" x1="287.22" y1="-433.18" x2="287.22" y2="678.5" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1aa59c"/><stop offset="1" stop-color="#005daf"/></linearGradient></defs><title>onboarding_icons</title><path class="cls-1" d="M47.42,479.51V12.17H527V479.52Zm437.13-35.58V380H310.14v64Zm-218,0V380H86.41v64Zm218-95.76v-64H310.14v64Zm-218,0v-64H86.41v64Zm218-96.88v-64H310.14v64Zm-218,0v-64H86.41v64Zm216.87-99.14v-64H309v64Zm-218,0v-64H85.29v64Z"/><path d="M521,18.17V473.52H53.42V18.17H521m-218,140H489.42v-76H303v76m-223.73,0H271.42v-76H79.29v76M304.14,257.3H490.55v-76H304.14v76m-223.73,0H272.55v-76H80.41v76m223.73,96.88H490.55v-76H304.14v76m-223.73,0H272.55v-76H80.41v76m223.73,95.76H490.55V374H304.14v76m-223.73,0H272.55V374H80.41v76M533,6.17H41.42V485.51H533V6.17Zm-218,88H477.42v52H315v-52Zm-223.73,0H259.42v52H91.29v-52Zm224.86,99.14H478.55v52H316.14v-52Zm-223.73,0H260.55v52H92.41v-52Zm223.73,96.88H478.55v52H316.14v-52Zm-223.73,0H260.55v52H92.41v-52ZM316.14,386H478.55v52H316.14V386ZM92.41,386H260.55v52H92.41V386Z"/><path class="cls-2" d="M31.63,284V149.42H542.81V284Zm462.71-34.58V188H79v61.46Z"/><path d="M536.81,155.42V278H37.63V155.42H536.81M73,255.41H500.34V182H73v73.46m475.84-112H25.63V290H548.81V143.42ZM85,194H488.34v49.46H85V194Z"/><polygon class="cls-3" points="530.97 219.5 561.79 188.68 561.79 250.32 530.97 219.5"/><polygon class="cls-3" points="45.08 219.5 14.26 250.32 14.26 188.68 45.08 219.5"/></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.3 KiB

View File

@ -0,0 +1 @@
<svg id="Capa_1" data-name="Capa 1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 527.44 445.03"><defs><style>.cls-1{fill:#dfdfe3;}.cls-2{fill:#ffa21a;}.cls-3{fill:#a1abb8;}.cls-4{fill:#7d8694;}.cls-5,.cls-8{fill:#fff;}.cls-6{fill:url(#linear-gradient);}.cls-7{fill:#ffce00;}.cls-8{stroke:#000;stroke-linejoin:round;stroke-width:2px;}</style><linearGradient id="linear-gradient" x1="343.48" y1="91.29" x2="132.55" y2="342.07" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#1aa59c"/><stop offset="1" stop-color="#005daf"/></linearGradient></defs><title>onboarding_icons</title><rect class="cls-1" x="15.72" y="14.52" width="448" height="400"/><path class="cls-2" d="M495.72,270.52h16v-32h-16v-32h-144v32h16v32h-16v16a72,72,0,1,0,16,142.19v1.81h144v-32h-16v-32h16v-32h-16v-64Z"/><path class="cls-3" d="M273.34,374.52H55.72v-48h24v-80h-24v-64h24v-80h-24v-48h368v144h-32v-64h16v-16h-32v80H358.59c-7.7-58.8-58-104.38-118.86-104.38a120,120,0,1,0,38.14,233.68,79.84,79.84,0,0,0-4.53,46.7Z"/><path class="cls-4" d="M295.21,301.95A104.51,104.51,0,1,1,310.63,290"/><rect x="71.72" y="70.52" width="16" height="16"/><rect x="391.72" y="70.52" width="16" height="16"/><rect x="71.72" y="342.52" width="16" height="16"/><rect x="231.72" y="278.52" width="16" height="24"/><rect x="231.72" y="126.52" width="16" height="24"/><rect x="151.72" y="206.52" width="24" height="16"/><rect x="303.72" y="206.52" width="24" height="16"/><rect x="285.43" y="256.26" width="15.99" height="24" transform="translate(-103.74 286.17) rotate(-45.02)"/><rect x="177.96" y="148.76" width="15.99" height="24" transform="translate(-59.2 178.64) rotate(-45.02)"/><rect x="173.99" y="260.27" width="24" height="15.99" transform="translate(-135.21 210.04) rotate(-44.99)"/><rect x="281.45" y="152.78" width="24" height="15.99" transform="translate(-27.75 254.54) rotate(-44.99)"/><path d="M287.07,207.88l14.78-15.32-21.12-2.63a48,48,0,1,0,6.34,18Zm-47.34,43.8a37.16,37.16,0,1,1,37.16-37.16A37.16,37.16,0,0,1,239.72,251.68Z"/><path class="cls-5" d="M351.72,310.52a48,48,0,1,0,48,48A48,48,0,0,0,351.72,310.52Zm0,90.19a42.19,42.19,0,1,1,42.19-42.19A42.23,42.23,0,0,1,351.72,400.71Z"/><path d="M503.72,294.52v-16h16v-48h-16v-32h-32V6.52H7.72v416h72v16h72v-16H303.93a79.28,79.28,0,0,0,55.79,15.59v.41h160v-48h-16v-16h16v-48h-16v-32Zm-16-80v16h-128v-16Zm-57.62,160h57.62v16H425A78.74,78.74,0,0,0,430.11,374.52Zm-14.54-64h72.15v16H425A79.93,79.93,0,0,0,415.57,310.52Zm-7.85-16h-8.21a79.43,79.43,0,0,0-39.79-15.59v-.41h128v16Zm-112.51,7.43A104.51,104.51,0,1,1,310.63,290,80.34,80.34,0,0,0,295.21,301.95Zm-21.87,72.57H55.72v-48h24v-80h-24v-64h24v-80h-24v-48h368v144h-32v-64h16v-16h-32v80H358.59c-7.7-58.8-58-104.38-118.86-104.38a120,120,0,1,0,38.14,233.68,79.84,79.84,0,0,0-4.53,46.7Zm-209.62-112v48h-16v-48Zm0-144v48h-16v-48Zm296,128v16H349.45a119.82,119.82,0,0,0,5.71-16Zm-16,27.24v5.17c-1.17.12-2.3.34-3.46.51C341.47,277.58,342.62,275.68,343.72,273.76Zm-264,132.76h-56v-384h432v176h-16v-160h-400v64h-8v80h8v64h-8v80h8v64H278.45a79.93,79.93,0,0,0,9.42,16H79.72Zm208-48a63.7,63.7,0,0,1,17.74-44.1,120.92,120.92,0,0,0,14.78-11.55,63.63,63.63,0,0,1,71.48,5.77v1.88h2.19a64,64,0,1,1-106.19,48Zm216,64H399.51a80.46,80.46,0,0,0,16-16h88.16Zm0-64h-72a79.87,79.87,0,0,0-1.62-16h73.62Zm-128-96v-16h128v16Z"/><circle class="cls-6" cx="239.77" cy="214.59" r="37.5"/><rect class="cls-7" x="47.72" y="118.52" width="16" height="48"/><rect class="cls-7" x="47.72" y="262.52" width="16" height="48"/><path class="cls-8" d="M243.46,226.43a11.58,11.58,0,0,1-2.67.31c-6.38,0-11.81-4.86-12.2-12.07a22.71,22.71,0,0,1,.66-4.09l-9.87-4.2a25.49,25.49,0,0,0-1.56,8.8c0,12.37,10.6,22.39,23,22.39a22.33,22.33,0,0,0,8.3-1.59Z"/><path class="cls-8" d="M240.79,191.6a22.31,22.31,0,0,0-9.32,2l5.56,9.44a11.54,11.54,0,0,1,3.76-.63c5.65,0,11.64,4.74,12.21,10.57l-16.07.07,25,10.61a22.9,22.9,0,0,0,1.74-9.51C263.72,201.82,253.15,191.6,240.79,191.6Z"/></svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.6 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1 @@
<svg id="Capa_1" data-name="Capa 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 534.28 493.58"><defs><style>.cls-1{fill:#ff2434;}.cls-2{fill:#c32434;}.cls-3{fill:#fff;}.cls-4{fill:#e7e7e7;}.cls-5{fill:#1a1a1a;}</style></defs><title>onboarding_icons</title><g id="Symbols"><g id="icon_scam--warning" data-name="icon scam--warning"><g id="malware"><rect id="Rectangle-path" class="cls-1" x="14.92" y="14.37" width="504.44" height="392.23"/><path id="Shape" class="cls-2" d="M370.09,222.32A102.95,102.95,0,1,0,173.89,266a46.35,46.35,0,0,0,16,69.89v32.63H344.35V335.88a46.35,46.35,0,0,0,16-69.89A102.25,102.25,0,0,0,370.09,222.32ZM235.74,254.24a18,18,0,0,1,0-36l18,18A18,18,0,0,1,235.74,254.24Zm62.8,0a18,18,0,0,1-18-18l18-18a18,18,0,0,1,0,36Z"/><g id="Group"><path id="Shape-2" data-name="Shape" class="cls-3" d="M333.79,270.68a82.36,82.36,0,1,0-133.3,0,25.74,25.74,0,0,0,10,49.45v27.8H323.76v-27.8a25.74,25.74,0,0,0,10-49.45Zm-98-16.44a18,18,0,0,1,0-36l18,18A18,18,0,0,1,235.74,254.24Zm62.8,0a18,18,0,0,1-18-18l18-18a18,18,0,0,1,0,36Z"/><rect id="Rectangle-path-2" data-name="Rectangle-path" class="cls-4" x="14.92" y="14.37" width="504.44" height="61.77"/></g><path id="Shape-3" data-name="Shape" class="cls-3" d="M54.55,182.17H39.11V166.73H54.55Zm0-30.88H39.11V105H54.55Z"/><rect id="Rectangle-path-3" data-name="Rectangle-path" class="cls-2" x="14.92" y="76.14" width="504.44" height="20.59"/><rect id="Rectangle-path-4" data-name="Rectangle-path" class="cls-5" x="38.6" y="38.56" width="18.57" height="18.57"/><rect id="Rectangle-path-5" data-name="Rectangle-path" class="cls-5" x="69.48" y="38.56" width="18.57" height="18.57"/><rect id="Rectangle-path-6" data-name="Rectangle-path" class="cls-5" x="100.37" y="38.56" width="18.57" height="18.57"/><rect id="Rectangle-path-7" data-name="Rectangle-path" class="cls-5" x="131.25" y="38.56" width="364.43" height="18.57"/><path id="Shape-4" data-name="Shape" class="cls-5" d="M344.64,268.23a90.08,90.08,0,1,0-155,0,33.47,33.47,0,0,0,13.16,58.71v28.7H331.48v-28.7a33.47,33.47,0,0,0,13.16-58.71Zm-13.86,9.56a18,18,0,0,1-7,34.62H316v27.8H303.17V320.12H287.73V340.2H274.86V320.12H259.42V340.2H246.55V320.12H231.11V340.2H218.24V312.4h-7.72a18,18,0,0,1-7-34.62l8.95-3.79-5.71-7.86a74.64,74.64,0,1,1,120.81,0L321.83,274Z"/><path id="Shape-5" data-name="Shape" class="cls-5" d="M298.54,210.48h-3.2L272.8,233v3.2a25.74,25.74,0,1,0,25.74-25.74Zm0,36a10.31,10.31,0,0,1-9.91-7.49l12.71-12.71a10.29,10.29,0,0,1-2.81,20.2Z"/><path id="Shape-6" data-name="Shape" class="cls-5" d="M235.74,210.48a25.74,25.74,0,1,0,25.74,25.74V233l-22.54-22.54h-3.2Zm0,36a10.3,10.3,0,0,1-2.81-20.2L245.64,239A10.31,10.31,0,0,1,235.74,246.52Z"/><rect id="Rectangle-path-8" data-name="Rectangle-path" class="cls-5" x="242.43" y="279.46" width="18.57" height="18.57"/><rect id="Rectangle-path-9" data-name="Rectangle-path" class="cls-5" x="276.4" y="279.46" width="18.57" height="18.57"/><rect id="Rectangle-path-10" data-name="Rectangle-path" class="cls-5" x="322.22" y="437.48" width="18.57" height="18.57"/><rect id="Rectangle-path-11" data-name="Rectangle-path" class="cls-5" x="322.22" y="468.37" width="18.57" height="18.57"/><rect id="Rectangle-path-12" data-name="Rectangle-path" class="cls-5" x="322.22" y="406.6" width="18.57" height="18.57"/><rect id="Rectangle-path-13" data-name="Rectangle-path" class="cls-5" x="259.93" y="437.48" width="18.57" height="18.57"/><rect id="Rectangle-path-14" data-name="Rectangle-path" class="cls-5" x="259.93" y="406.6" width="18.57" height="18.57"/><rect id="Rectangle-path-15" data-name="Rectangle-path" class="cls-5" x="259.93" y="375.71" width="18.57" height="18.57"/><path id="Shape-7" data-name="Shape" class="cls-5" d="M7.2,6.65V414.32H178.61V398.88h-156v-315h489v315h-156v15.44H527.08V6.65ZM22.64,68.42V22.09h489V68.42h-489Z"/><rect id="Rectangle-path-16" data-name="Rectangle-path" class="cls-5" x="196.62" y="468.37" width="18.57" height="18.57"/><rect id="Rectangle-path-17" data-name="Rectangle-path" class="cls-5" x="196.62" y="437.48" width="18.57" height="18.57"/><rect id="Rectangle-path-18" data-name="Rectangle-path" class="cls-5" x="196.62" y="406.6" width="18.57" height="18.57"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.8 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,22 @@
{
"name": "MyEtherWallet",
"version": "3.11.2.4",
"manifest_version": 2,
"description": "MyEtherWallet Chrome Extension",
"homepage_url": "https://www.myetherwallet.com/",
"icons": {
"16": "images/icons/icon16.png",
"32": "images/icons/icon32.png",
"192": "images/icons/icon192.png"
},
"options_page": "cx-wallet.html",
"browser_action": {
"default_icon": "images/icons/icon32.png",
"default_title": "MyEtherWallet CX",
"default_popup": "browser_action/browser_action.html"
},
"permissions": [
"storage"
],
"content_security_policy": "script-src 'self' 'unsafe-eval' 'sha256-uxI0oLy+6OpnvTApEkmCzuxkvu4J47b6yHCV93fjHN0=' 'sha256-0Gsidap6748RQlB69d8CLcBCD2A1kL9luXuhxAKpgXQ=' 'sha256-Z7zS8qcr4BZTeVyPP1sIfzQLoVSrzOW0qLHyZCds1WE='; object-src 'self'"
}

View File

@ -0,0 +1,13 @@
{
"name": "MyEtherWallet",
"version": "3.11.2.4",
"description": "An NPM dist of MyEtherWallet. For easier downloading & updating via CLI.",
"author": "MyEtherWallet",
"license": "ISC",
"devDependencies": {
"open": "0.0.5"
},
"bin": {
"mew": "bin/startMEW.js"
}
}

View File

@ -0,0 +1,171 @@
<!DOCTYPE html>
<html lang="en" ng-app="mewApp">
<head>
<meta charset="utf-8">
<title>MyEtherWallet.com</title>
<link rel="canonical" href="https://www.myetherwallet.com" />
<meta name="description" content="MyEtherWallet.com is a free, open-source, client-side interface for generating Ethereum wallets &amp; more. Interact with the Ethereum blockchain easily &amp; securely. Double-check the URL ( myetherwallet.com ) before unlocking your wallet.">
<meta name="author" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/etherwallet-master.min.css">
<script type="text/javascript" src="js/etherwallet-static.min.js"></script>
<script type="text/javascript" src="js/etherwallet-master.js"></script>
<link rel="apple-touch-icon" sizes="60x60" href="images/fav/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="76x76" href="images/fav/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="120x120" href="images/fav/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="152x152" href="images/fav/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="images/fav/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="images/fav/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="images/fav/favicon-194x194.png" sizes="194x194">
<link rel="icon" type="image/png" href="images/fav/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="images/fav/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="images/fav/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="images/fav/manifest.json">
<link rel="shortcut icon" href="images/favicon.ico">
<meta name="msapplication-TileColor" content="#2e4868">
<meta name="msapplication-TileImage" content="images/fav/mstile-144x144.png">
<meta name="msapplication-config" content="images/fav/browserconfig.xml">
<meta name="theme-color" content="#2e4868">
</head>
<body>
<header class="bg-gradient text-white">
<section class="container text-center">
<a href="https://www.myetherwallet.com/"><img src="images/logo-myetherwallet.svg" height="50px" width="auto" alt="Ether Wallet" class="embedded-logo" /></a>
</section>
</header>
<section ng-controller="tabsCtrl" ng-cloak>
<section class="container" style="min-height: 50%" ng-controller='signMsgCtrl'>
<div class="tab-content">
<div class="clearfix">
<article class="col-xs-12 clearfix">
<div class="block text-center">
<h2>
<a translate="NAV_SignMsg"
ng-class="{ 'isActive': visibility=='signView'}"
ng-click="setVisibility('signView')">
Sign Message
</a>
or
<a translate="MSG_verify"
ng-class="{ 'isActive': visibility=='verifyView'}"
ng-click="setVisibility('verifyView')">
Verify Message
</a>
</h2>
</div>
</article>
<article class="col-xs-12 clearfix" ng-switch on="visibility">
<section class="block" ng-switch-when="signView">
<h4 translate="MSG_message">
Message
</h4>
<textarea class="form-control"
ng-model="signMsg.message"
placeholder="This is a sweet message that you are signing to prove that you own the address you say you own."
rows="5"
ng-disabled="signMsg.signedMsg">
</textarea>
<p class="small">
<em translate="MSG_info2">
Include your nickname and where you use the nickname so someone else cannot use it.
</em>
<em translate="MSG_info3">
Include a specific reason for the message so it cannot be reused for a different purpose.
</em>
</p>
<br />
<a class="btn btn-info btn-block"
ng-click="generateSignedMsg()"
translate="NAV_SignMsg"
ng-show="wallet!=null">
Sign Message
</a>
<div ng-show="signMsg.signedMsg">
<h4 translate="MSG_signature">
Signature
</h4>
<textarea class="form-control"
rows="8"
style="word-break: break-all;"
readonly
title="Signature">{{ signMsg.signedMsg }}</textarea>
</div>
</section>
<section class="block" ng-switch-when="verifyView">
<h5 translate="MSG_signature">
Signature
</h5>
<textarea class="form-control"
ng-model="verifyMsg.signedMsg"
rows="8"
placeholder='{"address":"0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8","msg":"asdfasdfasdf","sig":"0x4771d78f13ba8abf608457f12471f427ca8f2fb046c1acb3f5969eefdfe452a10c9154136449f595a654b44b3b0163e86dd099beaca83bfd52d64c21da2221bb1c","version":"mew_v2"}'>
</textarea>
<a class="btn btn-info btn-block"
ng-click="verifySignedMessage()"
translate="MSG_verify"
ng-show="verifyMsg.signedMsg!=''">
Verify Message
</a>
<p class="alert alert-success"
ng-show="verifiedMsg.address!=null">
<strong>{{ verifiedMsg.address }}</strong> did sign the message <strong>{{ verifiedMsg.msg }}</strong>.
</p>
</section>
</article>
</div>
<div class="clearfix col-xs-12" ng-show="visibility=='signView' && wallet==null">
<wallet-decrypt-drtv></wallet-decrypt-drtv>
</div>
</div>
<div data-ng-repeat="alert in notifier.alerts">
<div class="alert popup alert-{{alert.type}} animated-show-hide"
style="bottom: {{85*$index}}px; z-index: {{999+$index}};">
<div class="container">
<div class='alert-message' ng-bind-html="alert.message"></div>
</div>
<i class="icon-close" ng-click="alert.close()"></i>
</div>
</div>
</section>
</section>
<br /><br /><br /><br /><br />
<footer>
<script type='application/ld+json'>{"@context":"http://schema.org","@type":"Organization","@id":"#organization","url":"https://www.myetherwallet.com/","name":"MyEtherWallet",
"logo":"https://myetherwallet.com/images/myetherwallet-logo-banner.png","description": "MyEtherWallet.com is a free, open-source, client-side interface for generating Ethereum wallets &amp; more. Interact with the Ethereum blockchain easily &amp; securely. Double-check the URL ( myetherwallet.com ) before unlocking your wallet.","sameAs":["https://www.myetherwallet.com/","https://chrome.google.com/webstore/detail/myetherwallet-cx/nlbmnnijcnlegkjjpcfjclmcfggfefdm","https://www.facebook.com/MyEtherWallet/","https://twitter.com/myetherwallet","https://medium.com/@myetherwallet_96408","https://myetherwallet.github.io/knowledge-base/","https://github.com/kvhnuke/etherwallet","https://github.com/MyEtherWallet","https://kvhnuke.github.io/etherwallet/","https://github.com/kvhnuke/etherwallet/releases/latest","https://github.com/409H/EtherAddressLookup","https://myetherwallet.slack.com/","https://myetherwallet.herokuapp.com/","https://www.reddit.com/r/MyEtherWallet/","https://www.reddit.com/user/insomniasexx/","https://www.reddit.com/user/kvhnuke/","https://www.reddit.com/user/myetherwallet"]}</script>
</body>
</html>