Skip to content
This repository was archived by the owner on Dec 27, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
3109829
Add npm package
LayneHaber Apr 13, 2021
0741ded
Remove all lock service
LayneHaber Apr 13, 2021
8fcd7ab
Added getNextNonceForUpdate
That3Percent Apr 13, 2021
8b8479d
Merge pull request #562 from connext/zac/lock-free
LayneHaber Apr 13, 2021
431682b
Merge pull request #561 from connext/556-1-remove-lock
LayneHaber Apr 13, 2021
62fcc52
Added test cases for getNextNonceForUpdate
That3Percent Apr 13, 2021
dfb5e7b
Merge pull request #563 from connext/zac/lock-free
LayneHaber Apr 13, 2021
7041541
Merge branch 'main' into 556-no-lock
LayneHaber Apr 14, 2021
668fa18
Add new error
LayneHaber Apr 14, 2021
148942c
Add transfer creation utilities
LayneHaber Apr 14, 2021
bf07255
Return tree from verify
LayneHaber Apr 14, 2021
8f31042
WIP queue changes
LayneHaber Apr 14, 2021
8c912c7
Remove unused utility
LayneHaber Apr 15, 2021
32ce9bc
Started queue for serializing updates
That3Percent Apr 19, 2021
4a71614
Merge branch 'main' into 556-no-lock
LayneHaber Apr 19, 2021
9b8ded5
Merge branch '556-no-lock' into zac/queue
LayneHaber Apr 19, 2021
3adb29b
Queue update loop
That3Percent Apr 19, 2021
b542e1e
SerializableQueue correctly resolves/rejects/ignores updates
That3Percent Apr 19, 2021
36aebb6
Fix build
LayneHaber Apr 19, 2021
265b1a0
Merge branch 'zac/queue' of https://github.com/connext/vector into za…
LayneHaber Apr 19, 2021
5093bbe
SerializedQueue: Added tests
That3Percent Apr 19, 2021
66c9eec
whitespace
LayneHaber Apr 20, 2021
9bb3b8b
SerializedQueue: Do not validate transitions in queue
That3Percent Apr 20, 2021
069edb2
SerializedQueue: More tests
That3Percent Apr 20, 2021
97c209f
Use QueuedUpdateErrors
LayneHaber Apr 21, 2021
d274fd8
Default type to any
LayneHaber Apr 21, 2021
a1efcf6
Add persist utilities
LayneHaber Apr 21, 2021
ebc41b2
Add logic for self updates
LayneHaber Apr 21, 2021
2e216a5
Remove store calls from sync methods, remove message sending from inb…
LayneHaber Apr 21, 2021
b8232b4
Add other update handling
LayneHaber Apr 21, 2021
e820ec5
Minor types changes
LayneHaber Apr 21, 2021
f464c67
Merge pull request #570 from connext/zac/queue
LayneHaber Apr 21, 2021
d839bb9
Merge branch 'main' into 556-no-lock
LayneHaber Apr 21, 2021
842d3e1
Merge branch '556-no-lock' into 556-self-other-update
LayneHaber Apr 21, 2021
30a8a18
whitespace
LayneHaber Apr 21, 2021
dcd287b
OtherUpdate types changes
LayneHaber Apr 21, 2021
75780e8
Queue typing
LayneHaber Apr 22, 2021
b2779e6
Fix tests for updated typings
LayneHaber Apr 22, 2021
7f2edd3
comment out/skip unit tests temporarily
LayneHaber Apr 22, 2021
a340c8a
Integration tests passing
LayneHaber Apr 22, 2021
923729b
Remove server node unit tests
LayneHaber Apr 22, 2021
d9f1b41
Merge pull request #578 from connext/556-self-other-update
LayneHaber Apr 22, 2021
ee4b5d8
Merge branch 'main' into 556-no-lock
LayneHaber Apr 22, 2021
9f370dd
WIP: add protocol retry helper
LayneHaber Apr 22, 2021
f06072d
Merge branch '575-routing-complete-event' into 556-no-lock
LayneHaber Apr 22, 2021
d8a7829
Add retry logic
LayneHaber Apr 22, 2021
5eb657e
Cleanup restore messaging flow
LayneHaber Apr 22, 2021
dd6833a
Merge pull request #579 from connext/556-restore-no-lock
LayneHaber Apr 22, 2021
eb5257d
Merge branch 'main' into 556-no-lock
LayneHaber Apr 22, 2021
0401757
Merge branch '556-no-lock' of https://github.com/connext/vector into …
LayneHaber Apr 22, 2021
ee05d4d
Switch merkle tree libs
LayneHaber Apr 23, 2021
b450593
Switch merkle tree libs
LayneHaber Apr 23, 2021
4103016
Use old tree for proof (temp)
LayneHaber Apr 23, 2021
0bb4911
Remove merkleProofData from updates
LayneHaber Apr 23, 2021
83cc80c
Remove merkle proof data from update details
LayneHaber Apr 23, 2021
767e612
WIP building test
LayneHaber Apr 23, 2021
3ab5895
Tests passing with lib
rhlsthrm Apr 26, 2021
b2c4787
Switched libs
rhlsthrm Apr 26, 2021
67618bc
Properly free
LayneHaber Apr 26, 2021
8dba353
Use connext pkg
LayneHaber Apr 26, 2021
cdee97f
Clean tests
LayneHaber Apr 26, 2021
444af76
Merge branch 'main' into switch-merkle-libs
LayneHaber Apr 26, 2021
a8f74ba
Merge branch 'main' into 556-no-lock
LayneHaber Apr 26, 2021
10b86cb
Merge branch 'switch-merkle-libs' into 556-no-lock
LayneHaber Apr 26, 2021
aa0d979
Fix utility function
LayneHaber Apr 26, 2021
0895316
Add function to update tree
LayneHaber Apr 26, 2021
a235834
Implement tree in memory
LayneHaber Apr 26, 2021
f71afde
Comment out unit tests
LayneHaber Apr 26, 2021
184eaad
Fix removeTransferFromTree function
LayneHaber Apr 26, 2021
029993b
Bump packages
LayneHaber Apr 26, 2021
6bfc11f
Npm i
LayneHaber Apr 26, 2021
6ca61ec
Cleaner `free` usage
LayneHaber Apr 26, 2021
89d95e8
Dont use result type
LayneHaber Apr 26, 2021
99c323a
Fix build
LayneHaber Apr 26, 2021
43a47a5
Update package
LayneHaber Apr 26, 2021
9ecda12
Undo merkle updates in synced channel case
LayneHaber Apr 26, 2021
a08d60c
Fix build
LayneHaber Apr 26, 2021
68af150
Undo merkle root changes if update fails
LayneHaber Apr 26, 2021
11578bd
Latest package
LayneHaber Apr 26, 2021
bc9c579
Fix iframe-app-js build by overriding CRA config, adding wasm-loader
Jannis Apr 26, 2021
228c6ed
Fix null pointer passed to Rust in merkle tree tests
Jannis Apr 26, 2021
2167c06
Merge pull request #586 from connext/jannis/fix-iframe-app-js-build
LayneHaber Apr 26, 2021
90163cc
Merge branch 'switch-merkle-libs' into 556-switch-lib
LayneHaber Apr 26, 2021
d29a00c
Fix a few webpack configs to copy the merkle tree WASM module
Jannis Apr 27, 2021
687d2f5
Merge pull request #587 from connext/jannis/fix-webpack-configs
LayneHaber Apr 27, 2021
24fde19
Fix merkle tree WASM module to be included in router image
Jannis Apr 27, 2021
65360f6
Add (maybe) missing wasm-loader to router webpack config
Jannis Apr 27, 2021
43af0ac
Merge pull request #590 from connext/jannis/fix-wasm-in-router
Apr 27, 2021
4bb3442
By default always immediately free tree
LayneHaber Apr 27, 2021
72f14fd
Build
LayneHaber Apr 27, 2021
85e9b96
look at previous nonce ony
LayneHaber Apr 27, 2021
1677e27
Isolate undoing merkle for outbound into function, add store retrieva…
LayneHaber Apr 27, 2021
bcc4b5f
Annoying EffingScript
LayneHaber Apr 27, 2021
568223e
wen rust
LayneHaber Apr 27, 2021
58cf378
Fix utils tests
LayneHaber Apr 27, 2021
3125380
Remove unused imports
LayneHaber Apr 27, 2021
35da89d
Dont mutate active
LayneHaber Apr 27, 2021
e29a5e8
Revert test changes
LayneHaber Apr 27, 2021
ca96b7e
Fix build
LayneHaber Apr 27, 2021
8ac080f
Use same version
LayneHaber Apr 27, 2021
22494d6
Allow router and server node to be debugged remotely
Jannis Apr 28, 2021
6929777
Add missing nodemon to router and server-node images
Jannis Apr 28, 2021
afc9d3e
Add more missing dependencies for VECTOR_PROD=false
Jannis Apr 28, 2021
e1e2caa
Fix --inspect for TypeScript?
Jannis Apr 28, 2021
524d326
Somehow the inspect was started twice?!
Jannis Apr 28, 2021
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
7 changes: 0 additions & 7 deletions modules/browser-node/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import { constructRpcRequest, hydrateProviders, NatsMessagingService } from "@co
import pino, { BaseLogger } from "pino";

