fordefi

package module
v0.0.0-...-1a6f680 Latest Latest
Warning

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

Go to latest
Published: Jan 22, 2024 License: BSD-3-Clause Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CreateTransactionPath  = "/api/v1/transactions"
	ApproveTransactionPath = "/api/v1/transactions/%s/approve"
	AbortTransactionPath   = "/api/v1/transactions/%s/abort"
	ReleaseTransactionPath = "/api/v1/transactions/%s/release"
	ListChainsPath         = "/api/v1/blockchains"
	GetTransactionPath     = "/api/v1/transactions/%s"
	ListTransactionPath    = "/api/v1/transactions"
	ListVaultsPath         = "/api/v1/vaults"
)
View Source
const (
	ArbitrumMainnet = "evm_arbitrum_mainnet"
	AvalancheCChain = "evm_avalanche_chain"
	BaseMainnet     = "evm_base_mainnet"
	BitcoinMainnet  = "bitcoin_mainnet"
	BitcoinTestnet  = "bitcoin_testnet"
	BscMainnet      = "evm_bsc_mainnet"
	CantoMainnet    = "evm_canto_mainnet"
	ConfluxESpace   = "evm_conflux_mainnet"
	CosmosMainnet   = "cosmos_cosmoshub-4"
	CosmosDydxNet   = "cosmos_dydx-mainnet-1"
	CosmosDydxTest  = "cosmos_dydx-testnet-4"
	SepoliaTestnet  = "evm_ethereum_sepolia"
	EthereumMainnet = "ethereum_mainnet"

	SolanaMainnet = "solana_mainnet"
)
View Source
const (
	ModeByFunctionName = "full_details"
	ModeByHexData      = "hex"
	ModeByBase64Data   = "base64"
)
View Source
const (
	SignPersonal = "personal_message_type"
	SignTyped    = "typed_message_type"
)
View Source
const (
	ReleaseCancel     = "cancel"
	ReleaseAccelerate = "accelerate"
)
View Source
const (
	StatusWaitingForApproval = "waiting_for_approval"
	StatusApproved           = "approved"
	StatusPushedToBlockchain = "pushed_to_blockchain"
	StatusCompleted          = "completed"
	StatusReverted           = "reverted"
	StatusStuck              = "stuck"
	StatusAborted            = "aborted"
)
View Source
const DefaultApiEndpoint = "https://api.fordefi.com"
View Source
const MaxRepr = -1

Variables

Functions

This section is empty.

Types

type Client

type Client struct {
	Host     string
	Token    string
	EcdsaKey ecdsa.PrivateKey
}

func New

func New(clientConfig ClientJson) (*Client, error)

func NewFromEnv

func NewFromEnv() (*Client, error)

func (*Client) AbortTx

func (c *Client) AbortTx(txId string) (resp []byte, err error)

AbortTx abort transaction. @param txId: transaction id(fordefi uuid). @return resp: response body can be nil if err is nil(http204).

func (*Client) ApproveTx

func (c *Client) ApproveTx(txId string) (resp []byte, err error)

ApproveTx approve transaction. @param txId: transaction id(fordefi uuid). @return resp: response body can be nil if err is nil(http204).

func (*Client) EvmSignMessage

func (c *Client) EvmSignMessage(vaultId string, chain string, data string, signType string, note ...string) (resp *EvmSignResp, err error)

EvmSignMessage sign message using EIP191 personal sign or EIP712 typed sign. @param vaultId: vault id. @param chain: chain name. @param data: message data. @param signType: sign type, `SignPersonal` or `SignTyped`. @param note: note.

func (*Client) EvmTransactByBase64Data

func (c *Client) EvmTransactByBase64Data(vaultId string, chain string, gasOps EvmGasOps, to string, amount *big.Int, data string, note ...string) (resp *EvmTransactResp, err error)

EvmTransactByBase64Data using base64 encoded data to call contract function. @param vaultId: vault id. @param chain: chain name. @param gasOps: gas options. @param to: tx to address. @param amount: value to transfer @param data: base64 encoded data. @param note: note.

func (*Client) EvmTransactByData

func (c *Client) EvmTransactByData(vaultId string, chain string, gasOps EvmGasOps, to string, amount *big.Int, data string, note ...string) (resp *EvmTransactResp, err error)

EvmTransactByData using raw data to call contract function. @param vaultId: vault id. @param chain: chain name. @param gasOps: gas options. @param to: tx to address. @param amount: value to transfer @param data: raw data. @param note: note.

func (*Client) EvmTransactByName

func (c *Client) EvmTransactByName(vaultId string, chain string, gasOps EvmGasOps, to string, amount *big.Int, fnName string, args []string, note ...string) (resp *EvmTransactResp, err error)

EvmTransactByName using function name and args to call contract function. @param vaultId: vault id. @param chain: chain name. @param gasOps: gas options. @param to: tx to address. @param amount: value to transfer @param fnName: function name. @param args: function args, in `["name1:value1", "name2:value2"]` format. @param note: note.

func (*Client) EvmTransferErc1155

func (c *Client) EvmTransferErc1155(vaultId string, chain string, tokenAddr string, gasOps EvmGasOps, tokenId *big.Int, to string, note ...string) (resp *EvmTransactResp, err error)

EvmTransferErc1155 transfer erc1155 token on evm chains. @param vaultId: vault id. @param chain: chain name. @param tokenAddr: gas options. @param gasOps: gas options. @param tokenId: token id to transfer.

func (*Client) EvmTransferErc20

func (c *Client) EvmTransferErc20(vaultId string, chain string, tokenAddr string, gasOps EvmGasOps, amount *big.Int, to string, note ...string) (resp *EvmTransactResp, err error)

EvmTransferErc20 transfer erc20 token on evm chains. @param vaultId: vault id. @param chain: chain name. @param tokenAddr: gas options. @param gasOps: gas options. @param amount: amount to transfer, pass -1 to transfer max.

func (*Client) EvmTransferErc721

func (c *Client) EvmTransferErc721(vaultId string, chain string, tokenAddr string, gasOps EvmGasOps, tokenId *big.Int, to string, note ...string) (resp *EvmTransactResp, err error)

EvmTransferErc721 transfer erc721 token on evm chains. @param vaultId: vault id. @param chain: chain name. @param tokenAddr: gas options. @param gasOps: gas options. @param tokenId: token id to transfer.

func (*Client) EvmTransferNative

func (c *Client) EvmTransferNative(vaultId string, chain string, gasOps EvmGasOps, amount *big.Int, to string, note ...string) (resp *EvmTransactResp, err error)

EvmTransferNative transfer native token on evm chains. @param vaultId: vault id. @param chain: chain name. @param gasOps: gas options. @param amount: amount to transfer, pass -1 to tran.

func (*Client) GetTransactionEvmSign

func (c *Client) GetTransactionEvmSign(id string) (*EvmMessageResp, error)

func (*Client) GetTransactionEvmTx

func (c *Client) GetTransactionEvmTx(id string) (*EvmTxResp, error)

func (*Client) ListChains

func (c *Client) ListChains() (*ListChainResponse, error)

func (*Client) ListVaults

func (c *Client) ListVaults() (resp *ListVaultsResp, err error)

func (*Client) ReleaseTx

func (c *Client) ReleaseTx(txId string, releaseType string) (resp *EvmTransactResp, err error)

ReleaseTx release transaction. @param txId: transaction id(fordefi uuid). @param releaseType: release type, `ReleaseCancel` or `ReleaseAccelerate`. @return resp: response same as EvmTransactResp.

func (*Client) SolanaTransferNative

func (c *Client) SolanaTransferNative(vaultId string, amount *big.Int, to string, note ...string) (resp *SolanaTransactResp, err error)

SolanaTransferNative transfer native token on solana chains. @param vaultId: vault id. @param amount: amount to transfer, pass -1 to transfer max. @param to: to address.

func (*Client) SolanaTransferSpl

func (c *Client) SolanaTransferSpl(vaultId string, tokenAddr string, amount *big.Int, to string, note ...string) (resp *SolanaTransactResp, err error)

SolanaTransferSpl transfer spl token on solana chains. @param vaultId: vault id. @param tokenAddr: token address. @param amount: amount to transfer, pass -1 to transfer max. @param to: to address.

type ClientJson

type ClientJson struct {
	Host     string `json:"host,omitempty"`
	Token    string `json:"token,omitempty"`
	EcdsaKey string `json:"ecdsaKey,omitempty"` // Key in pem format
}

type EvmGasOps

type EvmGasOps struct {
	GasLimit string `json:"gas_limit"`
	Type     string `json:"type"`
	Details  struct {
		Type                 string `json:"type"`
		MaxPriorityFeePerGas string `json:"max_priority_fee_per_gas"`
		MaxFeePerGas         string `json:"max_fee_per_gas"`
	} `json:"details"`
}

type EvmMessageResp

