Documentation ¶
Index ¶
- Constants
- Variables
- func NewIMXError(httpResponse *http.Response, err error) error
- func SignableERC20Token(decimals int, tokenAddress string) api.SignableToken
- func SignableERC721Token(tokenID, tokenAddress string) api.SignableToken
- func SignableETHToken() api.SignableToken
- type Client
- func (c *Client) AddMetadataSchemaToCollection(ctx context.Context, l1signer L1Signer, contractAddress string, ...) (*api.SuccessResponse, error)
- func (c *Client) BatchNftTransfer(ctx context.Context, l1signer L1Signer, l2signer L2Signer, ...) (*api.CreateTransferResponse, error)
- func (c *Client) CancelOrder(ctx context.Context, l1signer L1Signer, l2signer L2Signer, ...) (*api.CancelOrderResponse, error)
- func (c *Client) CreateCollection(ctx context.Context, l1signer L1Signer, ...) (*api.Collection, error)
- func (c *Client) CreateMetadataRefresh(ctx context.Context, l1signer L1Signer, ...) (*api.CreateMetadataRefreshResponse, error)
- func (c *Client) CreateOrder(ctx context.Context, l1signer L1Signer, l2signer L2Signer, ...) (*api.CreateOrderResponse, error)
- func (c *Client) CreateProject(ctx context.Context, l1signer L1Signer, ...) (*api.CreateProjectResponse, error)
- func (c *Client) CreateTrade(ctx context.Context, l1signer L1Signer, l2signer L2Signer, ...) (*api.CreateTradeResponse, error)
- func (c *Client) GetAsset(ctx context.Context, tokenAddress, tokenID string, includeFees *bool) (*api.Asset, error)
- func (c *Client) GetBalance(ctx context.Context, owner, tokenAddress string) (*api.Balance, error)
- func (c *Client) GetCollection(ctx context.Context, collectionContractAddress string) (*api.Collection, error)
- func (c *Client) GetDeposit(ctx context.Context, id string) (*api.Deposit, error)
- func (c *Client) GetMetadataRefreshErrors(ctx context.Context, l1signer L1Signer, refreshID string, pageSize *int32, ...) (*api.GetMetadataRefreshErrorsResponse, error)
- func (c *Client) GetMetadataRefreshResults(ctx context.Context, l1signer L1Signer, refreshID string) (*api.GetMetadataRefreshResponse, error)
- func (c *Client) GetMetadataSchema(ctx context.Context, collectionContractAddress string) ([]api.MetadataSchemaProperty, error)
- func (c *Client) GetMint(ctx context.Context, id string) ([]api.Mint, error)
- func (c *Client) GetOrder(ctx context.Context, id string) (*api.Order, error)
- func (c *Client) GetProject(ctx context.Context, l1signer L1Signer, id string) (*api.Project, error)
- func (c *Client) GetProjects(ctx context.Context, l1signer L1Signer, pageSize *int32, ...) (*api.GetProjectsResponse, error)
- func (c *Client) GetToken(ctx context.Context, id string) (*api.TokenDetails, error)
- func (c *Client) GetTrade(ctx context.Context, id string) (*api.Trade, error)
- func (c *Client) GetTransfer(ctx context.Context, id string) (*api.Transfer, error)
- func (c *Client) GetUsers(ctx context.Context, user string) (*api.GetUsersApiResponse, error)
- func (c *Client) GetWithdrawal(ctx context.Context, id string) (*api.Withdrawal, error)
- func (c *Client) IsRegisteredOnChain(ctx context.Context, starkPublicKey string) (*bool, error)
- func (c *Client) ListAssets(req *api.ApiListAssetsRequest) (*api.ListAssetsResponse, error)
- func (c *Client) ListBalances(req *api.ApiListBalancesRequest) (*api.ListBalancesResponse, error)
- func (c *Client) ListCollectionFilters(req *api.ApiListCollectionFiltersRequest) (*api.CollectionFilter, error)
- func (c *Client) ListCollections(req *api.ApiListCollectionsRequest) (*api.ListCollectionsResponse, error)
- func (c *Client) ListDeposits(req *api.ApiListDepositsRequest) (*api.ListDepositsResponse, error)
- func (c *Client) ListMetadataRefreshes(ctx context.Context, l1signer L1Signer, collectionAddress *string, ...) (*api.GetMetadataRefreshes, error)
- func (c *Client) ListMints(req *api.ApiListMintsRequest) (*api.ListMintsResponse, error)
- func (c *Client) ListOrders(req *api.ApiListOrdersRequest) (*api.ListOrdersResponse, error)
- func (c *Client) ListTokens(req *api.ApiListTokensRequest) (*api.ListTokensResponse, error)
- func (c *Client) ListTrades(req *api.ApiListTradesRequest) (*api.ListTradesResponse, error)
- func (c *Client) ListTransfers(req *api.ApiListTransfersRequest) (*api.ListTransfersResponse, error)
- func (c *Client) ListWithdrawals(req *api.ApiListWithdrawalsRequest) (*api.ListWithdrawalsResponse, error)
- func (c *Client) Mint(ctx context.Context, l1signer L1Signer, ...) (*api.MintTokensResponse, error)
- func (c *Client) NewIERC20Contract(ctx context.Context, address string) (*contracts.IERC20, error)
- func (c *Client) NewIERC721Contract(ctx context.Context, address string) (*contracts.IERC721, error)
- func (c *Client) NewListAssetsRequest(ctx context.Context) api.ApiListAssetsRequest
- func (c *Client) NewListBalancesRequest(ctx context.Context, owner string) api.ApiListBalancesRequest
- func (c *Client) NewListCollectionFiltersRequest(ctx context.Context, collectionContractAddress string) api.ApiListCollectionFiltersRequest
- func (c *Client) NewListCollectionsRequest(ctx context.Context) api.ApiListCollectionsRequest
- func (c *Client) NewListDepositsRequest(ctx context.Context) api.ApiListDepositsRequest
- func (c *Client) NewListMintsRequest(ctx context.Context) api.ApiListMintsRequest
- func (c *Client) NewListOrdersRequest(ctx context.Context) api.ApiListOrdersRequest
- func (c *Client) NewListTokensRequest(ctx context.Context) api.ApiListTokensRequest
- func (c *Client) NewListTradesRequest(ctx context.Context) api.ApiListTradesRequest
- func (c *Client) NewListTransfersRequest(ctx context.Context) api.ApiListTransfersRequest
- func (c *Client) NewListWithdrawalsRequest(ctx context.Context) api.ApiListWithdrawalsRequest
- func (c *Client) PrepareWithdrawal(ctx context.Context, l1signer L1Signer, l2signer L2Signer, ...) (*api.CreateWithdrawalResponse, error)
- func (c *Client) RegisterOffchain(ctx context.Context, l1signer L1Signer, l2signer L2Signer, userEmail string) (*api.RegisterUserResponse, error)
- func (c *Client) Transfer(ctx context.Context, l1signer L1Signer, l2signer L2Signer, ...) (*api.CreateTransferResponseV1, error)
- func (c *Client) UpdateCollection(ctx context.Context, l1signer L1Signer, contractAddress string, ...) (*api.Collection, error)
- func (c *Client) UpdateMetadataSchemaByName(ctx context.Context, l1signer L1Signer, ...) (*api.SuccessResponse, error)
- type Config
- type ERC20Deposit
- type ERC20Withdrawal
- type ERC721Deposit
- type ERC721Withdrawal
- type ETHDeposit
- type Environment
- type EthWithdrawal
- type IMXError
- type L1Signer
- type L2Signer
- type MintFee
- type MintableTokenData
- type TokenDeposit
- type TokenWithdrawal
- type UnsignedMintRequest
- type User
- type Wei
Constants ¶
const ( ContractInvalidError = "contract_invalid_error" EthClientError = "ethereum_client_error" )
const ( ETHTokenType = "ETH" ERC20TokenType = "ERC20" ERC721TokenType = "ERC721" )
Variables ¶
var ( Sandbox = Environment{ BaseAPIPath: "https://api.sandbox.x.immutable.com", EthereumRPC: "https://eth-sepolia.g.alchemy.com/v2/", RegistrationContractAddress: "0xDbA6129C02E69405622fAdc3d5A7f8d23eac3b97", CoreContractAddress: "0x2d5C349fD8464DA06a3f90b4B0E9195F3d1b7F98", ChainID: big.NewInt(11155111), } Mainnet = Environment{ BaseAPIPath: "https://api.x.immutable.com", EthereumRPC: "https://eth-mainnet.alchemyapi.io/v2/", RegistrationContractAddress: "0x72a06bf2a1CE5e39cBA06c0CAb824960B587d64c", CoreContractAddress: "0x5FDCCA53617f4d2b9134B29090C87D01058e27e9", ChainID: big.NewInt(1), } )
Functions ¶
func NewIMXError ¶
NewIMXError returns an IMXError when Api Request fails. @param httpResponse httpResponse. @param err Error message. @return IMXError
func SignableERC20Token ¶
func SignableERC20Token(decimals int, tokenAddress string) api.SignableToken
SignableERC20Token returns a new ERC20 type token. https://docs.x.immutable.com/docs/token-data-object#type-erc20
func SignableERC721Token ¶
func SignableERC721Token(tokenID, tokenAddress string) api.SignableToken
SignableERC721Token returns a new ERC721 type token. https://docs.x.immutable.com/docs/token-data-object#type-erc721
func SignableETHToken ¶
func SignableETHToken() api.SignableToken
SignableETHToken returns a new ETH type token. https://docs.x.immutable.com/docs/token-data-object#type-eth
Types ¶
type Client ¶
type Client struct { Environment Environment EthClient *ethclient.Client RegistrationContract *contracts.Registration CoreContract *contracts.Core TradesAPI api.TradesApi OrdersAPI api.OrdersApi TransfersAPI api.TransfersApi DepositsAPI api.DepositsApi WithdrawalsAPI api.WithdrawalsApi MintsAPI api.MintsApi AssetsAPI api.AssetsApi UsersAPI api.UsersApi MetadataAPI api.MetadataApi MetadataRefreshesAPI api.MetadataRefreshesApi TokensAPI api.TokensApi BalancesAPI api.BalancesApi ProjectsAPI api.ProjectsApi CollectionsAPI api.CollectionsApi EncodingAPI api.EncodingApi ExchangesAPI api.ExchangesApi NftCheckoutPrimaryAPI api.NftCheckoutPrimaryApi }
Client implements functions to get the work done with Immutable X API. It manages communication with the Immutable X API.
func NewClient ¶
NewClient creates a new Client. Requires config to setup and initialise. See examples for usage reference.
func (*Client) AddMetadataSchemaToCollection ¶
func (c *Client) AddMetadataSchemaToCollection( ctx context.Context, l1signer L1Signer, contractAddress string, addMetadataSchemaToCollectionRequest api.AddMetadataSchemaToCollectionRequest, ) (*api.SuccessResponse, error)
AddMetadataSchemaToCollection Add metadata schema to collection
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1signer Ethereum signer used for ownership authentication. @param contractAddress Collection contract address @param addMetadataSchemaToCollectionRequest The request struct with all the params. @return SuccessResponse
func (*Client) BatchNftTransfer ¶
func (c *Client) BatchNftTransfer( ctx context.Context, l1signer L1Signer, l2signer L2Signer, request api.GetSignableTransferRequest, ) (*api.CreateTransferResponse, error)
BatchNftTransfer performs a bulk transfer of NFTs given an array of models.SignableToken and their receivers.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1Signer Ethereum signer to sign message. @param l2signer Stark signer to sign the payload hash. @param request The request struct with all the params. @return CreateTransferResponse
func (*Client) CancelOrder ¶
func (c *Client) CancelOrder(ctx context.Context, l1signer L1Signer, l2signer L2Signer, request api.GetSignableCancelOrderRequest, ) (*api.CancelOrderResponse, error)
CancelOrder will remove the listed asset on marketplace from sale.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1Signer Ethereum signer to sign message. @param l2signer Stark signer to sign the payload hash. @param request The request struct with all the params. @return CancelOrderResponse
func (*Client) CreateCollection ¶
func (c *Client) CreateCollection( ctx context.Context, l1signer L1Signer, createCollectionRequest *api.CreateCollectionRequest, ) (*api.Collection, error)
CreateCollection Creates a new collection
A collection refers to a series of NFTs, minted under a project, and corresponds to a specific deployed smart contract. All minted assets belong to a collection, and in order to mint assets on L2 you must first register your collection (smart contract) with Immutable X. * Each collection belongs to a project. * Each collection may contain many similar or different NFTs.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1signer Ethereum signer used for ownership authentication. @param createCollectionRequest The request struct with all the params. @return Collection
func (*Client) CreateMetadataRefresh ¶
func (c *Client) CreateMetadataRefresh( ctx context.Context, l1signer L1Signer, createMetadataRefreshRequest *api.CreateMetadataRefreshRequest, ) (*api.CreateMetadataRefreshResponse, error)
CreateMetadataRefresh Creates a metadata refresh
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1signer Ethereum signer used for ownership authentication. @param createMetadataRefreshRequest The request struct with all the params. @return CreateMetadataRefreshResponse
func (*Client) CreateOrder ¶
func (c *Client) CreateOrder(ctx context.Context, l1signer L1Signer, l2signer L2Signer, request *api.GetSignableOrderRequest, ) (*api.CreateOrderResponse, error)
CreateOrder will list the given asset for sale on the marketplace.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1Signer Ethereum signer to sign message. @param l2signer Stark signer to sign the payload hash. @param request The request struct with all the params. @return CreateOrderResponse
func (*Client) CreateProject ¶
func (c *Client) CreateProject( ctx context.Context, l1signer L1Signer, projectName, companyName, contactEmail string, ) (*api.CreateProjectResponse, error)
CreateProject Creates a new project
In order to create a collection of NFTs, you must first register a project as the creator of the collection. A project is an administrative level entity that is associated with an owner address, i.e. the address of the Ethereum wallet used to register a user account. Only the project owner will be authorized to perform administrative tasks such as creating and updating collections and metadata schema.
@param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). @param l1signer Ethereum signer used for ownership authentication. @param projectName Project name @param companyName Company name to whom this project belongs to. @param contactEmail Contact email for this project. @return CreateProjectResponse
func (*Client) CreateTrade ¶
func (c *Client) CreateTrade( ctx context.Context, l1signer L1Signer, l2signer L2Signer, request api.GetSignableTradeRequest, ) (*api.CreateTradeResponse, error)
CreateTrade submits a matched order to the CreateTrade endpoint. https://docs.x.immutable.com/reference#/operations/createTrade
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1Signer Ethereum signer to sign message. @param l2signer Stark signer to sign the payload hash. @param request The request struct with all the params. @return CreateTradeResponse
func (*Client) GetAsset ¶
func (c *Client) GetAsset(ctx context.Context, tokenAddress, tokenID string, includeFees *bool) (*api.Asset, error)
GetAsset Get details of an asset
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param tokenAddress Address of the ERC721 contract @param tokenID Either ERC721 token ID or internal IMX ID @param includeFees optional param. @return Asset
func (*Client) GetBalance ¶
GetBalance Fetches the token balances of the user
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param owner Address of the owner/user @param tokenAddress Token address @return Balance
func (*Client) GetCollection ¶
func (c *Client) GetCollection(ctx context.Context, collectionContractAddress string) (*api.Collection, error)
GetCollection Get details of a collection at the given address
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param collectionContractAddress Collection contract address @return Collection
func (*Client) GetDeposit ¶
GetDeposit Gets details of a deposit with the given ID
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param id Deposit Id @return Deposit
func (*Client) GetMetadataRefreshErrors ¶
func (c *Client) GetMetadataRefreshErrors( ctx context.Context, l1signer L1Signer, refreshID string, pageSize *int32, cursor *string, ) (*api.GetMetadataRefreshErrorsResponse, error)
GetMetadataRefreshErrors Gets metadata refresh errors for the given refresh id
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1signer Ethereum signer used for ownership authentication. @param collectionAddress Collection contract address @param pageSize The page size of the result @param cursor The cursor @return GetMetadataRefreshes
func (*Client) GetMetadataRefreshResults ¶
func (c *Client) GetMetadataRefreshResults( ctx context.Context, l1signer L1Signer, refreshID string, ) (*api.GetMetadataRefreshResponse, error)
GetMetadataRefreshResults Gets metadata refresh results for the given refresh id
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1signer Ethereum signer used for ownership authentication. @param collectionAddress Collection contract address @param pageSize The page size of the result @param cursor The cursor @return GetMetadataRefreshes
func (*Client) GetMetadataSchema ¶
func (c *Client) GetMetadataSchema(ctx context.Context, collectionContractAddress string) ([]api.MetadataSchemaProperty, error)
GetMetadataSchema Gets collection metadata schema
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param collectionContractAddress Collection contract address @return []MetadataSchemaProperty
func (*Client) GetMint ¶
GetMint Get details of a mint with the given ID
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param id Mint ID. This is the transaction_id returned from listMints @return ApiGetMintRequest
func (*Client) GetOrder ¶
GetOrder Get details of an order with the given ID
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param id Order ID @return Order
func (*Client) GetProject ¶
func (c *Client) GetProject(ctx context.Context, l1signer L1Signer, id string) (*api.Project, error)
GetProject Gets a project detail
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1signer Ethereum signer used for ownership authentication. @param id Project ID @return Balance
func (*Client) GetProjects ¶
func (c *Client) GetProjects( ctx context.Context, l1signer L1Signer, pageSize *int32, cursor, orderBy, direction *string, ) (*api.GetProjectsResponse, error)
GetProjects Gets projects owned by given user
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1signer Ethereum signer used for ownership authentication. @param pageSize The page size of the result @param cursor The cursor @param orderBy The property to sort by @param direction Direction to sort (asc/desc) @return GetProjectsResponse
func (*Client) GetToken ¶
GetToken Get details of a token with the given ID
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param id Token ID @return TokenDetails
func (*Client) GetTrade ¶
GetTrade Get details of a trade with the given ID
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param id Trade ID @return Trade
func (*Client) GetTransfer ¶
GetTransfer Get details of a transfer with the given ID
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param id Transfer ID @return Transfer
func (*Client) GetUsers ¶
GetUsers Get stark keys for a registered user. Can also be used to check if the user is registered or not when it returns an error.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param user User @return GetUsersApiResponse
func (*Client) GetWithdrawal ¶
GetWithdrawal Get details of a withdrawal with the given ID
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param id Withdrawal ID @return Withdrawal
func (*Client) IsRegisteredOnChain ¶
IsRegisteredOnChain checks if the given public address is already registered on the onchain (L1 network).
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param starkPublicKey The stark wallet public address. @return true if registered or false. Nil on error.
func (*Client) ListAssets ¶
func (c *Client) ListAssets(req *api.ApiListAssetsRequest) (*api.ListAssetsResponse, error)
ListAssets Get a list of assets
@param req the api request struct with all params populated to make the request @return ListAssetsResponse
func (*Client) ListBalances ¶
func (c *Client) ListBalances(req *api.ApiListBalancesRequest) (*api.ListBalancesResponse, error)
ListBalances Get a list of balances for given user
@param req the api request struct with all params populated to make the request @return ListBalancesResponse
func (*Client) ListCollectionFilters ¶
func (c *Client) ListCollectionFilters(req *api.ApiListCollectionFiltersRequest) (*api.CollectionFilter, error)
ListCollectionFilters Get a list of collection filters
@param req the api request struct with all params populated to make the request @return CollectionFilter
func (*Client) ListCollections ¶
func (c *Client) ListCollections(req *api.ApiListCollectionsRequest) (*api.ListCollectionsResponse, error)
ListCollections Get a list of collections
@param req the api request struct with all params populated to make the request @return ListCollectionsResponse
func (*Client) ListDeposits ¶
func (c *Client) ListDeposits(req *api.ApiListDepositsRequest) (*api.ListDepositsResponse, error)
ListDeposits Gets a list of deposits
@param req the api request struct with all params populated to make the request @return ListDepositsResponse
func (*Client) ListMetadataRefreshes ¶
func (c *Client) ListMetadataRefreshes( ctx context.Context, l1signer L1Signer, collectionAddress *string, pageSize *int32, cursor *string, ) (*api.GetMetadataRefreshes, error)
ListMetadataRefreshes Gets a list of metadata refreshes
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1signer Ethereum signer used for ownership authentication. @param collectionAddress Collection contract address @param pageSize The page size of the result @param cursor The cursor @return GetMetadataRefreshes
func (*Client) ListMints ¶
func (c *Client) ListMints(req *api.ApiListMintsRequest) (*api.ListMintsResponse, error)
ListMints Gets a list of mints
@param req the api request struct with all params populated to make the request @return ListMintsResponse
func (*Client) ListOrders ¶
func (c *Client) ListOrders(req *api.ApiListOrdersRequest) (*api.ListOrdersResponse, error)
ListOrders Gets a list of orders
@param req the api request struct with all params populated to make the request @return ListOrdersResponse
func (*Client) ListTokens ¶
func (c *Client) ListTokens(req *api.ApiListTokensRequest) (*api.ListTokensResponse, error)
ListTokens Gets a list of tokens
@param req the api request struct with all params populated to make the request @return ListTokensResponse
func (*Client) ListTrades ¶
func (c *Client) ListTrades(req *api.ApiListTradesRequest) (*api.ListTradesResponse, error)
ListTrades Gets a list of trades
@param req the api request struct with all params populated to make the request @return ListTradesResponse
func (*Client) ListTransfers ¶
func (c *Client) ListTransfers(req *api.ApiListTransfersRequest) (*api.ListTransfersResponse, error)
ListTransfers Gets a list of transfers
@param req the api request struct with all params populated to make the request @return ListTransfersResponse
func (*Client) ListWithdrawals ¶
func (c *Client) ListWithdrawals(req *api.ApiListWithdrawalsRequest) (*api.ListWithdrawalsResponse, error)
ListWithdrawals Gets a list of withdrawals
@param req the api request struct with all params populated to make the request @return ListWithdrawalsResponse
func (*Client) Mint ¶
func (c *Client) Mint( ctx context.Context, l1signer L1Signer, unsignedMintRequest []UnsignedMintRequest, ) (*api.MintTokensResponse, error)
Mint assists in minting tokens to the given imx user.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1Signer Ethereum signer to sign message. @param unsignedMintRequest An array to UnsignedMintRequests to mint. @return MintTokensResponse
func (*Client) NewIERC20Contract ¶
func (*Client) NewIERC721Contract ¶
func (*Client) NewListAssetsRequest ¶
func (c *Client) NewListAssetsRequest(ctx context.Context) api.ApiListAssetsRequest
NewListAssetsRequest Creates a new ApiListAssetsRequest object with required params.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @return ApiListAssetsRequest
func (*Client) NewListBalancesRequest ¶
func (c *Client) NewListBalancesRequest(ctx context.Context, owner string) api.ApiListBalancesRequest
NewListBalancesRequest Creates a new ApiListBalancesRequest object with required params.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @return ApiListBalancesRequest
func (*Client) NewListCollectionFiltersRequest ¶
func (c *Client) NewListCollectionFiltersRequest(ctx context.Context, collectionContractAddress string) api.ApiListCollectionFiltersRequest
NewListCollectionFiltersRequest Creates a new ApiListCollectionFiltersRequest object with required params.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param collectionContractAddress Collection contract address @return ApiListCollectionFiltersRequest
func (*Client) NewListCollectionsRequest ¶
func (c *Client) NewListCollectionsRequest(ctx context.Context) api.ApiListCollectionsRequest
NewListCollectionsRequest Creates a new ApiListCollectionsRequest object with required params.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @return ApiListCollectionsRequest
func (*Client) NewListDepositsRequest ¶
func (c *Client) NewListDepositsRequest(ctx context.Context) api.ApiListDepositsRequest
NewListDepositsRequest Creates a new ApiListDepositsRequest object with required params.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @return ApiListDepositsRequest
func (*Client) NewListMintsRequest ¶
func (c *Client) NewListMintsRequest(ctx context.Context) api.ApiListMintsRequest
NewListMintsRequest Creates a new ApiListMintsRequest object with required params.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @return ApiListMintsRequest
func (*Client) NewListOrdersRequest ¶
func (c *Client) NewListOrdersRequest(ctx context.Context) api.ApiListOrdersRequest
NewListOrdersRequest Creates a new ApiListOrdersRequest object with required params.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @return ApiListOrdersRequest
func (*Client) NewListTokensRequest ¶
func (c *Client) NewListTokensRequest(ctx context.Context) api.ApiListTokensRequest
NewListTokensRequest Creates a new ApiListTokensRequest object with required params.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @return ApiListTokensRequest
func (*Client) NewListTradesRequest ¶
func (c *Client) NewListTradesRequest(ctx context.Context) api.ApiListTradesRequest
NewListTradesRequest Creates a new ApiListTradesRequest object with required params.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @return ApiListTradesRequest
func (*Client) NewListTransfersRequest ¶
func (c *Client) NewListTransfersRequest(ctx context.Context) api.ApiListTransfersRequest
NewListTransfersRequest Creates a new ApiListTransfersRequest object with required params.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @return ApiListTransfersRequest
func (*Client) NewListWithdrawalsRequest ¶
func (c *Client) NewListWithdrawalsRequest(ctx context.Context) api.ApiListWithdrawalsRequest
NewListWithdrawalsRequest Creates a new ApiListWithdrawalsRequest object with required params.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @return ApiListWithdrawalsRequest
func (*Client) PrepareWithdrawal ¶
func (c *Client) PrepareWithdrawal( ctx context.Context, l1signer L1Signer, l2signer L2Signer, request api.GetSignableWithdrawalRequest, ) (*api.CreateWithdrawalResponse, error)
PrepareWithdrawal submits a withdrawal request for ETH, ERC20 and ERC721 tokens to be included in the generation and submission of the next batch. Upon batch confirmation (on-chain state update), the asset is available to be withdrawn by the initial owner/originator of the asset.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1Signer Ethereum signer to sign message. @param l2signer Stark signer to sign the payload hash. @param request The request struct with all the params. @return CreateWithdrawalResponse
func (*Client) RegisterOffchain ¶
func (c *Client) RegisterOffchain(ctx context.Context, l1signer L1Signer, l2signer L2Signer, userEmail string, ) (*api.RegisterUserResponse, error)
RegisterOffchain performs off chain user registration i.e, on the L2 network.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1Signer Ethereum signer to sign message. @param l2signer Stark signer to sign the payload hash. @param userEmail A valid user email. @return RegisterUserResponse
func (*Client) Transfer ¶
func (c *Client) Transfer( ctx context.Context, l1signer L1Signer, l2signer L2Signer, request api.GetSignableTransferRequestV1, ) (*api.CreateTransferResponseV1, error)
Transfer transfers the request's models.SignableToken from Sender's imx account to Receiver's imx account.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1Signer Ethereum signer to sign message. @param l2signer Stark signer to sign the payload hash. @param request The request struct with all the params. @return CreateTransferResponseV1
func (*Client) UpdateCollection ¶
func (c *Client) UpdateCollection( ctx context.Context, l1signer L1Signer, contractAddress string, updateCollectionRequest *api.UpdateCollectionRequest, ) (*api.Collection, error)
UpdateCollection Updates an existing collection
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1signer Ethereum signer used for ownership authentication. @param contractAddress Collection contract address @param updateCollectionRequest The request struct with all the params. @return Collection
func (*Client) UpdateMetadataSchemaByName ¶
func (c *Client) UpdateMetadataSchemaByName( ctx context.Context, l1signer L1Signer, contractAddress, metadataSchemaName string, metadataSchemaRequest api.MetadataSchemaRequest, ) (*api.SuccessResponse, error)
UpdateMetadataSchemaByName Update metadata schema by name
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param l1signer Ethereum signer used for ownership authentication. @param contractAddress Collection contract address @param metadataSchemaName Metadata schema name @param metadataSchemaRequest The request struct with all the params. @return SuccessResponse
type Config ¶
type Config struct { AlchemyAPIKey string APIConfig *api.Configuration Environment }
Config is used to initialise NewClient object.
type ERC20Deposit ¶
ERC20Deposit implements TokenDeposit. Used to deposit ERC20 Tokens.
func NewERC20Deposit ¶
func NewERC20Deposit(unDecimalisedAmount uint64, tokenAddress string) *ERC20Deposit
NewERC20Deposit instantiates a new ERC20Deposit object with given amount and tokenAddress.
func (*ERC20Deposit) Deposit ¶
func (d *ERC20Deposit) Deposit(ctx context.Context, c *Client, l1signer L1Signer, overrides *bind.TransactOpts) (*types.Transaction, error)
Deposit performs the deposit workflow on the ERC20Deposit.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param c Client object from interface.go used to make API calls. @param l1Signer Ethereum signer to sign message. @param overrides Optional transaction params that overrides the default values. @return Transaction
type ERC20Withdrawal ¶
type ERC20Withdrawal struct {
TokenAddress string
}
ERC20Withdrawal implements TokenWithdrawal. Used for withdrawal of ERC20 Tokens.
func NewERC20Withdrawal ¶
func NewERC20Withdrawal(tokenAddress string) *ERC20Withdrawal
NewERC20Withdrawal instantiates a new ERC20Withdrawal object with the given tokenAddress.
func (*ERC20Withdrawal) CompleteWithdrawal ¶
func (w *ERC20Withdrawal) CompleteWithdrawal( ctx context.Context, c *Client, l1signer L1Signer, starkKeyHex string, overrides *bind.TransactOpts, ) (*types.Transaction, error)
CompleteWithdrawal performs the complete withdrawal workflow for ERC20 tokens.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param c Client object from interface.go used to make API calls. @param l1Signer Ethereum signer to sign message. @param starkKeyHex Stark key string in hex decimal format. @param overrides Optional transaction params that overrides the default values. @return Transaction
type ERC721Deposit ¶
ERC721Deposit implements TokenDeposit. Used to deposit ERC721 Tokens.
func NewERC721Deposit ¶
func NewERC721Deposit(tokenID, tokenAddress string) *ERC721Deposit
NewERC721Deposit instantiates a new ERC721Deposit object with given tokenID and tokenAddress.
func (*ERC721Deposit) Deposit ¶
func (d *ERC721Deposit) Deposit(ctx context.Context, c *Client, l1signer L1Signer, overrides *bind.TransactOpts) (*types.Transaction, error)
Deposit performs the deposit workflow on the ERC721Deposit.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param c Client object from interface.go used to make API calls. @param l1Signer Ethereum signer to sign message. @param overrides Optional transaction params that overrides the default values. @return Transaction
type ERC721Withdrawal ¶
ERC721Withdrawal implements TokenWithdrawal. Used for withdrawal of ERC721 Tokens.
func NewERC721Withdrawal ¶
func NewERC721Withdrawal(tokenID, tokenAddress string) *ERC721Withdrawal
NewERC721Withdrawal instantiates a new ERC721Withdrawal object with the given tokenId and tokenAddress.
func (*ERC721Withdrawal) CompleteWithdrawal ¶
func (w *ERC721Withdrawal) CompleteWithdrawal( ctx context.Context, c *Client, l1signer L1Signer, starkKeyHex string, overrides *bind.TransactOpts, ) (*types.Transaction, error)
CompleteWithdrawal performs the completion step of the withdrawal process for ERC721 token.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param c Client object from interface.go used to make API calls. @param l1Signer Ethereum signer to sign message. @param starkKeyHex Stark key string in hex decimal format. @param overrides Optional transaction params that overrides the default values. @return Transaction
type ETHDeposit ¶
type ETHDeposit struct {
Amount string
}
ETHDeposit implements TokenDeposit. Used to deposit Eth Tokens.
func NewETHDeposit ¶
func NewETHDeposit(amount Wei) *ETHDeposit
NewETHDeposit instantiates a new ETHDeposit object with the given amount.
func (*ETHDeposit) Deposit ¶
func (d *ETHDeposit) Deposit(ctx context.Context, c *Client, l1signer L1Signer, overrides *bind.TransactOpts) (*types.Transaction, error)
Deposit performs the deposit workflow on the ETHDeposit.
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param c Client object from interface.go used to make API calls. @param l1Signer Ethereum signer to sign message. @param overrides Optional transaction params that overrides the default values. @return Transaction
type Environment ¶
type Environment struct { BaseAPIPath string EthereumRPC string RegistrationContractAddress string CoreContractAddress string ChainID *big.Int }
Environment holds Ethereum network and contract address information.
type EthWithdrawal ¶
type EthWithdrawal struct { }
ERC20Withdrawal implements TokenWithdrawal. Used for withdrawal of ETh Tokens.
func NewEthWithdrawal ¶
func NewEthWithdrawal() *EthWithdrawal
NewEthWithdrawal instantiates a new EthWithdrawal object with the given tokenAddress.
func (*EthWithdrawal) CompleteWithdrawal ¶
func (w *EthWithdrawal) CompleteWithdrawal( ctx context.Context, c *Client, l1signer L1Signer, starkKeyHex string, overrides *bind.TransactOpts, ) (*types.Transaction, error)
CompleteWithdrawal performs the complete withdrawal workflow for ETH
@param ctx context.Context - for cancellation, deadlines, tracing, etc or context.Background(). @param c Client object from interface.go used to make API calls. @param l1Signer Ethereum signer to sign message. @param starkKeyHex Stark key string in hex decimal format. @param overrides Optional transaction params that overrides the default values. @return Transaction
type IMXError ¶
IMXError struct contains the details of the error for the API request. For more information about the API error codes, see https://docs.x.immutable.com/docs/error-codes/
type L1Signer ¶
type L1Signer interface { SignMessage(message string) ([]byte, error) SignTx(tx *types.Transaction) (*types.Transaction, error) GetAddress() string GetPublicKey() string }
L1Signer interface to implement signing functionality using ethereum wallet key.
type MintableTokenData ¶
type TokenDeposit ¶
type TokenDeposit interface {
Deposit(ctx context.Context, c *Client, l1signer L1Signer, overrides *bind.TransactOpts) (*types.Transaction, error)
}
type TokenWithdrawal ¶
type TokenWithdrawal interface {
CompleteWithdrawal(ctx context.Context, c *Client, l1signer L1Signer, starkPublicKey string, overrides *bind.TransactOpts) (*types.Transaction, error)
}
type UnsignedMintRequest ¶
type UnsignedMintRequest struct { ContractAddress string `json:"contract_address" validate:"required,eth_addr"` Royalties []MintFee `json:"royalties,omitempty" validate:"max=50,dive"` // contract-level (optional) Users []User `json:"users" validate:"required,dive,min=1"` AuthSignature string `json:"auth_signature" validate:"required"` }
type User ¶
type User struct { User string `json:"ether_key" validate:"required,eth_addr"` Tokens []MintableTokenData `json:"tokens" validate:"required,dive,min=1"` }
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
examples
module
|
|
collection
Module
|
|
deposit
Module
|
|
minting
Module
|
|
order
Module
|
|
project
Module
|
|
registration
Module
|
|
trade
Module
|
|
withdrawal
Module
|
|
internal
|
|
signers
|
|
stark
Package stark implements utilities for generating imx.L2Signer
|
Package stark implements utilities for generating imx.L2Signer |