169 похожих чатов

Guys how i can call the following permit() function, what

parameters should i pass for v,r,s? Any help is appreciated!

function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) public virtual override {
require(block.timestamp <= deadline, "ERC20Permit: expired deadline");
bytes32 structHash = keccak256(abi.encode(_PERMIT_TYPEHASH, owner, spender, value, _useNonce(owner), deadline));
bytes32 hash = _hashTypedDataV4(structHash);
address signer = ECDSA.recover(hash, v, r, s);
require(signer == owner, "ERC20Permit: invalid signature");
_approve(owner, spender, value);
}

11 ответов

30 просмотров
Crypto-Find ⚠️ ☢️ Автор вопроса

Also can this be exploited so random user approves the tokens for another user to spend and then transfer them to his account via the transferFrom() function?

Its the signature you are going to pass

(v,r,s) are ECDSA components (digital signature)

Crypto-Find ⚠️ ☢️ Автор вопроса

Can this be exploited so users gets approval for spend on random addresses and withdraw each others tokens via transferFrom() function, because they will now have the allowances reuqired?

Without the user signing the permit data using his wallet, no

Crypto Find ⚠️ ☢️
Can this be exploited so users gets approval for s...

There are many attack vectors one can use to trick victims. However, the function alone is safe

Crypto-Find ⚠️ ☢️ Автор вопроса
Grim (Travelling)
Without the user signing the permit data using his...

can they use the 0x0 address as owner so they 'mint' them tokens from the -x- address?

Crypto-Find ⚠️ ☢️ Автор вопроса

So what i understand from this so far is - anyone can request for approval to spend someone's tokens but they cannot access them until the requested party 'approve' their request. Am i getting this right?

Crypto Find ⚠️ ☢️
So what i understand from this so far is - anyone ...

Think of it as like a real life permit. User A writes the following into a paper "User B is granting access to User A for taking X amount from User B's wallet" This has no validity until User B signs the paper right? That's exactly how erc20permit works too.

Crypto-Find ⚠️ ☢️ Автор вопроса
Grim (Travelling)
Think of it as like a real life permit. User A wri...

Thanks, thats good clarification! So this cannot be abused as 'mint' fom 0x0 address and withdrawing ones tokens without interaction from the requested side, yes?

Crypto Find ⚠️ ☢️
Thanks, thats good clarification! So this cannot b...

Yep just like normal approve-transferFrom pattern, you can't take it without the requested party's consent (sign)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта