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`

Name
Type
Description

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`

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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`

Name
Type
Description

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`

Name
Type
Description

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

Name
Type
Description

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

Name
Type
Description

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`