@glowlabs-org/utils 0.0.5 → 0.0.6
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/.github/workflows/publish.yml +25 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/default-values/gca-to-server-urls.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/AuditCompleted.js.map +1 -0
- package/dist/types/AuditInherited.js.map +1 -0
- package/{lib/esm → dist}/types/Device.js.map +1 -1
- package/dist/types/DuplicatedButPastAuditCompleted.js.map +1 -0
- package/{lib/cjs → dist}/types/Farm.js.map +1 -1
- package/{lib/cjs → dist}/types/FarmStatus.js.map +1 -1
- package/dist/types/GCAAndServerUrl.js.map +1 -0
- package/dist/types/GCAServerResponse.js.map +1 -0
- package/dist/types/GetEquipmentDataHandlerParams.js.map +1 -0
- package/dist/types/PayoutWalletAndSplit.js.map +1 -0
- package/dist/types/PayoutWalletAndSplitWithRewardSplits.js.map +1 -0
- package/dist/types/RewardSplit.js.map +1 -0
- package/{lib/cjs → dist}/types/RewardSplits.js.map +1 -1
- package/dist/types/SlotRange.js.map +1 -0
- package/dist/types/WeekAndSlotRange.js.map +1 -0
- package/dist/types/index.js.map +1 -0
- package/{lib/cjs → dist}/types/stashed-Farm.js.map +1 -1
- package/package.json +10 -17
- package/src/constants/index.ts +1 -0
- package/{lib/esm/default-values/gca-to-server-urls.js → src/default-values/gca-to-server-urls.ts} +2 -2
- package/src/index.ts +3 -0
- package/src/types/AuditCompleted.ts +3 -0
- package/src/types/AuditInherited.ts +3 -0
- package/src/types/Device.ts +3 -0
- package/src/types/DuplicatedButPastAuditCompleted.ts +4 -0
- package/src/types/Farm.ts +22 -0
- package/src/types/FarmStatus.ts +12 -0
- package/src/types/GCAAndServerUrl.ts +5 -0
- package/src/types/GCAServerResponse.ts +4 -0
- package/src/types/GetEquipmentDataHandlerParams.ts +3 -0
- package/src/types/PayoutWalletAndSplit.ts +5 -0
- package/src/types/PayoutWalletAndSplitWithRewardSplits.ts +6 -0
- package/src/types/RewardSplit.ts +3 -0
- package/src/types/RewardSplits.ts +4 -0
- package/src/types/SlotRange.ts +3 -0
- package/src/types/WeekAndSlotRange.ts +4 -0
- package/src/types/stashed-Farm.ts +22 -0
- package/tsconfig.json +31 -0
- package/lib/cjs/constants/index.js +0 -5
- package/lib/cjs/constants/index.js.map +0 -1
- package/lib/cjs/default-values/gca-to-server-urls.js.map +0 -1
- package/lib/cjs/index.d.ts +0 -3
- package/lib/cjs/index.js +0 -23
- package/lib/cjs/index.js.map +0 -1
- package/lib/cjs/lib/create-weekly-report/index.d.ts +0 -43
- package/lib/cjs/lib/create-weekly-report/index.js +0 -177
- package/lib/cjs/lib/create-weekly-report/index.js.map +0 -1
- package/lib/cjs/lib/create-weekly-report/utils/hash-leaf.d.ts +0 -7
- package/lib/cjs/lib/create-weekly-report/utils/hash-leaf.js +0 -16
- package/lib/cjs/lib/create-weekly-report/utils/hash-leaf.js.map +0 -1
- package/lib/cjs/package.json +0 -1
- package/lib/cjs/types/AuditCompleted.js +0 -4
- package/lib/cjs/types/AuditCompleted.js.map +0 -1
- package/lib/cjs/types/AuditInherited.js +0 -4
- package/lib/cjs/types/AuditInherited.js.map +0 -1
- package/lib/cjs/types/Device.js +0 -4
- package/lib/cjs/types/Device.js.map +0 -1
- package/lib/cjs/types/DuplicatedButPastAuditCompleted.js +0 -3
- package/lib/cjs/types/DuplicatedButPastAuditCompleted.js.map +0 -1
- package/lib/cjs/types/Farm.js +0 -3
- package/lib/cjs/types/FarmStatus.js +0 -3
- package/lib/cjs/types/GCAAndServerUrl.js +0 -3
- package/lib/cjs/types/GCAAndServerUrl.js.map +0 -1
- package/lib/cjs/types/GCAServerResponse.js +0 -3
- package/lib/cjs/types/GCAServerResponse.js.map +0 -1
- package/lib/cjs/types/GetEquipmentDataHandlerParams.js +0 -4
- package/lib/cjs/types/GetEquipmentDataHandlerParams.js.map +0 -1
- package/lib/cjs/types/PayoutWalletAndSplit.js +0 -3
- package/lib/cjs/types/PayoutWalletAndSplit.js.map +0 -1
- package/lib/cjs/types/PayoutWalletAndSplitWithRewardSplits.js +0 -3
- package/lib/cjs/types/PayoutWalletAndSplitWithRewardSplits.js.map +0 -1
- package/lib/cjs/types/RewardSplit.js +0 -4
- package/lib/cjs/types/RewardSplit.js.map +0 -1
- package/lib/cjs/types/RewardSplits.js +0 -3
- package/lib/cjs/types/SlotRange.js +0 -4
- package/lib/cjs/types/SlotRange.js.map +0 -1
- package/lib/cjs/types/WeekAndSlotRange.js +0 -3
- package/lib/cjs/types/WeekAndSlotRange.js.map +0 -1
- package/lib/cjs/types/index.js +0 -31
- package/lib/cjs/types/index.js.map +0 -1
- package/lib/cjs/types/stashed-Farm.js +0 -3
- package/lib/esm/constants/index.d.ts +0 -1
- package/lib/esm/constants/index.js.map +0 -1
- package/lib/esm/default-values/gca-to-server-urls.d.ts +0 -0
- package/lib/esm/default-values/gca-to-server-urls.js.map +0 -1
- package/lib/esm/index.d.ts +0 -3
- package/lib/esm/index.js +0 -5
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/lib/create-weekly-report/index.d.ts +0 -43
- package/lib/esm/lib/create-weekly-report/index.js +0 -170
- package/lib/esm/lib/create-weekly-report/index.js.map +0 -1
- package/lib/esm/lib/create-weekly-report/utils/hash-leaf.d.ts +0 -7
- package/lib/esm/lib/create-weekly-report/utils/hash-leaf.js +0 -12
- package/lib/esm/lib/create-weekly-report/utils/hash-leaf.js.map +0 -1
- package/lib/esm/package.json +0 -1
- package/lib/esm/types/AuditCompleted.d.ts +0 -3
- package/lib/esm/types/AuditCompleted.js.map +0 -1
- package/lib/esm/types/AuditInherited.d.ts +0 -6
- package/lib/esm/types/AuditInherited.js.map +0 -1
- package/lib/esm/types/Device.d.ts +0 -5
- package/lib/esm/types/DuplicatedButPastAuditCompleted.d.ts +0 -8
- package/lib/esm/types/DuplicatedButPastAuditCompleted.js.map +0 -1
- package/lib/esm/types/Farm.d.ts +0 -20
- package/lib/esm/types/Farm.js.map +0 -1
- package/lib/esm/types/FarmStatus.d.ts +0 -14
- package/lib/esm/types/FarmStatus.js.map +0 -1
- package/lib/esm/types/GCAAndServerUrl.d.ts +0 -5
- package/lib/esm/types/GCAAndServerUrl.js.map +0 -1
- package/lib/esm/types/GCAServerResponse.d.ts +0 -6
- package/lib/esm/types/GCAServerResponse.js.map +0 -1
- package/lib/esm/types/GetEquipmentDataHandlerParams.d.ts +0 -5
- package/lib/esm/types/GetEquipmentDataHandlerParams.js.map +0 -1
- package/lib/esm/types/PayoutWalletAndSplit.d.ts +0 -17
- package/lib/esm/types/PayoutWalletAndSplit.js.map +0 -1
- package/lib/esm/types/PayoutWalletAndSplitWithRewardSplits.d.ts +0 -15
- package/lib/esm/types/PayoutWalletAndSplitWithRewardSplits.js.map +0 -1
- package/lib/esm/types/RewardSplit.d.ts +0 -5
- package/lib/esm/types/RewardSplit.js.map +0 -1
- package/lib/esm/types/RewardSplits.d.ts +0 -2
- package/lib/esm/types/RewardSplits.js.map +0 -1
- package/lib/esm/types/SlotRange.d.ts +0 -4
- package/lib/esm/types/SlotRange.js.map +0 -1
- package/lib/esm/types/WeekAndSlotRange.d.ts +0 -5
- package/lib/esm/types/WeekAndSlotRange.js.map +0 -1
- package/lib/esm/types/index.js.map +0 -1
- package/lib/esm/types/stashed-Farm.d.ts +0 -20
- package/lib/esm/types/stashed-Farm.js.map +0 -1
- /package/{lib/cjs → dist}/constants/index.d.ts +0 -0
- /package/{lib/esm → dist}/constants/index.js +0 -0
- /package/{lib/cjs → dist}/default-values/gca-to-server-urls.d.ts +0 -0
- /package/{lib/cjs → dist}/default-values/gca-to-server-urls.js +0 -0
- /package/{lib/cjs → dist}/types/AuditCompleted.d.ts +0 -0
- /package/{lib/esm → dist}/types/AuditCompleted.js +0 -0
- /package/{lib/cjs → dist}/types/AuditInherited.d.ts +0 -0
- /package/{lib/esm → dist}/types/AuditInherited.js +0 -0
- /package/{lib/cjs → dist}/types/Device.d.ts +0 -0
- /package/{lib/esm → dist}/types/Device.js +0 -0
- /package/{lib/cjs → dist}/types/DuplicatedButPastAuditCompleted.d.ts +0 -0
- /package/{lib/esm → dist}/types/DuplicatedButPastAuditCompleted.js +0 -0
- /package/{lib/cjs → dist}/types/Farm.d.ts +0 -0
- /package/{lib/esm → dist}/types/Farm.js +0 -0
- /package/{lib/cjs → dist}/types/FarmStatus.d.ts +0 -0
- /package/{lib/esm → dist}/types/FarmStatus.js +0 -0
- /package/{lib/cjs → dist}/types/GCAAndServerUrl.d.ts +0 -0
- /package/{lib/esm → dist}/types/GCAAndServerUrl.js +0 -0
- /package/{lib/cjs → dist}/types/GCAServerResponse.d.ts +0 -0
- /package/{lib/esm → dist}/types/GCAServerResponse.js +0 -0
- /package/{lib/cjs → dist}/types/GetEquipmentDataHandlerParams.d.ts +0 -0
- /package/{lib/esm → dist}/types/GetEquipmentDataHandlerParams.js +0 -0
- /package/{lib/cjs → dist}/types/PayoutWalletAndSplit.d.ts +0 -0
- /package/{lib/esm → dist}/types/PayoutWalletAndSplit.js +0 -0
- /package/{lib/cjs → dist}/types/PayoutWalletAndSplitWithRewardSplits.d.ts +0 -0
- /package/{lib/esm → dist}/types/PayoutWalletAndSplitWithRewardSplits.js +0 -0
- /package/{lib/cjs → dist}/types/RewardSplit.d.ts +0 -0
- /package/{lib/esm → dist}/types/RewardSplit.js +0 -0
- /package/{lib/cjs → dist}/types/RewardSplits.d.ts +0 -0
- /package/{lib/esm → dist}/types/RewardSplits.js +0 -0
- /package/{lib/cjs → dist}/types/SlotRange.d.ts +0 -0
- /package/{lib/esm → dist}/types/SlotRange.js +0 -0
- /package/{lib/cjs → dist}/types/WeekAndSlotRange.d.ts +0 -0
- /package/{lib/esm → dist}/types/WeekAndSlotRange.js +0 -0
- /package/{lib/cjs → dist}/types/index.d.ts +0 -0
- /package/{lib/esm → dist}/types/index.js +0 -0
- /package/{lib/cjs → dist}/types/stashed-Farm.d.ts +0 -0
- /package/{lib/esm → dist}/types/stashed-Farm.js +0 -0
- /package/{lib/esm/types/index.d.ts → src/types/index.ts} +0 -0
@@ -1,170 +0,0 @@
|
|
1
|
-
import { hashLeaf } from "./utils/hash-leaf";
|
2
|
-
import MerkleTree from "merkletreejs";
|
3
|
-
import { BigNumber, ethers } from "ethers";
|
4
|
-
import { formatUnits, parseUnits } from "viem";
|
5
|
-
/**
|
6
|
-
* @dev This is actually not as intuitive as it seems.
|
7
|
-
* Glow actually has 18 decimals, but glow weight is based on the amount of protocol fees (USDC) that the farm paid
|
8
|
-
* Therefore, the weight is based on the amount of USDC that was paid, which has 6 decimals
|
9
|
-
*/
|
10
|
-
const GLOW_WEIGHT_DECIMAL_PRECISION = 6;
|
11
|
-
/**
|
12
|
-
* @dev This is actually not as intuitive as it seems.
|
13
|
-
* USDG weight is based on the amount of carbon credits produced, but the max value of a weight is ((2*64)-1) / 5 so we need to choose sensible precision to make sure that number never overflows
|
14
|
-
*/
|
15
|
-
const USDG_WEIGHT_DECIMAL_PRECISION = 6;
|
16
|
-
// const GCA_URLS = ["http://95.217.194.59:35015"];
|
17
|
-
async function getFarmsForWeek(args) {
|
18
|
-
const { week: weekNumber, gcaUrls, apiUrl } = args;
|
19
|
-
const url = apiUrl;
|
20
|
-
// const url = "http://0.0.0.0:3005/headline_farm_stats";
|
21
|
-
const body = {
|
22
|
-
urls: gcaUrls,
|
23
|
-
week_number: weekNumber,
|
24
|
-
with_full_data: true,
|
25
|
-
include_unassigned_farms: false,
|
26
|
-
with_raw_data: true,
|
27
|
-
};
|
28
|
-
const res = await fetch(url, {
|
29
|
-
method: "POST",
|
30
|
-
body: JSON.stringify(body),
|
31
|
-
headers: {
|
32
|
-
"Content-Type": "application/json",
|
33
|
-
},
|
34
|
-
});
|
35
|
-
const _json = await res.json();
|
36
|
-
return _json;
|
37
|
-
}
|
38
|
-
export async function createWeeklyReport(args) {
|
39
|
-
const map = new Map();
|
40
|
-
function addValueToMap(key, value, map) {
|
41
|
-
if (map.has(key)) {
|
42
|
-
//+= everything
|
43
|
-
const existingValue = map.get(key);
|
44
|
-
existingValue.glowWeight += value.glowWeight;
|
45
|
-
existingValue.usdgWeight += value.usdgWeight;
|
46
|
-
map.set(key, existingValue);
|
47
|
-
}
|
48
|
-
else {
|
49
|
-
map.set(key, value);
|
50
|
-
}
|
51
|
-
}
|
52
|
-
const apiResposne = await getFarmsForWeek(args);
|
53
|
-
const farms = apiResposne.filteredFarms;
|
54
|
-
const rawData = apiResposne.rawData;
|
55
|
-
let totalCreditsProduced = 0;
|
56
|
-
//log the total farms in farms
|
57
|
-
for (const farm of farms) {
|
58
|
-
// const {
|
59
|
-
// shortId,
|
60
|
-
// payoutWallet,
|
61
|
-
// installerGlowFeePercent,
|
62
|
-
// installerUsdgFeePercent,
|
63
|
-
// } = farm;
|
64
|
-
// const key = farm.payoutWallet;
|
65
|
-
// farm.carbonCreditsProduced =
|
66
|
-
farm.status === "Unassigned" ? 0 : farm.carbonCreditsProduced;
|
67
|
-
console.log(farm.status);
|
68
|
-
if (farm.carbonCreditsProduced < 0) {
|
69
|
-
throw new Error("Carbon credits produced is less than 0");
|
70
|
-
}
|
71
|
-
totalCreditsProduced += farm.carbonCreditsProduced;
|
72
|
-
// const value = {
|
73
|
-
// wallet: payoutWallet,
|
74
|
-
// glowWeight: farm.weeklyPayment * (1 - installerGlowFeePercent),
|
75
|
-
// usdgWeight: farm.carbonCreditsProduced * (1 - installerUsdgFeePercent),
|
76
|
-
// };
|
77
|
-
// const installerKey = farm.installerWallet;
|
78
|
-
// const installerValue = {
|
79
|
-
// wallet: farm.installerWallet,
|
80
|
-
// glowWeight: farm.weeklyPayment * installerGlowFeePercent,
|
81
|
-
// usdgWeight: farm.carbonCreditsProduced * installerUsdgFeePercent,
|
82
|
-
// };
|
83
|
-
if (!farm.rewardSplits)
|
84
|
-
throw new Error("No reward splits");
|
85
|
-
const sumOfRewardSplitsGlowWeight = farm.rewardSplits.reduce((acc, rewardSplit) => acc + rewardSplit.glowSplitPercent, 0);
|
86
|
-
const sumOfRewardSplitsUSDGWeight = farm.rewardSplits.reduce((acc, rewardSplit) => acc + rewardSplit.usdgSplitPercent, 0);
|
87
|
-
if (sumOfRewardSplitsGlowWeight !== 1)
|
88
|
-
throw new Error("Glow weight splits do not add up to 1");
|
89
|
-
if (sumOfRewardSplitsUSDGWeight !== 1)
|
90
|
-
throw new Error("USDG weight splits do not add up to 1");
|
91
|
-
for (const rewardSplit of farm.rewardSplits) {
|
92
|
-
const value = {
|
93
|
-
wallet: rewardSplit.walletAddress,
|
94
|
-
glowWeight: farm.weeklyPayment * rewardSplit.glowSplitPercent,
|
95
|
-
usdgWeight: farm.carbonCreditsProduced * rewardSplit.usdgSplitPercent,
|
96
|
-
};
|
97
|
-
addValueToMap(rewardSplit.walletAddress, value, map);
|
98
|
-
}
|
99
|
-
// addValueToMap(key, value, map);
|
100
|
-
// addValueToMap(installerKey, installerValue, map);
|
101
|
-
}
|
102
|
-
const merkleLeaves = Array.from(map.values());
|
103
|
-
const finalLeaves = merkleLeaves.map(({ wallet, glowWeight, usdgWeight }) => ({
|
104
|
-
wallet,
|
105
|
-
glowWeight: parseUnits(glowWeight.toString(), GLOW_WEIGHT_DECIMAL_PRECISION).toString(),
|
106
|
-
usdgWeight: parseUnits(usdgWeight.toString(), USDG_WEIGHT_DECIMAL_PRECISION).toString(),
|
107
|
-
}));
|
108
|
-
const leaves = finalLeaves.map((leaf) => hashLeaf({
|
109
|
-
address: leaf.wallet,
|
110
|
-
glowWeight: leaf.glowWeight,
|
111
|
-
usdcWeight: leaf.usdgWeight,
|
112
|
-
}));
|
113
|
-
const tree = new MerkleTree(leaves, ethers.utils.keccak256, { sort: true });
|
114
|
-
const root = tree.getHexRoot();
|
115
|
-
const totalGlowWeightFinalizedLeavesSum = finalLeaves.reduce((acc, { glowWeight }) => acc.add(glowWeight), ethers.BigNumber.from(0));
|
116
|
-
const totalGCCWeightFinalizedLeavesSum = finalLeaves.reduce((acc, { usdgWeight }) => acc.add(usdgWeight), ethers.BigNumber.from(0));
|
117
|
-
const headlineStats = {
|
118
|
-
weekNumber: args.week,
|
119
|
-
totalCreditsProduced,
|
120
|
-
totalCreditsProducedBN: parseUnits(totalCreditsProduced.toString(), 18).toString(),
|
121
|
-
totalGlowWeightInFinalized: totalGlowWeightFinalizedLeavesSum.toString(),
|
122
|
-
totalGlowWeightHuman: formatUnits(BigInt(totalGlowWeightFinalizedLeavesSum.toString()), GLOW_WEIGHT_DECIMAL_PRECISION).toString(),
|
123
|
-
totalUSDGWeightInFinalized: totalGCCWeightFinalizedLeavesSum.toString(),
|
124
|
-
totalUSDGWeightHuman: formatUnits(BigInt(totalGCCWeightFinalizedLeavesSum.toString()), USDG_WEIGHT_DECIMAL_PRECISION).toString(),
|
125
|
-
root: root,
|
126
|
-
};
|
127
|
-
const farmsWithMerkleProofs = finalLeaves.map((leaf) => {
|
128
|
-
const hashedLeaf = hashLeaf({
|
129
|
-
address: leaf.wallet,
|
130
|
-
glowWeight: leaf.glowWeight,
|
131
|
-
usdcWeight: leaf.usdgWeight,
|
132
|
-
});
|
133
|
-
const proof = tree.getHexProof(hashedLeaf);
|
134
|
-
const isValid = tree.verify(proof, hashedLeaf, root);
|
135
|
-
if (!isValid) {
|
136
|
-
throw new Error("Invalid proof");
|
137
|
-
}
|
138
|
-
return {
|
139
|
-
...leaf,
|
140
|
-
proof,
|
141
|
-
};
|
142
|
-
});
|
143
|
-
//-----------------------------------------------------//
|
144
|
-
//-Some invariant tests in case something got messed up//
|
145
|
-
//-----------------------------------------------------//
|
146
|
-
//Make sure that the sum of all the glow weight is equal to the sum of all the glow weight in the final leaves
|
147
|
-
let forLoopedGlowWeightSum = ethers.BigNumber.from(0);
|
148
|
-
for (const farm of farmsWithMerkleProofs) {
|
149
|
-
forLoopedGlowWeightSum = forLoopedGlowWeightSum.add(BigNumber.from(farm.glowWeight));
|
150
|
-
}
|
151
|
-
if (!forLoopedGlowWeightSum.eq(totalGlowWeightFinalizedLeavesSum)) {
|
152
|
-
throw new Error("Glow weight sum is not equal");
|
153
|
-
}
|
154
|
-
//do the same for gcc
|
155
|
-
let forLoopedGCCWeightSum = ethers.BigNumber.from(0);
|
156
|
-
for (const farm of farmsWithMerkleProofs) {
|
157
|
-
forLoopedGCCWeightSum = forLoopedGCCWeightSum.add(BigNumber.from(farm.usdgWeight));
|
158
|
-
}
|
159
|
-
if (!forLoopedGCCWeightSum.eq(totalGCCWeightFinalizedLeavesSum)) {
|
160
|
-
throw new Error("GCC weight sum is not equal");
|
161
|
-
}
|
162
|
-
return {
|
163
|
-
headlineStats,
|
164
|
-
finalLeaves,
|
165
|
-
farmsWithMerkleProofs,
|
166
|
-
farms,
|
167
|
-
rawData,
|
168
|
-
};
|
169
|
-
}
|
170
|
-
//# sourceMappingURL=index.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/create-weekly-report/index.ts"],"names":[],"mappings":"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"}
|
@@ -1,12 +0,0 @@
|
|
1
|
-
import { ethers } from "ethers";
|
2
|
-
const leafTypes = ["address", "uint256", "uint256"];
|
3
|
-
export function hashLeaf({ address, glowWeight, usdcWeight, }) {
|
4
|
-
const hash = ethers.utils.solidityKeccak256(leafTypes, [
|
5
|
-
address,
|
6
|
-
glowWeight,
|
7
|
-
usdcWeight,
|
8
|
-
]);
|
9
|
-
return hash;
|
10
|
-
}
|
11
|
-
//
|
12
|
-
//# sourceMappingURL=hash-leaf.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"hash-leaf.js","sourceRoot":"","sources":["../../../../../src/lib/create-weekly-report/utils/hash-leaf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAOpD,MAAM,UAAU,QAAQ,CAAC,EACvB,OAAO,EACP,UAAU,EACV,UAAU,GACG;IACb,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,EAAE;QACrD,OAAO;QACP,UAAU;QACV,UAAU;KACX,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,EAAE"}
|
package/lib/esm/package.json
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"sideEffects":false,"type":"module"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"AuditCompleted.js","sourceRoot":"","sources":["../../../src/types/AuditCompleted.ts"],"names":[],"mappings":"AAAA,4GAA4G"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"AuditInherited.js","sourceRoot":"","sources":["../../../src/types/AuditInherited.ts"],"names":[],"mappings":"AAAA,4GAA4G"}
|
@@ -1,8 +0,0 @@
|
|
1
|
-
import type { AuditInherited } from "./AuditInherited";
|
2
|
-
export interface DuplicatedButPastAuditCompleted {
|
3
|
-
weekDuplicated: number;
|
4
|
-
slotRangeActiveInWeekDuplicated: [number, number];
|
5
|
-
originalWeekAuditCompletedOrInherited: number;
|
6
|
-
newFarmId: bigint;
|
7
|
-
ifWasAlsoAuditInheritedInOnboardingWeek: AuditInherited | null;
|
8
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"DuplicatedButPastAuditCompleted.js","sourceRoot":"","sources":["../../../src/types/DuplicatedButPastAuditCompleted.ts"],"names":[],"mappings":""}
|
package/lib/esm/types/Farm.d.ts
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
import type { FarmStatus } from "./FarmStatus";
|
2
|
-
import type { RewardSplits } from "./RewardSplits";
|
3
|
-
import type { SlotRange } from "./SlotRange";
|
4
|
-
export interface Farm {
|
5
|
-
hexlifiedPublicKey: string;
|
6
|
-
carbonCreditsProduced: number;
|
7
|
-
powerOutputs: Array<number>;
|
8
|
-
impactRates: Array<number>;
|
9
|
-
weeklyPayment: number;
|
10
|
-
rollingImpactPoints: number;
|
11
|
-
powerOutput: number;
|
12
|
-
shortId: bigint;
|
13
|
-
protocolFee: number;
|
14
|
-
rewardSplits: RewardSplits | null;
|
15
|
-
status: FarmStatus;
|
16
|
-
protocolFeePaymentHash: string | null;
|
17
|
-
weeksAndSlotRangesToInvertPowerMap: Record<number, Array<SlotRange>> | null;
|
18
|
-
weeksAndSlotsToInvalidatePowerMap: Record<number, Array<SlotRange>> | null;
|
19
|
-
timestampAuditedComplete: bigint | null;
|
20
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"Farm.js","sourceRoot":"","sources":["../../../src/types/Farm.ts"],"names":[],"mappings":""}
|
@@ -1,14 +0,0 @@
|
|
1
|
-
import type { AuditCompleted } from "./AuditCompleted";
|
2
|
-
import type { AuditInherited } from "./AuditInherited";
|
3
|
-
import type { DuplicatedButPastAuditCompleted } from "./DuplicatedButPastAuditCompleted";
|
4
|
-
export type FarmStatus = {
|
5
|
-
AuditCompleted: AuditCompleted;
|
6
|
-
} | {
|
7
|
-
AuditInherited: AuditInherited;
|
8
|
-
} | {
|
9
|
-
Banned: number;
|
10
|
-
} | {
|
11
|
-
Duplicate: number;
|
12
|
-
} | {
|
13
|
-
DuplicateWithPastAuditCompleted: DuplicatedButPastAuditCompleted;
|
14
|
-
} | "Unassigned";
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"FarmStatus.js","sourceRoot":"","sources":["../../../src/types/FarmStatus.ts"],"names":[],"mappings":""}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"GCAAndServerUrl.js","sourceRoot":"","sources":["../../../src/types/GCAAndServerUrl.ts"],"names":[],"mappings":""}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"GCAServerResponse.js","sourceRoot":"","sources":["../../../src/types/GCAServerResponse.ts"],"names":[],"mappings":""}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"GetEquipmentDataHandlerParams.js","sourceRoot":"","sources":["../../../src/types/GetEquipmentDataHandlerParams.ts"],"names":[],"mappings":"AAAA,4GAA4G"}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
import type { FarmStatus } from "./FarmStatus";
|
2
|
-
import type { SlotRange } from "./SlotRange";
|
3
|
-
export interface PayoutWalletAndSplit {
|
4
|
-
short_id: bigint;
|
5
|
-
payout_wallet: string;
|
6
|
-
auditor: string;
|
7
|
-
auditor_percenage_glow_weight: number;
|
8
|
-
auditor_percentage_usdc_weight: number;
|
9
|
-
glow_weight: number;
|
10
|
-
comments: Array<string> | null;
|
11
|
-
payment_tx_hash: string | null;
|
12
|
-
protocol_fee_paid_week: number;
|
13
|
-
status: FarmStatus | null;
|
14
|
-
weeks_and_slot_ranges_to_invert_power_map: Record<number, Array<SlotRange>> | null;
|
15
|
-
weeks_and_slots_to_invalidate_power_map: Record<number, Array<SlotRange>> | null;
|
16
|
-
timestamp_audited_completed: bigint | null;
|
17
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"PayoutWalletAndSplit.js","sourceRoot":"","sources":["../../../src/types/PayoutWalletAndSplit.ts"],"names":[],"mappings":""}
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import type { FarmStatus } from "./FarmStatus";
|
2
|
-
import type { RewardSplits } from "./RewardSplits";
|
3
|
-
import type { SlotRange } from "./SlotRange";
|
4
|
-
export interface PayoutWalletAndSplitWithRewardSplits {
|
5
|
-
short_id: bigint;
|
6
|
-
reward_splits: RewardSplits | null;
|
7
|
-
glow_weight: number;
|
8
|
-
comments: Array<string> | null;
|
9
|
-
payment_tx_hash: string | null;
|
10
|
-
protocol_fee_paid_week: number;
|
11
|
-
status: FarmStatus | null;
|
12
|
-
weeks_and_slot_ranges_to_invert_power_map: Record<number, Array<SlotRange>> | null;
|
13
|
-
weeks_and_slots_to_invalidate_power_map: Record<number, Array<SlotRange>> | null;
|
14
|
-
timestamp_audited_completed: bigint | null;
|
15
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"PayoutWalletAndSplitWithRewardSplits.js","sourceRoot":"","sources":["../../../src/types/PayoutWalletAndSplitWithRewardSplits.ts"],"names":[],"mappings":""}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"RewardSplit.js","sourceRoot":"","sources":["../../../src/types/RewardSplit.ts"],"names":[],"mappings":"AAAA,4GAA4G"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"RewardSplits.js","sourceRoot":"","sources":["../../../src/types/RewardSplits.ts"],"names":[],"mappings":""}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"SlotRange.js","sourceRoot":"","sources":["../../../src/types/SlotRange.ts"],"names":[],"mappings":"AAAA,4GAA4G"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"WeekAndSlotRange.js","sourceRoot":"","sources":["../../../src/types/WeekAndSlotRange.ts"],"names":[],"mappings":""}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,mCAAmC,CAAC;AAClD,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC;AAChD,cAAc,wBAAwB,CAAC;AACvC,cAAc,wCAAwC,CAAC;AACvD,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
|
@@ -1,20 +0,0 @@
|
|
1
|
-
import type { FarmStatus } from "./FarmStatus";
|
2
|
-
import type { RewardSplits } from "./RewardSplits";
|
3
|
-
import type { SlotRange } from "./SlotRange";
|
4
|
-
export interface Farm {
|
5
|
-
hexlifiedPublicKey: string;
|
6
|
-
carbonCreditsProduced: number;
|
7
|
-
powerOutputs: Array<number>;
|
8
|
-
impactRates: Array<number>;
|
9
|
-
weeklyPayment: number;
|
10
|
-
rollingImpactPoints: number;
|
11
|
-
powerOutput: number;
|
12
|
-
shortId: bigint;
|
13
|
-
protocolFee: number;
|
14
|
-
rewardSplits: RewardSplits | null;
|
15
|
-
status: FarmStatus;
|
16
|
-
protocolFeePaymentHash: string | null;
|
17
|
-
weeksAndSlotRangesToInvertPowerMap: Record<number, Array<SlotRange>> | null;
|
18
|
-
weeksAndSlotsToInvalidatePowerMap: Record<number, Array<SlotRange>> | null;
|
19
|
-
timestampAuditedComplete: bigint | null;
|
20
|
-
}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"stashed-Farm.js","sourceRoot":"","sources":["../../../src/types/stashed-Farm.ts"],"names":[],"mappings":""}
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|