Discussions

Ask a Question

trace(...) doesn't log the value string

While running blacklist.c (hooks-v2) I noticed that the trace() function shows the message but not the value. for example at line 43 trace(SBUF("Memo: "), memo_ptr, memo_len, 1); it logs only "Memo :" I tried several cases in others places but had the same result. As a workaround, I suppose, it could work by concat message+value
ANSWERED

Hook state

Hi, is there a way to query the ledger for a hook state from a specific account? Not from another hook (state foreign), but via an RPC/Websocket connection? Mike
ANSWERED

Emitted Tx fees

Hi Richard. Emitted Tx's pay ETH-like fees on both V1 and V2. Was there a change I didn't notice? I'm currently working with V1 since I can't get anything to work since the last changes to V2. At first I thought there was something wrong in my code, but it's the same in your "Doubler" example. EmitGeneration is 2 here, shouldn't it be 1? Is that the only reason for the high fees? ```JSON { Account:"rptaBzoWgDqCY3U9Vxc5k2eoNUdg1N1RHi", Amount:"2000000", Destination:"rnqi5WL2U7L2egV5x1o1ZzxeSpkB3VrxMg", DestinationTag:0, EmitDetails:{ EmitBurden:"0000000000000001", EmitCallback:"rptaBzoWgDqCY3U9Vxc5k2eoNUdg1N1RHi", EmitGeneration:2, EmitNonce:"8E4C1547EE4B206C26F46929530B4B14F0B0623C7D15D1A84F20F895714C3BA8", EmitParentTxnID:"D1A1517F8CA009D6614A73B94948F9167E3E124F991020021EAD0DBAC57FA2FD" } Fee:"81468750", FirstLedgerSequence:11502201, Flags:2147483648, LastLedgerSequence:11502205, Sequence:0, SigningPubKey:"000000000000000000000000000000000000000000000000000000000000000000", SourceTag:0, TransactionType:"Payment", date:707141532, hash:"6E4783C632353E2DF23AA554B21A5C783844B4C863BC071CC7CC35A419F9E67E", inLedger:11502201, ledger_index:11502201 } { Account:"rnqi5WL2U7L2egV5x1o1ZzxeSpkB3VrxMg", Amount:"1000000", Destination:"rptaBzoWgDqCY3U9Vxc5k2eoNUdg1N1RHi", Fee:"12", Flags:0, LastLedgerSequence:11502218, Sequence:10128668, SigningPubKey:"02175515AEF59E81E1E54BB8BC84EAEDD06EB376EF3AEE9D07A647CDDCBF0B5FC1", TransactionType:"Payment", TxnSignature:"304402205F533418F68DA85BEA010C47B4407B1E56572DF977040BD3A5125C63A44BEF2802204BA85F2CDF79327B092275C98D647712AB5B794FEBE4DFEA8AC01FED442009EC", date:707141531, hash:"D1A1517F8CA009D6614A73B94948F9167E3E124F991020021EAD0DBAC57FA2FD", inLedger:11502200, ledger_index:11502200 } ```
ANSWERED

install on v2 fails 2

txhash: 06A1985A7466547795C0049ABA17DE9CC2CC298E742AC2E542C7F0F0CDEE692D this is my first attempt on v2, I need help for this case I get a generic temMALFORMED response using accept.wasm hex string {"Hooks":[{"Hook":{"CreateCode":"0061736D01000000011F0560057F7F7F7F7F017E60037F7F7E017E60027F7F017F60000060017E017E02230303656E76057472616365000003656E7606616363657074000103656E76025F6700020304030304040405017001010105030100020621057F0141B088040B7F0041A6080B7F004180080B7F0041B088040B7F004180080B076608066D656D6F72790200115F5F7761736D5F63616C6C5F63746F727300030A5F5F646174615F656E6403010D5F5F676C6F62616C5F6261736503020B5F5F686561705F6261736503030C5F5F64736F5F68616E646C650304046362616B000404686F6F6B00050ABB010302000B2702037F017E238080808000210141102102200120026B2103420021042003200037030820040F0B8D0103037F017E087F238080808000210141102102200120026B2103200324808080800042002104410121054100210641808880800021074114210841948880800021094112210A20032000370308200720082009200A20061080808080001A2006200620041081808080001A200520051082808080001A4110210B2003200B6A210C200C24808080800020040F0B0B2D01004180080B26224163636570742E633A2043616C6C65642E22004163636570742E633A2043616C6C65642E00003A046E616D6501330600057472616365010661636365707402025F6703115F5F7761736D5F63616C6C5F63746F727304046362616B0504686F6F6B00750970726F647563657273010C70726F6365737365642D62790105636C616E6755392E302E30202868747470733A2F2F6769746875622E636F6D2F6C6C766D2F6C6C766D2D70726F6A656374203033393964356139363832623363656637316336353333373365333838393063363363346333363529","HookApiVersion":0,"HookNamespace":"C125D0397B605657BC89340953F5F2897A7E00A9B7D3474FA53720C8CCBBB3E3","HookOn":"0000000000000000"}}],"TransactionType":"SetHook","Account":"rLnT5MeahSnbR8j7dRXa39iD3Wpd9b8E2F","Sequence":1797094,"LastLedgerSequence":2091835,"Fee":"10000000","Flags":0}
ANSWERED

