0.38.0 • Published 4 years ago

@radar/dydx-solo v0.38.0

Weekly downloads
10
License
Apache-2.0
Repository
github
Last release
4 years ago

Ethereum Smart Contracts and TypeScript library used for the dYdX Solo Trading Protocol. Currently used by trade.dydx.exchange

Full Documentation at docs.dydx.exchange

Table of Contents

Documentation

Check out our full documentation at docs.dydx.exchange

Install

npm i -s @dydxprotocol/solo

Contracts

Mainnet

Contract NameDescriptionAddress
SoloMarginMain dYdX contract0x1E0447b19BB6EcFdAe1e4AE1694b0C3659614e4e
PayableProxyForSoloMarginWETH wrapper proxy0xa8b39829cE2246f89B31C013b8Cde15506Fb9A76
PolynomialInterestSetterSets interest rates0xaEE83ca85Ad63DFA04993adcd76CB2B3589eCa49
ExpiryHandles account expiries0x0ECE224FBC24D40B446c6a94a142dc41fAe76f2d
ExpiryV2Handles account expiries (version 2)0x739A1DF6725657f6a16dC2d5519DC36FD7911A12
DaiPriceOraclePrice oracle for DAI0xccfcF083335633C48e99872899586113A2BD08D8
SaiPriceOraclePrice oracle for SAI0x787F552BDC17332c98aA360748884513e3cB401a
WethPriceOraclePrice oracle for WETH0xf61AE328463CD997C7b58e7045CdC613e1cFdb69
UsdcPriceOraclePrice oracle for USDC0x52f1c952A48a4588f9ae615d38cfdbf8dF036e60
AdminImplSoloMargin library containing admin functions0x8a6629fEba4196E0A61B8E8C94D4905e525bc055
OperationImplSoloMargin library containing operation functions0x56E7d4520ABFECf10b38368b00723d9BD3c21ee1
LiquidatorProxyV1ForSoloMarginProxy contract for liquidating other accounts0xD4B6cd147ad8A0D5376b6FDBa85fE8128C6f0686
LimitOrdersContract for making limit orders using dYdX funds0xDEf136D9884528e1EB302f39457af0E4d3AD24EB
StopLimitOrdersContract for making stop limit orders using dYdX funds0xbFb635e8c6689ac3874aD9A60FaB1c29270f1710
CanonicalOrdersContract for making canonical limit and canonical stop-limit orders using dYdX funds0xCd81398895bEa7AD9EFF273aeFFc41A9d83B4dAD
SignedOperationProxyContract for sending signed operations on behalf of another account owner0x2a842bC64343FAD4Ec4a8424ba7ff3c0A70b6e55
RefunderAllows sending of funds to other accounts0x0ECE224FBC24D40B446c6a94a142dc41fAe76f2d

Security

Independent Audits

The smart contracts were audited independently by both Zeppelin Solutions and Bramah Systems.

Zeppelin Solutions Audit Report

Bramah Systems Audit Report

Code Coverage

All production smart contracts are tested and have 100% line and branch coverage.

Vulnerability Disclosure Policy

The disclosure of security vulnerabilities helps us ensure the security of our users.

How to report a security vulnerability?

If you believe you’ve found a security vulnerability in one of our contracts or platforms, send it to us by emailing security@dydx.exchange. Please include the following details with your report:

  • A description of the location and potential impact of the vulnerability.

  • A detailed description of the steps required to reproduce the vulnerability.

Scope

Any vulnerability not previously disclosed by us or our independent auditors in their reports.

Guidelines

We require that all reporters:

  • Make every effort to avoid privacy violations, degradation of user experience, disruption to production systems, and destruction of data during security testing.

  • Use the identified communication channels to report vulnerability information to us.

  • Keep information about any vulnerabilities you’ve discovered confidential between yourself and dYdX until we’ve had 30 days to resolve the issue.

If you follow these guidelines when reporting an issue to us, we commit to:

  • Not pursue or support any legal action related to your findings.

  • Work with you to understand and resolve the issue quickly (including an initial confirmation of your report within 72 hours of submission).

  • Grant a monetary reward based on the OWASP risk assessment methodology.

Development

Compile Contracts

Requires a running docker engine.

npm run build

Compile TypeScript

npm run build:js

Test

Requires a running docker engine.

Start test node:

docker-compose up

Deploy contracts to test node & run tests:

npm test

Just run tests (contracts must already be deployed to test node):

npm run test_only

Just deploy contracts to test node:

npm run deploy_test

Maintainers

License

Apache-2.0