@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,167 @@
|
|
|
1
|
+
const fs = require('fs')
|
|
2
|
+
const path = require('path')
|
|
3
|
+
const readline = require('readline')
|
|
4
|
+
const ethContractsMigrationOutput = require('../../eth-contracts/migrations/migration-output.json')
|
|
5
|
+
const solanaConfig = require('../../solana-programs/solana-program-config.json')
|
|
6
|
+
|
|
7
|
+
const ETH_CONTRACTS_REGISTRY = 'audius_eth_contracts_registry'
|
|
8
|
+
const SOLANA_TRACK_LISTEN_COUNT_ADDRESS = 'audius_solana_track_listen_count_address'
|
|
9
|
+
const SOLANA_ENDPOINT = 'audius_solana_endpoint'
|
|
10
|
+
|
|
11
|
+
const SOLANA_SIGNER_GROUP_ADDRESS = 'audius_solana_signer_group_address'
|
|
12
|
+
|
|
13
|
+
const SOLANA_USER_BANK_ADDRESS = 'audius_solana_user_bank_program_address'
|
|
14
|
+
const SOLANA_WAUDIO_MINT = 'audius_solana_waudio_mint'
|
|
15
|
+
|
|
16
|
+
const SOLANA_REWARDS_MANAGER_ADDRESS = 'audius_solana_rewards_manager_program_address'
|
|
17
|
+
const SOLANA_REWARDS_MANAGER_ACCOUNT = 'audius_solana_rewards_manager_account'
|
|
18
|
+
|
|
19
|
+
const SOLANA_ANCHOR_PROGRAM_ID = 'audius_solana_anchor_data_program_id'
|
|
20
|
+
const SOLANA_ANCHOR_ADMIN_STORAGE_PUBLIC_KEY = 'audius_solana_anchor_admin_storage_public_key'
|
|
21
|
+
|
|
22
|
+
// LOCAL DEVELOPMENT ONLY
|
|
23
|
+
// Updates audius_eth_contracts_registry in discovery provider
|
|
24
|
+
const configureLocalDiscProv = async () => {
|
|
25
|
+
const ethRegistryAddress = ethContractsMigrationOutput.registryAddress
|
|
26
|
+
const solanaTrackListenCountAddress = solanaConfig.trackListenCountAddress
|
|
27
|
+
const signerGroup = solanaConfig.signerGroup
|
|
28
|
+
const solanaEndpoint = solanaConfig.endpoint
|
|
29
|
+
const waudioMint = solanaConfig.splToken
|
|
30
|
+
const claimableTokenAddress = solanaConfig.claimableTokenAddress
|
|
31
|
+
const rewardsManagerAddress = solanaConfig.rewardsManagerAddress
|
|
32
|
+
const rewardsManagerAccount = solanaConfig.rewardsManagerAccount
|
|
33
|
+
const anchorProgramId = solanaConfig.anchorProgramId
|
|
34
|
+
const anchorAdminStoragePublicKey = solanaConfig.anchorAdminStoragePublicKey
|
|
35
|
+
console.log(`waudioAddress: ${waudioMint}, claimableTokenAddress: ${claimableTokenAddress}, waudioMint=${waudioMint}`)
|
|
36
|
+
const envPath = path.join(process.cwd(), '../../', 'discovery-provider/compose/.env')
|
|
37
|
+
|
|
38
|
+
await _updateDiscoveryProviderEnvFile(
|
|
39
|
+
envPath,
|
|
40
|
+
envPath,
|
|
41
|
+
ethRegistryAddress,
|
|
42
|
+
solanaTrackListenCountAddress,
|
|
43
|
+
solanaEndpoint,
|
|
44
|
+
signerGroup,
|
|
45
|
+
waudioMint,
|
|
46
|
+
claimableTokenAddress,
|
|
47
|
+
rewardsManagerAddress,
|
|
48
|
+
rewardsManagerAccount,
|
|
49
|
+
anchorProgramId,
|
|
50
|
+
anchorAdminStoragePublicKey,
|
|
51
|
+
)
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Write an update to the local discovery provider config .env file
|
|
55
|
+
const _updateDiscoveryProviderEnvFile = async (
|
|
56
|
+
readPath,
|
|
57
|
+
writePath,
|
|
58
|
+
ethRegistryAddress,
|
|
59
|
+
solanaTrackListenCountAddress,
|
|
60
|
+
solanaEndpoint,
|
|
61
|
+
signerGroup,
|
|
62
|
+
waudioMint,
|
|
63
|
+
claimableTokenAddress,
|
|
64
|
+
rewardsManagerAddress,
|
|
65
|
+
rewardsManagerAccount,
|
|
66
|
+
anchorProgramId,
|
|
67
|
+
anchorAdminStoragePublicKey,
|
|
68
|
+
) => {
|
|
69
|
+
const fileStream = fs.createReadStream(readPath)
|
|
70
|
+
const rl = readline.createInterface({
|
|
71
|
+
input: fileStream,
|
|
72
|
+
crlfDelay: Infinity
|
|
73
|
+
})
|
|
74
|
+
const output = []
|
|
75
|
+
let ethRegistryAddressFound = false
|
|
76
|
+
let solanaTrackListenCountAddressFound = false
|
|
77
|
+
let solanaEndpointFound = false
|
|
78
|
+
let signerGroupFound = false
|
|
79
|
+
|
|
80
|
+
let waudioMintFound = false
|
|
81
|
+
let claimableTokenAddressFound = false
|
|
82
|
+
let rewardsAddressFound = false
|
|
83
|
+
let rewardsAccountFound = false
|
|
84
|
+
let anchorProgramIdFound = false
|
|
85
|
+
let anchorAdminStoragePublicKeyFound = false
|
|
86
|
+
|
|
87
|
+
const ethRegistryAddressLine = `${ETH_CONTRACTS_REGISTRY}=${ethRegistryAddress}`
|
|
88
|
+
const solanaTrackListenCountAddressLine = `${SOLANA_TRACK_LISTEN_COUNT_ADDRESS}=${solanaTrackListenCountAddress}`
|
|
89
|
+
const solanaEndpointLine = `${SOLANA_ENDPOINT}=${solanaEndpoint}`
|
|
90
|
+
const signerGroupLine = `${SOLANA_SIGNER_GROUP_ADDRESS}=${signerGroup}`
|
|
91
|
+
const waudioMintLine = `${SOLANA_WAUDIO_MINT}=${waudioMint}`
|
|
92
|
+
const claimableTokenAddressLine = `${SOLANA_USER_BANK_ADDRESS}=${claimableTokenAddress}`
|
|
93
|
+
const rewardsManagerAddressLine = `${SOLANA_REWARDS_MANAGER_ADDRESS}=${rewardsManagerAddress}`
|
|
94
|
+
const rewardsManagerAccountLine = `${SOLANA_REWARDS_MANAGER_ACCOUNT}=${rewardsManagerAccount}`
|
|
95
|
+
const anchorProgramIdLine = `${SOLANA_ANCHOR_PROGRAM_ID}=${anchorProgramId}`
|
|
96
|
+
const anchorAdminStoragePublicKeyLine = `${SOLANA_ANCHOR_ADMIN_STORAGE_PUBLIC_KEY}=${anchorAdminStoragePublicKey}`
|
|
97
|
+
|
|
98
|
+
for await (const line of rl) {
|
|
99
|
+
if (line.includes(ETH_CONTRACTS_REGISTRY)) {
|
|
100
|
+
output.push(ethRegistryAddressLine)
|
|
101
|
+
ethRegistryAddressFound = true
|
|
102
|
+
} else if (line.includes(SOLANA_TRACK_LISTEN_COUNT_ADDRESS)) {
|
|
103
|
+
output.push(solanaTrackListenCountAddressLine)
|
|
104
|
+
solanaTrackListenCountAddressFound = true
|
|
105
|
+
} else if (line.includes(SOLANA_ENDPOINT)) {
|
|
106
|
+
output.push(solanaEndpointLine)
|
|
107
|
+
solanaEndpointFound = true
|
|
108
|
+
} else if (line.includes(SOLANA_SIGNER_GROUP_ADDRESS)) {
|
|
109
|
+
output.push(signerGroupLine)
|
|
110
|
+
signerGroupFound = true
|
|
111
|
+
} else if (line.includes(SOLANA_USER_BANK_ADDRESS)) {
|
|
112
|
+
output.push(claimableTokenAddressLine)
|
|
113
|
+
claimableTokenAddressFound = true
|
|
114
|
+
} else if (line.includes(SOLANA_WAUDIO_MINT)) {
|
|
115
|
+
output.push(waudioMintLine)
|
|
116
|
+
waudioMintFound = true
|
|
117
|
+
} else if (line.includes(SOLANA_REWARDS_MANAGER_ADDRESS)) {
|
|
118
|
+
output.push(rewardsManagerAddressLine)
|
|
119
|
+
rewardsAddressFound = true
|
|
120
|
+
} else if (line.includes(SOLANA_REWARDS_MANAGER_ACCOUNT)) {
|
|
121
|
+
output.push(rewardsManagerAccountLine)
|
|
122
|
+
rewardsAccountFound = true
|
|
123
|
+
} else if (line.includes(SOLANA_ANCHOR_PROGRAM_ID)) {
|
|
124
|
+
output.push(anchorProgramIdLine)
|
|
125
|
+
anchorProgramIdFound = true
|
|
126
|
+
} else if (line.includes(SOLANA_ANCHOR_ADMIN_STORAGE_PUBLIC_KEY)) {
|
|
127
|
+
output.push(anchorAdminStoragePublicKeyLine)
|
|
128
|
+
anchorAdminStoragePublicKeyFound = true
|
|
129
|
+
} else {
|
|
130
|
+
output.push(line)
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (!ethRegistryAddressFound) {
|
|
134
|
+
output.push(ethRegistryAddressLine)
|
|
135
|
+
}
|
|
136
|
+
if (!solanaTrackListenCountAddressFound) {
|
|
137
|
+
output.push(solanaTrackListenCountAddressLine)
|
|
138
|
+
}
|
|
139
|
+
if (!solanaEndpointFound) {
|
|
140
|
+
output.push(solanaEndpointLine)
|
|
141
|
+
}
|
|
142
|
+
if (!signerGroupFound) {
|
|
143
|
+
output.push(signerGroupLine)
|
|
144
|
+
}
|
|
145
|
+
if (!waudioMintFound) {
|
|
146
|
+
output.push(waudioMintLine)
|
|
147
|
+
}
|
|
148
|
+
if (!claimableTokenAddressFound) {
|
|
149
|
+
output.push(claimableTokenAddressLine)
|
|
150
|
+
}
|
|
151
|
+
if (!rewardsAddressFound) {
|
|
152
|
+
output.push(rewardsManagerAddressLine)
|
|
153
|
+
}
|
|
154
|
+
if (!rewardsAccountFound) {
|
|
155
|
+
output.push(rewardsManagerAccountLine)
|
|
156
|
+
}
|
|
157
|
+
if (!anchorProgramIdFound) {
|
|
158
|
+
output.push(anchorProgramIdLine)
|
|
159
|
+
}
|
|
160
|
+
if (!anchorAdminStoragePublicKeyFound) {
|
|
161
|
+
output.push(anchorAdminStoragePublicKeyLine)
|
|
162
|
+
}
|
|
163
|
+
fs.writeFileSync(writePath, output.join('\n'))
|
|
164
|
+
console.log(`Updated DISCOVERY PROVIDER ${writePath} ${ETH_CONTRACTS_REGISTRY}=${ethRegistryAddress} ${output}`)
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
configureLocalDiscProv()
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
const { getEthWeb3AndAccounts, convertAudsToWeiBN } = require('./utils')
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @param {Object} audiusLibs fully formed audius libs instance with eth contracts connection
|
|
5
|
+
*/
|
|
6
|
+
async function getClaimInfo (audiusLibs) {
|
|
7
|
+
if (!audiusLibs) throw new Error('audiusLibs is not defined')
|
|
8
|
+
|
|
9
|
+
// @dev - audius instance numbering is off-by-1 from accounts to
|
|
10
|
+
// align with creator/track numbering below, which are 1-indexed
|
|
11
|
+
const claimInfo = await audiusLibs.ethContracts.StakingProxyClient.getClaimInfo()
|
|
12
|
+
console.log('getClaimInfo', claimInfo)
|
|
13
|
+
return claimInfo
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Funds the treasury that service providers can claim from
|
|
18
|
+
* @param {Object} audiusLibs fully formed audius libs instance with eth contracts connection
|
|
19
|
+
* @param {String} amountOfAUDS integer amount of auds tokens
|
|
20
|
+
* @param {String} privateKey The private key string
|
|
21
|
+
*/
|
|
22
|
+
async function fundNewClaim (audiusLibs, amountOfAUDS, privateKey = null) {
|
|
23
|
+
if (!audiusLibs) throw new Error('audiusLibs is not defined')
|
|
24
|
+
if (!amountOfAUDS) throw new Error('fundNewClaim requires an amountOfAUDS property')
|
|
25
|
+
|
|
26
|
+
const { ethWeb3 } = await getEthWeb3AndAccounts(audiusLibs)
|
|
27
|
+
const libOwner = audiusLibs.ethContracts.ethWeb3Manager.getWalletAddress()
|
|
28
|
+
|
|
29
|
+
console.log('/---- Funding new claim')
|
|
30
|
+
const bal = await audiusLibs.ethContracts.AudiusTokenClient.balanceOf(libOwner)
|
|
31
|
+
console.log(bal)
|
|
32
|
+
const claimAmountInAudWeiBN = convertAudsToWeiBN(ethWeb3, amountOfAUDS)
|
|
33
|
+
console.log(claimAmountInAudWeiBN)
|
|
34
|
+
|
|
35
|
+
// Actually perform fund op
|
|
36
|
+
const tx = await audiusLibs.ethContracts.StakingProxyClient.fundNewClaim(claimAmountInAudWeiBN, privateKey)
|
|
37
|
+
console.log(tx)
|
|
38
|
+
console.log('/---- End funding new claim')
|
|
39
|
+
|
|
40
|
+
return getClaimInfo(audiusLibs)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
module.exports = { getClaimInfo, fundNewClaim }
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
const { getEthWeb3AndAccounts, convertAudsToWeiBN } = require('./utils')
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Local only
|
|
5
|
+
* @param {Object} audiusLibs fully formed audius libs instance with eth contracts connection
|
|
6
|
+
* @param {String} amountOfAUDS integer amount of auds tokens
|
|
7
|
+
*/
|
|
8
|
+
async function distributeTokens (audiusLibs, amountOfAUDS) {
|
|
9
|
+
if (!audiusLibs) throw new Error('audiusLibs is not defined')
|
|
10
|
+
|
|
11
|
+
const { ethWeb3, ethAccounts } = await getEthWeb3AndAccounts(audiusLibs)
|
|
12
|
+
|
|
13
|
+
const initialTokenInAudWeiBN = convertAudsToWeiBN(ethWeb3, amountOfAUDS)
|
|
14
|
+
await Promise.all(ethAccounts.map(async (account) => {
|
|
15
|
+
if (account === ethAccounts[0]) { return }
|
|
16
|
+
const tx = await audiusLibs.ethContracts.AudiusTokenClient.transfer(account, initialTokenInAudWeiBN)
|
|
17
|
+
console.log(`${tx.txReceipt.transactionHash} Transferred ${amountOfAUDS} to ${account}`)
|
|
18
|
+
}))
|
|
19
|
+
for (const account of ethAccounts) {
|
|
20
|
+
if (account === ethAccounts[0]) { continue }
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
module.exports = { distributeTokens }
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
const { getEthWeb3AndAccounts, convertAudsToWeiBN } = require('./utils')
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param {Object} audiusLibs fully formed audius libs instance with eth contracts connection
|
|
6
|
+
*/
|
|
7
|
+
async function getStakingParameters (audiusLibs) {
|
|
8
|
+
if (!audiusLibs) throw new Error('audiusLibs is not defined')
|
|
9
|
+
|
|
10
|
+
const min = await audiusLibs.ethContracts.StakingProxyClient.getMinStakeAmount()
|
|
11
|
+
const max = await audiusLibs.ethContracts.StakingProxyClient.getMaxStakeAmount()
|
|
12
|
+
console.log(`getStakingParameters: min: ${min}, max: ${max}`)
|
|
13
|
+
return { min, max }
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Local only
|
|
18
|
+
* @param {Object} audiusLibs fully formed audius libs instance with eth contracts connection
|
|
19
|
+
* @param {String} serviceType service type trying to register
|
|
20
|
+
* @param {String} serviceEndpoint url string of service to register
|
|
21
|
+
* @param {String} amountOfAUDS integer amount of auds tokens
|
|
22
|
+
*/
|
|
23
|
+
async function registerLocalService (audiusLibs, serviceType, serviceEndpoint, amountOfAUDS) {
|
|
24
|
+
if (!audiusLibs) throw new Error('audiusLibs is not defined')
|
|
25
|
+
if (!amountOfAUDS) throw new Error('registerLocalService requires an amountOfAuds property')
|
|
26
|
+
|
|
27
|
+
const { ethWeb3 } = await getEthWeb3AndAccounts(audiusLibs)
|
|
28
|
+
console.log('\nregistering service providers/---')
|
|
29
|
+
const initialTokenInAudWeiBN = convertAudsToWeiBN(ethWeb3, amountOfAUDS)
|
|
30
|
+
|
|
31
|
+
try {
|
|
32
|
+
// Register service
|
|
33
|
+
console.log(`registering service ${serviceType} ${serviceEndpoint}`)
|
|
34
|
+
const tx = await audiusLibs.ethContracts.ServiceProviderFactoryClient.register(
|
|
35
|
+
serviceType,
|
|
36
|
+
serviceEndpoint,
|
|
37
|
+
initialTokenInAudWeiBN)
|
|
38
|
+
console.log(`registered service ${serviceType} ${serviceEndpoint} - ${tx.txReceipt.transactionHash}`)
|
|
39
|
+
} catch (e) {
|
|
40
|
+
if (!e.toString().includes('already registered')) {
|
|
41
|
+
console.log(e)
|
|
42
|
+
} else {
|
|
43
|
+
console.log(`\n${serviceEndpoint} already registered`)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
async function updateServiceDelegateOwnerWallet (audiusLibs, serviceType, serviceEndpoint, updatedDelegateOwnerWallet) {
|
|
49
|
+
if (!audiusLibs || !serviceType || !serviceEndpoint || !updatedDelegateOwnerWallet) {
|
|
50
|
+
throw new Error('Missing required params')
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
try {
|
|
54
|
+
console.log(`Updating delegateOwnerWallet for ${serviceType} ${serviceEndpoint} with new wallet ${updatedDelegateOwnerWallet}`)
|
|
55
|
+
const tx = await audiusLibs.ethContracts.ServiceProviderFactoryClient.updateDelegateOwnerWallet(
|
|
56
|
+
serviceType, serviceEndpoint, updatedDelegateOwnerWallet
|
|
57
|
+
)
|
|
58
|
+
console.log(`Successfully updated delegateOwnerWallet for ${serviceType} ${serviceEndpoint} with new wallet ${updatedDelegateOwnerWallet} - ${JSON.stringify(tx, null, 2)}`)
|
|
59
|
+
} catch (e) {
|
|
60
|
+
throw new Error(`Failed to update delegateOwnerWallet for ${serviceType} ${serviceEndpoint} with new wallet ${updatedDelegateOwnerWallet} || ERROR ${e}`)
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Local only
|
|
66
|
+
* @param {Object} audiusLibs fully formed audius libs instance with eth contracts connection
|
|
67
|
+
* @param {String} serviceType service type trying to register
|
|
68
|
+
* @param {String} serviceEndpoint url string of service to register
|
|
69
|
+
*/
|
|
70
|
+
async function deregisterLocalService (audiusLibs, serviceType, serviceEndpoint) {
|
|
71
|
+
if (!audiusLibs) throw new Error('audiusLibs is not defined')
|
|
72
|
+
|
|
73
|
+
try {
|
|
74
|
+
// de-register service
|
|
75
|
+
console.log(`\nde-registering service ${serviceType} ${serviceEndpoint}`)
|
|
76
|
+
const tx = await audiusLibs.ethContracts.ServiceProviderFactoryClient.deregister(
|
|
77
|
+
serviceType,
|
|
78
|
+
serviceEndpoint)
|
|
79
|
+
console.dir(tx, { depth: 5 })
|
|
80
|
+
} catch (e) {
|
|
81
|
+
console.log(e)
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Local only
|
|
87
|
+
* @param {Object} audiusLibs fully formed audius libs instance with eth contracts connection
|
|
88
|
+
* @param {Array} serviceTypeList List of services to query
|
|
89
|
+
* @param {Boolean} queryUserReplicaSetManager Conditionally query L2 replica set contract
|
|
90
|
+
*/
|
|
91
|
+
async function queryLocalServices (audiusLibs, serviceTypeList, queryUserReplicaSetManager = false) {
|
|
92
|
+
if (!audiusLibs) throw new Error('audiusLibs is not defined')
|
|
93
|
+
|
|
94
|
+
console.log('\n----querying service providers')
|
|
95
|
+
const { ethAccounts } = await getEthWeb3AndAccounts(audiusLibs)
|
|
96
|
+
let cnodesInfoList = null
|
|
97
|
+
|
|
98
|
+
for (const spType of serviceTypeList) {
|
|
99
|
+
console.log(`${spType}`)
|
|
100
|
+
const spList = await audiusLibs.ethContracts.ServiceProviderFactoryClient.getServiceProviderList(spType)
|
|
101
|
+
if (spType === 'content-node') {
|
|
102
|
+
cnodesInfoList = spList
|
|
103
|
+
}
|
|
104
|
+
for (const sp of spList) {
|
|
105
|
+
console.log(sp)
|
|
106
|
+
const { spID, type, endpoint } = sp
|
|
107
|
+
const idFromEndpoint =
|
|
108
|
+
await audiusLibs.ethContracts.ServiceProviderFactoryClient.getServiceProviderIdFromEndpoint(endpoint)
|
|
109
|
+
console.log(`ID from endpoint: ${idFromEndpoint}`)
|
|
110
|
+
const infoFromId =
|
|
111
|
+
await audiusLibs.ethContracts.ServiceProviderFactoryClient.getServiceEndpointInfo(type, spID)
|
|
112
|
+
const jsonInfoFromId = JSON.stringify(infoFromId)
|
|
113
|
+
console.log(`Info from ID: ${jsonInfoFromId}`)
|
|
114
|
+
const idsFromAddress =
|
|
115
|
+
await audiusLibs.ethContracts.ServiceProviderFactoryClient.getServiceProviderIdsFromAddress(
|
|
116
|
+
ethAccounts[0],
|
|
117
|
+
type)
|
|
118
|
+
console.log(`SP IDs from owner wallet ${ethAccounts[0]}: ${idsFromAddress}`)
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const numProvs = await audiusLibs.ethContracts.ServiceProviderFactoryClient.getTotalServiceTypeProviders(spType)
|
|
122
|
+
console.log(`${numProvs} instances of ${spType}`)
|
|
123
|
+
}
|
|
124
|
+
console.log('----done querying service providers')
|
|
125
|
+
if (queryUserReplicaSetManager) {
|
|
126
|
+
console.log('\n----querying UserReplicaSetManager on data-contracts')
|
|
127
|
+
for (const cnode of cnodesInfoList) {
|
|
128
|
+
const spInfoFromUrsm = await audiusLibs.contracts.UserReplicaSetManagerClient.getContentNodeWallets(cnode.spID)
|
|
129
|
+
const delegateWalletFromUrsmContract = spInfoFromUrsm.delegateOwnerWallet
|
|
130
|
+
const ownerWalletFromUrsmContract = spInfoFromUrsm.ownerWallet
|
|
131
|
+
console.log(`spID ${cnode.spID} | \
|
|
132
|
+
eth-contracts delegateWallet=${cnode.delegateOwnerWallet}, data-contracts delegateOwnerWallet=${delegateWalletFromUrsmContract}, ownerWallet=${ownerWalletFromUrsmContract}`)
|
|
133
|
+
}
|
|
134
|
+
console.log('----done querying UserReplicaSetManager on data-contracts\n')
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
module.exports = { getStakingParameters, registerLocalService, deregisterLocalService, queryLocalServices, updateServiceDelegateOwnerWallet }
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const util = require('util')
|
|
2
|
+
const exec = util.promisify(require('child_process').exec)
|
|
3
|
+
/**
|
|
4
|
+
* *NOTE* - this should only be used for local functions
|
|
5
|
+
* Given an audiusLibs instance, return web3 instance from ethWeb3Manager
|
|
6
|
+
* @param {*} audiusLibs
|
|
7
|
+
*/
|
|
8
|
+
async function getEthWeb3AndAccounts (audiusLibs) {
|
|
9
|
+
const ethWeb3 = audiusLibs.ethWeb3Manager.getWeb3()
|
|
10
|
+
const ethAccounts = await ethWeb3.eth.getAccounts()
|
|
11
|
+
return { ethWeb3, ethAccounts }
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function convertAudsToWeiBN (ethWeb3, amountOfAUDS) {
|
|
15
|
+
const tokenInWei = ethWeb3.utils.toWei(amountOfAUDS.toString(), 'ether')
|
|
16
|
+
return ethWeb3.utils.toBN(tokenInWei)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
async function execParseOutput (cmd) {
|
|
20
|
+
const r = await exec(cmd)
|
|
21
|
+
const stdout = r.stdout
|
|
22
|
+
const parsed = JSON.parse(stdout)
|
|
23
|
+
return parsed
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
async function getDataContractAccounts () {
|
|
27
|
+
return execParseOutput('docker exec audius_ganache_cli cat contracts-ganache-accounts.json')
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
async function getEthContractAccounts () {
|
|
31
|
+
return execParseOutput('docker exec audius_ganache_cli_eth_contracts cat eth-contracts-ganache-accounts.json')
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
module.exports = { getEthWeb3AndAccounts, convertAudsToWeiBN, getDataContractAccounts, getEthContractAccounts }
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
const web3 = require('web3')
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @param {Object} audiusLibs fully formed audius libs instance with eth contracts connection
|
|
6
|
+
* @param {String} serviceType service type trying to register
|
|
7
|
+
* @param {String} serviceVersionStr version string to register
|
|
8
|
+
* @param {String?} privateKey optional private key string
|
|
9
|
+
* @param {Boolean?} dryRun Optional parameter to return the generated parameters without sending tx
|
|
10
|
+
*/
|
|
11
|
+
async function setServiceVersion (audiusLibs, serviceType, serviceVersionStr, privateKey = null, dryRun = false) {
|
|
12
|
+
if (!audiusLibs) throw new Error('audiusLibs is not defined')
|
|
13
|
+
|
|
14
|
+
const validServiceTypes = ['discovery-node', 'content-node']
|
|
15
|
+
if (!validServiceTypes.includes(serviceType)) {
|
|
16
|
+
throw new Error(`Invalid serviceType: ${serviceType}, must be in ${validServiceTypes}`)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
console.log('----version init---')
|
|
20
|
+
let resp
|
|
21
|
+
try {
|
|
22
|
+
resp = await audiusLibs.ethContracts.ServiceTypeManagerClient.setServiceVersion(
|
|
23
|
+
serviceType,
|
|
24
|
+
serviceVersionStr,
|
|
25
|
+
privateKey,
|
|
26
|
+
dryRun
|
|
27
|
+
)
|
|
28
|
+
} catch (e) {
|
|
29
|
+
if (!e.toString().includes('Already registered')) {
|
|
30
|
+
console.log(e)
|
|
31
|
+
return
|
|
32
|
+
} else {
|
|
33
|
+
console.log('Already registered')
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// this prints out the fields and values to be submitted onto the Governance dashboard
|
|
38
|
+
// to create new proposals
|
|
39
|
+
if (dryRun) {
|
|
40
|
+
console.log(`
|
|
41
|
+
Set latest ${serviceType} version on chain to v${serviceVersionStr}
|
|
42
|
+
ServiceTypeManagerProxy
|
|
43
|
+
setServiceVersion(bytes32,bytes32)
|
|
44
|
+
${resp}
|
|
45
|
+
|
|
46
|
+
Description:
|
|
47
|
+
Git SHA - <SHA>
|
|
48
|
+
Link to release - <URL>
|
|
49
|
+
`)
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const versionTx = await audiusLibs.ethContracts.ServiceTypeManagerClient.getCurrentVersion(serviceType)
|
|
53
|
+
const numVersionsTx = await audiusLibs.ethContracts.ServiceTypeManagerClient.getNumberOfVersions(serviceType)
|
|
54
|
+
console.log(`${serviceType} | current version: ${versionTx} | number of versions : ${numVersionsTx}`)
|
|
55
|
+
|
|
56
|
+
console.log('/----version init---')
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Add a new service type on chain
|
|
61
|
+
* @param {Object} audiusLibs fully formed audius libs instance with eth contracts connection
|
|
62
|
+
* @param {String} serviceType service type trying to register
|
|
63
|
+
* @param {String} serviceTypeMin minimum stake for serviceType
|
|
64
|
+
* @param {String} serviceTypeMax maximum stake for serviceType
|
|
65
|
+
* @param {String?} privateKey optional private key string
|
|
66
|
+
*/
|
|
67
|
+
async function addServiceType (audiusLibs, serviceType, serviceTypeMin, serviceTypeMax, privateKey = null) {
|
|
68
|
+
if (!audiusLibs) throw new Error('audiusLibs is not defined')
|
|
69
|
+
|
|
70
|
+
console.log('----addServiceType---')
|
|
71
|
+
const weiMin = web3.utils.toWei(serviceTypeMin.toString(), 'ether')
|
|
72
|
+
const weiMax = web3.utils.toWei(serviceTypeMax.toString(), 'ether')
|
|
73
|
+
|
|
74
|
+
try {
|
|
75
|
+
const resp = await audiusLibs.ethContracts.ServiceTypeManagerClient.addServiceType(
|
|
76
|
+
serviceType,
|
|
77
|
+
weiMin,
|
|
78
|
+
weiMax,
|
|
79
|
+
privateKey)
|
|
80
|
+
console.log(resp)
|
|
81
|
+
} catch (e) {
|
|
82
|
+
console.error('Could not add new service type', e)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
const serviceTypeInfo = await audiusLibs.ethContracts.ServiceTypeManagerClient.getServiceTypeInfo(serviceType)
|
|
86
|
+
console.log(`Expected values for ${serviceType} | expected min ${weiMin} | expected max ${weiMax}`)
|
|
87
|
+
console.log(`Values from contract: ${JSON.stringify(serviceTypeInfo)}`)
|
|
88
|
+
console.log(`Min: ${serviceTypeInfo.minStake.toString()} Max: ${serviceTypeInfo.maxStake.toString()}`)
|
|
89
|
+
|
|
90
|
+
console.log('/----addServiceType---')
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
module.exports = { setServiceVersion, addServiceType }
|