type EvmMessageResp struct {
	Id                     string    `json:"id"`
	CreatedAt              time.Time `json:"created_at"`
	ModifiedAt             time.Time `json:"modified_at"`
	ManagedTransactionData struct {
		CreatedBy struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"created_by"`
		AbortedBy struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"aborted_by"`
		DeviceSigningRequest struct {
			Signers []struct {
				User struct {
					Id       string `json:"id"`
					UserType string `json:"user_type"`
					Name     string `json:"name"`
					Email    string `json:"email"`
					State    string `json:"state"`
					Role     string `json:"role"`
				} `json:"user"`
				ModifiedAt time.Time `json:"modified_at"`
				HasSigned  bool      `json:"has_signed"`
			} `json:"signers"`
		} `json:"device_signing_request"`
		ApprovalRequest struct {
			State      string `json:"state"`
			QuorumSize int    `json:"quorum_size"`
			Approvers  []struct {
				User struct {
					Id       string `json:"id"`
					UserType string `json:"user_type"`
					Name     string `json:"name"`
					Email    string `json:"email"`
					State    string `json:"state"`
					Role     string `json:"role"`
				} `json:"user"`
				ModifiedAt time.Time `json:"modified_at"`
				Decision   string    `json:"decision"`
				State      string    `json:"state"`
			} `json:"approvers"`
			ApprovalGroups []struct {
				QuorumSize int `json:"quorum_size"`
				Approvers  []struct {
					User struct {
						Id       string `json:"id"`
						UserType string `json:"user_type"`
						Name     string `json:"name"`
						Email    string `json:"email"`
						State    string `json:"state"`
						Role     string `json:"role"`
					} `json:"user"`
					ModifiedAt time.Time `json:"modified_at"`
					Decision   string    `json:"decision"`
					State      string    `json:"state"`
				} `json:"approvers"`
			} `json:"approval_groups"`
		} `json:"approval_request"`
		PolicyMatch struct {
			IsDefault  bool   `json:"is_default"`
			RuleId     string `json:"rule_id"`
			RuleName   string `json:"rule_name"`
			ActionType string `json:"action_type"`
		} `json:"policy_match"`
		SignedCreateRequest struct {
			RawData            string `json:"raw_data"`
			TimestampSignature struct {
				Signature string `json:"signature"`
				Timestamp int    `json:"timestamp"`
			} `json:"timestamp_signature"`
			UrlPath string `json:"url_path"`
		} `json:"signed_create_request"`
		SignerType string `json:"signer_type"`
		Risks      []struct {
			Type        string `json:"type"`
			Severity    string `json:"severity"`
			Title       string `json:"title"`
			Description string `json:"description"`
		} `json:"risks"`
		ErrorPushingToBlockchainMessage         string `json:"error_pushing_to_blockchain_message"`
		OriginalErrorPushingToBlockchainMessage string `json:"original_error_pushing_to_blockchain_message"`
		Vault                                   struct {
			Id      string `json:"id"`
			Name    string `json:"name"`
			Address string `json:"address"`
			EndUser struct {
				Id         string `json:"id"`
				UserType   string `json:"user_type"`
				ExternalId string `json:"external_id"`
				State      string `json:"state"`
			} `json:"end_user"`
		} `json:"vault"`
		IdempotenceId string `json:"idempotence_id"`
	} `json:"managed_transaction_data"`
	Signatures []struct {
		Data     string `json:"data"`
		SignedBy struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"signed_by"`
	} `json:"signatures"`
	Note           string `json:"note"`
	SpamState      string `json:"spam_state"`
	Type           string `json:"type"`
	EvmMessageType string `json:"evm_message_type"`
	State          string `json:"state"`
	StateChanges   []struct {
		ChangedAt time.Time `json:"changed_at"`
		Prices    struct {
			NativeCurrencyPrice struct {
				Price        string `json:"price"`
				FiatCurrency struct {
					CurrencySymbol string `json:"currency_symbol"`
					Decimals       int    `json:"decimals"`
				} `json:"fiat_currency"`
			} `json:"native_currency_price"`
			TokenPrices []struct {
				Price        string `json:"price"`
				FiatCurrency struct {
					CurrencySymbol string `json:"currency_symbol"`
					Decimals       int    `json:"decimals"`
				} `json:"fiat_currency"`
				Token struct {
					Address struct {
						Chain struct {
							ChainType    string `json:"chain_type"`
							NamedChainId string `json:"named_chain_id"`
							ChainId      int    `json:"chain_id"`
							UniqueId     string `json:"unique_id"`
						} `json:"chain"`
						HexRepr string `json:"hex_repr"`
					} `json:"address"`
					Name     string `json:"name"`
					Symbol   string `json:"symbol"`
					Type     string `json:"type"`
					Decimals int    `json:"decimals"`
					LogoUrl  string `json:"logo_url"`
				} `json:"token"`
			} `json:"token_prices"`
		} `json:"prices"`
		AssetPrices []struct {
			AssetIdentifier struct {
				Type    string `json:"type"`
				Details struct {
					Chain struct {
						ChainType            string `json:"chain_type"`
						UniqueId             string `json:"unique_id"`
						Name                 string `json:"name"`
						NativeCurrencySymbol string `json:"native_currency_symbol"`
						NativeCurrencyName   string `json:"native_currency_name"`
						BlockchainExplorer   struct {
							TransactionUrl       string `json:"transaction_url"`
							AddressUrl           string `json:"address_url"`
							RootUrl              string `json:"root_url"`
							TransactionFormatUrl string `json:"transaction_format_url"`
							AddressFormatUrl     string `json:"address_format_url"`
						} `json:"blockchain_explorer"`
						BaseDenom string `json:"base_denom"`
					} `json:"chain"`
					Type string `json:"type"`
					Coin struct {
						Name        string `json:"name"`
						Symbol      string `json:"symbol"`
						Display     string `json:"display"`
						Description string `json:"description"`
						BaseDenom   string `json:"base_denom"`
						Denom       string `json:"denom"`
						Decimals    int    `json:"decimals"`
						LogoUrl     string `json:"logo_url"`
						ExplorerUrl string `json:"explorer_url"`
						Type        string `json:"type"`
					} `json:"coin"`
				} `json:"details"`
			} `json:"asset_identifier"`
			Price struct {
				Price        string `json:"price"`
				FiatCurrency struct {
					CurrencySymbol string `json:"currency_symbol"`
					Decimals       int    `json:"decimals"`
				} `json:"fiat_currency"`
			} `json:"price"`
		} `json:"asset_prices"`
		PreviousState string `json:"previous_state"`
		NewState      string `json:"new_state"`
	} `json:"state_changes"`
	RawData   string `json:"raw_data"`
	TypedData struct {
		Domain struct {
			Name              string `json:"name"`
			Version           string `json:"version"`
			ChainId           int    `json:"chain_id"`
			VerifyingContract struct {
				Address string `json:"address"`
				Vault   struct {
					Id      string `json:"id"`
					Name    string `json:"name"`
					Address string `json:"address"`
					EndUser struct {
						Id         string `json:"id"`
						UserType   string `json:"user_type"`
						ExternalId string `json:"external_id"`
						State      string `json:"state"`
					} `json:"end_user"`
				} `json:"vault"`
				Contact struct {
					Id         string `json:"id"`
					Name       string `json:"name"`
					AddressRef struct {
						ChainType string `json:"chain_type"`
						Address   string `json:"address"`
						Chains    []struct {
							ChainType    string `json:"chain_type"`
							NamedChainId string `json:"named_chain_id"`
							ChainId      int    `json:"chain_id"`
							UniqueId     string `json:"unique_id"`
						} `json:"chains"`
					} `json:"address_ref"`
				} `json:"contact"`
				ExplorerUrl string `json:"explorer_url"`
				Contract    struct {
					Name string `json:"name"`
					Dapp struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Url     string `json:"url"`
						LogoUrl string `json:"logo_url"`
					} `json:"dapp"`
					IsVerified bool `json:"is_verified"`
					Token      struct {
						Address struct {
							Chain struct {
								ChainType    string `json:"chain_type"`
								NamedChainId string `json:"named_chain_id"`
								ChainId      int    `json:"chain_id"`
								UniqueId     string `json:"unique_id"`
							} `json:"chain"`
							HexRepr string `json:"hex_repr"`
						} `json:"address"`
						Name     string `json:"name"`
						Symbol   string `json:"symbol"`
						Type     string `json:"type"`
						Decimals int    `json:"decimals"`
						LogoUrl  string `json:"logo_url"`
					} `json:"token"`
				} `json:"contract"`
			} `json:"verifying_contract"`
			Salt string `json:"salt"`
		} `json:"domain"`
		Type string `json:"type"`
	} `json:"typed_data"`
	Vault struct {
		Id      string `json:"id"`
		Name    string `json:"name"`
		Address string `json:"address"`
		EndUser struct {
			Id         string `json:"id"`
			UserType   string `json:"user_type"`
			ExternalId string `json:"external_id"`
			State      string `json:"state"`
		} `json:"end_user"`
	} `json:"vault"`
	Chain struct {
		ChainType            string `json:"chain_type"`
		NamedChainId         string `json:"named_chain_id"`
		ChainId              int    `json:"chain_id"`
		UniqueId             string `json:"unique_id"`
		Name                 string `json:"name"`
		NativeCurrencySymbol string `json:"native_currency_symbol"`
		NativeCurrencyName   string `json:"native_currency_name"`
		BlockchainExplorer   struct {
			TransactionUrl       string `json:"transaction_url"`
			AddressUrl           string `json:"address_url"`
			RootUrl              string `json:"root_url"`
			TransactionFormatUrl string `json:"transaction_format_url"`
			AddressFormatUrl     string `json:"address_format_url"`
		} `json:"blockchain_explorer"`
		GasType            string `json:"gas_type"`
		SupportsSecureNode bool   `json:"supports_secure_node"`
	} `json:"chain"`
}

type EvmRawTransactReq

type EvmRawTransactReq struct {
	VaultId    string `json:"vault_id"`
	Note       string `json:"note"`
	SignerType string `json:"signer_type"`
	Type       string `json:"type"`
	Details    struct {
		Type          string                 `json:"type"`
		UseSecureNode bool                   `json:"use_secure_node"`
		Chain         string                 `json:"chain"`
		Gas           EvmGasOps              `json:"gas"`
		To            string                 `json:"to"`
		Value         string                 `json:"value"`
		Data          map[string]interface{} `json:"data"`
	} `json:"details"`
}

func (*EvmRawTransactReq) Prepare

func (e *EvmRawTransactReq) Prepare()

type EvmSignRequest

type EvmSignRequest struct {
	SignerType string `json:"signer_type"`
	Type       string `json:"type"`
	Details    struct {
		Type    string `json:"type"`
		RawData string `json:"raw_data"`
		Chain   string `json:"chain"`
	} `json:"details"`
	VaultId string `json:"vault_id"`
	Note    string `json:"note"`
}

type EvmSignResp

type EvmSignResp struct {
	Id                     string    `json:"id"`
	CreatedAt              time.Time `json:"created_at"`
	ModifiedAt             time.Time `json:"modified_at"`
	ManagedTransactionData struct {
		CreatedBy struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"created_by"`
		AbortedBy struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"aborted_by"`
		DeviceSigningRequest struct {
			Signers []struct {
				User struct {
					Id       string `json:"id"`
					UserType string `json:"user_type"`
					Name     string `json:"name"`
					Email    string `json:"email"`
					State    string `json:"state"`
					Role     string `json:"role"`
				} `json:"user"`
				ModifiedAt time.Time `json:"modified_at"`
				HasSigned  bool      `json:"has_signed"`
			} `json:"signers"`
		} `json:"device_signing_request"`
		ApprovalRequest struct {
			State      string `json:"state"`
			QuorumSize int    `json:"quorum_size"`
			Approvers  []struct {
				User struct {
					Id       string `json:"id"`
					UserType string `json:"user_type"`
					Name     string `json:"name"`
					Email    string `json:"email"`
					State    string `json:"state"`
					Role     string `json:"role"`
				} `json:"user"`
				ModifiedAt time.Time `json:"modified_at"`
				Decision   string    `json:"decision"`
			} `json:"approvers"`
			ApprovalGroups []struct {
				QuorumSize int `json:"quorum_size"`
				Approvers  []struct {
					User struct {
						Id       string `json:"id"`
						UserType string `json:"user_type"`
						Name     string `json:"name"`
						Email    string `json:"email"`
						State    string `json:"state"`
						Role     string `json:"role"`
					} `json:"user"`
					ModifiedAt time.Time `json:"modified_at"`
					Decision   string    `json:"decision"`
				} `json:"approvers"`
			} `json:"approval_groups"`
		} `json:"approval_request"`
		PolicyMatch struct {
			IsDefault  bool   `json:"is_default"`
			RuleId     string `json:"rule_id"`
			RuleName   string `json:"rule_name"`
			ActionType string `json:"action_type"`
		} `json:"policy_match"`
		SignedCreateRequest struct {
			RawData            string `json:"raw_data"`
			TimestampSignature struct {
				Signature string `json:"signature"`
				Timestamp int    `json:"timestamp"`
			} `json:"timestamp_signature"`
			UrlPath string `json:"url_path"`
		} `json:"signed_create_request"`
		SignerType string `json:"signer_type"`
		Risks      []struct {
			Type        string `json:"type"`
			Severity    string `json:"severity"`
			Title       string `json:"title"`
			Description string `json:"description"`
		} `json:"risks"`
		ErrorPushingToBlockchainMessage         string `json:"error_pushing_to_blockchain_message"`
		OriginalErrorPushingToBlockchainMessage string `json:"original_error_pushing_to_blockchain_message"`
		Vault                                   struct {
			Id      string `json:"id"`
			Name    string `json:"name"`
			Address string `json:"address"`
			EndUser struct {
				Id         string `json:"id"`
				UserType   string `json:"user_type"`
				ExternalId string `json:"external_id"`
				State      string `json:"state"`
			} `json:"end_user"`
		} `json:"vault"`
		IdempotenceId string `json:"idempotence_id"`
	} `json:"managed_transaction_data"`
	Signatures []struct {
		Data     string `json:"data"`
		SignedBy struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"signed_by"`
	} `json:"signatures"`
	Note           string `json:"note"`
	SpamState      string `json:"spam_state"`
	Type           string `json:"type"`
	EvmMessageType string `json:"evm_message_type"`
	State          string `json:"state"`
	StateChanges   []struct {
		ChangedAt time.Time `json:"changed_at"`
		Prices    struct {
			NativeCurrencyPrice struct {
				Price        string `json:"price"`
				FiatCurrency struct {
					CurrencySymbol string `json:"currency_symbol"`
					Decimals       int    `json:"decimals"`
				} `json:"fiat_currency"`
			} `json:"native_currency_price"`
			TokenPrices []struct {
				Price        string `json:"price"`
				FiatCurrency struct {
					CurrencySymbol string `json:"currency_symbol"`
					Decimals       int    `json:"decimals"`
				} `json:"fiat_currency"`
				Token struct {
					Address struct {
						Chain struct {
							ChainType    string `json:"chain_type"`
							NamedChainId string `json:"named_chain_id"`
							ChainId      int    `json:"chain_id"`
							UniqueId     string `json:"unique_id"`
						} `json:"chain"`
						HexRepr string `json:"hex_repr"`
					} `json:"address"`
					Name     string `json:"name"`
					Symbol   string `json:"symbol"`
					Type     string `json:"type"`
					Decimals int    `json:"decimals"`
					LogoUrl  string `json:"logo_url"`
				} `json:"token"`
			} `json:"token_prices"`
		} `json:"prices"`
		AssetPrices []struct {
			AssetIdentifier struct {
				Type    string `json:"type"`
				Details struct {
					Chain struct {
						ChainType            string `json:"chain_type"`
						UniqueId             string `json:"unique_id"`
						Name                 string `json:"name"`
						NativeCurrencySymbol string `json:"native_currency_symbol"`
						NativeCurrencyName   string `json:"native_currency_name"`
						BlockchainExplorer   struct {
							TransactionUrl       string `json:"transaction_url"`
							AddressUrl           string `json:"address_url"`
							RootUrl              string `json:"root_url"`
							TransactionFormatUrl string `json:"transaction_format_url"`
							AddressFormatUrl     string `json:"address_format_url"`
						} `json:"blockchain_explorer"`
					} `json:"chain"`
					Type string `json:"type"`
					Coin struct {
						Type        string `json:"type"`
						Name        string `json:"name"`
						Symbol      string `json:"symbol"`
						Display     string `json:"display"`
						Description string `json:"description"`
						Denom       string `json:"denom"`
						Decimals    int    `json:"decimals"`
						LogoUrl     string `json:"logo_url"`
						ExplorerUrl string `json:"explorer_url"`
					} `json:"coin"`
				} `json:"details"`
			} `json:"asset_identifier"`
			Price struct {
				Price        string `json:"price"`
				FiatCurrency struct {
					CurrencySymbol string `json:"currency_symbol"`
					Decimals       int    `json:"decimals"`
				} `json:"fiat_currency"`
			} `json:"price"`
		} `json:"asset_prices"`
		PreviousState string `json:"previous_state"`
		NewState      string `json:"new_state"`
	} `json:"state_changes"`
	RawData   string `json:"raw_data"`
	TypedData struct {
		Domain struct {
			Name              string `json:"name"`
			Version           string `json:"version"`
			ChainId           int    `json:"chain_id"`
			VerifyingContract struct {
				Address string `json:"address"`
				Vault   struct {
					Id      string `json:"id"`
					Name    string `json:"name"`
					Address string `json:"address"`
					EndUser struct {
						Id         string `json:"id"`
						UserType   string `json:"user_type"`
						ExternalId string `json:"external_id"`
						State      string `json:"state"`
					} `json:"end_user"`
				} `json:"vault"`
				Contact struct {
					Id         string `json:"id"`
					Name       string `json:"name"`
					AddressRef struct {
						ChainType string `json:"chain_type"`
						Address   string `json:"address"`
						Chains    []struct {
							ChainType    string `json:"chain_type"`
							NamedChainId string `json:"named_chain_id"`
							ChainId      int    `json:"chain_id"`
							UniqueId     string `json:"unique_id"`
						} `json:"chains"`
					} `json:"address_ref"`
				} `json:"contact"`
				ExplorerUrl string `json:"explorer_url"`
				Contract    struct {
					Name string `json:"name"`
					Dapp struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Url     string `json:"url"`
						LogoUrl string `json:"logo_url"`
					} `json:"dapp"`
					IsVerified bool `json:"is_verified"`
					Token      struct {
						Address struct {
							Chain struct {
								ChainType    string `json:"chain_type"`
								NamedChainId string `json:"named_chain_id"`
								ChainId      int    `json:"chain_id"`
								UniqueId     string `json:"unique_id"`
							} `json:"chain"`
							HexRepr string `json:"hex_repr"`
						} `json:"address"`
						Name     string `json:"name"`
						Symbol   string `json:"symbol"`
						Type     string `json:"type"`
						Decimals int    `json:"decimals"`
						LogoUrl  string `json:"logo_url"`
					} `json:"token"`
				} `json:"contract"`
			} `json:"verifying_contract"`
			Salt string `json:"salt"`
		} `json:"domain"`
		Type string `json:"type"`
	} `json:"typed_data"`
	Vault struct {
		Id      string `json:"id"`
		Name    string `json:"name"`
		Address string `json:"address"`
		EndUser struct {
			Id         string `json:"id"`
			UserType   string `json:"user_type"`
			ExternalId string `json:"external_id"`
			State      string `json:"state"`
		} `json:"end_user"`
	} `json:"vault"`
	Chain struct {
		ChainType            string `json:"chain_type"`
		NamedChainId         string `json:"named_chain_id"`
		ChainId              int    `json:"chain_id"`
		UniqueId             string `json:"unique_id"`
		Name                 string `json:"name"`
		NativeCurrencySymbol string `json:"native_currency_symbol"`
		NativeCurrencyName   string `json:"native_currency_name"`
		BlockchainExplorer   struct {
			TransactionUrl       string `json:"transaction_url"`
			AddressUrl           string `json:"address_url"`
			RootUrl              string `json:"root_url"`
			TransactionFormatUrl string `json:"transaction_format_url"`
			AddressFormatUrl     string `json:"address_format_url"`
		} `json:"blockchain_explorer"`
		GasType            string `json:"gas_type"`
		SupportsSecureNode bool   `json:"supports_secure_node"`
	} `json:"chain"`
}

