@glowlabs-org/utils 0.2.25 → 0.2.26

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.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var regionRouter = require('./region-router-C3X3im0d.js');
3
+ var regionRouter = require('./region-router-CIjrTHtv.js');
4
4
  require('ethers');
5
5
  require('viem');
6
6
 
package/dist/cjs/index.js CHANGED
@@ -15,7 +15,7 @@ var viem = require('viem');
15
15
  var merkletreejs = require('merkletreejs');
16
16
  var ethers = require('ethers');
17
17
  var Decimal = require('decimal.js');
18
- var regionRouter = require('./region-router-C3X3im0d.js');
18
+ var regionRouter = require('./region-router-CIjrTHtv.js');
19
19
 
20
20
  const GENESIS_TIMESTAMP = 1700352000;
21
21
 
@@ -1,10 +1,14 @@
1
- import type { Region, RegionWithMetadata, ActivationConfig, CreateRegionPayload } from "../types";
1
+ import type { Region, RegionWithMetadata, ActivationConfig, CreateRegionPayload, CreateKickstarterPayload, Kickstarter, ActivationEvent, KickstarterCreateResponse } from "../types";
2
2
  export declare function RegionRouter(baseUrl: string): {
3
3
  readonly fetchRegions: () => Promise<Region[]>;
4
4
  readonly fetchActivationConfig: (regionCode: string) => Promise<ActivationConfig>;
5
+ readonly fetchActivationEvents: (regionId?: number) => Promise<ActivationEvent[]>;
6
+ readonly fetchKickstarter: (idOrSlug: string) => Promise<Kickstarter>;
5
7
  readonly getRegionByCode: (code: string) => RegionWithMetadata | null;
6
8
  readonly createRegion: (payload: CreateRegionPayload) => Promise<void>;
9
+ readonly createKickstarter: (payload: CreateKickstarterPayload) => Promise<KickstarterCreateResponse>;
7
10
  readonly regions: Region[];
8
11
  readonly isLoading: boolean;
9
12
  readonly isCreatingRegion: boolean;
13
+ readonly isCreatingKickstarter: boolean;
10
14
  };
@@ -117,4 +117,54 @@ export interface RegionMetadata {
117
117
  isUs: boolean;
118
118
  flag?: string;
119
119
  }
120
+ export type KickstarterStatus = "draft" | "awaiting-kickoff" | "collecting-support" | "ready-to-activate" | "completed" | "expired" | "cancelled" | "suspended";
121
+ export interface CreateKickstarterPayload {
122
+ creatorWallet: string;
123
+ regionName: string;
124
+ isUs?: boolean;
125
+ title: string;
126
+ description: string;
127
+ stakeTargetGctl: string;
128
+ requiredFarmCount?: number;
129
+ requiredInstallerCount?: number;
130
+ }
131
+ export interface KickstarterCreateResponse {
132
+ success: true;
133
+ id: string;
134
+ }
135
+ export interface Kickstarter {
136
+ id: string;
137
+ regionId: number;
138
+ creatorWallet: string;
139
+ title: string;
140
+ description: string;
141
+ slug: string;
142
+ status: KickstarterStatus | string;
143
+ createdAt: string;
144
+ updatedAt: string;
145
+ publishedAt?: string;
146
+ completedAt?: string;
147
+ cancelledAt?: string;
148
+ expiredAt?: string;
149
+ deadline: string;
150
+ stakeTargetGctl: string;
151
+ requiredFarmCount: number;
152
+ requiredInstallerCount: number;
153
+ stakeContributed: boolean;
154
+ farmProvided: boolean;
155
+ installerCertified: boolean;
156
+ kickoffTransferTxId?: string;
157
+ kickoffMintTxId?: string;
158
+ kickoffStakeEventId?: string;
159
+ }
160
+ export interface ActivationEvent {
161
+ id: string;
162
+ regionId: number;
163
+ epoch: number;
164
+ stakeThresholdMet: boolean;
165
+ solarFarmRequirementMet: boolean;
166
+ installerRequirementMet: boolean;
167
+ activated: boolean;
168
+ ts: string;
169
+ }
120
170
  export type { MintedEvent as ControlMintedEvent };
