synthetix-demaa
Version:
The smart contracts which make up the Demaa system. (demaa.io)
1,586 lines • 1.01 MB
JSON
{
"contracts/AddressResolver.sol": {
"imports": [
"./Owned.sol",
"./interfaces/IAddressResolver.sol",
"./interfaces/IIssuer.sol",
"./MixinResolver.sol"
],
"contracts": {
"AddressResolver": {
"functions": [
{
"name": "constructor",
"signature": "constructor(address _owner)",
"returns": "()",
"modifiers": [],
"visibility": "public",
"lineNumber": 15,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "importAddresses",
"signature": "importAddresses(bytes32[] names, address[] destinations)",
"returns": "()",
"modifiers": [
"onlyOwner"
],
"visibility": "external",
"lineNumber": 19,
"requires": [
{
"name": "require(..., \"Input lengths must match\")",
"lineNumber": 20
}
],
"events": [],
"stateMutability": ""
},
{
"name": "rebuildCaches",
"signature": "rebuildCaches(contract MixinResolver[] destinations)",
"returns": "()",
"modifiers": [],
"visibility": "external",
"lineNumber": 32,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "areAddressesImported",
"signature": "areAddressesImported(bytes32[] names, address[] destinations) view",
"returns": "(bool)",
"modifiers": [],
"visibility": "external",
"lineNumber": 40,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "getAddress",
"signature": "getAddress(bytes32 name) view",
"returns": "(address)",
"modifiers": [],
"visibility": "external",
"lineNumber": 49,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "requireAndGetAddress",
"signature": "requireAndGetAddress(bytes32 name, string reason) view",
"returns": "(address)",
"modifiers": [],
"visibility": "external",
"lineNumber": 53,
"requires": [
{
"name": "require(..., \"string calldata\")",
"lineNumber": 55
}
],
"events": [],
"stateMutability": "view"
},
{
"name": "getSynth",
"signature": "getSynth(bytes32 key) view",
"returns": "(address)",
"modifiers": [],
"visibility": "external",
"lineNumber": 59,
"requires": [
{
"name": "require(..., \"Cannot find Issuer address\")",
"lineNumber": 61
}
],
"events": [],
"stateMutability": "view"
}
],
"events": [
{
"name": "AddressImported",
"parameters": "(bytes32 name, address destination)",
"lineNumber": 67
}
],
"variables": [
{
"name": "repository",
"type": "mapping(bytes32 => address)",
"visibility": "public",
"lineNumber": 13
}
],
"modifiers": [],
"structs": [],
"inherits": [
"Owned",
"IAddressResolver"
]
}
},
"libraries": {},
"interfaces": {}
},
"contracts/AddressSetLib.sol": {
"imports": [],
"contracts": {},
"libraries": {
"AddressSetLib": {
"functions": [
{
"name": "contains",
"signature": "contains(struct AddressSetLib.AddressSet set, address candidate) view",
"returns": "(bool)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 10,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "getPage",
"signature": "getPage(struct AddressSetLib.AddressSet set, uint256 index, uint256 pageSize) view",
"returns": "(address[])",
"modifiers": [],
"visibility": "internal",
"lineNumber": 18,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "add",
"signature": "add(struct AddressSetLib.AddressSet set, address element)",
"returns": "()",
"modifiers": [],
"visibility": "internal",
"lineNumber": 42,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "remove",
"signature": "remove(struct AddressSetLib.AddressSet set, address element)",
"returns": "()",
"modifiers": [],
"visibility": "internal",
"lineNumber": 50,
"requires": [
{
"name": "require(..., \"Element not in set.\")",
"lineNumber": 51
}
],
"events": [],
"stateMutability": ""
}
],
"events": [],
"variables": [],
"modifiers": [],
"structs": [
{
"name": "AddressSet",
"members": [
{
"name": "elements",
"type": "address[]"
},
{
"name": "indices",
"type": "mapping(address => uint256)"
}
],
"lineNumber": 5
}
],
"inherits": []
}
},
"interfaces": {}
},
"contracts/BaseDebtCache.sol": {
"imports": [
"./Owned.sol",
"./MixinResolver.sol",
"./MixinSystemSettings.sol",
"./interfaces/IDebtCache.sol",
"./SafeDecimalMath.sol",
"./interfaces/IIssuer.sol",
"./interfaces/IExchanger.sol",
"./interfaces/IExchangeRates.sol",
"./interfaces/ISystemStatus.sol",
"./interfaces/IEtherCollateral.sol",
"./interfaces/IEtherCollateralsUSD.sol",
"./interfaces/IERC20.sol",
"./interfaces/ICollateralManager.sol",
"./interfaces/IEtherWrapper.sol"
],
"contracts": {
"BaseDebtCache": {
"functions": [
{
"name": "constructor",
"signature": "constructor(address _owner, address _resolver)",
"returns": "()",
"modifiers": [],
"visibility": "public",
"lineNumber": 49,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "resolverAddressesRequired",
"signature": "resolverAddressesRequired() view",
"returns": "(bytes32[] addresses)",
"modifiers": [],
"visibility": "public",
"lineNumber": 53,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "issuer",
"signature": "issuer() view",
"returns": "(contract IIssuer)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 67,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "exchanger",
"signature": "exchanger() view",
"returns": "(contract IExchanger)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 71,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "exchangeRates",
"signature": "exchangeRates() view",
"returns": "(contract IExchangeRates)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 75,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "systemStatus",
"signature": "systemStatus() view",
"returns": "(contract ISystemStatus)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 79,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "etherCollateral",
"signature": "etherCollateral() view",
"returns": "(contract IEtherCollateral)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 83,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "etherCollateralsUSD",
"signature": "etherCollateralsUSD() view",
"returns": "(contract IEtherCollateralsUSD)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 87,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "collateralManager",
"signature": "collateralManager() view",
"returns": "(contract ICollateralManager)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 91,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "etherWrapper",
"signature": "etherWrapper() view",
"returns": "(contract IEtherWrapper)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 95,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "debtSnapshotStaleTime",
"signature": "debtSnapshotStaleTime() view",
"returns": "(uint256)",
"modifiers": [],
"visibility": "external",
"lineNumber": 99,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "cachedDebt",
"signature": "cachedDebt() view",
"returns": "(uint256)",
"modifiers": [],
"visibility": "external",
"lineNumber": 103,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "cachedSynthDebt",
"signature": "cachedSynthDebt(bytes32 currencyKey) view",
"returns": "(uint256)",
"modifiers": [],
"visibility": "external",
"lineNumber": 107,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "cacheTimestamp",
"signature": "cacheTimestamp() view",
"returns": "(uint256)",
"modifiers": [],
"visibility": "external",
"lineNumber": 111,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "cacheInvalid",
"signature": "cacheInvalid() view",
"returns": "(bool)",
"modifiers": [],
"visibility": "external",
"lineNumber": 115,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "_cacheStale",
"signature": "_cacheStale(uint256 timestamp) view",
"returns": "(bool)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 119,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "cacheStale",
"signature": "cacheStale() view",
"returns": "(bool)",
"modifiers": [],
"visibility": "external",
"lineNumber": 126,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "_issuedSynthValues",
"signature": "_issuedSynthValues(bytes32[] currencyKeys, uint256[] rates) view",
"returns": "(uint256[] values)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 130,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "_currentSynthDebts",
"signature": "_currentSynthDebts(bytes32[] currencyKeys) view",
"returns": "(uint256[] snxIssuedDebts, uint256 _excludedDebt, bool anyRateIsInvalid)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 149,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "currentSynthDebts",
"signature": "currentSynthDebts(bytes32[] currencyKeys) view",
"returns": "(uint256[] debtValues, uint256 excludedDebt, bool anyRateIsInvalid)",
"modifiers": [],
"visibility": "external",
"lineNumber": 164,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "_cachedSynthDebts",
"signature": "_cachedSynthDebts(bytes32[] currencyKeys) view",
"returns": "(uint256[])",
"modifiers": [],
"visibility": "internal",
"lineNumber": 176,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "cachedSynthDebts",
"signature": "cachedSynthDebts(bytes32[] currencyKeys) view",
"returns": "(uint256[] snxIssuedDebts)",
"modifiers": [],
"visibility": "external",
"lineNumber": 185,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "totalNonSnxBackedDebt",
"signature": "totalNonSnxBackedDebt() view",
"returns": "(uint256 excludedDebt, bool isInvalid)",
"modifiers": [],
"visibility": "external",
"lineNumber": 190,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "_totalNonSnxBackedDebt",
"signature": "_totalNonSnxBackedDebt() view",
"returns": "(uint256 excludedDebt, bool isInvalid)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 194,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "_currentDebt",
"signature": "_currentDebt() view",
"returns": "(uint256 debt, bool anyRateIsInvalid)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 220,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "currentDebt",
"signature": "currentDebt() view",
"returns": "(uint256 debt, bool anyRateIsInvalid)",
"modifiers": [],
"visibility": "external",
"lineNumber": 238,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "cacheInfo",
"signature": "cacheInfo() view",
"returns": "(uint256 debt, uint256 timestamp, bool isInvalid, bool isStale)",
"modifiers": [],
"visibility": "external",
"lineNumber": 242,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "updateCachedSynthDebts",
"signature": "updateCachedSynthDebts(bytes32[] currencyKeys)",
"returns": "()",
"modifiers": [],
"visibility": "external",
"lineNumber": 261,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "updateCachedSynthDebtWithRate",
"signature": "updateCachedSynthDebtWithRate(bytes32 currencyKey, uint256 currencyRate)",
"returns": "()",
"modifiers": [],
"visibility": "external",
"lineNumber": 263,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "updateCachedSynthDebtsWithRates",
"signature": "updateCachedSynthDebtsWithRates(bytes32[] currencyKeys, uint256[] currencyRates)",
"returns": "()",
"modifiers": [],
"visibility": "external",
"lineNumber": 265,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "updateDebtCacheValidity",
"signature": "updateDebtCacheValidity(bool currentlyInvalid)",
"returns": "()",
"modifiers": [],
"visibility": "external",
"lineNumber": 267,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "purgeCachedSynthDebt",
"signature": "purgeCachedSynthDebt(bytes32 currencyKey)",
"returns": "()",
"modifiers": [],
"visibility": "external",
"lineNumber": 269,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "takeDebtSnapshot",
"signature": "takeDebtSnapshot()",
"returns": "()",
"modifiers": [],
"visibility": "external",
"lineNumber": 271,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "_requireSystemActiveIfNotOwner",
"signature": "_requireSystemActiveIfNotOwner() view",
"returns": "()",
"modifiers": [],
"visibility": "internal",
"lineNumber": 275,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "_onlyIssuer",
"signature": "_onlyIssuer() view",
"returns": "()",
"modifiers": [],
"visibility": "internal",
"lineNumber": 286,
"requires": [
{
"name": "require(..., \"Sender is not Issuer\")",
"lineNumber": 287
}
],
"events": [],
"stateMutability": "view"
},
{
"name": "_onlyIssuerOrExchanger",
"signature": "_onlyIssuerOrExchanger() view",
"returns": "()",
"modifiers": [],
"visibility": "internal",
"lineNumber": 295,
"requires": [
{
"name": "require(..., \"Sender is not Issuer or Exchanger\")",
"lineNumber": 296
}
],
"events": [],
"stateMutability": "view"
}
],
"events": [],
"variables": [
{
"name": "_cachedDebt",
"type": "uint256",
"visibility": "internal",
"lineNumber": 28
},
{
"name": "_cachedSynthDebt",
"type": "mapping(bytes32 => uint256)",
"visibility": "internal",
"lineNumber": 29
},
{
"name": "_cacheTimestamp",
"type": "uint256",
"visibility": "internal",
"lineNumber": 30
},
{
"name": "_cacheInvalid",
"type": "bool",
"visibility": "internal",
"lineNumber": 31
},
{
"name": "sUSD",
"type": "bytes32",
"visibility": "internal",
"lineNumber": 35
},
{
"name": "sETH",
"type": "bytes32",
"visibility": "internal",
"lineNumber": 36
},
{
"name": "CONTRACT_ISSUER",
"type": "bytes32",
"visibility": "private",
"lineNumber": 40
},
{
"name": "CONTRACT_EXCHANGER",
"type": "bytes32",
"visibility": "private",
"lineNumber": 41
},
{
"name": "CONTRACT_EXRATES",
"type": "bytes32",
"visibility": "private",
"lineNumber": 42
},
{
"name": "CONTRACT_SYSTEMSTATUS",
"type": "bytes32",
"visibility": "private",
"lineNumber": 43
},
{
"name": "CONTRACT_ETHERCOLLATERAL",
"type": "bytes32",
"visibility": "private",
"lineNumber": 44
},
{
"name": "CONTRACT_ETHERCOLLATERAL_SUSD",
"type": "bytes32",
"visibility": "private",
"lineNumber": 45
},
{
"name": "CONTRACT_COLLATERALMANAGER",
"type": "bytes32",
"visibility": "private",
"lineNumber": 46
},
{
"name": "CONTRACT_ETHER_WRAPPER",
"type": "bytes32",
"visibility": "private",
"lineNumber": 47
}
],
"modifiers": [
{
"name": "requireSystemActiveIfNotOwner",
"signature": "requireSystemActiveIfNotOwner()",
"visibility": "internal",
"parameters": "()",
"lineNumber": 281
},
{
"name": "onlyIssuer",
"signature": "onlyIssuer()",
"visibility": "internal",
"parameters": "()",
"lineNumber": 290
},
{
"name": "onlyIssuerOrExchanger",
"signature": "onlyIssuerOrExchanger()",
"visibility": "internal",
"parameters": "()",
"lineNumber": 299
}
],
"structs": [],
"inherits": [
"Owned",
"MixinSystemSettings",
"IDebtCache"
]
}
},
"libraries": {},
"interfaces": {}
},
"contracts/BaseRewardEscrowV2.sol": {
"imports": [
"./Owned.sol",
"./MixinResolver.sol",
"./LimitedSetup.sol",
"./interfaces/IRewardEscrowV2.sol",
"./SafeDecimalMath.sol",
"./interfaces/IERC20.sol",
"./interfaces/IFeePool.sol",
"./interfaces/ISynthetix.sol",
"./interfaces/IIssuer.sol"
],
"contracts": {
"BaseRewardEscrowV2": {
"functions": [
{
"name": "constructor",
"signature": "constructor(address _owner, address _resolver)",
"returns": "()",
"modifiers": [],
"visibility": "public",
"lineNumber": 63,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "feePool",
"signature": "feePool() view",
"returns": "(contract IFeePool)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 69,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "synthetix",
"signature": "synthetix() view",
"returns": "(contract ISynthetix)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 73,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "issuer",
"signature": "issuer() view",
"returns": "(contract IIssuer)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 77,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "_notImplemented",
"signature": "_notImplemented() pure",
"returns": "()",
"modifiers": [],
"visibility": "internal",
"lineNumber": 81,
"requires": [],
"events": [],
"stateMutability": "pure"
},
{
"name": "resolverAddressesRequired",
"signature": "resolverAddressesRequired() view",
"returns": "(bytes32[] addresses)",
"modifiers": [],
"visibility": "public",
"lineNumber": 88,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "balanceOf",
"signature": "balanceOf(address account) view",
"returns": "(uint256)",
"modifiers": [],
"visibility": "public",
"lineNumber": 98,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "numVestingEntries",
"signature": "numVestingEntries(address account) view",
"returns": "(uint256)",
"modifiers": [],
"visibility": "external",
"lineNumber": 105,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "getVestingEntry",
"signature": "getVestingEntry(address account, uint256 entryID) view",
"returns": "(uint64 endTime, uint256 escrowAmount)",
"modifiers": [],
"visibility": "external",
"lineNumber": 113,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "getVestingSchedules",
"signature": "getVestingSchedules(address account, uint256 index, uint256 pageSize) view",
"returns": "(struct VestingEntries.VestingEntryWithID[])",
"modifiers": [],
"visibility": "external",
"lineNumber": 118,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "getAccountVestingEntryIDs",
"signature": "getAccountVestingEntryIDs(address account, uint256 index, uint256 pageSize) view",
"returns": "(uint256[])",
"modifiers": [],
"visibility": "external",
"lineNumber": 151,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "getVestingQuantity",
"signature": "getVestingQuantity(address account, uint256[] entryIDs) view",
"returns": "(uint256 total)",
"modifiers": [],
"visibility": "external",
"lineNumber": 174,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "getVestingEntryClaimable",
"signature": "getVestingEntryClaimable(address account, uint256 entryID) view",
"returns": "(uint256)",
"modifiers": [],
"visibility": "external",
"lineNumber": 188,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "_claimableAmount",
"signature": "_claimableAmount(struct VestingEntries.VestingEntry _entry) view",
"returns": "(uint256)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 193,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "vest",
"signature": "vest(uint256[] entryIDs)",
"returns": "()",
"modifiers": [],
"visibility": "external",
"lineNumber": 209,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "createEscrowEntry",
"signature": "createEscrowEntry(address beneficiary, uint256 deposit, uint256 duration)",
"returns": "()",
"modifiers": [],
"visibility": "external",
"lineNumber": 239,
"requires": [
{
"name": "require(..., \"Cannot create escrow with address(0)\")",
"lineNumber": 244
},
{
"name": "require(..., \"token transfer failed\")",
"lineNumber": 247
}
],
"events": [],
"stateMutability": ""
},
{
"name": "appendVestingEntry",
"signature": "appendVestingEntry(address account, uint256 quantity, uint256 duration)",
"returns": "()",
"modifiers": [
"onlyFeePool"
],
"visibility": "external",
"lineNumber": 261,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "_transferVestedTokens",
"signature": "_transferVestedTokens(address _account, uint256 _amount)",
"returns": "()",
"modifiers": [],
"visibility": "internal",
"lineNumber": 270,
"requires": [],
"events": [
"Vested"
],
"stateMutability": ""
},
{
"name": "_reduceAccountEscrowBalances",
"signature": "_reduceAccountEscrowBalances(address _account, uint256 _amount)",
"returns": "()",
"modifiers": [],
"visibility": "internal",
"lineNumber": 277,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "accountMergingIsOpen",
"signature": "accountMergingIsOpen() view",
"returns": "(bool)",
"modifiers": [],
"visibility": "public",
"lineNumber": 285,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "startMergingWindow",
"signature": "startMergingWindow()",
"returns": "()",
"modifiers": [
"onlyOwner"
],
"visibility": "external",
"lineNumber": 289,
"requires": [],
"events": [
"AccountMergingStarted"
],
"stateMutability": ""
},
{
"name": "setAccountMergingDuration",
"signature": "setAccountMergingDuration(uint256 duration)",
"returns": "()",
"modifiers": [
"onlyOwner"
],
"visibility": "external",
"lineNumber": 294,
"requires": [
{
"name": "require(..., \"exceeds max merging duration\")",
"lineNumber": 295
}
],
"events": [
"AccountMergingDurationUpdated"
],
"stateMutability": ""
},
{
"name": "setMaxAccountMergingWindow",
"signature": "setMaxAccountMergingWindow(uint256 duration)",
"returns": "()",
"modifiers": [
"onlyOwner"
],
"visibility": "external",
"lineNumber": 300,
"requires": [],
"events": [
"MaxAccountMergingDurationUpdated"
],
"stateMutability": ""
},
{
"name": "setMaxEscrowDuration",
"signature": "setMaxEscrowDuration(uint256 duration)",
"returns": "()",
"modifiers": [
"onlyOwner"
],
"visibility": "external",
"lineNumber": 305,
"requires": [],
"events": [
"MaxEscrowDurationUpdated"
],
"stateMutability": ""
},
{
"name": "nominateAccountToMerge",
"signature": "nominateAccountToMerge(address account)",
"returns": "()",
"modifiers": [],
"visibility": "external",
"lineNumber": 311,
"requires": [
{
"name": "require(..., \"Cannot nominate own account to merge\")",
"lineNumber": 312
},
{
"name": "require(..., \"Account merging has ended\")",
"lineNumber": 313
},
{
"name": "require(..., \"Cannot merge accounts with debt\")",
"lineNumber": 314
}
],
"events": [
"NominateAccountToMerge"
],
"stateMutability": ""
},
{
"name": "mergeAccount",
"signature": "mergeAccount(address accountToMerge, uint256[] entryIDs)",
"returns": "()",
"modifiers": [],
"visibility": "external",
"lineNumber": 319,
"requires": [
{
"name": "require(..., \"Account merging has ended\")",
"lineNumber": 320
},
{
"name": "require(..., \"Cannot merge accounts with debt\")",
"lineNumber": 321
},
{
"name": "require(..., \"Address is not nominated to merge\")",
"lineNumber": 322
}
],
"events": [
"AccountMerged"
],
"stateMutability": ""
},
{
"name": "_addVestingEntry",
"signature": "_addVestingEntry(address account, struct VestingEntries.VestingEntry entry)",
"returns": "(uint256)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 355,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "migrateVestingSchedule",
"signature": "migrateVestingSchedule(address)",
"returns": "()",
"modifiers": [],
"visibility": "external",
"lineNumber": 370,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "migrateAccountEscrowBalances",
"signature": "migrateAccountEscrowBalances(address[], uint256[], uint256[])",
"returns": "()",
"modifiers": [],
"visibility": "external",
"lineNumber": 374,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "burnForMigration",
"signature": "burnForMigration(address, uint256[])",
"returns": "(uint256, struct VestingEntries.VestingEntry[])",
"modifiers": [],
"visibility": "external",
"lineNumber": 384,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "importVestingEntries",
"signature": "importVestingEntries(address, uint256, struct VestingEntries.VestingEntry[])",
"returns": "()",
"modifiers": [],
"visibility": "external",
"lineNumber": 388,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "_appendVestingEntry",
"signature": "_appendVestingEntry(address account, uint256 quantity, uint256 duration)",
"returns": "()",
"modifiers": [],
"visibility": "internal",
"lineNumber": 398,
"requires": [
{
"name": "require(..., \"Quantity cannot be zero\")",
"lineNumber": 404
},
{
"name": "require(..., \"Cannot escrow with 0 duration OR above max_duration\")",
"lineNumber": 405
},
{
"name": "require(..., \"Must be enough balance in the contract to provide for the vesting entry\")",
"lineNumber": 410
}
],
"events": [
"VestingEntryCreated"
],
"stateMutability": ""
}
],
"events": [
{
"name": "Vested",
"parameters": "(address beneficiary, uint256 time, uint256 value)",
"lineNumber": 439
},
{
"name": "VestingEntryCreated",
"parameters": "(address beneficiary, uint256 time, uint256 value, uint256 duration, uint256 entryID)",
"lineNumber": 440
},
{
"name": "MaxEscrowDurationUpdated",
"parameters": "(uint256 newDuration)",
"lineNumber": 441
},
{
"name": "MaxAccountMergingDurationUpdated",
"parameters": "(uint256 newDuration)",
"lineNumber": 442
},
{
"name": "AccountMergingDurationUpdated",
"parameters": "(uint256 newDuration)",
"lineNumber": 443
},
{
"name": "AccountMergingStarted",
"parameters": "(uint256 time, uint256 endTime)",
"lineNumber": 444
},
{
"name": "AccountMerged",
"parameters": "(address accountToMerge, address destinationAddress, uint256 escrowAmountMerged, uint256[] entryIDs, uint256 time)",
"lineNumber": 445
},
{
"name": "NominateAccountToMerge",
"parameters": "(address account, address destination)",
"lineNumber": 452
}
],
"variables": [
{
"name": "vestingSchedules",
"type": "mapping(address => mapping(uint256 => struct VestingEntries.VestingEntry))",
"visibility": "public",
"lineNumber": 24
},
{
"name": "accountVestingEntryIDs",
"type": "mapping(address => uint256[])",
"visibility": "public",
"lineNumber": 26
},
{
"name": "nextEntryId",
"type": "uint256",
"visibility": "public",
"lineNumber": 29
},
{
"name": "totalEscrowedAccountBalance",
"type": "mapping(address => uint256)",
"visibility": "public",
"lineNumber": 32
},
{
"name": "totalVestedAccountBalance",
"type": "mapping(address => uint256)",
"visibility": "public",
"lineNumber": 35
},
{
"name": "nominatedReceiver",
"type": "mapping(address => address)",
"visibility": "public",
"lineNumber": 38
},
{
"name": "totalEscrowedBalance",
"type": "uint256",
"visibility": "public",
"lineNumber": 41
},
{
"name": "max_duration",
"type": "uint256",
"visibility": "public",
"lineNumber": 44
},
{
"name": "maxAccountMergingDuration",
"type": "uint256",
"visibility": "public",
"lineNumber": 47
},
{
"name": "accountMergingDuration",
"type": "uint256",
"visibility": "public",
"lineNumber": 51
},
{
"name": "accountMergingStartTime",
"type": "uint256",
"visibility": "public",
"lineNumber": 53
},
{
"name": "CONTRACT_SYNTHETIX",
"type": "bytes32",
"visibility": "private",
"lineNumber": 57
},
{
"name": "CONTRACT_ISSUER",
"type": "bytes32",
"visibility": "private",
"lineNumber": 58
},
{
"name": "CONTRACT_FEEPOOL",
"type": "bytes32",
"visibility": "private",
"lineNumber": 59
}
],
"modifiers": [
{
"name": "onlyFeePool",
"signature": "onlyFeePool()",
"visibility": "internal",
"parameters": "()",
"lineNumber": 433
}
],
"structs": [],
"inherits": [
"Owned",
"IRewardEscrowV2",
"LimitedSetup",
"MixinResolver"
]
}
},
"libraries": {},
"interfaces": {}
},
"contracts/BaseSynthetix.sol": {
"imports": [
"./interfaces/IERC20.sol",
"./ExternStateToken.sol",
"./MixinResolver.sol",
"./interfaces/ISynthetix.sol",
"./interfaces/ISynth.sol",
"./TokenState.sol",
"./interfaces/ISynthetixState.sol",
"./interfaces/ISystemStatus.sol",
"./interfaces/IExchanger.sol",
"./interfaces/IIssuer.sol",
"./interfaces/IRewardsDistribution.sol",
"./interfaces/IVirtualSynth.sol"
],
"contracts": {
"BaseSynthetix": {
"functions": [
{
"name": "constructor",
"signature": "constructor(address payable _proxy, contract TokenState _tokenState, address _owner, uint256 _totalSupply, address _resolver)",
"returns": "()",
"modifiers": [],
"visibility": "public",
"lineNumber": 37,
"requires": [],
"events": [],
"stateMutability": ""
},
{
"name": "resolverAddressesRequired",
"signature": "resolverAddressesRequired() view",
"returns": "(bytes32[] addresses)",
"modifiers": [],
"visibility": "public",
"lineNumber": 52,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "synthetixState",
"signature": "synthetixState() view",
"returns": "(contract ISynthetixState)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 61,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "systemStatus",
"signature": "systemStatus() view",
"returns": "(contract ISystemStatus)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 65,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "exchanger",
"signature": "exchanger() view",
"returns": "(contract IExchanger)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 69,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "issuer",
"signature": "issuer() view",
"returns": "(contract IIssuer)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 73,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "rewardsDistribution",
"signature": "rewardsDistribution() view",
"returns": "(contract IRewardsDistribution)",
"modifiers": [],
"visibility": "internal",
"lineNumber": 77,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "debtBalanceOf",
"signature": "debtBalanceOf(address account, bytes32 currencyKey) view",
"returns": "(uint256)",
"modifiers": [],
"visibility": "external",
"lineNumber": 81,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "totalIssuedSynths",
"signature": "totalIssuedSynths(bytes32 currencyKey) view",
"returns": "(uint256)",
"modifiers": [],
"visibility": "external",
"lineNumber": 85,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "totalIssuedSynthsExcludeEtherCollateral",
"signature": "totalIssuedSynthsExcludeEtherCollateral(bytes32 currencyKey) view",
"returns": "(uint256)",
"modifiers": [],
"visibility": "external",
"lineNumber": 91,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "availableCurrencyKeys",
"signature": "availableCurrencyKeys() view",
"returns": "(bytes32[])",
"modifiers": [],
"visibility": "external",
"lineNumber": 95,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "availableSynthCount",
"signature": "availableSynthCount() view",
"returns": "(uint256)",
"modifiers": [],
"visibility": "external",
"lineNumber": 99,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "availableSynths",
"signature": "availableSynths(uint256 index) view",
"returns": "(contract ISynth)",
"modifiers": [],
"visibility": "external",
"lineNumber": 103,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "synths",
"signature": "synths(bytes32 currencyKey) view",
"returns": "(contract ISynth)",
"modifiers": [],
"visibility": "external",
"lineNumber": 107,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "synthsByAddress",
"signature": "synthsByAddress(address synthAddress) view",
"returns": "(bytes32)",
"modifiers": [],
"visibility": "external",
"lineNumber": 111,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "isWaitingPeriod",
"signature": "isWaitingPeriod(bytes32 currencyKey) view",
"returns": "(bool)",
"modifiers": [],
"visibility": "external",
"lineNumber": 115,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "anySynthOrSNXRateIsInvalid",
"signature": "anySynthOrSNXRateIsInvalid() view",
"returns": "(bool anyRateInvalid)",
"modifiers": [],
"visibility": "external",
"lineNumber": 119,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "maxIssuableSynths",
"signature": "maxIssuableSynths(address account) view",
"returns": "(uint256 maxIssuable)",
"modifiers": [],
"visibility": "external",
"lineNumber": 123,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "remainingIssuableSynths",
"signature": "remainingIssuableSynths(address account) view",
"returns": "(uint256 maxIssuable, uint256 alreadyIssued, uint256 totalSystemDebt)",
"modifiers": [],
"visibility": "external",
"lineNumber": 127,
"requires": [],
"events": [],
"stateMutability": "view"
},
{
"name": "collateralisationRatio",
"signature": "collateralisationRati