intents

package
v0.45.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 30, 2025 License: Apache-2.0 Imports: 21 Imported by: 9

Documentation

Overview

sequence-waas-intents v0.1.0 2ceeffac8ca0cebead69d58a1aa7a27d30ecb864 -- 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

View Source
const IntentAllowedTimeDriftInSec = 5
View Source
const IntentValidTimeInSec = 60
View Source
const SendTransactionFailedCode = "transactionFailed"
View Source
const SendTransactionResponseCode = "transactionReceipt"

Variables

View Source
var (
	HTTPRequestCtxKey = &contextKey{"HTTPRequest"}

	ServiceNameCtxKey = &contextKey{"ServiceName"}

	MethodNameCtxKey = &contextKey{"MethodName"}
)
View Source
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

View Source
var FeeTokenType_name = map[uint32]string{
	0: "unknown",
	1: "erc20Token",
	2: "erc1155Token",
}
View Source
var FeeTokenType_value = map[string]uint32{
	"unknown":      0,
	"erc20Token":   1,
	"erc1155Token": 2,
}
View Source
var WebRPCServices = map[string][]string{}

Functions

func EncodeContractCall added in v0.41.0

func EncodeContractCall(data *contractCallType) (string, error)

EncodeContractCall encodes a contract call as a hex encoded calldata. NOTE: see ethcoder.EncodeContractCall for more details.

func EncodeDelayedABI deprecated

func EncodeDelayedABI(data *delayedEncodeType) (string, error)

Deprecated: use EncodeContractCall instead

func IsValidSessionSignature

func IsValidSessionSignature(sessionId string, signature string, intent *Intent) error

func IsValidSessionSignatureP256K1

func IsValidSessionSignatureP256K1(sessionId string, signature string, intent *Intent) error

IsValidSessionSignatureP256K1 checks if the signature is valid for the given secp256k1 session

func IsValidSessionSignatureP256R1

func IsValidSessionSignatureP256R1(sessionId string, signature string, intent *Intent) error

IsValidSessionSignatureP256R1 checks if the signature is valid for the given secp256r1 session

func MethodNameFromContext

func MethodNameFromContext(ctx context.Context) string

func RequestFromContext

func RequestFromContext(ctx context.Context) *http.Request

func ServiceNameFromContext

func ServiceNameFromContext(ctx context.Context) string

func SessionAuthProofMessage added in v0.29.4

func SessionAuthProofMessage(sessionId string, wallet string, nonce *string) string

func SignIntentP256K1

func SignIntentP256K1(wallet *ethwallet.Wallet, intent *Intent) error

func SignIntentP256R1

func SignIntentP256R1(privateKey *ecdsa.PrivateKey, intent *Intent) error

func SignIntentWithWalletLegacy

func SignIntentWithWalletLegacy(wallet *ethwallet.Wallet, intent *Intent) error

func WebRPCSchemaHash

func WebRPCSchemaHash() string

Schema hash generated from your RIDL schema

func WebRPCSchemaVersion

func WebRPCSchemaVersion() string

Schema version of your RIDL schema

func WebRPCVersion

func WebRPCVersion() string

WebRPC description and code-gen version

Types

type AbiData added in v0.41.0

type AbiData struct {
	Abi  string        `json:"abi"`
	Func *string       `json:"func"`
	Args []interface{} `json:"args"`
}

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 AdopterProof added in v0.43.4

type AdopterProof struct {
	Message   string `json:"message"`
	Signature string `json:"signature"`
}

type ChallengeType added in v0.43.4

type ChallengeType string
const (
	ChallengeType_EmailOTP ChallengeType = "EmailOTP"
)

func (*ChallengeType) Is added in v0.43.4

func (x *ChallengeType) Is(values ...ChallengeType) bool

func (ChallengeType) MarshalText added in v0.43.4

func (x ChallengeType) MarshalText() ([]byte, error)

func (*ChallengeType) UnmarshalText added in v0.43.4

func (x *ChallengeType) UnmarshalText(b []byte) error

type ExpectedValuesForTransaction

type ExpectedValuesForTransaction struct {
	To    *common.Address
	Value *big.Int
	Data  []byte
}

type FeeOption added in v0.29.1

type FeeOption struct {
	Token    *FeeToken `json:"token"`
	To       string    `json:"to"`
	Value    string    `json:"value"`
	GasLimit uint      `json:"gasLimit"`
}

type FeeToken added in v0.29.1

type FeeToken struct {
	ChainId         uint64       `json:"chainId"`
	Name            string       `json:"name"`
	Symbol          string       `json:"symbol"`
	Type            FeeTokenType `json:"type"`
	Decimals        *uint32      `json:"decimals"`
	LogoURL         string       `json:"logoURL"`
	ContractAddress *string      `json:"contractAddress"`
	TokenID         *string      `json:"tokenID"`
}

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"`
}

func (*Intent) Hash

