@oraichain/customauth
Version:
CustomAuth login with torus to get user private key
80 lines (72 loc) • 2.61 kB
text/typescript
import { CustomOptions, get } from "@toruslabs/http-helpers";
export interface INetworkConfig {
rpc: string;
lcd: string;
chainId: string;
contract: string;
loadBalancerEndpoint?: string;
}
export enum Network {
DEV = "development",
TESTNET = "testnet", // deprecated
MAINNET = "mainnet",
STAGING = "staging",
PRODUCTION = "production",
}
export const NetworkConfig: Record<Network, INetworkConfig> = {
[Network.DEV]: {
rpc: "https://rpc.testnet.orai.io",
lcd: "https://lcd.testnet.orai.io",
chainId: "Oraichain-testnet",
contract: "orai182z6mxeta4dgaxu6qyuu5fywc3p7cdyz2udphd0nz5vnqkrdhzrscu8zan",
},
[Network.STAGING]: {
rpc: "https://rpc.testnet.orai.io",
lcd: "https://lcd.testnet.orai.io",
chainId: "Oraichain-testnet",
contract: "orai1j3ynfwl2gv7jujfhjqkwrgfwfsg2jth7fyv2g0ph9twc372ny7gqxhe5pj",
},
[Network.TESTNET]: {
rpc: "https://rpc.testnet.orai.io",
lcd: "https://lcd.testnet.orai.io",
chainId: "Oraichain-testnet",
contract: "orai1v5hwd3w4dx3628suz3lrhd9hr8ktdgjytu95kfsa0vxxmxj42rtsxv4sdn",
},
[Network.MAINNET]: {
rpc: "https://rpc.orai.io",
lcd: "https://lcd.orai.io",
chainId: "Oraichain",
contract: "orai1kvu7xclv2uvc5yl0mzgcux0cw40sjur2kksarva84376gq4qnnxqhk2hh5",
loadBalancerEndpoint: "https://social-login.orai.io/jrpc",
},
[Network.PRODUCTION]: {
rpc: "https://rpc.orai.io",
lcd: "https://lcd.orai.io",
chainId: "Oraichain",
contract: "orai1r7qwtfp7uc0jsemc8frnjgwc4gpspxnuhg7gjcv3slzul08gglds65tnrp",
loadBalancerEndpoint: "https://executor-multifactor.orai.io/jrpc",
},
};
export const metadataUrl = {
[Network.DEV]: "http://127.0.0.1:5051",
[Network.STAGING]: "https://metadata.social-login-staging.orai.io",
[Network.TESTNET]: "https://metadata.social-login-testnet.orai.io",
[Network.MAINNET]: "https://metadata-social-login.orai.io",
[Network.PRODUCTION]: "https://metadata-social-login.orai.io",
};
export interface Member {
address: string;
pub_key: string;
end_point: string;
index?: number;
}
const getQueryUrl = (config: INetworkConfig, params: string) => `${config.lcd}/cosmwasm/wasm/v1/contract/${config.contract}/smart/${params}`;
type QuerySmartRespones = {
data: any;
};
export const query = async (config: INetworkConfig, input: any, requestInit?: RequestInit, customOpts?: CustomOptions) => {
const param = Buffer.from(JSON.stringify(input)).toString("base64");
const queryUrl = getQueryUrl(config, param);
const resp = await get<QuerySmartRespones>(queryUrl, requestInit, customOpts);
return resp.data;
};