type EvmTransactResp

type EvmTransactResp struct {
	Id                     string    `json:"id"`
	CreatedAt              time.Time `json:"created_at"`
	ModifiedAt             time.Time `json:"modified_at"`
	ManagedTransactionData struct {
		CreatedBy struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"created_by"`
		AbortedBy struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"aborted_by"`
		DeviceSigningRequest struct {
			Signers []struct {
				User struct {
					Id       string `json:"id"`
					UserType string `json:"user_type"`
					Name     string `json:"name"`
					Email    string `json:"email"`
					State    string `json:"state"`
					Role     string `json:"role"`
				} `json:"user"`
				ModifiedAt time.Time `json:"modified_at"`
				HasSigned  bool      `json:"has_signed"`
			} `json:"signers"`
		} `json:"device_signing_request"`
		ApprovalRequest struct {
			State      string `json:"state"`
			QuorumSize int    `json:"quorum_size"`
			Approvers  []struct {
				User struct {
					Id       string `json:"id"`
					UserType string `json:"user_type"`
					Name     string `json:"name"`
					Email    string `json:"email"`
					State    string `json:"state"`
					Role     string `json:"role"`
				} `json:"user"`
				ModifiedAt time.Time `json:"modified_at"`
				Decision   string    `json:"decision"`
			} `json:"approvers"`
			ApprovalGroups []struct {
				QuorumSize int `json:"quorum_size"`
				Approvers  []struct {
					User struct {
						Id       string `json:"id"`
						UserType string `json:"user_type"`
						Name     string `json:"name"`
						Email    string `json:"email"`
						State    string `json:"state"`
						Role     string `json:"role"`
					} `json:"user"`
					ModifiedAt time.Time `json:"modified_at"`
					Decision   string    `json:"decision"`
				} `json:"approvers"`
			} `json:"approval_groups"`
		} `json:"approval_request"`
		PolicyMatch struct {
			IsDefault  bool   `json:"is_default"`
			RuleId     string `json:"rule_id"`
			RuleName   string `json:"rule_name"`
			ActionType string `json:"action_type"`
		} `json:"policy_match"`
		SignedCreateRequest struct {
			RawData            string `json:"raw_data"`
			TimestampSignature struct {
				Signature string `json:"signature"`
				Timestamp int    `json:"timestamp"`
			} `json:"timestamp_signature"`
			UrlPath string `json:"url_path"`
		} `json:"signed_create_request"`
		SignerType string `json:"signer_type"`
		Risks      []struct {
			Type        string `json:"type"`
			Severity    string `json:"severity"`
			Title       string `json:"title"`
			Description string `json:"description"`
		} `json:"risks"`
		ErrorPushingToBlockchainMessage         string `json:"error_pushing_to_blockchain_message"`
		OriginalErrorPushingToBlockchainMessage string `json:"original_error_pushing_to_blockchain_message"`
		Vault                                   struct {
			Id      string `json:"id"`
			Name    string `json:"name"`
			Address string `json:"address"`
			EndUser struct {
				Id         string `json:"id"`
				UserType   string `json:"user_type"`
				ExternalId string `json:"external_id"`
				State      string `json:"state"`
			} `json:"end_user"`
		} `json:"vault"`
		IdempotenceId string `json:"idempotence_id"`
	} `json:"managed_transaction_data"`
	Signatures []struct {
		Data     string `json:"data"`
		SignedBy struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"signed_by"`
	} `json:"signatures"`
	Note                      string `json:"note"`
	SpamState                 string `json:"spam_state"`
	Type                      string `json:"type"`
	EvmTransactionTypeDetails struct {
		Type      string `json:"type"`
		Direction string `json:"direction"`
	} `json:"evm_transaction_type_details"`
	Chain struct {
		ChainType            string `json:"chain_type"`
		NamedChainId         string `json:"named_chain_id"`
		ChainId              int    `json:"chain_id"`
		UniqueId             string `json:"unique_id"`
		Name                 string `json:"name"`
		NativeCurrencySymbol string `json:"native_currency_symbol"`
		NativeCurrencyName   string `json:"native_currency_name"`
		BlockchainExplorer   struct {
			TransactionUrl       string `json:"transaction_url"`
			AddressUrl           string `json:"address_url"`
			RootUrl              string `json:"root_url"`
			TransactionFormatUrl string `json:"transaction_format_url"`
			AddressFormatUrl     string `json:"address_format_url"`
		} `json:"blockchain_explorer"`
		GasType            string `json:"gas_type"`
		SupportsSecureNode bool   `json:"supports_secure_node"`
	} `json:"chain"`
	From struct {
		Address string `json:"address"`
		Vault   struct {
			Id      string `json:"id"`
			Name    string `json:"name"`
			Address string `json:"address"`
			EndUser struct {
				Id         string `json:"id"`
				UserType   string `json:"user_type"`
				ExternalId string `json:"external_id"`
				State      string `json:"state"`
			} `json:"end_user"`
		} `json:"vault"`
		Contact struct {
			Id         string `json:"id"`
			Name       string `json:"name"`
			AddressRef struct {
				ChainType string `json:"chain_type"`
				Address   string `json:"address"`
				Chains    []struct {
					ChainType    string `json:"chain_type"`
					NamedChainId string `json:"named_chain_id"`
					ChainId      int    `json:"chain_id"`
					UniqueId     string `json:"unique_id"`
				} `json:"chains"`
			} `json:"address_ref"`
		} `json:"contact"`
		ExplorerUrl string `json:"explorer_url"`
		Contract    struct {
			Name string `json:"name"`
			Dapp struct {
				Id      string `json:"id"`
				Name    string `json:"name"`
				Url     string `json:"url"`
				LogoUrl string `json:"logo_url"`
			} `json:"dapp"`
			IsVerified bool `json:"is_verified"`
			Token      struct {
				Address struct {
					Chain struct {
						ChainType    string `json:"chain_type"`
						NamedChainId string `json:"named_chain_id"`
						ChainId      int    `json:"chain_id"`
						UniqueId     string `json:"unique_id"`
					} `json:"chain"`
					HexRepr string `json:"hex_repr"`
				} `json:"address"`
				Name     string `json:"name"`
				Symbol   string `json:"symbol"`
				Type     string `json:"type"`
				Decimals int    `json:"decimals"`
				LogoUrl  string `json:"logo_url"`
			} `json:"token"`
		} `json:"contract"`
	} `json:"from"`
	To struct {
		Address string `json:"address"`
		Vault   struct {
			Id      string `json:"id"`
			Name    string `json:"name"`
			Address string `json:"address"`
			EndUser struct {
				Id         string `json:"id"`
				UserType   string `json:"user_type"`
				ExternalId string `json:"external_id"`
				State      string `json:"state"`
			} `json:"end_user"`
		} `json:"vault"`
		Contact struct {
			Id         string `json:"id"`
			Name       string `json:"name"`
			AddressRef struct {
				ChainType string `json:"chain_type"`
				Address   string `json:"address"`
				Chains    []struct {
					ChainType    string `json:"chain_type"`
					NamedChainId string `json:"named_chain_id"`
					ChainId      int    `json:"chain_id"`
					UniqueId     string `json:"unique_id"`
				} `json:"chains"`
			} `json:"address_ref"`
		} `json:"contact"`
		ExplorerUrl string `json:"explorer_url"`
		Contract    struct {
			Name string `json:"name"`
			Dapp struct {
				Id      string `json:"id"`
				Name    string `json:"name"`
				Url     string `json:"url"`
				LogoUrl string `json:"logo_url"`
			} `json:"dapp"`
			IsVerified bool `json:"is_verified"`
			Token      struct {
				Address struct {
					Chain struct {
						ChainType    string `json:"chain_type"`
						NamedChainId string `json:"named_chain_id"`
						ChainId      int    `json:"chain_id"`
						UniqueId     string `json:"unique_id"`
					} `json:"chain"`
					HexRepr string `json:"hex_repr"`
				} `json:"address"`
				Name     string `json:"name"`
				Symbol   string `json:"symbol"`
				Type     string `json:"type"`
				Decimals int    `json:"decimals"`
				LogoUrl  string `json:"logo_url"`
			} `json:"token"`
		} `json:"contract"`
	} `json:"to"`
	Value      string `json:"value"`
	Data       string `json:"data"`
	ParsedData struct {
		Method          string `json:"method"`
		MethodArguments []struct {
			Name            string `json:"name"`
			Type            string `json:"type"`
			Value           string `json:"value"`
			EnrichedAddress struct {
				Address string `json:"address"`
				Vault   struct {
					Id      string `json:"id"`
					Name    string `json:"name"`
					Address string `json:"address"`
					EndUser struct {
						Id         string `json:"id"`
						UserType   string `json:"user_type"`
						ExternalId string `json:"external_id"`
						State      string `json:"state"`
					} `json:"end_user"`
				} `json:"vault"`
				Contact struct {
					Id         string `json:"id"`
					Name       string `json:"name"`
					AddressRef struct {
						ChainType string `json:"chain_type"`
						Address   string `json:"address"`
						Chains    []struct {
							ChainType    string `json:"chain_type"`
							NamedChainId string `json:"named_chain_id"`
							ChainId      int    `json:"chain_id"`
							UniqueId     string `json:"unique_id"`
						} `json:"chains"`
					} `json:"address_ref"`
				} `json:"contact"`
				ExplorerUrl string `json:"explorer_url"`
				Contract    struct {
					Name string `json:"name"`
					Dapp struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Url     string `json:"url"`
						LogoUrl string `json:"logo_url"`
					} `json:"dapp"`
					IsVerified bool `json:"is_verified"`
					Token      struct {
						Address struct {
							Chain struct {
								ChainType    string `json:"chain_type"`
								NamedChainId string `json:"named_chain_id"`
								ChainId      int    `json:"chain_id"`
								UniqueId     string `json:"unique_id"`
							} `json:"chain"`
							HexRepr string `json:"hex_repr"`
						} `json:"address"`
						Name     string `json:"name"`
						Symbol   string `json:"symbol"`
						Type     string `json:"type"`
						Decimals int    `json:"decimals"`
						LogoUrl  string `json:"logo_url"`
					} `json:"token"`
				} `json:"contract"`
			} `json:"enriched_address"`
		} `json:"method_arguments"`
	} `json:"parsed_data"`
	Hash  string `json:"hash"`
	Nonce int    `json:"nonce"`
	Block struct {
		Number  int       `json:"number"`
		Hash    string    `json:"hash"`
		MinedAt time.Time `json:"mined_at"`
	} `json:"block"`
	ExpectedResult struct {
		Reversion struct {
			State  string `json:"state"`
			Reason string `json:"reason"`
		} `json:"reversion"`
		GasDebit struct {
			GasUsed  string `json:"gas_used"`
			GasPrice string `json:"gas_price"`
			TotalFee string `json:"total_fee"`
		} `json:"gas_debit"`
		Effects struct {
			BalanceChanges []struct {
				Type    string `json:"type"`
				Address struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"address"`
				Diff  string `json:"diff"`
				Price struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"balance_changes"`
			Transfers []struct {
				Type string `json:"type"`
				From struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"from"`
				To struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"to"`
				Amount string `json:"amount"`
				Price  struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"transfers"`
			Allowances []struct {
				Type  string `json:"type"`
				Owner struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"owner"`
				Spender struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"spender"`
				Amount        string `json:"amount"`
				TokenContract struct {
					Name string `json:"name"`
					Dapp struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Url     string `json:"url"`
						LogoUrl string `json:"logo_url"`
					} `json:"dapp"`
					IsVerified bool `json:"is_verified"`
					Token      struct {
						Address struct {
							Chain struct {
								ChainType    string `json:"chain_type"`
								NamedChainId string `json:"named_chain_id"`
								ChainId      int    `json:"chain_id"`
								UniqueId     string `json:"unique_id"`
							} `json:"chain"`
							HexRepr string `json:"hex_repr"`
						} `json:"address"`
						Name     string `json:"name"`
						Symbol   string `json:"symbol"`
						Type     string `json:"type"`
						Decimals int    `json:"decimals"`
						LogoUrl  string `json:"logo_url"`
					} `json:"token"`
				} `json:"token_contract"`
				Price struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"allowances"`
			Bridge []struct {
				BridgeName string `json:"bridge_name"`
				Source     struct {
					Type          string `json:"type"`
					SourceAddress struct {
						Address string `json:"address"`
						Vault   struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Address string `json:"address"`
							EndUser struct {
								Id         string `json:"id"`
								UserType   string `json:"user_type"`
								ExternalId string `json:"external_id"`
								State      string `json:"state"`
							} `json:"end_user"`
						} `json:"vault"`
						Contact struct {
							Id         string `json:"id"`
							Name       string `json:"name"`
							AddressRef struct {
								ChainType string        `json:"chain_type"`
								Address   string        `json:"address"`
								Chains    []interface{} `json:"chains"`
							} `json:"address_ref"`
						} `json:"contact"`
						ExplorerUrl string `json:"explorer_url"`
						Contract    struct {
							Name string `json:"name"`
							Dapp struct {
								Id      string `json:"id"`
								Name    string `json:"name"`
								Url     string `json:"url"`
								LogoUrl string `json:"logo_url"`
							} `json:"dapp"`
							IsVerified bool `json:"is_verified"`
							Token      struct {
								Address struct {
								} `json:"address"`
								Name     string `json:"name"`
								Symbol   string `json:"symbol"`
								Type     string `json:"type"`
								Decimals int    `json:"decimals"`
								LogoUrl  string `json:"logo_url"`
							} `json:"token"`
						} `json:"contract"`
					} `json:"source_address"`
					Price struct {
						Price        string `json:"price"`
						FiatCurrency struct {
							CurrencySymbol string `json:"currency_symbol"`
							Decimals       int    `json:"decimals"`
						} `json:"fiat_currency"`
					} `json:"price"`
				} `json:"source"`
				Destination struct {
					Type        string `json:"type"`
					DestAddress struct {
						Address string `json:"address"`
						Vault   struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Address string `json:"address"`
							EndUser struct {
								Id         string `json:"id"`
								UserType   string `json:"user_type"`
								ExternalId string `json:"external_id"`
								State      string `json:"state"`
							} `json:"end_user"`
						} `json:"vault"`
						Contact struct {
							Id         string `json:"id"`
							Name       string `json:"name"`
							AddressRef struct {
								ChainType string        `json:"chain_type"`
								Address   string        `json:"address"`
								Chains    []interface{} `json:"chains"`
							} `json:"address_ref"`
						} `json:"contact"`
						ExplorerUrl string `json:"explorer_url"`
						Contract    struct {
							Name string `json:"name"`
							Dapp struct {
								Id      string `json:"id"`
								Name    string `json:"name"`
								Url     string `json:"url"`
								LogoUrl string `json:"logo_url"`
							} `json:"dapp"`
							IsVerified bool `json:"is_verified"`
							Token      struct {
								Address struct {
								} `json:"address"`
								Name     string `json:"name"`
								Symbol   string `json:"symbol"`
								Type     string `json:"type"`
								Decimals int    `json:"decimals"`
								LogoUrl  string `json:"logo_url"`
							} `json:"token"`
						} `json:"contract"`
					} `json:"dest_address"`
					DestChain struct {
						ChainType            string `json:"chain_type"`
						NamedChainId         string `json:"named_chain_id"`
						ChainId              int    `json:"chain_id"`
						UniqueId             string `json:"unique_id"`
						Name                 string `json:"name"`
						NativeCurrencySymbol string `json:"native_currency_symbol"`
						NativeCurrencyName   string `json:"native_currency_name"`
						BlockchainExplorer   struct {
							TransactionUrl       string `json:"transaction_url"`
							AddressUrl           string `json:"address_url"`
							RootUrl              string `json:"root_url"`
							TransactionFormatUrl string `json:"transaction_format_url"`
							AddressFormatUrl     string `json:"address_format_url"`
						} `json:"blockchain_explorer"`
						GasType            string `json:"gas_type"`
						SupportsSecureNode bool   `json:"supports_secure_node"`
					} `json:"dest_chain"`
				} `json:"destination"`
				Amount string `json:"amount"`
			} `json:"bridge"`
		} `json:"effects"`
	} `json:"expected_result"`
	SimulationStatusResult struct {
		SimulationStatus string `json:"simulation_status"`
		Details          string `json:"details"`
	} `json:"simulation_status_result"`
	MinedResult struct {
		Reversion struct {
			State  string `json:"state"`
			Reason string `json:"reason"`
		} `json:"reversion"`
		GasDebit struct {
			GasUsed  string `json:"gas_used"`
			GasPrice string `json:"gas_price"`
			TotalFee string `json:"total_fee"`
		} `json:"gas_debit"`
		Effects struct {
			BalanceChanges []struct {
				Type    string `json:"type"`
				Address struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"address"`
				Diff  string `json:"diff"`
				Price struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"balance_changes"`
			Transfers []struct {
				Type string `json:"type"`
				From struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"from"`
				To struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"to"`
				Amount string `json:"amount"`
				Price  struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"transfers"`
			Allowances []struct {
				Type  string `json:"type"`
				Owner struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"owner"`
				Spender struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"spender"`
				Amount        string `json:"amount"`
				TokenContract struct {
					Name string `json:"name"`
					Dapp struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Url     string `json:"url"`
						LogoUrl string `json:"logo_url"`
					} `json:"dapp"`
					IsVerified bool `json:"is_verified"`
					Token      struct {
						Address struct {
							Chain struct {
								ChainType    string `json:"chain_type"`
								NamedChainId string `json:"named_chain_id"`
								ChainId      int    `json:"chain_id"`
								UniqueId     string `json:"unique_id"`
							} `json:"chain"`
							HexRepr string `json:"hex_repr"`
						} `json:"address"`
						Name     string `json:"name"`
						Symbol   string `json:"symbol"`
						Type     string `json:"type"`
						Decimals int    `json:"decimals"`
						LogoUrl  string `json:"logo_url"`
					} `json:"token"`
				} `json:"token_contract"`
				Price struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"allowances"`
			Bridge []struct {
				BridgeName string `json:"bridge_name"`
				Source     struct {
					Type          string `json:"type"`
					SourceAddress struct {
						Address string `json:"address"`
						Vault   struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Address string `json:"address"`
							EndUser struct {
								Id         string `json:"id"`
								UserType   string `json:"user_type"`
								ExternalId string `json:"external_id"`
								State      string `json:"state"`
							} `json:"end_user"`
						} `json:"vault"`
						Contact struct {
							Id         string `json:"id"`
							Name       string `json:"name"`
							AddressRef struct {
								ChainType string        `json:"chain_type"`
								Address   string        `json:"address"`
								Chains    []interface{} `json:"chains"`
							} `json:"address_ref"`
						} `json:"contact"`
						ExplorerUrl string `json:"explorer_url"`
						Contract    struct {
							Name string `json:"name"`
							Dapp struct {
								Id      string `json:"id"`
								Name    string `json:"name"`
								Url     string `json:"url"`
								LogoUrl string `json:"logo_url"`
							} `json:"dapp"`
							IsVerified bool `json:"is_verified"`
							Token      struct {
								Address struct {
								} `json:"address"`
								Name     string `json:"name"`
								Symbol   string `json:"symbol"`
								Type     string `json:"type"`
								Decimals int    `json:"decimals"`
								LogoUrl  string `json:"logo_url"`
							} `json:"token"`
						} `json:"contract"`
					} `json:"source_address"`
					Price struct {
						Price        string `json:"price"`
						FiatCurrency struct {
							CurrencySymbol string `json:"currency_symbol"`
							Decimals       int    `json:"decimals"`
						} `json:"fiat_currency"`
					} `json:"price"`
				} `json:"source"`
				Destination struct {
					Type        string `json:"type"`
					DestAddress struct {
						Address string `json:"address"`
						Vault   struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Address string `json:"address"`
							EndUser struct {
								Id         string `json:"id"`
								UserType   string `json:"user_type"`
								ExternalId string `json:"external_id"`
								State      string `json:"state"`
							} `json:"end_user"`
						} `json:"vault"`
						Contact struct {
							Id         string `json:"id"`
							Name       string `json:"name"`
							AddressRef struct {
								ChainType string        `json:"chain_type"`
								Address   string        `json:"address"`
								Chains    []interface{} `json:"chains"`
							} `json:"address_ref"`
						} `json:"contact"`
						ExplorerUrl string `json:"explorer_url"`
						Contract    struct {
							Name string `json:"name"`
							Dapp struct {
								Id      string `json:"id"`
								Name    string `json:"name"`
								Url     string `json:"url"`
								LogoUrl string `json:"logo_url"`
							} `json:"dapp"`
							IsVerified bool `json:"is_verified"`
							Token      struct {
								Address struct {
								} `json:"address"`
								Name     string `json:"name"`
								Symbol   string `json:"symbol"`
								Type     string `json:"type"`
								Decimals int    `json:"decimals"`
								LogoUrl  string `json:"logo_url"`
							} `json:"token"`
						} `json:"contract"`
					} `json:"dest_address"`
					DestChain struct {
						ChainType            string `json:"chain_type"`
						NamedChainId         string `json:"named_chain_id"`
						ChainId              int    `json:"chain_id"`
						UniqueId             string `json:"unique_id"`
						Name                 string `json:"name"`
						NativeCurrencySymbol string `json:"native_currency_symbol"`
						NativeCurrencyName   string `json:"native_currency_name"`
						BlockchainExplorer   struct {
							TransactionUrl       string `json:"transaction_url"`
							AddressUrl           string `json:"address_url"`
							RootUrl              string `json:"root_url"`
							TransactionFormatUrl string `json:"transaction_format_url"`
							AddressFormatUrl     string `json:"address_format_url"`
						} `json:"blockchain_explorer"`
						GasType            string `json:"gas_type"`
						SupportsSecureNode bool   `json:"supports_secure_node"`
					} `json:"dest_chain"`
				} `json:"destination"`
				Amount string `json:"amount"`
			} `json:"bridge"`
		} `json:"effects"`
	} `json:"mined_result"`
	GasSubmitted struct {
		Price    string `json:"price"`
		Priority string `json:"priority"`
		Limit    string `json:"limit"`
		Type     string `json:"type"`
	} `json:"gas_submitted"`
	State        string `json:"state"`
	StateChanges []struct {
		ChangedAt time.Time `json:"changed_at"`
		Prices    struct {
			NativeCurrencyPrice struct {
				Price        string `json:"price"`
				FiatCurrency struct {
					CurrencySymbol string `json:"currency_symbol"`
					Decimals       int    `json:"decimals"`
				} `json:"fiat_currency"`
			} `json:"native_currency_price"`
			TokenPrices []struct {
				Price        string `json:"price"`
				FiatCurrency struct {
					CurrencySymbol string `json:"currency_symbol"`
					Decimals       int    `json:"decimals"`
				} `json:"fiat_currency"`
				Token struct {
					Address struct {
						Chain struct {
							ChainType    string `json:"chain_type"`
							NamedChainId string `json:"named_chain_id"`
							ChainId      int    `json:"chain_id"`
							UniqueId     string `json:"unique_id"`
						} `json:"chain"`
						HexRepr string `json:"hex_repr"`
					} `json:"address"`
					Name     string `json:"name"`
					Symbol   string `json:"symbol"`
					Type     string `json:"type"`
					Decimals int    `json:"decimals"`
					LogoUrl  string `json:"logo_url"`
				} `json:"token"`
			} `json:"token_prices"`
		} `json:"prices"`
		AssetPrices []struct {
			AssetIdentifier struct {
				Type    string `json:"type"`
				Details struct {
					Chain struct {
						ChainType            string `json:"chain_type"`
						UniqueId             string `json:"unique_id"`
						Name                 string `json:"name"`
						NativeCurrencySymbol string `json:"native_currency_symbol"`
						NativeCurrencyName   string `json:"native_currency_name"`
						BlockchainExplorer   struct {
							TransactionUrl       string `json:"transaction_url"`
							AddressUrl           string `json:"address_url"`
							RootUrl              string `json:"root_url"`
							TransactionFormatUrl string `json:"transaction_format_url"`
							AddressFormatUrl     string `json:"address_format_url"`
						} `json:"blockchain_explorer"`
					} `json:"chain"`
					Type string `json:"type"`
					Coin struct {
						Type        string `json:"type"`
						Name        string `json:"name"`
						Symbol      string `json:"symbol"`
						Display     string `json:"display"`
						Description string `json:"description"`
						Denom       string `json:"denom"`
						Decimals    int    `json:"decimals"`
						LogoUrl     string `json:"logo_url"`
						ExplorerUrl string `json:"explorer_url"`
					} `json:"coin"`
				} `json:"details"`
			} `json:"asset_identifier"`
			Price struct {
				Price        string `json:"price"`
				FiatCurrency struct {
					CurrencySymbol string `json:"currency_symbol"`
					Decimals       int    `json:"decimals"`
				} `json:"fiat_currency"`
			} `json:"price"`
		} `json:"asset_prices"`
		PreviousState string `json:"previous_state"`
		NewState      string `json:"new_state"`
	} `json:"state_changes"`
	ParentTransactionId                             string `json:"parent_transaction_id"`
	ChildTransactionId                              string `json:"child_transaction_id"`
	CurrentPrecedingPushedToBlockchainTransactionId string `json:"current_preceding_pushed_to_blockchain_transaction_id"`
	IsCancelation                                   bool   `json:"is_cancelation"`
	IsAcceleration                                  bool   `json:"is_acceleration"`
	UseSecureNode                                   bool   `json:"use_secure_node"`
	ExplorerUrl                                     string `json:"explorer_url"`
}

type EvmTransferReq

type EvmTransferReq struct {
	SignerType string `json:"signer_type"`
	Type       string `json:"type"`
	Details    struct {
		Type            string    `json:"type"`
		Gas             EvmGasOps `json:"gas"`
		To              string    `json:"to"`
		AssetIdentifier struct {
			Type    string                 `json:"type"`
			Details map[string]interface{} `json:"details"`
		} `json:"asset_identifier"`
		Value struct {
			Type  string `json:"type"`
			Value string `json:"value,omitempty"`
		} `json:"value"`
	} `json:"details"`
	Note    string `json:"note"`
	VaultId string `json:"vault_id"`
}

func (*EvmTransferReq) PrepareForEvmTransfer

func (r *EvmTransferReq) PrepareForEvmTransfer()

type EvmTxResp

type EvmTxResp struct {
	Id                     string    `json:"id"`
	CreatedAt              time.Time `json:"created_at"`
	ModifiedAt             time.Time `json:"modified_at"`
	ManagedTransactionData struct {
		CreatedBy struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"created_by"`
		AbortedBy struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"aborted_by"`
		DeviceSigningRequest struct {
			Signers []struct {
				User struct {
					Id       string `json:"id"`
					UserType string `json:"user_type"`
					Name     string `json:"name"`
					Email    string `json:"email"`
					State    string `json:"state"`
					Role     string `json:"role"`
				} `json:"user"`
				ModifiedAt time.Time `json:"modified_at"`
				HasSigned  bool      `json:"has_signed"`
			} `json:"signers"`
		} `json:"device_signing_request"`
		ApprovalRequest struct {
			State      string `json:"state"`
			QuorumSize int    `json:"quorum_size"`
			Approvers  []struct {
				User struct {
					Id       string `json:"id"`
					UserType string `json:"user_type"`
					Name     string `json:"name"`
					Email    string `json:"email"`
					State    string `json:"state"`
					Role     string `json:"role"`
				} `json:"user"`
				ModifiedAt time.Time `json:"modified_at"`
				Decision   string    `json:"decision"`
				State      string    `json:"state"`
			} `json:"approvers"`
			ApprovalGroups []struct {
				QuorumSize int `json:"quorum_size"`
				Approvers  []struct {
					User struct {
						Id       string `json:"id"`
						UserType string `json:"user_type"`
						Name     string `json:"name"`
						Email    string `json:"email"`
						State    string `json:"state"`
						Role     string `json:"role"`
					} `json:"user"`
					ModifiedAt time.Time `json:"modified_at"`
					Decision   string    `json:"decision"`
					State      string    `json:"state"`
				} `json:"approvers"`
			} `json:"approval_groups"`
		} `json:"approval_request"`
		PolicyMatch struct {
			IsDefault  bool   `json:"is_default"`
			RuleId     string `json:"rule_id"`
			RuleName   string `json:"rule_name"`
			ActionType string `json:"action_type"`
		} `json:"policy_match"`
		SignedCreateRequest struct {
			RawData            string `json:"raw_data"`
			TimestampSignature struct {
				Signature string `json:"signature"`
				Timestamp int    `json:"timestamp"`
			} `json:"timestamp_signature"`
			UrlPath string `json:"url_path"`
		} `json:"signed_create_request"`
		SignerType string `json:"signer_type"`
		Risks      []struct {
			Type        string `json:"type"`
			Severity    string `json:"severity"`
			Title       string `json:"title"`
			Description string `json:"description"`
		} `json:"risks"`
		ErrorPushingToBlockchainMessage         string `json:"error_pushing_to_blockchain_message"`
		OriginalErrorPushingToBlockchainMessage string `json:"original_error_pushing_to_blockchain_message"`
		Vault                                   struct {
			Id      string `json:"id"`
			Name    string `json:"name"`
			Address string `json:"address"`
			EndUser struct {
				Id         string `json:"id"`
				UserType   string `json:"user_type"`
				ExternalId string `json:"external_id"`
				State      string `json:"state"`
			} `json:"end_user"`
		} `json:"vault"`
		IdempotenceId string `json:"idempotence_id"`
	} `json:"managed_transaction_data"`
	Signatures []struct {
		Data     string `json:"data"`
		SignedBy struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"signed_by"`
	} `json:"signatures"`
	Note                      string `json:"note"`
	SpamState                 string `json:"spam_state"`
	Type                      string `json:"type"`
	EvmTransactionTypeDetails struct {
		Type      string `json:"type"`
		Direction string `json:"direction"`
	} `json:"evm_transaction_type_details"`
	Chain struct {
		ChainType            string `json:"chain_type"`
		NamedChainId         string `json:"named_chain_id"`
		ChainId              int    `json:"chain_id"`
		UniqueId             string `json:"unique_id"`
		Name                 string `json:"name"`
		NativeCurrencySymbol string `json:"native_currency_symbol"`
		NativeCurrencyName   string `json:"native_currency_name"`
		BlockchainExplorer   struct {
			TransactionUrl       string `json:"transaction_url"`
			AddressUrl           string `json:"address_url"`
			RootUrl              string `json:"root_url"`
			TransactionFormatUrl string `json:"transaction_format_url"`
			AddressFormatUrl     string `json:"address_format_url"`
		} `json:"blockchain_explorer"`
		GasType            string `json:"gas_type"`
		SupportsSecureNode bool   `json:"supports_secure_node"`
	} `json:"chain"`
	From struct {
		Address string `json:"address"`
		Vault   struct {
			Id      string `json:"id"`
			Name    string `json:"name"`
			Address string `json:"address"`
			EndUser struct {
				Id         string `json:"id"`
				UserType   string `json:"user_type"`
				ExternalId string `json:"external_id"`
				State      string `json:"state"`
			} `json:"end_user"`
		} `json:"vault"`
		Contact struct {
			Id         string `json:"id"`
			Name       string `json:"name"`
			AddressRef struct {
				ChainType string `json:"chain_type"`
				Address   string `json:"address"`
				Chains    []struct {
					ChainType    string `json:"chain_type"`
					NamedChainId string `json:"named_chain_id"`
					ChainId      int    `json:"chain_id"`
					UniqueId     string `json:"unique_id"`
				} `json:"chains"`
			} `json:"address_ref"`
		} `json:"contact"`
		ExplorerUrl string `json:"explorer_url"`
		Contract    struct {
			Name string `json:"name"`
			Dapp struct {
				Id      string `json:"id"`
				Name    string `json:"name"`
				Url     string `json:"url"`
				LogoUrl string `json:"logo_url"`
			} `json:"dapp"`
			IsVerified bool `json:"is_verified"`
			Token      struct {
				Address struct {
					Chain struct {
						ChainType    string `json:"chain_type"`
						NamedChainId string `json:"named_chain_id"`
						ChainId      int    `json:"chain_id"`
						UniqueId     string `json:"unique_id"`
					} `json:"chain"`
					HexRepr string `json:"hex_repr"`
				} `json:"address"`
				Name     string `json:"name"`
				Symbol   string `json:"symbol"`
				Type     string `json:"type"`
				Decimals int    `json:"decimals"`
				LogoUrl  string `json:"logo_url"`
			} `json:"token"`
		} `json:"contract"`
	} `json:"from"`
	To struct {
		Address string `json:"address"`
		Vault   struct {
			Id      string `json:"id"`
			Name    string `json:"name"`
			Address string `json:"address"`
			EndUser struct {
				Id         string `json:"id"`
				UserType   string `json:"user_type"`
				ExternalId string `json:"external_id"`
				State      string `json:"state"`
			} `json:"end_user"`
		} `json:"vault"`
		Contact struct {
			Id         string `json:"id"`
			Name       string `json:"name"`
			AddressRef struct {
				ChainType string `json:"chain_type"`
				Address   string `json:"address"`
				Chains    []struct {
					ChainType    string `json:"chain_type"`
					NamedChainId string `json:"named_chain_id"`
					ChainId      int    `json:"chain_id"`
					UniqueId     string `json:"unique_id"`
				} `json:"chains"`
			} `json:"address_ref"`
		} `json:"contact"`
		ExplorerUrl string `json:"explorer_url"`
		Contract    struct {
			Name string `json:"name"`
			Dapp struct {
				Id      string `json:"id"`
				Name    string `json:"name"`
				Url     string `json:"url"`
				LogoUrl string `json:"logo_url"`
			} `json:"dapp"`
			IsVerified bool `json:"is_verified"`
			Token      struct {
				Address struct {
					Chain struct {
						ChainType    string `json:"chain_type"`
						NamedChainId string `json:"named_chain_id"`
						ChainId      int    `json:"chain_id"`
						UniqueId     string `json:"unique_id"`
					} `json:"chain"`
					HexRepr string `json:"hex_repr"`
				} `json:"address"`
				Name     string `json:"name"`
				Symbol   string `json:"symbol"`
				Type     string `json:"type"`
				Decimals int    `json:"decimals"`
				LogoUrl  string `json:"logo_url"`
			} `json:"token"`
		} `json:"contract"`
	} `json:"to"`
	Value      string `json:"value"`
	Data       string `json:"data"`
	ParsedData struct {
		Method          string `json:"method"`
		MethodArguments []struct {
			Name            string `json:"name"`
			Type            string `json:"type"`
			Value           string `json:"value"`
			EnrichedAddress struct {
				Address string `json:"address"`
				Vault   struct {
					Id      string `json:"id"`
					Name    string `json:"name"`
					Address string `json:"address"`
					EndUser struct {
						Id         string `json:"id"`
						UserType   string `json:"user_type"`
						ExternalId string `json:"external_id"`
						State      string `json:"state"`
					} `json:"end_user"`
				} `json:"vault"`
				Contact struct {
					Id         string `json:"id"`
					Name       string `json:"name"`
					AddressRef struct {
						ChainType string `json:"chain_type"`
						Address   string `json:"address"`
						Chains    []struct {
							ChainType    string `json:"chain_type"`
							NamedChainId string `json:"named_chain_id"`
							ChainId      int    `json:"chain_id"`
							UniqueId     string `json:"unique_id"`
						} `json:"chains"`
					} `json:"address_ref"`
				} `json:"contact"`
				ExplorerUrl string `json:"explorer_url"`
				Contract    struct {
					Name string `json:"name"`
					Dapp struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Url     string `json:"url"`
						LogoUrl string `json:"logo_url"`
					} `json:"dapp"`
					IsVerified bool `json:"is_verified"`
					Token      struct {
						Address struct {
							Chain struct {
								ChainType    string `json:"chain_type"`
								NamedChainId string `json:"named_chain_id"`
								ChainId      int    `json:"chain_id"`
								UniqueId     string `json:"unique_id"`
							} `json:"chain"`
							HexRepr string `json:"hex_repr"`
						} `json:"address"`
						Name     string `json:"name"`
						Symbol   string `json:"symbol"`
						Type     string `json:"type"`
						Decimals int    `json:"decimals"`
						LogoUrl  string `json:"logo_url"`
					} `json:"token"`
				} `json:"contract"`
			} `json:"enriched_address"`
		} `json:"method_arguments"`
	} `json:"parsed_data"`
	Hash  string `json:"hash"`
	Nonce int    `json:"nonce"`
	Block struct {
		Number  int       `json:"number"`
		Hash    string    `json:"hash"`
		MinedAt time.Time `json:"mined_at"`
	} `json:"block"`
	ExpectedResult struct {
		Reversion struct {
			State  string `json:"state"`
			Reason string `json:"reason"`
		} `json:"reversion"`
		GasDebit struct {
			GasUsed  string `json:"gas_used"`
			GasPrice string `json:"gas_price"`
			TotalFee string `json:"total_fee"`
		} `json:"gas_debit"`
		Effects struct {
			BalanceChanges []struct {
				Type    string `json:"type"`
				Address struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"address"`
				Diff  string `json:"diff"`
				Price struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"balance_changes"`
			Transfers []struct {
				Type string `json:"type"`
				From struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"from"`
				To struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"to"`
				Amount string `json:"amount"`
				Price  struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"transfers"`
			Allowances []struct {
				Type  string `json:"type"`
				Owner struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"owner"`
				Spender struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"spender"`
				Amount        string `json:"amount"`
				TokenContract struct {
					Name string `json:"name"`
					Dapp struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Url     string `json:"url"`
						LogoUrl string `json:"logo_url"`
					} `json:"dapp"`
					IsVerified bool `json:"is_verified"`
					Token      struct {
						Address struct {
							Chain struct {
								ChainType    string `json:"chain_type"`
								NamedChainId string `json:"named_chain_id"`
								ChainId      int    `json:"chain_id"`
								UniqueId     string `json:"unique_id"`
							} `json:"chain"`
							HexRepr string `json:"hex_repr"`
						} `json:"address"`
						Name     string `json:"name"`
						Symbol   string `json:"symbol"`
						Type     string `json:"type"`
						Decimals int    `json:"decimals"`
						LogoUrl  string `json:"logo_url"`
					} `json:"token"`
				} `json:"token_contract"`
				Price struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"allowances"`
			Bridge []struct {
				BridgeName string `json:"bridge_name"`
				Source     struct {
					Type          string `json:"type"`
					SourceAddress struct {
						Address string `json:"address"`
						Vault   struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Address string `json:"address"`
							EndUser struct {
								Id         string `json:"id"`
								UserType   string `json:"user_type"`
								ExternalId string `json:"external_id"`
								State      string `json:"state"`
							} `json:"end_user"`
						} `json:"vault"`
						Contact struct {
							Id         string `json:"id"`
							Name       string `json:"name"`
							AddressRef struct {
								ChainType string        `json:"chain_type"`
								Address   string        `json:"address"`
								Chains    []interface{} `json:"chains"`
							} `json:"address_ref"`
						} `json:"contact"`
						ExplorerUrl string `json:"explorer_url"`
						Contract    struct {
							Name string `json:"name"`
							Dapp struct {
								Id      string `json:"id"`
								Name    string `json:"name"`
								Url     string `json:"url"`
								LogoUrl string `json:"logo_url"`
							} `json:"dapp"`
							IsVerified bool `json:"is_verified"`
							Token      struct {
								Address struct {
								} `json:"address"`
								Name     string `json:"name"`
								Symbol   string `json:"symbol"`
								Type     string `json:"type"`
								Decimals int    `json:"decimals"`
								LogoUrl  string `json:"logo_url"`
							} `json:"token"`
						} `json:"contract"`
					} `json:"source_address"`
					Price struct {
						Price        string `json:"price"`
						FiatCurrency struct {
							CurrencySymbol string `json:"currency_symbol"`
							Decimals       int    `json:"decimals"`
						} `json:"fiat_currency"`
					} `json:"price"`
				} `json:"source"`
				Destination struct {
					Type        string `json:"type"`
					DestAddress struct {
						Address string `json:"address"`
						Vault   struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Address string `json:"address"`
							EndUser struct {
								Id         string `json:"id"`
								UserType   string `json:"user_type"`
								ExternalId string `json:"external_id"`
								State      string `json:"state"`
							} `json:"end_user"`
						} `json:"vault"`
						Contact struct {
							Id         string `json:"id"`
							Name       string `json:"name"`
							AddressRef struct {
								ChainType string        `json:"chain_type"`
								Address   string        `json:"address"`
								Chains    []interface{} `json:"chains"`
							} `json:"address_ref"`
						} `json:"contact"`
						ExplorerUrl string `json:"explorer_url"`
						Contract    struct {
							Name string `json:"name"`
							Dapp struct {
								Id      string `json:"id"`
								Name    string `json:"name"`
								Url     string `json:"url"`
								LogoUrl string `json:"logo_url"`
							} `json:"dapp"`
							IsVerified bool `json:"is_verified"`
							Token      struct {
								Address struct {
								} `json:"address"`
								Name     string `json:"name"`
								Symbol   string `json:"symbol"`
								Type     string `json:"type"`
								Decimals int    `json:"decimals"`
								LogoUrl  string `json:"logo_url"`
							} `json:"token"`
						} `json:"contract"`
					} `json:"dest_address"`
					DestChain struct {
						ChainType            string `json:"chain_type"`
						NamedChainId         string `json:"named_chain_id"`
						ChainId              int    `json:"chain_id"`
						UniqueId             string `json:"unique_id"`
						Name                 string `json:"name"`
						NativeCurrencySymbol string `json:"native_currency_symbol"`
						NativeCurrencyName   string `json:"native_currency_name"`
						BlockchainExplorer   struct {
							TransactionUrl       string `json:"transaction_url"`
							AddressUrl           string `json:"address_url"`
							RootUrl              string `json:"root_url"`
							TransactionFormatUrl string `json:"transaction_format_url"`
							AddressFormatUrl     string `json:"address_format_url"`
						} `json:"blockchain_explorer"`
						GasType            string `json:"gas_type"`
						SupportsSecureNode bool   `json:"supports_secure_node"`
					} `json:"dest_chain"`
				} `json:"destination"`
				Amount string `json:"amount"`
			} `json:"bridge"`
		} `json:"effects"`
	} `json:"expected_result"`
	SimulationStatusResult struct {
		SimulationStatus string `json:"simulation_status"`
		Details          string `json:"details"`
	} `json:"simulation_status_result"`
	MinedResult struct {
		Reversion struct {
			State  string `json:"state"`
			Reason string `json:"reason"`
		} `json:"reversion"`
		GasDebit struct {
			GasUsed  string `json:"gas_used"`
			GasPrice string `json:"gas_price"`
			TotalFee string `json:"total_fee"`
		} `json:"gas_debit"`
		Effects struct {
			BalanceChanges []struct {
				Type    string `json:"type"`
				Address struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"address"`
				Diff  string `json:"diff"`
				Price struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"balance_changes"`
			Transfers []struct {
				Type string `json:"type"`
				From struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"from"`
				To struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"to"`
				Amount string `json:"amount"`
				Price  struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"transfers"`
			Allowances []struct {
				Type  string `json:"type"`
				Owner struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"owner"`
				Spender struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					Contact struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					ExplorerUrl string `json:"explorer_url"`
					Contract    struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Address struct {
								Chain struct {
								} `json:"chain"`
								HexRepr string `json:"hex_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Type     string `json:"type"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"spender"`
				Amount        string `json:"amount"`
				TokenContract struct {
					Name string `json:"name"`
					Dapp struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Url     string `json:"url"`
						LogoUrl string `json:"logo_url"`
					} `json:"dapp"`
					IsVerified bool `json:"is_verified"`
					Token      struct {
						Address struct {
							Chain struct {
								ChainType    string `json:"chain_type"`
								NamedChainId string `json:"named_chain_id"`
								ChainId      int    `json:"chain_id"`
								UniqueId     string `json:"unique_id"`
							} `json:"chain"`
							HexRepr string `json:"hex_repr"`
						} `json:"address"`
						Name     string `json:"name"`
						Symbol   string `json:"symbol"`
						Type     string `json:"type"`
						Decimals int    `json:"decimals"`
						LogoUrl  string `json:"logo_url"`
					} `json:"token"`
				} `json:"token_contract"`
				Price struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"allowances"`
			Bridge []struct {
				BridgeName string `json:"bridge_name"`
				Source     struct {
					Type          string `json:"type"`
					SourceAddress struct {
						Address string `json:"address"`
						Vault   struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Address string `json:"address"`
							EndUser struct {
								Id         string `json:"id"`
								UserType   string `json:"user_type"`
								ExternalId string `json:"external_id"`
								State      string `json:"state"`
							} `json:"end_user"`
						} `json:"vault"`
						Contact struct {
							Id         string `json:"id"`
							Name       string `json:"name"`
							AddressRef struct {
								ChainType string        `json:"chain_type"`
								Address   string        `json:"address"`
								Chains    []interface{} `json:"chains"`
							} `json:"address_ref"`
						} `json:"contact"`
						ExplorerUrl string `json:"explorer_url"`
						Contract    struct {
							Name string `json:"name"`
							Dapp struct {
								Id      string `json:"id"`
								Name    string `json:"name"`
								Url     string `json:"url"`
								LogoUrl string `json:"logo_url"`
							} `json:"dapp"`
							IsVerified bool `json:"is_verified"`
							Token      struct {
								Address struct {
								} `json:"address"`
								Name     string `json:"name"`
								Symbol   string `json:"symbol"`
								Type     string `json:"type"`
								Decimals int    `json:"decimals"`
								LogoUrl  string `json:"logo_url"`
							} `json:"token"`
						} `json:"contract"`
					} `json:"source_address"`
					Price struct {
						Price        string `json:"price"`
						FiatCurrency struct {
							CurrencySymbol string `json:"currency_symbol"`
							Decimals       int    `json:"decimals"`
						} `json:"fiat_currency"`
					} `json:"price"`
				} `json:"source"`
				Destination struct {
					Type        string `json:"type"`
					DestAddress struct {
						Address string `json:"address"`
						Vault   struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Address string `json:"address"`
							EndUser struct {
								Id         string `json:"id"`
								UserType   string `json:"user_type"`
								ExternalId string `json:"external_id"`
								State      string `json:"state"`
							} `json:"end_user"`
						} `json:"vault"`
						Contact struct {
							Id         string `json:"id"`
							Name       string `json:"name"`
							AddressRef struct {
								ChainType string        `json:"chain_type"`
								Address   string        `json:"address"`
								Chains    []interface{} `json:"chains"`
							} `json:"address_ref"`
						} `json:"contact"`
						ExplorerUrl string `json:"explorer_url"`
						Contract    struct {
							Name string `json:"name"`
							Dapp struct {
								Id      string `json:"id"`
								Name    string `json:"name"`
								Url     string `json:"url"`
								LogoUrl string `json:"logo_url"`
							} `json:"dapp"`
							IsVerified bool `json:"is_verified"`
							Token      struct {
								Address struct {
								} `json:"address"`
								Name     string `json:"name"`
								Symbol   string `json:"symbol"`
								Type     string `json:"type"`
								Decimals int    `json:"decimals"`
								LogoUrl  string `json:"logo_url"`
							} `json:"token"`
						} `json:"contract"`
					} `json:"dest_address"`
					DestChain struct {
						ChainType            string `json:"chain_type"`
						NamedChainId         string `json:"named_chain_id"`
						ChainId              int    `json:"chain_id"`
						UniqueId             string `json:"unique_id"`
						Name                 string `json:"name"`
						NativeCurrencySymbol string `json:"native_currency_symbol"`
						NativeCurrencyName   string `json:"native_currency_name"`
						BlockchainExplorer   struct {
							TransactionUrl       string `json:"transaction_url"`
							AddressUrl           string `json:"address_url"`
							RootUrl              string `json:"root_url"`
							TransactionFormatUrl string `json:"transaction_format_url"`
							AddressFormatUrl     string `json:"address_format_url"`
						} `json:"blockchain_explorer"`
						GasType            string `json:"gas_type"`
						SupportsSecureNode bool   `json:"supports_secure_node"`
					} `json:"dest_chain"`
				} `json:"destination"`
				Amount string `json:"amount"`
			} `json:"bridge"`
		} `json:"effects"`
	} `json:"mined_result"`
	GasSubmitted struct {
		Price    string `json:"price"`
		Priority string `json:"priority"`
		Limit    string `json:"limit"`
		Type     string `json:"type"`
	} `json:"gas_submitted"`
	State        string `json:"state"`
	StateChanges []struct {
		ChangedAt time.Time `json:"changed_at"`
		Prices    struct {
			NativeCurrencyPrice struct {
				Price        string `json:"price"`
				FiatCurrency struct {
					CurrencySymbol string `json:"currency_symbol"`
					Decimals       int    `json:"decimals"`
				} `json:"fiat_currency"`
			} `json:"native_currency_price"`
			TokenPrices []struct {
				Price        string `json:"price"`
				FiatCurrency struct {
					CurrencySymbol string `json:"currency_symbol"`
					Decimals       int    `json:"decimals"`
				} `json:"fiat_currency"`
				Token struct {
					Address struct {
						Chain struct {
							ChainType    string `json:"chain_type"`
							NamedChainId string `json:"named_chain_id"`
							ChainId      int    `json:"chain_id"`
							UniqueId     string `json:"unique_id"`
						} `json:"chain"`
						HexRepr string `json:"hex_repr"`
					} `json:"address"`
					Name     string `json:"name"`
					Symbol   string `json:"symbol"`
					Type     string `json:"type"`
					Decimals int    `json:"decimals"`
					LogoUrl  string `json:"logo_url"`
				} `json:"token"`
			} `json:"token_prices"`
		} `json:"prices"`
		AssetPrices []struct {
			AssetIdentifier struct {
				Type    string `json:"type"`
				Details struct {
					Chain struct {
						ChainType            string `json:"chain_type"`
						UniqueId             string `json:"unique_id"`
						Name                 string `json:"name"`
						NativeCurrencySymbol string `json:"native_currency_symbol"`
						NativeCurrencyName   string `json:"native_currency_name"`
						BlockchainExplorer   struct {
							TransactionUrl       string `json:"transaction_url"`
							AddressUrl           string `json:"address_url"`
							RootUrl              string `json:"root_url"`
							TransactionFormatUrl string `json:"transaction_format_url"`
							AddressFormatUrl     string `json:"address_format_url"`
						} `json:"blockchain_explorer"`
						BaseDenom string `json:"base_denom"`
					} `json:"chain"`
					Type string `json:"type"`
					Coin struct {
						Name        string `json:"name"`
						Symbol      string `json:"symbol"`
						Display     string `json:"display"`
						Description string `json:"description"`
						BaseDenom   string `json:"base_denom"`
						Denom       string `json:"denom"`
						Decimals    int    `json:"decimals"`
						LogoUrl     string `json:"logo_url"`
						ExplorerUrl string `json:"explorer_url"`
						Type        string `json:"type"`
					} `json:"coin"`
				} `json:"details"`
			} `json:"asset_identifier"`
			Price struct {
				Price        string `json:"price"`
				FiatCurrency struct {
					CurrencySymbol string `json:"currency_symbol"`
					Decimals       int    `json:"decimals"`
				} `json:"fiat_currency"`
			} `json:"price"`
		} `json:"asset_prices"`
		PreviousState string `json:"previous_state"`
		NewState      string `json:"new_state"`
	} `json:"state_changes"`
	ParentTransactionId                             string `json:"parent_transaction_id"`
	ChildTransactionId                              string `json:"child_transaction_id"`
	CurrentPrecedingPushedToBlockchainTransactionId string `json:"current_preceding_pushed_to_blockchain_transaction_id"`
	IsCancelation                                   bool   `json:"is_cancelation"`
	IsAcceleration                                  bool   `json:"is_acceleration"`
	UseSecureNode                                   bool   `json:"use_secure_node"`
	ExplorerUrl                                     string `json:"explorer_url"`
}

