Skip to content

Commit

Permalink
Merge branch 'main' into zones
Browse files Browse the repository at this point in the history
# Conflicts:
#	reference/shim/Shim.sol
#	test/foundry/FulfillBasicOrderTest.t.sol
#	test/index.js
  • Loading branch information
ryanio committed Jun 10, 2022
2 parents c18aa30 + 8b507fa commit 8b2f469
Show file tree
Hide file tree
Showing 136 changed files with 12,430 additions and 6,224 deletions.
8 changes: 7 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ jobs:
with:
node-version: ${{ matrix.node-version }}
- run: yarn install
- run: yarn build
- run: yarn test

reference-test:
Expand All @@ -76,6 +77,8 @@ jobs:
with:
node-version: ${{ matrix.node-version }}
- run: yarn install
- run: yarn build
- run: yarn build:ref
- run: yarn test:ref

forge-lite:
Expand Down Expand Up @@ -119,7 +122,7 @@ jobs:
- name: Precompile reference using 0.8.7 and via-ir=false
run: FOUNDRY_PROFILE=reference forge build

- name: Precompile optimized using 0.8.13 and via-ir=true
- name: Precompile optimized using 0.8.14 and via-ir=true
run: FOUNDRY_PROFILE=optimized forge build

- name: Run tests
Expand All @@ -140,6 +143,7 @@ jobs:
with:
node-version: ${{ matrix.node-version }}
- run: yarn install
- run: yarn build
- run: yarn coverage
- uses: VeryGoodOpenSource/very_good_coverage@v1
with:
Expand All @@ -164,6 +168,8 @@ jobs:
with:
node-version: ${{ matrix.node-version }}
- run: yarn install
- run: yarn build
- run: yarn build:ref
- run: yarn coverage:ref
- uses: VeryGoodOpenSource/very_good_coverage@v1
with:
Expand Down
2 changes: 1 addition & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ node_modules
artifacts
cache
coverage*
gasReporterOutput.json
gasReporterOutput.json
71 changes: 71 additions & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Seaport Contributors

Contributor | ENS
------------------------------ | ------------------------------
0age | `0age.eth`
d1ll0n | `d1ll0n.eth`
transmissions11 | `t11s.eth`
Kartik | `slokh.eth`
LeFevre | `lefevre.eth`
Joseph Schiarizzi | `CupOJoseph.eth`
Aspyn Palatnick | `stuckinaboot.eth`
James Wenzel | `emo.eth`
Stephan Min | `stephanm.eth`
Ryan Ghods | `ralxz.eth`
0xPatissier |
pcaversaccio |
David Eiber |
hack3r-0m | `hack3r-0m.eth`
csanuragjain |
Diego Estevez | `antidiego.eth`
Chomtana | `chomtana.eth`
Saw-mon and Natalie | `sawmonandnatalie.eth`
0xBeans | `0xBeans.eth`
0x4non | `punkdev.eth`
Laurence E. Day | `norsefire.eth`
vectorized.eth | `vectorized.eth`
karmacoma | `karmacoma.eth`
horsefacts | `horsefacts.eth`
UncarvedBlock | `uncarvedblock.eth`
Zoraiz Mahmood | `zorz.eth`
William Poulin | `wpoulin.eth`
Rajiv Patel-O'Connor | `rajivpoc.eth`
tserg | `tserg.eth`
cygaar | `cygaar.eth`
Meta0xNull | `meta0xnull.eth`
sach1r0 |
gpersoon | `gpersoon.eth`
Matt Solomon | `msolomon.eth`
twojoy0 |
Weikang Song | `weikangs.eth`
zer0dot | `zer0dot.eth`
Mudit Gupta | `mudit.eth`
ori_dabush |
leonardoalt | `leoalt.eth`
cmichel | `cmichel.eth`
Daniel Gelfand |
PraneshASP | `pranesh.eth`
JasperAlexander | `jasperalexander.eth`
okkothejawa |
FlameHorizon |
vdrg |
Ellahi | `ellahi.eth`
zaz | `1zaz1.eth`
berndartmueller | `berndartmueller.eth`
dmfxyz | `dmfxyz.eth`
daltoncoder | `dontkillrobots.eth`
0xf4ce | `0xf4ce.eth`
phaze | `phaze.eth`
hrkrshnn | `hrkrshnn.eth`
axic | `axic.eth`
leastwood | `leastwood.eth`
0xsanson | `sanson.eth`
blockdev | `blockd3v.eth`
dmitriia |
bokeh-eth |
fiveoutofnine | `fiveoutofnine.eth`
asutorufos |
rfart(rfa) |
shuklaayush | `shuklaayush.eth`
Riley Holterhus |
big-tech-sux |
40 changes: 39 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ Seaport is a new marketplace protocol for safely and efficiently buying and sell

