Compare commits

...

12 Commits

Author SHA1 Message Date
Valtteri Karesto
5aeed7c246 Few more changes to deleteHook function 2022-03-29 15:23:30 +03:00
Valtteri Karesto
8d03edc299 Fixes issue #148 2022-03-29 14:03:06 +03:00
Valtteri Karesto
4519906b78 hotfix/remove-console-log 2022-03-28 15:35:27 +03:00
Valtteri Karesto
88a47c49a4 Merge pull request #149 from eqlabs/fix/fix-hook-params
Convert hook params to hex blobs
2022-03-28 15:33:23 +03:00
Valtteri Karesto
1ab03f9bed Fix types 2022-03-28 15:22:10 +03:00
Valtteri Karesto
84ff667135 Convert hook params to hex blobs 2022-03-28 15:20:14 +03:00
Valtteri Karesto
0d10e782f3 Ask faucets account only once if you dont have one 2022-03-25 11:35:23 +02:00
Valtteri Karesto
84e6763495 hotfix/keep-accounts 2022-03-25 10:49:29 +02:00
Vaclav Barta
7ffcfd694d Feature/new hook doc (#144)
* added hooks-param-buf-len doc file

* showing help for hooks-param-buf-len

* added hooks-param-set-buf-len
2022-03-25 09:23:53 +01:00
Valtteri Karesto
77e4917d38 Merge pull request #145 from eqlabs/hotfix/fix-accounts
Fix problem with accounts
2022-03-25 10:21:47 +02:00
Valtteri Karesto
e4238a40cc Fix problem with accounts 2022-03-25 10:18:55 +02:00
Valtteri Karesto
42c0b20512 Merge pull request #136 from eqlabs/feat/hooks-v2-preparations
Feat/hooks v2 preparations
2022-03-25 09:48:19 +02:00
9 changed files with 46 additions and 10 deletions

View File

@@ -249,6 +249,7 @@ export const AccountDialog = ({
<Button
size="xs"
outline
disabled={activeAccount.isLoading}
css={{ mt: "$3", mr: "$1", ml: "auto" }}
onClick={() => {
deleteHook(activeAccount);

View File

@@ -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) {

View File

@@ -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);
}
}
})();

View File

@@ -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({

View File

@@ -24,6 +24,7 @@ export const importAccount = (secret: string) => {
sequence: 1,
hooks: [],
isLoading: false,
version: '2'
});
return toast.success("Account imported successfully!");
};

View File

@@ -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

View File

@@ -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,

View 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)

View 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)