@audius/sdk 0.0.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/.eslintrc +38 -0
- package/.prettierrc.js +1 -0
- package/.python-version +1 -0
- package/Dockerfile +15 -0
- package/README.md +3 -0
- package/babel.config.js +3 -0
- package/data-contracts/ABIs/AdminUpgradeabilityProxy.json +132 -0
- package/data-contracts/ABIs/BaseAdminUpgradeabilityProxy.json +113 -0
- package/data-contracts/ABIs/BaseUpgradeabilityProxy.json +22 -0
- package/data-contracts/ABIs/DiscoveryProviderFactory.json +189 -0
- package/data-contracts/ABIs/DiscoveryProviderFactoryInterface.json +61 -0
- package/data-contracts/ABIs/DiscoveryProviderStorage.json +205 -0
- package/data-contracts/ABIs/DiscoveryProviderStorageInterface.json +65 -0
- package/data-contracts/ABIs/ECDSA.json +4 -0
- package/data-contracts/ABIs/IPLDBlacklistFactory.json +168 -0
- package/data-contracts/ABIs/Initializable.json +4 -0
- package/data-contracts/ABIs/Migrations.json +67 -0
- package/data-contracts/ABIs/OpenZeppelinUpgradesAddress.json +4 -0
- package/data-contracts/ABIs/Ownable.json +79 -0
- package/data-contracts/ABIs/PlaylistFactory.json +669 -0
- package/data-contracts/ABIs/PlaylistFactoryInterface.json +42 -0
- package/data-contracts/ABIs/PlaylistStorage.json +250 -0
- package/data-contracts/ABIs/PlaylistStorageInterface.json +129 -0
- package/data-contracts/ABIs/Proxy.json +10 -0
- package/data-contracts/ABIs/Registry.json +240 -0
- package/data-contracts/ABIs/RegistryContract.json +102 -0
- package/data-contracts/ABIs/RegistryContractInterface.json +28 -0
- package/data-contracts/ABIs/RegistryInterface.json +66 -0
- package/data-contracts/ABIs/SigningLogic.json +43 -0
- package/data-contracts/ABIs/SigningLogicInitializable.json +46 -0
- package/data-contracts/ABIs/SocialFeatureFactory.json +460 -0
- package/data-contracts/ABIs/SocialFeatureStorage.json +225 -0
- package/data-contracts/ABIs/SocialFeatureStorageInterface.json +123 -0
- package/data-contracts/ABIs/TestContract.json +135 -0
- package/data-contracts/ABIs/TestContractInterface.json +19 -0
- package/data-contracts/ABIs/TestContractWithStorage.json +165 -0
- package/data-contracts/ABIs/TestContractWithStorageInterface.json +24 -0
- package/data-contracts/ABIs/TestStorage.json +144 -0
- package/data-contracts/ABIs/TestStorageInterface.json +42 -0
- package/data-contracts/ABIs/TestUserReplicaSetManager.json +432 -0
- package/data-contracts/ABIs/TrackFactory.json +391 -0
- package/data-contracts/ABIs/TrackFactoryInterface.json +73 -0
- package/data-contracts/ABIs/TrackStorage.json +223 -0
- package/data-contracts/ABIs/TrackStorageInterface.json +121 -0
- package/data-contracts/ABIs/UpgradeabilityProxy.json +37 -0
- package/data-contracts/ABIs/UserFactory.json +657 -0
- package/data-contracts/ABIs/UserFactoryInterface.json +65 -0
- package/data-contracts/ABIs/UserLibraryFactory.json +334 -0
- package/data-contracts/ABIs/UserReplicaSetManager.json +418 -0
- package/data-contracts/ABIs/UserStorage.json +233 -0
- package/data-contracts/ABIs/UserStorageInterface.json +93 -0
- package/data-contracts/signatureSchemas.ts +1236 -0
- package/dist/core.d.ts +446 -0
- package/dist/core.js +769 -0
- package/dist/core.js.map +1 -0
- package/dist/index.d.ts +689 -0
- package/dist/index.js +72850 -0
- package/dist/index.js.map +1 -0
- package/eth-contracts/ABIs/Address.json +4 -0
- package/eth-contracts/ABIs/AudiusAdminUpgradeabilityProxy.json +105 -0
- package/eth-contracts/ABIs/AudiusClaimDistributor.json +4968 -0
- package/eth-contracts/ABIs/AudiusToken.json +724 -0
- package/eth-contracts/ABIs/BaseUpgradeabilityProxy.json +23 -0
- package/eth-contracts/ABIs/Checkpointing.json +4 -0
- package/eth-contracts/ABIs/ClaimsManager.json +539 -0
- package/eth-contracts/ABIs/Context.json +11 -0
- package/eth-contracts/ABIs/DelegateManager.json +989 -0
- package/eth-contracts/ABIs/DelegateManagerV2.json +1049 -0
- package/eth-contracts/ABIs/DelegateManagerV2Bad.json +1049 -0
- package/eth-contracts/ABIs/ERC20.json +252 -0
- package/eth-contracts/ABIs/ERC20Burnable.json +287 -0
- package/eth-contracts/ABIs/ERC20Detailed.json +270 -0
- package/eth-contracts/ABIs/ERC20Mintable.json +364 -0
- package/eth-contracts/ABIs/ERC20Pausable.json +397 -0
- package/eth-contracts/ABIs/EthRewardsManager.json +174 -0
- package/eth-contracts/ABIs/Governance.json +938 -0
- package/eth-contracts/ABIs/GovernanceUpgraded.json +953 -0
- package/eth-contracts/ABIs/GovernanceV2.json +938 -0
- package/eth-contracts/ABIs/IERC20.json +200 -0
- package/eth-contracts/ABIs/Initializable.json +4 -0
- package/eth-contracts/ABIs/InitializableV2.json +14 -0
- package/eth-contracts/ABIs/Migrations.json +71 -0
- package/eth-contracts/ABIs/MinterRole.json +91 -0
- package/eth-contracts/ABIs/MockAccount.json +62 -0
- package/eth-contracts/ABIs/MockDelegateManager.json +55 -0
- package/eth-contracts/ABIs/MockStakingCaller.json +259 -0
- package/eth-contracts/ABIs/MockWormhole.json +106 -0
- package/eth-contracts/ABIs/OpenZeppelinUpgradesAddress.json +4 -0
- package/eth-contracts/ABIs/Ownable.json +93 -0
- package/eth-contracts/ABIs/Pausable.json +150 -0
- package/eth-contracts/ABIs/PauserRole.json +91 -0
- package/eth-contracts/ABIs/Proxy.json +10 -0
- package/eth-contracts/ABIs/Registry.json +288 -0
- package/eth-contracts/ABIs/Roles.json +4 -0
- package/eth-contracts/ABIs/SafeERC20.json +4 -0
- package/eth-contracts/ABIs/SafeMath.json +4 -0
- package/eth-contracts/ABIs/ServiceProviderFactory.json +1153 -0
- package/eth-contracts/ABIs/ServiceTypeManager.json +337 -0
- package/eth-contracts/ABIs/Staking.json +555 -0
- package/eth-contracts/ABIs/StakingUpgraded.json +570 -0
- package/eth-contracts/ABIs/TestContract.json +44 -0
- package/eth-contracts/ABIs/TrustedNotifierManager.json +265 -0
- package/eth-contracts/ABIs/Uint256Helpers.json +4 -0
- package/eth-contracts/ABIs/UpgradeabilityProxy.json +40 -0
- package/eth-contracts/ABIs/Wormhole.json +45 -0
- package/eth-contracts/ABIs/WormholeClient.json +155 -0
- package/examples/file.mp3 +0 -0
- package/examples/initAudiusLibs.js +86 -0
- package/examples/initializeVersions.js +95 -0
- package/examples/pic.jpg +0 -0
- package/initScripts/configureLocalDiscProv.js +167 -0
- package/initScripts/helpers/claim.js +43 -0
- package/initScripts/helpers/distributeTokens.js +24 -0
- package/initScripts/helpers/spRegistration.js +138 -0
- package/initScripts/helpers/utils.js +34 -0
- package/initScripts/helpers/version.js +93 -0
- package/initScripts/local.js +617 -0
- package/initScripts/mainnet.js +131 -0
- package/initScripts/manageProdRelayerWallets.js +191 -0
- package/package.json +125 -0
- package/rollup.config.js +164 -0
- package/scripts/AudiusClaimDistributor.json +4968 -0
- package/scripts/Wormhole.json +155 -0
- package/scripts/addCIDToIpldBlacklist.js +124 -0
- package/scripts/circleci-test.sh +53 -0
- package/scripts/communityRewards/transferCommunityRewardsToSolana.js +222 -0
- package/scripts/ipfs.sh +58 -0
- package/scripts/migrate_contracts.sh +25 -0
- package/scripts/reset.sh +65 -0
- package/scripts/test.sh +77 -0
- package/src/api/account.js +670 -0
- package/src/api/base.js +122 -0
- package/src/api/file.js +168 -0
- package/src/api/playlist.js +328 -0
- package/src/api/rewards.d.ts +4 -0
- package/src/api/rewards.js +682 -0
- package/src/api/serviceProvider.js +154 -0
- package/src/api/track.js +604 -0
- package/src/api/user.js +888 -0
- package/src/api/user.test.js +172 -0
- package/src/constants.ts +7 -0
- package/src/core.ts +3 -0
- package/src/index.js +6 -0
- package/src/libs.d.ts +3 -0
- package/src/libs.js +619 -0
- package/src/sanityChecks/addSecondaries.js +40 -0
- package/src/sanityChecks/assignReplicaSetIfNecessary.js +10 -0
- package/src/sanityChecks/index.d.ts +9 -0
- package/src/sanityChecks/index.js +31 -0
- package/src/sanityChecks/isCreator.js +73 -0
- package/src/sanityChecks/needsRecoveryEmail.js +20 -0
- package/src/sanityChecks/rolloverNodes.js +74 -0
- package/src/sanityChecks/sanitizeNodes.js +24 -0
- package/src/sanityChecks/syncNodes.js +28 -0
- package/src/sdk/constants.ts +10 -0
- package/src/sdk/index.ts +1 -0
- package/src/sdk/oauth/Oauth.ts +265 -0
- package/src/sdk/oauth/index.ts +1 -0
- package/src/sdk/sdk.ts +102 -0
- package/src/service-selection/ServiceSelection.test.ts +320 -0
- package/src/service-selection/ServiceSelection.ts +460 -0
- package/src/service-selection/constants.ts +14 -0
- package/src/service-selection/index.ts +1 -0
- package/src/services/ABIDecoder/AudiusABIDecoder.ts +71 -0
- package/src/services/ABIDecoder/index.ts +1 -0
- package/src/services/comstock/Comstock.ts +39 -0
- package/src/services/comstock/index.ts +1 -0
- package/src/services/contracts/ContractClient.ts +227 -0
- package/src/services/contracts/GovernedContractClient.ts +53 -0
- package/src/services/contracts/ProviderSelection.ts +42 -0
- package/src/services/creatorNode/CreatorNode.ts +1065 -0
- package/src/services/creatorNode/CreatorNodeSelection.test.ts +997 -0
- package/src/services/creatorNode/CreatorNodeSelection.ts +488 -0
- package/src/services/creatorNode/constants.ts +10 -0
- package/src/services/creatorNode/index.ts +2 -0
- package/src/services/dataContracts/AudiusContracts.ts +234 -0
- package/src/services/dataContracts/IPLDBlacklistFactoryClient.ts +73 -0
- package/src/services/dataContracts/PlaylistFactoryClient.ts +370 -0
- package/src/services/dataContracts/RegistryClient.ts +95 -0
- package/src/services/dataContracts/SocialFeatureFactoryClient.ts +196 -0
- package/src/services/dataContracts/TrackFactoryClient.ts +131 -0
- package/src/services/dataContracts/UserFactoryClient.ts +351 -0
- package/src/services/dataContracts/UserLibraryFactoryClient.ts +115 -0
- package/src/services/dataContracts/UserReplicaSetManagerClient.ts +206 -0
- package/src/services/dataContracts/index.ts +1 -0
- package/src/services/discoveryProvider/DiscoveryProvider.ts +1168 -0
- package/src/services/discoveryProvider/DiscoveryProviderSelection.test.ts +536 -0
- package/src/services/discoveryProvider/DiscoveryProviderSelection.ts +383 -0
- package/src/services/discoveryProvider/constants.ts +13 -0
- package/src/services/discoveryProvider/index.ts +1 -0
- package/src/services/discoveryProvider/requests.ts +629 -0
- package/src/services/ethContracts/AudiusTokenClient.ts +163 -0
- package/src/services/ethContracts/ClaimDistributionClient.ts +45 -0
- package/src/services/ethContracts/ClaimsManagerClient.ts +102 -0
- package/src/services/ethContracts/DelegateManagerClient.ts +480 -0
- package/src/services/ethContracts/EthContracts.ts +359 -0
- package/src/services/ethContracts/EthRewardsManagerClient.ts +33 -0
- package/src/services/ethContracts/GovernanceClient.ts +451 -0
- package/src/services/ethContracts/RegistryClient.ts +33 -0
- package/src/services/ethContracts/ServiceProviderFactoryClient.ts +691 -0
- package/src/services/ethContracts/ServiceTypeManagerClient.ts +112 -0
- package/src/services/ethContracts/StakingProxyClient.ts +97 -0
- package/src/services/ethContracts/TrustedNotifierManagerClient.ts +101 -0
- package/src/services/ethContracts/WormholeClient.ts +97 -0
- package/src/services/ethContracts/index.ts +1 -0
- package/src/services/ethWeb3Manager/EthWeb3Manager.ts +239 -0
- package/src/services/ethWeb3Manager/index.ts +1 -0
- package/src/services/hedgehog/Hedgehog.ts +96 -0
- package/src/services/hedgehog/index.ts +1 -0
- package/src/services/identity/IdentityService.ts +551 -0
- package/src/services/identity/index.ts +1 -0
- package/src/services/identity/requests.ts +65 -0
- package/src/services/schemaValidator/SchemaValidator.ts +105 -0
- package/src/services/schemaValidator/index.ts +1 -0
- package/src/services/schemaValidator/schemas/trackSchema.json +267 -0
- package/src/services/schemaValidator/schemas/userSchema.json +230 -0
- package/src/services/solanaAudiusData/errors.ts +20 -0
- package/src/services/solanaAudiusData/index.ts +1189 -0
- package/src/services/solanaWeb3Manager/errors.js +101 -0
- package/src/services/solanaWeb3Manager/index.d.ts +46 -0
- package/src/services/solanaWeb3Manager/index.js +655 -0
- package/src/services/solanaWeb3Manager/padBNToUint8Array.ts +7 -0
- package/src/services/solanaWeb3Manager/rewards.js +941 -0
- package/src/services/solanaWeb3Manager/rewardsAttester.ts +1093 -0
- package/src/services/solanaWeb3Manager/tokenAccount.js +149 -0
- package/src/services/solanaWeb3Manager/transactionHandler.js +345 -0
- package/src/services/solanaWeb3Manager/transfer.js +272 -0
- package/src/services/solanaWeb3Manager/userBank.js +160 -0
- package/src/services/solanaWeb3Manager/utils.d.ts +31 -0
- package/src/services/solanaWeb3Manager/utils.js +163 -0
- package/src/services/solanaWeb3Manager/wAudio.js +28 -0
- package/src/services/solanaWeb3Manager/wAudio.test.js +30 -0
- package/src/services/web3Manager/Web3Config.ts +14 -0
- package/src/services/web3Manager/Web3Manager.ts +360 -0
- package/src/services/web3Manager/XMLHttpRequest.ts +11 -0
- package/src/services/web3Manager/index.ts +2 -0
- package/src/services/wormhole/index.js +424 -0
- package/src/types.ts +8 -0
- package/src/userStateManager.ts +53 -0
- package/src/utils/apiSigning.ts +51 -0
- package/src/utils/captcha.ts +97 -0
- package/src/utils/estimateGas.ts +64 -0
- package/src/utils/fileHasher.ts +278 -0
- package/src/utils/importContractABI.d.ts +9 -0
- package/src/utils/importContractABI.js +19 -0
- package/src/utils/index.ts +11 -0
- package/src/utils/multiProvider.ts +72 -0
- package/src/utils/network.test.ts +127 -0
- package/src/utils/network.ts +308 -0
- package/src/utils/promiseFight.test.ts +87 -0
- package/src/utils/promiseFight.ts +36 -0
- package/src/utils/signatures.ts +139 -0
- package/src/utils/types.ts +34 -0
- package/src/utils/utils.test.ts +36 -0
- package/src/utils/utils.ts +235 -0
- package/src/utils/uuid.ts +14 -0
- package/src/web3.d.ts +9 -0
- package/src/web3.js +8 -0
- package/tests/assets/static_image.png +0 -0
- package/tests/assets/static_text.txt +1 -0
- package/tests/audiusTokenClientTest.js +37 -0
- package/tests/creatorNodeTest.js +19 -0
- package/tests/fileHasherTest.js +125 -0
- package/tests/governanceTest.js +382 -0
- package/tests/helpers.js +105 -0
- package/tests/index.js +14 -0
- package/tests/playlistClientTest.js +157 -0
- package/tests/providerSelectionTest.js +241 -0
- package/tests/registryClientTest.js +19 -0
- package/tests/rewardsAttesterTest.js +373 -0
- package/tests/serviceTypeManagerClientTest.js +33 -0
- package/tests/socialFeatureClientTest.js +79 -0
- package/tests/stakingTest.js +302 -0
- package/tests/trackClientTest.js +86 -0
- package/tests/userClientTest.js +121 -0
- package/tsconfig.json +10 -0
- package/types/@audius-hedgehog/index.d.ts +39 -0
- package/types/abi-decoder/index.d.ts +41 -0
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
import semver from 'semver'
|
|
2
|
+
import { AudiusTokenClient } from './AudiusTokenClient'
|
|
3
|
+
import { RegistryClient } from './RegistryClient'
|
|
4
|
+
import { GovernanceClient } from './GovernanceClient'
|
|
5
|
+
import { ServiceTypeManagerClient } from './ServiceTypeManagerClient'
|
|
6
|
+
import { ServiceProviderFactoryClient } from './ServiceProviderFactoryClient'
|
|
7
|
+
import { StakingProxyClient } from './StakingProxyClient'
|
|
8
|
+
import { DelegateManagerClient } from './DelegateManagerClient'
|
|
9
|
+
import { ClaimsManagerClient } from './ClaimsManagerClient'
|
|
10
|
+
import { ClaimDistributionClient } from './ClaimDistributionClient'
|
|
11
|
+
import { WormholeClient } from './WormholeClient'
|
|
12
|
+
import { EthRewardsManagerClient } from './EthRewardsManagerClient'
|
|
13
|
+
import { TrustedNotifierManagerClient } from './TrustedNotifierManagerClient'
|
|
14
|
+
import { Logger, Utils } from '../../utils'
|
|
15
|
+
import type { EthWeb3Manager } from '../ethWeb3Manager'
|
|
16
|
+
import type { ContractClient } from '../contracts/ContractClient'
|
|
17
|
+
|
|
18
|
+
const AudiusTokenABI = Utils.importEthContractABI('AudiusToken.json').abi
|
|
19
|
+
const RegistryABI = Utils.importEthContractABI('Registry.json').abi
|
|
20
|
+
const GovernanceABI = Utils.importEthContractABI('Governance.json').abi
|
|
21
|
+
const ServiceTypeManagerABI = Utils.importEthContractABI(
|
|
22
|
+
'ServiceTypeManager.json'
|
|
23
|
+
).abi
|
|
24
|
+
const ServiceProviderFactoryABI = Utils.importEthContractABI(
|
|
25
|
+
'ServiceProviderFactory.json'
|
|
26
|
+
).abi
|
|
27
|
+
const StakingABI = Utils.importEthContractABI('Staking.json').abi
|
|
28
|
+
const DelegateManagerABI = Utils.importEthContractABI(
|
|
29
|
+
'DelegateManagerV2.json'
|
|
30
|
+
).abi
|
|
31
|
+
const ClaimsManagerABI = Utils.importEthContractABI('ClaimsManager.json').abi
|
|
32
|
+
const ClaimDistributionABI = Utils.importEthContractABI(
|
|
33
|
+
'AudiusClaimDistributor.json'
|
|
34
|
+
).abi
|
|
35
|
+
const WormholeClientABI = Utils.importEthContractABI('WormholeClient.json').abi
|
|
36
|
+
const EthRewardsManagerABI = Utils.importEthContractABI(
|
|
37
|
+
'EthRewardsManager.json'
|
|
38
|
+
).abi
|
|
39
|
+
const TrustedNotifierManagerABI = Utils.importEthContractABI(
|
|
40
|
+
'TrustedNotifierManager.json'
|
|
41
|
+
).abi
|
|
42
|
+
|
|
43
|
+
const GovernanceRegistryKey = 'Governance'
|
|
44
|
+
const ServiceTypeManagerProxyKey = 'ServiceTypeManagerProxy'
|
|
45
|
+
const ServiceProviderFactoryRegistryKey = 'ServiceProviderFactory'
|
|
46
|
+
const StakingProxyKey = 'StakingProxy'
|
|
47
|
+
const DelegateManagerRegistryKey = 'DelegateManager'
|
|
48
|
+
const ClaimsManagerProxyKey = 'ClaimsManagerProxy'
|
|
49
|
+
const ClaimDistributionRegistryKey = 'ClaimDistribution'
|
|
50
|
+
const EthRewardsManagerProxyKey = 'EthRewardsManagerProxy'
|
|
51
|
+
const TrustedNotifierManagerProxyKey = 'TrustedNotifierManagerProxy'
|
|
52
|
+
|
|
53
|
+
const TWO_MINUTES = 2 * 60 * 1000
|
|
54
|
+
|
|
55
|
+
export const serviceType = Object.freeze({
|
|
56
|
+
DISCOVERY_PROVIDER: 'discovery-node',
|
|
57
|
+
CREATOR_NODE: 'content-node'
|
|
58
|
+
})
|
|
59
|
+
const serviceTypeList = Object.values(serviceType)
|
|
60
|
+
|
|
61
|
+
export type EthContractsConfig = {
|
|
62
|
+
ethWeb3Manager: EthWeb3Manager
|
|
63
|
+
tokenContractAddress: string
|
|
64
|
+
registryAddress: string
|
|
65
|
+
claimDistributionContractAddress: string
|
|
66
|
+
wormholeContractAddress: string
|
|
67
|
+
isServer?: boolean
|
|
68
|
+
logger?: Logger
|
|
69
|
+
isDebug?: boolean
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export class EthContracts {
|
|
73
|
+
ethWeb3Manager: EthWeb3Manager
|
|
74
|
+
tokenContractAddress: string
|
|
75
|
+
claimDistributionContractAddress: string
|
|
76
|
+
wormholeContractAddress: string
|
|
77
|
+
registryAddress: string
|
|
78
|
+
isServer: boolean
|
|
79
|
+
logger: Logger
|
|
80
|
+
isDebug: boolean
|
|
81
|
+
expectedServiceVersions: null | string[]
|
|
82
|
+
AudiusTokenClient: AudiusTokenClient
|
|
83
|
+
RegistryClient: RegistryClient
|
|
84
|
+
StakingProxyClient: StakingProxyClient
|
|
85
|
+
GovernanceClient: GovernanceClient
|
|
86
|
+
ClaimsManagerClient: ClaimsManagerClient
|
|
87
|
+
EthRewardsManagerClient: EthRewardsManagerClient
|
|
88
|
+
ServiceTypeManagerClient: ServiceTypeManagerClient
|
|
89
|
+
ServiceProviderFactoryClient: ServiceProviderFactoryClient
|
|
90
|
+
DelegateManagerClient: DelegateManagerClient
|
|
91
|
+
ClaimDistributionClient: ClaimDistributionClient | undefined
|
|
92
|
+
WormholeClient: WormholeClient
|
|
93
|
+
TrustedNotifierManagerClient: TrustedNotifierManagerClient
|
|
94
|
+
contractClients: ContractClient[]
|
|
95
|
+
_regressedMode: boolean
|
|
96
|
+
contracts: Record<string, string> | undefined
|
|
97
|
+
contractAddresses: Record<string, string> | undefined
|
|
98
|
+
|
|
99
|
+
constructor({
|
|
100
|
+
ethWeb3Manager,
|
|
101
|
+
tokenContractAddress,
|
|
102
|
+
registryAddress,
|
|
103
|
+
claimDistributionContractAddress,
|
|
104
|
+
wormholeContractAddress,
|
|
105
|
+
isServer = false,
|
|
106
|
+
logger = console,
|
|
107
|
+
isDebug = false
|
|
108
|
+
}: EthContractsConfig) {
|
|
109
|
+
this.ethWeb3Manager = ethWeb3Manager
|
|
110
|
+
this.tokenContractAddress = tokenContractAddress
|
|
111
|
+
this.claimDistributionContractAddress = claimDistributionContractAddress
|
|
112
|
+
this.wormholeContractAddress = wormholeContractAddress
|
|
113
|
+
this.registryAddress = registryAddress
|
|
114
|
+
this.isServer = isServer
|
|
115
|
+
this.logger = logger
|
|
116
|
+
this.isDebug = isDebug
|
|
117
|
+
this.expectedServiceVersions = null
|
|
118
|
+
|
|
119
|
+
this.AudiusTokenClient = new AudiusTokenClient(
|
|
120
|
+
this.ethWeb3Manager,
|
|
121
|
+
AudiusTokenABI,
|
|
122
|
+
this.tokenContractAddress
|
|
123
|
+
)
|
|
124
|
+
this.RegistryClient = new RegistryClient(
|
|
125
|
+
this.ethWeb3Manager,
|
|
126
|
+
RegistryABI,
|
|
127
|
+
this.registryAddress
|
|
128
|
+
)
|
|
129
|
+
this.getRegistryAddressForContract =
|
|
130
|
+
this.getRegistryAddressForContract.bind(this)
|
|
131
|
+
|
|
132
|
+
this.StakingProxyClient = new StakingProxyClient(
|
|
133
|
+
this.ethWeb3Manager,
|
|
134
|
+
StakingABI,
|
|
135
|
+
StakingProxyKey,
|
|
136
|
+
this.getRegistryAddressForContract,
|
|
137
|
+
this.AudiusTokenClient,
|
|
138
|
+
this.logger
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
this.GovernanceClient = new GovernanceClient(
|
|
142
|
+
this.ethWeb3Manager,
|
|
143
|
+
GovernanceABI,
|
|
144
|
+
GovernanceRegistryKey,
|
|
145
|
+
this.getRegistryAddressForContract,
|
|
146
|
+
this.AudiusTokenClient,
|
|
147
|
+
this.StakingProxyClient,
|
|
148
|
+
this.logger
|
|
149
|
+
)
|
|
150
|
+
|
|
151
|
+
this.ClaimsManagerClient = new ClaimsManagerClient(
|
|
152
|
+
this.ethWeb3Manager,
|
|
153
|
+
ClaimsManagerABI,
|
|
154
|
+
ClaimsManagerProxyKey,
|
|
155
|
+
this.getRegistryAddressForContract,
|
|
156
|
+
this.logger
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
this.EthRewardsManagerClient = new EthRewardsManagerClient(
|
|
160
|
+
this.ethWeb3Manager,
|
|
161
|
+
EthRewardsManagerABI,
|
|
162
|
+
EthRewardsManagerProxyKey,
|
|
163
|
+
this.getRegistryAddressForContract,
|
|
164
|
+
this.logger
|
|
165
|
+
)
|
|
166
|
+
|
|
167
|
+
this.ServiceTypeManagerClient = new ServiceTypeManagerClient(
|
|
168
|
+
this.ethWeb3Manager,
|
|
169
|
+
ServiceTypeManagerABI,
|
|
170
|
+
ServiceTypeManagerProxyKey,
|
|
171
|
+
this.getRegistryAddressForContract,
|
|
172
|
+
this.GovernanceClient,
|
|
173
|
+
this.logger
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
this.ServiceProviderFactoryClient = new ServiceProviderFactoryClient(
|
|
177
|
+
this.ethWeb3Manager,
|
|
178
|
+
ServiceProviderFactoryABI,
|
|
179
|
+
ServiceProviderFactoryRegistryKey,
|
|
180
|
+
this.getRegistryAddressForContract,
|
|
181
|
+
this.AudiusTokenClient,
|
|
182
|
+
this.StakingProxyClient,
|
|
183
|
+
this.GovernanceClient,
|
|
184
|
+
this.logger,
|
|
185
|
+
this.isDebug
|
|
186
|
+
)
|
|
187
|
+
|
|
188
|
+
this.DelegateManagerClient = new DelegateManagerClient(
|
|
189
|
+
this.ethWeb3Manager,
|
|
190
|
+
DelegateManagerABI,
|
|
191
|
+
DelegateManagerRegistryKey,
|
|
192
|
+
this.getRegistryAddressForContract,
|
|
193
|
+
this.AudiusTokenClient,
|
|
194
|
+
this.StakingProxyClient,
|
|
195
|
+
this.GovernanceClient,
|
|
196
|
+
this.logger
|
|
197
|
+
)
|
|
198
|
+
|
|
199
|
+
if (this.claimDistributionContractAddress) {
|
|
200
|
+
this.ClaimDistributionClient = new ClaimDistributionClient(
|
|
201
|
+
this.ethWeb3Manager,
|
|
202
|
+
ClaimDistributionABI,
|
|
203
|
+
ClaimDistributionRegistryKey,
|
|
204
|
+
this.getRegistryAddressForContract,
|
|
205
|
+
this.logger,
|
|
206
|
+
this.claimDistributionContractAddress
|
|
207
|
+
)
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
this.WormholeClient = new WormholeClient(
|
|
211
|
+
this.ethWeb3Manager,
|
|
212
|
+
WormholeClientABI,
|
|
213
|
+
this.wormholeContractAddress,
|
|
214
|
+
this.AudiusTokenClient
|
|
215
|
+
)
|
|
216
|
+
|
|
217
|
+
this.TrustedNotifierManagerClient = new TrustedNotifierManagerClient(
|
|
218
|
+
this.ethWeb3Manager,
|
|
219
|
+
TrustedNotifierManagerABI,
|
|
220
|
+
TrustedNotifierManagerProxyKey,
|
|
221
|
+
this.getRegistryAddressForContract,
|
|
222
|
+
this.GovernanceClient,
|
|
223
|
+
this.logger
|
|
224
|
+
)
|
|
225
|
+
|
|
226
|
+
this.contractClients = [
|
|
227
|
+
this.ServiceTypeManagerClient,
|
|
228
|
+
this.StakingProxyClient,
|
|
229
|
+
this.ServiceProviderFactoryClient
|
|
230
|
+
]
|
|
231
|
+
|
|
232
|
+
// Whether or not we are running in `regressed` mode, meaning we were
|
|
233
|
+
// unable to select a discovery provider that was up-to-date. Clients may
|
|
234
|
+
// want to consider blocking writes.
|
|
235
|
+
this._regressedMode = false
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
async init() {
|
|
239
|
+
if (
|
|
240
|
+
!this.ethWeb3Manager ||
|
|
241
|
+
!this.tokenContractAddress ||
|
|
242
|
+
!this.registryAddress
|
|
243
|
+
)
|
|
244
|
+
throw new Error('Failed to initialize EthContracts')
|
|
245
|
+
|
|
246
|
+
if (this.isServer) {
|
|
247
|
+
await Promise.all(
|
|
248
|
+
this.contractClients.map(async (client) => await client.init())
|
|
249
|
+
)
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Estabilishes that connection to discovery providers has regressed
|
|
255
|
+
*/
|
|
256
|
+
enterRegressedMode() {
|
|
257
|
+
console.info('Entering regressed mode')
|
|
258
|
+
this._regressedMode = true
|
|
259
|
+
setTimeout(() => {
|
|
260
|
+
console.info('Leaving regressed mode')
|
|
261
|
+
this._regressedMode = false
|
|
262
|
+
}, TWO_MINUTES)
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
isInRegressedMode() {
|
|
266
|
+
return this._regressedMode
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
async getRegistryAddressForContract(contractName: string) {
|
|
270
|
+
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Computed_property_names
|
|
271
|
+
this.contracts = this.contracts ?? { [this.registryAddress]: 'registry' }
|
|
272
|
+
this.contractAddresses = this.contractAddresses ?? {
|
|
273
|
+
registry: this.registryAddress
|
|
274
|
+
}
|
|
275
|
+
if (!this.contractAddresses[contractName]) {
|
|
276
|
+
const address = await this.RegistryClient.getContract(contractName)
|
|
277
|
+
this.contracts[address] = contractName
|
|
278
|
+
this.contractAddresses[contractName] = address
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
return this.contractAddresses[contractName] as string
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
async getCurrentVersion(serviceType: string) {
|
|
285
|
+
try {
|
|
286
|
+
const version = await this.ServiceTypeManagerClient.getCurrentVersion(
|
|
287
|
+
serviceType
|
|
288
|
+
)
|
|
289
|
+
return version
|
|
290
|
+
} catch (e) {
|
|
291
|
+
console.log(`Error retrieving version for ${serviceType}`)
|
|
292
|
+
return ''
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/*
|
|
297
|
+
* Determine the latest version for deployed services such as discovery provider and cache
|
|
298
|
+
*/
|
|
299
|
+
async getExpectedServiceVersions() {
|
|
300
|
+
const versions = await Promise.all(
|
|
301
|
+
serviceTypeList.map(
|
|
302
|
+
async (serviceType) => await this.getCurrentVersion(serviceType)
|
|
303
|
+
)
|
|
304
|
+
)
|
|
305
|
+
const expectedVersions = serviceTypeList.reduce<
|
|
306
|
+
Record<string, string | null | undefined>
|
|
307
|
+
>((map, serviceType, i) => {
|
|
308
|
+
if (versions[i]) {
|
|
309
|
+
map[serviceType] = versions[i]
|
|
310
|
+
}
|
|
311
|
+
return map
|
|
312
|
+
}, {})
|
|
313
|
+
return expectedVersions
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Determine whether major and minor versions match for two version strings
|
|
318
|
+
* Version string 2 must have equivalent major/minor versions and a patch >= version1
|
|
319
|
+
* @param version1 string 1
|
|
320
|
+
* @param version2 string 2
|
|
321
|
+
*/
|
|
322
|
+
isValidSPVersion(version1: string, version2: string) {
|
|
323
|
+
return (
|
|
324
|
+
semver.major(version1) === semver.major(version2) &&
|
|
325
|
+
semver.minor(version1) === semver.minor(version2) &&
|
|
326
|
+
semver.patch(version2) >= semver.patch(version1)
|
|
327
|
+
)
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Determines whether the major and minor versions are equal
|
|
332
|
+
* @param version1 string 1
|
|
333
|
+
* @param version2 string 2
|
|
334
|
+
*/
|
|
335
|
+
hasSameMajorAndMinorVersion(version1: string, version2: string) {
|
|
336
|
+
return (
|
|
337
|
+
semver.major(version1) === semver.major(version2) &&
|
|
338
|
+
semver.minor(version1) === semver.minor(version2)
|
|
339
|
+
)
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
async getServiceProviderList(spType: string) {
|
|
343
|
+
return await this.ServiceProviderFactoryClient.getServiceProviderList(
|
|
344
|
+
spType
|
|
345
|
+
)
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
async getNumberOfVersions(spType: string) {
|
|
349
|
+
return await this.ServiceTypeManagerClient.getNumberOfVersions(spType)
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
async getVersion(spType: string, queryIndex: number) {
|
|
353
|
+
return await this.ServiceTypeManagerClient.getVersion(spType, queryIndex)
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
async getServiceTypeInfo(spType: string) {
|
|
357
|
+
return await this.ServiceTypeManagerClient.getServiceTypeInfo(spType)
|
|
358
|
+
}
|
|
359
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ContractClient } from '../contracts/ContractClient'
|
|
2
|
+
|
|
3
|
+
export class EthRewardsManagerClient extends ContractClient {
|
|
4
|
+
/* ------- GETTERS ------- */
|
|
5
|
+
|
|
6
|
+
// Get the token used by the contract
|
|
7
|
+
async token() {
|
|
8
|
+
const method = await this.getMethod('token')
|
|
9
|
+
const info = await method.call()
|
|
10
|
+
return info
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// Get the Governance address
|
|
14
|
+
async getGovernanceAddress() {
|
|
15
|
+
const method = await this.getMethod('getGovernanceAddress')
|
|
16
|
+
const info = await method.call()
|
|
17
|
+
return info
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Get the recipient address
|
|
21
|
+
async getRecipientAddress() {
|
|
22
|
+
const method = await this.getMethod('getRecipientAddress')
|
|
23
|
+
const info = await method.call()
|
|
24
|
+
return info
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Get the anti abuse oracle addresses
|
|
28
|
+
async getAntiAbuseOracleAddresses() {
|
|
29
|
+
const method = await this.getMethod('getAntiAbuseOracleAddresses')
|
|
30
|
+
const info = await method.call()
|
|
31
|
+
return info
|
|
32
|
+
}
|
|
33
|
+
}
|