@andrewkimjoseph/celina-sdk 0.9.3 → 0.9.4

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,14 +1,21 @@
1
1
  import { type PublicClient } from "viem";
2
- /** MiniPay fee currencies (USDT, USDm, USDC) — never CELO. */
2
+ /**
3
+ * MiniPay gas currencies — never CELO.
4
+ * Balance checks use ERC-20 token addresses; eth_estimateGas / send use feeCurrency
5
+ * (CIP-64 adapters for 6-decimal USDT/USDC, token address for 18-decimal USDm).
6
+ */
3
7
  export declare const MINIPAY_FEE_CURRENCIES: readonly [{
4
8
  readonly symbol: "USDT";
5
- readonly address: "0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e";
9
+ readonly token: "0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e";
10
+ readonly feeCurrency: "0x0e2a3e05bc9a16f5292a6170456a710cb89c6f72";
6
11
  }, {
7
12
  readonly symbol: "USDm";
8
- readonly address: "0x765de816845861e75a25fca122bb6898b8b1282a";
13
+ readonly token: "0x765de816845861e75a25fca122bb6898b8b1282a";
14
+ readonly feeCurrency: "0x765de816845861e75a25fca122bb6898b8b1282a";
9
15
  }, {
10
16
  readonly symbol: "USDC";
11
- readonly address: "0xceba9300f2b948710d2653dd7b07f33a8b32118c";
17
+ readonly token: "0xceba9300f2b948710d2653dd7b07f33a8b32118c";
18
+ readonly feeCurrency: "0x2F25deB3848C207fc8E0c34035B3Ba7fC157602B";
12
19
  }];
