diff --git a/README.md b/README.md index 4abd7f8..10322d1 100644 --- a/README.md +++ b/README.md @@ -145,11 +145,13 @@ struct BatchCompact { } // A multichain compact can declare tokens and amounts to allocate from multiple chains, -// each designated by their chainId. Any allocated tokens must designate the Multichain -// scope. Each allocation may designate a unique arbiter for the chain in question. -struct Allocation { +// each designated by their chainId. Any allocated tokens on an exogenous domain (e.g. all +// but the first segment) must designate the Multichain scope. Each segment may designate +// a unique arbiter for the chain in question. Note that the witness data is distinct for +// each segment, but all segments must share the same EIP-712 witness typestring. +struct Segment { address arbiter; // The account tasked with verifying and submitting the claim. - uint256 chainId; + uint256 chainId; // The chainId where the tokens are located. uint256[2][] idsAndAmounts; // The allocated token IDs and amounts. // Optional witness may follow. } @@ -162,7 +164,7 @@ struct MultichainCompact { address sponsor; // The account to source the tokens from. uint256 nonce; // A parameter to enforce replay protection, scoped to allocator. uint256 expires; // The time at which the claim expires. - Allocation[] allocations; + Segment[] segments; // Arbiter, chainId, ids & amounts, and witness for each chain. } ```