Skip to content

Commit

Permalink
Fix linting errors.
Browse files Browse the repository at this point in the history
  • Loading branch information
derekpierre committed Feb 11, 2025
1 parent 6307d7c commit b84e8eb
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 80 deletions.
1 change: 0 additions & 1 deletion packages/taco-auth/src/providers/eip1271/eip1271.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { EIP1271_AUTH_METHOD, EIP1271AuthSignature } from './auth';


export class EIP1271AuthProvider {
constructor(
public readonly contractAddress: string,
Expand Down
7 changes: 5 additions & 2 deletions packages/taco/src/conditions/context/context.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,11 @@ type AuthProviderType =
| typeof SingleSignOnEIP4361AuthProvider;

const EXPECTED_AUTH_PROVIDER_TYPES: Record<string, AuthProviderType[]> = {
[USER_ADDRESS_PARAM_DEFAULT]: [EIP4361AuthProvider, EIP1271AuthProvider, SingleSignOnEIP4361AuthProvider],
[USER_ADDRESS_PARAM_DEFAULT]: [
EIP4361AuthProvider,
EIP1271AuthProvider,
SingleSignOnEIP4361AuthProvider,
],
[USER_ADDRESS_PARAM_EXTERNAL_EIP4361]: [SingleSignOnEIP4361AuthProvider],
};

Expand Down Expand Up @@ -227,7 +231,6 @@ export class ConditionContext {
}

this.authProviders[contextParam] = authProvider;

}
public async toJson(): Promise<string> {
const parameters = await this.toContextParameters();
Expand Down
2 changes: 1 addition & 1 deletion packages/taco/test/conditions/base/contract.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ describe('supports custom function abi', async () => {

conditionContext.addAuthProvider(
USER_ADDRESS_PARAM_DEFAULT,
authProviders["EIP4361"],
authProviders['EIP4361'],
);

const asJson = await conditionContext.toJson();
Expand Down
2 changes: 1 addition & 1 deletion packages/taco/test/conditions/conditions.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ describe('conditions', () => {
context.addCustomContextParameterValues({ ':time': 100 });
context.addAuthProvider(
USER_ADDRESS_PARAM_DEFAULT,
authProviders["EIP4361"],
authProviders['EIP4361'],
);

expect(context).toBeDefined();
Expand Down
110 changes: 49 additions & 61 deletions packages/taco/test/conditions/context.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ describe('context', () => {

describe('reserved context parameters', () => {
it.each([
[USER_ADDRESS_PARAM_DEFAULT, "EIP4361"],
[USER_ADDRESS_PARAM_EXTERNAL_EIP4361, "SSO4361"],
[USER_ADDRESS_PARAM_DEFAULT, 'EIP4361'],
[USER_ADDRESS_PARAM_EXTERNAL_EIP4361, 'SSO4361'],
])('serializes to json', async (userAddressParam, scheme) => {
const rpcCondition = new RpcCondition({
...testRpcConditionObj,
Expand All @@ -64,20 +64,14 @@ describe('context', () => {
},
});
const conditionContext = new ConditionContext(rpcCondition);
conditionContext.addAuthProvider(
userAddressParam,
authProviders[scheme],
);
conditionContext.addAuthProvider(userAddressParam, authProviders[scheme]);
const asJson = await conditionContext.toJson();

expect(asJson).toBeDefined();
expect(asJson).toContain(userAddressParam);
});

it.each([
USER_ADDRESS_PARAM_DEFAULT,
USER_ADDRESS_PARAM_EXTERNAL_EIP4361,
])(
it.each([USER_ADDRESS_PARAM_DEFAULT, USER_ADDRESS_PARAM_EXTERNAL_EIP4361])(
'detects when auth provider is required by parameters',
async (userAddressParam) => {
const conditionObj = {
Expand All @@ -96,10 +90,7 @@ describe('context', () => {
},
);

it.each([
USER_ADDRESS_PARAM_DEFAULT,
USER_ADDRESS_PARAM_EXTERNAL_EIP4361,
])(
it.each([USER_ADDRESS_PARAM_DEFAULT, USER_ADDRESS_PARAM_EXTERNAL_EIP4361])(
'detects when signer is required by return value test',
async (userAddressParam) => {
const conditionObj = {
Expand Down Expand Up @@ -134,10 +125,7 @@ describe('context', () => {
await expect(conditionContext.toContextParameters()).toBeDefined();
});

it.each([
USER_ADDRESS_PARAM_DEFAULT,
USER_ADDRESS_PARAM_EXTERNAL_EIP4361,
])(
it.each([USER_ADDRESS_PARAM_DEFAULT, USER_ADDRESS_PARAM_EXTERNAL_EIP4361])(
'return value test rejects on a missing signer',
async (userAddressParam) => {
const conditionObj = {
Expand Down Expand Up @@ -166,10 +154,7 @@ describe('context', () => {
const condition = new ContractCondition(conditionObj);
const conditionContext = new ConditionContext(condition);
expect(() =>
conditionContext.addAuthProvider(
':myParam',
authProviders["EIP4361"],
),
conditionContext.addAuthProvider(':myParam', authProviders['EIP4361']),
).toThrow('AuthProvider not necessary for context parameter: :myParam');
});

Expand All @@ -186,7 +171,7 @@ describe('context', () => {
expect(() =>
conditionContext.addAuthProvider(
USER_ADDRESS_PARAM_DEFAULT,
authProviders["Bogus"],
authProviders['Bogus'],
),
).toThrow(`Invalid AuthProvider type for ${USER_ADDRESS_PARAM_DEFAULT}`);
});
Expand All @@ -204,33 +189,38 @@ describe('context', () => {
expect(() =>
conditionContext.addAuthProvider(
USER_ADDRESS_PARAM_EXTERNAL_EIP4361,
authProviders["EIP4361"], // it should be SSO4361
authProviders['EIP4361'], // it should be SSO4361
),
).toThrow(
`Invalid AuthProvider type for ${USER_ADDRESS_PARAM_EXTERNAL_EIP4361}`,
);
});

it.each([
[USER_ADDRESS_PARAM_DEFAULT, "EIP4361"],
[USER_ADDRESS_PARAM_DEFAULT, "EIP1271"],
[USER_ADDRESS_PARAM_EXTERNAL_EIP4361, "SSO4361"],
])('it supports just one provider at a time', async (userAddressParam, scheme) => {
const conditionObj = {
...testContractConditionObj,
returnValueTest: {
...testReturnValueTest,
value: userAddressParam,
},
};
const condition = new ContractCondition(conditionObj);
const conditionContext = new ConditionContext(condition);
conditionContext.addAuthProvider(
userAddressParam,
authProviders[scheme],
);
expect(async () => conditionContext.toContextParameters()).not.toThrow();
});
[USER_ADDRESS_PARAM_DEFAULT, 'EIP4361'],
[USER_ADDRESS_PARAM_DEFAULT, 'EIP1271'],
[USER_ADDRESS_PARAM_EXTERNAL_EIP4361, 'SSO4361'],
])(
'it supports just one provider at a time',
async (userAddressParam, scheme) => {
const conditionObj = {
...testContractConditionObj,
returnValueTest: {
...testReturnValueTest,
value: userAddressParam,
},
};
const condition = new ContractCondition(conditionObj);
const conditionContext = new ConditionContext(condition);
conditionContext.addAuthProvider(
userAddressParam,
authProviders[scheme],
);
expect(async () =>
conditionContext.toContextParameters(),
).not.toThrow();
},
);
});

describe('authentication signature', () => {
Expand Down Expand Up @@ -288,10 +278,7 @@ describe('context', () => {
const condition = new ContractCondition(conditionObj);

const conditionContext = new ConditionContext(condition);
conditionContext.addAuthProvider(
userAddressParam,
authProviders[scheme],
);
conditionContext.addAuthProvider(userAddressParam, authProviders[scheme]);
const contextVars = await conditionContext.toContextParameters();
const authSignature = contextVars[userAddressParam] as AuthSignature;
expect(authSignature).toBeDefined();
Expand All @@ -305,7 +292,10 @@ describe('context', () => {
'getOrCreateAuthSignature',
);

const authSignature = await makeAuthSignature(USER_ADDRESS_PARAM_DEFAULT, "EIP4361");
const authSignature = await makeAuthSignature(
USER_ADDRESS_PARAM_DEFAULT,
'EIP4361',
);
await testAuthSignature(authSignature, 'EIP4361');
expect(eip4361Spy).toHaveBeenCalledOnce();
});
Expand All @@ -319,17 +309,13 @@ describe('context', () => {

const authSignature = await makeAuthSignature(
USER_ADDRESS_PARAM_EXTERNAL_EIP4361,
"SSO4361"
'SSO4361',
);
expect(authSignature).toBeDefined();
await testAuthSignature(
authSignature,
'EIP4361',
(
authProviders[
"SSO4361"
] as SingleSignOnEIP4361AuthProvider
).address,
(authProviders['SSO4361'] as SingleSignOnEIP4361AuthProvider).address,
);
expect(eip4361Spy).toHaveBeenCalledOnce();
});
Expand All @@ -340,13 +326,15 @@ describe('context', () => {
'getOrCreateAuthSignature',
);

const authSignature = await makeAuthSignature(USER_ADDRESS_PARAM_DEFAULT, "EIP1271");
const authSignature = await makeAuthSignature(
USER_ADDRESS_PARAM_DEFAULT,
'EIP1271',
);
expect(authSignature).toBeDefined();
await testAuthSignature(
authSignature,
'EIP1271',
(authProviders["EIP1271"] as EIP1271AuthProvider)
.contractAddress,
(authProviders['EIP1271'] as EIP1271AuthProvider).contractAddress,
);
expect(eip1271Spy).toHaveBeenCalledOnce();
});
Expand Down Expand Up @@ -402,7 +390,7 @@ describe('context', () => {
const conditionContext = new ConditionContext(contractCondition);
conditionContext.addAuthProvider(
USER_ADDRESS_PARAM_DEFAULT,
authProviders["EIP4361"],
authProviders['EIP4361'],
);
await expect(conditionContext.toContextParameters()).rejects.toThrow(
`Missing custom context parameter(s): ${customParamKey}`,
Expand Down Expand Up @@ -463,7 +451,7 @@ describe('context', () => {
const conditionContext = new ConditionContext(customContractCondition);
conditionContext.addAuthProvider(
USER_ADDRESS_PARAM_DEFAULT,
authProviders["EIP4361"],
authProviders['EIP4361'],
);

await expect(async () =>
Expand All @@ -481,7 +469,7 @@ describe('context', () => {
const conditionContext = new ConditionContext(customContractCondition);
conditionContext.addAuthProvider(
USER_ADDRESS_PARAM_DEFAULT,
authProviders["EIP1271"],
authProviders['EIP1271'],
);

const asObj = await conditionContext.toContextParameters();
Expand All @@ -504,7 +492,7 @@ describe('context', () => {
);
conditionContext.addAuthProvider(
USER_ADDRESS_PARAM_EXTERNAL_EIP4361,
authProviders["SSO4361"],
authProviders['SSO4361'],
);
conditionContext.addCustomContextParameterValues(customParameters);

Expand Down
27 changes: 13 additions & 14 deletions packages/test-utils/src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,6 @@ import {
EIP1271AuthProvider,
EIP4361AuthProvider,
SingleSignOnEIP4361AuthProvider,
USER_ADDRESS_PARAM_DEFAULT,
USER_ADDRESS_PARAM_EXTERNAL_EIP4361,
} from '@nucypher/taco-auth';
import { ethers, providers, Wallet } from 'ethers';
import { expect, SpyInstance, vi } from 'vitest';
Expand Down Expand Up @@ -101,34 +99,35 @@ export const fakeAuthProviders = async (
) => {
const signerToUse = signer ? signer : fakeProvider().getSigner();
return {
["EIP4361"]: fakeEIP4361AuthProvider(signerToUse),
["SSO4361"]:
await fakeSingleSignOnEIP4361AuthProvider(signerToUse),
["EIP1271"]: await fakeEIP1271AuthProvider(signerToUse),
["Bogus"]: fakeBogusAuthProvider(signerToUse),
['EIP4361']: fakeEIP4361AuthProvider(signerToUse),
['SSO4361']: await fakeSingleSignOnEIP4361AuthProvider(signerToUse),
['EIP1271']: await fakeEIP1271AuthProvider(signerToUse),
['Bogus']: fakeBogusAuthProvider(signerToUse),
};
};

class BogusAuthProvider implements AuthProvider {
constructor(private provider: ethers.providers.Web3Provider) {}

async getOrCreateAuthSignature(): Promise<AuthSignature> {
throw new Error("Bogus provider");
throw new Error('Bogus provider');
}
}

export const fakeBogusAuthProvider = (signer: ethers.providers.JsonRpcSigner) => {
export const fakeBogusAuthProvider = (
signer: ethers.providers.JsonRpcSigner,
) => {
const externalProvider: ethers.providers.ExternalProvider = {
send: (request, callback) => {
callback(new Error("Bogus provider"), null);
callback(new Error('Bogus provider'), null);
},
request: () => Promise.reject(new Error("Bogus provider"))
request: () => Promise.reject(new Error('Bogus provider')),
};
return new BogusAuthProvider(new ethers.providers.Web3Provider(externalProvider));
return new BogusAuthProvider(
new ethers.providers.Web3Provider(externalProvider),
);
};



const fakeEIP4361AuthProvider = (signer: ethers.providers.JsonRpcSigner) => {
return new EIP4361AuthProvider(signer.provider, signer, TEST_SIWE_PARAMS);
};
Expand Down

0 comments on commit b84e8eb

Please sign in to comment.