Documentation
      ¶
    
    
  
    
  
    Overview ¶
sequence-waas-intents v0.1.0 1fe0a24abef81231c54c0886157c65ef738d5ed6 -- Code generated by webrpc-gen@v0.19.3 with golang generator. DO NOT EDIT.
webrpc-gen -schema=intent.ridl -target=golang -pkg=intents -out=./intent.gen.go
Index ¶
- Constants
 - Variables
 - func EncodeDelayedABI(data *delayedEncodeType) (string, error)
 - func IsValidSessionSignature(sessionId string, signature string, intent *Intent) error
 - func IsValidSessionSignatureP256K1(sessionId string, signature string, intent *Intent) error
 - func IsValidSessionSignatureP256R1(sessionId string, signature string, intent *Intent) error
 - func MethodNameFromContext(ctx context.Context) string
 - func RequestFromContext(ctx context.Context) *http.Request
 - func ServiceNameFromContext(ctx context.Context) string
 - func SessionAuthProofMessage(sessionId string, wallet string, nonce *string) string
 - func SignIntentP256K1(wallet *ethwallet.Wallet, intent *Intent) error
 - func SignIntentP256R1(privateKey *ecdsa.PrivateKey, intent *Intent) error
 - func SignIntentWithWalletLegacy(wallet *ethwallet.Wallet, intent *Intent) error
 - func WebRPCSchemaHash() string
 - func WebRPCSchemaVersion() string
 - func WebRPCVersion() string
 - type Account
 - type ExpectedValuesForTransaction
 - type FeeOption
 - type FeeToken
 - type FeeTokenType
 - type IdentityType
 - type Intent
 - type IntentDataCloseSession
 - type IntentDataFederateAccount
 - type IntentDataFeeOptions
 - type IntentDataFinishValidateSession
 - type IntentDataGetIdToken
 - type IntentDataGetSession
 - type IntentDataGetTransactionReceipt
 - type IntentDataInitiateAuth
 - type IntentDataListAccounts
 - type IntentDataListSessions
 - type IntentDataOpenSession
 - type IntentDataRemoveAccount
 - type IntentDataSendTransaction
 - func (p *IntentDataSendTransaction) ExpectedValuesFor(txRaw *json.RawMessage) (*ExpectedValuesForTransaction, error)
 - func (p *IntentDataSendTransaction) IsValidInterpretation(subdigest common.Hash, txns sequence.Transactions, nonce *big.Int) bool
 - func (p *IntentDataSendTransaction) Nonce() (*big.Int, error)
 
- type IntentDataSessionAuthProof
 - type IntentDataSignMessage
 - type IntentDataValidateSession
 - type IntentDataValidator
 - type IntentName
 - type IntentResponse
 - type IntentResponseAccountFederated
 - type IntentResponseAccountList
 - type IntentResponseAccountRemoved
 - type IntentResponseAuthInitiated
 - type IntentResponseCode
 - type IntentResponseFeeOptions
 - type IntentResponseGetSession
 - type IntentResponseIdToken
 - type IntentResponseListSessions
 - type IntentResponseSessionAuthProof
 - type IntentResponseSessionClosed
 - type IntentResponseSessionOpened
 - type IntentResponseSignedMessage
 - type IntentResponseTransactionFailed
 - type IntentResponseTransactionReceipt
 - type IntentResponseTyped
 - type IntentResponseValidateSession
 - type IntentResponseValidationFinished
 - type IntentResponseValidationRequired
 - type IntentResponseValidationStarted
 - type IntentTyped
 - type KeyType
 - type SendTransactionFailed
 - type SendTransactionResponse
 - type Session
 - type Signature
 - type TransactionDelayedEncode
 - type TransactionERC1155
 - type TransactionERC1155Value
 - type TransactionERC20
 - type TransactionERC721
 - type TransactionRaw
 - type TransactionType
 - type WebRPCError
 