13
20
  export type ResolveMiniPayFeeCurrencyOptions = {
14
21
  isMiniPay?: boolean;
@@ -20,5 +27,5 @@ export type ResolveMiniPayFeeCurrencyOptions = {
20
27
  * Other hosts: same stable heuristic, then native CELO when no stable balance.
21
28
  */
22
29
  export declare function resolveMiniPayFeeCurrency(publicClient: PublicClient, from: `0x${string}`, options?: ResolveMiniPayFeeCurrencyOptions): Promise<`0x${string}` | undefined>;
23
- /** Symbol for a known MiniPay fee currency address (for error messages). */
30
+ /** Symbol for a known MiniPay fee currency or token address (for error messages). */
24
31
  export declare function feeCurrencySymbol(address: `0x${string}` | undefined): string;
@@ -1,9 +1,25 @@
1
1
  import { erc20Abi } from "viem";
2
- /** MiniPay fee currencies (USDT, USDm, USDC) — never CELO. */
2
+ /**
3
+ * MiniPay gas currencies — never CELO.
4
+ * Balance checks use ERC-20 token addresses; eth_estimateGas / send use feeCurrency
5
+ * (CIP-64 adapters for 6-decimal USDT/USDC, token address for 18-decimal USDm).
6
+ */
3
7
  export const MINIPAY_FEE_CURRENCIES = [
4
- { symbol: "USDT", address: "0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e" },
5
- { symbol: "USDm", address: "0x765de816845861e75a25fca122bb6898b8b1282a" },
6
- { symbol: "USDC", address: "0xceba9300f2b948710d2653dd7b07f33a8b32118c" },
8
+ {
9
+ symbol: "USDT",
10
+ token: "0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e",
11
+ feeCurrency: "0x0e2a3e05bc9a16f5292a6170456a710cb89c6f72",
12
+ },
13
+ {
14
+ symbol: "USDm",
15
+ token: "0x765de816845861e75a25fca122bb6898b8b1282a",
16
+ feeCurrency: "0x765de816845861e75a25fca122bb6898b8b1282a",
17
+ },
18
+ {
19
+ symbol: "USDC",
20
+ token: "0xceba9300f2b948710d2653dd7b07f33a8b32118c",
21
+ feeCurrency: "0x2F25deB3848C207fc8E0c34035B3Ba7fC157602B",
22
+ },
7
23
  ];
8
24
  /**
9
25
  * Resolve the fee currency for eth_estimateGas simulation.
@@ -16,8 +32,8 @@ export async function resolveMiniPayFeeCurrency(publicClient, from, options) {
16
32
  }
17
33
  const isMiniPay = options?.isMiniPay ?? false;
18
34
  const results = await publicClient.multicall({
19
- contracts: MINIPAY_FEE_CURRENCIES.map((token) => ({
20
- address: token.address,
35
+ contracts: MINIPAY_FEE_CURRENCIES.map((entry) => ({
36
+ address: entry.token,
21
37
  abi: erc20Abi,
22
38
  functionName: "balanceOf",
23
39
  args: [from],
@@ -44,20 +60,21 @@ export async function resolveMiniPayFeeCurrency(publicClient, from, options) {
44
60
  }
45
61
  }
46
62
  if (bestIndex >= 0 && bestBalance > 0n) {
47
- return MINIPAY_FEE_CURRENCIES[bestIndex].address;
63
+ return MINIPAY_FEE_CURRENCIES[bestIndex].feeCurrency;
48
64
  }
49
65
  if (isMiniPay) {
50
66
  throw new Error("No stablecoin balance for gas. MiniPay requires USDT, USDm, or USDC to pay transaction fees.");
51
67
  }
52
68
  return undefined;
53
69
  }
54
- /** Symbol for a known MiniPay fee currency address (for error messages). */
70
+ /** Symbol for a known MiniPay fee currency or token address (for error messages). */
55
71
  export function feeCurrencySymbol(address) {
56
72
  if (!address) {
57
73
  return "CELO";
58
74
  }
59
75
  const lower = address.toLowerCase();
60
- const match = MINIPAY_FEE_CURRENCIES.find((t) => t.address.toLowerCase() === lower);
76
+ const match = MINIPAY_FEE_CURRENCIES.find((entry) => entry.token.toLowerCase() === lower ||
77
+ entry.feeCurrency.toLowerCase() === lower);
61
78
  if (match) {
62
79
  return match.symbol;
63
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"celo-fee-currency.js","sourceRoot":"","sources":["../../src/utils/celo-fee-currency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAqB,MAAM,MAAM,CAAC;AAEnD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,4CAAqD,EAAE;IAClF,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,4CAAqD,EAAE;IAClF,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,4CAAqD,EAAE;CAC1E,CAAC;AAOX;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,YAA0B,EAC1B,IAAmB,EACnB,OAA0C;IAE1C,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,WAAW,CAAC;IAC7B,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC;IAE9C,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC;QAC3C,SAAS,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG,EAAE,QAAQ;YACb,YAAY,EAAE,WAAoB;YAClC,IAAI,EAAE,CAAC,IAAI,CAAU;SACtB,CAAC,CAAC;QACH,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;IACnB,IAAI,WAAW,GAAG,EAAE,CAAC;IAErB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QAC3B,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAgB,CAAC;QACxC,IAAI,OAAO,GAAG,WAAW,EAAE,CAAC;YAC1B,WAAW,GAAG,OAAO,CAAC;YACtB,SAAS,GAAG,CAAC,CAAC;QAChB,CAAC;aAAM,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,GAAG,EAAE,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACrE,iDAAiD;YACjD,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC;gBAClB,SAAS,GAAG,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,SAAS,IAAI,CAAC,IAAI,WAAW,GAAG,EAAE,EAAE,CAAC;QACvC,OAAO,sBAAsB,CAAC,SAAS,CAAE,CAAC,OAAO,CAAC;IACpD,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,OAAkC;IAClE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;IACpF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC,MAAM,CAAC;IACtB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"celo-fee-currency.js","sourceRoot":"","sources":["../../src/utils/celo-fee-currency.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@andrewkimjoseph/celina-sdk",
3
- "version": "0.9.3",
3
+ "version": "0.9.4",
4
4
  "description": "Celina SDK — Celo mainnet reads and unsigned transaction preparation for frontend apps.",
5
5
  "type": "module",
6
6
  "sideEffects": false,