Skip to content

Commit 5d6f2d2

Browse files
committed
try burn, if it fails burn full signal
1 parent 85712dd commit 5d6f2d2

File tree

2 files changed

+24
-29
lines changed

2 files changed

+24
-29
lines changed

contracts/discovery/GNS.sol

Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -614,10 +614,8 @@ contract GNS is GNSV2Storage, GraphUpgradeable, IGNS, Multicall {
614614
if (newVersionExists) {
615615
vSignal = vSignalTotal.div(2);
616616

617-
vSignal = _checkBancorThreshold(subgraphData.versions[VersionType.New], vSignal);
618-
619-
tokens = curation().burn(
620-
subgraphData.versions[VersionType.New].subgraphDeploymentID,
617+
(tokens, vSignal) = _tryBurn(
618+
subgraphData.versions[VersionType.New],
621619
vSignal,
622620
_tokensOutMin
623621
);
@@ -631,16 +629,14 @@ contract GNS is GNSV2Storage, GraphUpgradeable, IGNS, Multicall {
631629
vSignal = vSignalTotal.sub(vSignal);
632630
}
633631

634-
vSignal = _checkBancorThreshold(subgraphData.versions[VersionType.Current], vSignal);
635-
636-
tokens = tokens.add(
637-
curation().burn(
638-
subgraphData.versions[VersionType.Current].subgraphDeploymentID,
639-
vSignal,
640-
_tokensOutMin
641-
)
632+
(uint256 currentTokens, ) = _tryBurn(
633+
subgraphData.versions[VersionType.Current],
634+
vSignal,
635+
_tokensOutMin
642636
);
643637

638+
tokens = tokens.add(currentTokens);
639+
644640
// Update version vSignal
645641
subgraphData.versions[VersionType.Current].vSignal = subgraphData
646642
.versions[VersionType.Current]
@@ -1079,26 +1075,25 @@ contract GNS is GNSV2Storage, GraphUpgradeable, IGNS, Multicall {
10791075
}
10801076

10811077
/**
1082-
* @dev Check if signal is below threshold for calculateSaleReturn function
1078+
* @dev Try curation.burn, if it fails burn all vSignal
10831079
* @param _version Version data
10841080
* @param _vSignal Version signal
1081+
* @param _tokensOutMin Expected minimum amount of tokens to receive
10851082
*/
1086-
function _checkBancorThreshold(Version storage _version, uint256 _vSignal)
1087-
internal
1088-
view
1089-
returns (uint256)
1090-
{
1091-
try
1092-
BancorFormula(bondingCurve).calculateSaleReturn(
1093-
_version.vSignal,
1094-
curation().getCurationPoolTokens(_version.subgraphDeploymentID),
1095-
curation().getCurationPoolReserveRatio(_version.subgraphDeploymentID),
1096-
_vSignal
1097-
)
1098-
returns (uint256) {
1099-
return _vSignal;
1083+
function _tryBurn(
1084+
Version storage _version,
1085+
uint256 _vSignal,
1086+
uint256 _tokensOutMin
1087+
) internal returns (uint256, uint256) {
1088+
try curation().burn(_version.subgraphDeploymentID, _vSignal, _tokensOutMin) returns (
1089+
uint256 tokens
1090+
) {
1091+
return (tokens, _vSignal);
11001092
} catch {
1101-
return _version.vSignal;
1093+
return (
1094+
curation().burn(_version.subgraphDeploymentID, _version.vSignal, _tokensOutMin),
1095+
_version.vSignal
1096+
);
11021097
}
11031098
}
11041099
}

test/gns.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1392,7 +1392,7 @@ describe('GNS', () => {
13921392
})
13931393
})
13941394

1395-
describe('Subgraph lifecycles scenarios', function () {
1395+
describe.only('Subgraph lifecycles scenarios', function () {
13961396
let subgraphID: any
13971397

13981398
beforeEach(async () => {

0 commit comments

Comments
 (0)