@superfluid-finance/ethereum-contracts 1.7.2-dev.09f3be3.0 → 1.7.2-dev.2cebc84.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/contracts/apps/SuperfluidLoaderLibrary.sol/SuperfluidLoaderLibrary.json +2 -2
- package/build/contracts/AccessControl.json +1 -1
- package/build/contracts/AccessControlEnumerable.json +1 -1
- package/build/contracts/Address.json +1 -1
- package/build/contracts/AgreementBase.json +18 -18
- package/build/contracts/AgreementLibrary.json +165 -165
- package/build/contracts/BaseRelayRecipient.json +57 -57
- package/build/contracts/BatchLiquidator.json +382 -382
- package/build/contracts/BatchOperation.json +614 -614
- package/build/contracts/CFAv1Forwarder.json +1250 -1250
- package/build/contracts/CFAv1ForwarderDeployerLibrary.json +2384 -2384
- package/build/contracts/CFAv1Library.json +389 -389
- package/build/contracts/CallUtils.json +198 -198
- package/build/contracts/ClosingOnUpdateFlowTestApp.json +1525 -1525
- package/build/contracts/ConstantFlowAgreementV1.json +1087 -1087
- package/build/contracts/ConstantInflowNFT.json +402 -402
- package/build/contracts/ConstantOutflowNFT.json +661 -661
- package/build/contracts/Context.json +1 -1
- package/build/contracts/ContextDefinitions.json +614 -614
- package/build/contracts/CustomSuperTokenBase.json +19 -19
- package/build/contracts/ERC165.json +1 -1
- package/build/contracts/ERC1820Implementer.json +1 -1
- package/build/contracts/ERC1820RegistryCompiled.json +22 -22
- package/build/contracts/ERC20.json +1 -1
- package/build/contracts/ERC20WithTokenInfo.json +23 -23
- package/build/contracts/ERC777Helper.json +384 -384
- package/build/contracts/ERC777RecipientDrainingGas.json +863 -863
- package/build/contracts/ERC777RecipientReverting.json +863 -863
- package/build/contracts/EnumerableSet.json +1 -1
- package/build/contracts/EventsEmitter.json +43 -43
- package/build/contracts/ExclusiveInflowTestApp.json +1525 -1525
- package/build/contracts/FixedSizeData.json +200 -200
- package/build/contracts/FlowExchangeTestApp.json +1526 -1526
- package/build/contracts/FlowNFTBase.json +1280 -1280
- package/build/contracts/FlowOperatorDefinitions.json +614 -614
- package/build/contracts/ForwarderBase.json +190 -190
- package/build/contracts/FullUpgradableSuperTokenProxy.json +116 -116
- package/build/contracts/IAccessControl.json +1 -1
- package/build/contracts/IAccessControlEnumerable.json +1 -1
- package/build/contracts/IConstantFlowAgreementV1.json +677 -677
- package/build/contracts/IConstantInflowNFT.json +54 -54
- package/build/contracts/IConstantOutflowNFT.json +107 -107
- package/build/contracts/IDAv1Forwarder.json +912 -912
- package/build/contracts/IDAv1ForwarderDeployerLibrary.json +2384 -2384
- package/build/contracts/IDAv1Library.json +430 -430
- package/build/contracts/IERC165.json +1 -1
- package/build/contracts/IERC1820Implementer.json +1 -1
- package/build/contracts/IERC1820Registry.json +1 -1
- package/build/contracts/IERC20.json +1 -1
- package/build/contracts/IERC20Metadata.json +1 -1
- package/build/contracts/IERC20Permit.json +1 -1
- package/build/contracts/IERC721.json +1 -1
- package/build/contracts/IERC721Metadata.json +1 -1
- package/build/contracts/IERC777.json +1 -1
- package/build/contracts/IERC777Recipient.json +1 -1
- package/build/contracts/IERC777Sender.json +1 -1
- package/build/contracts/IFlowNFTBase.json +115 -115
- package/build/contracts/IInstantDistributionAgreementV1.json +667 -667
- package/build/contracts/IMultiSigWallet.json +31 -31
- package/build/contracts/IPoolAdminNFT.json +7 -7
- package/build/contracts/IPoolMemberNFT.json +7 -7
- package/build/contracts/IPureSuperToken.json +62 -62
- package/build/contracts/IPureSuperTokenCustom.json +62 -62
- package/build/contracts/IRelayRecipient.json +27 -27
- package/build/contracts/IResolver.json +38 -38
- package/build/contracts/ISETH.json +67 -67
- package/build/contracts/ISETHCustom.json +67 -67
- package/build/contracts/ISuperAgreement.json +50 -50
- package/build/contracts/ISuperApp.json +191 -191
- package/build/contracts/ISuperToken.json +695 -695
- package/build/contracts/ISuperTokenFactory.json +225 -225
- package/build/contracts/ISuperfluid.json +904 -904
- package/build/contracts/ISuperfluidGovernance.json +251 -251
- package/build/contracts/ISuperfluidToken.json +407 -407
- package/build/contracts/ITOGAv1.json +1346 -1346
- package/build/contracts/ITOGAv2.json +1346 -1346
- package/build/contracts/ITOGAv3.json +1346 -1346
- package/build/contracts/Initializable.json +1 -1
- package/build/contracts/InstantDistributionAgreementV1.json +594 -594
- package/build/contracts/Math.json +1 -1
- package/build/contracts/NonClosableOutflowTestApp.json +1526 -1526
- package/build/contracts/Ownable.json +1 -1
- package/build/contracts/Proxy.json +1 -1
- package/build/contracts/ProxyDeployerLibrary.json +2382 -2382
- package/build/contracts/PureSuperToken.json +106 -106
- package/build/contracts/Resolver.json +98 -98
- package/build/contracts/SETHProxy.json +224 -224
- package/build/contracts/SafeCast.json +1 -1
- package/build/contracts/SafeERC20.json +1 -1
- package/build/contracts/SafeGasLibrary.json +51 -51
- package/build/contracts/SafeMath.json +1 -1
- package/build/contracts/SelfDeletingFlowTestApp.json +1525 -1525
- package/build/contracts/SlotsBitmapLibrary.json +457 -457
- package/build/contracts/StreamRedirector.json +704 -704
- package/build/contracts/Strings.json +1 -1
- package/build/contracts/SuperAppBase.json +42 -42
- package/build/contracts/SuperAppBaseFlow.json +138 -138
- package/build/contracts/SuperAppDefinitions.json +614 -614
- package/build/contracts/SuperToken.json +2714 -2714
- package/build/contracts/SuperTokenDeployerLibrary.json +2383 -2383
- package/build/contracts/SuperTokenFactory.json +1347 -1347
- package/build/contracts/SuperTokenFactoryBase.json +1329 -1329
- package/build/contracts/SuperTokenV1Library.json +1483 -1483
- package/build/contracts/SuperUpgrader.json +439 -439
- package/build/contracts/Superfluid.json +5196 -5196
- package/build/contracts/SuperfluidCFAv1DeployerLibrary.json +2383 -2383
- package/build/contracts/SuperfluidFrameworkDeployer.json +1260 -1260
- package/build/contracts/SuperfluidFrameworkDeploymentSteps.json +2382 -2382
- package/build/contracts/SuperfluidGovDeployerLibrary.json +2383 -2383
- package/build/contracts/SuperfluidGovernanceBase.json +2449 -2449
- package/build/contracts/SuperfluidGovernanceConfigs.json +614 -614
- package/build/contracts/SuperfluidGovernanceII.json +155 -155
- package/build/contracts/SuperfluidGovernanceIIProxy.json +135 -135
- package/build/contracts/SuperfluidHostDeployerLibrary.json +2382 -2382
- package/build/contracts/SuperfluidIDAv1DeployerLibrary.json +2383 -2383
- package/build/contracts/SuperfluidLoader.json +207 -207
- package/build/contracts/SuperfluidLoaderDeployerLibrary.json +2384 -2384
- package/build/contracts/SuperfluidLoaderLibrary.json +485 -351
- package/build/contracts/SuperfluidNFTLogicDeployerLibrary.json +2387 -2387
- package/build/contracts/SuperfluidPeripheryDeployerLibrary.json +2385 -2385
- package/build/contracts/SuperfluidToken.json +1423 -1423
- package/build/contracts/TOGA.json +1360 -1360
- package/build/contracts/TestGovernance.json +250 -250
- package/build/contracts/TestResolver.json +47 -47
- package/build/contracts/TestToken.json +102 -102
- package/build/contracts/TokenDeployerLibrary.json +2384 -2384
- package/build/contracts/TokenInfo.json +32 -32
- package/build/contracts/UUPSProxiable.json +139 -139
- package/build/contracts/UUPSProxy.json +81 -81
- package/build/contracts/UUPSUtils.json +37 -37
- package/build/contracts-sizes.txt +15 -15
- package/build/typechain/factories/contracts/apps/SuperfluidLoaderLibrary__factory.d.ts +1 -1
- package/build/typechain/factories/contracts/apps/SuperfluidLoaderLibrary__factory.d.ts.map +1 -1
- package/build/typechain/factories/contracts/apps/SuperfluidLoaderLibrary__factory.js +1 -1
- package/build/typechain/factories/contracts/apps/SuperfluidLoaderLibrary__factory.js.map +1 -1
- package/contracts/apps/SuperfluidLoaderLibrary.sol +4 -1
- package/package.json +4 -5
- package/ops-scripts/.eslintrc.js +0 -15
- package/ops-scripts/artifacts/ERC1820Registry.json +0 -5
- package/ops-scripts/deploy-aux-contracts.js +0 -99
- package/ops-scripts/deploy-deterministically.js +0 -169
- package/ops-scripts/deploy-erc1820.js +0 -83
- package/ops-scripts/deploy-framework.js +0 -895
- package/ops-scripts/deploy-mfa.ts +0 -27
- package/ops-scripts/deploy-super-token.js +0 -206
- package/ops-scripts/deploy-test-environment.js +0 -98
- package/ops-scripts/deploy-test-token.js +0 -86
- package/ops-scripts/deploy-unlisted-pure-super-token.js +0 -69
- package/ops-scripts/deploy-unlisted-super-token.js +0 -68
- package/ops-scripts/gov-create-new-app-registration-key.js +0 -75
- package/ops-scripts/gov-create-new-factory-registration.js +0 -49
- package/ops-scripts/gov-set-3Ps-config.js +0 -67
- package/ops-scripts/gov-set-reward-address.js +0 -60
- package/ops-scripts/gov-set-token-min-deposit.js +0 -53
- package/ops-scripts/gov-set-trusted-forwarder.js +0 -80
- package/ops-scripts/gov-transfer-framework-ownership.js +0 -90
- package/ops-scripts/gov-upgrade-governance.js +0 -87
- package/ops-scripts/gov-upgrade-super-token-logic.js +0 -193
- package/ops-scripts/info-inspect-account.js +0 -118
- package/ops-scripts/info-list-apps.js +0 -55
- package/ops-scripts/info-print-contract-addresses.js +0 -136
- package/ops-scripts/info-scan-deployments.js +0 -63
- package/ops-scripts/info-show-protocol.js +0 -400
- package/ops-scripts/libs/common.js +0 -436
- package/ops-scripts/libs/getConfig.js +0 -289
- package/ops-scripts/libs/truffleScriptRunnerFactory.js +0 -97
- package/ops-scripts/resolver-list-super-token.js +0 -73
- package/ops-scripts/resolver-register-token.js +0 -72
- package/ops-scripts/resolver-reset-deployment.js +0 -54
- package/ops-scripts/resolver-set-key-value.js +0 -69
- package/ops-scripts/resolver-unlist-super-token.js +0 -61
- package/ops-scripts/tmp-trigger-token-transfer.js +0 -33
- package/ops-scripts/validate-nft-addresses.ts +0 -49
|
@@ -1,400 +0,0 @@
|
|
|
1
|
-
const _ = require("lodash");
|
|
2
|
-
const async = require("async");
|
|
3
|
-
const SuperfluidSDK = require("@superfluid-finance/js-sdk");
|
|
4
|
-
const getConfig = require("./libs/getConfig");
|
|
5
|
-
const {
|
|
6
|
-
getScriptRunnerFactory: S,
|
|
7
|
-
ZERO_ADDRESS,
|
|
8
|
-
extractWeb3Options,
|
|
9
|
-
} = require("./libs/common");
|
|
10
|
-
|
|
11
|
-
const MAX_REQUESTS = 100;
|
|
12
|
-
|
|
13
|
-
async function printHostInformation({sf}) {
|
|
14
|
-
let host;
|
|
15
|
-
console.log("# Host\n");
|
|
16
|
-
try {
|
|
17
|
-
host = await sf.contracts.Superfluid.at(sf.host.address);
|
|
18
|
-
console.log("address", host.address);
|
|
19
|
-
console.log(
|
|
20
|
-
"code address",
|
|
21
|
-
await (
|
|
22
|
-
await sf.contracts.UUPSProxiable.at(sf.host.address)
|
|
23
|
-
).getCodeAddress()
|
|
24
|
-
);
|
|
25
|
-
console.log(
|
|
26
|
-
"NON_UPGRADABLE_DEPLOYMENT",
|
|
27
|
-
await host.NON_UPGRADABLE_DEPLOYMENT.call()
|
|
28
|
-
);
|
|
29
|
-
console.log(
|
|
30
|
-
"APP_WHITE_LISTING_ENABLED",
|
|
31
|
-
(await host.APP_WHITE_LISTING_ENABLED.call()).toString()
|
|
32
|
-
);
|
|
33
|
-
console.log(
|
|
34
|
-
"MAX_APP_LEVEL",
|
|
35
|
-
(await host.MAX_APP_CALLBACK_LEVEL.call()).toString()
|
|
36
|
-
);
|
|
37
|
-
console.log(
|
|
38
|
-
"CALLBACK_GAS_LIMIT",
|
|
39
|
-
(await host.CALLBACK_GAS_LIMIT.call()).toString()
|
|
40
|
-
);
|
|
41
|
-
} catch {
|
|
42
|
-
console.error("Error printing host information.");
|
|
43
|
-
}
|
|
44
|
-
return {host};
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
async function printGovernanceInformation({sf}) {
|
|
48
|
-
const fetchLatestGovernanceUpdate = async (contract, eventName, filter) => {
|
|
49
|
-
const changes = await sf.getPastEvents(contract, eventName, filter);
|
|
50
|
-
|
|
51
|
-
return Object.values(
|
|
52
|
-
changes.reduce(
|
|
53
|
-
(acc, i) =>
|
|
54
|
-
_.merge(acc, {
|
|
55
|
-
[i.superToken]: i,
|
|
56
|
-
}),
|
|
57
|
-
{}
|
|
58
|
-
)
|
|
59
|
-
).filter((i) => !!i.isKeySet);
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
let gov;
|
|
63
|
-
{
|
|
64
|
-
console.log("# Governance\n");
|
|
65
|
-
gov = await sf.contracts.SuperfluidGovernanceBase.at(
|
|
66
|
-
await sf.host.getGovernance.call()
|
|
67
|
-
);
|
|
68
|
-
console.log("address", gov.address);
|
|
69
|
-
console.log(
|
|
70
|
-
"owner",
|
|
71
|
-
await (await sf.contracts.Ownable.at(gov.address)).owner.call()
|
|
72
|
-
);
|
|
73
|
-
}
|
|
74
|
-
{
|
|
75
|
-
console.log("## RewardAddress");
|
|
76
|
-
console.log(
|
|
77
|
-
"DEFAULT",
|
|
78
|
-
await gov.getRewardAddress.call(sf.host.address, ZERO_ADDRESS)
|
|
79
|
-
);
|
|
80
|
-
try {
|
|
81
|
-
const latests = (
|
|
82
|
-
await fetchLatestGovernanceUpdate(gov, "RewardAddressChanged", {
|
|
83
|
-
host: sf.host.address,
|
|
84
|
-
})
|
|
85
|
-
).filter((i) => i.superToken !== ZERO_ADDRESS);
|
|
86
|
-
latests.forEach((i) =>
|
|
87
|
-
console.log(
|
|
88
|
-
"SuperToken: " + i.superToken,
|
|
89
|
-
"\nReward Address: " + i.rewardAddress,
|
|
90
|
-
"\n---"
|
|
91
|
-
)
|
|
92
|
-
);
|
|
93
|
-
} catch (e) {
|
|
94
|
-
console.warn(
|
|
95
|
-
"There was an error fetching RewardAddressChanged past events.",
|
|
96
|
-
e
|
|
97
|
-
);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
{
|
|
101
|
-
console.log("## PPPConfiguration");
|
|
102
|
-
const defaultPPPConfiguration = await gov.getPPPConfig(
|
|
103
|
-
sf.host.address,
|
|
104
|
-
ZERO_ADDRESS
|
|
105
|
-
);
|
|
106
|
-
console.log(
|
|
107
|
-
"DEFAULT",
|
|
108
|
-
"\nLiquidation Period: " +
|
|
109
|
-
defaultPPPConfiguration.liquidationPeriod,
|
|
110
|
-
"\nPatrician Period: " + defaultPPPConfiguration.patricianPeriod
|
|
111
|
-
);
|
|
112
|
-
try {
|
|
113
|
-
const latests = (
|
|
114
|
-
await fetchLatestGovernanceUpdate(
|
|
115
|
-
gov,
|
|
116
|
-
"PPPConfigurationChanged",
|
|
117
|
-
{
|
|
118
|
-
host: sf.host.address,
|
|
119
|
-
}
|
|
120
|
-
)
|
|
121
|
-
).filter((i) => i.superToken !== ZERO_ADDRESS);
|
|
122
|
-
latests.forEach((i) =>
|
|
123
|
-
console.log(
|
|
124
|
-
"SuperToken: " + i.superToken,
|
|
125
|
-
"\nLiquidation Period: " + i.liquidationPeriod,
|
|
126
|
-
"\nPatrician Period: " + i.patricianPeriod,
|
|
127
|
-
"\n---"
|
|
128
|
-
)
|
|
129
|
-
);
|
|
130
|
-
} catch (e) {
|
|
131
|
-
console.warn(
|
|
132
|
-
"There was an error fetching PPPConfigurationChanged past events.",
|
|
133
|
-
e
|
|
134
|
-
);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
{
|
|
138
|
-
console.log("## TrustedForwarders");
|
|
139
|
-
try {
|
|
140
|
-
// here we don't want to merge by same token addr, thus not using fetchLatestGovernanceUpdate()
|
|
141
|
-
const enabledEvents = (
|
|
142
|
-
await sf.getPastEvents(gov, "TrustedForwarderChanged", {
|
|
143
|
-
host: sf.host.address,
|
|
144
|
-
})
|
|
145
|
-
).filter((i) => !!i.enabled);
|
|
146
|
-
|
|
147
|
-
const enabledEventsUnique = [
|
|
148
|
-
...new Set(
|
|
149
|
-
// intermediate conversion to JSON string helps filter out unique entries
|
|
150
|
-
enabledEvents.map((i) => (JSON.stringify({
|
|
151
|
-
superToken: i.superToken,
|
|
152
|
-
forwarder: i.forwarder,
|
|
153
|
-
})))
|
|
154
|
-
),
|
|
155
|
-
].map(e => JSON.parse(e));
|
|
156
|
-
for (const i of enabledEventsUnique) {
|
|
157
|
-
// checking if currently enabled. This avoids false positives (disabled in a later event)
|
|
158
|
-
if (
|
|
159
|
-
await gov.isTrustedForwarder.call(
|
|
160
|
-
sf.host.address,
|
|
161
|
-
i.superToken,
|
|
162
|
-
i.forwarder
|
|
163
|
-
)
|
|
164
|
-
) {
|
|
165
|
-
console.log(
|
|
166
|
-
i.superToken === ZERO_ADDRESS
|
|
167
|
-
? "DEFAULT"
|
|
168
|
-
: "SuperToken: " + i.superToken,
|
|
169
|
-
"\nForwarder: " + i.forwarder,
|
|
170
|
-
"\n---"
|
|
171
|
-
);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
} catch (e) {
|
|
175
|
-
console.warn(
|
|
176
|
-
"There was an error fetching TrustedForwarderChanged past events.",
|
|
177
|
-
e
|
|
178
|
-
);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
return {gov};
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
async function printSuperTokenFactoryInformation({sf}) {
|
|
185
|
-
let superTokenFactory, latestSuperTokenLogicAddress;
|
|
186
|
-
|
|
187
|
-
superTokenFactory = await sf.contracts.SuperTokenFactory.at(
|
|
188
|
-
await sf.host.getSuperTokenFactory()
|
|
189
|
-
);
|
|
190
|
-
console.log("SuperTokenFactory address", superTokenFactory.address);
|
|
191
|
-
console.log(
|
|
192
|
-
"SuperTokenLogic address",
|
|
193
|
-
await superTokenFactory.getSuperTokenLogic()
|
|
194
|
-
);
|
|
195
|
-
latestSuperTokenLogicAddress = await superTokenFactory.getSuperTokenLogic();
|
|
196
|
-
|
|
197
|
-
return {
|
|
198
|
-
superTokenFactory,
|
|
199
|
-
latestSuperTokenLogicAddress,
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
async function printResolverInformation({sf}) {
|
|
204
|
-
console.log("address", sf.resolver.address);
|
|
205
|
-
const ADMIN_ROLE = "0x" + "0".repeat(64);
|
|
206
|
-
const ac = await sf.contracts.AccessControl.at(sf.resolver.address);
|
|
207
|
-
try {
|
|
208
|
-
const maybeMembers = Array.from(
|
|
209
|
-
new Set([
|
|
210
|
-
...(
|
|
211
|
-
await sf.getPastEvents(ac, "RoleGranted", {
|
|
212
|
-
role: ADMIN_ROLE,
|
|
213
|
-
})
|
|
214
|
-
).map((i) => i.account),
|
|
215
|
-
...(
|
|
216
|
-
await sf.getPastEvents(ac, "RoleRevoked", {
|
|
217
|
-
role: ADMIN_ROLE,
|
|
218
|
-
})
|
|
219
|
-
).map((i) => i.account),
|
|
220
|
-
])
|
|
221
|
-
);
|
|
222
|
-
for (let i = 0; i < maybeMembers.length; ++i) {
|
|
223
|
-
if (await ac.hasRole(ADMIN_ROLE, maybeMembers[i])) {
|
|
224
|
-
console.log("admin", i, maybeMembers[i]);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
} catch (e) {
|
|
228
|
-
console.error("There was an error printing resolver information:", e);
|
|
229
|
-
}
|
|
230
|
-
console.log("");
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
async function printSuperTokensInformation({
|
|
234
|
-
sf,
|
|
235
|
-
superTokenFactory,
|
|
236
|
-
latestSuperTokenLogicAddress,
|
|
237
|
-
}) {
|
|
238
|
-
const printSuperToken = (s) => {
|
|
239
|
-
const needsUpdate =
|
|
240
|
-
s.superTokenLogicAddress.toLowerCase() !==
|
|
241
|
-
latestSuperTokenLogicAddress.toLowerCase();
|
|
242
|
-
console.log(
|
|
243
|
-
`${s.name} (${s.symbol})`,
|
|
244
|
-
s.tokenAddress,
|
|
245
|
-
`(${s.underlyingTokenAddress})`,
|
|
246
|
-
needsUpdate ? `*(${s.superTokenLogicAddress})` : ""
|
|
247
|
-
);
|
|
248
|
-
};
|
|
249
|
-
if (sf.config.nativeTokenSymbol) {
|
|
250
|
-
console.log("## SuperToken of Native Chain Token");
|
|
251
|
-
const superToken = await sf.contracts.SuperToken.at(
|
|
252
|
-
sf.tokens[sf.config.nativeTokenSymbol + "x"].address
|
|
253
|
-
);
|
|
254
|
-
try {
|
|
255
|
-
const symbol = await superToken.symbol.call();
|
|
256
|
-
const superTokenLogicAddress = await (
|
|
257
|
-
await sf.contracts.UUPSProxiable.at(superToken.address)
|
|
258
|
-
).getCodeAddress();
|
|
259
|
-
printSuperToken({
|
|
260
|
-
symbol,
|
|
261
|
-
name: await superToken.name.call(),
|
|
262
|
-
tokenAddress: superToken.address,
|
|
263
|
-
superTokenLogicAddress,
|
|
264
|
-
underlyingTokenAddress:
|
|
265
|
-
await superToken.getUnderlyingToken.call(),
|
|
266
|
-
});
|
|
267
|
-
} catch {
|
|
268
|
-
console.warn(`[WARN] SuperToken@${superToken.address} is smelly.`);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
console.log("");
|
|
272
|
-
|
|
273
|
-
{
|
|
274
|
-
const latests = [
|
|
275
|
-
...(await sf.getPastEvents(
|
|
276
|
-
superTokenFactory,
|
|
277
|
-
"CustomSuperTokenCreated"
|
|
278
|
-
)),
|
|
279
|
-
...(await sf.getPastEvents(superTokenFactory, "SuperTokenCreated")),
|
|
280
|
-
];
|
|
281
|
-
const superTokens = await async.mapLimit(
|
|
282
|
-
latests,
|
|
283
|
-
MAX_REQUESTS,
|
|
284
|
-
async (pastEvent) => {
|
|
285
|
-
const superToken = await sf.contracts.SuperToken.at(
|
|
286
|
-
pastEvent.token
|
|
287
|
-
);
|
|
288
|
-
try {
|
|
289
|
-
const symbol = await superToken.symbol.call();
|
|
290
|
-
const superTokenLogicAddress =
|
|
291
|
-
await superToken.getCodeAddress();
|
|
292
|
-
const isListed =
|
|
293
|
-
(
|
|
294
|
-
await sf.resolver.get.call(
|
|
295
|
-
`supertokens.${sf.version}.${symbol}`
|
|
296
|
-
)
|
|
297
|
-
).toLowerCase() === superToken.address.toLowerCase();
|
|
298
|
-
return {
|
|
299
|
-
symbol,
|
|
300
|
-
name: await superToken.name.call(),
|
|
301
|
-
tokenAddress: superToken.address,
|
|
302
|
-
superTokenLogicAddress,
|
|
303
|
-
underlyingTokenAddress:
|
|
304
|
-
await superToken.getUnderlyingToken.call(),
|
|
305
|
-
isListed,
|
|
306
|
-
};
|
|
307
|
-
} catch (e) {
|
|
308
|
-
console.error(
|
|
309
|
-
`Querying SuperToken at ${pastEvent.token} failed, may be a broken token deployment:\n ${e}\n`
|
|
310
|
-
);
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
);
|
|
314
|
-
|
|
315
|
-
console.log("## Listed Super Tokens");
|
|
316
|
-
superTokens
|
|
317
|
-
.filter((s) => s !== undefined && s.isListed)
|
|
318
|
-
.filter((s) => s.superTokenLogicAddress !== ZERO_ADDRESS) // unintialized proxy
|
|
319
|
-
.forEach(printSuperToken);
|
|
320
|
-
console.log("");
|
|
321
|
-
|
|
322
|
-
console.log("## Unlisted Super Tokens");
|
|
323
|
-
superTokens
|
|
324
|
-
.filter((s) => s !== undefined && !s.isListed)
|
|
325
|
-
.filter((s) => s.superTokenLogicAddress !== ZERO_ADDRESS) // unintialized proxy
|
|
326
|
-
.forEach(printSuperToken);
|
|
327
|
-
console.log("");
|
|
328
|
-
|
|
329
|
-
console.log("* - Needs super token logic update");
|
|
330
|
-
}
|
|
331
|
-
console.log("");
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
/**
|
|
335
|
-
* @dev Inspect accounts and their agreements
|
|
336
|
-
* @param {Array} argv Overriding command line arguments
|
|
337
|
-
* @param {boolean} options.isTruffle Whether the script is used within native truffle framework
|
|
338
|
-
* @param {Web3} options.web3 Injected web3 instance
|
|
339
|
-
* @param {Address} options.from Address to deploy contracts from
|
|
340
|
-
* @param {bool} options.skipTokens Don't fetch & print SuperToken info (env: SKIP_TOKENS)
|
|
341
|
-
*
|
|
342
|
-
* Usage: npx truffle exec ops-scripts/info-show-protocol-info.js
|
|
343
|
-
*/
|
|
344
|
-
module.exports = eval(`(${S.toString()})()`)(async function (
|
|
345
|
-
args,
|
|
346
|
-
options = {}
|
|
347
|
-
) {
|
|
348
|
-
let {protocolReleaseVersion, skipTokens} = options;
|
|
349
|
-
skipTokens = skipTokens || process.env.SKIP_TOKENS;
|
|
350
|
-
|
|
351
|
-
const networkType = await web3.eth.net.getNetworkType();
|
|
352
|
-
const networkId = await web3.eth.net.getId();
|
|
353
|
-
const chainId = await web3.eth.getChainId();
|
|
354
|
-
console.log("network Type: ", networkType);
|
|
355
|
-
console.log("network ID: ", networkId);
|
|
356
|
-
console.log("chain ID: ", chainId);
|
|
357
|
-
const config = getConfig(chainId);
|
|
358
|
-
|
|
359
|
-
const sf = new SuperfluidSDK.Framework({
|
|
360
|
-
...extractWeb3Options(options),
|
|
361
|
-
version: protocolReleaseVersion,
|
|
362
|
-
additionalContracts: [
|
|
363
|
-
"AccessControl",
|
|
364
|
-
"Ownable",
|
|
365
|
-
"UUPSProxiable",
|
|
366
|
-
"Superfluid",
|
|
367
|
-
"SuperTokenFactory",
|
|
368
|
-
"SuperToken",
|
|
369
|
-
"SuperfluidGovernanceBase",
|
|
370
|
-
],
|
|
371
|
-
tokens: config.tokenList,
|
|
372
|
-
loadSuperNativeToken: true,
|
|
373
|
-
});
|
|
374
|
-
await sf.initialize();
|
|
375
|
-
|
|
376
|
-
console.log("\n===== Protocol Information =====\n");
|
|
377
|
-
|
|
378
|
-
await printHostInformation({sf});
|
|
379
|
-
console.log("");
|
|
380
|
-
|
|
381
|
-
await printGovernanceInformation({sf});
|
|
382
|
-
console.log("");
|
|
383
|
-
|
|
384
|
-
console.log("# Super Token Factory\n");
|
|
385
|
-
const {superTokenFactory, latestSuperTokenLogicAddress} =
|
|
386
|
-
await printSuperTokenFactoryInformation({sf});
|
|
387
|
-
console.log("");
|
|
388
|
-
|
|
389
|
-
if (!skipTokens) {
|
|
390
|
-
console.log("# Managed Super Tokens\n");
|
|
391
|
-
await printSuperTokensInformation({
|
|
392
|
-
sf,
|
|
393
|
-
superTokenFactory,
|
|
394
|
-
latestSuperTokenLogicAddress,
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
console.log("\n===== Resolver Information =====\n");
|
|
399
|
-
await printResolverInformation({sf});
|
|
400
|
-
});
|