@@ -1611,6 +1611,7 @@ function RegionRouter(baseUrl) {
1611
1611
  let cachedRegions = [];
1612
1612
  let isLoading = false;
1613
1613
  let isCreatingRegion = false;
1614
+ let isCreatingKickstarter = false;
1614
1615
  // -------------------------------------------------------------------------
1615
1616
  // Queries
1616
1617
  // -------------------------------------------------------------------------
@@ -1636,6 +1637,16 @@ function RegionRouter(baseUrl) {
1636
1637
  throw new Error(parseApiError(error));
1637
1638
  }
1638
1639
  };
1640
+ const fetchActivationEvents = async (regionId) => {
1641
+ try {
1642
+ const query = typeof regionId === "number" ? `?regionId=${regionId}` : "";
1643
+ const data = await request(`/regions/activation-events${query}`);
1644
+ return data.events ?? [];
1645
+ }
1646
+ catch (error) {
1647
+ throw new Error(parseApiError(error));
1648
+ }
1649
+ };
1639
1650
  // -------------------------------------------------------------------------
1640
1651
  // Mutations
1641
1652
  // -------------------------------------------------------------------------
@@ -1657,6 +1668,34 @@ function RegionRouter(baseUrl) {
1657
1668
  isCreatingRegion = false;
1658
1669
  }
1659
1670
  };
1671
+ const createKickstarter = async (payload) => {
1672
+ isCreatingKickstarter = true;
1673
+ try {
1674
+ const data = await request(`/regions/kickstarters`, {
1675
+ method: "POST",
1676
+ headers: { "Content-Type": "application/json" },
1677
+ body: JSON.stringify(payload),
1678
+ });
1679
+ // A new region may have been created; refresh regions cache
1680
+ await fetchRegions();
1681
+ return data;
1682
+ }
1683
+ catch (error) {
1684
+ throw new Error(parseApiError(error));
1685
+ }
1686
+ finally {
1687
+ isCreatingKickstarter = false;
1688
+ }
1689
+ };
1690
+ const fetchKickstarter = async (idOrSlug) => {
1691
+ try {
1692
+ const data = await request(`/regions/kickstarters/${encodeURIComponent(idOrSlug)}`);
1693
+ return data.kickstarter;
1694
+ }
1695
+ catch (error) {
1696
+ throw new Error(parseApiError(error));
1697
+ }
1698
+ };
1660
1699
  // -------------------------------------------------------------------------
1661
1700
  // Helpers (derived)
1662
1701
  // -------------------------------------------------------------------------
@@ -1697,8 +1736,11 @@ function RegionRouter(baseUrl) {
1697
1736
  // Data access
1698
1737
  fetchRegions,
1699
1738
  fetchActivationConfig,
1739
+ fetchActivationEvents,
1740
+ fetchKickstarter,
1700
1741
  getRegionByCode,
1701
1742
  createRegion,
1743
+ createKickstarter,
1702
1744
  // Cached data & flags
1703
1745
  get regions() {
1704
1746
  return cachedRegions;
@@ -1709,6 +1751,9 @@ function RegionRouter(baseUrl) {
1709
1751
  get isCreatingRegion() {
1710
1752
  return isCreatingRegion;
1711
1753
  },
1754
+ get isCreatingKickstarter() {
1755
+ return isCreatingKickstarter;
1756
+ },
1712
1757
  };
1713
1758
  }
1714
1759
 
@@ -1727,4 +1772,4 @@ exports.getAddresses = getAddresses;
1727
1772
  exports.regionMetadata = regionMetadata;
1728
1773
  exports.usStates = usStates;
1729
1774
  exports.useForwarder = useForwarder;
1730
- //# sourceMappingURL=region-router-C3X3im0d.js.map
1775
+ //# sourceMappingURL=region-router-CIjrTHtv.js.map