Add memos field in transactions.

This commit is contained in:
muzam1l
2023-03-06 21:14:14 +05:30
parent 31043f33ab
commit 825af0db89
4 changed files with 107 additions and 5 deletions

View File

@@ -16,12 +16,21 @@ export type HookParameters = {
[key: string]: SelectOption
}
export type Memos = {
[key: string]: {
type: string
format: string
data: string
}
}
export interface TransactionState {
selectedTransaction: SelectOption | null
selectedAccount: SelectOption | null
selectedDestAccount: SelectOption | null
selectedFlags: SelectOption[] | null
hookParameters: HookParameters
memos: Memos
txIsLoading: boolean
txIsDisabled: boolean
txFields: TxFields
@@ -43,6 +52,7 @@ export const defaultTransaction: TransactionState = {
selectedDestAccount: null,
selectedFlags: null,
hookParameters: {},
memos: {},
txIsLoading: false,
txIsDisabled: false,
txFields: {},
@@ -167,7 +177,7 @@ export const prepareState = (value: string, transactionType?: string) => {
return
}
const { Account, TransactionType, Destination, HookParameters, ...rest } = options
const { Account, TransactionType, Destination, HookParameters, Memos, ...rest } = options
let tx: Partial<TransactionState> = {}
const schema = getTxFields(transactionType)
@@ -205,6 +215,14 @@ export const prepareState = (value: string, transactionType?: string) => {
}, {})
}
if (Memos && Memos instanceof Array) {
tx.memos = Memos.reduce<TransactionState["memos"]>((acc, cur, idx) => {
const memo = { data: fromHex(cur.Memo?.MemoData || ""), type: fromHex(cur.Memo?.MemoType || ""), format: fromHex(cur.Memo?.MemoFormat || "") }
acc[idx] = memo;
return acc;
}, {})
}
if (schema.Destination !== undefined) {
const dest = state.accounts.find(acc => acc.address === Destination)
if (dest) {