type ListChainResponse

type ListChainResponse struct {
	Chains []struct {
		ChainType            string `json:"chain_type"`
		UniqueId             string `json:"unique_id"`
		Name                 string `json:"name"`
		NativeCurrencySymbol string `json:"native_currency_symbol"`
		NativeCurrencyName   string `json:"native_currency_name"`
		BlockchainExplorer   struct {
			TransactionUrl       string `json:"transaction_url"`
			AddressUrl           string `json:"address_url"`
			RootUrl              string `json:"root_url"`
			TransactionFormatUrl string `json:"transaction_format_url"`
			AddressFormatUrl     string `json:"address_format_url"`
		} `json:"blockchain_explorer"`
		BaseDenom string `json:"base_denom"`
	} `json:"chains"`
}

type ListVaultsResp

type ListVaultsResp struct {
	Total  int `json:"total"`
	Page   int `json:"page"`
	Size   int `json:"size"`
	Vaults []struct {
		Id         string    `json:"id"`
		CreatedAt  time.Time `json:"created_at"`
		ModifiedAt time.Time `json:"modified_at"`
		Name       string    `json:"name"`
		CreatedBy  struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"created_by"`
		DerivationPath      string `json:"derivation_path"`
		PublicKeyCompressed string `json:"public_key_compressed"`
		DerivationInfo      struct {
			DerivationPath  string `json:"derivation_path"`
			MasterPublicKey struct {
				Id   string `json:"id"`
				Xpub string `json:"xpub"`
			} `json:"master_public_key"`
		} `json:"derivation_info"`
		Keyset struct {
			Id    string `json:"id"`
			Name  string `json:"name"`
			Scope string `json:"scope"`
		} `json:"keyset"`
		KeyHolder struct {
			Id         string `json:"id"`
			UserType   string `json:"user_type"`
			ExternalId string `json:"external_id"`
			State      string `json:"state"`
		} `json:"key_holder"`
		VaultGroup struct {
			Id         string `json:"id"`
			Name       string `json:"name"`
			VaultCount int    `json:"vault_count"`
		} `json:"vault_group"`
		PendingVaultGroupAction struct {
			Type           string `json:"type"`
			VaultGroupId   string `json:"vault_group_id"`
			VaultGroupName string `json:"vault_group_name"`
		} `json:"pending_vault_group_action"`
		Type    string `json:"type"`
		Details struct {
			Type      string `json:"type"`
			PublicKey string `json:"public_key"`
			StarkKey  string `json:"stark_key"`
		} `json:"details"`
	} `json:"vaults"`
}

type SolanaTransactResp

type SolanaTransactResp struct {
	Id                     string    `json:"id"`
	CreatedAt              time.Time `json:"created_at"`
	ModifiedAt             time.Time `json:"modified_at"`
	ManagedTransactionData struct {
		CreatedBy struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"created_by"`
		AbortedBy struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"aborted_by"`
		DeviceSigningRequest struct {
			Signers []struct {
				User struct {
					Id       string `json:"id"`
					UserType string `json:"user_type"`
					Name     string `json:"name"`
					Email    string `json:"email"`
					State    string `json:"state"`
					Role     string `json:"role"`
				} `json:"user"`
				ModifiedAt time.Time `json:"modified_at"`
				HasSigned  bool      `json:"has_signed"`
			} `json:"signers"`
		} `json:"device_signing_request"`
		ApprovalRequest struct {
			State      string `json:"state"`
			QuorumSize int    `json:"quorum_size"`
			Approvers  []struct {
				User struct {
					Id       string `json:"id"`
					UserType string `json:"user_type"`
					Name     string `json:"name"`
					Email    string `json:"email"`
					State    string `json:"state"`
					Role     string `json:"role"`
				} `json:"user"`
				ModifiedAt time.Time `json:"modified_at"`
				Decision   string    `json:"decision"`
			} `json:"approvers"`
			ApprovalGroups []struct {
				QuorumSize int `json:"quorum_size"`
				Approvers  []struct {
					User struct {
						Id       string `json:"id"`
						UserType string `json:"user_type"`
						Name     string `json:"name"`
						Email    string `json:"email"`
						State    string `json:"state"`
						Role     string `json:"role"`
					} `json:"user"`
					ModifiedAt time.Time `json:"modified_at"`
					Decision   string    `json:"decision"`
				} `json:"approvers"`
			} `json:"approval_groups"`
		} `json:"approval_request"`
		PolicyMatch struct {
			IsDefault  bool   `json:"is_default"`
			RuleId     string `json:"rule_id"`
			RuleName   string `json:"rule_name"`
			ActionType string `json:"action_type"`
		} `json:"policy_match"`
		SignedCreateRequest struct {
			RawData            string `json:"raw_data"`
			TimestampSignature struct {
				Signature string `json:"signature"`
				Timestamp int    `json:"timestamp"`
			} `json:"timestamp_signature"`
			UrlPath string `json:"url_path"`
		} `json:"signed_create_request"`
		SignerType string `json:"signer_type"`
		Risks      []struct {
			Type        string `json:"type"`
			Severity    string `json:"severity"`
			Title       string `json:"title"`
			Description string `json:"description"`
		} `json:"risks"`
		ErrorPushingToBlockchainMessage         string `json:"error_pushing_to_blockchain_message"`
		OriginalErrorPushingToBlockchainMessage string `json:"original_error_pushing_to_blockchain_message"`
		Vault                                   struct {
			Id      string `json:"id"`
			Name    string `json:"name"`
			Address string `json:"address"`
			EndUser struct {
				Id         string `json:"id"`
				UserType   string `json:"user_type"`
				ExternalId string `json:"external_id"`
				State      string `json:"state"`
			} `json:"end_user"`
		} `json:"vault"`
		IdempotenceId string `json:"idempotence_id"`
	} `json:"managed_transaction_data"`
	Signatures []struct {
		Data     string `json:"data"`
		SignedBy struct {
			Id       string `json:"id"`
			UserType string `json:"user_type"`
			Name     string `json:"name"`
			Email    string `json:"email"`
			State    string `json:"state"`
			Role     string `json:"role"`
		} `json:"signed_by"`
	} `json:"signatures"`
	Note                         string `json:"note"`
	SpamState                    string `json:"spam_state"`
	Type                         string `json:"type"`
	SolanaTransactionTypeDetails struct {
		Type      string `json:"type"`
		Direction string `json:"direction"`
		Sender    struct {
			Address string `json:"address"`
			Vault   struct {
				Id      string `json:"id"`
				Name    string `json:"name"`
				Address string `json:"address"`
				EndUser struct {
					Id         string `json:"id"`
					UserType   string `json:"user_type"`
					ExternalId string `json:"external_id"`
					State      string `json:"state"`
				} `json:"end_user"`
			} `json:"vault"`
			ExplorerUrl string `json:"explorer_url"`
			Contact     struct {
				Id         string `json:"id"`
				Name       string `json:"name"`
				AddressRef struct {
					ChainType string `json:"chain_type"`
					Address   string `json:"address"`
					Chains    []struct {
						ChainType    string `json:"chain_type"`
						NamedChainId string `json:"named_chain_id"`
						ChainId      int    `json:"chain_id"`
						UniqueId     string `json:"unique_id"`
					} `json:"chains"`
				} `json:"address_ref"`
			} `json:"contact"`
			Contract struct {
				Name string `json:"name"`
				Dapp struct {
					Id      string `json:"id"`
					Name    string `json:"name"`
					Url     string `json:"url"`
					LogoUrl string `json:"logo_url"`
				} `json:"dapp"`
				IsVerified bool `json:"is_verified"`
				Token      struct {
					Type    string `json:"type"`
					Address struct {
						Chain struct {
							ChainType string `json:"chain_type"`
							UniqueId  string `json:"unique_id"`
						} `json:"chain"`
						Base58Repr string `json:"base58_repr"`
					} `json:"address"`
					Name     string `json:"name"`
					Symbol   string `json:"symbol"`
					Decimals int    `json:"decimals"`
					LogoUrl  string `json:"logo_url"`
				} `json:"token"`
			} `json:"contract"`
		} `json:"sender"`
		Recipient struct {
			Address string `json:"address"`
			Vault   struct {
				Id      string `json:"id"`
				Name    string `json:"name"`
				Address string `json:"address"`
				EndUser struct {
					Id         string `json:"id"`
					UserType   string `json:"user_type"`
					ExternalId string `json:"external_id"`
					State      string `json:"state"`
				} `json:"end_user"`
			} `json:"vault"`
			ExplorerUrl string `json:"explorer_url"`
			Contact     struct {
				Id         string `json:"id"`
				Name       string `json:"name"`
				AddressRef struct {
					ChainType string `json:"chain_type"`
					Address   string `json:"address"`
					Chains    []struct {
						ChainType    string `json:"chain_type"`
						NamedChainId string `json:"named_chain_id"`
						ChainId      int    `json:"chain_id"`
						UniqueId     string `json:"unique_id"`
					} `json:"chains"`
				} `json:"address_ref"`
			} `json:"contact"`
			Contract struct {
				Name string `json:"name"`
				Dapp struct {
					Id      string `json:"id"`
					Name    string `json:"name"`
					Url     string `json:"url"`
					LogoUrl string `json:"logo_url"`
				} `json:"dapp"`
				IsVerified bool `json:"is_verified"`
				Token      struct {
					Type    string `json:"type"`
					Address struct {
						Chain struct {
							ChainType string `json:"chain_type"`
							UniqueId  string `json:"unique_id"`
						} `json:"chain"`
						Base58Repr string `json:"base58_repr"`
					} `json:"address"`
					Name     string `json:"name"`
					Symbol   string `json:"symbol"`
					Decimals int    `json:"decimals"`
					LogoUrl  string `json:"logo_url"`
				} `json:"token"`
			} `json:"contract"`
		} `json:"recipient"`
	} `json:"solana_transaction_type_details"`
	Chain struct {
		ChainType            string `json:"chain_type"`
		UniqueId             string `json:"unique_id"`
		Name                 string `json:"name"`
		NativeCurrencySymbol string `json:"native_currency_symbol"`
		NativeCurrencyName   string `json:"native_currency_name"`
		BlockchainExplorer   struct {
			TransactionUrl       string `json:"transaction_url"`
			AddressUrl           string `json:"address_url"`
			RootUrl              string `json:"root_url"`
			TransactionFormatUrl string `json:"transaction_format_url"`
			AddressFormatUrl     string `json:"address_format_url"`
		} `json:"blockchain_explorer"`
	} `json:"chain"`
	State        string `json:"state"`
	StateChanges []struct {
		ChangedAt   time.Time `json:"changed_at"`
		AssetPrices []struct {
			AssetIdentifier struct {
				Type    string `json:"type"`
				Details struct {
					Chain struct {
						ChainType            string `json:"chain_type"`
						UniqueId             string `json:"unique_id"`
						Name                 string `json:"name"`
						NativeCurrencySymbol string `json:"native_currency_symbol"`
						NativeCurrencyName   string `json:"native_currency_name"`
						BlockchainExplorer   struct {
							TransactionUrl       string `json:"transaction_url"`
							AddressUrl           string `json:"address_url"`
							RootUrl              string `json:"root_url"`
							TransactionFormatUrl string `json:"transaction_format_url"`
							AddressFormatUrl     string `json:"address_format_url"`
						} `json:"blockchain_explorer"`
					} `json:"chain"`
					Type string `json:"type"`
					Coin struct {
						Type        string `json:"type"`
						Name        string `json:"name"`
						Symbol      string `json:"symbol"`
						Display     string `json:"display"`
						Description string `json:"description"`
						Denom       string `json:"denom"`
						Decimals    int    `json:"decimals"`
						LogoUrl     string `json:"logo_url"`
						ExplorerUrl string `json:"explorer_url"`
					} `json:"coin"`
				} `json:"details"`
			} `json:"asset_identifier"`
			Price struct {
				Price        string `json:"price"`
				FiatCurrency struct {
					CurrencySymbol string `json:"currency_symbol"`
					Decimals       int    `json:"decimals"`
				} `json:"fiat_currency"`
			} `json:"price"`
		} `json:"asset_prices"`
		PreviousState string `json:"previous_state"`
		NewState      string `json:"new_state"`
	} `json:"state_changes"`
	Version      string `json:"version"`
	Instructions []struct {
		ProgramIndex   int    `json:"program_index"`
		Data           string `json:"data"`
		AccountIndexes []int  `json:"account_indexes"`
	} `json:"instructions"`
	Accounts []struct {
		Address struct {
			Address string `json:"address"`
			Vault   struct {
				Id      string `json:"id"`
				Name    string `json:"name"`
				Address string `json:"address"`
				EndUser struct {
					Id         string `json:"id"`
					UserType   string `json:"user_type"`
					ExternalId string `json:"external_id"`
					State      string `json:"state"`
				} `json:"end_user"`
			} `json:"vault"`
			ExplorerUrl string `json:"explorer_url"`
			Contact     struct {
				Id         string `json:"id"`
				Name       string `json:"name"`
				AddressRef struct {
					ChainType string `json:"chain_type"`
					Address   string `json:"address"`
					Chains    []struct {
						ChainType    string `json:"chain_type"`
						NamedChainId string `json:"named_chain_id"`
						ChainId      int    `json:"chain_id"`
						UniqueId     string `json:"unique_id"`
					} `json:"chains"`
				} `json:"address_ref"`
			} `json:"contact"`
			Contract struct {
				Name string `json:"name"`
				Dapp struct {
					Id      string `json:"id"`
					Name    string `json:"name"`
					Url     string `json:"url"`
					LogoUrl string `json:"logo_url"`
				} `json:"dapp"`
				IsVerified bool `json:"is_verified"`
				Token      struct {
					Type    string `json:"type"`
					Address struct {
						Chain struct {
							ChainType string `json:"chain_type"`
							UniqueId  string `json:"unique_id"`
						} `json:"chain"`
						Base58Repr string `json:"base58_repr"`
					} `json:"address"`
					Name     string `json:"name"`
					Symbol   string `json:"symbol"`
					Decimals int    `json:"decimals"`
					LogoUrl  string `json:"logo_url"`
				} `json:"token"`
			} `json:"contract"`
		} `json:"address"`
		Writable bool `json:"writable"`
		Signer   bool `json:"signer"`
	} `json:"accounts"`
	AddressTableLookups []struct {
		AccountKey struct {
			Chain struct {
				ChainType string `json:"chain_type"`
				UniqueId  string `json:"unique_id"`
			} `json:"chain"`
			Base58Repr string `json:"base58_repr"`
		} `json:"account_key"`
		WritableIndexes []int `json:"writable_indexes"`
		ReadonlyIndexes []int `json:"readonly_indexes"`
	} `json:"address_table_lookups"`
	Sender struct {
		Address string `json:"address"`
		Vault   struct {
			Id      string `json:"id"`
			Name    string `json:"name"`
			Address string `json:"address"`
			EndUser struct {
				Id         string `json:"id"`
				UserType   string `json:"user_type"`
				ExternalId string `json:"external_id"`
				State      string `json:"state"`
			} `json:"end_user"`
		} `json:"vault"`
		ExplorerUrl string `json:"explorer_url"`
		Contact     struct {
			Id         string `json:"id"`
			Name       string `json:"name"`
			AddressRef struct {
				ChainType string `json:"chain_type"`
				Address   string `json:"address"`
				Chains    []struct {
					ChainType    string `json:"chain_type"`
					NamedChainId string `json:"named_chain_id"`
					ChainId      int    `json:"chain_id"`
					UniqueId     string `json:"unique_id"`
				} `json:"chains"`
			} `json:"address_ref"`
		} `json:"contact"`
		Contract struct {
			Name string `json:"name"`
			Dapp struct {
				Id      string `json:"id"`
				Name    string `json:"name"`
				Url     string `json:"url"`
				LogoUrl string `json:"logo_url"`
			} `json:"dapp"`
			IsVerified bool `json:"is_verified"`
			Token      struct {
				Type    string `json:"type"`
				Address struct {
					Chain struct {
						ChainType string `json:"chain_type"`
						UniqueId  string `json:"unique_id"`
					} `json:"chain"`
					Base58Repr string `json:"base58_repr"`
				} `json:"address"`
				Name     string `json:"name"`
				Symbol   string `json:"symbol"`
				Decimals int    `json:"decimals"`
				LogoUrl  string `json:"logo_url"`
			} `json:"token"`
		} `json:"contract"`
	} `json:"sender"`
	Hash            string `json:"hash"`
	RecentBlockhash string `json:"recent_blockhash"`
	Block           struct {
		Slot    int       `json:"slot"`
		Hash    string    `json:"hash"`
		MinedAt time.Time `json:"mined_at"`
	} `json:"block"`
	ExpectedResult struct {
		TransactionError string `json:"transaction_error"`
		Fee              string `json:"fee"`
		Effects          struct {
			BalanceChanges []struct {
				Type    string `json:"type"`
				Address struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					ExplorerUrl string `json:"explorer_url"`
					Contact     struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					Contract struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Type    string `json:"type"`
							Address struct {
								Chain struct {
								} `json:"chain"`
								Base58Repr string `json:"base58_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"address"`
				Diff  string `json:"diff"`
				Price struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"balance_changes"`
			Transfers []struct {
				Type string `json:"type"`
				From struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					ExplorerUrl string `json:"explorer_url"`
					Contact     struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					Contract struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Type    string `json:"type"`
							Address struct {
								Chain struct {
								} `json:"chain"`
								Base58Repr string `json:"base58_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"from"`
				To struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					ExplorerUrl string `json:"explorer_url"`
					Contact     struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					Contract struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Type    string `json:"type"`
							Address struct {
								Chain struct {
								} `json:"chain"`
								Base58Repr string `json:"base58_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"to"`
				Amount string `json:"amount"`
				Price  struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"transfers"`
		} `json:"effects"`
		InstructionError struct {
			ErrorType        string `json:"error_type"`
			InstructionIndex int    `json:"instruction_index"`
			ErrorDescription string `json:"error_description"`
		} `json:"instruction_error"`
	} `json:"expected_result"`
	MinedResult struct {
		TransactionError string `json:"transaction_error"`
		Fee              string `json:"fee"`
		Effects          struct {
			BalanceChanges []struct {
				Type    string `json:"type"`
				Address struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					ExplorerUrl string `json:"explorer_url"`
					Contact     struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					Contract struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Type    string `json:"type"`
							Address struct {
								Chain struct {
								} `json:"chain"`
								Base58Repr string `json:"base58_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"address"`
				Diff  string `json:"diff"`
				Price struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"balance_changes"`
			Transfers []struct {
				Type string `json:"type"`
				From struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					ExplorerUrl string `json:"explorer_url"`
					Contact     struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					Contract struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Type    string `json:"type"`
							Address struct {
								Chain struct {
								} `json:"chain"`
								Base58Repr string `json:"base58_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"from"`
				To struct {
					Address string `json:"address"`
					Vault   struct {
						Id      string `json:"id"`
						Name    string `json:"name"`
						Address string `json:"address"`
						EndUser struct {
							Id         string `json:"id"`
							UserType   string `json:"user_type"`
							ExternalId string `json:"external_id"`
							State      string `json:"state"`
						} `json:"end_user"`
					} `json:"vault"`
					ExplorerUrl string `json:"explorer_url"`
					Contact     struct {
						Id         string `json:"id"`
						Name       string `json:"name"`
						AddressRef struct {
							ChainType string `json:"chain_type"`
							Address   string `json:"address"`
							Chains    []struct {
							} `json:"chains"`
						} `json:"address_ref"`
					} `json:"contact"`
					Contract struct {
						Name string `json:"name"`
						Dapp struct {
							Id      string `json:"id"`
							Name    string `json:"name"`
							Url     string `json:"url"`
							LogoUrl string `json:"logo_url"`
						} `json:"dapp"`
						IsVerified bool `json:"is_verified"`
						Token      struct {
							Type    string `json:"type"`
							Address struct {
								Chain struct {
								} `json:"chain"`
								Base58Repr string `json:"base58_repr"`
							} `json:"address"`
							Name     string `json:"name"`
							Symbol   string `json:"symbol"`
							Decimals int    `json:"decimals"`
							LogoUrl  string `json:"logo_url"`
						} `json:"token"`
					} `json:"contract"`
				} `json:"to"`
				Amount string `json:"amount"`
				Price  struct {
					Price        string `json:"price"`
					FiatCurrency struct {
						CurrencySymbol string `json:"currency_symbol"`
						Decimals       int    `json:"decimals"`
					} `json:"fiat_currency"`
				} `json:"price"`
			} `json:"transfers"`
		} `json:"effects"`
		InstructionError struct {
			ErrorType        string `json:"error_type"`
			InstructionIndex int    `json:"instruction_index"`
			ErrorDescription string `json:"error_description"`
		} `json:"instruction_error"`
	} `json:"mined_result"`
	ExplorerUrl string `json:"explorer_url"`
}

type SolanaTransferReq

type SolanaTransferReq struct {
	SignerType string `json:"signer_type"`
	Type       string `json:"type"`
	Details    struct {
		Type  string `json:"type"`
		To    string `json:"to"`
		Value struct {
			Type  string `json:"type"`
			Value string `json:"value"`
		} `json:"value"`
		AssetIdentifier struct {
			Type    string                 `json:"type"`
			Details map[string]interface{} `json:"details"`
		} `json:"asset_identifier"`
	} `json:"details"`
	Note    string `json:"note"`
	VaultId string `json:"vault_id"`
}

func (*SolanaTransferReq) PrepareForSolanaTransfer

func (r *SolanaTransferReq) PrepareForSolanaTransfer()

Directories

Path Synopsis
test

Jump to

Keyboard shortcuts

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