Constants ¶
const IntentAllowedTimeDriftInSec = 5
    const IntentValidTimeInSec = 60
    const SendTransactionFailedCode = "transactionFailed"
    const SendTransactionResponseCode = "transactionReceipt"
    Variables ¶
var ( HTTPRequestCtxKey = &contextKey{"HTTPRequest"} ServiceNameCtxKey = &contextKey{"ServiceName"} MethodNameCtxKey = &contextKey{"MethodName"} )
var ( ErrWebrpcEndpoint = WebRPCError{Code: 0, Name: "WebrpcEndpoint", Message: "endpoint error", HTTPStatus: 400} ErrWebrpcRequestFailed = WebRPCError{Code: -1, Name: "WebrpcRequestFailed", Message: "request failed", HTTPStatus: 400} ErrWebrpcBadRoute = WebRPCError{Code: -2, Name: "WebrpcBadRoute", Message: "bad route", HTTPStatus: 404} ErrWebrpcBadMethod = WebRPCError{Code: -3, Name: "WebrpcBadMethod", Message: "bad method", HTTPStatus: 405} ErrWebrpcBadRequest = WebRPCError{Code: -4, Name: "WebrpcBadRequest", Message: "bad request", HTTPStatus: 400} ErrWebrpcBadResponse = WebRPCError{Code: -5, Name: "WebrpcBadResponse", Message: "bad response", HTTPStatus: 500} ErrWebrpcServerPanic = WebRPCError{Code: -6, Name: "WebrpcServerPanic", Message: "server panic", HTTPStatus: 500} ErrWebrpcInternalError = WebRPCError{Code: -7, Name: "WebrpcInternalError", Message: "internal error", HTTPStatus: 500} ErrWebrpcClientDisconnected = WebRPCError{Code: -8, Name: "WebrpcClientDisconnected", Message: "client disconnected", HTTPStatus: 400} ErrWebrpcStreamLost = WebRPCError{Code: -9, Name: "WebrpcStreamLost", Message: "stream lost", HTTPStatus: 400} ErrWebrpcStreamFinished = WebRPCError{Code: -10, Name: "WebrpcStreamFinished", Message: "stream finished", HTTPStatus: 200} )
Webrpc errors
var FeeTokenType_name = map[uint32]string{
	0: "unknown",
	1: "erc20Token",
	2: "erc1155Token",
}
    var FeeTokenType_value = map[string]uint32{
	"unknown":      0,
	"erc20Token":   1,
	"erc1155Token": 2,
}
    var WebRPCServices = map[string][]string{}
    Functions ¶
func EncodeDelayedABI ¶
func IsValidSessionSignature ¶
func IsValidSessionSignatureP256K1 ¶
IsValidSessionSignatureP256K1 checks if the signature is valid for the given secp256k1 session
func IsValidSessionSignatureP256R1 ¶
IsValidSessionSignatureP256R1 checks if the signature is valid for the given secp256r1 session
func MethodNameFromContext ¶
func ServiceNameFromContext ¶
func SessionAuthProofMessage ¶ added in v0.29.4
func SignIntentP256R1 ¶
func SignIntentP256R1(privateKey *ecdsa.PrivateKey, intent *Intent) error
Types ¶
type Account ¶ added in v0.31.0
type Account struct {
	ID     string       `json:"id"`
	Type   IdentityType `json:"type"`
	Issuer *string      `json:"issuer,omitempty"`
	Email  *string      `json:"email,omitempty"`
}
    type FeeTokenType ¶ added in v0.29.1
