@super-protocol/sdk-js 3.14.2 → 3.16.0-beta.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/dist/cjs/RIGenerator.d.ts +2 -3
- package/dist/cjs/RIGenerator.js +6 -7
- package/dist/cjs/TeeInputGeneratorBase.d.ts +2 -2
- package/dist/cjs/TeeInputGeneratorBase.js +1 -1
- package/dist/cjs/connectors/BaseConnector.d.ts +2 -3
- package/dist/cjs/connectors/BaseConnector.js +1 -1
- package/dist/cjs/connectors/BlockchainConnector.js +1 -3
- package/dist/cjs/connectors/BlockchainEventsListener.d.ts +2 -2
- package/dist/cjs/connectors/BlockchainEventsListener.js +2 -3
- package/dist/cjs/constants.d.ts +1 -0
- package/dist/cjs/constants.js +5 -2
- package/dist/cjs/contracts/Campaign.d.ts +1078 -0
- package/dist/cjs/contracts/Campaign.js +1401 -0
- package/dist/cjs/contracts/abi.d.ts +401 -153
- package/dist/cjs/contracts/abi.js +507 -190
- package/dist/cjs/crypto/Crypto.d.ts +13 -10
- package/dist/cjs/crypto/Crypto.js +17 -14
- package/dist/cjs/crypto/nodejs/AES.d.ts +1 -1
- package/dist/cjs/crypto/nodejs/AES.js +2 -2
- package/dist/cjs/crypto/nodejs/ARIA.d.ts +1 -1
- package/dist/cjs/crypto/nodejs/ARIA.js +2 -2
- package/dist/cjs/errors/index.d.ts +0 -1
- package/dist/cjs/errors/index.js +2 -4
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +5 -4
- package/dist/cjs/models/Order.d.ts +1 -1
- package/dist/cjs/models/Order.js +15 -11
- package/dist/cjs/providers/storage/S3StorageProvider.js +5 -5
- package/dist/cjs/providers/storage/StorageKeyValueAdapter.d.ts +1 -1
- package/dist/cjs/providers/storage/parseStorageCredentials.d.ts +2 -1
- package/dist/cjs/staticModels/Campaign.d.ts +70 -0
- package/dist/cjs/staticModels/Campaign.js +297 -0
- package/dist/cjs/staticModels/Orders.js +9 -10
- package/dist/cjs/staticModels/SuperproToken.d.ts +7 -7
- package/dist/cjs/staticModels/SuperproToken.js +3 -3
- package/dist/cjs/tee/TeeCertificateService.js +8 -1
- package/dist/cjs/types/Campaign.d.ts +45 -0
- package/dist/cjs/types/Campaign.js +16 -0
- package/dist/cjs/types/Order.d.ts +20 -25
- package/dist/cjs/types/Order.js +14 -21
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.js +2 -1
- package/dist/cjs/utils/TxManager.js +1 -5
- package/dist/cjs/utils/helpers/OrderArgsHelper.d.ts +2 -2
- package/dist/cjs/utils/helpers/OrderArgsHelper.js +5 -5
- package/dist/cjs/utils/helpers/index.d.ts +0 -1
- package/dist/cjs/utils/helpers/index.js +1 -2
- package/dist/cjs/utils/order/versify.js +7 -1
- package/dist/cjs/utils/rent-calculator/rent-calculator.js +3 -2
- package/dist/cjs/utils/rent-calculator/types.d.ts +1 -0
- package/dist/mjs/RIGenerator.d.ts +2 -3
- package/dist/mjs/RIGenerator.js +7 -8
- package/dist/mjs/TeeInputGeneratorBase.d.ts +2 -2
- package/dist/mjs/TeeInputGeneratorBase.js +1 -1
- package/dist/mjs/connectors/BaseConnector.d.ts +2 -3
- package/dist/mjs/connectors/BaseConnector.js +1 -1
- package/dist/mjs/connectors/BlockchainConnector.js +1 -3
- package/dist/mjs/connectors/BlockchainEventsListener.d.ts +2 -2
- package/dist/mjs/connectors/BlockchainEventsListener.js +2 -3
- package/dist/mjs/constants.d.ts +1 -0
- package/dist/mjs/constants.js +4 -1
- package/dist/mjs/contracts/Campaign.d.ts +1078 -0
- package/dist/mjs/contracts/Campaign.js +1398 -0
- package/dist/mjs/contracts/abi.d.ts +401 -153
- package/dist/mjs/contracts/abi.js +505 -188
- package/dist/mjs/crypto/Crypto.d.ts +13 -10
- package/dist/mjs/crypto/Crypto.js +17 -14
- package/dist/mjs/crypto/nodejs/AES.d.ts +1 -1
- package/dist/mjs/crypto/nodejs/AES.js +2 -2
- package/dist/mjs/crypto/nodejs/ARIA.d.ts +1 -1
- package/dist/mjs/crypto/nodejs/ARIA.js +2 -2
- package/dist/mjs/errors/index.d.ts +0 -1
- package/dist/mjs/errors/index.js +1 -2
- package/dist/mjs/index.d.ts +2 -1
- package/dist/mjs/index.js +3 -2
- package/dist/mjs/models/Order.d.ts +1 -1
- package/dist/mjs/models/Order.js +15 -11
- package/dist/mjs/providers/storage/S3StorageProvider.js +5 -5
- package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +1 -1
- package/dist/mjs/providers/storage/parseStorageCredentials.d.ts +2 -1
- package/dist/mjs/staticModels/Campaign.d.ts +70 -0
- package/dist/mjs/staticModels/Campaign.js +292 -0
- package/dist/mjs/staticModels/Orders.js +9 -10
- package/dist/mjs/staticModels/SuperproToken.d.ts +7 -7
- package/dist/mjs/staticModels/SuperproToken.js +3 -3
- package/dist/mjs/tee/TeeCertificateService.js +9 -2
- package/dist/mjs/types/Campaign.d.ts +45 -0
- package/dist/mjs/types/Campaign.js +13 -0
- package/dist/mjs/types/Order.d.ts +20 -25
- package/dist/mjs/types/Order.js +14 -18
- package/dist/mjs/types/index.d.ts +1 -0
- package/dist/mjs/types/index.js +2 -1
- package/dist/mjs/utils/TxManager.js +1 -5
- package/dist/mjs/utils/helpers/OrderArgsHelper.d.ts +2 -2
- package/dist/mjs/utils/helpers/OrderArgsHelper.js +5 -5
- package/dist/mjs/utils/helpers/index.d.ts +0 -1
- package/dist/mjs/utils/helpers/index.js +1 -2
- package/dist/mjs/utils/order/versify.js +7 -1
- package/dist/mjs/utils/rent-calculator/rent-calculator.js +3 -2
- package/dist/mjs/utils/rent-calculator/types.d.ts +1 -0
- package/package.json +3 -3
- package/dist/cjs/errors/insufficient-funds.error.d.ts +0 -19
- package/dist/cjs/errors/insufficient-funds.error.js +0 -57
- package/dist/cjs/utils/helpers/streamToBuffer.d.ts +0 -4
- package/dist/cjs/utils/helpers/streamToBuffer.js +0 -13
- package/dist/mjs/errors/insufficient-funds.error.d.ts +0 -19
- package/dist/mjs/errors/insufficient-funds.error.js +0 -53
- package/dist/mjs/utils/helpers/streamToBuffer.d.ts +0 -4
- package/dist/mjs/utils/helpers/streamToBuffer.js +0 -9
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Contract, TransactionReceipt } from 'web3';
|
|
2
|
+
import { abi } from '../contracts/Campaign.js';
|
|
3
|
+
import { TransactionOptions, BlockInfo, Status, TotalParticipantInfo, ParticipantScore, MigrationNetwork, TokenAmount, MigrationWithIndex } from '../types/index.js';
|
|
4
|
+
declare class Campaign {
|
|
5
|
+
private static _addressHttps;
|
|
6
|
+
private static _addressWss;
|
|
7
|
+
private static contractHttps?;
|
|
8
|
+
private static contractWss?;
|
|
9
|
+
private static readonly logger;
|
|
10
|
+
static get addressHttps(): string;
|
|
11
|
+
static set addressHttps(newAddress: string);
|
|
12
|
+
static createContract(newAddress: string): [Contract<typeof abi>, Contract<typeof abi>];
|
|
13
|
+
static get addressWss(): string;
|
|
14
|
+
static set addressWss(newAddress: string);
|
|
15
|
+
/**
|
|
16
|
+
* Checks if contract has been initialized, if not - initialize contract
|
|
17
|
+
*/
|
|
18
|
+
private static checkInit;
|
|
19
|
+
private static getContract;
|
|
20
|
+
static isUniqueSrcAddressByParticipant(participant: string, srcAddress: string, contract?: Contract<typeof abi>): Promise<{
|
|
21
|
+
clearedLink: string;
|
|
22
|
+
isUnique: boolean;
|
|
23
|
+
}>;
|
|
24
|
+
static isUniqueDstAddress(dstAddress: string, contract?: Contract<typeof abi>): Promise<{
|
|
25
|
+
clearedLink: string;
|
|
26
|
+
isUnique: boolean;
|
|
27
|
+
}>;
|
|
28
|
+
static isUniqueSrcAddress(srcAddress: string, contract?: Contract<typeof abi>): Promise<{
|
|
29
|
+
clearedLink: string;
|
|
30
|
+
isUnique: boolean;
|
|
31
|
+
}>;
|
|
32
|
+
static getStat(contract?: Contract<typeof abi>): Promise<{
|
|
33
|
+
totalMigrations: number;
|
|
34
|
+
totalDeployedMigrations: number;
|
|
35
|
+
totalNotDeployedMigrations: number;
|
|
36
|
+
}>;
|
|
37
|
+
static getCompetitionSetup(contract?: Contract<typeof abi>): Promise<{
|
|
38
|
+
claimDateAfter: number;
|
|
39
|
+
notValidBeforeTs: number;
|
|
40
|
+
notValidAfterTs: number;
|
|
41
|
+
}>;
|
|
42
|
+
static getParticipantByRank(rank: number, contract?: Contract<typeof abi>): Promise<ParticipantScore>;
|
|
43
|
+
static getParticipantInfo(participant: string, contract?: Contract<typeof abi>): Promise<TotalParticipantInfo>;
|
|
44
|
+
static getTopParticipantsInfo(count: number, contract?: Contract<typeof abi>): Promise<TotalParticipantInfo[]>;
|
|
45
|
+
static getMigrationRange(from: number, to: number, status: Status, contract?: Contract<typeof abi>): Promise<MigrationWithIndex[]>;
|
|
46
|
+
static getMigrationsByIndexes(indexes: number[], contract?: Contract<typeof abi>): Promise<MigrationWithIndex[]>;
|
|
47
|
+
static contentHashExists(contentHash: string, contract?: Contract<typeof abi>): Promise<boolean>;
|
|
48
|
+
static getTotalParticipants(contract?: Contract<typeof abi>): Promise<number>;
|
|
49
|
+
static getTopParticipants(count: number, contract?: Contract<typeof abi>): Promise<ParticipantScore[]>;
|
|
50
|
+
static getParticipantsAroundRank(centerRank: number, range: number, contract?: Contract<typeof abi>): Promise<ParticipantScore[]>;
|
|
51
|
+
static getParticipantsByRange(startRank: number, endRank: number, contract?: Contract<typeof abi>): Promise<ParticipantScore[]>;
|
|
52
|
+
static getTotalMigrations(contract?: Contract<typeof abi>): Promise<number>;
|
|
53
|
+
static registry(transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
|
|
54
|
+
static submitMigration(srcNetwork: MigrationNetwork, srcAddress: string, dstAddress: string, srcUrl?: string, dstUrl?: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
|
|
55
|
+
static updateMigrationStatusByApp(migrationIndex: number, isDeployed: boolean, transactions: number, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
|
|
56
|
+
static updateMigrationTransactionsByApp(migrationIndex: number, transactions: number, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
|
|
57
|
+
static claimReward(transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
|
|
58
|
+
static grantRole(role: string, account: string, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean): Promise<TransactionReceipt>;
|
|
59
|
+
static onRegisterUser(callback: onRegisterUser): () => void;
|
|
60
|
+
static onMigrationSubmitted(callback: onMigrationSubmittedCallback): () => void;
|
|
61
|
+
static onMigrationStatusUpdated(callback: onMigrationStatusUpdated): () => void;
|
|
62
|
+
static onMigrationTransactionsUpdated(callback: onMigrationTransactionsUpdated): () => void;
|
|
63
|
+
static onRewardClaimed(callback: onRewardClaimed): () => void;
|
|
64
|
+
}
|
|
65
|
+
export type onRegisterUser = (participant: string, block?: BlockInfo) => void;
|
|
66
|
+
export type onMigrationSubmittedCallback = (participant: string, migrationIndex: number, block?: BlockInfo) => void;
|
|
67
|
+
export type onMigrationStatusUpdated = (migrationIndex: number, status: Status, block?: BlockInfo) => void;
|
|
68
|
+
export type onMigrationTransactionsUpdated = (migrationIndex: number, transactions: number, block?: BlockInfo) => void;
|
|
69
|
+
export type onRewardClaimed = (participant: number, amount: TokenAmount, block?: BlockInfo) => void;
|
|
70
|
+
export default Campaign;
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import { utils } from 'web3';
|
|
2
|
+
import rootLogger from '../logger.js';
|
|
3
|
+
import { abi } from '../contracts/Campaign.js';
|
|
4
|
+
import store from '../store.js';
|
|
5
|
+
import { checkIfActionAccountInitialized, cleanWeb3Data } from '../utils/helper.js';
|
|
6
|
+
import TxManager from '../utils/TxManager.js';
|
|
7
|
+
import { BlockchainEventsListener } from '../connectors/index.js';
|
|
8
|
+
class Campaign {
|
|
9
|
+
static _addressHttps;
|
|
10
|
+
static _addressWss;
|
|
11
|
+
static contractHttps;
|
|
12
|
+
static contractWss;
|
|
13
|
+
static logger = rootLogger.child({ className: 'Campaign' });
|
|
14
|
+
static get addressHttps() {
|
|
15
|
+
return Campaign._addressHttps;
|
|
16
|
+
}
|
|
17
|
+
static set addressHttps(newAddress) {
|
|
18
|
+
Campaign._addressHttps = newAddress;
|
|
19
|
+
const [contractHttps, contractWss] = Campaign.createContract(newAddress);
|
|
20
|
+
Campaign.contractHttps = contractHttps;
|
|
21
|
+
Campaign.contractWss = contractWss;
|
|
22
|
+
}
|
|
23
|
+
static createContract(newAddress) {
|
|
24
|
+
const httpsContract = new store.web3Https.eth.Contract(abi, newAddress, {
|
|
25
|
+
provider: store.web3Https.currentProvider,
|
|
26
|
+
config: { contractDataInputFill: 'data' },
|
|
27
|
+
});
|
|
28
|
+
const wssContract = new store.web3Wss.eth.Contract(abi, newAddress, {
|
|
29
|
+
provider: store.web3Wss.currentProvider,
|
|
30
|
+
config: { contractDataInputFill: 'data' },
|
|
31
|
+
});
|
|
32
|
+
return [httpsContract, wssContract];
|
|
33
|
+
}
|
|
34
|
+
static get addressWss() {
|
|
35
|
+
return Campaign._addressWss;
|
|
36
|
+
}
|
|
37
|
+
static set addressWss(newAddress) {
|
|
38
|
+
Campaign._addressWss = newAddress;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Checks if contract has been initialized, if not - initialize contract
|
|
42
|
+
*/
|
|
43
|
+
static checkInit(wssConnection = false) {
|
|
44
|
+
if (!Campaign.contractHttps) {
|
|
45
|
+
throw Error(`Campaign must be initialized before it can be used`);
|
|
46
|
+
}
|
|
47
|
+
return wssConnection ? Campaign.contractWss : Campaign.contractHttps;
|
|
48
|
+
}
|
|
49
|
+
static getContract(contract) {
|
|
50
|
+
return contract ? contract : Campaign.checkInit();
|
|
51
|
+
}
|
|
52
|
+
static async isUniqueSrcAddressByParticipant(participant, srcAddress, contract) {
|
|
53
|
+
return cleanWeb3Data(await this.getContract(contract)
|
|
54
|
+
.methods.isUniqueSrcAddressByParticipant(participant, srcAddress)
|
|
55
|
+
.call());
|
|
56
|
+
}
|
|
57
|
+
static async isUniqueDstAddress(dstAddress, contract) {
|
|
58
|
+
return cleanWeb3Data(await this.getContract(contract).methods.isUniqueDstAddress(dstAddress).call());
|
|
59
|
+
}
|
|
60
|
+
static async isUniqueSrcAddress(srcAddress, contract) {
|
|
61
|
+
return cleanWeb3Data(await this.getContract(contract).methods.isUniqueSrcAddress(srcAddress).call());
|
|
62
|
+
}
|
|
63
|
+
static async getStat(contract) {
|
|
64
|
+
const contractResult = await this.getContract(contract).methods.getStat().call();
|
|
65
|
+
const result = {
|
|
66
|
+
totalMigrations: Number(contractResult.totalMigrations),
|
|
67
|
+
totalDeployedMigrations: Number(contractResult._totalDeployedMigrations),
|
|
68
|
+
totalNotDeployedMigrations: Number(contractResult._totalNotDeployedMigrations),
|
|
69
|
+
};
|
|
70
|
+
return result;
|
|
71
|
+
}
|
|
72
|
+
static async getCompetitionSetup(contract) {
|
|
73
|
+
const contractResult = await this.getContract(contract).methods.getCompetitionSetup().call();
|
|
74
|
+
const result = {
|
|
75
|
+
claimDateAfter: Number(contractResult.claimDateAfter),
|
|
76
|
+
notValidBeforeTs: Number(contractResult.notValidBeforeTs),
|
|
77
|
+
notValidAfterTs: Number(contractResult.notValidAfterTs),
|
|
78
|
+
};
|
|
79
|
+
return result;
|
|
80
|
+
}
|
|
81
|
+
static async getParticipantByRank(rank, contract) {
|
|
82
|
+
return cleanWeb3Data(await this.getContract(contract).methods.getParticipantByRank(rank).call());
|
|
83
|
+
}
|
|
84
|
+
static async getParticipantInfo(participant, contract) {
|
|
85
|
+
return cleanWeb3Data(await this.getContract(contract).methods.getParticipantInfo(participant).call());
|
|
86
|
+
}
|
|
87
|
+
static async getTopParticipantsInfo(count, contract) {
|
|
88
|
+
return cleanWeb3Data(await this.getContract(contract).methods.getTopParticipantsInfo(count).call());
|
|
89
|
+
}
|
|
90
|
+
static async getMigrationRange(from, to, status, contract) {
|
|
91
|
+
const contents = (await this.getContract(contract).methods.getMigrationRange(from, to, status).call()).map((migrationWithIndex) => {
|
|
92
|
+
const migration = cleanWeb3Data(migrationWithIndex.migration);
|
|
93
|
+
const cleanedContentWithIndex = {
|
|
94
|
+
migration: {
|
|
95
|
+
...migration,
|
|
96
|
+
status: Number(migration.status),
|
|
97
|
+
},
|
|
98
|
+
index: Number(migrationWithIndex.index),
|
|
99
|
+
};
|
|
100
|
+
return cleanedContentWithIndex;
|
|
101
|
+
});
|
|
102
|
+
return contents;
|
|
103
|
+
}
|
|
104
|
+
static async getMigrationsByIndexes(indexes, contract) {
|
|
105
|
+
const contents = (await this.getContract(contract).methods.getMigrationsByIndexes(indexes).call()).map((migrationWithIndex) => {
|
|
106
|
+
const migration = cleanWeb3Data(migrationWithIndex.migration);
|
|
107
|
+
const cleanedContentWithIndex = {
|
|
108
|
+
migration: {
|
|
109
|
+
...migration,
|
|
110
|
+
status: Number(migration.status),
|
|
111
|
+
},
|
|
112
|
+
index: Number(migrationWithIndex.index),
|
|
113
|
+
};
|
|
114
|
+
return cleanedContentWithIndex;
|
|
115
|
+
});
|
|
116
|
+
return contents;
|
|
117
|
+
}
|
|
118
|
+
static async contentHashExists(contentHash, contract) {
|
|
119
|
+
return await this.getContract(contract).methods.contentHashExists(contentHash).call();
|
|
120
|
+
}
|
|
121
|
+
static async getTotalParticipants(contract) {
|
|
122
|
+
return cleanWeb3Data(await this.getContract(contract).methods.getTotalParticipants().call());
|
|
123
|
+
}
|
|
124
|
+
static async getTopParticipants(count, contract) {
|
|
125
|
+
return cleanWeb3Data(await this.getContract(contract).methods.getTopParticipants(count).call());
|
|
126
|
+
}
|
|
127
|
+
static async getParticipantsAroundRank(centerRank, range, contract) {
|
|
128
|
+
return cleanWeb3Data(await this.getContract(contract).methods.getParticipantsAroundRank(centerRank, range).call());
|
|
129
|
+
}
|
|
130
|
+
static async getParticipantsByRange(startRank, endRank, contract) {
|
|
131
|
+
return cleanWeb3Data(await this.getContract(contract).methods.getParticipantsByRange(startRank, endRank).call());
|
|
132
|
+
}
|
|
133
|
+
static async getTotalMigrations(contract) {
|
|
134
|
+
return Number(await this.getContract(contract).methods.getTotalMigrations().call());
|
|
135
|
+
}
|
|
136
|
+
static async registry(transactionOptions, checkTxBeforeSend = false) {
|
|
137
|
+
const contract = this.checkInit();
|
|
138
|
+
checkIfActionAccountInitialized(transactionOptions);
|
|
139
|
+
if (checkTxBeforeSend) {
|
|
140
|
+
await TxManager.dryRun(contract.methods.registry(), transactionOptions);
|
|
141
|
+
}
|
|
142
|
+
return await TxManager.execute(contract.methods.registry(), transactionOptions, Campaign.addressHttps);
|
|
143
|
+
}
|
|
144
|
+
static async submitMigration(srcNetwork, srcAddress, dstAddress, srcUrl = '', dstUrl = '', transactionOptions, checkTxBeforeSend = false) {
|
|
145
|
+
const contract = this.checkInit();
|
|
146
|
+
checkIfActionAccountInitialized(transactionOptions);
|
|
147
|
+
if (checkTxBeforeSend) {
|
|
148
|
+
await TxManager.dryRun(contract.methods.submitMigration(srcNetwork, srcAddress, dstAddress, srcUrl, dstUrl), transactionOptions);
|
|
149
|
+
}
|
|
150
|
+
return await TxManager.execute(contract.methods.submitMigration(srcNetwork, srcAddress, dstAddress, srcUrl, dstUrl), transactionOptions, Campaign.addressHttps);
|
|
151
|
+
}
|
|
152
|
+
static async updateMigrationStatusByApp(migrationIndex, isDeployed, transactions, transactionOptions, checkTxBeforeSend = false) {
|
|
153
|
+
const contract = this.checkInit();
|
|
154
|
+
checkIfActionAccountInitialized(transactionOptions);
|
|
155
|
+
if (checkTxBeforeSend) {
|
|
156
|
+
await TxManager.dryRun(contract.methods.updateMigrationStatusByApp(migrationIndex, isDeployed, transactions), transactionOptions);
|
|
157
|
+
}
|
|
158
|
+
return await TxManager.execute(contract.methods.updateMigrationStatusByApp(migrationIndex, isDeployed, transactions), transactionOptions, Campaign.addressHttps);
|
|
159
|
+
}
|
|
160
|
+
static async updateMigrationTransactionsByApp(migrationIndex, transactions, transactionOptions, checkTxBeforeSend = false) {
|
|
161
|
+
const contract = this.checkInit();
|
|
162
|
+
checkIfActionAccountInitialized(transactionOptions);
|
|
163
|
+
if (checkTxBeforeSend) {
|
|
164
|
+
await TxManager.dryRun(contract.methods.updateMigrationTransactionsByApp(migrationIndex, transactions), transactionOptions);
|
|
165
|
+
}
|
|
166
|
+
return await TxManager.execute(contract.methods.updateMigrationTransactionsByApp(migrationIndex, transactions), transactionOptions, Campaign.addressHttps);
|
|
167
|
+
}
|
|
168
|
+
static async claimReward(transactionOptions, checkTxBeforeSend = false) {
|
|
169
|
+
const contract = this.checkInit();
|
|
170
|
+
checkIfActionAccountInitialized(transactionOptions);
|
|
171
|
+
if (checkTxBeforeSend) {
|
|
172
|
+
await TxManager.dryRun(contract.methods.claimReward(), transactionOptions);
|
|
173
|
+
}
|
|
174
|
+
return await TxManager.execute(contract.methods.claimReward(), transactionOptions, Campaign.addressHttps);
|
|
175
|
+
}
|
|
176
|
+
static async grantRole(role, account, transactionOptions, checkTxBeforeSend = false) {
|
|
177
|
+
const contract = this.checkInit();
|
|
178
|
+
checkIfActionAccountInitialized(transactionOptions);
|
|
179
|
+
role = utils.keccak256(role);
|
|
180
|
+
if (checkTxBeforeSend) {
|
|
181
|
+
await TxManager.dryRun(contract.methods.grantRole(role, account), transactionOptions);
|
|
182
|
+
}
|
|
183
|
+
return await TxManager.execute(contract.methods.grantRole(role, account), transactionOptions, Campaign.addressHttps);
|
|
184
|
+
}
|
|
185
|
+
static onRegisterUser(callback) {
|
|
186
|
+
const listener = BlockchainEventsListener.getInstance();
|
|
187
|
+
const logger = this.logger.child({ method: 'onRegisterUser' });
|
|
188
|
+
const onData = (event) => {
|
|
189
|
+
const parsedEvent = cleanWeb3Data(event.returnValues);
|
|
190
|
+
callback(parsedEvent.participant, {
|
|
191
|
+
index: Number(event.blockNumber),
|
|
192
|
+
hash: event.blockHash,
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
const onError = (error) => {
|
|
196
|
+
logger.warn(error);
|
|
197
|
+
};
|
|
198
|
+
const contract = this.checkInit(true);
|
|
199
|
+
return listener.subscribeEvent({
|
|
200
|
+
onError,
|
|
201
|
+
onData,
|
|
202
|
+
event: 'ParticipantRegistered',
|
|
203
|
+
contract: contract,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
static onMigrationSubmitted(callback) {
|
|
207
|
+
const listener = BlockchainEventsListener.getInstance();
|
|
208
|
+
const logger = this.logger.child({ method: 'onMigrationSubmitted' });
|
|
209
|
+
const onData = (event) => {
|
|
210
|
+
const parsedEvent = cleanWeb3Data(event.returnValues);
|
|
211
|
+
callback(parsedEvent.participant, parsedEvent.migrationIndex, {
|
|
212
|
+
index: Number(event.blockNumber),
|
|
213
|
+
hash: event.blockHash,
|
|
214
|
+
});
|
|
215
|
+
};
|
|
216
|
+
const onError = (error) => {
|
|
217
|
+
logger.warn(error);
|
|
218
|
+
};
|
|
219
|
+
const contract = this.checkInit(true);
|
|
220
|
+
return listener.subscribeEvent({
|
|
221
|
+
onError,
|
|
222
|
+
onData,
|
|
223
|
+
event: 'MigrationSubmitted',
|
|
224
|
+
contract: contract,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
static onMigrationStatusUpdated(callback) {
|
|
228
|
+
const listener = BlockchainEventsListener.getInstance();
|
|
229
|
+
const logger = this.logger.child({ method: 'onMigrationStatusUpdated' });
|
|
230
|
+
const onData = (event) => {
|
|
231
|
+
const parsedEvent = cleanWeb3Data(event.returnValues);
|
|
232
|
+
callback(parsedEvent.migrationIndex, parsedEvent.status, {
|
|
233
|
+
index: Number(event.blockNumber),
|
|
234
|
+
hash: event.blockHash,
|
|
235
|
+
});
|
|
236
|
+
};
|
|
237
|
+
const onError = (error) => {
|
|
238
|
+
logger.warn(error);
|
|
239
|
+
};
|
|
240
|
+
const contract = this.checkInit(true);
|
|
241
|
+
return listener.subscribeEvent({
|
|
242
|
+
onError,
|
|
243
|
+
onData,
|
|
244
|
+
event: 'MigrationStatusUpdated',
|
|
245
|
+
contract: contract,
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
static onMigrationTransactionsUpdated(callback) {
|
|
249
|
+
const listener = BlockchainEventsListener.getInstance();
|
|
250
|
+
const logger = this.logger.child({ method: 'onMigrationTransactionsUpdated' });
|
|
251
|
+
const onData = (event) => {
|
|
252
|
+
const parsedEvent = cleanWeb3Data(event.returnValues);
|
|
253
|
+
callback(parsedEvent.migrationIndex, parsedEvent.transactions, {
|
|
254
|
+
index: Number(event.blockNumber),
|
|
255
|
+
hash: event.blockHash,
|
|
256
|
+
});
|
|
257
|
+
};
|
|
258
|
+
const onError = (error) => {
|
|
259
|
+
logger.warn(error);
|
|
260
|
+
};
|
|
261
|
+
const contract = this.checkInit(true);
|
|
262
|
+
return listener.subscribeEvent({
|
|
263
|
+
onError,
|
|
264
|
+
onData,
|
|
265
|
+
event: 'MigrationTransactionsUpdated',
|
|
266
|
+
contract: contract,
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
static onRewardClaimed(callback) {
|
|
270
|
+
const listener = BlockchainEventsListener.getInstance();
|
|
271
|
+
const logger = this.logger.child({ method: 'onRewardClaimed' });
|
|
272
|
+
const onData = (event) => {
|
|
273
|
+
const parsedEvent = cleanWeb3Data(event.returnValues);
|
|
274
|
+
callback(parsedEvent.participant, parsedEvent.amount, {
|
|
275
|
+
index: Number(event.blockNumber),
|
|
276
|
+
hash: event.blockHash,
|
|
277
|
+
});
|
|
278
|
+
};
|
|
279
|
+
const onError = (error) => {
|
|
280
|
+
logger.warn(error);
|
|
281
|
+
};
|
|
282
|
+
const contract = this.checkInit(true);
|
|
283
|
+
return listener.subscribeEvent({
|
|
284
|
+
onError,
|
|
285
|
+
onData,
|
|
286
|
+
event: 'RewardClaimed',
|
|
287
|
+
contract: contract,
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
export default Campaign;
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FtcGFpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3RhdGljTW9kZWxzL0NhbXBhaWduLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0MsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNELE9BQU8sVUFBVSxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0MsT0FBTyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQVlwRixPQUFPLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU1sRSxNQUFNLFFBQVE7SUFDSixNQUFNLENBQUMsYUFBYSxDQUFTO0lBQzdCLE1BQU0sQ0FBQyxXQUFXLENBQVM7SUFDM0IsTUFBTSxDQUFDLGFBQWEsQ0FBd0I7SUFDNUMsTUFBTSxDQUFDLFdBQVcsQ0FBd0I7SUFDMUMsTUFBTSxDQUFVLE1BQU0sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFFdEUsTUFBTSxLQUFLLFlBQVk7UUFDNUIsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxNQUFNLEtBQUssWUFBWSxDQUFDLFVBQWtCO1FBQy9DLFFBQVEsQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6RSxRQUFRLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUN2QyxRQUFRLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNyQyxDQUFDO0lBRU0s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
|
|
@@ -39,19 +39,17 @@ class Orders {
|
|
|
39
39
|
info.tokenAddress = tokenAddress;
|
|
40
40
|
}
|
|
41
41
|
const workflowDeposit = workflowArgs.workflowDeposit ?? '0';
|
|
42
|
-
const parentOrderInfoRaw = orderInfoToRaw(parentOrderInfo);
|
|
43
42
|
const parentOrderCreatingArgs = {
|
|
44
|
-
orderInfo:
|
|
43
|
+
orderInfo: orderInfoToRaw(parentOrderInfo),
|
|
45
44
|
orderSlots: workflowArgs.parentOrderSlot,
|
|
46
|
-
orderArgs:
|
|
45
|
+
orderArgs: parentOrderInfo.args,
|
|
47
46
|
};
|
|
48
47
|
const subOrdersCreatingArgs = [];
|
|
49
48
|
for (let i = 0; i < subOrdersInfo.length; i++) {
|
|
50
|
-
const subOrderInfoRaw = orderInfoToRaw(subOrdersInfo[i]);
|
|
51
49
|
subOrdersCreatingArgs.push({
|
|
52
|
-
orderInfo:
|
|
50
|
+
orderInfo: orderInfoToRaw(subOrdersInfo[i]),
|
|
53
51
|
orderSlots: workflowArgs.subOrdersSlots[i],
|
|
54
|
-
orderArgs:
|
|
52
|
+
orderArgs: subOrdersInfo[i].args,
|
|
55
53
|
});
|
|
56
54
|
}
|
|
57
55
|
const workflowArgsRaw = {
|
|
@@ -150,13 +148,14 @@ class Orders {
|
|
|
150
148
|
if (orderInfo.tokenAddress === undefined)
|
|
151
149
|
orderInfo.tokenAddress = Orders.getTokenAddress();
|
|
152
150
|
deposit = deposit ?? '0';
|
|
153
|
-
const
|
|
151
|
+
const args = orderInfo.args;
|
|
152
|
+
const orderInfoArguments = orderInfoToRaw(orderInfo);
|
|
154
153
|
if (checkTxBeforeSend) {
|
|
155
|
-
await TxManager.dryRun(contract.methods.createOrder(
|
|
154
|
+
await TxManager.dryRun(contract.methods.createOrder(orderInfoArguments, slots, args, deposit, suspended), transactionOptions);
|
|
156
155
|
}
|
|
157
156
|
const newOrderId = await StaticModel.createEntity({
|
|
158
157
|
txExecutorCallback: async () => {
|
|
159
|
-
await TxManager.execute(contract.methods.createOrder(
|
|
158
|
+
await TxManager.execute(contract.methods.createOrder(orderInfoArguments, slots, args, deposit, suspended), transactionOptions);
|
|
160
159
|
},
|
|
161
160
|
filters: [{ externalId: inputOrderInfo.externalId }],
|
|
162
161
|
eventName: 'OrderCreated',
|
|
@@ -634,4 +633,4 @@ __decorate([
|
|
|
634
633
|
__metadata("design:returntype", Promise)
|
|
635
634
|
], Orders, "createWorkflows", null);
|
|
636
635
|
export default Orders;
|
|
637
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0YXRpY01vZGVscy9PcmRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxVQUFVLE1BQU0sY0FBYyxDQUFDO0FBQ3RDLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsYUFBYSxFQUNiLHFCQUFxQixFQUNyQixpQkFBaUIsRUFDakIsbUJBQW1CLEdBQ3BCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUdMLFNBQVMsRUFJVCxjQUFjLEVBWWQsMEJBQTBCLEdBRTNCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxRQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZGLE9BQU8sV0FBVyxNQUFNLGtCQUFrQixDQUFDO0FBTTNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEtBQUssTUFBTSxvQkFBb0IsQ0FBQztBQUN2QyxPQUFPLEtBQUssTUFBTSxhQUFhLENBQUM7QUFDaEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRXZCLE1BQU0sTUFBTTtJQUNGLE1BQU0sQ0FBVSxNQUFNLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBRXBFLE1BQU0sQ0FBQyxNQUFNLENBQWtCO0lBRS9CLE1BQU0sS0FBSyxPQUFPO1FBQ3ZCLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBQ08sTUFBTSxD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
|
|
636
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N0YXRpY01vZGVscy9PcmRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxVQUFVLE1BQU0sY0FBYyxDQUFDO0FBQ3RDLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0IsYUFBYSxFQUNiLHFCQUFxQixFQUNyQixpQkFBaUIsRUFDakIsbUJBQW1CLEdBQ3BCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUdMLFNBQVMsRUFJVCxjQUFjLEVBWWQsMEJBQTBCLEdBRTNCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxRQUFRLE1BQU0sZUFBZSxDQUFDO0FBQ3JDLE9BQU8sU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZGLE9BQU8sV0FBVyxNQUFNLGtCQUFrQixDQUFDO0FBTTNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRCxPQUFPLEtBQUssTUFBTSxvQkFBb0IsQ0FBQztBQUN2QyxPQUFPLEtBQUssTUFBTSxhQUFhLENBQUM7QUFDaEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBRXZCLE1BQU0sTUFBTTtJQUNGLE1BQU0sQ0FBVSxNQUFNLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBRXBFLE1BQU0sQ0FBQyxNQUFNLENBQWtCO0lBRS9CLE1BQU0sS0FBSyxPQUFPO1FBQ3ZCLE9BQU8sUUFBUSxDQUFDLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBQ08sTUFBTSxD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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlockNumberOrTag, Contract, Transaction } from 'web3';
|
|
2
|
-
import
|
|
2
|
+
import { abi } from '../contracts/tokenAbi.js';
|
|
3
3
|
import { TransactionOptions, BlockInfo, TokenAmount } from '../types/index.js';
|
|
4
4
|
declare class SuperproToken {
|
|
5
5
|
private static _addressHttps;
|
|
@@ -8,7 +8,7 @@ declare class SuperproToken {
|
|
|
8
8
|
private static readonly logger;
|
|
9
9
|
static get addressHttps(): string;
|
|
10
10
|
static set addressHttps(newAddress: string);
|
|
11
|
-
static createContract(newAddress: string): Contract<typeof
|
|
11
|
+
static createContract(newAddress: string): Contract<typeof abi>;
|
|
12
12
|
static get addressWss(): string;
|
|
13
13
|
static set addressWss(newAddress: string);
|
|
14
14
|
/**
|
|
@@ -31,7 +31,7 @@ declare class SuperproToken {
|
|
|
31
31
|
toBlock?: BlockNumberOrTag;
|
|
32
32
|
}, options?: {
|
|
33
33
|
concurrency?: number;
|
|
34
|
-
contract?: Contract<typeof
|
|
34
|
+
contract?: Contract<typeof abi>;
|
|
35
35
|
}): Promise<{
|
|
36
36
|
from: string;
|
|
37
37
|
to: string;
|
|
@@ -43,15 +43,15 @@ declare class SuperproToken {
|
|
|
43
43
|
/**
|
|
44
44
|
* Fetching balance of SuperProtocol tokens on address
|
|
45
45
|
*/
|
|
46
|
-
static balanceOf(address: string, contract?: Contract<typeof
|
|
46
|
+
static balanceOf(address: string, contract?: Contract<typeof abi>): Promise<TokenAmount>;
|
|
47
47
|
/**
|
|
48
48
|
* Fetching allowance of SuperProtocol tokens on address
|
|
49
49
|
*/
|
|
50
|
-
static allowance(from: string, to: string, contract?: Contract<typeof
|
|
50
|
+
static allowance(from: string, to: string, contract?: Contract<typeof abi>): Promise<TokenAmount>;
|
|
51
51
|
/**
|
|
52
52
|
* Fetching symbol of SuperProtocol tokens
|
|
53
53
|
*/
|
|
54
|
-
static symbol(contract?: Contract<typeof
|
|
54
|
+
static symbol(contract?: Contract<typeof abi>): Promise<string>;
|
|
55
55
|
/**
|
|
56
56
|
* Fetching true if the address is whitelisted
|
|
57
57
|
*/
|
|
@@ -73,7 +73,7 @@ declare class SuperproToken {
|
|
|
73
73
|
* @param amount - number of tokens to be approved
|
|
74
74
|
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
75
75
|
*/
|
|
76
|
-
static approve(address: string, amount: TokenAmount, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean, contractInstance?: Contract<typeof
|
|
76
|
+
static approve(address: string, amount: TokenAmount, transactionOptions?: TransactionOptions, checkTxBeforeSend?: boolean, contractInstance?: Contract<typeof abi>): Promise<void>;
|
|
77
77
|
/**
|
|
78
78
|
* Adds an address to the whitelist.
|
|
79
79
|
* @param address - address
|