@gurge/sdk-react-native 0.3.71 → 0.3.74

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.
Files changed (67) hide show
  1. package/_virtual/_rolldown/runtime.mjs +11 -2
  2. package/common/src/crypto/babyJub.cjs +1 -1
  3. package/common/src/crypto/babyJub.mjs +7 -6
  4. package/common/src/crypto/eddsa.cjs +1 -1
  5. package/common/src/crypto/eddsa.mjs +7 -6
  6. package/common/src/crypto/poseidon.cjs +1 -1
  7. package/common/src/crypto/poseidon.mjs +13 -13
  8. package/common/src/data-structures/IndexedDB/activity-db.cjs +1 -1
  9. package/common/src/data-structures/IndexedDB/activity-db.mjs +38 -38
  10. package/common/src/data-structures/IndexedDB/balances-db.cjs +1 -1
  11. package/common/src/data-structures/IndexedDB/balances-db.mjs +18 -16
  12. package/common/src/data-structures/IndexedDB/contact-db.cjs +1 -1
  13. package/common/src/data-structures/IndexedDB/contact-db.mjs +16 -14
  14. package/common/src/data-structures/IndexedDB/key-val-store.cjs +1 -1
  15. package/common/src/data-structures/IndexedDB/key-val-store.mjs +12 -12
  16. package/common/src/data-structures/IndexedDB/pay-activity-db.cjs +1 -1
  17. package/common/src/data-structures/IndexedDB/pay-activity-db.mjs +10 -8
  18. package/common/src/data-structures/IndexedDB/signatures-db.cjs +1 -1
  19. package/common/src/data-structures/IndexedDB/signatures-db.mjs +23 -21
  20. package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.cjs +1 -1
  21. package/common/src/data-structures/TokenDBs/AlchemyPublicTokensDB.mjs +32 -31
  22. package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.cjs +1 -1
  23. package/common/src/data-structures/TokenDBs/ArcPublicTokensDB.mjs +25 -25
  24. package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.cjs +1 -1
  25. package/common/src/data-structures/TokenDBs/EventsPublicTokensDB.mjs +47 -46
  26. package/common/src/data-structures/TokenDBs/PrivateTokensDB.cjs +1 -1
  27. package/common/src/data-structures/TokenDBs/PrivateTokensDB.mjs +20 -20
  28. package/common/src/data-structures/TokenDBs/TempoPublicTokensDB.cjs +1 -1
  29. package/common/src/data-structures/TokenDBs/TempoPublicTokensDB.mjs +19 -19
  30. package/common/src/data-structures/TokenDBs/TronPublicTokensDB.cjs +1 -1
  31. package/common/src/data-structures/TokenDBs/TronPublicTokensDB.mjs +19 -19
  32. package/common/src/data-structures/TokenDBs/token-visibility-db.cjs +1 -1
  33. package/common/src/data-structures/TokenDBs/token-visibility-db.mjs +45 -44
  34. package/common/src/functions/snarkjs/verifyCommitmentValidationData.cjs +1 -1
  35. package/common/src/functions/snarkjs/verifyCommitmentValidationData.mjs +4 -1
  36. package/common/src/functions/utils/cacheFunctions.cjs +1 -1
  37. package/common/src/functions/utils/cacheFunctions.mjs +13 -13
  38. package/common/src/functions/utils/ipfs.cjs +1 -1
  39. package/common/src/functions/utils/ipfs.mjs +3 -1
  40. package/common/src/webworker/viteWorkerURL.constant.mjs +3 -3
  41. package/package.json +1 -1
  42. package/shims/circomlibjs-hinkal-fork.cjs +14 -0
  43. package/shims/circomlibjs-hinkal-fork.mjs +3 -0
  44. package/shims/circomlibjs.cjs +15 -0
  45. package/shims/circomlibjs.mjs +3 -0
  46. package/shims/constants.cjs +7 -0
  47. package/shims/constants.mjs +3 -0
  48. package/shims/crypto.cjs +102 -0
  49. package/shims/crypto.mjs +3 -0
  50. package/shims/ffjavascript.cjs +5 -0
  51. package/shims/ffjavascript.mjs +3 -0
  52. package/shims/globals.cjs +15 -0
  53. package/shims/globals.mjs +3 -0
  54. package/shims/idb-keyval.cjs +75 -0
  55. package/shims/idb-keyval.mjs +3 -0
  56. package/shims/multiformats.cjs +1 -0
  57. package/shims/multiformats.mjs +3 -0
  58. package/shims/os.cjs +7 -0
  59. package/shims/os.mjs +3 -0
  60. package/shims/readline.cjs +6 -0
  61. package/shims/readline.mjs +3 -0
  62. package/shims/snarkjs.cjs +21 -0
  63. package/shims/snarkjs.mjs +3 -0
  64. package/shims/url.cjs +5 -0
  65. package/shims/url.mjs +3 -0
  66. package/shims/web-worker.cjs +7 -0
  67. package/shims/web-worker.mjs +3 -0
@@ -1,27 +1,27 @@
1
1
  import { lowerCaseIncludes as e } from "../../functions/utils/caseInsensitive.utils.mjs";
2
- import { StorageKeys as t } from "../../types/cache.types.mjs";
3
- import { API as n } from "../../API/API.mjs";
4
- import { getStateKey as r } from "../../functions/utils/string.utils.mjs";
5
- import { tokenVisibilityStorage as i } from "./token-visibility-db.mjs";
6
- import { getErc20TokensForChainAPI as a, overlayTokensWithRegistryData as o } from "../../functions/utils/erc20tokenFunctions.mjs";
7
- import { getPublicBalanceByTokenAddress as s } from "../../functions/utils/publicBalance.utils.mjs";
8
- import { get as c, update as l } from "idb-keyval";
2
+ import { require_idb_keyval as t } from "../../../../shims/idb-keyval.mjs";
3
+ import { StorageKeys as n } from "../../types/cache.types.mjs";
4
+ import { API as r } from "../../API/API.mjs";
5
+ import { getStateKey as i } from "../../functions/utils/string.utils.mjs";
6
+ import { tokenVisibilityStorage as a } from "./token-visibility-db.mjs";
7
+ import { getErc20TokensForChainAPI as o, overlayTokensWithRegistryData as s } from "../../functions/utils/erc20tokenFunctions.mjs";
8
+ import { getPublicBalanceByTokenAddress as c } from "../../functions/utils/publicBalance.utils.mjs";
9
9
  //#region common/src/data-structures/TokenDBs/TempoPublicTokensDB.ts