func (intent *Intent) Hash() ([]byte, error)

func (*Intent) IsValid

func (intent *Intent) IsValid() error

func (*Intent) Signers

func (intent *Intent) Signers() []string

type IntentDataAdoptChildWallet added in v0.43.4

type IntentDataAdoptChildWallet struct {
	Network      string        `json:"network"`
	Wallet       string        `json:"wallet"`
	Adopter      string        `json:"adopter"`
	AdopterProof *AdopterProof `json:"adopterProof"`
}

type IntentDataCloseSession

type IntentDataCloseSession struct {
	SessionID string `json:"sessionId"`
}

type IntentDataConfirmIntent added in v0.43.4

type IntentDataConfirmIntent struct {
	Wallet          string `json:"wallet"`
	ConfirmationID  string `json:"confirmationID"`
	ChallengeAnswer string `json:"challengeAnswer"`
}

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 IntentDataFinishValidateSession

type IntentDataFinishValidateSession struct {
	SessionID string `json:"sessionId"`
	Wallet    string `json:"wallet"`
	Salt      string `json:"salt"`
	Challenge string `json:"challenge"`
}

type IntentDataGetAdopter added in v0.43.4

type IntentDataGetAdopter struct {
	Wallet string `json:"wallet"`
}

type IntentDataGetConfirmationStatus added in v0.43.4

type IntentDataGetConfirmationStatus struct {
	Wallet         string `json:"wallet"`
	ConfirmationID string `json:"confirmationID"`
}

type IntentDataGetIdToken added in v0.33.0

type IntentDataGetIdToken struct {
	SessionID string `json:"sessionId"`
	Wallet    string `json:"wallet"`
	Nonce     string `json:"nonce"`
}

type IntentDataGetSession

type IntentDataGetSession struct {
	SessionID string `json:"sessionId"`
	Wallet    string `json:"wallet"`
}

type IntentDataGetTransactionReceipt added in v0.29.2

type IntentDataGetTransactionReceipt struct {
	Network    string `json:"network"`
	Wallet     string `json:"wallet"`
	MetaTxHash string `json:"metaTxHash"`
}

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 IntentDataRemoveAccount struct {
	Wallet    string `json:"wallet"`
	AccountID string `json:"accountId"`
}

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 (*IntentDataSendTransaction) IsValidInterpretation

func (p *IntentDataSendTransaction) IsValidInterpretation(subdigest common.Hash, txns sequence.Transactions, nonce *big.Int) (bool, error)

func (*IntentDataSendTransaction) Nonce

func (p *IntentDataSendTransaction) Nonce() (*big.Int, error)

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 IntentDataSignTypedData added in v0.44.0

type IntentDataSignTypedData struct {
	Network   string              `json:"network"`
	Wallet    string              `json:"wallet"`
	TypedData *ethcoder.TypedData `json:"typedData"`
}

func (*IntentDataSignTypedData) IsValidInterpretation added in v0.44.0

func (p *IntentDataSignTypedData) IsValidInterpretation(subdigest common.Hash) bool

type IntentDataValidateSession

type IntentDataValidateSession struct {
	SessionID      string `json:"sessionId"`
	Wallet         string `json:"wallet"`
	DeviceMetadata string `json:"deviceMetadata"`
}

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_signTypedData         IntentName = "signTypedData"
	IntentName_sendTransaction       IntentName = "sendTransaction"
	IntentName_getTransactionReceipt IntentName = "getTransactionReceipt"
	IntentName_federateAccount       IntentName = "federateAccount"
	IntentName_removeAccount         IntentName = "removeAccount"
	IntentName_listAccounts          IntentName = "listAccounts"
	IntentName_getIdToken            IntentName = "getIdToken"
	IntentName_adoptChildWallet      IntentName = "adoptChildWallet"
	IntentName_getAdopter            IntentName = "getAdopter"
	IntentName_confirmIntent         IntentName = "confirmIntent"
	IntentName_getConfirmationStatus IntentName = "getConfirmationStatus"
)

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 IntentResponseAccountList struct {
	Accounts         []*Account `json:"accounts"`
	CurrentAccountID string     `json:"currentAccountId"`
}

type IntentResponseAccountRemoved added in v0.31.0

type IntentResponseAccountRemoved struct {
}

type IntentResponseAdopter added in v0.43.4

type IntentResponseAdopter struct {
	AdopterAddress string `json:"adopterAddress"`
}

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 IntentResponseChildWalletAdopted added in v0.43.4

type IntentResponseChildWalletAdopted struct {
	AdopterAddress string `json:"adopterAddress"`
}

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_signedTypedData      IntentResponseCode = "signedTypedData"
	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"
	IntentResponseCode_adopter              IntentResponseCode = "adopter"
	IntentResponseCode_childWalletAdopted   IntentResponseCode = "childWalletAdopted"
	IntentResponseCode_confirmationRequired IntentResponseCode = "confirmationRequired"
)

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 IntentResponseConfirmationRequired added in v0.43.4

