mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
retrieve full signer objects to reuse anon mode address in own thread
This commit is contained in:
@@ -200,7 +200,6 @@ const PostFormTable = ({ closeForm, postCid }: { closeForm: () => void; postCid:
|
|||||||
hasCalledAnonAddressRef.current = true;
|
hasCalledAnonAddressRef.current = true;
|
||||||
const existingSigner = getExistingSigner(address);
|
const existingSigner = getExistingSigner(address);
|
||||||
if (existingSigner) {
|
if (existingSigner) {
|
||||||
console.log('onPublishReply - existingSigner:', existingSigner);
|
|
||||||
setPublishReplyOptions({
|
setPublishReplyOptions({
|
||||||
signer: existingSigner,
|
signer: existingSigner,
|
||||||
author: {
|
author: {
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ const useAnonMode = (postCid?: string) => {
|
|||||||
const signer = await account?.plebbit.createSigner();
|
const signer = await account?.plebbit.createSigner();
|
||||||
if (signer) {
|
if (signer) {
|
||||||
if (postCid) {
|
if (postCid) {
|
||||||
setThreadSigner(postCid, { privateKey: signer.privateKey, address: signer.address });
|
setThreadSigner(postCid, signer);
|
||||||
} else {
|
} else {
|
||||||
setAddressSigner({ privateKey: signer.privateKey, address: signer.address });
|
setAddressSigner(signer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return signer;
|
return signer;
|
||||||
|
|||||||
@@ -3,13 +3,13 @@ import localForageLru from '@plebbit/plebbit-react-hooks/dist/lib/localforage-lr
|
|||||||
|
|
||||||
interface AnonModeState {
|
interface AnonModeState {
|
||||||
anonMode: boolean;
|
anonMode: boolean;
|
||||||
threadSigners: { [key: string]: { privateKey: string; address: string } };
|
threadSigners: { [key: string]: any };
|
||||||
addressSigners: { [address: string]: { privateKey: string; address: string } };
|
addressSigners: { [address: string]: any };
|
||||||
setAnonMode: (mode: boolean) => void;
|
setAnonMode: (mode: boolean) => void;
|
||||||
setThreadSigner: (postCid: string, signer: { privateKey: string; address: string }) => void;
|
setThreadSigner: (postCid: string, signer: any) => void;
|
||||||
getThreadSigner: (postCid: string) => { privateKey: string; address: string } | undefined;
|
getThreadSigner: (postCid: string) => any | undefined;
|
||||||
setAddressSigner: (signer: { privateKey: string; address: string }) => void;
|
setAddressSigner: (signer: any) => void;
|
||||||
getAddressSigner: (address: string) => { privateKey: string; address: string } | undefined;
|
getAddressSigner: (address: string) => any | undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
const anonModeStore = localForageLru.createInstance({
|
const anonModeStore = localForageLru.createInstance({
|
||||||
@@ -22,14 +22,14 @@ const useAnonModeStore = create<AnonModeState>((set, get) => ({
|
|||||||
threadSigners: {},
|
threadSigners: {},
|
||||||
addressSigners: {},
|
addressSigners: {},
|
||||||
setAnonMode: (mode: boolean) => set({ anonMode: mode }),
|
setAnonMode: (mode: boolean) => set({ anonMode: mode }),
|
||||||
setThreadSigner: (postCid: string, signer: { privateKey: string; address: string }) => {
|
setThreadSigner: (postCid: string, signer: any) => {
|
||||||
set((state) => ({
|
set((state) => ({
|
||||||
threadSigners: { ...state.threadSigners, [postCid]: signer },
|
threadSigners: { ...state.threadSigners, [postCid]: signer },
|
||||||
}));
|
}));
|
||||||
anonModeStore.setItem(postCid, signer);
|
anonModeStore.setItem(postCid, signer);
|
||||||
},
|
},
|
||||||
getThreadSigner: (postCid: string) => get().threadSigners[postCid],
|
getThreadSigner: (postCid: string) => get().threadSigners[postCid],
|
||||||
setAddressSigner: (signer: { privateKey: string; address: string }) => {
|
setAddressSigner: (signer: any) => {
|
||||||
set((state) => ({
|
set((state) => ({
|
||||||
addressSigners: { ...state.addressSigners, [signer.address]: signer },
|
addressSigners: { ...state.addressSigners, [signer.address]: signer },
|
||||||
}));
|
}));
|
||||||
@@ -39,9 +39,9 @@ const useAnonModeStore = create<AnonModeState>((set, get) => ({
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
const initializeAnonModeStore = async () => {
|
const initializeAnonModeStore = async () => {
|
||||||
const entries: [string, { privateKey: string; address: string }][] = await anonModeStore.entries();
|
const entries: [string, any][] = await anonModeStore.entries();
|
||||||
const threadSigners: { [key: string]: { privateKey: string; address: string } } = {};
|
const threadSigners: { [key: string]: any } = {};
|
||||||
const addressSigners: { [key: string]: { privateKey: string; address: string } } = {};
|
const addressSigners: { [key: string]: any } = {};
|
||||||
entries.forEach(([key, value]) => {
|
entries.forEach(([key, value]) => {
|
||||||
if (value.address) {
|
if (value.address) {
|
||||||
addressSigners[value.address] = value;
|
addressSigners[value.address] = value;
|
||||||
|
|||||||
Reference in New Issue
Block a user