Skip to content

Commit e6a80ce

Browse files
fix: remove node-localstorage, add StorageProvider interface (#1508)
1 parent cf4c125 commit e6a80ce

File tree

9 files changed

+41
-49
lines changed

9 files changed

+41
-49
lines changed

docker-compose.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,16 @@ services:
5252
restart: on-failure:20
5353
graph-deploy:
5454
build:
55-
context: https://github.com/RequestNetwork/docker-images.git#main
56-
dockerfile: request-subgraph-storage/Dockerfile
55+
context: https://github.com/RequestNetwork/docker-images.git#main:request-subgraph-storage
56+
dockerfile: ./Dockerfile
5757
depends_on:
5858
- ipfs
5959
- postgres
6060
- graph-node
6161
- ganache
6262
environment:
6363
GRAPH_NODE: 'http://graph-node:8020'
64-
IPFS_HOST: 'ipfs:5001'
64+
IPFS_HOST: 'http://ipfs:5001'
6565
KEEP_ALIVE: 0
6666
SUBGRAPH_FILE: 'subgraph-private.yaml'
6767
restart: on-failure:20

packages/lit-protocol-cipher/package.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,10 @@
5050
"@requestnetwork/request-client.js": "0.51.0",
5151
"@requestnetwork/types": "0.46.0",
5252
"@walletconnect/modal": "2.7.0",
53-
"ethers": "5.7.2",
54-
"node-localstorage": "3.0.5"
53+
"ethers": "5.7.2"
5554
},
5655
"devDependencies": {
5756
"@types/node": "18.11.9",
58-
"@types/node-localstorage": "1.3.3",
5957
"jest-junit": "16.0.0",
6058
"ts-node": "10.9.1",
6159
"typescript": "5.1.3"

packages/lit-protocol-cipher/src/lit-protocol-cipher-provider.ts

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
AuthSig,
99
LIT_NETWORKS_KEYS,
1010
AuthCallbackParams,
11+
StorageProvider,
1112
} from '@lit-protocol/types';
1213
import {
1314
LitAccessControlConditionResource,
@@ -16,7 +17,8 @@ import {
1617
} from '@lit-protocol/auth-helpers';
1718
import { Signer } from 'ethers';
1819
import { LIT_ABILITY } from '@lit-protocol/constants';
19-
import { disconnectWeb3, LitNodeClient, LitNodeClientNodeJs } from '@lit-protocol/lit-node-client';
20+
import { disconnectWeb3, LitNodeClient } from '@lit-protocol/lit-node-client';
21+
import type { LitNodeClientNodeJs } from '@lit-protocol/lit-node-client';
2022

2123
/**
2224
* @class LitProvider
@@ -53,7 +55,7 @@ export default class LitProvider implements CipherProviderTypes.ICipherProvider
5355
/**
5456
* @property {any} storageProvider - The storage provider for the Node.js Lit client.
5557
*/
56-
private storageProvider: any | null = null;
58+
private nodeJsStorageProvider: StorageProvider | undefined;
5759

5860
/**
5961
* @property {boolean} debug - A boolean indicating if debug mode is enabled.
@@ -75,11 +77,13 @@ export default class LitProvider implements CipherProviderTypes.ICipherProvider
7577
network: LIT_NETWORKS_KEYS,
7678
nodeConnectionConfig: NodeConnectionConfig,
7779
debug?: boolean,
80+
nodeJsStorageProvider?: StorageProvider,
7881
) {
7982
this.chain = chain;
8083
this.network = network;
8184
this.dataAccess = new HttpDataAccess({ nodeConnectionConfig });
8285
this.debug = debug || false;
86+
this.nodeJsStorageProvider = nodeJsStorageProvider;
8387
}
8488

8589
/**
@@ -98,27 +102,10 @@ export default class LitProvider implements CipherProviderTypes.ICipherProvider
98102
});
99103
await this.client.connect();
100104
} else {
101-
// Evaluate the code in a way that prevents static analysis
102-
const getNodeStorage = new Function(
103-
`
104-
return import('node-localstorage').then(m => m.LocalStorage);
105-
`,
106-
);
107-
108-
const LocalStorage = await getNodeStorage();
109-
const localStorage = new LocalStorage('./request-network-lit-protocol-cipher');
110-
111-
this.storageProvider = {
112-
getItem: (key: string) => localStorage.getItem(key),
113-
setItem: (key: string, value: string) => localStorage.setItem(key, value),
114-
removeItem: (key: string) => localStorage.removeItem(key),
115-
clear: () => localStorage.clear(),
116-
provider: localStorage,
117-
};
118-
105+
const { LitNodeClientNodeJs } = await import('@lit-protocol/lit-node-client');
119106
this.client = new LitNodeClientNodeJs({
120107
litNetwork: this.network,
121-
storageProvider: this.storageProvider,
108+
storageProvider: this.nodeJsStorageProvider,
122109
debug: this.debug,
123110
});
124111

@@ -139,8 +126,8 @@ export default class LitProvider implements CipherProviderTypes.ICipherProvider
139126
disconnectWeb3();
140127
}
141128
this.sessionSigs = null;
142-
if (this.storageProvider) {
143-
this.storageProvider.clear();
129+
if (this.nodeJsStorageProvider) {
130+
this.nodeJsStorageProvider.provider.clear();
144131
}
145132
}
146133

packages/request-client.js/src/api/request-network.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ export default class RequestNetwork {
4040
private contentData: ContentDataExtension;
4141
private currencyManager: CurrencyTypes.ICurrencyManager;
4242

43+
private cipherProvider?: CipherProviderTypes.ICipherProvider;
44+
4345
/**
4446
* @param dataAccess instance of data-access layer
4547
* @param signatureProvider module in charge of the signatures
@@ -72,6 +74,23 @@ export default class RequestNetwork {
7274
this.currencyManager,
7375
paymentOptions,
7476
);
77+
this.cipherProvider = cipherProvider;
78+
}
79+
80+
/**
81+
* Get the cipher provider
82+
* @returns the cipher provider
83+
*/
84+
public getCipherProvider(): CipherProviderTypes.ICipherProvider | undefined {
85+
return this.cipherProvider;
86+
}
87+
88+
/**
89+
* Set the cipher provider
90+
* @param cipherProvider the cipher provider
91+
*/
92+
public setCipherProvider(cipherProvider: CipherProviderTypes.ICipherProvider): void {
93+
this.cipherProvider = cipherProvider;
7594
}
7695

7796
/**

packages/request-node/test/getTransactionsByChannelId.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import request from 'supertest';
33
import { getRequestNode } from '../src/server';
44
import { RequestNode } from '../src/requestNode';
55

6-
jest.setTimeout(20000);
6+
jest.setTimeout(30000);
77
const time = Date.now();
88
const channelId = `01aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa${time}`;
99
const anotherChannelId = `01bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb${time}`;

packages/request-node/test/persistTransaction.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ const badlyFormattedTransactionData = { not: 'a transaction' };
1818
let requestNodeInstance: RequestNode;
1919
let server: any;
2020

21+
jest.setTimeout(30000);
22+
2123
const mockServer = setupServer();
2224

2325
/* eslint-disable no-magic-numbers */

packages/thegraph-data-access/src/queries.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,12 @@ query GetTransactionsByTopics($topics: [String!]!, $first: Int!, $skip: Int!) {
8181
${metaQueryBody}
8282
channels(
8383
where: { topics_contains: $topics }
84-
first: $first
85-
skip: $skip
8684
){
8785
transactions(
8886
orderBy: blockTimestamp,
8987
orderDirection: asc
88+
first: $first
89+
skip: $skip
9090
) {
9191
...TransactionsBody
9292
}

packages/thegraph-data-access/src/subgraph-client.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ export class SubgraphClient implements StorageTypes.IIndexer {
1919
private graphql: GraphQLClient;
2020
public readonly endpoint: string;
2121

22-
private readonly DEFAULT_PAGE_SIZE = 10;
23-
private readonly MAX_PAGE_SIZE = 100;
22+
private readonly DEFAULT_PAGE_SIZE = 100;
23+
private readonly MAX_PAGE_SIZE = 1000;
2424

2525
constructor(endpoint: string, options?: RequestConfig) {
2626
this.endpoint = endpoint;

yarn.lock

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5921,13 +5921,6 @@
59215921
"@types/node" "*"
59225922
form-data "^4.0.0"
59235923

5924-
"@types/node-localstorage@1.3.3":
5925-
version "1.3.3"
5926-
resolved "https://registry.yarnpkg.com/@types/node-localstorage/-/node-localstorage-1.3.3.tgz#b221f1bd6c61a2cc6b16c9934f2110779568f185"
5927-
integrity sha512-Wkn5g4eM5x10UNV9Xvl9K6y6m0zorocuJy4WjB5muUdyMZuPbZpSJG3hlhjGHe1HGxbOQO7RcB+jlHcNwkh+Jw==
5928-
dependencies:
5929-
"@types/node" "*"
5930-
59315924
"@types/node@*":
59325925
version "14.14.35"
59335926
resolved "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz"
@@ -18615,13 +18608,6 @@ node-int64@^0.4.0:
1861518608
resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz"
1861618609
integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=
1861718610

18618-
node-localstorage@3.0.5:
18619-
version "3.0.5"
18620-
resolved "https://registry.yarnpkg.com/node-localstorage/-/node-localstorage-3.0.5.tgz#4acda05bb7d3fffaa477f13c028d105866bb43ad"
18621-
integrity sha512-GCwtK33iwVXboZWYcqQHu3aRvXEBwmPkAMRBLeaX86ufhqslyUkLGsi4aW3INEfdQYpUB5M9qtYf3eHvAk2VBg==
18622-
dependencies:
18623-
write-file-atomic "^5.0.1"
18624-
1862518611
node-releases@^2.0.18:
1862618612
version "2.0.18"
1862718613
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f"
@@ -25866,7 +25852,7 @@ write-file-atomic@^4.0.2:
2586625852
imurmurhash "^0.1.4"
2586725853
signal-exit "^3.0.7"
2586825854

25869-
write-file-atomic@^5.0.0, write-file-atomic@^5.0.1:
25855+
write-file-atomic@^5.0.0:
2587025856
version "5.0.1"
2587125857
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7"
2587225858
integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==

0 commit comments

Comments
 (0)