Skip to content

Commit

Permalink
Merge pull request #8 from YoubetDao/feat/params
Browse files Browse the repository at this point in the history
feat: params
  • Loading branch information
wfnuser authored Sep 3, 2024
2 parents 7c9b2e3 + 8c1152a commit 1ebfb76
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 46 deletions.
5 changes: 3 additions & 2 deletions examples/simple-react/src/lib/youbet-sdk/index.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import {
SDK,
NetworkType,
type GoalInfo,
formatResult,
type Task,
} from "youbet-sdk";

export const sdk = new SDK({ networkType: NetworkType.Testnet });
import { openCampusTestOptions } from "./options";

export const sdk = new SDK(openCampusTestOptions);

export { type GoalInfo, type Task, formatResult };
19 changes: 19 additions & 0 deletions examples/simple-react/src/lib/youbet-sdk/options.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { SdkCtorOptions } from "youbet-sdk";

export const lineaOptions: SdkCtorOptions = {
networkOptions: {
contractAddress: '0x902e2f3179aa959137fdc823754555b10c40f5b1',
rpcUrl: 'https://rpc.linea.build',
chainId: 59144,
},
chainName: 'Linea',
}

export const openCampusTestOptions: SdkCtorOptions = {
networkOptions: {
rpcUrl: 'https://open-campus-codex-sepolia.drpc.org',
chainId: 656476,
contractAddress: '0xD5C57B49b58744202EB1e67F4b7e6cB1aD06844f',
},
chainName: 'OpenCampus-Testnet',
};
3 changes: 2 additions & 1 deletion packages/youbet-sdk/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
"module": "./dist/esm/index.js",
"exports": {
"import": "./dist/esm/main.js",
"require": "./dist/cjs/main.js"
"require": "./dist/cjs/main.js",
"types": "./dist/esm/main.d.ts"
},
"types": "./dist/esm/main.d.ts",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion packages/youbet-sdk/src/modules/contractModule.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export class ContractModule {
const hexChainId = '0x' + Number(this.sdk.sdkOptions.networkOptions.chainId).toString(16);
await provider.send('wallet_addEthereumChain', [{
chainId: hexChainId,
chainName: 'OpenCampus-Testnet',
chainName: this.sdk.sdkOptions.chainName || 'Unknown Chain',
rpcUrls: [this.sdk.sdkOptions.networkOptions.rpcUrl],
}]);
const signer = await provider.getSigner()
Expand Down
50 changes: 8 additions & 42 deletions packages/youbet-sdk/src/sdk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,7 @@ import ABI from './lib/abi/bet.json';
import { ClientModule } from './modules/clientModule';
import { ContractModule } from './modules/contractModule';
// import { EventModule } from './modules/eventModule';

export enum NetworkType {
Mainnet,
Testnet,
}

export type SdkCtorOptions = {
privateKey?: string;
networkType?: NetworkType;
}

export type SdkOptions = {
privateKey?: string;
networkOptions: NetworkOptions;
}

export type NetworkOptions = {
contractAddress: string;
rpcUrl: string;
chainId: number;
abi: any;
}
import { SdkCtorOptions, SdkOptions } from './types';

export class SDK {
private _sdkOptions: SdkOptions;
Expand All @@ -33,31 +12,18 @@ export class SDK {
// private _event: EventModule;

constructor(options?: SdkCtorOptions) {
const { networkType } = { ...options };

const mainnetOptions = {
contractAddress: '0x902e2f3179aa959137fdc823754555b10c40f5b1',
rpcUrl: 'https://rpc.linea.build',
chainId: 59144,
abi: ABI
}

const testnetOptions = {
contractAddress: '0xD5C57B49b58744202EB1e67F4b7e6cB1aD06844f',
rpcUrl: 'https://open-campus-codex-sepolia.drpc.org',
chainId: 656476,
abi: ABI
}

let networkOptions = mainnetOptions
const { networkOptions } = { ...options };

if (networkType === NetworkType.Testnet) {
networkOptions = testnetOptions
if (!networkOptions) {
throw new Error('Network options are required');
}

this._sdkOptions = {
privateKey: options?.privateKey,
networkOptions
networkOptions: {
...networkOptions,
abi: ABI
}
}

this._client = new ClientModule(this);
Expand Down
19 changes: 19 additions & 0 deletions packages/youbet-sdk/src/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,22 @@ export interface Task {
sub: string;
completed: boolean;
}

export type SdkCtorOptions = {
privateKey?: string;
networkOptions: Omit<NetworkOptions, 'abi'>;
chainName?: string;
}

export type SdkOptions = {
privateKey?: string;
networkOptions: NetworkOptions;
chainName?: string;
}

export type NetworkOptions = {
contractAddress: string;
rpcUrl: string;
chainId: number;
abi: any;
}

0 comments on commit 1ebfb76

Please sign in to comment.