@0xpass/passport
Advanced tools
Comparing version 2.0.6 to 2.1.0
# @0xpass/passport | ||
## 2.1.0 | ||
### Minor Changes | ||
- cb597d8: Introduce Network enum, and ENCLAVE_PUBLIC_KEYS mapping | ||
## 2.0.6 | ||
@@ -4,0 +10,0 @@ |
@@ -1,3 +0,5 @@ | ||
export declare const LOCAL_RSA_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsl8sLC46QMKa400EnVfz+bEU2JJHXsXcwIGMItRJ3ZM3XZSzAmELJPh3lAlXyhktq2Cl0w0PuaH//fCQm5/3Rm48ytcdBmvwh3zpCnUylS3eJKF15L2xMb8eQf6nnNMnucnrhvDfdCL5ZZlkn2FDB4/UJpgPfrHivK69gaeT725g89gWvKmEG7+RGoXLPEXU4UyHxYyMMCDwxH2fE+jN53FG8JlwuLu1cbTYxgYIxf4Um+CvYp7irlGfvxP+Ws9lkBJ+MtCishod/7ytJD9jpbYf6BUAHSAeWeNBbkgSdmPSia4Mi2wPXeqmzmovjfJfWSiaCW+wFuMyCGVx/g/znQIDAQAB"; | ||
export declare const TESTNET_RSA_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvQOa1gkatuN6KjaS4KEWsVZAN9i4Cf0j9jlmBW5RwCJ3Bxo32McP7axt4Ev6sMWM24lpCgXgu68S9KBYRcrcEB6dRcaupFGd+ER7M518fiJ0VtCZ+XRnmwn9fqEvotp9DPZOysJkUQ60kugCRKwNvfZzAFcDiubwiqsUY2sCm943a/u9Hym51SEetG+ZFPJZFOBqwRSGkOgGZ+9Ac7ITE+bWLCZk9DlzRu+BIoDOFzXZIn+/0a0X8BnLtRY4g50aew4J+4OllQagBbhYnPMvYExYIEUx6bdjQicw0Js6s2pHr+SFAX23kQtbVOVxb5+KEGp1d+6Q4Gx7FBoyWI5qPQIDAQAB"; | ||
import { Network } from "./types"; | ||
export declare const ENCLAVE_PUBLIC_KEYS: { | ||
[key in Network]: string; | ||
}; | ||
export declare const generateKeyPair: () => Promise<{ | ||
@@ -4,0 +6,0 @@ publicKey: string; |
@@ -1,11 +0,12 @@ | ||
import { AuthenticationParams, AuthenticationResponse, DelegatedRegisterAccountParams, DelegatedRegisterAccountResponse, LambaCallParams, LambdaNewParams, Method, NewScopeParams, NewScopeResponse, RegistrationParams, RegistrationResponse, RpcHeaders, RpcMethodParams, SignMessageParams, SignMessageResponse, SignTransactionParams, SignTransactionResponse, UpdateScopeParams, UpdateScopeResponse } from "./types"; | ||
import { AuthenticationParams, AuthenticationResponse, DelegatedRegisterAccountParams, DelegatedRegisterAccountResponse, LambaCallParams, LambdaNewParams, Method, NewScopeParams, NewScopeResponse, RegistrationParams, RegistrationResponse, RpcHeaders, RpcMethodParams, SignMessageParams, SignMessageResponse, SignTransactionParams, SignTransactionResponse, UpdateScopeParams, UpdateScopeResponse, Network } from "./types"; | ||
import { LambdaExecutable, NewLambda } from "./types/lambda"; | ||
import { SignerWithOptionalCreator } from "./types/credential"; | ||
import { LOCAL_RSA_PUBLIC_KEY, TESTNET_RSA_PUBLIC_KEY } from "./crypto"; | ||
import { ENCLAVE_PUBLIC_KEYS } from "./crypto"; | ||
import { getNetworkFromUrl } from "./utils"; | ||
export type PassportConstructorParams = { | ||
scope_id?: string; | ||
scopeId?: string; | ||
signer: SignerWithOptionalCreator; | ||
endpoint?: string; | ||
enclave_public_key?: string; | ||
allow_sessions?: boolean; | ||
network?: Network; | ||
enclavePublicKey?: string; | ||
allowSessions?: boolean; | ||
}; | ||
@@ -17,9 +18,9 @@ /** | ||
/** | ||
* The endpoint URL for a Passport Node. | ||
* The network for a Passport Node. | ||
*/ | ||
endpoint: string; | ||
network: Network; | ||
private scopeId; | ||
private userData; | ||
private signer; | ||
private enclavePublicKey; | ||
enclavePublicKey: ArrayBufferLike; | ||
aesKey: ArrayBuffer | null; | ||
@@ -41,3 +42,3 @@ encryptedAesKey: string | null; | ||
*/ | ||
constructor({ scope_id, signer, endpoint, enclave_public_key, allow_sessions, }: PassportConstructorParams); | ||
constructor({ scopeId, signer, network, enclavePublicKey, allowSessions, }: PassportConstructorParams); | ||
setupEncryption(): Promise<void>; | ||
@@ -94,3 +95,3 @@ private isCredentialCreator; | ||
export type { NewLambda, LambdaExecutable }; | ||
export { TESTNET_RSA_PUBLIC_KEY, LOCAL_RSA_PUBLIC_KEY }; | ||
export { Network, ENCLAVE_PUBLIC_KEYS, getNetworkFromUrl }; | ||
//# sourceMappingURL=index.d.ts.map |
@@ -5,2 +5,8 @@ import axios from 'axios'; | ||
var Network; | ||
(function (Network) { | ||
Network["LOCAL"] = "http://localhost:9545"; | ||
Network["TESTNET"] = "https://tiramisu.0xpass.io"; | ||
Network["MAINNET"] = "TBD"; | ||
})(Network || (Network = {})); | ||
const AuthenticatedMethod = [ | ||
@@ -25,4 +31,7 @@ "eth_requestAccounts", | ||
} | ||
const LOCAL_RSA_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsl8sLC46QMKa400EnVfz+bEU2JJHXsXcwIGMItRJ3ZM3XZSzAmELJPh3lAlXyhktq2Cl0w0PuaH//fCQm5/3Rm48ytcdBmvwh3zpCnUylS3eJKF15L2xMb8eQf6nnNMnucnrhvDfdCL5ZZlkn2FDB4/UJpgPfrHivK69gaeT725g89gWvKmEG7+RGoXLPEXU4UyHxYyMMCDwxH2fE+jN53FG8JlwuLu1cbTYxgYIxf4Um+CvYp7irlGfvxP+Ws9lkBJ+MtCishod/7ytJD9jpbYf6BUAHSAeWeNBbkgSdmPSia4Mi2wPXeqmzmovjfJfWSiaCW+wFuMyCGVx/g/znQIDAQAB"; | ||
const TESTNET_RSA_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvQOa1gkatuN6KjaS4KEWsVZAN9i4Cf0j9jlmBW5RwCJ3Bxo32McP7axt4Ev6sMWM24lpCgXgu68S9KBYRcrcEB6dRcaupFGd+ER7M518fiJ0VtCZ+XRnmwn9fqEvotp9DPZOysJkUQ60kugCRKwNvfZzAFcDiubwiqsUY2sCm943a/u9Hym51SEetG+ZFPJZFOBqwRSGkOgGZ+9Ac7ITE+bWLCZk9DlzRu+BIoDOFzXZIn+/0a0X8BnLtRY4g50aew4J+4OllQagBbhYnPMvYExYIEUx6bdjQicw0Js6s2pHr+SFAX23kQtbVOVxb5+KEGp1d+6Q4Gx7FBoyWI5qPQIDAQAB"; | ||
const ENCLAVE_PUBLIC_KEYS = { | ||
[Network.TESTNET]: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvQOa1gkatuN6KjaS4KEWsVZAN9i4Cf0j9jlmBW5RwCJ3Bxo32McP7axt4Ev6sMWM24lpCgXgu68S9KBYRcrcEB6dRcaupFGd+ER7M518fiJ0VtCZ+XRnmwn9fqEvotp9DPZOysJkUQ60kugCRKwNvfZzAFcDiubwiqsUY2sCm943a/u9Hym51SEetG+ZFPJZFOBqwRSGkOgGZ+9Ac7ITE+bWLCZk9DlzRu+BIoDOFzXZIn+/0a0X8BnLtRY4g50aew4J+4OllQagBbhYnPMvYExYIEUx6bdjQicw0Js6s2pHr+SFAX23kQtbVOVxb5+KEGp1d+6Q4Gx7FBoyWI5qPQIDAQAB", | ||
[Network.LOCAL]: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsl8sLC46QMKa400EnVfz+bEU2JJHXsXcwIGMItRJ3ZM3XZSzAmELJPh3lAlXyhktq2Cl0w0PuaH//fCQm5/3Rm48ytcdBmvwh3zpCnUylS3eJKF15L2xMb8eQf6nnNMnucnrhvDfdCL5ZZlkn2FDB4/UJpgPfrHivK69gaeT725g89gWvKmEG7+RGoXLPEXU4UyHxYyMMCDwxH2fE+jN53FG8JlwuLu1cbTYxgYIxf4Um+CvYp7irlGfvxP+Ws9lkBJ+MtCishod/7ytJD9jpbYf6BUAHSAeWeNBbkgSdmPSia4Mi2wPXeqmzmovjfJfWSiaCW+wFuMyCGVx/g/znQIDAQAB", | ||
[Network.MAINNET]: "mainnet_public_key_here", | ||
}; | ||
const generateAesKey = async () => { | ||
@@ -163,2 +172,14 @@ const cryptoKey = await cryptoObj.subtle.generateKey({ | ||
}; | ||
function getNetworkFromUrl(rpcUrl) { | ||
const networkMap = { | ||
"https://tiramisu.0xpass.io": Network.TESTNET, | ||
"http://localhost:9545": Network.LOCAL, | ||
"https://TBD.0xpass.io": Network.MAINNET, | ||
}; | ||
const network = networkMap[rpcUrl]; | ||
if (!network) { | ||
throw new Error(`Unsupported network RPC URL: ${rpcUrl}`); | ||
} | ||
return network; | ||
} | ||
@@ -180,3 +201,3 @@ /** | ||
*/ | ||
constructor({ scope_id, signer, endpoint = "https://tiramisu.0xpass.io", enclave_public_key = TESTNET_RSA_PUBLIC_KEY, allow_sessions = true, }) { | ||
constructor({ scopeId, signer, network = Network.TESTNET, enclavePublicKey = ENCLAVE_PUBLIC_KEYS[network], allowSessions = true, }) { | ||
this.userData = null; | ||
@@ -263,2 +284,5 @@ this.aesKey = null; | ||
}); | ||
if (initAuthResponse.error) { | ||
throw new Error(`${initAuthResponse.error.message},${initAuthResponse.error.data}`); | ||
} | ||
const request_challenge_str = await aesDecrypt(initAuthResponse.result.encrypted_request_challenge, this.aesKey); | ||
@@ -274,2 +298,5 @@ const request_challenge_json = JSON.parse(request_challenge_str); | ||
}); | ||
if (authResult.error) { | ||
throw new Error(`${authResult.error.message},${authResult.error.data}`); | ||
} | ||
this.authenticatedHeaders = { | ||
@@ -298,7 +325,8 @@ "X-Encrypted-Key": this.encryptedAesKey, | ||
}; | ||
this.scopeId = scope_id; | ||
this.endpoint = endpoint; | ||
this.scopeId = scopeId; | ||
this.network = network; | ||
this.signer = signer; | ||
this.enclavePublicKey = pemToBuffer(enclave_public_key); | ||
this.allowSession = allow_sessions; | ||
this.enclavePublicKey = | ||
pemToBuffer(enclavePublicKey) || pemToBuffer(ENCLAVE_PUBLIC_KEYS[this.network]); | ||
this.allowSession = allowSessions; | ||
} | ||
@@ -358,3 +386,3 @@ async setupEncryption() { | ||
try { | ||
const res = await axios.post(this.endpoint, payload, { headers }); | ||
const res = await axios.post(this.network, payload, { headers }); | ||
const { data } = res; | ||
@@ -401,3 +429,3 @@ return data; | ||
export { LOCAL_RSA_PUBLIC_KEY, Passport, TESTNET_RSA_PUBLIC_KEY }; | ||
export { ENCLAVE_PUBLIC_KEYS, Network, Passport, getNetworkFromUrl }; | ||
//# sourceMappingURL=index.js.map |
import { LambdaExecutable, NewLambda } from "./lambda"; | ||
export declare enum Network { | ||
LOCAL = "http://localhost:9545", | ||
TESTNET = "https://tiramisu.0xpass.io", | ||
MAINNET = "TBD" | ||
} | ||
export type Method = "eth_requestAccounts" | "personal_sign" | "eth_signTransaction" | "eth_signTypedData_v4" | "verify" | "createScope" | "updateScope" | "delegatedRegistration" | "initiateRegistration" | "completeRegistration" | "initiateAuthentication" | "completeAuthentication" | "createLambda" | "executeLambda" | "listLambda"; | ||
@@ -3,0 +8,0 @@ export declare const AuthenticatedMethod: Array<Method>; |
@@ -0,4 +1,6 @@ | ||
import { Network } from "./types"; | ||
export declare const uncompressPublicKey: (compressedPubKeyHex: any) => string; | ||
export declare const publicKeyToEthereumAddress: (compressedPubKeyHex: any) => string; | ||
export declare const parseJwt: (token: any) => any; | ||
export declare function getNetworkFromUrl(rpcUrl: string): Network; | ||
//# sourceMappingURL=utils.d.ts.map |
{ | ||
"name": "@0xpass/passport", | ||
"version": "2.0.6", | ||
"version": "2.1.0", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
@@ -0,1 +1,3 @@ | ||
import { Network } from "./types"; | ||
let cryptoObj; | ||
@@ -12,8 +14,10 @@ | ||
export const LOCAL_RSA_PUBLIC_KEY = | ||
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsl8sLC46QMKa400EnVfz+bEU2JJHXsXcwIGMItRJ3ZM3XZSzAmELJPh3lAlXyhktq2Cl0w0PuaH//fCQm5/3Rm48ytcdBmvwh3zpCnUylS3eJKF15L2xMb8eQf6nnNMnucnrhvDfdCL5ZZlkn2FDB4/UJpgPfrHivK69gaeT725g89gWvKmEG7+RGoXLPEXU4UyHxYyMMCDwxH2fE+jN53FG8JlwuLu1cbTYxgYIxf4Um+CvYp7irlGfvxP+Ws9lkBJ+MtCishod/7ytJD9jpbYf6BUAHSAeWeNBbkgSdmPSia4Mi2wPXeqmzmovjfJfWSiaCW+wFuMyCGVx/g/znQIDAQAB"; | ||
export const ENCLAVE_PUBLIC_KEYS: { [key in Network]: string } = { | ||
[Network.TESTNET]: | ||
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvQOa1gkatuN6KjaS4KEWsVZAN9i4Cf0j9jlmBW5RwCJ3Bxo32McP7axt4Ev6sMWM24lpCgXgu68S9KBYRcrcEB6dRcaupFGd+ER7M518fiJ0VtCZ+XRnmwn9fqEvotp9DPZOysJkUQ60kugCRKwNvfZzAFcDiubwiqsUY2sCm943a/u9Hym51SEetG+ZFPJZFOBqwRSGkOgGZ+9Ac7ITE+bWLCZk9DlzRu+BIoDOFzXZIn+/0a0X8BnLtRY4g50aew4J+4OllQagBbhYnPMvYExYIEUx6bdjQicw0Js6s2pHr+SFAX23kQtbVOVxb5+KEGp1d+6Q4Gx7FBoyWI5qPQIDAQAB", | ||
[Network.LOCAL]: | ||
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsl8sLC46QMKa400EnVfz+bEU2JJHXsXcwIGMItRJ3ZM3XZSzAmELJPh3lAlXyhktq2Cl0w0PuaH//fCQm5/3Rm48ytcdBmvwh3zpCnUylS3eJKF15L2xMb8eQf6nnNMnucnrhvDfdCL5ZZlkn2FDB4/UJpgPfrHivK69gaeT725g89gWvKmEG7+RGoXLPEXU4UyHxYyMMCDwxH2fE+jN53FG8JlwuLu1cbTYxgYIxf4Um+CvYp7irlGfvxP+Ws9lkBJ+MtCishod/7ytJD9jpbYf6BUAHSAeWeNBbkgSdmPSia4Mi2wPXeqmzmovjfJfWSiaCW+wFuMyCGVx/g/znQIDAQAB", | ||
[Network.MAINNET]: "mainnet_public_key_here", | ||
}; | ||
export const TESTNET_RSA_PUBLIC_KEY = | ||
"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvQOa1gkatuN6KjaS4KEWsVZAN9i4Cf0j9jlmBW5RwCJ3Bxo32McP7axt4Ev6sMWM24lpCgXgu68S9KBYRcrcEB6dRcaupFGd+ER7M518fiJ0VtCZ+XRnmwn9fqEvotp9DPZOysJkUQ60kugCRKwNvfZzAFcDiubwiqsUY2sCm943a/u9Hym51SEetG+ZFPJZFOBqwRSGkOgGZ+9Ac7ITE+bWLCZk9DlzRu+BIoDOFzXZIn+/0a0X8BnLtRY4g50aew4J+4OllQagBbhYnPMvYExYIEUx6bdjQicw0Js6s2pHr+SFAX23kQtbVOVxb5+KEGp1d+6Q4Gx7FBoyWI5qPQIDAQAB"; | ||
export const generateKeyPair = async () => { | ||
@@ -20,0 +24,0 @@ const keyPair = await cryptoObj.subtle.generateKey( |
@@ -26,2 +26,3 @@ import axios from "axios"; | ||
UpdateScopeResponse, | ||
Network, | ||
} from "./types"; | ||
@@ -35,15 +36,14 @@ import { LambdaExecutable, NewLambda } from "./types/lambda"; | ||
generateAesKey, | ||
LOCAL_RSA_PUBLIC_KEY, | ||
ENCLAVE_PUBLIC_KEYS, | ||
pemToBuffer, | ||
rsaEncrypt, | ||
TESTNET_RSA_PUBLIC_KEY, | ||
} from "./crypto"; | ||
import { parseJwt, publicKeyToEthereumAddress } from "./utils"; | ||
import { getNetworkFromUrl, parseJwt, publicKeyToEthereumAddress } from "./utils"; | ||
export type PassportConstructorParams = { | ||
scope_id?: string; | ||
scopeId?: string; | ||
signer: SignerWithOptionalCreator; | ||
endpoint?: string; | ||
enclave_public_key?: string; | ||
allow_sessions?: boolean; | ||
network?: Network; | ||
enclavePublicKey?: string; | ||
allowSessions?: boolean; | ||
}; | ||
@@ -56,5 +56,5 @@ | ||
/** | ||
* The endpoint URL for a Passport Node. | ||
* The network for a Passport Node. | ||
*/ | ||
endpoint: string; | ||
network: Network; | ||
@@ -67,3 +67,3 @@ private scopeId: string; | ||
private enclavePublicKey: ArrayBufferLike; | ||
public enclavePublicKey: ArrayBufferLike; | ||
@@ -92,13 +92,15 @@ public aesKey: ArrayBuffer | null = null; | ||
constructor({ | ||
scope_id, | ||
scopeId, | ||
signer, | ||
endpoint = "https://tiramisu.0xpass.io", | ||
enclave_public_key = TESTNET_RSA_PUBLIC_KEY, | ||
allow_sessions = true, | ||
network = Network.TESTNET, | ||
enclavePublicKey = ENCLAVE_PUBLIC_KEYS[network], | ||
allowSessions = true, | ||
}: PassportConstructorParams) { | ||
this.scopeId = scope_id; | ||
this.endpoint = endpoint; | ||
this.scopeId = scopeId; | ||
this.network = network; | ||
this.signer = signer; | ||
this.enclavePublicKey = pemToBuffer(enclave_public_key); | ||
this.allowSession = allow_sessions; | ||
this.enclavePublicKey = | ||
pemToBuffer(enclavePublicKey) || pemToBuffer(ENCLAVE_PUBLIC_KEYS[this.network]); | ||
this.allowSession = allowSessions; | ||
} | ||
@@ -170,3 +172,3 @@ | ||
try { | ||
const res = await axios.post(this.endpoint, payload, { headers }); | ||
const res = await axios.post(this.network, payload, { headers }); | ||
const { data } = res; | ||
@@ -331,2 +333,6 @@ return data; | ||
if (initAuthResponse.error) { | ||
throw new Error(`${initAuthResponse.error.message},${initAuthResponse.error.data}`); | ||
} | ||
const request_challenge_str = await aesDecrypt( | ||
@@ -348,2 +354,7 @@ initAuthResponse.result.encrypted_request_challenge, | ||
}); | ||
if (authResult.error) { | ||
throw new Error(`${authResult.error.message},${authResult.error.data}`); | ||
} | ||
this.authenticatedHeaders = { | ||
@@ -355,4 +366,6 @@ "X-Encrypted-Key": this.encryptedAesKey, | ||
} as AuthenticatedHeaders; | ||
const jwt = await aesDecrypt(authResult.result.encrypted_jwt, this.aesKey); | ||
this.parsedJwt = parseJwt(jwt); | ||
this.parsedJwt.address = publicKeyToEthereumAddress(this.parsedJwt.public_key); | ||
@@ -381,2 +394,2 @@ | ||
export type { NewLambda, LambdaExecutable }; | ||
export { TESTNET_RSA_PUBLIC_KEY, LOCAL_RSA_PUBLIC_KEY }; | ||
export { Network, ENCLAVE_PUBLIC_KEYS, getNetworkFromUrl }; |
@@ -1,2 +0,2 @@ | ||
import { Passport, PassportConstructorParams} from "../index"; | ||
import { Passport, PassportConstructorParams, Network, ENCLAVE_PUBLIC_KEYS } from "../index"; | ||
import { CredentialKind, CredentialTransport } from "@0xpass/models"; | ||
@@ -12,6 +12,6 @@ import { | ||
import axios from "axios"; | ||
import { LOCAL_RSA_PUBLIC_KEY } from "../crypto"; | ||
import { TextEncoder, TextDecoder } from "util"; | ||
import { AES_KEY_ARRAY, ENCRYPTED_AES_KEY } from "./environment"; | ||
import {LambaCallParams, LambdaNewParams} from "../types"; | ||
import { LambaCallParams, LambdaNewParams } from "../types"; | ||
import { pemToBuffer } from "../crypto"; | ||
global.TextEncoder = TextEncoder; | ||
@@ -38,5 +38,4 @@ global.TextDecoder = TextDecoder; | ||
getHeaderName(): string { | ||
return "X-Encrypted-Key-Signature" | ||
return "X-Encrypted-Key-Signature"; | ||
} | ||
@@ -74,19 +73,43 @@ | ||
const passport = new Passport({ | ||
scope_id: "123", | ||
scopeId: "123", | ||
signer: null, | ||
endpoint: "https://tiramisu.0xpass.io", | ||
network: Network.TESTNET, | ||
}); | ||
expect(passport.endpoint).toBe("https://tiramisu.0xpass.io"); | ||
expect(passport.network).toBe("https://tiramisu.0xpass.io"); | ||
}); | ||
it("should create a new Passport instance with custom endpoint", () => { | ||
it("should correctly fetch the correct network", () => { | ||
const passport = new Passport({ | ||
scope_id: "123", | ||
scopeId: "123", | ||
signer: null, | ||
endpoint: "https://lol.0xpass.io", | ||
network: Network.TESTNET, | ||
}); | ||
expect(passport.endpoint).toBe("https://lol.0xpass.io"); | ||
const passport2 = new Passport({ | ||
scopeId: "123", | ||
signer: null, | ||
network: Network.LOCAL, | ||
}); | ||
expect(passport.network).toBe("https://tiramisu.0xpass.io"); | ||
expect(passport2.network).toBe("http://localhost:9545"); | ||
}); | ||
it("should have the correct enclave public key", () => { | ||
const passport = new Passport({ | ||
scopeId: "123", | ||
signer: null, | ||
network: Network.TESTNET, | ||
}); | ||
const passport2 = new Passport({ | ||
scopeId: "123", | ||
signer: null, | ||
network: Network.LOCAL, | ||
}); | ||
expect(passport.enclavePublicKey).toEqual(pemToBuffer(ENCLAVE_PUBLIC_KEYS[Network.TESTNET])); | ||
expect(passport2.enclavePublicKey).toEqual(pemToBuffer(ENCLAVE_PUBLIC_KEYS[Network.LOCAL])); | ||
}); | ||
}); | ||
@@ -100,5 +123,5 @@ | ||
passport = new TestPassport({ | ||
scope_id: "123", | ||
scopeId: "123", | ||
signer: mockCreator, | ||
enclave_public_key: LOCAL_RSA_PUBLIC_KEY, | ||
network: Network.LOCAL, | ||
}); | ||
@@ -149,5 +172,5 @@ }); | ||
passport = new TestPassport({ | ||
scope_id: "123", | ||
scopeId: "123", | ||
signer: mockCreator, | ||
enclave_public_key: LOCAL_RSA_PUBLIC_KEY, | ||
network: Network.LOCAL, | ||
}); | ||
@@ -183,4 +206,2 @@ }); | ||
const response = await passport.authenticate({ | ||
@@ -192,3 +213,5 @@ username: "test", | ||
expect(response[0]["X-Encrypted-Key"]).toEqual(ENCRYPTED_AES_KEY); | ||
expect(response[0]["X-Encrypted-Session"]).toEqual( mockFinishAuthResult.data.result.encrypted_jwt ); | ||
expect(response[0]["X-Encrypted-Session"]).toEqual( | ||
mockFinishAuthResult.data.result.encrypted_jwt | ||
); | ||
expect(response[1]).toEqual("0x77bf2ff2ecb1d5dbae5fce82136b66a76f8122b5"); | ||
@@ -204,5 +227,5 @@ }); | ||
passport = new TestPassport({ | ||
scope_id: "123", | ||
scopeId: "123", | ||
signer: mockCreator, | ||
enclave_public_key: LOCAL_RSA_PUBLIC_KEY, | ||
network: Network.LOCAL, | ||
}); | ||
@@ -262,5 +285,5 @@ }); | ||
passport = new TestPassport({ | ||
scope_id: "123", | ||
scopeId: "123", | ||
signer: mockCreator, | ||
enclave_public_key: LOCAL_RSA_PUBLIC_KEY, | ||
network: Network.LOCAL, | ||
}); | ||
@@ -314,4 +337,3 @@ }); | ||
describe('Passport.*lambda', () => { | ||
describe("Passport.*lambda", () => { | ||
let passport: TestPassport; | ||
@@ -322,9 +344,8 @@ | ||
passport = new TestPassport({ | ||
scope_id: "123", | ||
scopeId: "123", | ||
signer: mockCreator, | ||
enclave_public_key: LOCAL_RSA_PUBLIC_KEY, | ||
network: Network.LOCAL, | ||
}); | ||
}); | ||
afterEach(() => { | ||
@@ -334,5 +355,4 @@ jest.resetAllMocks(); | ||
describe('createLambda', () => { | ||
it('should successfully create a new lambda', async () => { | ||
describe("createLambda", () => { | ||
it("should successfully create a new lambda", async () => { | ||
const mockInitAuthResponse = { | ||
@@ -343,3 +363,3 @@ data: { | ||
encrypted_request_challenge: | ||
"KFLVPxU3PrNdM8+GYX8mqAm/zF2IDgPOfUiHXlatY6BrwnAVtk5qKchYfcg0bk+Sye3crDsa2Lm0JDrYVUeOuyAUtQYTS+HXyDoMMEoT4suSaNumwwjL1n52xqwXQhjOV8gnHHhG9P8LD6FXeemKwdUlLz5gk+xqHEn1EA2BbnfC0vstwxcla2KAF+Tqw33fZBiZAgmlz0NOTRaQtvIrAkwayGuWiZ+gBl5L33mEBQVfOUW/DjLNfki+R/j00u/7YzTyS9oHIE4nwsOVxt7P/yCVzSKuDo8j/i6hWsbk94IvHwQwom+kn3OOS0ImitIKhU0qJUAazISBlRws2174ifDLlmM=", | ||
"KFLVPxU3PrNdM8+GYX8mqAm/zF2IDgPOfUiHXlatY6BrwnAVtk5qKchYfcg0bk+Sye3crDsa2Lm0JDrYVUeOuyAUtQYTS+HXyDoMMEoT4suSaNumwwjL1n52xqwXQhjOV8gnHHhG9P8LD6FXeemKwdUlLz5gk+xqHEn1EA2BbnfC0vstwxcla2KAF+Tqw33fZBiZAgmlz0NOTRaQtvIrAkwayGuWiZ+gBl5L33mEBQVfOUW/DjLNfki+R/j00u/7YzTyS9oHIE4nwsOVxt7P/yCVzSKuDo8j/i6hWsbk94IvHwQwom+kn3OOS0ImitIKhU0qJUAazISBlRws2174ifDLlmM=", | ||
}, | ||
@@ -353,3 +373,3 @@ }, | ||
encrypted_jwt: | ||
"iZQhXdlicd1qVm18Z8f1+F3sJ50RV9BZDLLzjlBe3h7peRHntoUL1WV2wiyPG7I+PGSDsjhpGd+YQGTHxQUoM+YlGwVB6dLlo2MOf1XZWm9tskEDG7v7HU8fj3b4RS1hP3h7L0KrecLbJ4byK7niElDAhi/LLwEcHJ2rJNiKhdsErAWHKNr7AcbdOOdDqPPAbFfMvx9cF7HhvRIS+KQGNpqEe8QrWX/qRgesCYqgOMESrNC0umNzeC8b1Ca9BfD2tu055+2P2week7Mr4sIGPwFaJxnUIkZ7m49iP2UxfgSy/hD6uLRiiMSvrdZHapz/bvkIjAYpDwZmRbEYGv2zYVxx+soTWi/hPhiJlT65l6U758pIfiTKsIIh3RwoFcYOtxTiQUmED2SwGe2EaFBNk3yahp68vf0En+HHAIrH7Nhtkl0DMHVclc4U968cbOJOqpG8Ye6se7q01MvUNAsoXxqcORhB1jIIYtEWHggN/dN7poaJ5jZrgr89dbRR/dR2sm3ybKWTAweuhtNs/QSOIr9gyaUTx2MSo8briK9EkvOHsGwVmCI6TcJrFUqroTTHxuglqh3Iaks063Q7Wvh29yU0bGUEXFNjMRQQuMk52nSF/OpLH6CGui03hOAAdI6fx46xbWc/lfnXRAIT+UZ1MltggpDSU5j72Hg2Xd0taNLMTRvOkaD/7bae/7NZ46d+ZEVhPzw/KoZmUyOsYoK7altGx8uifYY2Rtw/iRavn9uOZyv7yviMyeAN+ZjJvdPAyA==", | ||
"iZQhXdlicd1qVm18Z8f1+F3sJ50RV9BZDLLzjlBe3h7peRHntoUL1WV2wiyPG7I+PGSDsjhpGd+YQGTHxQUoM+YlGwVB6dLlo2MOf1XZWm9tskEDG7v7HU8fj3b4RS1hP3h7L0KrecLbJ4byK7niElDAhi/LLwEcHJ2rJNiKhdsErAWHKNr7AcbdOOdDqPPAbFfMvx9cF7HhvRIS+KQGNpqEe8QrWX/qRgesCYqgOMESrNC0umNzeC8b1Ca9BfD2tu055+2P2week7Mr4sIGPwFaJxnUIkZ7m49iP2UxfgSy/hD6uLRiiMSvrdZHapz/bvkIjAYpDwZmRbEYGv2zYVxx+soTWi/hPhiJlT65l6U758pIfiTKsIIh3RwoFcYOtxTiQUmED2SwGe2EaFBNk3yahp68vf0En+HHAIrH7Nhtkl0DMHVclc4U968cbOJOqpG8Ye6se7q01MvUNAsoXxqcORhB1jIIYtEWHggN/dN7poaJ5jZrgr89dbRR/dR2sm3ybKWTAweuhtNs/QSOIr9gyaUTx2MSo8briK9EkvOHsGwVmCI6TcJrFUqroTTHxuglqh3Iaks063Q7Wvh29yU0bGUEXFNjMRQQuMk52nSF/OpLH6CGui03hOAAdI6fx46xbWc/lfnXRAIT+UZ1MltggpDSU5j72Hg2Xd0taNLMTRvOkaD/7bae/7NZ46d+ZEVhPzw/KoZmUyOsYoK7altGx8uifYY2Rtw/iRavn9uOZyv7yviMyeAN+ZjJvdPAyA==", | ||
}, | ||
@@ -363,4 +383,4 @@ }, | ||
result: "a33ef114-c4fb-41c6-b863-0781a3d10ee5", | ||
id: 3 | ||
} | ||
id: 3, | ||
}, | ||
}; | ||
@@ -380,29 +400,27 @@ | ||
data: { | ||
"authorization": { | ||
"type": "none" | ||
authorization: { | ||
type: "none", | ||
}, | ||
verifications: { | ||
count: 1, | ||
}, | ||
triggers: [{ type: "hook" }], | ||
envs: [], | ||
max_executions: 0, | ||
conditions: [ | ||
{ | ||
type: "code", | ||
code: "if (Math.random() < 0.5) { return true; } else { return false; }", | ||
output_type: "integer", | ||
substitution: true, | ||
}, | ||
"verifications": { | ||
"count": 1 | ||
}, | ||
"triggers": [ | ||
{ "type": "hook" } | ||
], | ||
"envs": [], | ||
"max_executions": 0, | ||
"conditions": [ | ||
{ | ||
"type": "code", | ||
"code": "if (Math.random() < 0.5) { return true; } else { return false; }", | ||
"output_type": "integer", | ||
"substitution": true | ||
} | ||
], | ||
"actions": { | ||
"type": "personal_sign", | ||
"check": "", | ||
"data": "0x000000", | ||
"substitution": true | ||
}, | ||
"postHook": [] | ||
} | ||
], | ||
actions: { | ||
type: "personal_sign", | ||
check: "", | ||
data: "0x000000", | ||
substitution: true, | ||
}, | ||
postHook: [], | ||
}, | ||
}; | ||
@@ -415,4 +433,4 @@ const response = await passport.createLambda(newLambdaParams); | ||
describe('listLambda', () => { | ||
it('should successfully list all registered lambda', async () => { | ||
describe("listLambda", () => { | ||
it("should successfully list all registered lambda", async () => { | ||
const mockInitAuthResponse = { | ||
@@ -423,3 +441,3 @@ data: { | ||
encrypted_request_challenge: | ||
"KFLVPxU3PrNdM8+GYX8mqAm/zF2IDgPOfUiHXlatY6BrwnAVtk5qKchYfcg0bk+Sye3crDsa2Lm0JDrYVUeOuyAUtQYTS+HXyDoMMEoT4suSaNumwwjL1n52xqwXQhjOV8gnHHhG9P8LD6FXeemKwdUlLz5gk+xqHEn1EA2BbnfC0vstwxcla2KAF+Tqw33fZBiZAgmlz0NOTRaQtvIrAkwayGuWiZ+gBl5L33mEBQVfOUW/DjLNfki+R/j00u/7YzTyS9oHIE4nwsOVxt7P/yCVzSKuDo8j/i6hWsbk94IvHwQwom+kn3OOS0ImitIKhU0qJUAazISBlRws2174ifDLlmM=", | ||
"KFLVPxU3PrNdM8+GYX8mqAm/zF2IDgPOfUiHXlatY6BrwnAVtk5qKchYfcg0bk+Sye3crDsa2Lm0JDrYVUeOuyAUtQYTS+HXyDoMMEoT4suSaNumwwjL1n52xqwXQhjOV8gnHHhG9P8LD6FXeemKwdUlLz5gk+xqHEn1EA2BbnfC0vstwxcla2KAF+Tqw33fZBiZAgmlz0NOTRaQtvIrAkwayGuWiZ+gBl5L33mEBQVfOUW/DjLNfki+R/j00u/7YzTyS9oHIE4nwsOVxt7P/yCVzSKuDo8j/i6hWsbk94IvHwQwom+kn3OOS0ImitIKhU0qJUAazISBlRws2174ifDLlmM=", | ||
}, | ||
@@ -433,3 +451,3 @@ }, | ||
encrypted_jwt: | ||
"iZQhXdlicd1qVm18Z8f1+F3sJ50RV9BZDLLzjlBe3h7peRHntoUL1WV2wiyPG7I+PGSDsjhpGd+YQGTHxQUoM+YlGwVB6dLlo2MOf1XZWm9tskEDG7v7HU8fj3b4RS1hP3h7L0KrecLbJ4byK7niElDAhi/LLwEcHJ2rJNiKhdsErAWHKNr7AcbdOOdDqPPAbFfMvx9cF7HhvRIS+KQGNpqEe8QrWX/qRgesCYqgOMESrNC0umNzeC8b1Ca9BfD2tu055+2P2week7Mr4sIGPwFaJxnUIkZ7m49iP2UxfgSy/hD6uLRiiMSvrdZHapz/bvkIjAYpDwZmRbEYGv2zYVxx+soTWi/hPhiJlT65l6U758pIfiTKsIIh3RwoFcYOtxTiQUmED2SwGe2EaFBNk3yahp68vf0En+HHAIrH7Nhtkl0DMHVclc4U968cbOJOqpG8Ye6se7q01MvUNAsoXxqcORhB1jIIYtEWHggN/dN7poaJ5jZrgr89dbRR/dR2sm3ybKWTAweuhtNs/QSOIr9gyaUTx2MSo8briK9EkvOHsGwVmCI6TcJrFUqroTTHxuglqh3Iaks063Q7Wvh29yU0bGUEXFNjMRQQuMk52nSF/OpLH6CGui03hOAAdI6fx46xbWc/lfnXRAIT+UZ1MltggpDSU5j72Hg2Xd0taNLMTRvOkaD/7bae/7NZ46d+ZEVhPzw/KoZmUyOsYoK7altGx8uifYY2Rtw/iRavn9uOZyv7yviMyeAN+ZjJvdPAyA==", | ||
"iZQhXdlicd1qVm18Z8f1+F3sJ50RV9BZDLLzjlBe3h7peRHntoUL1WV2wiyPG7I+PGSDsjhpGd+YQGTHxQUoM+YlGwVB6dLlo2MOf1XZWm9tskEDG7v7HU8fj3b4RS1hP3h7L0KrecLbJ4byK7niElDAhi/LLwEcHJ2rJNiKhdsErAWHKNr7AcbdOOdDqPPAbFfMvx9cF7HhvRIS+KQGNpqEe8QrWX/qRgesCYqgOMESrNC0umNzeC8b1Ca9BfD2tu055+2P2week7Mr4sIGPwFaJxnUIkZ7m49iP2UxfgSy/hD6uLRiiMSvrdZHapz/bvkIjAYpDwZmRbEYGv2zYVxx+soTWi/hPhiJlT65l6U758pIfiTKsIIh3RwoFcYOtxTiQUmED2SwGe2EaFBNk3yahp68vf0En+HHAIrH7Nhtkl0DMHVclc4U968cbOJOqpG8Ye6se7q01MvUNAsoXxqcORhB1jIIYtEWHggN/dN7poaJ5jZrgr89dbRR/dR2sm3ybKWTAweuhtNs/QSOIr9gyaUTx2MSo8briK9EkvOHsGwVmCI6TcJrFUqroTTHxuglqh3Iaks063Q7Wvh29yU0bGUEXFNjMRQQuMk52nSF/OpLH6CGui03hOAAdI6fx46xbWc/lfnXRAIT+UZ1MltggpDSU5j72Hg2Xd0taNLMTRvOkaD/7bae/7NZ46d+ZEVhPzw/KoZmUyOsYoK7altGx8uifYY2Rtw/iRavn9uOZyv7yviMyeAN+ZjJvdPAyA==", | ||
}, | ||
@@ -444,40 +462,38 @@ }, | ||
{ | ||
"id": "15363182-f572-40ee-ba2a-efee4c8a3691", | ||
"config": { | ||
"actions": { | ||
"data": "0x000000", | ||
"substitution": true, | ||
"type": "personal_sign" | ||
id: "15363182-f572-40ee-ba2a-efee4c8a3691", | ||
config: { | ||
actions: { | ||
data: "0x000000", | ||
substitution: true, | ||
type: "personal_sign", | ||
}, | ||
"authorization": { | ||
"type": "none" | ||
authorization: { | ||
type: "none", | ||
}, | ||
"triggers": [ | ||
{ "type": "hook" } | ||
], | ||
"conditions": [ | ||
triggers: [{ type: "hook" }], | ||
conditions: [ | ||
{ | ||
"code": "if (Math.random() < 0.5) { return true; } else { return false; }", | ||
"output_type": "integer", | ||
"substitution": true, | ||
"type": "code" | ||
} | ||
code: "if (Math.random() < 0.5) { return true; } else { return false; }", | ||
output_type: "integer", | ||
substitution: true, | ||
type: "code", | ||
}, | ||
], | ||
"envs": [], | ||
"max_executions": 0, | ||
"postHook": [], | ||
"verifications": { | ||
"count": 1 | ||
} | ||
envs: [], | ||
max_executions: 0, | ||
postHook: [], | ||
verifications: { | ||
count: 1, | ||
}, | ||
}, | ||
"status": "ready", | ||
"proof": null, | ||
"created_at": "2024-03-29T19:28:43", | ||
"updated_at": "2024-03-29T19:46:48", | ||
"total_executions": 2, | ||
"ok_executions": 2 | ||
} | ||
status: "ready", | ||
proof: null, | ||
created_at: "2024-03-29T19:28:43", | ||
updated_at: "2024-03-29T19:46:48", | ||
total_executions: 2, | ||
ok_executions: 2, | ||
}, | ||
], | ||
id: 3 | ||
} | ||
id: 3, | ||
}, | ||
}; | ||
@@ -501,5 +517,4 @@ | ||
describe('executeLambda', () => { | ||
it('should successfully execute a lambda', async () => { | ||
describe("executeLambda", () => { | ||
it("should successfully execute a lambda", async () => { | ||
const mockInitAuthResponse = { | ||
@@ -510,3 +525,3 @@ data: { | ||
encrypted_request_challenge: | ||
"KFLVPxU3PrNdM8+GYX8mqAm/zF2IDgPOfUiHXlatY6BrwnAVtk5qKchYfcg0bk+Sye3crDsa2Lm0JDrYVUeOuyAUtQYTS+HXyDoMMEoT4suSaNumwwjL1n52xqwXQhjOV8gnHHhG9P8LD6FXeemKwdUlLz5gk+xqHEn1EA2BbnfC0vstwxcla2KAF+Tqw33fZBiZAgmlz0NOTRaQtvIrAkwayGuWiZ+gBl5L33mEBQVfOUW/DjLNfki+R/j00u/7YzTyS9oHIE4nwsOVxt7P/yCVzSKuDo8j/i6hWsbk94IvHwQwom+kn3OOS0ImitIKhU0qJUAazISBlRws2174ifDLlmM=", | ||
"KFLVPxU3PrNdM8+GYX8mqAm/zF2IDgPOfUiHXlatY6BrwnAVtk5qKchYfcg0bk+Sye3crDsa2Lm0JDrYVUeOuyAUtQYTS+HXyDoMMEoT4suSaNumwwjL1n52xqwXQhjOV8gnHHhG9P8LD6FXeemKwdUlLz5gk+xqHEn1EA2BbnfC0vstwxcla2KAF+Tqw33fZBiZAgmlz0NOTRaQtvIrAkwayGuWiZ+gBl5L33mEBQVfOUW/DjLNfki+R/j00u/7YzTyS9oHIE4nwsOVxt7P/yCVzSKuDo8j/i6hWsbk94IvHwQwom+kn3OOS0ImitIKhU0qJUAazISBlRws2174ifDLlmM=", | ||
}, | ||
@@ -520,3 +535,3 @@ }, | ||
encrypted_jwt: | ||
"iZQhXdlicd1qVm18Z8f1+F3sJ50RV9BZDLLzjlBe3h7peRHntoUL1WV2wiyPG7I+PGSDsjhpGd+YQGTHxQUoM+YlGwVB6dLlo2MOf1XZWm9tskEDG7v7HU8fj3b4RS1hP3h7L0KrecLbJ4byK7niElDAhi/LLwEcHJ2rJNiKhdsErAWHKNr7AcbdOOdDqPPAbFfMvx9cF7HhvRIS+KQGNpqEe8QrWX/qRgesCYqgOMESrNC0umNzeC8b1Ca9BfD2tu055+2P2week7Mr4sIGPwFaJxnUIkZ7m49iP2UxfgSy/hD6uLRiiMSvrdZHapz/bvkIjAYpDwZmRbEYGv2zYVxx+soTWi/hPhiJlT65l6U758pIfiTKsIIh3RwoFcYOtxTiQUmED2SwGe2EaFBNk3yahp68vf0En+HHAIrH7Nhtkl0DMHVclc4U968cbOJOqpG8Ye6se7q01MvUNAsoXxqcORhB1jIIYtEWHggN/dN7poaJ5jZrgr89dbRR/dR2sm3ybKWTAweuhtNs/QSOIr9gyaUTx2MSo8briK9EkvOHsGwVmCI6TcJrFUqroTTHxuglqh3Iaks063Q7Wvh29yU0bGUEXFNjMRQQuMk52nSF/OpLH6CGui03hOAAdI6fx46xbWc/lfnXRAIT+UZ1MltggpDSU5j72Hg2Xd0taNLMTRvOkaD/7bae/7NZ46d+ZEVhPzw/KoZmUyOsYoK7altGx8uifYY2Rtw/iRavn9uOZyv7yviMyeAN+ZjJvdPAyA==", | ||
"iZQhXdlicd1qVm18Z8f1+F3sJ50RV9BZDLLzjlBe3h7peRHntoUL1WV2wiyPG7I+PGSDsjhpGd+YQGTHxQUoM+YlGwVB6dLlo2MOf1XZWm9tskEDG7v7HU8fj3b4RS1hP3h7L0KrecLbJ4byK7niElDAhi/LLwEcHJ2rJNiKhdsErAWHKNr7AcbdOOdDqPPAbFfMvx9cF7HhvRIS+KQGNpqEe8QrWX/qRgesCYqgOMESrNC0umNzeC8b1Ca9BfD2tu055+2P2week7Mr4sIGPwFaJxnUIkZ7m49iP2UxfgSy/hD6uLRiiMSvrdZHapz/bvkIjAYpDwZmRbEYGv2zYVxx+soTWi/hPhiJlT65l6U758pIfiTKsIIh3RwoFcYOtxTiQUmED2SwGe2EaFBNk3yahp68vf0En+HHAIrH7Nhtkl0DMHVclc4U968cbOJOqpG8Ye6se7q01MvUNAsoXxqcORhB1jIIYtEWHggN/dN7poaJ5jZrgr89dbRR/dR2sm3ybKWTAweuhtNs/QSOIr9gyaUTx2MSo8briK9EkvOHsGwVmCI6TcJrFUqroTTHxuglqh3Iaks063Q7Wvh29yU0bGUEXFNjMRQQuMk52nSF/OpLH6CGui03hOAAdI6fx46xbWc/lfnXRAIT+UZ1MltggpDSU5j72Hg2Xd0taNLMTRvOkaD/7bae/7NZ46d+ZEVhPzw/KoZmUyOsYoK7altGx8uifYY2Rtw/iRavn9uOZyv7yviMyeAN+ZjJvdPAyA==", | ||
}, | ||
@@ -529,5 +544,6 @@ }, | ||
jsonrpc: "2.0", | ||
result: "0x9d73f5605320e17ab1eaa0e7d1c82df288fddbef1085bbc4d30707128b8dac135ef3207c349c522f407cc6e72740e2ee503c4086ce8d0096f665180e9d8f71ab1b", | ||
id: 3 | ||
} | ||
result: | ||
"0x9d73f5605320e17ab1eaa0e7d1c82df288fddbef1085bbc4d30707128b8dac135ef3207c349c522f407cc6e72740e2ee503c4086ce8d0096f665180e9d8f71ab1b", | ||
id: 3, | ||
}, | ||
}; | ||
@@ -547,5 +563,5 @@ | ||
data: { | ||
"id": "15363182-f572-40ee-ba2a-efee4c8a3691", | ||
"params": [] | ||
} | ||
id: "15363182-f572-40ee-ba2a-efee4c8a3691", | ||
params: [], | ||
}, | ||
}; | ||
@@ -557,3 +573,2 @@ const response = await passport.executeLambda(params); | ||
}); | ||
}); | ||
}); |
import { LambdaExecutable, NewLambda } from "./lambda"; | ||
export enum Network { | ||
LOCAL = "http://localhost:9545", | ||
TESTNET = "https://tiramisu.0xpass.io", | ||
MAINNET = "TBD", | ||
} | ||
export type Method = | ||
@@ -4,0 +10,0 @@ | "eth_requestAccounts" |
@@ -5,2 +5,3 @@ import pkg from "js-sha3"; | ||
import elliptic from "elliptic"; | ||
import { Network } from "./types"; | ||
@@ -39,1 +40,16 @@ const ec = new elliptic.ec("secp256k1"); | ||
}; | ||
export function getNetworkFromUrl(rpcUrl: string): Network { | ||
const networkMap: { [url: string]: Network } = { | ||
"https://tiramisu.0xpass.io": Network.TESTNET, | ||
"http://localhost:9545": Network.LOCAL, | ||
"https://TBD.0xpass.io": Network.MAINNET, | ||
}; | ||
const network = networkMap[rpcUrl]; | ||
if (!network) { | ||
throw new Error(`Unsupported network RPC URL: ${rpcUrl}`); | ||
} | ||
return network; | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
92171
2030