SelfPermit

SelfPermit

Self Permit Functionality to call permit on any EIP-2612-compliant token for use in the route Developer note: These functions are expected to be embedded in multicalls to allow EOAs to approve a contract and call a function that requires an approval in a single transaction.

Functions

selfPermit

selfPermit(address,uint256,uint256,uint8,bytes32,bytes32) payable public

Permits this contract to spend a given token from `msg.sender`

NameTypeDescription

token

address

The address of the token spent

value

uint256

The amount that can be spent of token

deadline

uint256

A timestamp, the current blocktime must be less than or equal to this timestamp

v

uint8

Must produce valid secp256k1 signature from the holder along with `r` and `s`

r

bytes32

Must produce valid secp256k1 signature from the holder along with `v` and `s`

s

bytes32

Must produce valid secp256k1 signature from the holder along with `r` and `v`

selfPermitIfNecessary

selfPermitIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32) payable external

Permits this contract to spend a given token from `msg.sender`

NameTypeDescription

token

address

The address of the token spent

value

uint256

The amount that can be spent of token

deadline

uint256

A timestamp, the current blocktime must be less than or equal to this timestamp

v

uint8

Must produce valid secp256k1 signature from the holder along with `r` and `s`

r

bytes32

Must produce valid secp256k1 signature from the holder along with `v` and `s`

s

bytes32

Must produce valid secp256k1 signature from the holder along with `r` and `v`

selfPermitAllowed

selfPermitAllowed(address,uint256,uint256,uint8,bytes32,bytes32) payable public

Permits this contract to spend the sender's tokens for permit signatures that have the `allowed` parameter

NameTypeDescription

token

address

The address of the token spent

nonce

uint256

The current nonce of the owner

expiry

uint256

The timestamp at which the permit is no longer valid

v

uint8

Must produce valid secp256k1 signature from the holder along with `r` and `s`

r

bytes32

Must produce valid secp256k1 signature from the holder along with `v` and `s`

s

bytes32

Must produce valid secp256k1 signature from the holder along with `r` and `v`

selfPermitAllowedIfNecessary

selfPermitAllowedIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32) payable external

Permits this contract to spend the sender's tokens for permit signatures that have the `allowed` parameter

NameTypeDescription

token

address

The address of the token spent

nonce

uint256

The current nonce of the owner

expiry

uint256

The timestamp at which the permit is no longer valid

v

uint8

Must produce valid secp256k1 signature from the holder along with `r` and `s`

r

bytes32

Must produce valid secp256k1 signature from the holder along with `v` and `s`

s

bytes32

Must produce valid secp256k1 signature from the holder along with `r` and `v`


SelfPermit

Self Permit Functionality to call permit on any EIP-2612-compliant token for use in the route Developer note: These functions are expected to be embedded in multicalls to allow EOAs to approve a contract and call a function that requires an approval in a single transaction.

Functions

selfPermit

selfPermit(address,uint256,uint256,uint8,bytes32,bytes32) payable public

Permits this contract to spend a given token from `msg.sender`

NameTypeDescription

token

address

The address of the token spent

value

uint256

The amount that can be spent of token

deadline

uint256

A timestamp, the current blocktime must be less than or equal to this timestamp

v

uint8

Must produce valid secp256k1 signature from the holder along with `r` and `s`

r

bytes32

Must produce valid secp256k1 signature from the holder along with `v` and `s`

s

bytes32

Must produce valid secp256k1 signature from the holder along with `r` and `v`

selfPermitIfNecessary

selfPermitIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32) payable external

Permits this contract to spend a given token from `msg.sender`

NameTypeDescription

token

address

The address of the token spent

value

uint256

The amount that can be spent of token

deadline

uint256

A timestamp, the current blocktime must be less than or equal to this timestamp

v

uint8

Must produce valid secp256k1 signature from the holder along with `r` and `s`

r

bytes32

Must produce valid secp256k1 signature from the holder along with `v` and `s`

s

bytes32

Must produce valid secp256k1 signature from the holder along with `r` and `v`

selfPermitAllowed

selfPermitAllowed(address,uint256,uint256,uint8,bytes32,bytes32) payable public

Permits this contract to spend the sender's tokens for permit signatures that have the `allowed` parameter

NameTypeDescription

token

address

The address of the token spent

nonce

uint256

The current nonce of the owner

expiry

uint256

The timestamp at which the permit is no longer valid

v

uint8

Must produce valid secp256k1 signature from the holder along with `r` and `s`

r

bytes32

Must produce valid secp256k1 signature from the holder along with `v` and `s`

s

bytes32

Must produce valid secp256k1 signature from the holder along with `r` and `v`

selfPermitAllowedIfNecessary

selfPermitAllowedIfNecessary(address,uint256,uint256,uint8,bytes32,bytes32) payable external

Permits this contract to spend the sender's tokens for permit signatures that have the `allowed` parameter

NameTypeDescription

token

address

The address of the token spent

nonce

uint256

The current nonce of the owner

expiry

uint256

The timestamp at which the permit is no longer valid

v

uint8

Must produce valid secp256k1 signature from the holder along with `r` and `s`

r

bytes32

Must produce valid secp256k1 signature from the holder along with `v` and `s`

s

bytes32

Must produce valid secp256k1 signature from the holder along with `r` and `v`