10
- var u = class {
10
+ var l = t(), u = class {
11
11
  fetchedTokens = {};
12
- async getPublicTokens(e, n) {
13
- let i = r(e, n);
14
- return o((await c(t.TEMPO_PUBLIC_TOKENS))?.[i] || [], n);
12
+ async getPublicTokens(e, t) {
13
+ let r = i(e, t);
14
+ return s((await (0, l.get)(n.TEMPO_PUBLIC_TOKENS))?.[r] || [], t);
15
15
  }
16
16
  async getFetchedTokens(e, t) {
17
- let n = r(e, t);
18
- return o(this.fetchedTokens[n] || [], t);
17
+ let n = i(e, t);
18
+ return s(this.fetchedTokens[n] || [], t);
19
19
  }
20
- async fetchAndUpdatePublicTokens(a, o) {
21
- let s = r(a, o), c = await this.getHeldTokenAddresses(a, o);
20
+ async fetchAndUpdatePublicTokens(t, o) {
21
+ let s = i(t, o), c = await this.getHeldTokenAddresses(t, o);
22
22
  if (!c.length) return;
23
- let u = (await n.tokensInfoCall(o, c)).filter((e) => !!e), d = await i.hideSpamsAndFetchHiddenTokensAddresses(o, u), f = u.filter((t) => !e(d, t.erc20TokenAddress));
24
- await l(t.TEMPO_PUBLIC_TOKENS, (e = {}) => {
23
+ let u = (await r.tokensInfoCall(o, c)).filter((e) => !!e), d = await a.hideSpamsAndFetchHiddenTokensAddresses(o, u), f = u.filter((t) => !e(d, t.erc20TokenAddress));
24
+ await (0, l.update)(n.TEMPO_PUBLIC_TOKENS, (e = {}) => {
25
25
  let t = {
26
26
  ...e,
27
27
  [s]: f
@@ -30,8 +30,8 @@ var u = class {
30
30
  });
31
31
  }
32
32
  async getHeldTokenAddresses(e, t) {
33
- let n = await a(t), r = await Promise.all(n.map(async (n) => {
34
- let r = await s(t, e, n.erc20TokenAddress);
33
+ let n = await o(t), r = await Promise.all(n.map(async (n) => {
34
+ let r = await c(t, e, n.erc20TokenAddress);
35
35
  return r && r > 0n ? n.erc20TokenAddress : null;
36
36
  }));
37
37
  return Array.from(new Set(r.filter((e) => !!e)));
@@ -1 +1 @@
1
- require(`../../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../functions/utils/caseInsensitive.utils.cjs`),n=require(`../../types/cache.types.cjs`),r=require(`../http/HttpClient.cjs`);require(`../http/index.cjs`);const i=require(`../../functions/utils/tron.utils.cjs`),a=require(`../../API/API.cjs`),o=require(`../../functions/utils/string.utils.cjs`),s=require(`./token-visibility-db.cjs`),c=require(`../../functions/utils/erc20tokenFunctions.cjs`);let l=require(`idb-keyval`);var u=class{fetchedTokens={};async getPublicTokens(e,t){let r=o.getStateKey(e,t);return c.overlayTokensWithRegistryData((await(0,l.get)(n.StorageKeys.TRON_PUBLIC_TOKENS))?.[r]||[],t)}async getFetchedTokens(e,t){let n=o.getStateKey(e,t);return c.overlayTokensWithRegistryData(this.fetchedTokens[n]||[],t)}async fetchAndUpdatePublicTokens(e,r){let i=o.getStateKey(e,r),c=await this.getHeldTokenAddresses(e,r);if(!c.length)return;let u=(await a.API.tokensInfoCall(r,c)).filter(e=>!!e),d=await s.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(r,u),f=u.filter(e=>!t.lowerCaseIncludes(d,e.erc20TokenAddress));await(0,l.update)(n.StorageKeys.TRON_PUBLIC_TOKENS,(e={})=>{let t={...e,[i]:f};return this.fetchedTokens=t,t})}async getHeldTokenAddresses(t,n){let a=i.toTronBase58IfHex(t),o=`${i.getTronWalletRpcUrl(n)}/v1/accounts/${a}`,s=(await r.httpClient.get(o))?.data?.[0];if(!s)return[];let c=[];return s.balance&&s.balance>0&&c.push(e.zeroAddress),(s.trc20??[]).forEach(e=>{Object.entries(e).forEach(([e,t])=>{BigInt(t)>0n&&c.push(i.addressToHexFormat(e))})}),Array.from(new Set(c))}},d=new u;exports.TronPublicTokensDB=u,exports.tronPublicTokensDB=d;
1
+ const e=require(`../../constants/protocol.constants.cjs`),t=require(`../../functions/utils/caseInsensitive.utils.cjs`),n=require(`../../../../shims/idb-keyval.cjs`),r=require(`../../types/cache.types.cjs`),i=require(`../http/HttpClient.cjs`);require(`../http/index.cjs`);const a=require(`../../functions/utils/tron.utils.cjs`),o=require(`../../API/API.cjs`),s=require(`../../functions/utils/string.utils.cjs`),c=require(`./token-visibility-db.cjs`),l=require(`../../functions/utils/erc20tokenFunctions.cjs`);var u=n.default,d=class{fetchedTokens={};async getPublicTokens(e,t){let n=s.getStateKey(e,t);return l.overlayTokensWithRegistryData((await(0,u.get)(r.StorageKeys.TRON_PUBLIC_TOKENS))?.[n]||[],t)}async getFetchedTokens(e,t){let n=s.getStateKey(e,t);return l.overlayTokensWithRegistryData(this.fetchedTokens[n]||[],t)}async fetchAndUpdatePublicTokens(e,n){let i=s.getStateKey(e,n),a=await this.getHeldTokenAddresses(e,n);if(!a.length)return;let l=(await o.API.tokensInfoCall(n,a)).filter(e=>!!e),d=await c.tokenVisibilityStorage.hideSpamsAndFetchHiddenTokensAddresses(n,l),f=l.filter(e=>!t.lowerCaseIncludes(d,e.erc20TokenAddress));await(0,u.update)(r.StorageKeys.TRON_PUBLIC_TOKENS,(e={})=>{let t={...e,[i]:f};return this.fetchedTokens=t,t})}async getHeldTokenAddresses(t,n){let r=a.toTronBase58IfHex(t),o=`${a.getTronWalletRpcUrl(n)}/v1/accounts/${r}`,s=(await i.httpClient.get(o))?.data?.[0];if(!s)return[];let c=[];return s.balance&&s.balance>0&&c.push(e.zeroAddress),(s.trc20??[]).forEach(e=>{Object.entries(e).forEach(([e,t])=>{BigInt(t)>0n&&c.push(a.addressToHexFormat(e))})}),Array.from(new Set(c))}},f=new d;exports.TronPublicTokensDB=d,exports.tronPublicTokensDB=f;
@@ -1,30 +1,30 @@
1
1
  import { zeroAddress as e } from "../../constants/protocol.constants.mjs";
2
2
  import { lowerCaseIncludes as t } from "../../functions/utils/caseInsensitive.utils.mjs";
3
- import { StorageKeys as n } from "../../types/cache.types.mjs";
4
- import { httpClient as r } from "../http/HttpClient.mjs";
3
+ import { require_idb_keyval as n } from "../../../../shims/idb-keyval.mjs";
4
+ import { StorageKeys as r } from "../../types/cache.types.mjs";
5
+ import { httpClient as i } from "../http/HttpClient.mjs";
5
6
  import "../http/index.mjs";
6
- import { addressToHexFormat as i, getTronWalletRpcUrl as a, toTronBase58IfHex as o } from "../../functions/utils/tron.utils.mjs";
7
- import { API as s } from "../../API/API.mjs";
8
- import { getStateKey as c } from "../../functions/utils/string.utils.mjs";
9
- import { tokenVisibilityStorage as l } from "./token-visibility-db.mjs";
10
- import { overlayTokensWithRegistryData as u } from "../../functions/utils/erc20tokenFunctions.mjs";
11
- import { get as d, update as f } from "idb-keyval";
7
+ import { addressToHexFormat as a, getTronWalletRpcUrl as o, toTronBase58IfHex as s } from "../../functions/utils/tron.utils.mjs";
8
+ import { API as c } from "../../API/API.mjs";
9
+ import { getStateKey as l } from "../../functions/utils/string.utils.mjs";
10
+ import { tokenVisibilityStorage as u } from "./token-visibility-db.mjs";
11
+ import { overlayTokensWithRegistryData as d } from "../../functions/utils/erc20tokenFunctions.mjs";
12
12
  //#region common/src/data-structures/TokenDBs/TronPublicTokensDB.ts
13
- var p = class {
13
+ var f = n(), p = class {
14
14
  fetchedTokens = {};
15
15
  async getPublicTokens(e, t) {
16
- let r = c(e, t);
17
- return u((await d(n.TRON_PUBLIC_TOKENS))?.[r] || [], t);
16
+ let n = l(e, t);
17
+ return d((await (0, f.get)(r.TRON_PUBLIC_TOKENS))?.[n] || [], t);
18
18
  }
19
19
  async getFetchedTokens(e, t) {
20
- let n = c(e, t);
21
- return u(this.fetchedTokens[n] || [], t);
20
+ let n = l(e, t);
21
+ return d(this.fetchedTokens[n] || [], t);
22
22
  }
23
- async fetchAndUpdatePublicTokens(e, r) {
24
- let i = c(e, r), a = await this.getHeldTokenAddresses(e, r);
23
+ async fetchAndUpdatePublicTokens(e, n) {
24
+ let i = l(e, n), a = await this.getHeldTokenAddresses(e, n);
25
25
  if (!a.length) return;
26
- let o = (await s.tokensInfoCall(r, a)).filter((e) => !!e), u = await l.hideSpamsAndFetchHiddenTokensAddresses(r, o), d = o.filter((e) => !t(u, e.erc20TokenAddress));
27
- await f(n.TRON_PUBLIC_TOKENS, (e = {}) => {
26
+ let o = (await c.tokensInfoCall(n, a)).filter((e) => !!e), s = await u.hideSpamsAndFetchHiddenTokensAddresses(n, o), d = o.filter((e) => !t(s, e.erc20TokenAddress));
27
+ await (0, f.update)(r.TRON_PUBLIC_TOKENS, (e = {}) => {
28
28
  let t = {
29
29
  ...e,
30
30
  [i]: d
@@ -33,12 +33,12 @@ var p = class {
33
33
  });
34
34
  }
35
35
  async getHeldTokenAddresses(t, n) {
36
- let s = o(t), c = `${a(n)}/v1/accounts/${s}`, l = (await r.get(c))?.data?.[0];
36
+ let r = s(t), c = `${o(n)}/v1/accounts/${r}`, l = (await i.get(c))?.data?.[0];
37
37
  if (!l) return [];
38
38
  let u = [];
39
39
  return l.balance && l.balance > 0 && u.push(e), (l.trc20 ?? []).forEach((e) => {
40
40
  Object.entries(e).forEach(([e, t]) => {
41
- BigInt(t) > 0n && u.push(i(e));
41
+ BigInt(t) > 0n && u.push(a(e));
42
42
  });
43
43
  }), Array.from(new Set(u));
44
44
  }
@@ -1 +1 @@
1
- require(`../../../../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../error-handling/logger.cjs`),t=require(`../../functions/utils/token-check.utils.cjs`);let n=require(`idb-keyval`);var r=new class{STORAGE_KEY=`hiddenTokenAddresses`;UNHIDDEN_SPAM_KEY=`unhiddenSpamTokens`;async getHiddenTokens(t){try{return(await(0,n.get)(this.STORAGE_KEY))?.[t]||[]}catch(t){return e.Logger.error(`Error retrieving hidden tokens`,t),[]}}async getHiddenTokenAddresses(t){try{return(await this.getHiddenTokens(t)).map(({erc20TokenAddress:e})=>e.toLowerCase())}catch(t){return e.Logger.error(`Error retrieving hidden tokens`,t),[]}}async filterOutHiddenTokens(e,n){let r=await this.getHiddenTokens(e);return n.filter(e=>!r.some(n=>t.isSameERC20Token(n,e)))}async hideToken(r){try{await(0,n.update)(this.STORAGE_KEY,e=>{let n=e??{},{chainId:i}=r;return n[i]||(n[i]=[]),n[i].some(e=>t.isSameERC20Token(e,r))||n[i].push(r),n}),r.isSpam&&await this.deleteUnhiddenSpamToken(r)}catch(t){e.Logger.error(`Error hiding token`,t)}}async showToken(r){try{await(0,n.update)(this.STORAGE_KEY,e=>{let{chainId:n}=r,i=e??{};return i[n]||(i[n]=[]),i[n]=i[n].filter(e=>!t.isSameERC20Token(e,r)),i}),r.isSpam&&await this.storeUnhiddenSpamToken(r)}catch(t){e.Logger.error(`Error showing token`,t)}}async storeUnhiddenSpamToken(r){let{chainId:i}=r;try{await(0,n.update)(this.UNHIDDEN_SPAM_KEY,e=>{let n=e??{};return n[i]||(n[i]=[]),n[i].some(e=>t.isSameERC20Token(e,r))||n[i].push(r),n})}catch(t){e.Logger.error(`Error storing unhidden spam token`,t)}}async deleteUnhiddenSpamToken(e){await(0,n.update)(this.UNHIDDEN_SPAM_KEY,n=>{let{chainId:r}=e,i=n??{};return i[r]=i[r]?.filter(n=>!t.isSameERC20Token(n,e)),i})}async getUnhiddenSpamTokens(t){try{return(await(0,n.get)(this.UNHIDDEN_SPAM_KEY))?.[t]||[]}catch(t){return e.Logger.error(`Error retrieving unhidden spam tokens`,t),[]}}async hideUnnecessarySpamTokens(e,n){let r=await this.getUnhiddenSpamTokens(e),i=n.filter(e=>e.isSpam?!r.some(n=>t.isSameERC20Token(n,e)):!1);await Promise.all(i.map(e=>this.hideToken(e)))}async hideSpamsAndFetchHiddenTokensAddresses(e,t){return await this.hideUnnecessarySpamTokens(e,t),this.getHiddenTokenAddresses(e)}};exports.tokenVisibilityStorage=r;
1
+ const e=require(`../../../../shims/idb-keyval.cjs`),t=require(`../../error-handling/logger.cjs`),n=require(`../../functions/utils/token-check.utils.cjs`);var r=e.default,i=new class{STORAGE_KEY=`hiddenTokenAddresses`;UNHIDDEN_SPAM_KEY=`unhiddenSpamTokens`;async getHiddenTokens(e){try{return(await(0,r.get)(this.STORAGE_KEY))?.[e]||[]}catch(e){return t.Logger.error(`Error retrieving hidden tokens`,e),[]}}async getHiddenTokenAddresses(e){try{return(await this.getHiddenTokens(e)).map(({erc20TokenAddress:e})=>e.toLowerCase())}catch(e){return t.Logger.error(`Error retrieving hidden tokens`,e),[]}}async filterOutHiddenTokens(e,t){let r=await this.getHiddenTokens(e);return t.filter(e=>!r.some(t=>n.isSameERC20Token(t,e)))}async hideToken(e){try{await(0,r.update)(this.STORAGE_KEY,t=>{let r=t??{},{chainId:i}=e;return r[i]||(r[i]=[]),r[i].some(t=>n.isSameERC20Token(t,e))||r[i].push(e),r}),e.isSpam&&await this.deleteUnhiddenSpamToken(e)}catch(e){t.Logger.error(`Error hiding token`,e)}}async showToken(e){try{await(0,r.update)(this.STORAGE_KEY,t=>{let{chainId:r}=e,i=t??{};return i[r]||(i[r]=[]),i[r]=i[r].filter(t=>!n.isSameERC20Token(t,e)),i}),e.isSpam&&await this.storeUnhiddenSpamToken(e)}catch(e){t.Logger.error(`Error showing token`,e)}}async storeUnhiddenSpamToken(e){let{chainId:i}=e;try{await(0,r.update)(this.UNHIDDEN_SPAM_KEY,t=>{let r=t??{};return r[i]||(r[i]=[]),r[i].some(t=>n.isSameERC20Token(t,e))||r[i].push(e),r})}catch(e){t.Logger.error(`Error storing unhidden spam token`,e)}}async deleteUnhiddenSpamToken(e){await(0,r.update)(this.UNHIDDEN_SPAM_KEY,t=>{let{chainId:r}=e,i=t??{};return i[r]=i[r]?.filter(t=>!n.isSameERC20Token(t,e)),i})}async getUnhiddenSpamTokens(e){try{return(await(0,r.get)(this.UNHIDDEN_SPAM_KEY))?.[e]||[]}catch(e){return t.Logger.error(`Error retrieving unhidden spam tokens`,e),[]}}async hideUnnecessarySpamTokens(e,t){let r=await this.getUnhiddenSpamTokens(e),i=t.filter(e=>e.isSpam?!r.some(t=>n.isSameERC20Token(t,e)):!1);await Promise.all(i.map(e=>this.hideToken(e)))}async hideSpamsAndFetchHiddenTokensAddresses(e,t){return await this.hideUnnecessarySpamTokens(e,t),this.getHiddenTokenAddresses(e)}};exports.tokenVisibilityStorage=i;
@@ -1,73 +1,74 @@
1
- import { Logger as e } from "../../error-handling/logger.mjs";
2
- import { isSameERC20Token as t } from "../../functions/utils/token-check.utils.mjs";
3
- import { get as n, update as r } from "idb-keyval";
4
- var i = new class {
1
+ import { require_idb_keyval as e } from "../../../../shims/idb-keyval.mjs";
2
+ import { Logger as t } from "../../error-handling/logger.mjs";
3
+ import { isSameERC20Token as n } from "../../functions/utils/token-check.utils.mjs";
4
+ //#region common/src/data-structures/TokenDBs/token-visibility-db.ts
5
+ var r = e(), i = new class {
5
6
  STORAGE_KEY = "hiddenTokenAddresses";
6
7
  UNHIDDEN_SPAM_KEY = "unhiddenSpamTokens";
7
- async getHiddenTokens(t) {
8
+ async getHiddenTokens(e) {
8
9
  try {
9
- return (await n(this.STORAGE_KEY))?.[t] || [];
10
- } catch (t) {
11
- return e.error("Error retrieving hidden tokens", t), [];
10
+ return (await (0, r.get)(this.STORAGE_KEY))?.[e] || [];
11
+ } catch (e) {
12
+ return t.error("Error retrieving hidden tokens", e), [];
12
13
  }
13
14
  }
14
- async getHiddenTokenAddresses(t) {
15
+ async getHiddenTokenAddresses(e) {
15
16
  try {
16
- return (await this.getHiddenTokens(t)).map(({ erc20TokenAddress: e }) => e.toLowerCase());
17
- } catch (t) {
18
- return e.error("Error retrieving hidden tokens", t), [];
17
+ return (await this.getHiddenTokens(e)).map(({ erc20TokenAddress: e }) => e.toLowerCase());
18
+ } catch (e) {
19
+ return t.error("Error retrieving hidden tokens", e), [];
19
20
  }
20
21
  }
21
- async filterOutHiddenTokens(e, n) {
22
+ async filterOutHiddenTokens(e, t) {
22
23
  let r = await this.getHiddenTokens(e);
23
- return n.filter((e) => !r.some((n) => t(n, e)));
24
+ return t.filter((e) => !r.some((t) => n(t, e)));
24
25
  }
25
- async hideToken(n) {
26
+ async hideToken(e) {
26
27
  try {
27
- await r(this.STORAGE_KEY, (e) => {
28
- let r = e ?? {}, { chainId: i } = n;
29
- return r[i] || (r[i] = []), r[i].some((e) => t(e, n)) || r[i].push(n), r;
30
- }), n.isSpam && await this.deleteUnhiddenSpamToken(n);
31
- } catch (t) {
32
- e.error("Error hiding token", t);
28
+ await (0, r.update)(this.STORAGE_KEY, (t) => {
29
+ let r = t ?? {}, { chainId: i } = e;
30
+ return r[i] || (r[i] = []), r[i].some((t) => n(t, e)) || r[i].push(e), r;
31
+ }), e.isSpam && await this.deleteUnhiddenSpamToken(e);
32
+ } catch (e) {
33
+ t.error("Error hiding token", e);
33
34
  }
34
35
  }
35
- async showToken(n) {
36
+ async showToken(e) {
36
37
  try {
37
- await r(this.STORAGE_KEY, (e) => {
38
- let { chainId: r } = n, i = e ?? {};
39
- return i[r] || (i[r] = []), i[r] = i[r].filter((e) => !t(e, n)), i;
40
- }), n.isSpam && await this.storeUnhiddenSpamToken(n);
41
- } catch (t) {
42
- e.error("Error showing token", t);
38
+ await (0, r.update)(this.STORAGE_KEY, (t) => {
39
+ let { chainId: r } = e, i = t ?? {};
40
+ return i[r] || (i[r] = []), i[r] = i[r].filter((t) => !n(t, e)), i;
41
+ }), e.isSpam && await this.storeUnhiddenSpamToken(e);
42
+ } catch (e) {
43
+ t.error("Error showing token", e);
43
44
  }
44
45
  }
45
- async storeUnhiddenSpamToken(n) {
46
- let { chainId: i } = n;
46
+ async storeUnhiddenSpamToken(e) {
47
+ let { chainId: i } = e;
47
48
  try {
48
- await r(this.UNHIDDEN_SPAM_KEY, (e) => {
49
- let r = e ?? {};
50
- return r[i] || (r[i] = []), r[i].some((e) => t(e, n)) || r[i].push(n), r;
49
+ await (0, r.update)(this.UNHIDDEN_SPAM_KEY, (t) => {
50
+ let r = t ?? {};
51
+ return r[i] || (r[i] = []), r[i].some((t) => n(t, e)) || r[i].push(e), r;
51
52
  });
52
- } catch (t) {
53
- e.error("Error storing unhidden spam token", t);
53
+ } catch (e) {
54
+ t.error("Error storing unhidden spam token", e);
54
55
  }
55
56
  }
56
57
  async deleteUnhiddenSpamToken(e) {
57
- await r(this.UNHIDDEN_SPAM_KEY, (n) => {
58
- let { chainId: r } = e, i = n ?? {};
59
- return i[r] = i[r]?.filter((n) => !t(n, e)), i;
58
+ await (0, r.update)(this.UNHIDDEN_SPAM_KEY, (t) => {
59
+ let { chainId: r } = e, i = t ?? {};
60
+ return i[r] = i[r]?.filter((t) => !n(t, e)), i;
60
61
  });
61
62
  }
62
- async getUnhiddenSpamTokens(t) {
63
+ async getUnhiddenSpamTokens(e) {
63
64
  try {
64
- return (await n(this.UNHIDDEN_SPAM_KEY))?.[t] || [];
65
- } catch (t) {
66
- return e.error("Error retrieving unhidden spam tokens", t), [];
65
+ return (await (0, r.get)(this.UNHIDDEN_SPAM_KEY))?.[e] || [];
66
+ } catch (e) {
67
+ return t.error("Error retrieving unhidden spam tokens", e), [];
67
68
  }
68
69
  }
69
- async hideUnnecessarySpamTokens(e, n) {
70
- let r = await this.getUnhiddenSpamTokens(e), i = n.filter((e) => e.isSpam ? !r.some((n) => t(n, e)) : !1);
70
+ async hideUnnecessarySpamTokens(e, t) {
71
+ let r = await this.getUnhiddenSpamTokens(e), i = t.filter((e) => e.isSpam ? !r.some((t) => n(t, e)) : !1);
71
72
  await Promise.all(i.map((e) => this.hideToken(e)));
72
73
  }
73
74
  async hideSpamsAndFetchHiddenTokensAddresses(e, t) {
@@ -1 +1 @@
1
- require(`../../../../../../_virtual/_rolldown/runtime.cjs`),require(`../../data-structures/http/HttpClient.cjs`),require(`./common.snarkjs.cjs`),require(`../utils/bytes32.utils.cjs`),require(`./getZKFiles.cjs`),require(`ethers`),require(`snarkjs`);
1
+ require(`../../../../../../_virtual/_rolldown/runtime.cjs`),require(`../../data-structures/http/HttpClient.cjs`),require(`./common.snarkjs.cjs`),require(`../utils/bytes32.utils.cjs`),require(`./getZKFiles.cjs`);const e=require(`../../../../shims/snarkjs.cjs`);require(`ethers`),e.default;
@@ -1,6 +1,9 @@
1
+ import "../../../../../../_virtual/_rolldown/runtime.mjs";
1
2
  import "../../data-structures/http/HttpClient.mjs";
2
3
  import "./common.snarkjs.mjs";
3
4
  import "../utils/bytes32.utils.mjs";
4
5
  import "./getZKFiles.mjs";
6
+ import { require_snarkjs as e } from "../../../../shims/snarkjs.mjs";
5
7
  import "ethers";
6
- import "snarkjs";
8
+ e();
9
+ //#endregion
@@ -1 +1 @@
1
- const e=require(`./serialize.utils.cjs`),t=require(`../../constants/chains.constants.cjs`);require(`idb-keyval`);var n={encryptedOutputs:[],lastOutput:``},r=(e,t)=>({shortPublicKey:e.substring(0,25),shortHinkalAddress:t.substring(0,25)}),i=(e,t,n)=>`hinkalCache-${e}-${t}-${n}`,a=(a,o,s)=>{let{hinkalAddress:c}=t.networkRegistry[o].contractData;if(!o||!s||!c)throw Error(`GetHinkalCache: incorrect arguments`);let{shortPublicKey:l,shortHinkalAddress:u}=r(s,c);return JSON.parse(a.cacheDevice.get(i(o,l,u))??e.safeJsonStringify(n))},o=(n,a,o,s)=>{let{hinkalAddress:c}=t.networkRegistry[o].contractData;if(!o||!s||!c)throw Error(`SetHinkalCache: incorrect arguments`);let{shortPublicKey:l,shortHinkalAddress:u}=r(s,c);a.cacheDevice.set(i(o,l,u),e.safeJsonStringify(n))},s=(e,t,r)=>{o(n,e,t,r)};exports.getFilePath=i,exports.getHinkalCache=a,exports.resetCache=s,exports.setHinkalCache=o;
1
+ const e=require(`./serialize.utils.cjs`),t=require(`../../constants/chains.constants.cjs`);require(`../../../../shims/idb-keyval.cjs`).default;var n={encryptedOutputs:[],lastOutput:``},r=(e,t)=>({shortPublicKey:e.substring(0,25),shortHinkalAddress:t.substring(0,25)}),i=(e,t,n)=>`hinkalCache-${e}-${t}-${n}`,a=(a,o,s)=>{let{hinkalAddress:c}=t.networkRegistry[o].contractData;if(!o||!s||!c)throw Error(`GetHinkalCache: incorrect arguments`);let{shortPublicKey:l,shortHinkalAddress:u}=r(s,c);return JSON.parse(a.cacheDevice.get(i(o,l,u))??e.safeJsonStringify(n))},o=(n,a,o,s)=>{let{hinkalAddress:c}=t.networkRegistry[o].contractData;if(!o||!s||!c)throw Error(`SetHinkalCache: incorrect arguments`);let{shortPublicKey:l,shortHinkalAddress:u}=r(s,c);a.cacheDevice.set(i(o,l,u),e.safeJsonStringify(n))},s=(e,t,r)=>{o(n,e,t,r)};exports.getFilePath=i,exports.getHinkalCache=a,exports.resetCache=s,exports.setHinkalCache=o;
@@ -1,25 +1,25 @@
1
1
  import { safeJsonStringify as e } from "./serialize.utils.mjs";
2
2
  import { networkRegistry as t } from "../../constants/chains.constants.mjs";
3
- import "idb-keyval";
4
- //#region common/src/functions/utils/cacheFunctions.ts
5
- var n = {
3
+ import { require_idb_keyval as n } from "../../../../shims/idb-keyval.mjs";
4
+ n();
5
+ var r = {
6
6
  encryptedOutputs: [],
7
7
  lastOutput: ""
8
- }, r = (e, t) => ({
8
+ }, i = (e, t) => ({
9
9
  shortPublicKey: e.substring(0, 25),
10
10
  shortHinkalAddress: t.substring(0, 25)
11
- }), i = (e, t, n) => `hinkalCache-${e}-${t}-${n}`, a = (a, o, s) => {
11
+ }), a = (e, t, n) => `hinkalCache-${e}-${t}-${n}`, o = (n, o, s) => {
12
12
  let { hinkalAddress: c } = t[o].contractData;
13
13
  if (!o || !s || !c) throw Error("GetHinkalCache: incorrect arguments");
14
- let { shortPublicKey: l, shortHinkalAddress: u } = r(s, c);
15
- return JSON.parse(a.cacheDevice.get(i(o, l, u)) ?? e(n));
16
- }, o = (n, a, o, s) => {
14
+ let { shortPublicKey: l, shortHinkalAddress: u } = i(s, c);
15
+ return JSON.parse(n.cacheDevice.get(a(o, l, u)) ?? e(r));
16
+ }, s = (n, r, o, s) => {
17
17
  let { hinkalAddress: c } = t[o].contractData;
18
18
  if (!o || !s || !c) throw Error("SetHinkalCache: incorrect arguments");
19
- let { shortPublicKey: l, shortHinkalAddress: u } = r(s, c);
20
- a.cacheDevice.set(i(o, l, u), e(n));
21
- }, s = (e, t, r) => {
22
- o(n, e, t, r);
19
+ let { shortPublicKey: l, shortHinkalAddress: u } = i(s, c);
20
+ r.cacheDevice.set(a(o, l, u), e(n));
21
+ }, c = (e, t, n) => {
22
+ s(r, e, t, n);
23
23
  };
24
24
  //#endregion
25
- export { i as getFilePath, a as getHinkalCache, s as resetCache, o as setHinkalCache };
25
+ export { a as getFilePath, o as getHinkalCache, c as resetCache, s as setHinkalCache };
@@ -1 +1 @@
1
- require(`multiformats`);
1
+ require(`../../../../shims/multiformats.cjs`).default;
@@ -1 +1,3 @@
1
- import "multiformats";
1
+ import { require_multiformats as e } from "../../../../shims/multiformats.mjs";
2
+ e();
3
+ //#endregion
@@ -2,9 +2,9 @@
2
2
  const domain = 'https://storage.googleapis.com/hinkal-workers-staging';
3
3
 
4
4
  const WORKER_CDN_URLS = {
5
- ZKProof: domain + '/0.3.71/' + 'zkProofWorkerLauncher.js',
6
- SnarkJS: domain + '/0.3.71/' + 'snarkjsWorkerLauncher.js',
7
- UTXO: domain + '/0.3.71/' + 'utxoWorkerLauncher.js',
5
+ ZKProof: domain + '/0.3.74/' + 'zkProofWorkerLauncher.js',
6
+ SnarkJS: domain + '/0.3.74/' + 'snarkjsWorkerLauncher.js',
7
+ UTXO: domain + '/0.3.74/' + 'utxoWorkerLauncher.js',
8
8
  };
9
9
 
10
10
  // Returns a blob:// URL which points
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gurge/sdk-react-native",
3
- "version": "0.3.71",
3
+ "version": "0.3.74",
4
4
  "description": "Prebundled Hinkal SDK for React Native — no Metro config required.",
5
5
  "homepage": "hinkal.io",
6
6
  "author": {
@@ -0,0 +1,14 @@
1
+ function notSupported(name) {
2
+ return () => {
3
+ throw new Error(
4
+ `[hinkal-rn] circomlibjs-hinkal-fork.${name} is not available on React Native. ` +
5
+ 'The SDK uses poseidon-lite + an inline BabyJubJub instead.',
6
+ );
7
+ };
8
+ }
9
+
10
+ module.exports = {
11
+ buildPoseidon: notSupported('buildPoseidon'),
12
+ buildPoseidonReference: notSupported('buildPoseidonReference'),
13
+ buildBabyjub: notSupported('buildBabyjub'),
14
+ };
@@ -0,0 +1,3 @@
1
+ import mod from "./circomlibjs-hinkal-fork.cjs";
2
+ export function require_circomlibjs_hinkal_fork() { return mod; }
3
+ export default mod;
@@ -0,0 +1,15 @@
1
+ function notSupported(name) {
2
+ return () => {
3
+ throw new Error(
4
+ `[hinkal-rn] circomlibjs.${name} is not available on React Native. ` +
5
+ 'The SDK uses poseidon-lite + an inline BabyJubJub instead.',
6
+ );
7
+ };
8
+ }
9
+
10
+ module.exports = {
11
+ buildPoseidon: notSupported('buildPoseidon'),
12
+ buildPoseidonReference: notSupported('buildPoseidonReference'),
13
+ buildPoseidonWasm: notSupported('buildPoseidonWasm'),
14
+ buildBabyjub: notSupported('buildBabyjub'),
15
+ };
@@ -0,0 +1,3 @@
1
+ import mod from "./circomlibjs.cjs";
2
+ export function require_circomlibjs() { return mod; }
3
+ export default mod;
@@ -0,0 +1,7 @@
1
+ module.exports = {
2
+ O_TRUNC: 512,
3
+ O_CREAT: 64,
4
+ O_RDWR: 2,
5
+ O_EXCL: 128,
6
+ O_RDONLY: 0,
7
+ };
@@ -0,0 +1,3 @@
1
+ import mod from "./constants.cjs";
2
+ export function require_constants() { return mod; }
3
+ export default mod;
@@ -0,0 +1,102 @@
1
+ // Node `crypto` shim for React Native.
2
+
3
+ const { sha256, sha512, keccak256 } = require('ethers');
4
+ const { Buffer } = require('buffer');
5
+
6
+ function ensureRng() {
7
+ if (!global.crypto || typeof global.crypto.getRandomValues !== 'function') {
8
+ throw new Error(
9
+ '[hinkal-rn] global.crypto.getRandomValues is not available. ' +
10
+ 'Import @hinkal/sdk-react-native (HinkalProvider) before other SDK code.',
11
+ );
12
+ }
13
+ }
14
+
15
+ function randomBytes(size) {
16
+ ensureRng();
17
+ const arr = new Uint8Array(size);
18
+ global.crypto.getRandomValues(arr);
19
+ return Buffer.from(arr);
20
+ }
21
+
22
+ function randomFillSync(buf, offset, size) {
23
+ ensureRng();
24
+ const start = offset ?? 0;
25
+ const end = size != null ? start + size : buf.length;
26
+ const view = new Uint8Array(buf.buffer || buf, buf.byteOffset || 0, buf.length);
27
+ const tmp = new Uint8Array(end - start);
28
+ global.crypto.getRandomValues(tmp);
29
+ view.set(tmp, start);
30
+ return buf;
31
+ }
32
+
33
+ function randomUUID() {
34
+ // RFC 4122 v4 UUID via crypto-secure bytes.
35
+ const b = randomBytes(16);
36
+ b[6] = (b[6] & 0x0f) | 0x40;
37
+ b[8] = (b[8] & 0x3f) | 0x80;
38
+ const hex = b.toString('hex');
39
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
40
+ }
41
+
42
+ function toBytesLike(input) {
43
+ if (input == null) return new Uint8Array(0);
44
+ if (typeof input === 'string') return Buffer.from(input, 'utf8');
45
+ if (input instanceof Uint8Array) return input;
46
+ if (Buffer.isBuffer(input)) return input;
47
+ if (input.buffer) return new Uint8Array(input.buffer, input.byteOffset || 0, input.byteLength || input.length);
48
+ return Buffer.from(input);
49
+ }
50
+
51
+ function hexToBuffer(hex) {
52
+ return Buffer.from(hex.replace(/^0x/, ''), 'hex');
53
+ }
54
+
55
+ function createHash(algorithm) {
56
+ const alg = String(algorithm).toLowerCase().replace('-', '');
57
+ const chunks = [];
58
+ return {
59
+ update(chunk) {
60
+ chunks.push(toBytesLike(chunk));
61
+ return this;
62
+ },
63
+ digest(encoding) {
64
+ const total = chunks.reduce((acc, c) => acc + c.length, 0);
65
+ const merged = new Uint8Array(total);
66
+ let off = 0;
67
+ for (const c of chunks) {
68
+ merged.set(c, off);
69
+ off += c.length;
70
+ }
71
+ let hex;
72
+ if (alg === 'sha256') hex = sha256(merged);
73
+ else if (alg === 'sha512') hex = sha512(merged);
74
+ else if (alg === 'keccak256') hex = keccak256(merged);
75
+ else throw new Error(`[hinkal-rn] unsupported hash algorithm: ${algorithm}`);
76
+ const buf = hexToBuffer(hex);
77
+ if (!encoding) return buf;
78
+ if (encoding === 'hex') return buf.toString('hex');
79
+ if (encoding === 'base64') return buf.toString('base64');
80
+ return buf.toString(encoding);
81
+ },
82
+ };
83
+ }
84
+
85
+ function createHmac() {
86
+ throw new Error('[hinkal-rn] crypto.createHmac is not implemented in the RN shim. Use a JS implementation.');
87
+ }
88
+
89
+ module.exports = {
90
+ randomBytes,
91
+ randomFillSync,
92
+ randomUUID,
93
+ createHash,
94
+ createHmac,
95
+ webcrypto: typeof global.crypto !== 'undefined' ? global.crypto : undefined,
96
+ getRandomValues: (arr) => {
97
+ ensureRng();
98
+ global.crypto.getRandomValues(arr);
99
+ return arr;
100
+ },
101
+ };
102
+ module.exports.default = module.exports;
@@ -0,0 +1,3 @@
1
+ import mod from "./crypto.cjs";
2
+ export function require_crypto() { return mod; }
3
+ export default mod;
@@ -0,0 +1,5 @@
1
+ module.exports = {
2
+ Scalar: {},
3
+ F1Field: class {},
4
+ getCurveFromName: () => { throw new Error("not supported") },
5
+ }
@@ -0,0 +1,3 @@
1
+ import mod from "./ffjavascript.cjs";
2
+ export function require_ffjavascript() { return mod; }
3
+ export default mod;
@@ -0,0 +1,15 @@
1
+ import { Buffer } from "buffer";
2
+ import * as ReactNative from "react-native";
3
+ global.Buffer = Buffer;
4
+
5
+ // key-val-store probes indexedDB; without it the SDK falls back to FileKeyValStore (process.cwd).
6
+ if (typeof globalThis.indexedDB === "undefined") {
7
+ globalThis.indexedDB = {};
8
+ }
9
+
10
+ if (typeof global.require === "undefined") {
11
+ global.require = (m) => {
12
+ if (m === "react-native") return ReactNative;
13
+ throw new Error(`global.require shim: unsupported module "${m}"`);
14
+ };
15
+ }
@@ -0,0 +1,3 @@
1
+ import mod from "./globals.cjs";
2
+ export function require_globals() { return mod; }
3
+ export default mod;
@@ -0,0 +1,75 @@
1
+ // idb-keyval shim for React Native
2
+ const AsyncStorage =
3
+ require("@react-native-async-storage/async-storage").default;
4
+
5
+ const PREFIX = "@hinkal/idb-keyval:";
6
+ const key = (k) => `${PREFIX}${typeof k === "string" ? k : JSON.stringify(k)}`;
7
+
8
+ async function get(k) {
9
+ const raw = await AsyncStorage.getItem(key(k));
10
+ if (raw == null) return undefined;
11
+ try {
12
+ return JSON.parse(raw);
13
+ } catch {
14
+ return undefined;
15
+ }
16
+ }
17
+
18
+ async function set(k, value) {
19
+ if (value === undefined) {
20
+ await AsyncStorage.removeItem(key(k));
21
+ return;
22
+ }
23
+ await AsyncStorage.setItem(key(k), JSON.stringify(value));
24
+ }
25
+
26
+ async function update(k, updater) {
27
+ const current = await get(k);
28
+ const next = updater(current);
29
+ await set(k, next);
30
+ return next;
31
+ }
32
+
33
+ async function del(k) {
34
+ await AsyncStorage.removeItem(key(k));
35
+ }
36
+
37
+ async function clear() {
38
+ const all = await AsyncStorage.getAllKeys();
39
+ const ours = all.filter((x) => x.startsWith(PREFIX));
40
+ if (ours.length) await AsyncStorage.multiRemove(ours);
41
+ }
42
+
43
+ async function keys() {
44
+ const all = await AsyncStorage.getAllKeys();
45
+ return all.filter((x) => x.startsWith(PREFIX)).map((x) => x.slice(PREFIX.length));
46
+ }
47
+
48
+ async function values() {
49
+ const ks = await keys();
50
+ return Promise.all(ks.map(get));
51
+ }
52
+
53
+ async function entries() {
54
+ const ks = await keys();
55
+ const vs = await Promise.all(ks.map(get));
56
+ return ks.map((k, i) => [k, vs[i]]);
57
+ }
58
+
59
+ function createStore() {
60
+ // idb-keyval lets callers create a store with a custom DB name; we ignore it
61
+ return undefined;
62
+ }
63
+
64
+ module.exports = {
65
+ get,
66
+ set,
67
+ update,
68
+ del,
69
+ clear,
70
+ keys,
71
+ values,
72
+ entries,
73
+ createStore,
74
+ };
75
+ module.exports.default = module.exports;