subgraph | action taken |
---|---|
binary-options | no refactor |
chainlink | merge into rates? |
depot | no refactor |
exchanges | add LatestRates |
exchanger | add LatestRates use templating |
grantsdao | no refactor |
limit-orders | merge into exchanges? |
liquidations | no refactor |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// SPDX-License-Identifier: MIT | |
pragma solidity ^0.8.0; | |
import "./interfaces/IERC20.sol"; | |
import "./Owned.sol"; | |
/** | |
* @title BonusEmissionEscrow |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { ethers } from 'ethers'; | |
// import | |
import BigNumber from 'bignumber.js'; | |
import Wei, { wei } from '@synthetixio/wei'; | |
// construction (string) | |
let bigNum = new BigNumber('100000000000000000'); | |
let weiNum = wei('1'); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
pragma solidity ^0.5.16; | |
// Inheritance | |
import "./Owned.sol"; | |
import "./interfaces/IAddressResolver.sol"; | |
import "./interfaces/ISystemMessenger.sol"; | |
// https://docs.synthetix.io/contracts/source/contracts/systemstatus | |
contract SystemMessenger is Owned, ISystemMessenger { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const ethers = require('ethers'); | |
const address = `${process.argv[2]}`; | |
const api = `${process.env.PROVIDER_URL}`; | |
const provider = new ethers.providers.JsonRpcProvider(api); | |
const ABI = require('./Synthetix.json'); | |
const synthetixAddress = '0x8700daec35af8ff88c16bdf0418774cb3d7599b4'; |
Findings:
- [CRITICAL[ infinite money printing glitch (see below)
- Fixed by fixing bug in AssociateDebt module which allowed for markets which were not in range to assign debt to an account. Tests added. https://github.com/Synthetixio/synthetix-v3/commit/eea624a739090ff5ace028de4ea25ffc1c926e96
- [CRITICAL] LegacyMarket.sol does not implement the
onERC721Received
function. As a result, callingmigrate
will always revert as minting an account token to itself will fail.- added
onERC721Received
function https://github.com/Synthetixio/synthetix-v3/commit/5fe3425b23b3c0c6e21cbab42b25f7832fcfde54
- added
- [CRITICAL] Accounts with an unhealthy collateralization ratio cannot be migrated. During migration, the call to
associateDebt
will validate that the debt association does not put the account into a state that can be liquidated. As a result, an account on v2 that should be liquidated cannot be moved to v3 if the collateralization ratios are the same between the two systems.- our in-house k
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const MAX_FAIL = parseInt(args[0], 16); | |
const chainMapping = { | |
'11155111': [ | |
`https://sepolia.infura.io/v3/${secrets.INFURA_API_KEY}`, | |
`https://rpc.sepolia.org`, | |
], | |
'10': [ | |
`https://mainnet.optimism.io`, |
ERC7412 has been used by Synthetix to allow users to push their own price updates to complete on-chain operations.
The protocol has been difficult to maintain as the number of markets have increased on the perps platform, and it is no longer possible/practical to apply price updates using the reccomended call pattern due to hundreds of necessary simulation calls,
To resolve this problem, ERC7412 errors will now be returned in large batches.
A summary of the interface changes to ERC7412 can be on the reference impl repo.
Explanation of Changes