type FeeTokenType uint32
const ( FeeTokenType_unknown FeeTokenType = 0 FeeTokenType_erc20Token FeeTokenType = 1 FeeTokenType_erc1155Token FeeTokenType = 2 )
func (*FeeTokenType) Is ¶ added in v0.29.1
func (x *FeeTokenType) Is(values ...FeeTokenType) bool
func (FeeTokenType) MarshalText ¶ added in v0.29.1
func (x FeeTokenType) MarshalText() ([]byte, error)
func (FeeTokenType) String ¶ added in v0.29.1
func (x FeeTokenType) String() string
func (*FeeTokenType) UnmarshalText ¶ added in v0.29.1
func (x *FeeTokenType) UnmarshalText(b []byte) error
type IdentityType ¶ added in v0.31.0
type IdentityType string
const ( IdentityType_None IdentityType = "None" IdentityType_Guest IdentityType = "Guest" IdentityType_OIDC IdentityType = "OIDC" IdentityType_Email IdentityType = "Email" IdentityType_PlayFab IdentityType = "PlayFab" IdentityType_Stytch IdentityType = "Stytch" )
func (*IdentityType) Is ¶ added in v0.31.0
func (x *IdentityType) Is(values ...IdentityType) bool
func (IdentityType) MarshalText ¶ added in v0.31.0
func (x IdentityType) MarshalText() ([]byte, error)
func (*IdentityType) UnmarshalText ¶ added in v0.31.0
func (x *IdentityType) UnmarshalText(b []byte) error
type Intent ¶
type Intent struct {
	Version    string       `json:"version"`
	Name       IntentName   `json:"name"`
	ExpiresAt  uint64       `json:"expiresAt"`
	IssuedAt   uint64       `json:"issuedAt"`
	Data       interface{}  `json:"data"`
	Signatures []*Signature `json:"signatures,omitempty"`
}
    type IntentDataCloseSession ¶
type IntentDataCloseSession struct {
	SessionID string `json:"sessionId"`
}
    type IntentDataFederateAccount ¶ added in v0.31.0
type IntentDataFederateAccount struct {
	SessionID    string       `json:"sessionId"`
	Wallet       string       `json:"wallet"`
	IdentityType IdentityType `json:"identityType"`
	Verifier     string       `json:"verifier,omitempty"`
	Answer       string       `json:"answer,omitempty"`
}
    type IntentDataFeeOptions ¶ added in v0.29.1
type IntentDataFeeOptions struct {
	Network string `json:"network"`
	Wallet  string `json:"wallet"`
	// is used to generate nonce space
	Identifier   string            `json:"identifier"`
	Transactions []json.RawMessage `json:"transactions"`
}
    type IntentDataGetIdToken ¶ added in v0.33.0
type IntentDataGetSession ¶
type IntentDataGetTransactionReceipt ¶ added in v0.29.2
type IntentDataInitiateAuth ¶ added in v0.33.0
type IntentDataInitiateAuth struct {
	SessionID    string       `json:"sessionId"`
	IdentityType IdentityType `json:"identityType"`
	Verifier     string       `json:"verifier"`
	Metadata     *string      `json:"metadata,omitempty"`
}
    type IntentDataListAccounts ¶ added in v0.31.0
type IntentDataListAccounts struct {
	Wallet string `json:"wallet"`
}
    type IntentDataListSessions ¶
type IntentDataListSessions struct {
	Wallet string `json:"wallet"`
}
    type IntentDataOpenSession ¶
type IntentDataOpenSession struct {
	SessionID          string       `json:"sessionId"`
	IdentityType       IdentityType `json:"identityType,omitempty"`
	Verifier           string       `json:"verifier,omitempty"`
	Answer             string       `json:"answer,omitempty"`
	ForceCreateAccount bool         `json:"forceCreateAccount,omitempty"`
	// Deprecated
	Email *string `json:"email,omitempty"`
	// Deprecated
	IdToken *string `json:"idToken,omitempty"`
}
    func (*IntentDataOpenSession) IsValid ¶