type IntentResponseConfirmationRequired struct {
	ConfirmationID       string        `json:"confirmationId"`
	Salt                 string        `json:"salt"`
	ChallengeType        ChallengeType `json:"challengeType"`
	ChallengeDestination *string       `json:"challengeDestination"`
	ExpiresIn            int           `json:"expiresIn"`
}

type IntentResponseFeeOptions added in v0.29.1

type IntentResponseFeeOptions struct {
	FeeOptions []*FeeOption `json:"feeOptions"`
	FeeQuote   *string      `json:"feeQuote,omitempty"`
}

type IntentResponseGetSession

type IntentResponseGetSession struct {
	SessionID string `json:"sessionId"`
	Wallet    string `json:"wallet"`
	Validated bool   `json:"validated"`
}

type IntentResponseIdToken added in v0.33.0

type IntentResponseIdToken struct {
	IdToken   string `json:"idToken"`
	ExpiresIn int    `json:"expiresIn"`
}

type IntentResponseListSessions

type IntentResponseListSessions struct {
	Sessions []string `json:"sessions"`
}

type IntentResponseSessionAuthProof added in v0.29.4

type IntentResponseSessionAuthProof struct {
	SessionID string `json:"sessionId"`
	Network   string `json:"network"`
	Wallet    string `json:"wallet"`
	// The message contents: “SessionAuthProof <sessionId> <wallet> <nonce?>” hex encoded
	Message   string `json:"message"`
	Signature string `json:"signature"`
}

type IntentResponseSessionClosed

type IntentResponseSessionClosed struct {
}

type IntentResponseSessionOpened

type IntentResponseSessionOpened struct {
	SessionID string `json:"sessionId"`
	Wallet    string `json:"wallet"`
}

type IntentResponseSignedMessage

type IntentResponseSignedMessage struct {
	Signature string `json:"signature"`
	Message   string `json:"message"`
}

type IntentResponseSignedTypedData added in v0.44.0

type IntentResponseSignedTypedData struct {
	Signature        string `json:"signature"`
	EncodedTypedData string `json:"encodedTypedData"`
}

type IntentResponseTransactionFailed

type IntentResponseTransactionFailed struct {
	Error       string      `json:"error"`
	Request     interface{} `json:"request"`
	Simulations interface{} `json:"simulations"`
}

type IntentResponseTransactionReceipt

type IntentResponseTransactionReceipt struct {
	Request       interface{} `json:"request"`
	TxHash        string      `json:"txHash"`
	MetaTxHash    string      `json:"metaTxHash"`
	Receipt       interface{} `json:"receipt"`
	NativeReceipt interface{} `json:"nativeReceipt"`
	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

type IntentTyped[T any] struct {
	Intent
	Data T `json:"data"`
}

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 KeyType

type KeyType int
const (
	KeyTypeSECP256K1 KeyType = iota
	KeyTypeSECP256R1
	KeyTypeUnknown
)

func KeyTypeFromSessionId

func KeyTypeFromSessionId(sessionId string) KeyType

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

type Session interface {
	SessionID() string
	Sign(intent *Intent) error
}

func NewSessionP256K1

func NewSessionP256K1(wallet *ethwallet.Wallet) Session

func NewSessionP256R1

func NewSessionP256R1(privateKey *ecdsa.PrivateKey) Session

type Signature

type Signature struct {
	SessionID string `json:"sessionId"`
	Signature string `json:"signature"`
}

type TransactionContractCall added in v0.41.0

type TransactionContractCall struct {
	Type  string  `json:"type"`
	To    string  `json:"to"`
	Value string  `json:"value"`
	Data  AbiData `json:"data"`
}

type TransactionDelayedEncode deprecated

type TransactionDelayedEncode struct {
	Type  string          `json:"type"`
	To    string          `json:"to"`
	Value string          `json:"value"`
	Data  json.RawMessage `json:"data"`
}

Deprecated: TransactionDelayedEncode is not type safe, please use TransactionContractCall instead

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 TransactionERC1155Value struct {
	ID     string `json:"id"`
	Amount string `json:"amount"`
}

type TransactionERC20

type TransactionERC20 struct {
	Type         string `json:"type"`
	TokenAddress string `json:"tokenAddress"`
	To           string `json:"to"`
	Value        string `json:"value"`
}

type TransactionERC721

type TransactionERC721 struct {
	Type         string  `json:"type"`
	TokenAddress string  `json:"tokenAddress"`
	To           string  `json:"to"`
	Id           string  `json:"id"`
	Safe         *bool   `json:"safe"`
	Data         *string `json:"data"`
}

type TransactionRaw

type TransactionRaw struct {
	Type  string `json:"type"`
	To    string `json:"to"`
	Value string `json:"value"`
	Data  string `json:"data"`
}

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"
	TransactionType_contractCall  TransactionType = "contractCall"
)

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL