use alloy_sol_types::sol;
pub mod trc20 {
use super::sol;
sol! {
function balanceOf(address account) external view returns (uint256);
}
}
pub mod eip3009 {
use super::sol;
sol! {
function authorizationState(address authorizer, bytes32 nonce) external view returns (bool);
function transferWithAuthorization(
address from,
address to,
uint256 value,
uint256 validAfter,
uint256 validBefore,
bytes32 nonce,
bytes calldata signature
) external;
}
}
pub mod x402_exact_permit2_proxy {
use super::sol;
sol! {
struct TronTokenPermissions {
address token;
uint256 amount;
}
struct TronPermitTransferFrom {
TronTokenPermissions permitted;
uint256 nonce;
uint256 deadline;
}
struct TronWitness {
address to;
uint256 validAfter;
}
function settle(
TronPermitTransferFrom permit,
address owner,
TronWitness witness,
bytes signature
) external;
}
}