Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5e00bd8
feat(lit-node-client-nodejs): LIT-3748 - Add `getMaxPricesForNodes()`…
MaximusHaximus Jan 8, 2025
6a22a29
feat(lit-node-client-nodejs): LIT-3748 - Convert price tracking to us…
MaximusHaximus Jan 15, 2025
91ee157
feat(lit-node-client-nodejs): LIT-3748 - Revise contracts SDK to not …
MaximusHaximus Jan 15, 2025
35ce69a
feat(lit-node-client-nodejs): LIT-3748 - Remove fetching of prices fr…
MaximusHaximus Jan 15, 2025
0cabcff
feat(lit-node-client-nodejs): LIT-3748 - Replace local-tests `getEoaS…
MaximusHaximus Jan 28, 2025
7da6c27
feat(lit-node-client-nodejs): LIT-3748 - Base implementation of inter…
MaximusHaximus Jan 30, 2025
c8c5254
feat(lit-node-client-nodejs): LIT-3748 - Initial migration of local-t…
MaximusHaximus Jan 30, 2025
341f39a
feat(local-tests): LIT-3748 - Update shiva contract context to includ…
MaximusHaximus Jan 30, 2025
9ecdcaa
fix(lit-node-client-nodejs): LIT-3748 - Fix error handling for node e…
MaximusHaximus Jan 30, 2025
0da6be1
fix(local-tests): LIT-3748 - Update `testUseEoaSessionSigsToRequestSi…
MaximusHaximus Jan 30, 2025
e821582
feat(event-listener): LIT-3748 - Update executeLitAction() to use `au…
MaximusHaximus Jan 30, 2025
b5075a4
feat(types): LIT-3748 - Clean up types/interfaces
MaximusHaximus Jan 30, 2025
fe4d58d
feat(local-tests): LIT-3748 - Remove getSessionSigsProps usage from p…
MaximusHaximus Jan 30, 2025
8152e32
feat(types): LIT-3748 - More types cleanup
MaximusHaximus Jan 30, 2025
c0c7370
feat(types): LIT-3748 - Suppress remaining eslint `any` related error…
MaximusHaximus Jan 30, 2025
a6e1f18
feat(local-tests): LIT-3748 - Disable wrapped-keys tests in `tests.ts…
MaximusHaximus Jan 30, 2025
e7cb3b0
feat(wrapped-keys): LIT-3748 - Disable wrapped-keys builds/publishes …
MaximusHaximus Jan 30, 2025
cdc09aa
feat(lit-node-client): LIT-3748 - Integrate minNodeCount node selecti…
MaximusHaximus Jan 30, 2025
0caece5
feat(tinny): LIT-3748 - Add ability to set `DEFAULT_MAX_PRICES` env v…
MaximusHaximus Jan 30, 2025
46c47fd
feat(lit-node-client): LIT-3748 - Re-integrate per-behavioural method…
MaximusHaximus Jan 30, 2025
7f1bb26
feat(tinny): LIT-3748 - Log errors thrown in tinny tests with stack t…
MaximusHaximus Jan 30, 2025
5148924
fix(lit-core): LIT-3748 - Show a more descriptive error than 'cannot …
MaximusHaximus Jan 30, 2025
ea0ed3a
fix(lit-node-client): LIT-3748 - Use threshold instead of this.config…
MaximusHaximus Jan 30, 2025
d63e4e1
chore(contracts-sdk): LIT-3748 - Resolve last remaining eslint errors…
MaximusHaximus Jan 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions local-tests/index.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
import { TinnyEnvironment } from './setup/tinny-environment';
import { runInBand, runTestsParallel } from './setup/tinny-operations';
import * as tinnyTests from './tests';
import { getEoaSessionSigs } from './setup/session-sigs/get-eoa-session-sigs';
import { getLitActionSessionSigs } from './setup/session-sigs/get-lit-action-session-sigs';
import { getPkpSessionSigs } from './setup/session-sigs/get-pkp-session-sigs';
import { getEoaAuthContext } from './setup/session-sigs/get-eoa-session-sigs';
import { getLitActionAuthContext } from './setup/session-sigs/get-lit-action-session-sigs';
import { getPkpAuthContext } from './setup/session-sigs/get-pkp-session-sigs';
import { AccessControlConditions } from './setup/accs/accs';

