Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sip 185 debt shares #1601

Merged
merged 65 commits into from
Feb 4, 2022
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
6522f12
add synthetixdebtshare
dbeal-eth Nov 11, 2021
510823f
lots of implementation
dbeal-eth Nov 13, 2021
8ed2fff
tests work
dbeal-eth Nov 15, 2021
834ec9d
add synthetix debt share tests
dbeal-eth Nov 16, 2021
bff2fb6
fix unit test failures
dbeal-eth Nov 16, 2021
9043de1
remove comments and np
dbeal-eth Nov 16, 2021
ae5c111
fix lints
dbeal-eth Nov 16, 2021
d532380
initial period is now 1
dbeal-eth Nov 16, 2021
3b53405
add a few tests for coverage
dbeal-eth Nov 16, 2021
5076ab1
use `hardhat-interact` instead of builtin
dbeal-eth Nov 28, 2021
e351a65
fix module resolution
dbeal-eth Nov 29, 2021
f1280ab
fix package lock again
dbeal-eth Nov 29, 2021
fea5c91
fix provider url issues and network id for kvoan
dbeal-eth Nov 29, 2021
10ea7bd
add synthetixdebtshare
dbeal-eth Nov 11, 2021
7cf745b
lots of implementation
dbeal-eth Nov 13, 2021
113ada3
tests work
dbeal-eth Nov 15, 2021
f267e6e
add synthetix debt share tests
dbeal-eth Nov 16, 2021
667fcc8
fix unit test failures
dbeal-eth Nov 16, 2021
2265bf6
remove comments and np
dbeal-eth Nov 16, 2021
fb1530a
fix lints
dbeal-eth Nov 16, 2021
bdf3e69
initial period is now 1
dbeal-eth Nov 16, 2021
87cd0da
add a few tests for coverage
dbeal-eth Nov 16, 2021
8171cb3
now its not necessary to work around load-contracts functionality wit…
dbeal-eth Dec 2, 2021
1deac59
Merge branch 'sip-185-debt-shares' of https://github.com/Synthetixio/…
dbeal-eth Dec 12, 2021
e961d51
oops
dbeal-eth Dec 12, 2021
09c501e
add migration script start
dbeal-eth Dec 12, 2021
54bc7b2
Merge branch 'develop' into sip-185-debt-shares
barrasso Jan 11, 2022
26bddc0
remove unnecessary migration contracts
barrasso Jan 11, 2022
093812a
Update package-lock.json
barrasso Jan 11, 2022
7b052d8
fix SynthetixDebtShare allowance tests and update interface
barrasso Jan 12, 2022
074f973
fix remaining unit tests
barrasso Jan 13, 2022
3c10f8d
Merge branch 'develop' into sip-185-debt-shares
barrasso Jan 13, 2022
f70d5e3
Merge branch 'develop' into sip-185-debt-shares
barrasso Jan 13, 2022
9005af7
Merge branch 'sip-185-debt-shares' of https://github.com/Synthetixio/…
barrasso Jan 13, 2022
a4e67b9
final fixes
dbeal-eth Jan 13, 2022
7d91e8a
Merge branch 'develop' into sip-185-debt-shares
dbeal-eth Jan 14, 2022
832fe23
Merge branch 'develop' into sip-185-debt-shares
dbeal-eth Jan 15, 2022
1b12e4c
add apparently missing tests for importAddresses
dbeal-eth Jan 15, 2022
3783e05
fixes for reccomendations from @artdgn
dbeal-eth Jan 19, 2022
6104a06
more small cleanups
dbeal-eth Jan 19, 2022
1c8d00c
better balance history scanning
dbeal-eth Jan 19, 2022
da67a27
update docs
dbeal-eth Jan 19, 2022
21e76b9
Merge branch 'develop' into sip-185-debt-shares
barrasso Jan 20, 2022
63dc62b
minor formatting fix
barrasso Jan 20, 2022
d8aeb25
remove unneeded migration contracts
barrasso Jan 20, 2022
9e35b2b
fix lint error
barrasso Jan 20, 2022
f3537b9
Merge branch 'develop' into sip-185-debt-shares
barrasso Jan 21, 2022
afdefac
Merge remote-tracking branch 'origin/develop' into sip-185-debt-shares
dbeal-eth Jan 24, 2022
49d8a69
fixes for comments from audit
dbeal-eth Jan 24, 2022
dc3c276
add requirements for v3
dbeal-eth Jan 27, 2022
804a96b
Merge remote-tracking branch 'origin/develop' into sip-185-debt-shares
dbeal-eth Jan 27, 2022
19eb553
final audit notes
dbeal-eth Feb 1, 2022
331cb88
Merge remote-tracking branch 'origin/develop' into sip-185-debt-shares
dbeal-eth Feb 1, 2022
82c0c70
add support for complete control of altering balance during initial p…
dbeal-eth Feb 3, 2022
43b6fe1
fix lint
dbeal-eth Feb 3, 2022
fe3e180
Merge remote-tracking branch 'origin/develop' into sip-185-debt-shares
dbeal-eth Feb 3, 2022
ebdb8b0
fix tests... again?
dbeal-eth Feb 3, 2022
86bde07
fix scripts and stuff
dbeal-eth Feb 3, 2022
1053059
remove legacy contracts
dbeal-eth Feb 3, 2022
d0c69d5
fix integration tests && remove unnecessarsy changes
dbeal-eth Feb 3, 2022
b9add27
fix integration caught bug for `importFeePeriod`
dbeal-eth Feb 4, 2022
15202c1
undo accidental changes to config.json
dbeal-eth Feb 4, 2022
b8e0e9a
fix deploy tests
dbeal-eth Feb 4, 2022
dd7961b
fix task node
dbeal-eth Feb 4, 2022
9b54331
remove unnecessary conditional
dbeal-eth Feb 4, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 7 additions & 15 deletions contracts/BaseSynthetix.sol
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import "./interfaces/ISynthetix.sol";
// Internal references
import "./interfaces/ISynth.sol";
import "./TokenState.sol";
import "./interfaces/ISynthetixState.sol";
import "./interfaces/ISystemStatus.sol";
import "./interfaces/IExchanger.sol";
import "./interfaces/IIssuer.sol";
Expand All @@ -26,7 +25,6 @@ contract BaseSynthetix is IERC20, ExternStateToken, MixinResolver, ISynthetix {
bytes32 public constant sUSD = "sUSD";

// ========== ADDRESS RESOLVER CONFIGURATION ==========
bytes32 private constant CONTRACT_SYNTHETIXSTATE = "SynthetixState";
bytes32 private constant CONTRACT_SYSTEMSTATUS = "SystemStatus";
bytes32 private constant CONTRACT_EXCHANGER = "Exchanger";
bytes32 private constant CONTRACT_ISSUER = "Issuer";
Expand All @@ -50,16 +48,11 @@ contract BaseSynthetix is IERC20, ExternStateToken, MixinResolver, ISynthetix {

// Note: use public visibility so that it can be invoked in a subclass
function resolverAddressesRequired() public view returns (bytes32[] memory addresses) {
addresses = new bytes32[](5);
addresses[0] = CONTRACT_SYNTHETIXSTATE;
addresses[1] = CONTRACT_SYSTEMSTATUS;
addresses[2] = CONTRACT_EXCHANGER;
addresses[3] = CONTRACT_ISSUER;
addresses[4] = CONTRACT_REWARDSDISTRIBUTION;
}

function synthetixState() internal view returns (ISynthetixState) {
return ISynthetixState(requireAndGetAddress(CONTRACT_SYNTHETIXSTATE));
addresses = new bytes32[](4);
addresses[0] = CONTRACT_SYSTEMSTATUS;
addresses[1] = CONTRACT_EXCHANGER;
addresses[2] = CONTRACT_ISSUER;
addresses[3] = CONTRACT_REWARDSDISTRIBUTION;
}

function systemStatus() internal view returns (ISystemStatus) {
Expand Down Expand Up @@ -147,14 +140,13 @@ contract BaseSynthetix is IERC20, ExternStateToken, MixinResolver, ISynthetix {
}

function _canTransfer(address account, uint value) internal view returns (bool) {
(uint initialDebtOwnership, ) = synthetixState().issuanceData(account);

if (initialDebtOwnership > 0) {
if (issuer().debtBalanceOf(account, "sUSD") > 0) {
Copy link
Contributor

@jacko125 jacko125 Nov 21, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not check whether the account has any debt shares balance (directly from the SDS contract) and if 0, you could save more gas and skip this check for transferring ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I just wanted to reuse the issuer dependency. You are right, checking the debt shares contract directly would make more sense.

(uint transferable, bool anyRateIsInvalid) =
issuer().transferableSynthetixAndAnyRateIsInvalid(account, tokenState.balanceOf(account));
require(value <= transferable, "Cannot transfer staked or escrowed SNX");
require(!anyRateIsInvalid, "A synth or SNX rate is invalid");
}

return true;
}

Expand Down
173 changes: 34 additions & 139 deletions contracts/FeePool.sol

Large diffs are not rendered by default.

159 changes: 0 additions & 159 deletions contracts/FeePoolState.sol

This file was deleted.

Loading