import { BrowserStore } from "./services/store";
import { BrowserLockService } from "./services/lock";
import { DirectProvider, IframeChannelProvider, IRpcChannelProvider } from "./channelProvider";
import { BrowserNodeError } from "./errors";
export * from "./constants";
Expand Down Expand Up @@ -108,11 +107,6 @@ export class BrowserNode implements INodeService {
config.signer.publicIdentifier,
config.logger.child({ module: "BrowserStore" }),
);
const lock = new BrowserLockService(
config.signer.publicIdentifier,
messaging,
config.logger.child({ module: "BrowserLockService" }),
);
const chainService = new VectorChainService(
store,
chainJsonProviders,
Expand Down Expand Up @@ -146,7 +140,6 @@ export class BrowserNode implements INodeService {

const engine = await VectorEngine.connect(
messaging,
lock,
store,
config.signer,
chainService,
Expand Down
64 changes: 0 additions & 64 deletions modules/browser-node/src/services/lock.ts

This file was deleted.

7 changes: 3 additions & 4 deletions modules/contracts/src.ts/services/ethService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@ import {
encodeTransferResolver,
encodeTransferState,
getRandomBytes32,
generateMerkleTreeData,
hashCoreTransferState,
getMerkleProof,
} from "@connext/vector-utils";
import { Signer } from "@ethersproject/abstract-signer";
import { BigNumber } from "@ethersproject/bignumber";
Expand Down Expand Up @@ -1029,15 +1028,15 @@ export class EthereumChainService extends EthereumChainReader implements IVector
}

// Generate merkle root
const { tree } = generateMerkleTreeData(activeTransfers);
const proof = getMerkleProof(activeTransfers, transferIdToDispute);

return this.sendTxWithRetries(
transferState.channelAddress,
transferState.chainId,
TransactionReason.disputeTransfer,
() => {
const channel = new Contract(transferState.channelAddress, VectorChannel.abi, signer);
return channel.disputeTransfer(transferState, tree.getHexProof(hashCoreTransferState(transferState)));
return channel.disputeTransfer(transferState, proof);
},
) as Promise<Result<TransactionResponseWithResult, ChainError>>;
}
Expand Down
30 changes: 17 additions & 13 deletions modules/contracts/src.ts/tests/cmcs/adjudicator.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ import {
hashCoreTransferState,
hashTransferState,
signChannelMessage,
getMerkleProof,
} from "@connext/vector-utils";
import { TransactionReceipt } from "@ethersproject/abstract-provider";
import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
import { AddressZero, HashZero, Zero } from "@ethersproject/constants";
import { Contract } from "@ethersproject/contracts";
Expand Down Expand Up @@ -69,7 +71,7 @@ describe("CMCAdjudicator.sol", async function () {
const verifyTransferDispute = async (cts: FullTransferState, disputeBlockNumber: number) => {
const { timestamp } = await provider.getBlock(disputeBlockNumber);
const transferDispute = await channel.getTransferDispute(cts.transferId);
expect(transferDispute.transferStateHash).to.be.eq(`0x` + hashCoreTransferState(cts).toString("hex"));
expect(transferDispute.transferStateHash).to.be.eq("0x" + hashCoreTransferState(cts).toString("hex"));
expect(transferDispute.isDefunded).to.be.false;
expect(transferDispute.transferDisputeExpiry).to.be.eq(BigNumber.from(timestamp).add(cts.transferTimeout));
};
Expand Down Expand Up @@ -115,14 +117,16 @@ describe("CMCAdjudicator.sol", async function () {
};

// Get merkle proof of transfer
const getMerkleProof = (cts: FullTransferState[] = [transferState], toProve: string = transferState.transferId) => {
const { tree } = generateMerkleTreeData(cts);
return tree.getHexProof(hashCoreTransferState(cts.find((t) => t.transferId === toProve)!));
const getMerkleProofTest = (
cts: FullTransferState[] = [transferState],
toProve: string = transferState.transferId,
) => {
return getMerkleProof(cts, toProve);
};

// Helper to dispute transfers + bring to defund phase
const disputeTransfer = async (cts: FullTransferState = transferState) => {
await (await channel.disputeTransfer(cts, getMerkleProof([cts], cts.transferId))).wait();
await (await channel.disputeTransfer(cts, getMerkleProofTest([cts], cts.transferId))).wait();
};

// Helper to defund channels and verify transfers
Expand Down Expand Up @@ -536,7 +540,7 @@ describe("CMCAdjudicator.sol", async function () {
}
await disputeChannel();
await expect(
channel.disputeTransfer({ ...transferState, channelAddress: getRandomAddress() }, getMerkleProof()),
channel.disputeTransfer({ ...transferState, channelAddress: getRandomAddress() }, getMerkleProofTest()),
).revertedWith("CMCAdjudicator: INVALID_TRANSFER");
});

Expand All @@ -546,7 +550,7 @@ describe("CMCAdjudicator.sol", async function () {
}
await disputeChannel();
await expect(
channel.disputeTransfer({ ...transferState, transferId: getRandomBytes32() }, getMerkleProof()),
channel.disputeTransfer({ ...transferState, transferId: getRandomBytes32() }, getMerkleProofTest()),
).revertedWith("CMCAdjudicator: INVALID_MERKLE_PROOF");
});

Expand All @@ -558,7 +562,7 @@ describe("CMCAdjudicator.sol", async function () {
// the defund phase
const tx = await channel.disputeChannel(channelState, aliceSignature, bobSignature);
await tx.wait();
await expect(channel.disputeTransfer(transferState, getMerkleProof())).revertedWith(
await expect(channel.disputeTransfer(transferState, getMerkleProofTest())).revertedWith(
"CMCAdjudicator: INVALID_PHASE",
);
});
Expand All @@ -569,9 +573,9 @@ describe("CMCAdjudicator.sol", async function () {
}
const longerTimeout = { ...channelState, timeout: "4" };
await disputeChannel(longerTimeout);
const tx = await channel.disputeTransfer(transferState, getMerkleProof());
const tx = await channel.disputeTransfer(transferState, getMerkleProofTest());
await tx.wait();
await expect(channel.disputeTransfer(transferState, getMerkleProof())).revertedWith(
await expect(channel.disputeTransfer(transferState, getMerkleProofTest())).revertedWith(
"CMCAdjudicator: TRANSFER_ALREADY_DISPUTED",
);
});
Expand All @@ -581,7 +585,7 @@ describe("CMCAdjudicator.sol", async function () {
this.skip();
}
await disputeChannel();
const tx = await channel.disputeTransfer(transferState, getMerkleProof());
const tx = await channel.disputeTransfer(transferState, getMerkleProofTest());
const { blockNumber } = await tx.wait();
await verifyTransferDispute(transferState, blockNumber);
});
Expand All @@ -597,14 +601,14 @@ describe("CMCAdjudicator.sol", async function () {
{ ...transferState, transferId: getRandomBytes32() },
{ ...transferState, transferId: getRandomBytes32() },
];
const { root, tree } = generateMerkleTreeData(transfers);
const { root } = generateMerkleTreeData(transfers);

const newState = { ...channelState, merkleRoot: root };
await disputeChannel(newState);

const txs = [];
for (const t of transfers) {
const tx = await channel.disputeTransfer(t, tree.getHexProof(hashCoreTransferState(t)));
const tx = await channel.disputeTransfer(t, getMerkleProof(transfers, t.transferId));
txs.push(tx);
}
const receipts = await Promise.all(txs.map((tx) => tx.wait()));
Expand Down
Loading