export {
TinnyEnvironment,
runInBand,
runTestsParallel,
tinnyTests,
getEoaSessionSigs,
getLitActionSessionSigs,
getPkpSessionSigs,
getEoaAuthContext,
getLitActionAuthContext,
getPkpAuthContext,
AccessControlConditions,
};

Expand Down
2 changes: 1 addition & 1 deletion local-tests/setup/accs/accs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
} from '@lit-protocol/accs-schemas';

export namespace AccessControlConditions {
export const getEmvBasicAccessControlConditions = ({
export const getEvmBasicAccessControlConditions = ({
userAddress,
}): LPACC_EVM_BASIC[] => {
return [
Expand Down
63 changes: 17 additions & 46 deletions local-tests/setup/session-sigs/get-eoa-session-sigs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,43 +18,28 @@ import {
import { TinnyPerson } from '../tinny-person';
import { TinnyEnvironment } from '../tinny-environment';

/**
* Retrieves the session signatures for an EOA in a given Tinny environment.
*
* @param devEnv - The Tinny environment object.
* @param person - The Tinny person object representing the EOA.
* @param resourceAbilityRequests - Optional. An array of resource ability requests. If not provided, default requests will be used.
* @returns A promise that resolves to the session signatures.
*/
export const getEoaSessionSigs = async (
export const getEoaAuthContext = (
devEnv: TinnyEnvironment,
person: TinnyPerson,
resourceAbilityRequests?: LitResourceAbilityRequest[]
) => {
const centralisation =
CENTRALISATION_BY_NETWORK[devEnv.litNodeClient.config.litNetwork];

if (centralisation === 'decentralised') {
console.warn(
'Decentralised network detected. Adding superCapacityDelegationAuthSig to eoaSessionSigs'
);
}

// Use default resourceAbilityRequests if not provided
const _resourceAbilityRequests = resourceAbilityRequests || [
{
resource: new LitPKPResource('*'),
ability: LIT_ABILITY.PKPSigning,
},
{
resource: new LitActionResource('*'),
ability: LIT_ABILITY.LitActionExecution,
},
];

const sessionSigs = await devEnv.litNodeClient.getSessionSigs({
return {
pkpPublicKey: person.authMethodOwnedPkp.publicKey,
chain: 'ethereum',
resourceAbilityRequests: _resourceAbilityRequests,
resourceAbilityRequests: resourceAbilityRequests || [
{
resource: new LitPKPResource('*'),
ability: LIT_ABILITY.PKPSigning,
},
{
resource: new LitActionResource('*'),
ability: LIT_ABILITY.LitActionExecution,
},
],
authNeededCallback: async ({
uri,
expiration,
Expand Down Expand Up @@ -94,28 +79,18 @@ export const getEoaSessionSigs = async (
...(centralisation === 'decentralised' && {
capabilityAuthSigs: [devEnv.superCapacityDelegationAuthSig],
}),
});

log('[getEoaSessionSigs]: ', getEoaSessionSigs);

return sessionSigs;
};
};

export const getEoaSessionSigsWithCapacityDelegations = async (
export const getEoaAuthContextWithCapacityDelegations = (
devEnv: TinnyEnvironment,
fromWallet: ethers.Wallet,
capacityDelegationAuthSig: AuthSig
) => {
const centralisation =
CENTRALISATION_BY_NETWORK[devEnv.litNodeClient.config.litNetwork];

if (centralisation === 'decentralised') {
console.warn(
'Decentralised network detected. Adding superCapacityDelegationAuthSig to eoaSessionSigs'
);
}

const sessionSigs = await devEnv.litNodeClient.getSessionSigs({
return {
chain: 'ethereum',
resourceAbilityRequests: [
{
Expand Down Expand Up @@ -165,9 +140,5 @@ export const getEoaSessionSigsWithCapacityDelegations = async (
capacityDelegationAuthSig ?? devEnv.superCapacityDelegationAuthSig,
],
}),
});

log('[getEoaSessionSigs]: ', getEoaSessionSigs);

return sessionSigs;
};
};
65 changes: 22 additions & 43 deletions local-tests/setup/session-sigs/get-lit-action-session-sigs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,20 +35,14 @@ export const VALID_IPFS_ID = 'QmRf5K7PVi5TWXiJdw7YYtcgpgRY6ufXGr9yYnxBLvLjDp';
*/
export const INVALID_IPFS_ID = 'QmeUByesskboEkLLcE9Hd3bWFZT5Xt53RSauMNTJSVhfqm';

export const getLitActionSessionSigs = async (
export const getLitActionAuthContext = (
devEnv: TinnyEnvironment,
alice: TinnyPerson,
resourceAbilityRequests?: LitResourceAbilityRequest[]
) => {
const centralisation =
CENTRALISATION_BY_NETWORK[devEnv.litNodeClient.config.litNetwork];

if (centralisation === 'decentralised') {
console.warn(
'Decentralised network detected. Adding superCapacityDelegationAuthSig to eoaSessionSigs'
);
}

// Use default resourceAbilityRequests if not provided
const _resourceAbilityRequests = resourceAbilityRequests || [
{
Expand All @@ -61,41 +55,32 @@ export const getLitActionSessionSigs = async (
},
];

const litActionSessionSigs =
await devEnv.litNodeClient.getLitActionSessionSigs({
pkpPublicKey: alice.authMethodOwnedPkp.publicKey,
authMethods: [alice.authMethod],
resourceAbilityRequests: _resourceAbilityRequests,
litActionCode: Buffer.from(VALID_SESSION_SIG_LIT_ACTION_CODE).toString(
'base64'
),
jsParams: {
publicKey: alice.authMethodOwnedPkp.publicKey,
sigName: 'unified-auth-sig',
},

...(centralisation === 'decentralised' && {
capabilityAuthSigs: [devEnv.superCapacityDelegationAuthSig],
}),
});
return devEnv.litNodeClient.getPkpAuthContext({
pkpPublicKey: alice.authMethodOwnedPkp.publicKey,
authMethods: [alice.authMethod],
resourceAbilityRequests: _resourceAbilityRequests,
litActionCode: Buffer.from(VALID_SESSION_SIG_LIT_ACTION_CODE).toString(
'base64'
),
jsParams: {
publicKey: alice.authMethodOwnedPkp.publicKey,
sigName: 'unified-auth-sig',
},

return litActionSessionSigs;
...(centralisation === 'decentralised' && {
capabilityAuthSigs: [devEnv.superCapacityDelegationAuthSig],
}),
});
};

export const getLitActionSessionSigsUsingIpfsId = async (
export const getLitActionAuthContextUsingIpfsId = (
devEnv: TinnyEnvironment,
alice: TinnyPerson,
resourceAbilityRequests?: LitResourceAbilityRequest[]
) => {
const centralisation =
CENTRALISATION_BY_NETWORK[devEnv.litNodeClient.config.litNetwork];

if (centralisation === 'decentralised') {
console.warn(
'Decentralised network detected. Adding superCapacityDelegationAuthSig to eoaSessionSigs'
);
}

// Use default resourceAbilityRequests if not provided
const _resourceAbilityRequests = resourceAbilityRequests || [
{
Expand All @@ -108,7 +93,7 @@ export const getLitActionSessionSigsUsingIpfsId = async (
},
];

const litActionSessionSigs = await devEnv.litNodeClient.getPkpSessionSigs({
return devEnv.litNodeClient.getPkpAuthContext({
pkpPublicKey: alice.authMethodOwnedPkp.publicKey,
authMethods: [alice.authMethod],
resourceAbilityRequests: _resourceAbilityRequests,
Expand All @@ -122,15 +107,13 @@ export const getLitActionSessionSigsUsingIpfsId = async (
capabilityAuthSigs: [devEnv.superCapacityDelegationAuthSig],
}),
});

return litActionSessionSigs;
};

export const getInvalidLitActionSessionSigs = async (
export const getInvalidLitActionAuthContext = (
devEnv: TinnyEnvironment,
alice: TinnyPerson
) => {
const litActionSessionSigs = await devEnv.litNodeClient.getPkpSessionSigs({
return devEnv.litNodeClient.getPkpAuthContext({
pkpPublicKey: alice.authMethodOwnedPkp.publicKey,
authMethods: [alice.authMethod],
resourceAbilityRequests: [
Expand All @@ -153,15 +136,13 @@ export const getInvalidLitActionSessionSigs = async (
],
},
});

return litActionSessionSigs;
};

export const getInvalidLitActionIpfsSessionSigs = async (
export const getInvalidLitActionIpfsAuthContext = (
devEnv: TinnyEnvironment,
alice: TinnyPerson
) => {
const litActionSessionSigs = await devEnv.litNodeClient.getPkpSessionSigs({
return devEnv.litNodeClient.getPkpAuthContext({
pkpPublicKey: alice.authMethodOwnedPkp.publicKey,
authMethods: [alice.authMethod],
resourceAbilityRequests: [
Expand All @@ -182,6 +163,4 @@ export const getInvalidLitActionIpfsSessionSigs = async (
],
},
});

return litActionSessionSigs;
};
21 changes: 9 additions & 12 deletions local-tests/setup/session-sigs/get-pkp-session-sigs.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
import { LitActionResource, LitPKPResource } from '@lit-protocol/auth-helpers';
import { LitResourceAbilityRequest } from '@lit-protocol/types';
import {
type AuthenticationContext,
LitResourceAbilityRequest,
} from '@lit-protocol/types';
import { log } from '@lit-protocol/misc';
import {
LIT_ABILITY,
Expand All @@ -8,21 +11,15 @@ import {
import { TinnyEnvironment } from '../tinny-environment';
import { TinnyPerson } from '../tinny-person';

export const getPkpSessionSigs = async (
export const getPkpAuthContext = (
devEnv: TinnyEnvironment,
alice: TinnyPerson,
resourceAbilityRequests?: LitResourceAbilityRequest[],
expiration?: string
) => {
): AuthenticationContext => {
const centralisation =
CENTRALISATION_BY_NETWORK[devEnv.litNodeClient.config.litNetwork];

if (centralisation === 'decentralised') {
console.warn(
'Decentralised network detected. Adding superCapacityDelegationAuthSig to eoaSessionSigs'
);
}

// Use default resourceAbilityRequests if not provided
const _resourceAbilityRequests = resourceAbilityRequests || [
{
Expand All @@ -35,7 +32,7 @@ export const getPkpSessionSigs = async (
},
];

const pkpSessionSigs = await devEnv.litNodeClient.getPkpSessionSigs({
const authContext = devEnv.litNodeClient.getPkpAuthContext({
pkpPublicKey: alice.authMethodOwnedPkp.publicKey,
authMethods: [alice.authMethod],
expiration,
Expand All @@ -46,7 +43,7 @@ export const getPkpSessionSigs = async (
}),
});

log('[getPkpSessionSigs]: ', pkpSessionSigs);
log('[getPkpAuthContext]: ', authContext);

return pkpSessionSigs;
return authContext;
};
2 changes: 2 additions & 0 deletions local-tests/setup/shiva-client.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ type ContractAbis = {
pkpHelper: string;
contractResolver: string;
paymentDelegation: string;
priceFeed: string;
};

type ContractAddresses = {
Expand All @@ -23,6 +24,7 @@ type ContractAddresses = {
contractResolver: string;
keyDeriver: string;
paymentDelegation: string;
priceFeed: string;
};

type TestNetCreateRequest = {
Expand Down
4 changes: 3 additions & 1 deletion local-tests/setup/shiva-client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,9 @@ export class TestnetClient {
},
PKPNFTMetadata: {},
PubkeyRouter: {},
PriceFeed: {},
PriceFeed: {
abi: JSON.parse(testNetConfig.contractAbis.priceFeed),
},
},
};
return networkContext;
Expand Down
6 changes: 6 additions & 0 deletions local-tests/setup/tinny-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,12 @@ export interface ProcessEnvs {
* this value will be ignored
*/
NETWORK_CONFIG: string;

/**
* Max prices to be sent to nodes -- an array of strings that will be parsed as bigints
* in order of PRODUCT_ID's values -- DECRYPTION, SIGN, LIT_ACTION
*/
DEFAULT_MAX_PRICES: bigint[];
}

/**
Expand Down
Loading
Loading