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-goerli.alchemyapi.io/v2/", RegistrationContractAddress: "0x1C97Ada273C9A52253f463042f29117090Cd7D83", CoreContractAddress: "0x7917eDb51ecD6CdB3F9854c3cc593F33de10c623", ChainID: big.NewInt(5), } Mainnet = Environment{ BaseAPIPath: "https://api.x.immutable.com", EthereumRPC: "https://eth-mainnet.alchemyapi.io/v2/", RegistrationContractAddress: "0x72a06bf2a1CE5e39cBA06c0CAb824960B587d64c", CoreContractAddress: "0x5FDCCA53617f4d2b9134B29090C87D01058e27e9", ChainID: big.NewInt(1), } Ropsten = Environment{ BaseAPIPath: "https://api.ropsten.x.immutable.com", EthereumRPC: "https://eth-ropsten.alchemyapi.io/v2/", RegistrationContractAddress: "0x6C21EC8DE44AE44D0992ec3e2d9f1aBb6207D864", CoreContractAddress: "0x4527BE8f31E2ebFbEF4fCADDb5a17447B27d2aef", ChainID: big.NewInt(3), } )
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 api.EncodingApi // contains filtered or unexported fields }
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 }
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:"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"` Tokens []MintableTokenData `json:"tokens"` }
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 |