Socket
Socket
Sign inDemoInstall

@0xpass/passport

Package Overview
Dependencies
Maintainers
3
Versions
39
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@0xpass/passport - npm Package Compare versions

Comparing version 2.0.6 to 2.1.0

6

CHANGELOG.md
# @0xpass/passport
## 2.1.0
### Minor Changes
- cb597d8: Introduce Network enum, and ENCLAVE_PUBLIC_KEYS mapping
## 2.0.6

@@ -4,0 +10,0 @@

6

dist/crypto.d.ts

@@ -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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc