Compare commits
12 Commits
feat/hooks
...
fix/disabl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5aeed7c246 | ||
|
|
8d03edc299 | ||
|
|
4519906b78 | ||
|
|
88a47c49a4 | ||
|
|
1ab03f9bed | ||
|
|
84ff667135 | ||
|
|
0d10e782f3 | ||
|
|
84e6763495 | ||
|
|
7ffcfd694d | ||
|
|
77e4917d38 | ||
|
|
e4238a40cc | ||
|
|
42c0b20512 |
@@ -249,6 +249,7 @@ export const AccountDialog = ({
|
||||
<Button
|
||||
size="xs"
|
||||
outline
|
||||
disabled={activeAccount.isLoading}
|
||||
css={{ mt: "$3", mr: "$1", ml: "auto" }}
|
||||
onClick={() => {
|
||||
deleteHook(activeAccount);
|
||||
|
||||
@@ -112,7 +112,7 @@ const DebugStream = () => {
|
||||
// Filter out account_info and account_objects requests
|
||||
try {
|
||||
const parsed = JSON.parse(log.jsonData);
|
||||
if (parsed.id.includes("hooks-builder-req")) {
|
||||
if (parsed?.id?._Request?.includes("hooks-builder-req")) {
|
||||
return;
|
||||
}
|
||||
} catch (err) {
|
||||
|
||||
@@ -59,6 +59,7 @@ export const addFaucetAccount = async (showToast: boolean = false) => {
|
||||
sequence: 1,
|
||||
hooks: [],
|
||||
isLoading: false,
|
||||
version: '2'
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -67,11 +68,11 @@ export const addFaucetAccount = async (showToast: boolean = false) => {
|
||||
// fetch initial faucets
|
||||
(async function fetchFaucets() {
|
||||
if (typeof window !== 'undefined') {
|
||||
if (state.accounts.length < 2) {
|
||||
if (state.accounts.length === 0) {
|
||||
await addFaucetAccount();
|
||||
setTimeout(() => {
|
||||
addFaucetAccount();
|
||||
}, 10000);
|
||||
// setTimeout(() => {
|
||||
// addFaucetAccount();
|
||||
// }, 10000);
|
||||
}
|
||||
}
|
||||
})();
|
||||
|
||||
@@ -15,6 +15,13 @@ const hash = async (string: string) => {
|
||||
return hashHex;
|
||||
}
|
||||
|
||||
function toHex(str: string) {
|
||||
var result = '';
|
||||
for (var i = 0; i < str.length; i++) {
|
||||
result += str.charCodeAt(i).toString(16);
|
||||
}
|
||||
return result.toUpperCase();
|
||||
}
|
||||
|
||||
function arrayBufferToHex(arrayBuffer?: ArrayBuffer | null) {
|
||||
if (!arrayBuffer) {
|
||||
@@ -64,7 +71,7 @@ export const deployHook = async (account: IAccount & { name?: string }, data: Se
|
||||
).toUpperCase());
|
||||
const hookOnValues: (keyof TTS)[] = data.Invoke.map(tt => tt.value);
|
||||
const { HookParameters } = data;
|
||||
const filteredHookParameters = HookParameters.filter(hp => hp.HookParameter.HookParameterName && hp.HookParameter.HookParameterValue);
|
||||
const filteredHookParameters = HookParameters.filter(hp => hp.HookParameter.HookParameterName && hp.HookParameter.HookParameterValue)?.map(aa => ({ HookParameter: { HookParameterName: toHex(aa.HookParameter.HookParameterName || ''), HookParameterValue: toHex(aa.HookParameter.HookParameterValue || '') } }));
|
||||
// const filteredHookGrants = HookGrants.filter(hg => hg.HookGrant.Authorize || hg.HookGrant.HookHash).map(hg => {
|
||||
// return {
|
||||
// HookGrant: {
|
||||
@@ -74,6 +81,7 @@ export const deployHook = async (account: IAccount & { name?: string }, data: Se
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
|
||||
if (typeof window !== "undefined") {
|
||||
const tx = {
|
||||
Account: account.address,
|
||||
@@ -145,7 +153,12 @@ export const deleteHook = async (account: IAccount & { name?: string }) => {
|
||||
if (!state.client) {
|
||||
return;
|
||||
}
|
||||
|
||||
const currentAccount = state.accounts.find(
|
||||
(acc) => acc.address === account.address
|
||||
);
|
||||
if (currentAccount?.isLoading || !currentAccount?.hooks.length) {
|
||||
return
|
||||
}
|
||||
if (typeof window !== "undefined") {
|
||||
const tx = {
|
||||
Account: account.address,
|
||||
@@ -164,9 +177,7 @@ export const deleteHook = async (account: IAccount & { name?: string }) => {
|
||||
|
||||
const keypair = derive.familySeed(account.secret);
|
||||
const { signedTransaction } = sign(tx, keypair);
|
||||
const currentAccount = state.accounts.find(
|
||||
(acc) => acc.address === account.address
|
||||
);
|
||||
|
||||
if (currentAccount) {
|
||||
currentAccount.isLoading = true;
|
||||
}
|
||||
@@ -188,6 +199,7 @@ export const deleteHook = async (account: IAccount & { name?: string }) => {
|
||||
type: "success",
|
||||
message: `[${submitRes.engine_result}] ${submitRes.engine_result_message} Validated ledger index: ${submitRes.validated_ledger_index}`,
|
||||
});
|
||||
currentAccount.hooks = [];
|
||||
} else {
|
||||
toast.error(`${submitRes.engine_result_message || submitRes.error_exception}`, { id: toastId })
|
||||
state.deployLogs.push({
|
||||
|
||||
@@ -24,6 +24,7 @@ export const importAccount = (secret: string) => {
|
||||
sequence: 1,
|
||||
hooks: [],
|
||||
isLoading: false,
|
||||
version: '2'
|
||||
});
|
||||
return toast.success("Account imported successfully!");
|
||||
};
|
||||
@@ -34,6 +34,7 @@ export interface IAccount {
|
||||
sequence: number;
|
||||
hooks: string[];
|
||||
isLoading: boolean;
|
||||
version?: string;
|
||||
}
|
||||
|
||||
export interface ILog {
|
||||
@@ -119,6 +120,8 @@ if (typeof window !== "undefined") {
|
||||
if (localStorageAccounts) {
|
||||
initialAccounts = JSON.parse(localStorageAccounts);
|
||||
}
|
||||
// filter out old accounts (they do not have version property at all)
|
||||
// initialAccounts = initialAccounts.filter(acc => acc.version === '2');
|
||||
}
|
||||
|
||||
// Initialize state
|
||||
|
||||
@@ -25,6 +25,8 @@ import hooksGuardInFor from "./md/hooks-guard-in-for.md";
|
||||
import hooksGuardInWhile from "./md/hooks-guard-in-while.md";
|
||||
import hooksHashBufLen from "./md/hooks-hash-buf-len.md";
|
||||
import hooksKeyletBufLen from "./md/hooks-keylet-buf-len.md";
|
||||
import hooksParamBufLen from "./md/hooks-param-buf-len.md";
|
||||
import hooksParamSetBufLen from "./md/hooks-param-set-buf-len.md";
|
||||
import hooksRaddrConvBufLen from "./md/hooks-raddr-conv-buf-len.md";
|
||||
import hooksRaddrConvPure from "./md/hooks-raddr-conv-pure.md";
|
||||
import hooksReserveLimit from "./md/hooks-reserve-limit.md";
|
||||
@@ -69,6 +71,8 @@ const docs: { [key: string]: string; } = {
|
||||
"hooks-guard-in-while": hooksGuardInWhile,
|
||||
"hooks-hash-buf-len": hooksHashBufLen,
|
||||
"hooks-keylet-buf-len": hooksKeyletBufLen,
|
||||
"hooks-param-buf-len": hooksParamBufLen,
|
||||
"hooks-param-set-buf-len": hooksParamSetBufLen,
|
||||
"hooks-raddr-conv-buf-len": hooksRaddrConvBufLen,
|
||||
"hooks-raddr-conv-pure": hooksRaddrConvPure,
|
||||
"hooks-reserve-limit": hooksReserveLimit,
|
||||
|
||||
7
xrpl-hooks-docs/md/hooks-param-buf-len.md
Normal file
7
xrpl-hooks-docs/md/hooks-param-buf-len.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# hooks-param-buf-len
|
||||
|
||||
Function [hook_param](https://xrpl-hooks.readme.io/v2.0/reference/hook_param) expects a limited-length name input and produces fixed-size value output.
|
||||
|
||||
This check warns about invalid sizes of input and output buffers (if they're specified by constants - variable parameters are ignored).
|
||||
|
||||
[Read more](https://xrpl-hooks.readme.io/v2.0/docs/parameters)
|
||||
7
xrpl-hooks-docs/md/hooks-param-set-buf-len.md
Normal file
7
xrpl-hooks-docs/md/hooks-param-set-buf-len.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# hooks-param-set-buf-len
|
||||
|
||||
Function [hook_param_set](https://xrpl-hooks.readme.io/v2.0/reference/hook_param_set) expects limited-length name, fixed-length hash and limited-length value inputs.
|
||||
|
||||
This check warns about invalid sizes of input buffers (if they're specified by constants - variable parameters are ignored).
|
||||
|
||||
[Read more](https://xrpl-hooks.readme.io/v2.0/docs/parameters)
|
||||
Reference in New Issue
Block a user