@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,480 @@
|
|
|
1
|
+
import type BN from 'bn.js'
|
|
2
|
+
import { ContractABI, Logger, Utils } from '../../utils'
|
|
3
|
+
import type { GetRegistryAddress } from '../contracts/ContractClient'
|
|
4
|
+
import { GovernedContractClient } from '../contracts/GovernedContractClient'
|
|
5
|
+
import type { EthWeb3Manager } from '../ethWeb3Manager'
|
|
6
|
+
import type { AudiusTokenClient } from './AudiusTokenClient'
|
|
7
|
+
import type { GovernanceClient } from './GovernanceClient'
|
|
8
|
+
import type { StakingProxyClient } from './StakingProxyClient'
|
|
9
|
+
|
|
10
|
+
type GetEvent = {
|
|
11
|
+
delegator: string
|
|
12
|
+
serviceProvider: string
|
|
13
|
+
queryStartBlock: number
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export class DelegateManagerClient extends GovernedContractClient {
|
|
17
|
+
audiusTokenClient: AudiusTokenClient
|
|
18
|
+
stakingProxyClient: StakingProxyClient
|
|
19
|
+
|
|
20
|
+
constructor(
|
|
21
|
+
ethWeb3Manager: EthWeb3Manager,
|
|
22
|
+
contractABI: ContractABI['abi'],
|
|
23
|
+
contractRegistryKey: string,
|
|
24
|
+
getRegistryAddress: GetRegistryAddress,
|
|
25
|
+
audiusTokenClient: AudiusTokenClient,
|
|
26
|
+
stakingProxyClient: StakingProxyClient,
|
|
27
|
+
governanceClient: GovernanceClient,
|
|
28
|
+
logger: Logger = console
|
|
29
|
+
) {
|
|
30
|
+
super(
|
|
31
|
+
ethWeb3Manager,
|
|
32
|
+
contractABI,
|
|
33
|
+
contractRegistryKey,
|
|
34
|
+
getRegistryAddress,
|
|
35
|
+
governanceClient,
|
|
36
|
+
logger
|
|
37
|
+
)
|
|
38
|
+
this.audiusTokenClient = audiusTokenClient
|
|
39
|
+
this.stakingProxyClient = stakingProxyClient
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
async delegateStake(targetSP: string, amount: BN) {
|
|
43
|
+
// Approve token transfer operation
|
|
44
|
+
const contractAddress = await this.stakingProxyClient.getAddress()
|
|
45
|
+
const tx0 = await this.audiusTokenClient.approve(contractAddress, amount)
|
|
46
|
+
const method = await this.getMethod('delegateStake', targetSP, amount)
|
|
47
|
+
const tx = await this.web3Manager.sendTransaction(method)
|
|
48
|
+
|
|
49
|
+
const returnValues = tx.events?.['IncreaseDelegatedStake']?.returnValues
|
|
50
|
+
|
|
51
|
+
return {
|
|
52
|
+
txReceipt: tx,
|
|
53
|
+
tokenApproveReceipt: tx0,
|
|
54
|
+
delegator: returnValues?._delegator,
|
|
55
|
+
serviceProvider: returnValues?._serviceProvider,
|
|
56
|
+
increaseAmount: Utils.toBN(returnValues?._increaseAmount)
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* Pass either delegator or serviceProvider filters */
|
|
61
|
+
async getIncreaseDelegateStakeEvents({
|
|
62
|
+
delegator,
|
|
63
|
+
serviceProvider,
|
|
64
|
+
queryStartBlock = 0
|
|
65
|
+
}: GetEvent) {
|
|
66
|
+
const contract = await this.getContract()
|
|
67
|
+
const filter: { _delegator?: string; _serviceProvider?: string } = {}
|
|
68
|
+
if (delegator) {
|
|
69
|
+
filter._delegator = delegator
|
|
70
|
+
} else {
|
|
71
|
+
filter._serviceProvider = serviceProvider
|
|
72
|
+
}
|
|
73
|
+
const events = await contract.getPastEvents('IncreaseDelegatedStake', {
|
|
74
|
+
fromBlock: queryStartBlock,
|
|
75
|
+
filter
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
return events.map((event) => ({
|
|
79
|
+
blockNumber: parseInt(event.blockNumber as unknown as string),
|
|
80
|
+
delegator: event.returnValues['_delegator'],
|
|
81
|
+
increaseAmount: Utils.toBN(event.returnValues['_increaseAmount']),
|
|
82
|
+
serviceProvider: event.returnValues['_serviceProvider']
|
|
83
|
+
}))
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
async getDecreaseDelegateStakeEvents({
|
|
87
|
+
delegator,
|
|
88
|
+
serviceProvider,
|
|
89
|
+
queryStartBlock = 0
|
|
90
|
+
}: GetEvent) {
|
|
91
|
+
const contract = await this.getContract()
|
|
92
|
+
const filter: { _delegator?: string; _serviceProvider?: string } = {}
|
|
93
|
+
if (delegator) {
|
|
94
|
+
filter._delegator = delegator
|
|
95
|
+
}
|
|
96
|
+
if (serviceProvider) {
|
|
97
|
+
filter._serviceProvider = serviceProvider
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const events = await contract.getPastEvents(
|
|
101
|
+
'UndelegateStakeRequestEvaluated',
|
|
102
|
+
{
|
|
103
|
+
fromBlock: queryStartBlock,
|
|
104
|
+
filter
|
|
105
|
+
}
|
|
106
|
+
)
|
|
107
|
+
return events.map((event) => ({
|
|
108
|
+
blockNumber: parseInt(event.blockNumber as unknown as string),
|
|
109
|
+
delegator: event.returnValues['_delegator'],
|
|
110
|
+
amount: Utils.toBN(event.returnValues['_amount']),
|
|
111
|
+
serviceProvider: event.returnValues['_serviceProvider']
|
|
112
|
+
}))
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
async getUndelegateStakeRequestedEvents({
|
|
116
|
+
delegator,
|
|
117
|
+
serviceProvider,
|
|
118
|
+
queryStartBlock = 0
|
|
119
|
+
}: GetEvent) {
|
|
120
|
+
const contract = await this.getContract()
|
|
121
|
+
const filter: { _delegator?: string; _serviceProvider?: string } = {}
|
|
122
|
+
if (delegator) {
|
|
123
|
+
filter._delegator = delegator
|
|
124
|
+
}
|
|
125
|
+
if (serviceProvider) {
|
|
126
|
+
filter._serviceProvider = serviceProvider
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
const events = await contract.getPastEvents('UndelegateStakeRequested', {
|
|
130
|
+
fromBlock: queryStartBlock,
|
|
131
|
+
filter
|
|
132
|
+
})
|
|
133
|
+
|
|
134
|
+
return events.map((event) => ({
|
|
135
|
+
blockNumber: parseInt(event.blockNumber as unknown as string),
|
|
136
|
+
lockupExpiryBlock: parseInt(event.returnValues['_lockupExpiryBlock']),
|
|
137
|
+
delegator: event.returnValues['_delegator'],
|
|
138
|
+
amount: Utils.toBN(event.returnValues['_amount']),
|
|
139
|
+
serviceProvider: event.returnValues['_serviceProvider']
|
|
140
|
+
}))
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
async getUndelegateStakeCancelledEvents({
|
|
144
|
+
delegator,
|
|
145
|
+
serviceProvider,
|
|
146
|
+
queryStartBlock = 0
|
|
147
|
+
}: GetEvent) {
|
|
148
|
+
const contract = await this.getContract()
|
|
149
|
+
const filter: { _delegator?: string; _serviceProvider?: string } = {}
|
|
150
|
+
if (delegator) {
|
|
151
|
+
filter._delegator = delegator
|
|
152
|
+
}
|
|
153
|
+
if (serviceProvider) {
|
|
154
|
+
filter._serviceProvider = serviceProvider
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
const events = await contract.getPastEvents(
|
|
158
|
+
'UndelegateStakeRequestCancelled',
|
|
159
|
+
{
|
|
160
|
+
fromBlock: queryStartBlock,
|
|
161
|
+
filter
|
|
162
|
+
}
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
return events.map((event) => ({
|
|
166
|
+
blockNumber: parseInt(event.blockNumber as unknown as string),
|
|
167
|
+
delegator: event.returnValues['_delegator'],
|
|
168
|
+
amount: Utils.toBN(event.returnValues['_amount']),
|
|
169
|
+
serviceProvider: event.returnValues['_serviceProvider']
|
|
170
|
+
}))
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
async getClaimEvents({
|
|
174
|
+
claimer,
|
|
175
|
+
queryStartBlock = 0
|
|
176
|
+
}: {
|
|
177
|
+
claimer: string
|
|
178
|
+
queryStartBlock: number
|
|
179
|
+
}) {
|
|
180
|
+
const contract = await this.getContract()
|
|
181
|
+
const events = await contract.getPastEvents('Claim', {
|
|
182
|
+
fromBlock: queryStartBlock,
|
|
183
|
+
filter: {
|
|
184
|
+
_claimer: claimer
|
|
185
|
+
}
|
|
186
|
+
})
|
|
187
|
+
return events.map((event) => ({
|
|
188
|
+
blockNumber: parseInt(event.blockNumber as unknown as string),
|
|
189
|
+
claimer: event.returnValues['_claimer'],
|
|
190
|
+
rewards: Utils.toBN(event.returnValues['_rewards']),
|
|
191
|
+
newTotal: Utils.toBN(event.returnValues['_newTotal'])
|
|
192
|
+
}))
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
async getSlashEvents({
|
|
196
|
+
target,
|
|
197
|
+
queryStartBlock = 0
|
|
198
|
+
}: {
|
|
199
|
+
target: string
|
|
200
|
+
queryStartBlock: number
|
|
201
|
+
}) {
|
|
202
|
+
const contract = await this.getContract()
|
|
203
|
+
const events = await contract.getPastEvents('Slash', {
|
|
204
|
+
fromBlock: queryStartBlock,
|
|
205
|
+
filter: {
|
|
206
|
+
_target: target
|
|
207
|
+
}
|
|
208
|
+
})
|
|
209
|
+
return events.map((event) => ({
|
|
210
|
+
blockNumber: parseInt(event.blockNumber as unknown as string),
|
|
211
|
+
target: event.returnValues['_target'],
|
|
212
|
+
amount: Utils.toBN(event.returnValues['_amount']),
|
|
213
|
+
newTotal: Utils.toBN(event.returnValues['_newTotal'])
|
|
214
|
+
}))
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
async getDelegatorRemovedEvents({
|
|
218
|
+
target,
|
|
219
|
+
queryStartBlock = 0
|
|
220
|
+
}: {
|
|
221
|
+
target: string
|
|
222
|
+
queryStartBlock: number
|
|
223
|
+
}) {
|
|
224
|
+
const contract = await this.getContract()
|
|
225
|
+
const events = await contract.getPastEvents('DelegatorRemoved', {
|
|
226
|
+
fromBlock: queryStartBlock,
|
|
227
|
+
filter: {
|
|
228
|
+
_target: target
|
|
229
|
+
}
|
|
230
|
+
})
|
|
231
|
+
return events.map((event) => ({
|
|
232
|
+
blockNumber: parseInt(event.blockNumber as unknown as string),
|
|
233
|
+
serviceProvider: event.returnValues['_serviceProvider'],
|
|
234
|
+
delegator: event.returnValues['_delegator'],
|
|
235
|
+
unstakedAmount: Utils.toBN(event.returnValues['_unstakedAmount'])
|
|
236
|
+
}))
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
async requestUndelegateStake(targetSP: string, amount: BN) {
|
|
240
|
+
const method = await this.getMethod(
|
|
241
|
+
'requestUndelegateStake',
|
|
242
|
+
targetSP,
|
|
243
|
+
amount
|
|
244
|
+
)
|
|
245
|
+
return await this.web3Manager.sendTransaction(method)
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
async cancelUndelegateStakeRequest() {
|
|
249
|
+
const method = await this.getMethod('cancelUndelegateStakeRequest')
|
|
250
|
+
return await this.web3Manager.sendTransaction(method)
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
async undelegateStake() {
|
|
254
|
+
const method = await this.getMethod('undelegateStake')
|
|
255
|
+
|
|
256
|
+
const tx = await this.web3Manager.sendTransaction(method)
|
|
257
|
+
|
|
258
|
+
const returnValues =
|
|
259
|
+
tx.events?.['UndelegateStakeRequestEvaluated']?.returnValues
|
|
260
|
+
|
|
261
|
+
return {
|
|
262
|
+
txReceipt: tx,
|
|
263
|
+
delegator: returnValues._delegator,
|
|
264
|
+
serviceProvider: returnValues._serviceProvider,
|
|
265
|
+
decreaseAmount: Utils.toBN(returnValues._amount)
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
async claimRewards(serviceProvider: string, txRetries = 5) {
|
|
270
|
+
const method = await this.getMethod('claimRewards', serviceProvider)
|
|
271
|
+
return await this.web3Manager.sendTransaction(method, null, null, txRetries)
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
async requestRemoveDelegator(serviceProvider: string, delegator: string) {
|
|
275
|
+
const method = await this.getMethod(
|
|
276
|
+
'requestRemoveDelegator',
|
|
277
|
+
serviceProvider,
|
|
278
|
+
delegator
|
|
279
|
+
)
|
|
280
|
+
return await this.web3Manager.sendTransaction(method)
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
async cancelRemoveDelegatorRequest(
|
|
284
|
+
serviceProvider: string,
|
|
285
|
+
delegator: string
|
|
286
|
+
) {
|
|
287
|
+
const method = await this.getMethod(
|
|
288
|
+
'cancelRemoveDelegatorRequest',
|
|
289
|
+
serviceProvider,
|
|
290
|
+
delegator
|
|
291
|
+
)
|
|
292
|
+
return await this.web3Manager.sendTransaction(method)
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
async removeDelegator(serviceProvider: string, delegator: string) {
|
|
296
|
+
const method = await this.getMethod(
|
|
297
|
+
'removeDelegator',
|
|
298
|
+
serviceProvider,
|
|
299
|
+
delegator
|
|
300
|
+
)
|
|
301
|
+
const tx = await this.web3Manager.sendTransaction(method)
|
|
302
|
+
const returnValues =
|
|
303
|
+
tx.events?.['RemoveDelegatorRequestEvaluated']?.returnValues
|
|
304
|
+
return {
|
|
305
|
+
txReceipt: tx,
|
|
306
|
+
delegator: returnValues._delegator,
|
|
307
|
+
serviceProvider: returnValues._serviceProvider,
|
|
308
|
+
unstakedAmount: Utils.toBN(returnValues._unstakedAmount)
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
// ========================================= View Functions =========================================
|
|
313
|
+
|
|
314
|
+
async getDelegatorsList(serviceProvider: string) {
|
|
315
|
+
const method = await this.getMethod('getDelegatorsList', serviceProvider)
|
|
316
|
+
const info = await method.call()
|
|
317
|
+
return info
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
async getTotalDelegatedToServiceProvider(serviceProvider: string) {
|
|
321
|
+
const method = await this.getMethod(
|
|
322
|
+
'getTotalDelegatedToServiceProvider',
|
|
323
|
+
serviceProvider
|
|
324
|
+
)
|
|
325
|
+
const info = await method.call()
|
|
326
|
+
return Utils.toBN(info)
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
async getTotalDelegatorStake(delegator: string) {
|
|
330
|
+
const method = await this.getMethod('getTotalDelegatorStake', delegator)
|
|
331
|
+
const info = await method.call()
|
|
332
|
+
return Utils.toBN(info)
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
async getTotalLockedDelegationForServiceProvider(serviceProvider: string) {
|
|
336
|
+
const method = await this.getMethod(
|
|
337
|
+
'getTotalLockedDelegationForServiceProvider',
|
|
338
|
+
serviceProvider
|
|
339
|
+
)
|
|
340
|
+
const info = await method.call()
|
|
341
|
+
return Utils.toBN(info)
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
async getDelegatorStakeForServiceProvider(
|
|
345
|
+
delegator: string,
|
|
346
|
+
serviceProvider: string
|
|
347
|
+
) {
|
|
348
|
+
const method = await this.getMethod(
|
|
349
|
+
'getDelegatorStakeForServiceProvider',
|
|
350
|
+
delegator,
|
|
351
|
+
serviceProvider
|
|
352
|
+
)
|
|
353
|
+
const info = await method.call()
|
|
354
|
+
return Utils.toBN(info)
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
async getPendingUndelegateRequest(delegator: string) {
|
|
358
|
+
const method = await this.getMethod(
|
|
359
|
+
'getPendingUndelegateRequest',
|
|
360
|
+
delegator
|
|
361
|
+
)
|
|
362
|
+
const info = await method.call()
|
|
363
|
+
return {
|
|
364
|
+
amount: Utils.toBN(info.amount),
|
|
365
|
+
lockupExpiryBlock: parseInt(info.lockupExpiryBlock),
|
|
366
|
+
target: info.target
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
async getPendingRemoveDelegatorRequest(
|
|
371
|
+
serviceProvider: string,
|
|
372
|
+
delegator: string
|
|
373
|
+
) {
|
|
374
|
+
const method = await this.getMethod(
|
|
375
|
+
'getPendingRemoveDelegatorRequest',
|
|
376
|
+
serviceProvider,
|
|
377
|
+
delegator
|
|
378
|
+
)
|
|
379
|
+
const info = await method.call()
|
|
380
|
+
return { lockupExpiryBlock: parseInt(info) }
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
async getUndelegateLockupDuration() {
|
|
384
|
+
const method = await this.getMethod('getUndelegateLockupDuration')
|
|
385
|
+
const info = await method.call()
|
|
386
|
+
return parseInt(info)
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
async getMaxDelegators() {
|
|
390
|
+
const method = await this.getMethod('getMaxDelegators')
|
|
391
|
+
const info = await method.call()
|
|
392
|
+
return parseInt(info)
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
async getMinDelegationAmount() {
|
|
396
|
+
const method = await this.getMethod('getMinDelegationAmount')
|
|
397
|
+
const info = await method.call()
|
|
398
|
+
return Utils.toBN(info)
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
async getRemoveDelegatorLockupDuration() {
|
|
402
|
+
const method = await this.getMethod('getRemoveDelegatorLockupDuration')
|
|
403
|
+
const info = await method.call()
|
|
404
|
+
return parseInt(info)
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
async getRemoveDelegatorEvalDuration() {
|
|
408
|
+
const method = await this.getMethod('getRemoveDelegatorEvalDuration')
|
|
409
|
+
const info = await method.call()
|
|
410
|
+
return parseInt(info)
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
async getGovernanceAddress() {
|
|
414
|
+
const method = await this.getMethod('getGovernanceAddress')
|
|
415
|
+
const info = await method.call()
|
|
416
|
+
return info
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
async getServiceProviderFactoryAddress() {
|
|
420
|
+
const method = await this.getMethod('getServiceProviderFactoryAddress')
|
|
421
|
+
const info = await method.call()
|
|
422
|
+
return info
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
async getClaimsManagerAddress() {
|
|
426
|
+
const method = await this.getMethod('getClaimsManagerAddress')
|
|
427
|
+
const info = await method.call()
|
|
428
|
+
return info
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
async getStakingAddress() {
|
|
432
|
+
const method = await this.getMethod('getStakingAddress')
|
|
433
|
+
const info = await method.call()
|
|
434
|
+
return info
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
async getSPMinDelegationAmount({
|
|
438
|
+
serviceProvider
|
|
439
|
+
}: {
|
|
440
|
+
serviceProvider: string
|
|
441
|
+
}) {
|
|
442
|
+
const method = await this.getMethod(
|
|
443
|
+
'getSPMinDelegationAmount',
|
|
444
|
+
serviceProvider
|
|
445
|
+
)
|
|
446
|
+
const info = await method.call()
|
|
447
|
+
return Utils.toBN(info)
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
async updateSPMinDelegationAmount({
|
|
451
|
+
serviceProvider,
|
|
452
|
+
amount
|
|
453
|
+
}: {
|
|
454
|
+
serviceProvider: string
|
|
455
|
+
amount: BN
|
|
456
|
+
}) {
|
|
457
|
+
const method = await this.getMethod(
|
|
458
|
+
'updateSPMinDelegationAmount',
|
|
459
|
+
serviceProvider,
|
|
460
|
+
amount
|
|
461
|
+
)
|
|
462
|
+
return await this.web3Manager.sendTransaction(method)
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
async updateRemoveDelegatorLockupDuration(duration: string) {
|
|
466
|
+
const method = await this.getGovernedMethod(
|
|
467
|
+
'updateRemoveDelegatorLockupDuration',
|
|
468
|
+
duration
|
|
469
|
+
)
|
|
470
|
+
return await this.web3Manager.sendTransaction(method)
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
async updateUndelegateLockupDuration(duration: string) {
|
|
474
|
+
const method = await this.getGovernedMethod(
|
|
475
|
+
'updateUndelegateLockupDuration',
|
|
476
|
+
duration
|
|
477
|
+
)
|
|
478
|
+
return await this.web3Manager.sendTransaction(method)
|
|
479
|
+
}
|
|
480
|
+
}
|