Skip to content

Commit 851150e

Browse files
authored
fix: fix IOU seed issue (#123)
## High Level Overview of Change This PR fixes a key algorithm-seed type mismatch. ### Context of Change There was an issue where IOU seed generation resulted in an incorrect key algorithm paired with a seed. ### Type of Change - [x] Bug fix (non-breaking change which fixes an issue) ## Test Plan Tests pass locally.
1 parent 7886119 commit 851150e

File tree

2 files changed

+34
-24
lines changed

2 files changed

+34
-24
lines changed

xbridge_cli/server/config/config.py

Lines changed: 32 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -413,10 +413,14 @@ def generate_bootstrap(
413413
verbose: Whether or not to print more verbose information.
414414
""" # noqa: D301
415415
locking_wallet_algo = (
416-
CryptoAlgorithm(locking_algorithm) if locking_algorithm else None
416+
CryptoAlgorithm(locking_algorithm)
417+
if locking_algorithm
418+
else CryptoAlgorithm.ED25519
417419
)
418420
issuing_wallet_algo = (
419-
CryptoAlgorithm(issuing_algorithm) if issuing_algorithm else None
421+
CryptoAlgorithm(issuing_algorithm)
422+
if issuing_algorithm
423+
else CryptoAlgorithm.ED25519
420424
)
421425
locking_door = Wallet(locking_seed, 0, algorithm=locking_wallet_algo)
422426
issuing_door = Wallet(issuing_seed, 0, algorithm=issuing_wallet_algo)
@@ -434,12 +438,14 @@ def generate_bootstrap(
434438
"locking_node_port": 5005,
435439
"locking_door_account": locking_door.classic_address,
436440
"locking_door_seed": locking_door.seed,
441+
"locking_door_algo": locking_wallet_algo.value,
437442
"locking_issue": repr(locking_issue).replace("'", '"'),
438443
"locking_reward_accounts": reward_accounts,
439444
"locking_submit_accounts": reward_accounts,
440445
"issuing_node_port": 5006,
441446
"issuing_door_account": issuing_door.classic_address,
442447
"issuing_door_seed": issuing_door.seed,
448+
"issuing_door_algo": issuing_wallet_algo.value,
443449
"issuing_issue": repr(issuing_issue).replace("'", '"'),
444450
"issuing_reward_accounts": reward_accounts,
445451
"issuing_submit_accounts": reward_accounts,
@@ -513,19 +519,21 @@ def generate_all_configs(
513519
# TODO: add support for external networks
514520
abs_config_dir = os.path.abspath(config_dir)
515521

516-
mc_port, sc_port = _generate_rippled_configs(abs_config_dir, is_docker)
517-
src_door = Wallet.create(CryptoAlgorithm.SECP256K1)
522+
locking_port, issuing_port = _generate_rippled_configs(abs_config_dir, is_docker)
523+
locking_door = Wallet.create(crypto_algorithm=CryptoAlgorithm.SECP256K1)
518524

519-
if currency != "XRP":
525+
if currency == "XRP":
526+
locking_currency = "XRP"
527+
issuing_currency = "XRP"
528+
issuing_door = Wallet(_GENESIS_SEED, 0, algorithm=CryptoAlgorithm.SECP256K1)
529+
issuing_algorithm = "secp256k1"
530+
else:
520531
assert currency.count(".") == 1
521532
currency_code, _issuer = currency.split(".")
522-
src_currency = currency
523-
dst_door = Wallet.create()
524-
dst_currency = f"{currency_code}.{dst_door.classic_address}"
525-
else:
526-
src_currency = "XRP"
527-
dst_currency = "XRP"
528-
dst_door = Wallet(_GENESIS_SEED, 0, algorithm=CryptoAlgorithm.SECP256K1)
533+
locking_currency = currency
534+
issuing_door = Wallet.create()
535+
issuing_algorithm = "ed25519"
536+
issuing_currency = f"{currency_code}.{issuing_door.classic_address}"
529537

530538
reward_accounts = []
531539
signing_accounts = []
@@ -542,14 +550,14 @@ def generate_all_configs(
542550
generate_witness_config,
543551
config_dir=abs_config_dir,
544552
name=f"witness{i}",
545-
locking_chain_port=mc_port,
546-
issuing_chain_port=sc_port,
553+
locking_chain_port=locking_port,
554+
issuing_chain_port=issuing_port,
547555
witness_port=6010 + i,
548556
signing_seed=signing_wallet.seed,
549-
src_door=src_door.classic_address,
550-
src_currency=src_currency,
551-
dst_door=dst_door.classic_address,
552-
dst_currency=dst_currency,
557+
src_door=locking_door.classic_address,
558+
src_currency=locking_currency,
559+
dst_door=issuing_door.classic_address,
560+
dst_currency=issuing_currency,
553561
locking_reward_seed=witness_reward_wallet.seed,
554562
locking_reward_account=witness_reward_wallet.classic_address,
555563
issuing_reward_seed=witness_reward_wallet.seed,
@@ -559,10 +567,12 @@ def generate_all_configs(
559567
ctx.invoke(
560568
generate_bootstrap,
561569
config_dir=abs_config_dir,
562-
locking_seed=src_door.seed,
563-
locking_currency=src_currency,
564-
issuing_seed=dst_door.seed,
565-
issuing_currency=dst_currency,
570+
locking_seed=locking_door.seed,
571+
locking_algorithm="secp256k1",
572+
locking_currency=locking_currency,
573+
issuing_seed=issuing_door.seed,
574+
issuing_algorithm=issuing_algorithm,
575+
issuing_currency=issuing_currency,
566576
verbose=verbose,
567577
reward_accounts=reward_accounts,
568578
signing_accounts=signing_accounts,

xbridge_cli/server/config/templates/bootstrap.jinja

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"DoorAccount": {
88
"Address": "{{ locking_door_account }}",
99
"Seed": "{{ locking_door_seed }}",
10-
"KeyType": "secp256k1"
10+
"KeyType": "{{ locking_door_algo }}"
1111
},
1212
"BridgeIssue": {{ locking_issue }},
1313
"WitnessRewardAccounts": [
@@ -29,7 +29,7 @@
2929
"DoorAccount": {
3030
"Address": "{{ issuing_door_account }}",
3131
"Seed": "{{ issuing_door_seed }}",
32-
"KeyType": "secp256k1"
32+
"KeyType": "{{ issuing_door_algo }}"
3333
},
3434
"BridgeIssue": {{ issuing_issue }},
3535
"WitnessRewardAccounts": [

0 commit comments

Comments
 (0)