67 lines
1.9 KiB
TypeScript
67 lines
1.9 KiB
TypeScript
import { LitNodeClient } from "@lit-protocol/lit-node-client";
|
|
import type { AccsEVMParams } from "@lit-protocol/types";
|
|
|
|
export const createACC = async (newParameter, newComparator, newValue) => {
|
|
const litNodeClient = new LitNodeClient({ litNetwork: "serrano" });
|
|
await litNodeClient.connect();
|
|
|
|
const me = JSON.parse(localStorage.getItem('me'));
|
|
if (!me || !me.sessionSigs) {
|
|
throw new Error('No sessionSigs found in local storage');
|
|
}
|
|
|
|
const newACC = {
|
|
conditionType: "evmBasic",
|
|
contractAddress: "",
|
|
standardContractType: "",
|
|
chain: "xdai",
|
|
method: "",
|
|
parameters: [newParameter],
|
|
returnValueTest: {
|
|
comparator: newComparator,
|
|
value: newValue,
|
|
},
|
|
};
|
|
|
|
const resourceId = {
|
|
baseUrl: "https://localhost:3000",
|
|
path: "/server/wundergraph",
|
|
orgId: "°",
|
|
role: "owner",
|
|
extraData: "",
|
|
};
|
|
|
|
const sessionSigs = me.sessionSigs;
|
|
|
|
await litNodeClient.saveSigningCondition({
|
|
unifiedAccessControlConditions: [newACC],
|
|
sessionSigs,
|
|
resourceId,
|
|
chain: "litSessionSign",
|
|
});
|
|
|
|
const jwt = await litNodeClient.getSignedToken({
|
|
unifiedAccessControlConditions: [newACC],
|
|
chain: 'xdai',
|
|
sessionSigs,
|
|
resourceId
|
|
});
|
|
|
|
let signingConditions = JSON.parse(localStorage.getItem("signingConditions")) || [];
|
|
signingConditions = [
|
|
...signingConditions,
|
|
{
|
|
accs: [newACC],
|
|
resourceId,
|
|
jwt,
|
|
},
|
|
];
|
|
localStorage.setItem("signingConditions", JSON.stringify(signingConditions));
|
|
};
|
|
|
|
export const deleteACC = async (index) => {
|
|
let signingConditions = JSON.parse(localStorage.getItem("signingConditions")) || [];
|
|
signingConditions = signingConditions.filter((_, i) => i !== index);
|
|
localStorage.setItem("signingConditions", JSON.stringify(signingConditions));
|
|
};
|