lnbase: support simnet/testnet, create accepted open_channel message
This commit is contained in:
@@ -15,8 +15,9 @@ import hashlib
|
|||||||
import hmac
|
import hmac
|
||||||
import cryptography.hazmat.primitives.ciphers.aead as AEAD
|
import cryptography.hazmat.primitives.ciphers.aead as AEAD
|
||||||
|
|
||||||
from electrum.bitcoin import public_key_from_private_key, ser_to_point, point_to_ser, string_to_number, deserialize_privkey, EC_KEY
|
from electrum.bitcoin import public_key_from_private_key, ser_to_point, point_to_ser, string_to_number, deserialize_privkey, EC_KEY, rev_hex
|
||||||
from electrum.constants import set_testnet
|
from electrum.constants import set_testnet, set_simnet
|
||||||
|
import electrum.constants as constants
|
||||||
from electrum.util import PrintError
|
from electrum.util import PrintError
|
||||||
from electrum.wallet import Wallet
|
from electrum.wallet import Wallet
|
||||||
from electrum.storage import WalletStorage
|
from electrum.storage import WalletStorage
|
||||||
@@ -212,8 +213,9 @@ def create_ephemeral_key(privkey):
|
|||||||
return (privkey[:32], pub)
|
return (privkey[:32], pub)
|
||||||
|
|
||||||
def get_unused_public_keys():
|
def get_unused_public_keys():
|
||||||
set_testnet()
|
path = os.environ["HOME"] + "/.electrum/" + ("testnet" if constants.net is constants.BitcoinTestnet else "simnet") + "/wallets/default_wallet"
|
||||||
WALLET = Wallet(WalletStorage(os.environ["HOME"] + "/.electrum/testnet/wallets/default_wallet"))
|
os.stat(path)
|
||||||
|
WALLET = Wallet(WalletStorage(path))
|
||||||
for str_address in WALLET.get_unused_addresses():
|
for str_address in WALLET.get_unused_addresses():
|
||||||
pri, redeem_script = WALLET.export_private_key(str_address, None)
|
pri, redeem_script = WALLET.export_private_key(str_address, None)
|
||||||
|
|
||||||
@@ -343,7 +345,7 @@ class Peer(PrintError):
|
|||||||
|
|
||||||
pubkeys = get_unused_public_keys()
|
pubkeys = get_unused_public_keys()
|
||||||
|
|
||||||
msg = gen_msg("open_channel", funding_pubkey=next(pubkeys), revocation_basepoint=next(pubkeys), htlc_basepoint=next(pubkeys), payment_basepoint=next(pubkeys), delayed_payment_basepoint=next(pubkeys), first_per_commitment_point=next(pubkeys))
|
msg = gen_msg("open_channel", chain_hash=bytes.fromhex(rev_hex(constants.net.GENESIS)), funding_satoshis=20000, max_accepted_htlcs=5, funding_pubkey=next(pubkeys), revocation_basepoint=next(pubkeys), htlc_basepoint=next(pubkeys), payment_basepoint=next(pubkeys), delayed_payment_basepoint=next(pubkeys), first_per_commitment_point=next(pubkeys))
|
||||||
self.send_message(msg)
|
self.send_message(msg)
|
||||||
|
|
||||||
# loop
|
# loop
|
||||||
@@ -375,10 +377,15 @@ node_list = [
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
if len(sys.argv) > 1:
|
if len(sys.argv) > 2:
|
||||||
host, port, pubkey = sys.argv[1:4]
|
host, port, pubkey = sys.argv[2:5]
|
||||||
else:
|
else:
|
||||||
host, port, pubkey = node_list[0]
|
host, port, pubkey = node_list[0]
|
||||||
|
if sys.argv[1] not in ["simnet", "testnet"]: raise Exception("first argument must be simnet or testnet")
|
||||||
|
if sys.argv[1] == "simnet":
|
||||||
|
set_simnet()
|
||||||
|
else:
|
||||||
|
set_testnet()
|
||||||
pubkey = binascii.unhexlify(pubkey)
|
pubkey = binascii.unhexlify(pubkey)
|
||||||
port = int(port)
|
port = int(port)
|
||||||
privkey = b"\x21"*32 + b"\x01"
|
privkey = b"\x21"*32 + b"\x01"
|
||||||
|
|||||||
Reference in New Issue
Block a user