func (id *IntentDataOpenSession) IsValid() error
type IntentDataRemoveAccount ¶ added in v0.31.0
type IntentDataSendTransaction ¶
type IntentDataSendTransaction struct {
	Network string `json:"network"`
	Wallet  string `json:"wallet"`
	// is used to generate nonce space
	Identifier           string            `json:"identifier"`
	Transactions         []json.RawMessage `json:"transactions"`
	TransactionsFeeQuote *string           `json:"transactionsFeeQuote,omitempty"`
}
    func (*IntentDataSendTransaction) ExpectedValuesFor ¶
func (p *IntentDataSendTransaction) ExpectedValuesFor(txRaw *json.RawMessage) (*ExpectedValuesForTransaction, error)
func (*IntentDataSendTransaction) IsValidInterpretation ¶
type IntentDataSessionAuthProof ¶ added in v0.29.4
type IntentDataSessionAuthProof struct {
	Network string  `json:"network"`
	Wallet  string  `json:"wallet"`
	Nonce   *string `json:"nonce"`
}
    func (*IntentDataSessionAuthProof) IsValidInterpretation ¶ added in v0.29.4
func (id *IntentDataSessionAuthProof) IsValidInterpretation(sessionID string, message string) error
type IntentDataSignMessage ¶
type IntentDataSignMessage struct {
	Network string `json:"network"`
	Wallet  string `json:"wallet"`
	Message string `json:"message"`
}
    func (*IntentDataSignMessage) IsValidInterpretation ¶
func (p *IntentDataSignMessage) IsValidInterpretation(subdigest common.Hash) bool
A SignMessagePacket (intent) *MUST* be mapped to a regular "SignMessage" Sequence action, this means that it must adhere to the following rules: - the subdigest must match `SubDigest(chainID, Wallet, Digest(Message))`
type IntentDataValidator ¶
type IntentDataValidator interface {
	IsValid() error
}
    type IntentName ¶ added in v0.31.0
type IntentName string
const ( IntentName_initiateAuth IntentName = "initiateAuth" IntentName_openSession IntentName = "openSession" IntentName_closeSession IntentName = "closeSession" IntentName_validateSession IntentName = "validateSession" IntentName_finishValidateSession IntentName = "finishValidateSession" IntentName_listSessions IntentName = "listSessions" IntentName_getSession IntentName = "getSession" IntentName_sessionAuthProof IntentName = "sessionAuthProof" IntentName_feeOptions IntentName = "feeOptions" IntentName_signMessage IntentName = "signMessage" IntentName_sendTransaction IntentName = "sendTransaction" IntentName_getTransactionReceipt IntentName = "getTransactionReceipt" IntentName_federateAccount IntentName = "federateAccount" IntentName_removeAccount IntentName = "removeAccount" IntentName_listAccounts IntentName = "listAccounts" IntentName_getIdToken IntentName = "getIdToken" )
func IntentDataTypeToName ¶
func IntentDataTypeToName[T any](t *T) IntentName
func (*IntentName) Is ¶ added in v0.31.0
func (x *IntentName) Is(values ...IntentName) bool
func (IntentName) MarshalText ¶ added in v0.31.0
func (x IntentName) MarshalText() ([]byte, error)
func (IntentName) String ¶ added in v0.32.1
func (n IntentName) String() string
IntentName stringer helper method, even thought IntentName is a string type, it's useful to have a String() method to satisfy the fmt.Stringer interface
func (*IntentName) UnmarshalText ¶ added in v0.31.0
func (x *IntentName) UnmarshalText(b []byte) error
type IntentResponse ¶
type IntentResponse struct {
	Code IntentResponseCode `json:"code"`
	Data interface{}        `json:"data"`
}
    type IntentResponseAccountFederated ¶ added in v0.31.0
type IntentResponseAccountFederated struct {
	Account *Account `json:"account"`
}
    type IntentResponseAccountList ¶ added in v0.31.0
type IntentResponseAccountRemoved ¶ added in v0.31.0
type IntentResponseAccountRemoved struct {
}
    type IntentResponseAuthInitiated ¶ added in v0.33.0
