Hi. I have few questions regarding permit2
- When I'm manually checking the length of parmitData its length is coming 32 * 12. Shouldnt it be 32 * 8 ? Can someone tell me correctly way for calculating bytes length when structs are involved.
- How can we encode parameters of permitTransferFrom function using ethers.js.
// My call
PERMIT2.call(abi.encodePacked(IPermit2.permitTransferFrom.selector, permitData));
------------------------------
// permit2
struct TokenPermissions {
address token;
uint256 amount;
}
struct PermitTransferFrom {
TokenPermissions permitted;
uint256 nonce;
uint256 deadline;
}
struct SignatureTransferDetails {
address to;
uint256 requestedAmount;
}
function permitTransferFrom(
PermitTransferFrom memory permit,
SignatureTransferDetails calldata transferDetails,
address owner,
bytes calldata signature
) external;