Skip to content

Commit 2d0cce4

Browse files
committed
wip sdk
1 parent a26cd3d commit 2d0cce4

28 files changed

+2072
-160
lines changed

packages/js-sdk/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lib/**

packages/js-sdk/jest.config.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
2+
module.exports = {
3+
preset: 'ts-jest/presets/js-with-ts',
4+
testEnvironment: 'node',
5+
modulePathIgnorePatterns: ['./dist'],
6+
};

packages/js-sdk/jest.config.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

packages/js-sdk/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"@dm3-org/dm3-lib-shared": "workspace:^",
1414
"@dm3-org/dm3-lib-storage": "workspace:^",
1515
"@dm3-org/dm3-lib-test-helper": "workspace:^",
16+
"@web3-name-sdk/core": "^0.2.0",
1617
"axios": "^0.27.2",
1718
"dotenv": "^16.0.1",
1819
"ethers": "5.7.2"
@@ -36,5 +37,6 @@
3637
"ts-jest": "^28.0.4",
3738
"typescript": "^4.4.2"
3839
},
40+
3941
"publish": true
4042
}

packages/js-sdk/src/Dm3Sdk.test.ts

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,31 @@
1-
import { Dm3 } from './Dm3Sdk';
1+
import { ethers } from 'ethers';
2+
import { Dm3Sdk, Dm3SdkConfig } from './Dm3Sdk';
23

34
describe('Dm3Sdk', () => {
4-
it('test', () => {
5-
const sdk = new Dm3();
6-
const test = sdk.test();
5+
let upController: ethers.Signer;
6+
7+
beforeEach(async () => {
8+
upController = ethers.Wallet.createRandom();
9+
});
10+
11+
it('test', async () => {
12+
const luksoProvider = () => ({
13+
send: () => Promise.resolve([]),
14+
getSigner: () => Promise.resolve(upController),
15+
});
16+
const mockConfig: Dm3SdkConfig = {
17+
mainnetProvider: {} as ethers.providers.JsonRpcProvider,
18+
lukso: luksoProvider as any,
19+
nonce: '1',
20+
defaultDeliveryService: 'test.io',
21+
addressEnsSubdomain: 'addr.test',
22+
userEnsSubdomain: 'user.test',
23+
resolverBackendUrl: 'resolver.io',
24+
backendUrl: 'backend.io',
25+
};
26+
27+
const sdk = new Dm3Sdk(mockConfig);
28+
29+
const dm3 = await sdk.universalProfileLogin();
730
});
831
});

packages/js-sdk/src/Dm3Sdk.ts

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,20 @@ export function getIdForAddress(address: string, addrEnsSubdomain: string) {
2020
return address + addrEnsSubdomain;
2121
}
2222

23+
export interface Dm3SdkConfig {
24+
mainnetProvider: ethers.providers.JsonRpcProvider;
25+
nonce: string;
26+
defaultDeliveryService: string;
27+
addressEnsSubdomain: string;
28+
userEnsSubdomain: string;
29+
resolverBackendUrl: string;
30+
backendUrl: string;
31+
lukso?: ethers.providers.ExternalProvider;
32+
}
33+
2334
export class Dm3Sdk {
2435
private readonly mainnetProvider: ethers.providers.JsonRpcProvider;
36+
private readonly lukso?: ethers.providers.ExternalProvider;
2537

2638
/**
2739
* DM3 ENVIRONMENT
@@ -49,32 +61,29 @@ export class Dm3Sdk {
4961
*/
5062
public conversations: Conversations;
5163

52-
constructor(
53-
mainnetProvider: ethers.providers.JsonRpcProvider,
54-
nonce: string,
55-
defaultDeliveryService: string,
56-
addressEnsSubdomain: string,
57-
userEnsSubdomain: string,
58-
resolverBackendUrl: string,
59-
backendUrl: string,
60-
) {
61-
this.mainnetProvider = mainnetProvider;
62-
this.nonce = nonce;
63-
this.defaultDeliveryService = defaultDeliveryService;
64-
this.addressEnsSubdomain = addressEnsSubdomain;
65-
this.userEnsSubdomain = userEnsSubdomain;
66-
this.resolverBackendUrl = resolverBackendUrl;
67-
this.backendUrl = backendUrl;
64+
constructor(config: Dm3SdkConfig) {
65+
this.mainnetProvider = config.mainnetProvider;
66+
this.nonce = config.nonce;
67+
this.defaultDeliveryService = config.defaultDeliveryService;
68+
this.addressEnsSubdomain = config.addressEnsSubdomain;
69+
this.userEnsSubdomain = config.userEnsSubdomain;
70+
this.resolverBackendUrl = config.resolverBackendUrl;
71+
this.backendUrl = config.backendUrl;
72+
this.lukso = config.lukso;
6873
}
6974

7075
public async universalProfileLogin() {
76+
if (!this.lukso) {
77+
throw new Error('Lukso provider not found');
78+
}
7179
const tld = new Tld(
7280
this.mainnetProvider,
7381
this.addressEnsSubdomain,
7482
this.userEnsSubdomain,
7583
this.resolverBackendUrl,
7684
);
7785
const lc = await LuksoConnector._instance(
86+
this.lukso,
7887
this.nonce,
7988
this.defaultDeliveryService,
8089
);

0 commit comments

Comments
 (0)