type IntentResponseAuthInitiated struct {
	SessionID    string       `json:"sessionId"`
	IdentityType IdentityType `json:"identityType"`
	ExpiresIn    int          `json:"expiresIn"`
	Challenge    *string      `json:"challenge"`
}
    type IntentResponseCode ¶ added in v0.31.0
type IntentResponseCode string
const ( IntentResponseCode_authInitiated IntentResponseCode = "authInitiated" IntentResponseCode_sessionOpened IntentResponseCode = "sessionOpened" IntentResponseCode_sessionClosed IntentResponseCode = "sessionClosed" IntentResponseCode_sessionList IntentResponseCode = "sessionList" IntentResponseCode_validationRequired IntentResponseCode = "validationRequired" IntentResponseCode_validationStarted IntentResponseCode = "validationStarted" IntentResponseCode_validationFinished IntentResponseCode = "validationFinished" IntentResponseCode_sessionAuthProof IntentResponseCode = "sessionAuthProof" IntentResponseCode_signedMessage IntentResponseCode = "signedMessage" IntentResponseCode_feeOptions IntentResponseCode = "feeOptions" IntentResponseCode_transactionReceipt IntentResponseCode = "transactionReceipt" IntentResponseCode_transactionFailed IntentResponseCode = "transactionFailed" IntentResponseCode_getSessionResponse IntentResponseCode = "getSessionResponse" IntentResponseCode_accountList IntentResponseCode = "accountList" IntentResponseCode_accountFederated IntentResponseCode = "accountFederated" IntentResponseCode_accountRemoved IntentResponseCode = "accountRemoved" IntentResponseCode_idToken IntentResponseCode = "idToken" )
func IntentResponseTypeToCode ¶ added in v0.29.4
func IntentResponseTypeToCode[T any](t *T) IntentResponseCode
func (*IntentResponseCode) Is ¶ added in v0.31.0
func (x *IntentResponseCode) Is(values ...IntentResponseCode) bool
func (IntentResponseCode) MarshalText ¶ added in v0.31.0
func (x IntentResponseCode) MarshalText() ([]byte, error)
func (*IntentResponseCode) UnmarshalText ¶ added in v0.31.0
func (x *IntentResponseCode) UnmarshalText(b []byte) error
type IntentResponseFeeOptions ¶ added in v0.29.1
type IntentResponseIdToken ¶ added in v0.33.0
type IntentResponseListSessions ¶
type IntentResponseListSessions struct {
	Sessions []string `json:"sessions"`
}
    type IntentResponseSessionAuthProof ¶ added in v0.29.4
type IntentResponseSessionClosed ¶
type IntentResponseSessionClosed struct {
}
    type IntentResponseTransactionFailed ¶
type IntentResponseTransactionFailed struct {
	Error       string      `json:"error"`
	Request     interface{} `json:"request"`
	Simulations interface{} `json:"simulations"`
}
    type IntentResponseTyped ¶ added in v0.29.4
type IntentResponseTyped[T any] struct { IntentResponse Data T `json:"data"` }
func NewIntentResponseTyped ¶ added in v0.29.4
func NewIntentResponseTyped[T any](data T) *IntentResponseTyped[T]
func NewIntentResponseTypedFromIntentResponse ¶ added in v0.29.4
func NewIntentResponseTypedFromIntentResponse[T any](res *IntentResponse) (*IntentResponseTyped[T], error)
type IntentResponseValidateSession ¶
type IntentResponseValidateSession struct {
}
    type IntentResponseValidationFinished ¶
type IntentResponseValidationFinished struct {
	IsValid bool `json:"isValid"`
}
    type IntentResponseValidationRequired ¶
type IntentResponseValidationRequired struct {
	SessionID string `json:"sessionId"`
}
    type IntentResponseValidationStarted ¶
type IntentResponseValidationStarted struct {
	Salt string `json:"salt"`
}
    type IntentTyped ¶
