@helium/distributor-oracle 0.2.20 → 0.2.22-next.33
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/package.json +16 -15
- package/lib/cjs/client.js +0 -350
- package/lib/cjs/client.js.map +0 -1
- package/lib/cjs/index.js +0 -18
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/model.js +0 -101
- package/lib/cjs/model.js.map +0 -1
- package/lib/cjs/server.js +0 -413
- package/lib/cjs/server.js.map +0 -1
- package/lib/esm/src/client.js +0 -320
- package/lib/esm/src/client.js.map +0 -1
- package/lib/esm/src/index.js +0 -2
- package/lib/esm/src/index.js.map +0 -1
- package/lib/esm/src/model.js +0 -62
- package/lib/esm/src/model.js.map +0 -1
- package/lib/esm/src/server.js +0 -382
- package/lib/esm/src/server.js.map +0 -1
- package/lib/esm/tsconfig.esm.tsbuildinfo +0 -1
- package/lib/types/src/client.d.ts +0 -48
- package/lib/types/src/client.d.ts.map +0 -1
- package/lib/types/src/index.d.ts +0 -2
- package/lib/types/src/index.d.ts.map +0 -1
- package/lib/types/src/model.d.ts +0 -7
- package/lib/types/src/model.d.ts.map +0 -1
- package/lib/types/src/server.d.ts +0 -45
- package/lib/types/src/server.d.ts.map +0 -1
package/lib/esm/src/client.js
DELETED
|
@@ -1,320 +0,0 @@
|
|
|
1
|
-
import { BN } from "@coral-xyz/anchor";
|
|
2
|
-
import { decodeEntityKey, init, init as initHem, keyToAssetKey, keyToAssetForAsset, } from "@helium/helium-entity-manager-sdk";
|
|
3
|
-
import { daoKey } from "@helium/helium-sub-daos-sdk";
|
|
4
|
-
import { distributeCompressionRewards, initializeCompressionRecipient, recipientKey } from "@helium/lazy-distributor-sdk";
|
|
5
|
-
import { init as initRewards } from "@helium/rewards-oracle-sdk";
|
|
6
|
-
import { HNT_MINT, getAsset, getAssetProof, truthy } from "@helium/spl-utils";
|
|
7
|
-
import { getAssociatedTokenAddress } from "@solana/spl-token";
|
|
8
|
-
import { PublicKey, Transaction } from "@solana/web3.js";
|
|
9
|
-
import axios from "axios";
|
|
10
|
-
const HNT = process.env.HNT_MINT
|
|
11
|
-
? new PublicKey(process.env.HNT_MINT)
|
|
12
|
-
: HNT_MINT;
|
|
13
|
-
const DAO = daoKey(HNT)[0];
|
|
14
|
-
export async function getCurrentRewards(program, lazyDistributor, assetId) {
|
|
15
|
-
const lazyDistributorAcc = await program.account.lazyDistributorV0.fetch(lazyDistributor);
|
|
16
|
-
const results = await Promise.all(
|
|
17
|
-
// @ts-ignore
|
|
18
|
-
lazyDistributorAcc.oracles.map((x) => axios.get(`${x.url}?assetId=${assetId.toBase58()}`)));
|
|
19
|
-
return results.map((x, idx) => {
|
|
20
|
-
return {
|
|
21
|
-
currentRewards: x.data.currentRewards,
|
|
22
|
-
// @ts-ignore
|
|
23
|
-
oracleKey: lazyDistributorAcc.oracles[idx].oracle,
|
|
24
|
-
};
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
export async function getBulkRewards(program, lazyDistributor, entityKeys) {
|
|
28
|
-
const lazyDistributorAcc = await program.account.lazyDistributorV0.fetch(lazyDistributor);
|
|
29
|
-
const results = await Promise.all(
|
|
30
|
-
// @ts-ignore
|
|
31
|
-
lazyDistributorAcc.oracles.map((x) => axios.post(`${x.url}/bulk-rewards`, { entityKeys })));
|
|
32
|
-
return results.map((x, idx) => {
|
|
33
|
-
return {
|
|
34
|
-
currentRewards: x.data.currentRewards,
|
|
35
|
-
// @ts-ignore
|
|
36
|
-
oracleKey: lazyDistributorAcc.oracles[idx].oracle,
|
|
37
|
-
};
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
export async function getPendingRewards(program, lazyDistributor, dao, entityKeys, encoding = 'b58') {
|
|
41
|
-
const oracleRewards = await getBulkRewards(program, lazyDistributor, entityKeys);
|
|
42
|
-
const hemProgram = await init(program.provider);
|
|
43
|
-
const withRecipients = await Promise.all(entityKeys.map(async (entityKey) => {
|
|
44
|
-
const keyToAssetK = keyToAssetKey(dao, entityKey, encoding)[0];
|
|
45
|
-
const keyToAsset = await hemProgram.account.keyToAssetV0.fetch(keyToAssetK);
|
|
46
|
-
const recipient = recipientKey(lazyDistributor, keyToAsset.asset)[0];
|
|
47
|
-
const recipientAcc = await program.account.recipientV0.fetchNullable(recipient);
|
|
48
|
-
return {
|
|
49
|
-
entityKey,
|
|
50
|
-
recipientAcc,
|
|
51
|
-
};
|
|
52
|
-
}));
|
|
53
|
-
return withRecipients.reduce((acc, { entityKey, recipientAcc }) => {
|
|
54
|
-
const sortedOracleRewards = oracleRewards
|
|
55
|
-
.map((rew) => rew.currentRewards[entityKey] || new BN(0))
|
|
56
|
-
.sort((a, b) => new BN(a).sub(new BN(b)).toNumber());
|
|
57
|
-
const oracleMedian = new BN(sortedOracleRewards[Math.floor(sortedOracleRewards.length / 2)]);
|
|
58
|
-
const subbed = oracleMedian.sub(recipientAcc?.totalRewards || new BN(0));
|
|
59
|
-
acc[entityKey] = subbed.toString();
|
|
60
|
-
return acc;
|
|
61
|
-
}, {});
|
|
62
|
-
}
|
|
63
|
-
export async function formBulkTransactions({ program: lazyDistributorProgram, rewardsOracleProgram, heliumEntityManagerProgram, rewards, assets, compressionAssetAccs, lazyDistributor, lazyDistributorAcc, wallet = lazyDistributorProgram.provider.wallet.publicKey, skipOracleSign = false, assetEndpoint, getAssetFn = getAsset, getAssetProofFn = getAssetProof, }) {
|
|
64
|
-
if (assets.length > 100) {
|
|
65
|
-
throw new Error('Too many assets, max 100');
|
|
66
|
-
}
|
|
67
|
-
const provider = lazyDistributorProgram.provider;
|
|
68
|
-
if (!rewardsOracleProgram) {
|
|
69
|
-
rewardsOracleProgram = await initRewards(provider);
|
|
70
|
-
}
|
|
71
|
-
if (!heliumEntityManagerProgram) {
|
|
72
|
-
heliumEntityManagerProgram = await initHem(provider);
|
|
73
|
-
}
|
|
74
|
-
if (!lazyDistributorAcc) {
|
|
75
|
-
lazyDistributorAcc =
|
|
76
|
-
await lazyDistributorProgram.account.lazyDistributorV0.fetch(lazyDistributor);
|
|
77
|
-
}
|
|
78
|
-
if (!compressionAssetAccs) {
|
|
79
|
-
compressionAssetAccs = await Promise.all(assets.map(async (asset) => {
|
|
80
|
-
// @ts-ignore
|
|
81
|
-
const assetAcc = await getAssetFn(assetEndpoint || provider.connection.rpcEndpoint, asset);
|
|
82
|
-
if (!assetAcc) {
|
|
83
|
-
throw new Error('No asset with ID ' + asset.toBase58());
|
|
84
|
-
}
|
|
85
|
-
return assetAcc;
|
|
86
|
-
}));
|
|
87
|
-
}
|
|
88
|
-
if (compressionAssetAccs.length != assets.length) {
|
|
89
|
-
throw new Error('Assets not the same length as compressionAssetAccs');
|
|
90
|
-
}
|
|
91
|
-
let recipientKeys = assets.map((asset) => recipientKey(lazyDistributor, asset)[0]);
|
|
92
|
-
let recipientAccs = await lazyDistributorProgram.account.recipientV0.fetchMultiple(recipientKeys);
|
|
93
|
-
let ixsPerAsset = await Promise.all(recipientAccs.map(async (recipientAcc, idx) => {
|
|
94
|
-
if (!recipientAcc) {
|
|
95
|
-
return [
|
|
96
|
-
await (await initializeCompressionRecipient({
|
|
97
|
-
program: lazyDistributorProgram,
|
|
98
|
-
assetId: assets[idx],
|
|
99
|
-
lazyDistributor,
|
|
100
|
-
assetEndpoint,
|
|
101
|
-
owner: wallet,
|
|
102
|
-
// Make the oracle pay for the recipient to avoid newly migrated users not having enough sol to claim rewards
|
|
103
|
-
payer: lazyDistributorAcc.oracles[0].oracle,
|
|
104
|
-
getAssetFn: () => Promise.resolve(compressionAssetAccs[idx]),
|
|
105
|
-
getAssetProofFn,
|
|
106
|
-
})).instruction(),
|
|
107
|
-
];
|
|
108
|
-
}
|
|
109
|
-
return [];
|
|
110
|
-
}));
|
|
111
|
-
// construct the set and distribute ixs
|
|
112
|
-
let setAndDistributeIxs = await Promise.all(compressionAssetAccs.map(async (assetAcc, idx) => {
|
|
113
|
-
const keyToAssetK = keyToAssetForAsset(assetAcc);
|
|
114
|
-
const keyToAsset = await heliumEntityManagerProgram.account.keyToAssetV0.fetch(keyToAssetK);
|
|
115
|
-
const entityKey = decodeEntityKey(keyToAsset.entityKey, keyToAsset.keySerialization);
|
|
116
|
-
const setRewardIxs = (await Promise.all(rewards.map(async (bulkRewards, oracleIdx) => {
|
|
117
|
-
if (!(entityKey in bulkRewards.currentRewards)) {
|
|
118
|
-
return null;
|
|
119
|
-
}
|
|
120
|
-
return await rewardsOracleProgram.methods
|
|
121
|
-
.setCurrentRewardsWrapperV1({
|
|
122
|
-
currentRewards: new BN(bulkRewards.currentRewards[entityKey]),
|
|
123
|
-
oracleIndex: oracleIdx,
|
|
124
|
-
})
|
|
125
|
-
.accounts({
|
|
126
|
-
lazyDistributor,
|
|
127
|
-
recipient: recipientKeys[idx],
|
|
128
|
-
keyToAsset: keyToAssetK,
|
|
129
|
-
oracle: bulkRewards.oracleKey,
|
|
130
|
-
})
|
|
131
|
-
.instruction();
|
|
132
|
-
}))).filter(truthy);
|
|
133
|
-
if (setRewardIxs.length == 0) {
|
|
134
|
-
return [];
|
|
135
|
-
}
|
|
136
|
-
const distributeIx = await (await distributeCompressionRewards({
|
|
137
|
-
program: lazyDistributorProgram,
|
|
138
|
-
assetId: assets[idx],
|
|
139
|
-
lazyDistributor,
|
|
140
|
-
rewardsMint: lazyDistributorAcc.rewardsMint,
|
|
141
|
-
getAssetFn: () => Promise.resolve(assetAcc),
|
|
142
|
-
getAssetProofFn,
|
|
143
|
-
assetEndpoint,
|
|
144
|
-
})).instruction();
|
|
145
|
-
return [...setRewardIxs, distributeIx];
|
|
146
|
-
}));
|
|
147
|
-
for (let i = 0; i < setAndDistributeIxs.length; i++) {
|
|
148
|
-
if (setAndDistributeIxs[i].length == 0) {
|
|
149
|
-
continue;
|
|
150
|
-
}
|
|
151
|
-
ixsPerAsset[i].push(...setAndDistributeIxs[i]);
|
|
152
|
-
}
|
|
153
|
-
// filter arrays where init recipient is the only ix
|
|
154
|
-
ixsPerAsset = ixsPerAsset.filter((x) => x.length > 1);
|
|
155
|
-
let blockhash = (await provider.connection.getLatestBlockhash()).blockhash;
|
|
156
|
-
// unsigned txs
|
|
157
|
-
let initialTxs = ixsPerAsset.map((ixs) => {
|
|
158
|
-
const tx = new Transaction();
|
|
159
|
-
tx.recentBlockhash = blockhash;
|
|
160
|
-
tx.feePayer = wallet;
|
|
161
|
-
tx.add(...ixs);
|
|
162
|
-
return tx;
|
|
163
|
-
});
|
|
164
|
-
// @ts-ignore
|
|
165
|
-
const oracleUrls = lazyDistributorAcc.oracles.map((x) => x.url);
|
|
166
|
-
let serTxs = initialTxs.map((tx) => {
|
|
167
|
-
return tx.serialize({
|
|
168
|
-
requireAllSignatures: false,
|
|
169
|
-
verifySignatures: false,
|
|
170
|
-
});
|
|
171
|
-
});
|
|
172
|
-
if (!skipOracleSign) {
|
|
173
|
-
for (const oracle of oracleUrls) {
|
|
174
|
-
const res = await axios.post(`${oracle}/bulk-sign`, {
|
|
175
|
-
transactions: serTxs.map((tx) => tx.toJSON().data),
|
|
176
|
-
});
|
|
177
|
-
serTxs = res.data.transactions.map((x) => Buffer.from(x));
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
const finalTxs = serTxs.map((tx) => Transaction.from(tx));
|
|
181
|
-
// Check instructions are the same
|
|
182
|
-
finalTxs.forEach((finalTx, idx) => {
|
|
183
|
-
assertSameIxns(finalTx.instructions, initialTxs[idx].instructions);
|
|
184
|
-
});
|
|
185
|
-
return finalTxs;
|
|
186
|
-
}
|
|
187
|
-
export async function formTransaction({ program: lazyDistributorProgram, rewardsOracleProgram, provider, rewards, asset, hotspot, lazyDistributor, wallet = provider.wallet.publicKey, skipOracleSign = false, assetEndpoint, getAssetFn = getAsset, getAssetProofFn = getAssetProof, }) {
|
|
188
|
-
if (!asset && !hotspot) {
|
|
189
|
-
throw new Error('Must provide asset or hotspot');
|
|
190
|
-
}
|
|
191
|
-
if (!asset) {
|
|
192
|
-
asset = hotspot;
|
|
193
|
-
}
|
|
194
|
-
if (!rewardsOracleProgram) {
|
|
195
|
-
rewardsOracleProgram = await initRewards(lazyDistributorProgram.provider);
|
|
196
|
-
}
|
|
197
|
-
const assetAcc = await getAssetFn(assetEndpoint || provider.connection.rpcEndpoint, asset);
|
|
198
|
-
if (!assetAcc) {
|
|
199
|
-
throw new Error('No asset with ID ' + asset.toBase58());
|
|
200
|
-
}
|
|
201
|
-
const keyToAsset = keyToAssetForAsset(assetAcc);
|
|
202
|
-
const recipient = recipientKey(lazyDistributor, asset)[0];
|
|
203
|
-
const lazyDistributorAcc = (await lazyDistributorProgram.account.lazyDistributorV0.fetch(lazyDistributor));
|
|
204
|
-
const rewardsMint = lazyDistributorAcc.rewardsMint;
|
|
205
|
-
let tx = new Transaction();
|
|
206
|
-
const destinationAccount = await getAssociatedTokenAddress(rewardsMint, assetAcc.ownership.owner, true);
|
|
207
|
-
if (!(await provider.connection.getAccountInfo(recipient))) {
|
|
208
|
-
let initRecipientIx;
|
|
209
|
-
if (assetAcc.compression.compressed) {
|
|
210
|
-
initRecipientIx = await (await initializeCompressionRecipient({
|
|
211
|
-
program: lazyDistributorProgram,
|
|
212
|
-
assetId: asset,
|
|
213
|
-
lazyDistributor,
|
|
214
|
-
assetEndpoint,
|
|
215
|
-
owner: wallet,
|
|
216
|
-
// Make the oracle pay for the recipient to avoid newly migrated users not having enough sol to claim rewards
|
|
217
|
-
payer: lazyDistributorAcc.oracles[0].oracle,
|
|
218
|
-
getAssetFn: () => Promise.resolve(assetAcc),
|
|
219
|
-
getAssetProofFn,
|
|
220
|
-
})).instruction();
|
|
221
|
-
}
|
|
222
|
-
else {
|
|
223
|
-
initRecipientIx = await lazyDistributorProgram.methods
|
|
224
|
-
.initializeRecipientV0()
|
|
225
|
-
.accounts({
|
|
226
|
-
lazyDistributor,
|
|
227
|
-
mint: asset,
|
|
228
|
-
})
|
|
229
|
-
.instruction();
|
|
230
|
-
}
|
|
231
|
-
tx.add(initRecipientIx);
|
|
232
|
-
}
|
|
233
|
-
const ixPromises = rewards.map((x, idx) => {
|
|
234
|
-
return rewardsOracleProgram.methods
|
|
235
|
-
.setCurrentRewardsWrapperV1({
|
|
236
|
-
currentRewards: new BN(x.currentRewards),
|
|
237
|
-
oracleIndex: idx,
|
|
238
|
-
})
|
|
239
|
-
.accounts({
|
|
240
|
-
lazyDistributor,
|
|
241
|
-
recipient,
|
|
242
|
-
keyToAsset,
|
|
243
|
-
oracle: x.oracleKey,
|
|
244
|
-
})
|
|
245
|
-
.instruction();
|
|
246
|
-
});
|
|
247
|
-
const ixs = await Promise.all(ixPromises);
|
|
248
|
-
tx.add(...ixs);
|
|
249
|
-
tx.recentBlockhash = (await provider.connection.getLatestBlockhash()).blockhash;
|
|
250
|
-
tx.feePayer = wallet ? wallet : provider.wallet.publicKey;
|
|
251
|
-
if (assetAcc.compression.compressed) {
|
|
252
|
-
const distributeIx = await (await distributeCompressionRewards({
|
|
253
|
-
program: lazyDistributorProgram,
|
|
254
|
-
assetId: asset,
|
|
255
|
-
lazyDistributor,
|
|
256
|
-
getAssetFn: () => Promise.resolve(assetAcc),
|
|
257
|
-
getAssetProofFn,
|
|
258
|
-
assetEndpoint,
|
|
259
|
-
})).instruction();
|
|
260
|
-
tx.add(distributeIx);
|
|
261
|
-
}
|
|
262
|
-
else {
|
|
263
|
-
const distributeIx = await lazyDistributorProgram.methods
|
|
264
|
-
.distributeRewardsV0()
|
|
265
|
-
.accounts({
|
|
266
|
-
// @ts-ignore
|
|
267
|
-
common: {
|
|
268
|
-
recipient,
|
|
269
|
-
lazyDistributor,
|
|
270
|
-
rewardsMint,
|
|
271
|
-
owner: assetAcc.ownership.owner,
|
|
272
|
-
destinationAccount,
|
|
273
|
-
},
|
|
274
|
-
})
|
|
275
|
-
.instruction();
|
|
276
|
-
tx.add(distributeIx);
|
|
277
|
-
}
|
|
278
|
-
// @ts-ignore
|
|
279
|
-
const oracleUrls = lazyDistributorAcc.oracles.map((x) => x.url);
|
|
280
|
-
let serTx = tx.serialize({
|
|
281
|
-
requireAllSignatures: false,
|
|
282
|
-
verifySignatures: false,
|
|
283
|
-
});
|
|
284
|
-
if (!skipOracleSign) {
|
|
285
|
-
for (const oracle of oracleUrls) {
|
|
286
|
-
const res = await axios.post(`${oracle}`, {
|
|
287
|
-
transaction: serTx,
|
|
288
|
-
});
|
|
289
|
-
serTx = Buffer.from(res.data.transaction);
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
const finalTx = Transaction.from(serTx);
|
|
293
|
-
// Ensure the oracle didn't pull a fast one
|
|
294
|
-
assertSameIxns(finalTx.instructions, tx.instructions);
|
|
295
|
-
return finalTx;
|
|
296
|
-
}
|
|
297
|
-
function assertSameIxns(instructions, instructions1) {
|
|
298
|
-
if (instructions.length !== instructions1.length) {
|
|
299
|
-
throw new Error('Extra instructions added by oracle');
|
|
300
|
-
}
|
|
301
|
-
instructions.forEach((instruction, idx) => {
|
|
302
|
-
const instruction1 = instructions1[idx];
|
|
303
|
-
if (instruction.programId.toBase58() !== instruction1.programId.toBase58()) {
|
|
304
|
-
throw new Error('Program id mismatch');
|
|
305
|
-
}
|
|
306
|
-
if (!instruction.data.equals(instruction1.data)) {
|
|
307
|
-
throw new Error('Instruction data mismatch');
|
|
308
|
-
}
|
|
309
|
-
if (instruction.keys.length !== instruction1.keys.length) {
|
|
310
|
-
throw new Error('Key length mismatch');
|
|
311
|
-
}
|
|
312
|
-
instruction.keys.forEach((key, idx) => {
|
|
313
|
-
const key1 = instruction1.keys[idx];
|
|
314
|
-
if (key.pubkey.toBase58() !== key1.pubkey.toBase58()) {
|
|
315
|
-
throw new Error('Key mismatch');
|
|
316
|
-
}
|
|
317
|
-
});
|
|
318
|
-
});
|
|
319
|
-
}
|
|
320
|
-
//# sourceMappingURL=client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/src/index.js
DELETED
package/lib/esm/src/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
package/lib/esm/src/model.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Sequelize, STRING, BIGINT, Model } from "sequelize";
|
|
2
|
-
import AWS from "aws-sdk";
|
|
3
|
-
import * as pg from "pg";
|
|
4
|
-
const host = process.env.PGHOST || "localhost";
|
|
5
|
-
const port = Number(process.env.PGPORT) || 5432;
|
|
6
|
-
export const sequelize = new Sequelize({
|
|
7
|
-
host: host,
|
|
8
|
-
dialect: "postgres",
|
|
9
|
-
port: port,
|
|
10
|
-
logging: false,
|
|
11
|
-
dialectModule: pg,
|
|
12
|
-
username: process.env.PGUSER,
|
|
13
|
-
database: process.env.PGDATABASE,
|
|
14
|
-
pool: {
|
|
15
|
-
max: 5,
|
|
16
|
-
min: 0,
|
|
17
|
-
acquire: 30000,
|
|
18
|
-
idle: 10000
|
|
19
|
-
},
|
|
20
|
-
hooks: {
|
|
21
|
-
beforeConnect: async (config) => {
|
|
22
|
-
const isRds = host.includes("rds.amazonaws.com");
|
|
23
|
-
let password = process.env.PGPASSWORD;
|
|
24
|
-
if (isRds && !password) {
|
|
25
|
-
const signer = new AWS.RDS.Signer({
|
|
26
|
-
region: process.env.AWS_REGION,
|
|
27
|
-
hostname: process.env.PGHOST,
|
|
28
|
-
port,
|
|
29
|
-
username: process.env.PGUSER,
|
|
30
|
-
});
|
|
31
|
-
password = await new Promise((resolve, reject) => signer.getAuthToken({}, (err, token) => {
|
|
32
|
-
if (err) {
|
|
33
|
-
return reject(err);
|
|
34
|
-
}
|
|
35
|
-
resolve(token);
|
|
36
|
-
}));
|
|
37
|
-
config.dialectOptions = {
|
|
38
|
-
ssl: {
|
|
39
|
-
require: false,
|
|
40
|
-
rejectUnauthorized: false,
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
config.password = password;
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
export class Reward extends Model {
|
|
49
|
-
}
|
|
50
|
-
Reward.init({
|
|
51
|
-
address: {
|
|
52
|
-
type: STRING,
|
|
53
|
-
primaryKey: true,
|
|
54
|
-
},
|
|
55
|
-
rewards: {
|
|
56
|
-
type: BIGINT,
|
|
57
|
-
},
|
|
58
|
-
lastReward: {
|
|
59
|
-
type: 'TIMESTAMP',
|
|
60
|
-
},
|
|
61
|
-
}, { sequelize, modelName: "reward_index", tableName: "reward_index", underscored: true, timestamps: false });
|
|
62
|
-
//# sourceMappingURL=model.js.map
|
package/lib/esm/src/model.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAQ,MAAM,WAAW,CAAC;AACnE,OAAO,GAAG,MAAM,SAAS,CAAC;AAC1B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,WAAW,CAAC;AAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AAChD,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;IACrC,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,KAAK;IACd,aAAa,EAAE,EAAE;IACjB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM;IAC5B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;IAChC,IAAI,EAAE;QACJ,GAAG,EAAE,CAAC;QACN,GAAG,EAAE,CAAC;QACN,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,KAAK;KACZ;IACD,KAAK,EAAE;QACL,aAAa,EAAE,KAAK,EAAE,MAAW,EAAE,EAAE;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;YAEjD,IAAI,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;YACtC,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE;gBACtB,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;oBAChC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;oBAC9B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM;oBAC5B,IAAI;oBACJ,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM;iBAC7B,CAAC,CAAC;gBACH,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;oBACvF,IAAI,GAAG,EAAE;wBACP,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;qBACnB;oBACD,OAAO,CAAC,KAAK,CAAC,CAAA;gBAChB,CAAC,CAAC,CAAC,CAAC;gBACJ,MAAM,CAAC,cAAc,GAAG;oBACtB,GAAG,EAAE;wBACH,OAAO,EAAE,KAAK;wBACd,kBAAkB,EAAE,KAAK;qBAC1B;iBACF,CAAA;aACF;YACD,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,CAAC;KACF;CACF,CAAC,CAAC;AAEH,MAAM,OAAO,MAAO,SAAQ,KAAK;CAGhC;AACD,MAAM,CAAC,IAAI,CACT;IACE,OAAO,EAAE;QACP,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,IAAI;KACjB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,MAAM;KACb;IACD,UAAU,EAAE;QACV,IAAI,EAAE,WAAW;KAClB;CACF,EACD,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAC1G,CAAC"}
|