V2 Trace and Fee

Hallo, I migrated my code from v1 to v2 and am having some issues. 1) I have to pay at least 2 XRP for all transactions (not just the setHook tx) to be validated. And even then it takes between 5 and 10 ledgers. Is that normal? 2) I can't "trace" variables. Example: Works: TRACEVAR(5); - logs: "5 5" Doesn't work: uint8_t x = 5; TRACEVAR(x); - logs: "x " I've tried with and without the TRACEVAR macro, with self-set variables and variables retrieved from state, but it doesn't work. But the variables are set because the code works fine. Did something change when logging into v2 that I missed? Appreciate any help! Greets Chris
ANSWERED

V1 down?

Hi guys, I can't reach V1. Temporary or permanent?
ANSWERED

Install on V2 fails

Hi, I've been trying to install my hook on V2 now for a while - to no avail. I can't even install the hook from the documentation... Debugging says: Trying to wasm instantiate proposed hook size = 711 GuardCheck Total worse-case execution count: 1 GuardCheck Total worse-case execution count: 16 GuardCheck Total worse-case execution count: 285 Trying to wasm instantiate proposed hook size = 711 In a loop until the tx fails because of the last ledger sequence. Any suggestions what could cause this behaviour?
ANSWERED

Timestamp

Hey, I was just wondering if there is a way to get the current timestamp on an incoming transaction?
ANSWERED

Flash Loans - DeFi

The way hooks operate on-chain, would it be possible to deploy a Hook that facilitates flash loans to users? Since the XRPL requires a Hook to finish executing on the same ledger it was triggered, I think it's definitely possible to deploy a flash loan provider/platform. If anyone is interested to learn more about flash loans, do read: - https://www.blocksecteam.com/papers/sbc21_flashloan.pdf
ANSWERED

Hook Chaining

Me and Denis Angell are particularly confused about the Hooks Chaining feature, maybe Richard could elaborate this feature to us? I'm wondering what the documentation means by 'remote account', is this related to the positioning of attached Hooks on the Sending and Receiving account? I'm not confident about the Sending/Receiving account being related to this feature, since on the #0 Chain position, it describes to us that the Hook on the *host* account is executed and no particular Receiving account is mentioned as well. [Most Likely Answer Below] Or is the Hook Chaining feature allowing us to position Hooks on our account by priority? Let's say I have 2 Hooks on my account, a Carbon Hook (sends a sum to a specified account) & a Firewall Hook (checks a list...), I want the Firewall Hook to be executed first before the Carbon Hook. So I specify the Firewall Hook @ Chain Position #-3 and the Carbon Hook @ Chain Position #-2 in this particular scenario. If my guess is right, then Hooks Chaining is really valuable to the amendment :) . Mindless recommendation: Rather then only allowing users to input a Hook's position by priority(#), what about XRP / IOUs amount? E.g: If payment >= 1,000,000 XRP: #1: Carbon -> #2: Firewall If payment >= 1,000 XRP: #1: Firewall -> #2: Carbon ^ Ignore the logic for now, I'm guessing it'll fail if the account is listed on a blacklist as it'll just rollback. Related doc: https://xrpl-hooks.readme.io/docs/execution-order#hook-chaining-future-feature