func NewIntentTyped ¶
func NewIntentTyped[T any](data T) *IntentTyped[T]
func NewIntentTypedFromIntent ¶
func NewIntentTypedFromIntent[T any](intent *Intent) (*IntentTyped[T], error)
func (*IntentTyped[T]) IsValid ¶
func (i *IntentTyped[T]) IsValid() error
func (*IntentTyped[T]) ToIntent ¶
func (i *IntentTyped[T]) ToIntent() *Intent
type SendTransactionFailed ¶
type SendTransactionFailed struct {
	Code string `json:"code"`
	Data struct {
		Request     *IntentDataSendTransaction `json:"request"`
		Simulations []*proto.SimulateResult    `json:"simulations"`
	}
}
    type SendTransactionResponse ¶
type SendTransactionResponse struct {
	Code string `json:"code"`
	Data struct {
		Request       *IntentDataSendTransaction `json:"request"`
		TxHash        string                     `json:"txHash"`
		Receipt       *proto.MetaTxnReceipt      `json:"receipt"`
		NativeReceipt *types.Receipt             `json:"nativeReceipt"`
		Simulations   []*proto.SimulateResult    `json:"simulations"`
	}
}
    type Session ¶
func NewSessionP256K1 ¶
func NewSessionP256R1 ¶
func NewSessionP256R1(privateKey *ecdsa.PrivateKey) Session
type TransactionDelayedEncode ¶
type TransactionDelayedEncode struct {
	Type  string          `json:"type"`
	To    string          `json:"to"`
	Value string          `json:"value"`
	Data  json.RawMessage `json:"data"`
}
    type TransactionERC1155 ¶
type TransactionERC1155 struct {
	Type         string                     `json:"type"`
	TokenAddress string                     `json:"tokenAddress"`
	To           string                     `json:"to"`
	Vals         []*TransactionERC1155Value `json:"vals"`
	Data         *string                    `json:"data"`
}
    type TransactionERC1155Value ¶
type TransactionERC20 ¶
type TransactionERC721 ¶
type TransactionRaw ¶
type TransactionType ¶ added in v0.31.0
type TransactionType string
const ( TransactionType_transaction TransactionType = "transaction" TransactionType_erc20send TransactionType = "erc20send" TransactionType_erc721send TransactionType = "erc721send" TransactionType_erc1155send TransactionType = "erc1155send" TransactionType_delayedEncode TransactionType = "delayedEncode" )
func (*TransactionType) Is ¶ added in v0.31.0
func (x *TransactionType) Is(values ...TransactionType) bool
func (TransactionType) MarshalText ¶ added in v0.31.0
func (x TransactionType) MarshalText() ([]byte, error)
func (*TransactionType) UnmarshalText ¶ added in v0.31.0
func (x *TransactionType) UnmarshalText(b []byte) error
type WebRPCError ¶
type WebRPCError struct {
	Name       string `json:"error"`
	Code       int    `json:"code"`
	Message    string `json:"msg"`
	Cause      string `json:"cause,omitempty"`
	HTTPStatus int    `json:"status"`
	// contains filtered or unexported fields
}
    
        
          
            func ErrorWithCause
            deprecated
            
          
  
    
  
      
      func ErrorWithCause(rpcErr WebRPCError, cause error) WebRPCError
Deprecated: Use .WithCause() method on WebRPCError.
func (WebRPCError) Error ¶
func (e WebRPCError) Error() string
func (WebRPCError) Is ¶
func (e WebRPCError) Is(target error) bool
func (WebRPCError) Unwrap ¶
func (e WebRPCError) Unwrap() error
func (WebRPCError) WithCause ¶
func (e WebRPCError) WithCause(cause error) WebRPCError
func (WebRPCError) WithCausef ¶ added in v0.31.0
func (e WebRPCError) WithCausef(format string, args ...interface{}) WebRPCError