Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: merge develop for 0.2.0 release #453

Merged
merged 155 commits into from
Jan 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
e8e2814
fix a bug in direct channel
chenyukang Dec 20, 2024
d7b8494
Merge pull request #411 from chenyukang/fix-direct-channel-bug
quake Dec 20, 2024
72db0ee
Network graph should sync up when channel closed
chenyukang Dec 21, 2024
346a7bd
Merge pull request #412 from chenyukang/yukang-fix-channel-close-netw…
quake Dec 21, 2024
4f8fed7
chore: revert #401
quake Dec 21, 2024
e08d786
begin the next version of tcl operations
chenyukang Dec 21, 2024
8f9e9a0
fix: deterministically hash should use molecule
quake Dec 21, 2024
21f3a7b
Merge pull request #413 from quake/quake/revert-401
quake Dec 21, 2024
9380f2e
add unit test for tlc operations
chenyukang Dec 22, 2024
3082850
chore: code cleanup
quake Dec 22, 2024
7fc5932
Fix creating incorrect funding tx in test
contrun Dec 22, 2024
08bd7bd
Add tests to save channel announcement and update
contrun Dec 22, 2024
bbbe1b9
Refactor channel announcements gossip tests
contrun Dec 22, 2024
a100c95
Add unit tests for channel update with invalid channel announcement
contrun Dec 22, 2024
fb4373d
Add unit tests for saving invalid channel updates
contrun Dec 22, 2024
fa95eb9
Merge pull request #417 from quake/quake/chore
chenyukang Dec 22, 2024
260953a
more unit test for tlc operations
chenyukang Dec 22, 2024
aebf41f
Merge pull request #418 from contrun/gossip-messages-channel-unit-tests
quake Dec 22, 2024
c950ba1
chore: simplify fn prune_messages_to_be_saved
quake Dec 21, 2024
06ecaa3
set waiting_ack
chenyukang Dec 23, 2024
0eac149
add remove tlc
chenyukang Dec 23, 2024
d5b7dde
begin new tlc operation
chenyukang Dec 23, 2024
375147c
implement tlc wait ack
chenyukang Dec 23, 2024
5c8badb
passed first send_payment
chenyukang Dec 24, 2024
ed035a5
fix wait ack
chenyukang Dec 24, 2024
e2cf7ff
fix invalid tlc status
chenyukang Dec 24, 2024
3589638
cleanup tlcs when remove tlc is settled
chenyukang Dec 24, 2024
71178e0
fix some tests
chenyukang Dec 24, 2024
f25ae76
debug nonce
chenyukang Dec 24, 2024
cb92df4
Merge branch 'develop' into tlc-wait-ack
chenyukang Dec 24, 2024
ae35552
fix tests
chenyukang Dec 24, 2024
00e3c17
fix test for invoice
chenyukang Dec 24, 2024
00f5784
fix commitment signed tlcs
chenyukang Dec 24, 2024
633b28a
rename local to for_local
chenyukang Dec 24, 2024
95b0e98
fix sig error for wait ack
chenyukang Dec 25, 2024
f289860
fix get_pending_fulfilled_tlcs_amount
chenyukang Dec 25, 2024
5f779c1
fix tests
chenyukang Dec 25, 2024
5f490d0
code refactoring
chenyukang Dec 25, 2024
da784b1
comments feedback for function naming
chenyukang Dec 25, 2024
3b48f43
add unit test test_network_add_two_tlcs_remove_one
chenyukang Dec 25, 2024
6042adc
Merge pull request #414 from quake/quake/refactor-prune_messages_to_b…
quake Dec 25, 2024
84d5160
fix test for wait_ack
chenyukang Dec 25, 2024
de3d1ea
fix reestablish e2e test case failure
chenyukang Dec 25, 2024
308a534
code cleanup
chenyukang Dec 25, 2024
8c1f72c
code refactoring
chenyukang Dec 25, 2024
96100a5
fix wait ack
chenyukang Dec 25, 2024
f0b6864
Merge branch 'develop' into tlc-wait-ack
chenyukang Dec 25, 2024
884fa50
fix typo and add check for remove tlc
chenyukang Dec 26, 2024
a01f93f
fix typo in function
chenyukang Dec 26, 2024
be9f491
fix reestablish e2e
chenyukang Dec 26, 2024
71aca7f
fix port waiting
chenyukang Dec 26, 2024
5bfe111
fix ckb invoice status update for payment
chenyukang Dec 26, 2024
cb1bd49
trivial fix on e2e
chenyukang Dec 26, 2024
3e9042c
disable build on PR action, only run it on main or develop
chenyukang Dec 26, 2024
5f1f20b
update invoice to paid after remove tlc operation applied
chenyukang Dec 26, 2024
38c2aa0
refactor remove tlc
chenyukang Dec 26, 2024
f93989e
fix: gossip actor and graph should ignore private address
quake Dec 26, 2024
6ab36a6
fix: use unknown as fallback version
doitian Dec 27, 2024
662d221
fix typo in crate::get_git_versin
doitian Dec 27, 2024
886ef8f
add randomly send each unit test and fix a bug in payment status
chenyukang Dec 27, 2024
916c3a9
cleanup logs
chenyukang Dec 27, 2024
6abc209
add comments
chenyukang Dec 27, 2024
34af937
cleanup
chenyukang Dec 27, 2024
659a41c
fix document for p2p
chenyukang Dec 27, 2024
66798d1
Merge pull request #424 from doitian/bugfix/fix-compilation-error-on-…
doitian Dec 27, 2024
d28e288
cleanup
chenyukang Dec 27, 2024
b9ac0a7
Merge pull request #415 from quake/quake/deterministically_hash
chenyukang Dec 27, 2024
eb5dcc4
remove json des
chenyukang Dec 27, 2024
8ba6980
use bincode for hopdata and remove duplicated unit test
chenyukang Dec 27, 2024
ffcd09c
Merge branch 'remove-json-des' into use-bincode-for-hopdata
chenyukang Dec 27, 2024
393152c
remove commitment numbers from remove_at
chenyukang Dec 28, 2024
0ae0352
add more test details for restarting
chenyukang Dec 28, 2024
8f94b67
add more unit test for resending add tlc
chenyukang Dec 28, 2024
28f3ffb
add unit test for remove tlc
chenyukang Dec 28, 2024
4e835c3
use molecule for serialize and deserialize hopdata and tlcerr
chenyukang Dec 27, 2024
3544780
add payment rpc module
chenyukang Dec 29, 2024
bb5ff5f
Merge pull request #421 from quake/quake/gossip-private-address
chenyukang Dec 29, 2024
51944a7
fix gen-rpc-doc makefile
chenyukang Dec 29, 2024
0a00299
move add_tlc and remove_tlc to dev module
chenyukang Dec 29, 2024
34badda
fix: resolve commitment tx error
quake Dec 29, 2024
b2de364
remove payment_preimage from tlc_info
chenyukang Dec 30, 2024
6304153
move commitment signed to dev module
chenyukang Dec 30, 2024
41edd30
fix: use private channel as source should be ok
quake Dec 30, 2024
fbf4304
Merge pull request #426 from quake/quake/fix-myself-private-channel
chenyukang Dec 30, 2024
5b84420
Merge branch 'more-rpc-on-payment' into add-custom-hops
chenyukang Dec 30, 2024
e6194f9
add hop_hints for send payment
chenyukang Dec 30, 2024
02d5bae
fix route to self with direct channels
chenyukang Dec 30, 2024
e33c2a1
fix typo
chenyukang Dec 30, 2024
9907b05
Merge branch 'develop' into tlc-wait-ack
chenyukang Dec 30, 2024
876e765
Merge branch 'develop' into more-rpc-on-payment
chenyukang Dec 30, 2024
05dfae3
Merge branch 'tlc-wait-ack' into more-rpc-on-payment
chenyukang Dec 30, 2024
05c4707
Merge branch 'develop' into more-rpc-on-payment
chenyukang Dec 30, 2024
657e073
add more test case for pay for self
chenyukang Dec 30, 2024
42e7013
merge and fix conflicts
chenyukang Dec 30, 2024
4b4460f
debug
quake Dec 30, 2024
5317308
add more test for route to self with hop hints
chenyukang Dec 31, 2024
e359ed0
fix: settlement amount bug
quake Dec 31, 2024
ed388f1
Merge pull request #4 from quake/quake/fix-e2e-commitment-tx
chenyukang Dec 31, 2024
a869c72
add more unit test for send tlc each other
chenyukang Dec 31, 2024
6c18519
cleanup
chenyukang Dec 31, 2024
09675b6
add unit test for route to self of issue #355
chenyukang Dec 31, 2024
dd06d54
add more test for hop hints
chenyukang Dec 31, 2024
a6e8625
Merge pull request #416 from chenyukang/tlc-wait-ack
quake Jan 2, 2025
2700df2
Merge branch 'develop' into add-custom-hops
chenyukang Jan 2, 2025
4bc6012
fix documents
chenyukang Jan 2, 2025
db10653
merge and resolve conflicts
chenyukang Jan 2, 2025
384106f
Merge pull request #425 from chenyukang/use-bincode-for-hopdata
quake Jan 2, 2025
4867c1c
Avoid send broadcast message when shutdown private channel
chenyukang Jan 2, 2025
84a1940
Merge pull request #433 from chenyukang/fix-private-channel-panic
quake Jan 2, 2025
c232517
Merge branch 'develop' into add-custom-hops
chenyukang Jan 2, 2025
a3a1802
fix typo
chenyukang Jan 2, 2025
de1b976
fix: inbound channel actor name
quake Jan 2, 2025
d8c824b
fix hop hint map and add tests
chenyukang Jan 2, 2025
31bbf59
fix comments
chenyukang Jan 2, 2025
381419c
fix comments for route to self
chenyukang Jan 2, 2025
125c464
Merge pull request #439 from quake/quake/fix-channel-actor-name
chenyukang Jan 2, 2025
ebd55d7
Panick the whole program when actor panick
contrun Jan 2, 2025
363e031
Merge pull request #435 from contrun/panic-the-whole-program-when-act…
quake Jan 2, 2025
e8c8d51
chore: unify the alias / node_name filed
quake Jan 2, 2025
d072c85
chore: unify the public_key / node_id filed
quake Jan 2, 2025
b530d45
chore: update rpc doc
quake Jan 2, 2025
3bd09c6
chore: remove peer_id from node_info rpc
quake Jan 2, 2025
e10997f
feat: add default funding lock script
quake Jan 3, 2025
7d6abe5
Merge pull request #441 from quake/quake/fix-node-info-rpc
quake Jan 3, 2025
0893648
chore: tweak gossip related log level
quake Jan 3, 2025
9fe28dc
Merge pull request #444 from quake/quake/gossip-log-level
chenyukang Jan 3, 2025
f172215
Remove last cursor in gossip
contrun Dec 31, 2024
097aed2
Fix a subtle bug because nullify messages_to_be_saved too soon
contrun Jan 1, 2025
8660939
Fix broadcast message order
contrun Dec 30, 2024
03e2ae6
Cache channel transactions and timestamps
contrun Jan 1, 2025
ee6923f
Encapsulate chain operations with cache
contrun Jan 2, 2025
e2acdb5
Revert "Encapsulate chain operations with cache"
contrun Jan 2, 2025
50f1ccf
Revert "Cache channel transactions and timestamps"
contrun Jan 2, 2025
b6bbf40
Simplify prune_messages_to_be_saved
contrun Jan 2, 2025
95cf1f8
Add on chain info to messages_to_be_saved
contrun Jan 2, 2025
3b371bc
Check message existance before insert to messages_to_be_saved
contrun Jan 3, 2025
9c6e655
use SliceRandom::choose for adjust target
chenyukang Jan 2, 2025
57d4c01
Merge pull request #442 from quake/quake/funding-address-rpc
quake Jan 3, 2025
eb99b37
Merge pull request #432 from chenyukang/add-custom-hops
quake Jan 3, 2025
5649b07
Store our own broadcast messages directly
contrun Jan 4, 2025
a82e613
Fix tokio runtime panic
contrun Jan 6, 2025
17d4a19
chore: make code more readable
contrun Jan 6, 2025
0d8bf51
Save vector of messages to gossip store
contrun Jan 6, 2025
c046a60
Remove broadcasting messages in ExtendedGossipMessageStoreActor
contrun Jan 6, 2025
d6f8ee9
Use block hash instead of block number for funding tx
contrun Jan 6, 2025
631ee1e
Use only block hash to get block timestamp
contrun Jan 6, 2025
38ab750
Don't panic when failed to get block timestamp
contrun Jan 7, 2025
b972450
Merge pull request #434 from contrun/cache-chain-actor-results
quake Jan 7, 2025
9ec1924
fix remote commitment points panic
chenyukang Jan 7, 2025
b6a8d0d
Merge pull request #449 from chenyukang/yukang-fix-remote-commitment-…
quake Jan 7, 2025
93df639
Add retryable forwarding tlc (#440)
chenyukang Jan 7, 2025
3d4093c
chore: update readme
quake Jan 7, 2025
8b957e5
Merge pull request #451 from quake/quake/readme-update-0.1.0
quake Jan 7, 2025
7864f88
chore: upgrade to 0.2.0
quake Jan 7, 2025
81014d3
Merge pull request #452 from quake/quake/upgrade-0.2.0
quake Jan 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ jobs:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
profile: [dev, release]
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'
steps:
- uses: actions/checkout@v2
- uses: dsherret/rust-toolchain-file@v1
Expand Down
20 changes: 15 additions & 5 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
fi

# Prebuild the program so that we can run the following script faster
export FNN="$(cargo build --message-format=json-render-diagnostics | jq -js '[.[] | select(.reason == "compiler-artifact") | select(.executable != null)] | last | .executable')"
cargo build
cd tests/deploy/udt-init && cargo build && cd -
if [ ${{ matrix.workflow }} = "router-pay" ]; then
export START_BOOTNODE=y
Expand All @@ -81,9 +81,9 @@ jobs:
if [ -f $port_file ]; then
break
else
retry_count=$((retry_count + 1))
echo "File $port_file not found. Retrying in 2 seconds..."
sleep 2
retry_count=$((retry_count + 1))
fi
done

Expand All @@ -92,11 +92,15 @@ jobs:
ports+=("$line")
done < ./tests/nodes/.ports

for i in {1..20}; do
echo "Checking if all ports are open ... ${ports[@]}"

try_number=60
count=0
while [ $count -lt $try_number ]; do
all_open=true
for port in $ports; do
echo "Checking port $port"
for port in "${ports[@]}"; do
if ! nc -z 127.0.0.1 $port; then
echo "Port $port is not open yet ..."
all_open=false
break
fi
Expand All @@ -105,11 +109,17 @@ jobs:
echo "All ports are open now ..."
break
else
count=$((count + 1))
if [ $count -eq $try_number ]; then
echo "Reached maximum number of tries ($try_number), exiting with status 1"
exit 1
fi
echo "Not all ports are open, waiting 3 seconds before retrying"
sleep 3
fi
done


(cd ./tests/bruno; npm exec -- @usebruno/[email protected] run e2e/${{ matrix.workflow }} -r --env ${{ matrix.test_env }} ${{ matrix.extra_bru_args }} ) &

# -n means we will exit when any of the background processes exits.
Expand Down
24 changes: 23 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "fnn"
version = "0.1.0"
version = "0.2.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
Expand Down Expand Up @@ -63,6 +63,7 @@ tokio = { version = "1", features = [
indicatif = "0.16"
console = "0.15.8"
bincode = "1.3.3"
num_enum = "0.7.3"

[features]
default = []
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ GRCOV_EXCL_LINE = ^\s*(\})*(\))*(;)*$$|\s*((log::|tracing::)?(trace|debug|info|w

.PHONY: test
test:
RUST_LOG=off cargo nextest run --no-fail-fast
TEST_TEMP_RETAIN=1 RUST_LOG=off cargo nextest run --no-fail-fast

.PHONY: clippy
clippy:
Expand Down Expand Up @@ -55,7 +55,7 @@ coverage: coverage-run-unittests coverage-collect-data coverage-generate-report

.PHONY: gen-rpc-doc
gen-rpc-doc:
cargo install fiber-rpc-gen
$(if $(shell command -v fiber-rpc-gen),,cargo install fiber-rpc-gen --force)
fiber-rpc-gen ./src/rpc
if grep -q "TODO: add desc" ./src/rpc/README.md; then \
echo "Warning: There are 'TODO: add desc' in src/rpc/README.md, please add documentation comments to resolve them"; \
Expand Down
22 changes: 17 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,13 @@ Fiber Network Node (FNN) is a reference implementation of Fiber Network Protocol
* Payments over fiber channel (via [fiber-scripts])
* Cross-chain asset transfer

Please note that the implementation is still under development, there are two major features not implemented yet:

* Watchtower service to monitor and revoke on-chain transactions
* Multihop payments
Please note that the implementation is still under development, there are many limitations and known issues, you may find or report them in the issue tracker.

But as a prototype, it's a good starting point for developers to understand the FNP and try out the integration with their applications.

## Build and run a testnet node

1. Build the project:
1. Build the project, if you are using the released binary, you can skip this step:

```
cargo build --release
Expand All @@ -26,6 +23,7 @@ cargo build --release

```
mkdir /folder-to/my-fnn
// if you are using the released binary, replace target/release/fnn with the path of released binary
cp target/release/fnn /folder-to/my-fnn
cp config/testnet/config.yml /folder-to/my-fnn
cd /folder-to/my-fnn
Expand All @@ -46,6 +44,20 @@ head -n 1 ./ckb/exported-key > ./ckb/key
RUST_LOG=info ./fnn -c config.yml -d .
```

## Testnet compatibility issues

The current state of the FNN is not stable, the protocol and storage format may changed between versions. We strongly recommend you to close the channel before upgrading the node, otherwise, you may lose the channel state:

1. [list all channels](./src/rpc/README.md#channel-list_channels) and [close](./src/rpc/README.md#channel-shutdown_channel) them via RPC.

2. Stop the node and remove the storage of the node:

```
rm -rf /folder-to/my-fnn/fiber/store
```

3. Repalce the binary with the new version and start the node again.

## Documentation

* [Light Paper](./docs/light-paper.md)
Expand Down
14 changes: 11 additions & 3 deletions docs/specs/p2p-message.md
Original file line number Diff line number Diff line change
Expand Up @@ -287,11 +287,19 @@ After establishing a channel, nodes can perform payment operations by sending Ad
| | | |
| |--(2)---- commitment_signed -->| |
| |<-(3)---- revoke_and_ack -----| |
| | | |
| |<-(4)---- commitment_signed ---| |
| |--(5)---- revoke_and_ack ---->| |
| | | |
| A | | B |
| |<-(4)---- remove_tlc -----| |
| | | |
| |<-(5)---- commitment_signed ---| |
| |--(6)---- revoke_and_ack ---->| |
| |<-(6)---- remove_tlc -----| |
| | | |
| |<-(7)---- commitment_signed ---| |
| |--(8)---- revoke_and_ack ---->| |
| | | |
| |--(9)---- commitment_signed -->| |
| |<-(10)---- revoke_and_ack ----| |
+-------+ +-------+
```

Expand Down
4 changes: 2 additions & 2 deletions src/actors.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use ractor::{async_trait as rasync_trait, Actor, ActorProcessingErr, ActorRef, SupervisionEvent};
use tokio_util::{sync::CancellationToken, task::TaskTracker};
use tracing::{debug, error};
use tracing::debug;

/// A root actor that listens for cancellation token and stops all sub actors (those who started by spawn_linked).
pub struct RootActor;
Expand Down Expand Up @@ -69,7 +69,7 @@ impl Actor for RootActor {
}
},
SupervisionEvent::ActorPanicked(who, err) => {
error!("Actor unexpectedly panicked (id: {:?}): {:?}", who, err);
panic!("Actor unexpectedly panicked (id: {:?}): {:?}", who, err);
}
_ => {}
}
Expand Down
11 changes: 3 additions & 8 deletions src/ckb/actor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ use ractor::{
concurrency::{sleep, Duration},
Actor, ActorProcessingErr, ActorRef, RpcReplyPort,
};
use tracing::debug;

use crate::ckb::contracts::{get_script_by_contract, Contract};

Expand Down Expand Up @@ -81,7 +82,7 @@ impl Actor for CkbChainActor {

async fn pre_start(
&self,
myself: ActorRef<Self::Msg>,
_myself: ActorRef<Self::Msg>,
config: Self::Arguments,
) -> Result<Self::State, ActorProcessingErr> {
let secret_key = config.read_secret_key()?;
Expand All @@ -90,12 +91,6 @@ impl Actor for CkbChainActor {
let pub_key_hash = ckb_hash::blake2b_256(pub_key.serialize());
let funding_source_lock_script =
get_script_by_contract(Contract::Secp256k1Lock, &pub_key_hash[0..20]);
tracing::info!(
"[{}] funding lock args: {}",
myself.get_name().unwrap_or_default(),
funding_source_lock_script.args()
);

Ok(CkbChainState {
config,
secret_key,
Expand Down Expand Up @@ -180,7 +175,7 @@ impl Actor for CkbChainActor {
},
reply_port,
) => {
tracing::info!(
debug!(
"[{}] trace transaction {} with {} confs",
myself.get_name().unwrap_or_default(),
tx_hash,
Expand Down
17 changes: 15 additions & 2 deletions src/ckb/config.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
use ckb_hash::blake2b_256;
use clap_serde_derive::ClapSerde;
use secp256k1::SecretKey;
use secp256k1::{Secp256k1, SecretKey};
use serde_with::serde_as;
use std::{
io::{ErrorKind, Read},
Expand All @@ -13,12 +14,14 @@ use ckb_types::prelude::Pack;
use ckb_types::H256;
use ckb_types::{
core::DepType,
packed::{CellDep, OutPoint},
packed::{CellDep, OutPoint, Script},
};
use clap_serde_derive::clap::{self};
use molecule::prelude::Entity;
use serde::{Deserialize, Serialize};

use super::contracts::{get_script_by_contract, Contract};

pub const DEFAULT_CKB_BASE_DIR_NAME: &str = "ckb";
const DEFAULT_CKB_NODE_RPC_URL: &str = "http://127.0.0.1:8114";

Expand Down Expand Up @@ -101,6 +104,16 @@ impl CkbConfig {
std::io::Error::new(ErrorKind::InvalidData, "invalid secret key data").into()
})
}

pub fn get_default_funding_lock_script(&self) -> crate::Result<Script> {
let secret_key = self.read_secret_key()?;
let secp = Secp256k1::new();
let pubkey_hash = blake2b_256(secret_key.public_key(&secp).serialize());
Ok(get_script_by_contract(
Contract::Secp256k1Lock,
&pubkey_hash[0..20],
))
}
}

serde_with::serde_conv!(
Expand Down
1 change: 1 addition & 0 deletions src/ckb/tests/test_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -472,6 +472,7 @@ impl Actor for MockChainActor {
}
}
TraceTx(tx, reply_port) => {
debug!("Tracing transaction: {:?}", &tx);
match state.tx_status.get(&tx.tx_hash).cloned() {
Some((tx_view, status)) => {
reply_trace_tx(Some(tx_view), status, reply_port);
Expand Down
Loading
Loading