Ce référentiel contient les principaux contrats intelligents du protocole Uniswap V3. Pour les contrats de niveau supérieur, consultez le référentiel uniswap-v3-periphery.
Ce référentiel est soumis au programme de bug bounty Uniswap V3, selon les termes définis ici.
Afin de déployer ce code sur un testnet local, vous devez installer le package npm @uniswap/v3-core
et importer le bytecode d'usine situé à @uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json
. Par exemple:
import {
abi as FACTORY_ABI ,
bytecode as FACTORY_BYTECODE ,
} from '@uniswap/v3-core/artifacts/contracts/UniswapV3Factory.sol/UniswapV3Factory.json'
// deploy the bytecode
Cela garantira que vous testez avec le même bytecode que celui déployé sur le réseau principal et les réseaux de test publics, et que tout le code Uniswap interopérera correctement avec votre déploiement local.
Les interfaces Uniswap v3 sont disponibles pour l'importation dans des contrats intelligents Solidity via l'artefact npm @uniswap/v3-core
, par exemple :
import ' @uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol ' ;
contract MyContract {
IUniswapV3Pool pool;
function doSomethingWithPool () {
// pool.swap(...);
}
}
La licence principale pour Uniswap V3 Core est la Business Source License 1.1 ( BUSL-1.1
), voir LICENSE
. Cependant, certains fichiers sont sous double licence GPL-2.0-or-later
:
contracts/interfaces/
peuvent également être sous licence GPL-2.0-or-later
(comme indiqué dans leurs en-têtes SPDX), voir contracts/interfaces/LICENSE
contracts/libraries/
peuvent également être sous licence GPL-2.0-or-later
(comme indiqué dans leurs en-têtes SPDX), voir contracts/libraries/LICENSE
contracts/libraries/FullMath.sol
est sous licence MIT
(comme indiqué dans son en-tête SPDX), voir contracts/libraries/LICENSE_MIT
contracts/test
restent sans licence (comme indiqué dans leurs en-têtes SPDX).