pub struct SpendPermissionPayload {
pub data: Eip712Message,
pub payload_id: String,
pub type_: SpendPermissionPayloadType,
}Expand description
A spend permission EIP-712 typed-data payload. The payer must pass data to eth_signTypedData_v4 and return the resulting signature. This grants a spender the ability to transfer tokens from the payer’s smart account under the specified constraints (allowance, period, expiry).
JSON schema
{
"title": "Spend Permission Payload",
"description": "A spend permission EIP-712 typed-data payload. The payer must pass `data` to `eth_signTypedData_v4` and return the resulting signature. This grants a spender the ability to transfer tokens from the payer's smart account under the specified constraints (allowance, period, expiry).",
"examples": [
{
"data": {
"domain": {
"chainId": 8453,
"name": "Spend Permission Manager",
"verifyingContract": "0xf85210b21cc50302f477ba56686d2019dc9b67ad",
"version": "1"
},
"message": {
"account": "0xd53Ee96438383Bb1eff07958D110B81363E9Ab47",
"allowance": "1000000000000000000",
"end": "281474976710655",
"extraData": "0x",
"period": "86400",
"salt": "0",
"spender": "0x9Fb909eA400c2b8D99Be292DADf07e63B814527c",
"start": "0",
"token": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"
},
"primaryType": "SpendPermission",
"types": {
"EIP712Domain": [
{
"name": "name",
"type": "string"
},
{
"name": "version",
"type": "string"
},
{
"name": "chainId",
"type": "uint256"
},
{
"name": "verifyingContract",
"type": "address"
}
],
"SpendPermission": [
{
"name": "account",
"type": "address"
},
{
"name": "spender",
"type": "address"
},
{
"name": "token",
"type": "address"
},
{
"name": "allowance",
"type": "uint160"
},
{
"name": "period",
"type": "uint48"
},
{
"name": "start",
"type": "uint48"
},
{
"name": "end",
"type": "uint48"
},
{
"name": "salt",
"type": "uint256"
},
{
"name": "extraData",
"type": "bytes"
}
]
}
},
"payloadId": "payload_dh5170e3-c179-7jk0-eib2-fff55g268447",
"type": "spend_permission"
}
],
"type": "object",
"required": [
"data",
"payloadId",
"type"
],
"properties": {
"data": {
"description": "EIP-712 typed data for a SpendPermission approval. Pass to `eth_signTypedData_v4`.",
"examples": [
{
"domain": {
"chainId": 8453,
"name": "Spend Permission Manager",
"verifyingContract": "0xf85210b21cc50302f477ba56686d2019dc9b67ad",
"version": "1"
},
"message": {
"account": "0xd53Ee96438383Bb1eff07958D110B81363E9Ab47",
"allowance": "1000000000000000000",
"end": "281474976710655",
"extraData": "0x",
"period": "86400",
"salt": "0",
"spender": "0x9Fb909eA400c2b8D99Be292DADf07e63B814527c",
"start": "0",
"token": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"
},
"primaryType": "SpendPermission",
"types": {
"EIP712Domain": [
{
"name": "name",
"type": "string"
},
{
"name": "version",
"type": "string"
},
{
"name": "chainId",
"type": "uint256"
},
{
"name": "verifyingContract",
"type": "address"
}
],
"SpendPermission": [
{
"name": "account",
"type": "address"
},
{
"name": "spender",
"type": "address"
},
{
"name": "token",
"type": "address"
},
{
"name": "allowance",
"type": "uint160"
},
{
"name": "period",
"type": "uint48"
},
{
"name": "start",
"type": "uint48"
},
{
"name": "end",
"type": "uint48"
},
{
"name": "salt",
"type": "uint256"
},
{
"name": "extraData",
"type": "bytes"
}
]
}
}
],
"allOf": [
{
"$ref": "#/components/schemas/EIP712Message"
}
]
},
"payloadId": {
"description": "The unique identifier of the payload.",
"examples": [
"payload_dh5170e3-c179-7jk0-eib2-fff55g268447"
],
"type": "string"
},
"type": {
"description": "The payload type.",
"examples": [
"spend_permission"
],
"type": "string",
"enum": [
"spend_permission"
]
}
}
}Fields§
§data: Eip712MessageEIP-712 typed data for a SpendPermission approval. Pass to eth_signTypedData_v4.
payload_id: StringThe unique identifier of the payload.
type_: SpendPermissionPayloadTypeThe payload type.
Implementations§
Source§impl SpendPermissionPayload
impl SpendPermissionPayload
pub fn builder() -> SpendPermissionPayload
Trait Implementations§
Source§impl Clone for SpendPermissionPayload
impl Clone for SpendPermissionPayload
Source§impl Debug for SpendPermissionPayload
impl Debug for SpendPermissionPayload
Source§impl<'de> Deserialize<'de> for SpendPermissionPayload
impl<'de> Deserialize<'de> for SpendPermissionPayload
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<&SpendPermissionPayload> for SpendPermissionPayload
impl From<&SpendPermissionPayload> for SpendPermissionPayload
Source§fn from(value: &SpendPermissionPayload) -> Self
fn from(value: &SpendPermissionPayload) -> Self
Converts to this type from the input type.
Source§impl From<SpendPermissionPayload> for OnchainSignaturePayload
impl From<SpendPermissionPayload> for OnchainSignaturePayload
Source§fn from(value: SpendPermissionPayload) -> Self
fn from(value: SpendPermissionPayload) -> Self
Converts to this type from the input type.
Source§impl From<SpendPermissionPayload> for SpendPermissionPayload
impl From<SpendPermissionPayload> for SpendPermissionPayload
Source§fn from(value: SpendPermissionPayload) -> Self
fn from(value: SpendPermissionPayload) -> Self
Converts to this type from the input type.
Source§impl Serialize for SpendPermissionPayload
impl Serialize for SpendPermissionPayload
Source§impl TryFrom<SpendPermissionPayload> for SpendPermissionPayload
impl TryFrom<SpendPermissionPayload> for SpendPermissionPayload
Source§type Error = ConversionError
type Error = ConversionError
The type returned in the event of a conversion error.
Source§fn try_from(value: SpendPermissionPayload) -> Result<Self, ConversionError>
fn try_from(value: SpendPermissionPayload) -> Result<Self, ConversionError>
Performs the conversion.
Auto Trait Implementations§
impl Freeze for SpendPermissionPayload
impl RefUnwindSafe for SpendPermissionPayload
impl Send for SpendPermissionPayload
impl Sync for SpendPermissionPayload
impl Unpin for SpendPermissionPayload
impl UnsafeUnpin for SpendPermissionPayload
impl UnwindSafe for SpendPermissionPayload
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more