├── .gitignore ├── .solcover.js ├── .soliumignore ├── .soliumrc.json ├── .travis.yml ├── LICENSE.md ├── README.md ├── audits ├── v3.0 │ ├── AUDIT_SPEC.md │ ├── Decenter Security Audit for Wyvern Protocol.pdf │ └── SOLIDIFIED.md └── v3.1 │ └── AUDIT_SPEC.md ├── config.json ├── contracts ├── Migrations.sol ├── StaticMarket.sol ├── TestAuthenticatedProxy.sol ├── TestERC1155.sol ├── TestERC1271.sol ├── TestERC20.sol ├── TestERC721.sol ├── TestSmartContractWallet.sol ├── WyvernAtomicizer.sol ├── WyvernExchange.sol ├── WyvernRegistry.sol ├── WyvernStatic.sol ├── exchange │ ├── Exchange.sol │ └── ExchangeCore.sol ├── lib │ ├── ArrayUtils.sol │ ├── EIP1271.sol │ ├── EIP712.sol │ ├── ReentrancyGuarded.sol │ └── StaticCaller.sol ├── registry │ ├── AuthenticatedProxy.sol │ ├── OwnableDelegateProxy.sol │ ├── ProxyRegistry.sol │ ├── ProxyRegistryInterface.sol │ ├── TokenRecipient.sol │ └── proxy │ │ ├── LICENSE │ │ ├── OwnedUpgradeabilityProxy.sol │ │ ├── OwnedUpgradeabilityStorage.sol │ │ └── Proxy.sol └── static │ ├── StaticERC1155.sol │ ├── StaticERC20.sol │ ├── StaticERC721.sol │ └── StaticUtil.sol ├── migrations ├── 1_initial_migration.js ├── 2_misc.js ├── 3_wyvern_registry_and_exchange.js └── config.js ├── misc └── test.js ├── package.json ├── sample.env ├── scripts ├── analyze.sh ├── compile.sh ├── coverage.sh ├── flatten.sh ├── lint.sh ├── test.sh ├── testrpc.sh ├── travis_coverage.sh ├── travis_prep.sh └── travis_test.sh ├── test ├── 1-wyvern-atomicizer.js ├── 2-wyvern-static.js ├── 3-wyvern-registry.js ├── 4-wyvern-exchange-basics.js ├── 5-wyvern-exchange-matching.js ├── 6-wyvern-exchange-matching-erc1155.js ├── 7-static-market-matching.js ├── eip712.js └── util.js ├── truffle.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/.gitignore -------------------------------------------------------------------------------- /.solcover.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/.solcover.js -------------------------------------------------------------------------------- /.soliumignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | -------------------------------------------------------------------------------- /.soliumrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/.soliumrc.json -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/.travis.yml -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/LICENSE.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/README.md -------------------------------------------------------------------------------- /audits/v3.0/AUDIT_SPEC.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/audits/v3.0/AUDIT_SPEC.md -------------------------------------------------------------------------------- /audits/v3.0/Decenter Security Audit for Wyvern Protocol.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/audits/v3.0/Decenter Security Audit for Wyvern Protocol.pdf -------------------------------------------------------------------------------- /audits/v3.0/SOLIDIFIED.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/audits/v3.0/SOLIDIFIED.md -------------------------------------------------------------------------------- /audits/v3.1/AUDIT_SPEC.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/audits/v3.1/AUDIT_SPEC.md -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/config.json -------------------------------------------------------------------------------- /contracts/Migrations.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/Migrations.sol -------------------------------------------------------------------------------- /contracts/StaticMarket.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/StaticMarket.sol -------------------------------------------------------------------------------- /contracts/TestAuthenticatedProxy.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/TestAuthenticatedProxy.sol -------------------------------------------------------------------------------- /contracts/TestERC1155.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/TestERC1155.sol -------------------------------------------------------------------------------- /contracts/TestERC1271.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/TestERC1271.sol -------------------------------------------------------------------------------- /contracts/TestERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/TestERC20.sol -------------------------------------------------------------------------------- /contracts/TestERC721.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/TestERC721.sol -------------------------------------------------------------------------------- /contracts/TestSmartContractWallet.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/TestSmartContractWallet.sol -------------------------------------------------------------------------------- /contracts/WyvernAtomicizer.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/WyvernAtomicizer.sol -------------------------------------------------------------------------------- /contracts/WyvernExchange.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/WyvernExchange.sol -------------------------------------------------------------------------------- /contracts/WyvernRegistry.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/WyvernRegistry.sol -------------------------------------------------------------------------------- /contracts/WyvernStatic.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/WyvernStatic.sol -------------------------------------------------------------------------------- /contracts/exchange/Exchange.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/exchange/Exchange.sol -------------------------------------------------------------------------------- /contracts/exchange/ExchangeCore.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/exchange/ExchangeCore.sol -------------------------------------------------------------------------------- /contracts/lib/ArrayUtils.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/lib/ArrayUtils.sol -------------------------------------------------------------------------------- /contracts/lib/EIP1271.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/lib/EIP1271.sol -------------------------------------------------------------------------------- /contracts/lib/EIP712.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/lib/EIP712.sol -------------------------------------------------------------------------------- /contracts/lib/ReentrancyGuarded.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/lib/ReentrancyGuarded.sol -------------------------------------------------------------------------------- /contracts/lib/StaticCaller.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/lib/StaticCaller.sol -------------------------------------------------------------------------------- /contracts/registry/AuthenticatedProxy.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/registry/AuthenticatedProxy.sol -------------------------------------------------------------------------------- /contracts/registry/OwnableDelegateProxy.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/registry/OwnableDelegateProxy.sol -------------------------------------------------------------------------------- /contracts/registry/ProxyRegistry.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/registry/ProxyRegistry.sol -------------------------------------------------------------------------------- /contracts/registry/ProxyRegistryInterface.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/registry/ProxyRegistryInterface.sol -------------------------------------------------------------------------------- /contracts/registry/TokenRecipient.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/registry/TokenRecipient.sol -------------------------------------------------------------------------------- /contracts/registry/proxy/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/registry/proxy/LICENSE -------------------------------------------------------------------------------- /contracts/registry/proxy/OwnedUpgradeabilityProxy.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/registry/proxy/OwnedUpgradeabilityProxy.sol -------------------------------------------------------------------------------- /contracts/registry/proxy/OwnedUpgradeabilityStorage.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/registry/proxy/OwnedUpgradeabilityStorage.sol -------------------------------------------------------------------------------- /contracts/registry/proxy/Proxy.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/registry/proxy/Proxy.sol -------------------------------------------------------------------------------- /contracts/static/StaticERC1155.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/static/StaticERC1155.sol -------------------------------------------------------------------------------- /contracts/static/StaticERC20.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/static/StaticERC20.sol -------------------------------------------------------------------------------- /contracts/static/StaticERC721.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/static/StaticERC721.sol -------------------------------------------------------------------------------- /contracts/static/StaticUtil.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/contracts/static/StaticUtil.sol -------------------------------------------------------------------------------- /migrations/1_initial_migration.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/migrations/1_initial_migration.js -------------------------------------------------------------------------------- /migrations/2_misc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/migrations/2_misc.js -------------------------------------------------------------------------------- /migrations/3_wyvern_registry_and_exchange.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/migrations/3_wyvern_registry_and_exchange.js -------------------------------------------------------------------------------- /migrations/config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/migrations/config.js -------------------------------------------------------------------------------- /misc/test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/misc/test.js -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/package.json -------------------------------------------------------------------------------- /sample.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/sample.env -------------------------------------------------------------------------------- /scripts/analyze.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/scripts/analyze.sh -------------------------------------------------------------------------------- /scripts/compile.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/scripts/compile.sh -------------------------------------------------------------------------------- /scripts/coverage.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/scripts/coverage.sh -------------------------------------------------------------------------------- /scripts/flatten.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/scripts/flatten.sh -------------------------------------------------------------------------------- /scripts/lint.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/scripts/lint.sh -------------------------------------------------------------------------------- /scripts/test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm -rf build 4 | truffle test $1 5 | -------------------------------------------------------------------------------- /scripts/testrpc.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/scripts/testrpc.sh -------------------------------------------------------------------------------- /scripts/travis_coverage.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -xe 4 | 5 | yarn coverage 6 | sleep 1 7 | exit 0 8 | -------------------------------------------------------------------------------- /scripts/travis_prep.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/scripts/travis_prep.sh -------------------------------------------------------------------------------- /scripts/travis_test.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/scripts/travis_test.sh -------------------------------------------------------------------------------- /test/1-wyvern-atomicizer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/test/1-wyvern-atomicizer.js -------------------------------------------------------------------------------- /test/2-wyvern-static.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/test/2-wyvern-static.js -------------------------------------------------------------------------------- /test/3-wyvern-registry.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/test/3-wyvern-registry.js -------------------------------------------------------------------------------- /test/4-wyvern-exchange-basics.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/test/4-wyvern-exchange-basics.js -------------------------------------------------------------------------------- /test/5-wyvern-exchange-matching.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/test/5-wyvern-exchange-matching.js -------------------------------------------------------------------------------- /test/6-wyvern-exchange-matching-erc1155.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/test/6-wyvern-exchange-matching-erc1155.js -------------------------------------------------------------------------------- /test/7-static-market-matching.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/test/7-static-market-matching.js -------------------------------------------------------------------------------- /test/eip712.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/test/eip712.js -------------------------------------------------------------------------------- /test/util.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/test/util.js -------------------------------------------------------------------------------- /truffle.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/truffle.js -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wyvernprotocol/wyvern-v3/HEAD/yarn.lock --------------------------------------------------------------------------------