@andrewkimjoseph/celina-sdk 0.2.8 → 0.2.9
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/build/clients/celo-client.d.ts +6 -0
- package/build/clients/celo-client.js +5 -0
- package/build/clients/celo-client.js.map +1 -1
- package/build/clients/ens-client.d.ts +7 -0
- package/build/clients/ens-client.js +7 -0
- package/build/clients/ens-client.js.map +1 -1
- package/build/clients/uniswap-sdk.js +4 -0
- package/build/clients/uniswap-sdk.js.map +1 -1
- package/build/config/aave.d.ts +6 -0
- package/build/config/aave.js +8 -0
- package/build/config/aave.js.map +1 -1
- package/build/config/celina-tag.d.ts +1 -0
- package/build/config/celina-tag.js +1 -0
- package/build/config/celina-tag.js.map +1 -1
- package/build/config/gooddollar.d.ts +1 -0
- package/build/config/gooddollar.js +1 -0
- package/build/config/gooddollar.js.map +1 -1
- package/build/config/sdk-config.d.ts +8 -0
- package/build/config/sdk-config.js +5 -0
- package/build/config/sdk-config.js.map +1 -1
- package/build/config/uniswap.d.ts +6 -0
- package/build/config/uniswap.js +9 -0
- package/build/config/uniswap.js.map +1 -1
- package/build/index.d.ts +14 -1
- package/build/index.js.map +1 -1
- package/build/services/aave.service.d.ts +2 -1
- package/build/services/aave.service.js +2 -1
- package/build/services/aave.service.js.map +1 -1
- package/build/services/account.service.d.ts +9 -0
- package/build/services/account.service.js +6 -0
- package/build/services/account.service.js.map +1 -1
- package/build/services/blockchain.service.d.ts +27 -1
- package/build/services/blockchain.service.js +24 -1
- package/build/services/blockchain.service.js.map +1 -1
- package/build/services/contract.service.d.ts +27 -1
- package/build/services/contract.service.js +20 -1
- package/build/services/contract.service.js.map +1 -1
- package/build/services/ens.service.d.ts +14 -2
- package/build/services/ens.service.js +14 -2
- package/build/services/ens.service.js.map +1 -1
- package/build/services/gooddollar.service.d.ts +9 -1
- package/build/services/gooddollar.service.js +6 -1
- package/build/services/gooddollar.service.js.map +1 -1
- package/build/services/governance.service.d.ts +18 -0
- package/build/services/governance.service.js +14 -0
- package/build/services/governance.service.js.map +1 -1
- package/build/services/mento-fx.service.d.ts +5 -0
- package/build/services/mento-fx.service.js +1 -0
- package/build/services/mento-fx.service.js.map +1 -1
- package/build/services/nft.service.d.ts +16 -0
- package/build/services/nft.service.js +19 -0
- package/build/services/nft.service.js.map +1 -1
- package/build/services/staking.service.d.ts +31 -0
- package/build/services/staking.service.js +34 -0
- package/build/services/staking.service.js.map +1 -1
- package/build/services/token.service.d.ts +10 -0
- package/build/services/token.service.js +9 -0
- package/build/services/token.service.js.map +1 -1
- package/build/services/transaction.service.d.ts +1 -0
- package/build/services/transaction.service.js +1 -0
- package/build/services/transaction.service.js.map +1 -1
- package/build/services/uniswap-path-router.d.ts +18 -0
- package/build/services/uniswap-path-router.js +13 -0
- package/build/services/uniswap-path-router.js.map +1 -1
- package/build/services/uniswap-pool-discovery.d.ts +22 -1
- package/build/services/uniswap-pool-discovery.js +18 -0
- package/build/services/uniswap-pool-discovery.js.map +1 -1
- package/build/types/prepared.d.ts +1 -0
- package/build/types/prepared.js.map +1 -1
- package/build/utils/celo-format.d.ts +3 -0
- package/build/utils/celo-format.js +3 -0
- package/build/utils/celo-format.js.map +1 -1
- package/build/utils/erc20-allowance-storage.d.ts +13 -0
- package/build/utils/erc20-allowance-storage.js +13 -0
- package/build/utils/erc20-allowance-storage.js.map +1 -1
- package/build/utils/format-date.d.ts +1 -0
- package/build/utils/format-date.js +1 -0
- package/build/utils/format-date.js.map +1 -1
- package/build/utils/normalize-address.d.ts +6 -1
- package/build/utils/normalize-address.js +6 -1
- package/build/utils/normalize-address.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,11 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cached viem public client for Celo mainnet RPC reads.
|
|
3
|
+
*/
|
|
1
4
|
import { type PublicClient } from "viem";
|
|
2
5
|
import type { SdkConfig } from "../config/sdk-config.js";
|
|
6
|
+
/** viem public client bundle for Celo mainnet. */
|
|
3
7
|
export interface CeloClients {
|
|
4
8
|
public: PublicClient;
|
|
5
9
|
}
|
|
10
|
+
/** Lazily constructs and caches a Celo mainnet public client from `SdkConfig`. */
|
|
6
11
|
export declare class CeloClientFactory {
|
|
7
12
|
private readonly config;
|
|
8
13
|
private clients;
|
|
9
14
|
constructor(config: SdkConfig);
|
|
15
|
+
/** Return a shared public client (created on first call). */
|
|
10
16
|
getClients(): CeloClients;
|
|
11
17
|
}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cached viem public client for Celo mainnet RPC reads.
|
|
3
|
+
*/
|
|
1
4
|
import { createPublicClient, http, } from "viem";
|
|
2
5
|
import { CHAIN, DEFAULT_RPC_URL } from "../config/chains.js";
|
|
6
|
+
/** Lazily constructs and caches a Celo mainnet public client from `SdkConfig`. */
|
|
3
7
|
export class CeloClientFactory {
|
|
4
8
|
config;
|
|
5
9
|
clients = null;
|
|
6
10
|
constructor(config) {
|
|
7
11
|
this.config = config;
|
|
8
12
|
}
|
|
13
|
+
/** Return a shared public client (created on first call). */
|
|
9
14
|
getClients() {
|
|
10
15
|
if (this.clients) {
|
|
11
16
|
return this.clients;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"celo-client.js","sourceRoot":"","sources":["../../src/clients/celo-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,IAAI,GAEL,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"celo-client.js","sourceRoot":"","sources":["../../src/clients/celo-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,kBAAkB,EAClB,IAAI,GAEL,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAO7D,kFAAkF;AAClF,MAAM,OAAO,iBAAiB;IAGC;IAFrB,OAAO,GAAuB,IAAI,CAAC;IAE3C,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,6DAA6D;IAC7D,UAAU;QACR,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,YAAY,GAAG,kBAAkB,CAAC;YACtC,KAAK,EAAE,KAAK;YACZ,SAAS;SACV,CAAiB,CAAC;QAEnB,IAAI,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ethereum mainnet public client for ENS resolution (CCIP-read gateway).
|
|
3
|
+
*/
|
|
1
4
|
import { type PublicClient } from "viem";
|
|
2
5
|
import type { SdkConfig } from "../config/sdk-config.js";
|
|
6
|
+
/** Default Ethereum RPC when `ethRpcUrl` is not set in `SdkConfig`. */
|
|
3
7
|
export declare const DEFAULT_ETH_RPC_URL = "https://ethereum.publicnode.com";
|
|
8
|
+
/** CCIP-read gateway used by viem ENS helpers. */
|
|
4
9
|
export declare const ENS_CCIP_GATEWAY = "https://ccip.ens.xyz";
|
|
10
|
+
/** Lazily constructs and caches an Ethereum mainnet client for ENS lookups. */
|
|
5
11
|
export declare class EnsClientFactory {
|
|
6
12
|
private readonly config;
|
|
7
13
|
private client;
|
|
8
14
|
constructor(config: SdkConfig);
|
|
15
|
+
/** Return a shared Ethereum public client (created on first call). */
|
|
9
16
|
getClient(): PublicClient;
|
|
10
17
|
}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ethereum mainnet public client for ENS resolution (CCIP-read gateway).
|
|
3
|
+
*/
|
|
1
4
|
import { createPublicClient, http } from "viem";
|
|
2
5
|
import { mainnet } from "viem/chains";
|
|
6
|
+
/** Default Ethereum RPC when `ethRpcUrl` is not set in `SdkConfig`. */
|
|
3
7
|
export const DEFAULT_ETH_RPC_URL = "https://ethereum.publicnode.com";
|
|
8
|
+
/** CCIP-read gateway used by viem ENS helpers. */
|
|
4
9
|
export const ENS_CCIP_GATEWAY = "https://ccip.ens.xyz";
|
|
10
|
+
/** Lazily constructs and caches an Ethereum mainnet client for ENS lookups. */
|
|
5
11
|
export class EnsClientFactory {
|
|
6
12
|
config;
|
|
7
13
|
client = null;
|
|
8
14
|
constructor(config) {
|
|
9
15
|
this.config = config;
|
|
10
16
|
}
|
|
17
|
+
/** Return a shared Ethereum public client (created on first call). */
|
|
11
18
|
getClient() {
|
|
12
19
|
if (this.client) {
|
|
13
20
|
return this.client;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ens-client.js","sourceRoot":"","sources":["../../src/clients/ens-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAqB,MAAM,MAAM,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,iCAAiC,CAAC;AAErE,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEvD,MAAM,OAAO,gBAAgB;IAGE;IAFrB,MAAM,GAAwB,IAAI,CAAC;IAE3C,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,SAAS;QACP,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,mBAAmB,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC;YAC/B,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SAC7C,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"ens-client.js","sourceRoot":"","sources":["../../src/clients/ens-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAqB,MAAM,MAAM,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,uEAAuE;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,iCAAiC,CAAC;AAErE,kDAAkD;AAClD,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEvD,+EAA+E;AAC/E,MAAM,OAAO,gBAAgB;IAGE;IAFrB,MAAM,GAAwB,IAAI,CAAC;IAE3C,YAA6B,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;IAElD,sEAAsE;IACtE,SAAS;QACP,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,mBAAmB,CAAC;QAC5D,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC;YAC/B,KAAK,EAAE,OAAO;YACd,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;SAC7C,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CJS re-exports for @uniswap/v4-sdk and @uniswap/universal-router-sdk.
|
|
3
|
+
* Uses createRequire because upstream ESM builds omit .js extensions on internal imports.
|
|
4
|
+
*/
|
|
1
5
|
import { createRequire } from "node:module";
|
|
2
6
|
const require = createRequire(import.meta.url);
|
|
3
7
|
const v4Sdk = require("@uniswap/v4-sdk");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniswap-sdk.js","sourceRoot":"","sources":["../../src/clients/uniswap-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAqC,CAAC;AAC7E,MAAM,kBAAkB,GACtB,OAAO,CAAC,+BAA+B,CAAmD,CAAC;AAC7F,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAuC,CAAC;AAEnF,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;AAC5C,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAC;AAChE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"uniswap-sdk.js","sourceRoot":"","sources":["../../src/clients/uniswap-sdk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,MAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAqC,CAAC;AAC7E,MAAM,kBAAkB,GACtB,OAAO,CAAC,+BAA+B,CAAmD,CAAC;AAC7F,MAAM,OAAO,GAAG,OAAO,CAAC,mBAAmB,CAAuC,CAAC;AAEnF,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;AAC5C,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAC;AAChE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC"}
|
package/build/config/aave.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/** Aave V3 on Celo mainnet — from bgd-labs/aave-address-book AaveV3Celo */
|
|
2
2
|
export declare const AAVE_POOL: "0x3E59A31363E2ad014dcbc521c4a0d5757d9f3402";
|
|
3
3
|
export declare const AAVE_CHAIN_ID = 42220;
|
|
4
|
+
/** Underlying and aToken addresses for one Aave V3 market on Celo. */
|
|
4
5
|
export type AaveAsset = {
|
|
5
6
|
symbol: string;
|
|
6
7
|
underlying: `0x${string}`;
|
|
@@ -8,4 +9,9 @@ export type AaveAsset = {
|
|
|
8
9
|
};
|
|
9
10
|
export declare const AAVE_ASSETS: Record<string, AaveAsset>;
|
|
10
11
|
export declare const AAVE_SUPPORTED_SYMBOLS: readonly ["USDT", "WETH", "USDm", "USDC", "CELO", "EURm"];
|
|
12
|
+
/**
|
|
13
|
+
* Resolve an Aave V3 Celo asset by symbol or underlying/aToken address.
|
|
14
|
+
* @param token - Registry symbol or hex address
|
|
15
|
+
* @throws When the token is not listed in `AAVE_SUPPORTED_SYMBOLS`
|
|
16
|
+
*/
|
|
11
17
|
export declare function resolveAaveAsset(token: string): AaveAsset;
|
package/build/config/aave.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aave V3 Celo mainnet pool addresses and supported asset registry.
|
|
3
|
+
*/
|
|
1
4
|
import { findKnownToken } from "./chains.js";
|
|
2
5
|
const HEX_ADDRESS_RE = /^0x[a-fA-F0-9]{40}$/;
|
|
3
6
|
/** Aave V3 on Celo mainnet — from bgd-labs/aave-address-book AaveV3Celo */
|
|
@@ -43,6 +46,11 @@ export const AAVE_SUPPORTED_SYMBOLS = [
|
|
|
43
46
|
"CELO",
|
|
44
47
|
"EURm",
|
|
45
48
|
];
|
|
49
|
+
/**
|
|
50
|
+
* Resolve an Aave V3 Celo asset by symbol or underlying/aToken address.
|
|
51
|
+
* @param token - Registry symbol or hex address
|
|
52
|
+
* @throws When the token is not listed in `AAVE_SUPPORTED_SYMBOLS`
|
|
53
|
+
*/
|
|
46
54
|
export function resolveAaveAsset(token) {
|
|
47
55
|
const normalized = token.trim();
|
|
48
56
|
const known = findKnownToken(normalized);
|
package/build/config/aave.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aave.js","sourceRoot":"","sources":["../../src/config/aave.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAE7C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,SAAS,GAAG,4CAAqD,CAAC;AAC/E,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"aave.js","sourceRoot":"","sources":["../../src/config/aave.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,cAAc,GAAG,qBAAqB,CAAC;AAE7C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,SAAS,GAAG,4CAAqD,CAAC;AAC/E,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AASnC,MAAM,CAAC,MAAM,WAAW,GAA8B;IACpD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,4CAA4C;QACxD,MAAM,EAAE,4CAA4C;KACrD;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,4CAA4C;QACxD,MAAM,EAAE,4CAA4C;KACrD;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,4CAA4C;QACxD,MAAM,EAAE,4CAA4C;KACrD;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,4CAA4C;QACxD,MAAM,EAAE,4CAA4C;KACrD;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,4CAA4C;QACxD,MAAM,EAAE,4CAA4C;KACrD;IACD,IAAI,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,4CAA4C;QACxD,MAAM,EAAE,4CAA4C;KACrD;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACE,CAAC;AAEX;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAEzC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAC/C,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,KAAK;YACxC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CACvC,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAC9C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,WAAW,EAAE,CACnE,CAAC;IACF,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,UAAU,KAAK,kDAAkD,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACtG,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"celina-tag.js","sourceRoot":"","sources":["../../src/config/celina-tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"celina-tag.js","sourceRoot":"","sources":["../../src/config/celina-tag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,yFAAyF;AACzF,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gooddollar.js","sourceRoot":"","sources":["../../src/config/gooddollar.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,2BAA2B,GACtC,4CAAqD,CAAC"}
|
|
1
|
+
{"version":3,"file":"gooddollar.js","sourceRoot":"","sources":["../../src/config/gooddollar.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,MAAM,CAAC,MAAM,2BAA2B,GACtC,4CAAqD,CAAC"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
/** RPC configuration for `createCelinaClient()`. */
|
|
1
2
|
export interface SdkConfig {
|
|
3
|
+
/** Celo mainnet JSON-RPC URL (default Forno). */
|
|
2
4
|
rpcUrl: string;
|
|
5
|
+
/** Ethereum mainnet RPC for ENS resolution (optional). */
|
|
3
6
|
ethRpcUrl?: string;
|
|
4
7
|
}
|
|
8
|
+
/** Default Celo RPC when `rpcUrl` is omitted. */
|
|
5
9
|
export declare const DEFAULT_RPC_URL = "https://forno.celo.org";
|
|
10
|
+
/**
|
|
11
|
+
* Merge partial options with SDK defaults.
|
|
12
|
+
* @param opts - Optional RPC overrides from `createCelinaClient(opts)`
|
|
13
|
+
*/
|
|
6
14
|
export declare function resolveSdkConfig(opts?: Partial<SdkConfig>): SdkConfig;
|
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
/** Default Celo RPC when `rpcUrl` is omitted. */
|
|
1
2
|
export const DEFAULT_RPC_URL = "https://forno.celo.org";
|
|
3
|
+
/**
|
|
4
|
+
* Merge partial options with SDK defaults.
|
|
5
|
+
* @param opts - Optional RPC overrides from `createCelinaClient(opts)`
|
|
6
|
+
*/
|
|
2
7
|
export function resolveSdkConfig(opts) {
|
|
3
8
|
return {
|
|
4
9
|
rpcUrl: opts?.rpcUrl ?? DEFAULT_RPC_URL,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-config.js","sourceRoot":"","sources":["../../src/config/sdk-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sdk-config.js","sourceRoot":"","sources":["../../src/config/sdk-config.ts"],"names":[],"mappings":"AAQA,iDAAiD;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAExD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAyB;IACxD,OAAO;QACL,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,eAAe;QACvC,SAAS,EAAE,IAAI,EAAE,SAAS;KAC3B,CAAC;AACJ,CAAC"}
|
|
@@ -9,12 +9,15 @@ export declare const UNISWAP_V4: {
|
|
|
9
9
|
readonly nativeCurrency: "0x0000000000000000000000000000000000000000";
|
|
10
10
|
};
|
|
11
11
|
export declare const UNISWAP_SUBGRAPH_URL = "https://api.studio.thegraph.com/query/111767/uniswap-v-4-celo/version/latest";
|
|
12
|
+
/** Pool index cache TTL in milliseconds (default 5 minutes). */
|
|
12
13
|
export declare const UNISWAP_POOL_CACHE_TTL_MS: number;
|
|
13
14
|
/** Common v4 fee tiers and default tick spacings (probed on-chain when building index). */
|
|
14
15
|
export declare const UNISWAP_FEE_TIERS: readonly [100, 500, 3000, 10000, 30000];
|
|
16
|
+
/** Default tick spacing per fee tier when probing pools on-chain. */
|
|
15
17
|
export declare const UNISWAP_DEFAULT_TICK_SPACING: Record<number, number>;
|
|
16
18
|
/** Hub tokens for on-chain pool index fallback (Uniswap routing graph). */
|
|
17
19
|
export declare const UNISWAP_HUB_CURRENCIES: readonly `0x${string}`[];
|
|
20
|
+
/** Uniswap v4 pool key (sorted currencies, fee tier, tick spacing, hooks). */
|
|
18
21
|
export type UniswapPoolKey = {
|
|
19
22
|
currency0: `0x${string}`;
|
|
20
23
|
currency1: `0x${string}`;
|
|
@@ -22,7 +25,9 @@ export type UniswapPoolKey = {
|
|
|
22
25
|
tickSpacing: number;
|
|
23
26
|
hooks: `0x${string}`;
|
|
24
27
|
};
|
|
28
|
+
/** Sort two currency addresses for canonical pool key ordering. */
|
|
25
29
|
export declare function sortUniswapCurrencies(a: `0x${string}`, b: `0x${string}`): [`0x${string}`, `0x${string}`];
|
|
30
|
+
/** Normalize a pool key so `currency0` sorts before `currency1`. */
|
|
26
31
|
export declare function normalizeUniswapPoolKey(poolKey: UniswapPoolKey): UniswapPoolKey;
|
|
27
32
|
/** Map registry token to Uniswap v4 currency address (native CELO → address(0)). */
|
|
28
33
|
export declare function toUniswapCurrency(address: `0x${string}` | "native"): `0x${string}`;
|
|
@@ -33,4 +38,5 @@ export declare function toUniswapCurrency(address: `0x${string}` | "native"): `0
|
|
|
33
38
|
export declare function toUniswapRoutingCurrency(address: `0x${string}` | "native"): `0x${string}`;
|
|
34
39
|
/** ERC-20 used as swap input when registry token is native CELO. */
|
|
35
40
|
export declare function uniswapInputTokenAddress(address: `0x${string}` | "native"): `0x${string}` | "native";
|
|
41
|
+
/** Whether a v4 currency address is native CELO (`address(0)`). */
|
|
36
42
|
export declare function isNativeUniswapCurrency(currency: `0x${string}`): boolean;
|
package/build/config/uniswap.js
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Uniswap v4 contract addresses and routing helpers for Celo mainnet.
|
|
3
|
+
* @see https://docs.celo.org/tooling/contracts/uniswap-contracts
|
|
4
|
+
*/
|
|
1
5
|
import { MENTO_CELO_ADDRESS } from "./chains.js";
|
|
2
6
|
/** Uniswap v4 on Celo mainnet — https://docs.celo.org/tooling/contracts/uniswap-contracts */
|
|
3
7
|
export const UNISWAP_V4 = {
|
|
@@ -10,9 +14,11 @@ export const UNISWAP_V4 = {
|
|
|
10
14
|
nativeCurrency: "0x0000000000000000000000000000000000000000",
|
|
11
15
|
};
|
|
12
16
|
export const UNISWAP_SUBGRAPH_URL = "https://api.studio.thegraph.com/query/111767/uniswap-v-4-celo/version/latest";
|
|
17
|
+
/** Pool index cache TTL in milliseconds (default 5 minutes). */
|
|
13
18
|
export const UNISWAP_POOL_CACHE_TTL_MS = 5 * 60 * 1000;
|
|
14
19
|
/** Common v4 fee tiers and default tick spacings (probed on-chain when building index). */
|
|
15
20
|
export const UNISWAP_FEE_TIERS = [100, 500, 3000, 10000, 30000];
|
|
21
|
+
/** Default tick spacing per fee tier when probing pools on-chain. */
|
|
16
22
|
export const UNISWAP_DEFAULT_TICK_SPACING = {
|
|
17
23
|
100: 1,
|
|
18
24
|
500: 10,
|
|
@@ -30,9 +36,11 @@ export const UNISWAP_HUB_CURRENCIES = [
|
|
|
30
36
|
"0x765de816845861e75a25fca122bb6898b8b1282a", // USDm
|
|
31
37
|
"0x62B8B11039FcfE5aB0C56E502b1C372A3d2a9c7A", // GoodDollar (G$)
|
|
32
38
|
];
|
|
39
|
+
/** Sort two currency addresses for canonical pool key ordering. */
|
|
33
40
|
export function sortUniswapCurrencies(a, b) {
|
|
34
41
|
return a.toLowerCase() < b.toLowerCase() ? [a, b] : [b, a];
|
|
35
42
|
}
|
|
43
|
+
/** Normalize a pool key so `currency0` sorts before `currency1`. */
|
|
36
44
|
export function normalizeUniswapPoolKey(poolKey) {
|
|
37
45
|
const [currency0, currency1] = sortUniswapCurrencies(poolKey.currency0, poolKey.currency1);
|
|
38
46
|
return { ...poolKey, currency0, currency1 };
|
|
@@ -61,6 +69,7 @@ export function uniswapInputTokenAddress(address) {
|
|
|
61
69
|
}
|
|
62
70
|
return address;
|
|
63
71
|
}
|
|
72
|
+
/** Whether a v4 currency address is native CELO (`address(0)`). */
|
|
64
73
|
export function isNativeUniswapCurrency(currency) {
|
|
65
74
|
return currency.toLowerCase() === UNISWAP_V4.nativeCurrency;
|
|
66
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uniswap.js","sourceRoot":"","sources":["../../src/config/uniswap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,6FAA6F;AAC7F,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW,EAAE,4CAAqD;IAClE,QAAQ,EAAE,4CAAqD;IAC/D,SAAS,EAAE,4CAAqD;IAChE,eAAe,EAAE,4CAAqD;IACtE,OAAO,EAAE,4CAAqD;IAC9D,SAAS,EAAE,4CAAqD;IAChE,cAAc,EAAE,4CAAqD;CAC7D,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAC/B,8EAA8E,CAAC;AAEjF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAEzE,MAAM,CAAC,MAAM,4BAA4B,GAA2B;IAClE,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAA6B;IAC9D,UAAU,CAAC,cAAc;IACzB,kBAAkB;IAClB,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,kBAAkB;CACjE,CAAC;
|
|
1
|
+
{"version":3,"file":"uniswap.js","sourceRoot":"","sources":["../../src/config/uniswap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,6FAA6F;AAC7F,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW,EAAE,4CAAqD;IAClE,QAAQ,EAAE,4CAAqD;IAC/D,SAAS,EAAE,4CAAqD;IAChE,eAAe,EAAE,4CAAqD;IACtE,OAAO,EAAE,4CAAqD;IAC9D,SAAS,EAAE,4CAAqD;IAChE,cAAc,EAAE,4CAAqD;CAC7D,CAAC;AAEX,MAAM,CAAC,MAAM,oBAAoB,GAC/B,8EAA8E,CAAC;AAEjF,gEAAgE;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAEzE,qEAAqE;AACrE,MAAM,CAAC,MAAM,4BAA4B,GAA2B;IAClE,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,EAAE;IACP,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,2EAA2E;AAC3E,MAAM,CAAC,MAAM,sBAAsB,GAA6B;IAC9D,UAAU,CAAC,cAAc;IACzB,kBAAkB;IAClB,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,OAAO;IACrD,4CAA4C,EAAE,kBAAkB;CACjE,CAAC;AAWF,mEAAmE;AACnE,MAAM,UAAU,qBAAqB,CACnC,CAAgB,EAChB,CAAgB;IAEhB,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,uBAAuB,CAAC,OAAuB;IAC7D,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,qBAAqB,CAClD,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,SAAS,CAClB,CAAC;IACF,OAAO,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAC9C,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,iBAAiB,CAC/B,OAAiC;IAEjC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,UAAU,CAAC,cAAc,CAAC;IACnC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAiC;IAEjC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,wBAAwB,CACtC,OAAiC;IAEjC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;QACzB,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,uBAAuB,CAAC,QAAuB;IAC7D,OAAO,QAAQ,CAAC,WAAW,EAAE,KAAK,UAAU,CAAC,cAAc,CAAC;AAC9D,CAAC"}
|
package/build/index.d.ts
CHANGED
|
@@ -48,12 +48,25 @@ export interface CelinaClient {
|
|
|
48
48
|
* No private keys — pass prepared `steps` to wagmi/viem for wallet signing.
|
|
49
49
|
*/
|
|
50
50
|
export declare function createCelinaClient(opts?: CelinaClientOptions): CelinaClient;
|
|
51
|
-
export type {
|
|
51
|
+
export type {
|
|
52
|
+
/** In-memory prepared flow before JSON serialization. */
|
|
53
|
+
PreparedFlow,
|
|
54
|
+
/** One step in a multi-step wallet signing flow. */
|
|
55
|
+
PreparedTx,
|
|
56
|
+
/** Discriminator for prepared transaction step kinds. */
|
|
57
|
+
PreparedTxKind,
|
|
58
|
+
/** JSON-safe prepared flow returned by prepare* methods. */
|
|
59
|
+
SerializedPreparedFlow, } from "./types/prepared.js";
|
|
52
60
|
export { serializePreparedFlow } from "./types/prepared.js";
|
|
61
|
+
/** RPC URLs for Celo and optional Ethereum ENS reads. */
|
|
53
62
|
export type { SdkConfig } from "./config/sdk-config.js";
|
|
63
|
+
/** Resolved Celo mainnet registry token metadata. */
|
|
54
64
|
export type { ResolvedToken } from "./services/token.service.js";
|
|
65
|
+
/** Slippage, deadline, and recipient options for Mento FX swaps. */
|
|
55
66
|
export type { MentoFxParams } from "./services/mento-fx.service.js";
|
|
56
67
|
/** Slippage, deadline, and recipient options for Uniswap v4 swaps. */
|
|
57
68
|
export type { UniswapSwapParams } from "./services/uniswap.service.js";
|
|
69
|
+
/** Pagination and metadata options for governance proposal lists. */
|
|
58
70
|
export type { GovernanceProposalsOptions } from "./services/governance.service.js";
|
|
71
|
+
/** Parameters for generic read-only contract calls. */
|
|
59
72
|
export type { ContractCallParams } from "./services/contract.service.js";
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAkB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAmCvE;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA0B;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEtD,OAAO;QACL,UAAU,EAAE,IAAI,iBAAiB,CAAC,aAAa,CAAC;QAChD,OAAO,EAAE,IAAI,cAAc,CAAC,aAAa,CAAC;QAC1C,KAAK,EAAE,IAAI,YAAY,CAAC,aAAa,CAAC;QACtC,WAAW,EAAE,IAAI,kBAAkB,CAAC,aAAa,CAAC;QAClD,OAAO,EAAE,IAAI,cAAc,CAAC,aAAa,CAAC;QAC1C,OAAO,EAAE,IAAI,cAAc,CAAC,aAAa,CAAC;QAC1C,IAAI,EAAE,IAAI,WAAW,CAAC,aAAa,CAAC;QACpC,UAAU,EAAE,IAAI,iBAAiB,CAAC,aAAa,CAAC;QAChD,GAAG,EAAE,IAAI,UAAU,CAAC,gBAAgB,CAAC;QACrC,UAAU,EAAE,IAAI,iBAAiB,CAAC,aAAa,CAAC;QAChD,OAAO,EAAE,IAAI,cAAc,CAAC,aAAa,CAAC;QAC1C,GAAG,EAAE,IAAI,UAAU,CAAC,aAAa,CAAC;QAClC,QAAQ,EAAE,IAAI,eAAe,CAAC,aAAa,CAAC;KAC7C,CAAC;AACJ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAkB,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAmCvE;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA0B;IAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACpD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEtD,OAAO;QACL,UAAU,EAAE,IAAI,iBAAiB,CAAC,aAAa,CAAC;QAChD,OAAO,EAAE,IAAI,cAAc,CAAC,aAAa,CAAC;QAC1C,KAAK,EAAE,IAAI,YAAY,CAAC,aAAa,CAAC;QACtC,WAAW,EAAE,IAAI,kBAAkB,CAAC,aAAa,CAAC;QAClD,OAAO,EAAE,IAAI,cAAc,CAAC,aAAa,CAAC;QAC1C,OAAO,EAAE,IAAI,cAAc,CAAC,aAAa,CAAC;QAC1C,IAAI,EAAE,IAAI,WAAW,CAAC,aAAa,CAAC;QACpC,UAAU,EAAE,IAAI,iBAAiB,CAAC,aAAa,CAAC;QAChD,GAAG,EAAE,IAAI,UAAU,CAAC,gBAAgB,CAAC;QACrC,UAAU,EAAE,IAAI,iBAAiB,CAAC,aAAa,CAAC;QAChD,OAAO,EAAE,IAAI,cAAc,CAAC,aAAa,CAAC;QAC1C,GAAG,EAAE,IAAI,UAAU,CAAC,aAAa,CAAC;QAClC,QAAQ,EAAE,IAAI,eAAe,CAAC,aAAa,CAAC;KAC7C,CAAC;AACJ,CAAC;AAYD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { CeloClientFactory } from "../clients/celo-client.js";
|
|
2
2
|
import { type SerializedPreparedFlow } from "../types/prepared.js";
|
|
3
|
+
/** Aave V3 supply and withdraw prepared flows on Celo mainnet. */
|
|
3
4
|
export declare class AaveService {
|
|
4
5
|
private readonly clientFactory;
|
|
5
6
|
private readonly tokenService;
|
|
@@ -11,7 +12,7 @@ export declare class AaveService {
|
|
|
11
12
|
/**
|
|
12
13
|
* Build unsigned Aave V3 supply steps (approve + supply when needed).
|
|
13
14
|
* @param from - Supplier wallet address
|
|
14
|
-
* @param token - Aave asset symbol (e.g. `USDm`, `USDC`)
|
|
15
|
+
* @param token - Aave asset symbol (e.g. `USDm`, `USDC`); `CELO` uses wrapped CELO (WCELO)
|
|
15
16
|
* @param amount - Human-readable supply amount
|
|
16
17
|
* @returns 1–2 step `SerializedPreparedFlow`; CELO must be wrapped ERC-20, not native
|
|
17
18
|
*/
|
|
@@ -8,6 +8,7 @@ import { TokenService } from "./token.service.js";
|
|
|
8
8
|
function taggedCalldata(data) {
|
|
9
9
|
return concat([data, CELINA_DATA_SUFFIX]);
|
|
10
10
|
}
|
|
11
|
+
/** Aave V3 supply and withdraw prepared flows on Celo mainnet. */
|
|
11
12
|
export class AaveService {
|
|
12
13
|
clientFactory;
|
|
13
14
|
tokenService;
|
|
@@ -60,7 +61,7 @@ export class AaveService {
|
|
|
60
61
|
/**
|
|
61
62
|
* Build unsigned Aave V3 supply steps (approve + supply when needed).
|
|
62
63
|
* @param from - Supplier wallet address
|
|
63
|
-
* @param token - Aave asset symbol (e.g. `USDm`, `USDC`)
|
|
64
|
+
* @param token - Aave asset symbol (e.g. `USDm`, `USDC`); `CELO` uses wrapped CELO (WCELO)
|
|
64
65
|
* @param amount - Human-readable supply amount
|
|
65
66
|
* @returns 1–2 step `SerializedPreparedFlow`; CELO must be wrapped ERC-20, not native
|
|
66
67
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aave.service.js","sourceRoot":"","sources":["../../src/services/aave.service.ts"],"names":[],"mappings":"AAAA,wGAAwG;AACxG,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EACL,SAAS,EACT,gBAAgB,GAEjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAGL,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,SAAS,cAAc,CAAC,IAAmB;IACzC,OAAO,MAAM,CAAC,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,OAAO,WAAW;IAGO;IAFZ,YAAY,CAAe;IAE5C,YAA6B,aAAgC;QAAhC,kBAAa,GAAb,aAAa,CAAmB;QAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;IACtD,CAAC;IAEO,eAAe;QACrB,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,KAAgB,EAChB,YAAmC,EACnC,KAAoB,EACpB,MAAc;QAEd,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;YAC9C,OAAO,EAAE,KAAK,CAAC,UAAU;YACzB,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,KAAK,CAAC;SACd,CAAC,CAAC;QAEH,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;YACvB,MAAM,QAAQ,GACZ,KAAK,CAAC,MAAM,KAAK,MAAM;gBACrB,CAAC,CAAC,wDAAwD;gBAC1D,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CACb,gBAAgB,KAAK,CAAC,MAAM,sBAAsB,MAAM,IAAI,KAAK,CAAC,MAAM,eAAe,OAAO,CAAC,QAAQ,EAAE,cAAc,QAAQ,EAAE,CAClI,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,KAAgB,EAChB,YAAmC,EACnC,KAAoB,EACpB,MAAc;QAEd,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEvE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;YAC9C,OAAO,EAAE,KAAK,CAAC,MAAM;YACrB,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,KAAK,CAAC;SACd,CAAC,CAAC;QAEH,IAAI,OAAO,GAAG,QAAQ,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,qBAAqB,KAAK,CAAC,MAAM,6BAA6B,MAAM,IAAI,KAAK,CAAC,MAAM,eAAe,OAAO,CAAC,QAAQ,EAAE,oBAAoB,CAC1I,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,UAAyB,EACzB,IAAmB,EACnB,SAAiB;QAEjB,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;YAChD,OAAO,EAAE,UAAU;YACnB,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE,WAAW;YACzB,IAAI,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;SACxB,CAAC,CAAC;QACH,OAAO,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CACjB,IAAmB,EACnB,KAAa,EACb,MAAc;QAEd,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE5C,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAEtE,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAiB,EAAE,CAAC;QAE/B,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;YAChE,MAAM,WAAW,GAAG,cAAc,CAChC,kBAAkB,CAAC;gBACjB,GAAG,EAAE,QAAQ;gBACb,YAAY,EAAE,SAAS;gBACvB,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;aAC7B,CAAC,CACH,CAAC;YACF,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,OAAO;gBACb,EAAE,EAAE,KAAK,CAAC,UAAU;gBACpB,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,GAAG;gBACV,WAAW,EAAE,WAAW,MAAM,IAAI,KAAK,CAAC,MAAM,WAAW;aAC1D,CAAC,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,cAAc,CAC/B,kBAAkB,CAAC;YACjB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,QAAQ;YACtB,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;SAC7C,CAAC,CACH,CAAC;QAEF,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,UAAU,MAAM,IAAI,KAAK,CAAC,MAAM,aAAa;SAC3D,CAAC,CAAC;QAEH,MAAM,IAAI,GAAiB;YACzB,OAAO,EAAE,SAAS;YAClB,IAAI;YACJ,OAAO,EAAE,UAAU,MAAM,IAAI,KAAK,CAAC,MAAM,qBAAqB;YAC9D,KAAK;SACN,CAAC;QAEF,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,eAAe,CACnB,IAAmB,EACnB,KAAa,EACb,MAA0B,EAC1B,WAAqB;QAErB,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE5C,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,WAAW,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,WAAW;YAC3B,CAAC,CAAC,MAAM,YAAY,CAAC,YAAY,CAAC;gBAC9B,OAAO,EAAE,KAAK,CAAC,MAAM;gBACrB,GAAG,EAAE,QAAQ;gBACb,YAAY,EAAE,WAAW;gBACzB,IAAI,EAAE,CAAC,IAAI,CAAC;aACb,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE9D,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC,MAAM,uBAAuB,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,YAAY,GAAG,cAAc,CACjC,kBAAkB,CAAC;YACjB,GAAG,EAAE,WAAW;YAChB,YAAY,EAAE,UAAU;YACxB,IAAI,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC;SAC1C,CAAC,CACH,CAAC;QAEF,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAO,CAAC;QAClD,MAAM,IAAI,GAAiB;YACzB,OAAO,EAAE,SAAS;YAClB,IAAI;YACJ,OAAO,EAAE,YAAY,WAAW,IAAI,KAAK,CAAC,MAAM,uBAAuB;YACvE,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,UAAU;oBAChB,EAAE,EAAE,SAAS;oBACb,IAAI,EAAE,YAAY;oBAClB,KAAK,EAAE,GAAG;oBACV,WAAW,EAAE,YAAY,WAAW,IAAI,KAAK,CAAC,MAAM,YAAY;iBACjE;aACF;SACF,CAAC;QAEF,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"aave.service.js","sourceRoot":"","sources":["../../src/services/aave.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Account reads: native CELO balance, transaction nonce, and contract detection.
|
|
3
|
+
*/
|
|
1
4
|
import type { CeloClientFactory } from "../clients/celo-client.js";
|
|
5
|
+
/** CELO mainnet account snapshot for a wallet or contract address. */
|
|
2
6
|
export declare class AccountService {
|
|
3
7
|
private readonly clientFactory;
|
|
4
8
|
constructor(clientFactory: CeloClientFactory);
|
|
9
|
+
/**
|
|
10
|
+
* Fetch CELO balance, nonce, and whether the address has contract bytecode.
|
|
11
|
+
* @param address - Wallet or contract address on Celo mainnet
|
|
12
|
+
* @returns Balance in wei and CELO, current nonce, and `isContract` flag
|
|
13
|
+
*/
|
|
5
14
|
getAccount(address: `0x${string}`): Promise<{
|
|
6
15
|
address: `0x${string}`;
|
|
7
16
|
network: string;
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
/** CELO mainnet account snapshot for a wallet or contract address. */
|
|
1
2
|
export class AccountService {
|
|
2
3
|
clientFactory;
|
|
3
4
|
constructor(clientFactory) {
|
|
4
5
|
this.clientFactory = clientFactory;
|
|
5
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* Fetch CELO balance, nonce, and whether the address has contract bytecode.
|
|
9
|
+
* @param address - Wallet or contract address on Celo mainnet
|
|
10
|
+
* @returns Balance in wei and CELO, current nonce, and `isContract` flag
|
|
11
|
+
*/
|
|
6
12
|
async getAccount(address) {
|
|
7
13
|
const { public: client } = this.clientFactory.getClients();
|
|
8
14
|
const [balance, nonce, bytecode] = await Promise.all([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.service.js","sourceRoot":"","sources":["../../src/services/account.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"account.service.js","sourceRoot":"","sources":["../../src/services/account.service.ts"],"names":[],"mappings":"AAKA,sEAAsE;AACtE,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,aAAgC;QAAhC,kBAAa,GAAb,aAAa,CAAmB;IAAG,CAAC;IAEjE;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,OAAsB;QACrC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QAC3D,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACnD,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;YAC9B,MAAM,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC;YACvC,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;SAC5B,CAAC,CAAC;QAEH,OAAO;YACL,OAAO;YACP,OAAO,EAAE,SAAS;YAClB,UAAU,EAAE,OAAO,CAAC,QAAQ,EAAE;YAC9B,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI;YACnC,KAAK;YACL,UAAU,EAAE,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;SACxD,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,14 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chain reads: network status, blocks, and transaction lookups on Celo mainnet.
|
|
3
|
+
*/
|
|
1
4
|
import type { CeloClientFactory } from "../clients/celo-client.js";
|
|
5
|
+
/** Celo mainnet block and transaction queries. */
|
|
2
6
|
export declare class BlockchainService {
|
|
3
7
|
private readonly clientFactory;
|
|
4
8
|
constructor(clientFactory: CeloClientFactory);
|
|
5
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Celo mainnet chain id, latest block number, and current gas price.
|
|
11
|
+
* @returns Network metadata including `chainId`, `blockNumber`, and `gasPriceWei`
|
|
12
|
+
*/
|
|
6
13
|
getNetworkStatus(): Promise<{
|
|
7
14
|
network: string;
|
|
8
15
|
chainId: number;
|
|
9
16
|
blockNumber: string;
|
|
10
17
|
gasPriceWei: string;
|
|
11
18
|
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Fetch a block by number, hash, or tag.
|
|
21
|
+
* @param blockId - Block number, hash, `latest`, or `pending`
|
|
22
|
+
* @param options.includeTransactions - When true, include full transaction objects
|
|
23
|
+
* @returns Block header fields and optional transaction list
|
|
24
|
+
* @throws When the block is not found
|
|
25
|
+
*/
|
|
12
26
|
getBlock(blockId: number | string | "latest" | "pending", options?: {
|
|
13
27
|
includeTransactions?: boolean;
|
|
14
28
|
}): Promise<{
|
|
@@ -23,6 +37,12 @@ export declare class BlockchainService {
|
|
|
23
37
|
transactionCount: number;
|
|
24
38
|
transactions: `0x${string}`[] | undefined;
|
|
25
39
|
}>;
|
|
40
|
+
/**
|
|
41
|
+
* List recent blocks ending at the chain tip (newest last in the array).
|
|
42
|
+
* @param count - Number of blocks to return (1–100, default 5)
|
|
43
|
+
* @param offset - Skip this many blocks from the tip before collecting
|
|
44
|
+
* @returns Summary fields per block (no full transaction payloads)
|
|
45
|
+
*/
|
|
26
46
|
getLatestBlocks(count?: number, offset?: number): Promise<{
|
|
27
47
|
number: string;
|
|
28
48
|
hash: `0x${string}`;
|
|
@@ -32,6 +52,12 @@ export declare class BlockchainService {
|
|
|
32
52
|
gasLimit: string;
|
|
33
53
|
gasUtilization: number;
|
|
34
54
|
}[]>;
|
|
55
|
+
/**
|
|
56
|
+
* Fetch a transaction and its receipt by hash.
|
|
57
|
+
* @param hash - Transaction hash
|
|
58
|
+
* @returns Transaction fields, gas efficiency, and receipt status when mined
|
|
59
|
+
* @throws When the transaction is not found
|
|
60
|
+
*/
|
|
35
61
|
getTransaction(hash: `0x${string}`): Promise<{
|
|
36
62
|
hash: `0x${string}`;
|
|
37
63
|
from: `0x${string}`;
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
/** Celo mainnet block and transaction queries. */
|
|
1
2
|
export class BlockchainService {
|
|
2
3
|
clientFactory;
|
|
3
4
|
constructor(clientFactory) {
|
|
4
5
|
this.clientFactory = clientFactory;
|
|
5
6
|
}
|
|
6
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Celo mainnet chain id, latest block number, and current gas price.
|
|
9
|
+
* @returns Network metadata including `chainId`, `blockNumber`, and `gasPriceWei`
|
|
10
|
+
*/
|
|
7
11
|
async getNetworkStatus() {
|
|
8
12
|
const { public: client } = this.clientFactory.getClients();
|
|
9
13
|
const [chainId, blockNumber, gasPrice] = await Promise.all([
|
|
@@ -18,6 +22,13 @@ export class BlockchainService {
|
|
|
18
22
|
gasPriceWei: gasPrice.toString(),
|
|
19
23
|
};
|
|
20
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Fetch a block by number, hash, or tag.
|
|
27
|
+
* @param blockId - Block number, hash, `latest`, or `pending`
|
|
28
|
+
* @param options.includeTransactions - When true, include full transaction objects
|
|
29
|
+
* @returns Block header fields and optional transaction list
|
|
30
|
+
* @throws When the block is not found
|
|
31
|
+
*/
|
|
21
32
|
async getBlock(blockId, options) {
|
|
22
33
|
const { public: client } = this.clientFactory.getClients();
|
|
23
34
|
const includeTransactions = options?.includeTransactions ?? false;
|
|
@@ -55,6 +66,12 @@ export class BlockchainService {
|
|
|
55
66
|
transactions: includeTransactions ? block.transactions : undefined,
|
|
56
67
|
};
|
|
57
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* List recent blocks ending at the chain tip (newest last in the array).
|
|
71
|
+
* @param count - Number of blocks to return (1–100, default 5)
|
|
72
|
+
* @param offset - Skip this many blocks from the tip before collecting
|
|
73
|
+
* @returns Summary fields per block (no full transaction payloads)
|
|
74
|
+
*/
|
|
58
75
|
async getLatestBlocks(count = 5, offset = 0) {
|
|
59
76
|
const { public: client } = this.clientFactory.getClients();
|
|
60
77
|
const latest = await client.getBlockNumber();
|
|
@@ -77,6 +94,12 @@ export class BlockchainService {
|
|
|
77
94
|
};
|
|
78
95
|
});
|
|
79
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Fetch a transaction and its receipt by hash.
|
|
99
|
+
* @param hash - Transaction hash
|
|
100
|
+
* @returns Transaction fields, gas efficiency, and receipt status when mined
|
|
101
|
+
* @throws When the transaction is not found
|
|
102
|
+
*/
|
|
80
103
|
async getTransaction(hash) {
|
|
81
104
|
const { public: client } = this.clientFactory.getClients();
|
|
82
105
|
const [tx, receipt] = await Promise.all([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockchain.service.js","sourceRoot":"","sources":["../../src/services/blockchain.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blockchain.service.js","sourceRoot":"","sources":["../../src/services/blockchain.service.ts"],"names":[],"mappings":"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"}
|