- [Background](#background)
- [Deployments](#deployments)
- [Diagram](#diagram)
- [Install](#install)
- [Usage](#usage)
- [Audits](#audits)
Expand Down Expand Up @@ -40,6 +41,42 @@ Conduit Controller deployment addresses:
| Goerli | [0x00000000006cE100a8b5eD8eDf18ceeF9e500697](https://goerli.etherscan.io/address/0x00000000006ce100a8b5ed8edf18ceef9e500697) |
| Rinkeby | [0x00000000006cE100a8b5eD8eDf18ceeF9e500697](https://rinkeby.etherscan.io/address/0x00000000006ce100a8b5ed8edf18ceef9e500697) |

## Diagram

```mermaid
graph TD
Offer & Consideration --> Order
zone & conduitKey --> Order
subgraph Seaport[ ]
Order --> Fulfill & Match
Order --> Validate & Cancel
end
Validate --> Verify
Cancel --> OrderStatus
Fulfill & Match --> OrderCombiner --> OrderFulfiller
OrderCombiner --> BasicOrderFulfiller --> OrderValidator
OrderCombiner --> FulfillmentApplier
OrderFulfiller --> CriteriaResolution
OrderFulfiller --> AmountDeriver
OrderFulfiller --> OrderValidator
OrderValidator --> ZoneInteraction
OrderValidator --> Executor --> TokenTransferrer
Executor --> Conduit --> TokenTransferrer
Executor --> Verify
subgraph Verifiers[ ]
Verify --> Time & Signature & OrderStatus
end
```

For a more thorough flowchart see [Seaport diagram](./diagrams/Seaport.drawio.svg).

## Install

To install dependencies and compile contracts:
Expand Down Expand Up @@ -98,7 +135,7 @@ forge install

To precompile contracts:

The optimized contracts are compiled using the IR pipeline, which can take a long time to compile. By default, the differential test suite depends deploys precompiled versions of both the optimized and reference contracts. Precompilation can be done by specifying specific Foundry profiles.
The optimized contracts are compiled using the IR pipeline, which can take a long time to compile. By default, the differential test suite deploys precompiled versions of both the optimized and reference contracts. Precompilation can be done by specifying specific Foundry profiles.

```bash
FOUNDRY_PROFILE=optimized forge build
Expand Down Expand Up @@ -171,3 +208,4 @@ When making a pull request, ensure that:
## License

[MIT](LICENSE) Copyright 2022 Ozone Networks, Inc.

1 change: 1 addition & 0 deletions config/.solcover.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ module.exports = {
"reference/lib/ReferenceTokenTransferrer.sol",
"test/EIP1271Wallet.sol",
"test/ExcessReturnDataRecipient.sol",
"test/ERC1155BatchRecipient.sol",
"test/Reenterer.sol",
"test/TestERC1155.sol",
"test/TestERC20.sol",
Expand Down
10 changes: 5 additions & 5 deletions contracts/Seaport.sol
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// SPDX-License-Identifier: MIT
pragma solidity 0.8.13;
pragma solidity >=0.8.13;

import { Consideration } from "./lib/Consideration.sol";

Expand All @@ -8,7 +8,7 @@ import { Consideration } from "./lib/Consideration.sol";
* @author 0age
* @custom:coauthor d1ll0n
* @custom:coauthor transmissions11
* @custom:version 1
* @custom:version 1.1
* @notice Seaport is a generalized ETH/ERC20/ERC721/ERC1155 marketplace. It
* minimizes external calls to the greatest extent possible and provides
* lightweight methods for common routes as well as more flexible
Expand Down Expand Up @@ -37,9 +37,9 @@ contract Seaport is Consideration {
function _name() internal pure override returns (string memory) {
// Return the name of the contract.
assembly {
mstore(0, 0x20)
mstore(0x27, 0x07536561706f7274)
return(0, 0x60)
mstore(0x20, 0x20)
mstore(0x47, 0x07536561706f7274)
return(0x20, 0x60)
}
}

Expand Down
Loading

0 comments on commit 8b2f469

Please sign in to comment.