The Javascript API for integration with COCOS-BCX-based blockchain using the COCOS-BCX RPC API.
Node.js 8.9.3 or higher version.
Use npm install to install local dependencies. Run building npm run dev.
Use the building to issue npm run release. The unpacked building shall be found at ./build.
Use the building to issue npm run release-npm. The unpacked building shall be found at./build-npm.
<script type="text/javascript" src="bcx.min.js"></script>
NPM, which works well with modules packagers such as webpack or Browserify, is highly recommended when building large applications with bcxjs.
# The latest stable version
$ npm install bcxjs-api
ES6 module syntax import is supported when there is a converter like Babel.
import BCX from "bcxjs-api"
var bcx=new BCX({
default_ws_node:”ws://XXXXXXXXX” //node rpc address, optional. If you do not specify this, it will automatically connect to the fastest node in ws_node_list
ws_node_list:[{url:"ws://xxxxxxx",name:"xxxxx"}]//API server node list, required
faucet_url:"http://xxx.xxx.xxx.xxx:xxxx", //Registration
networks:[{
core_asset:"xxx",//core asset symbol
chain_id:"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"//chain id
}],
auto_reconnect:false,//Whether to connect automatically when RPC is disconnected, the default is true
app_keys:["xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"],//Contract authorization. Do not need to configure this if there is no contract authorization
real_sub:true//true:real-time subscription,false:blockchain subscription,the frequency of subscription notification is the frequency block production
sub_max_op:13//Maximum number of OP processed at subscription
});
bcx.transferAsset({
to:"test2",
amount:1,
assetId:"COCOS",
memo:""
}).then(res=>{
console.log('transferAsset res',res);
})
The result returned by callback is an Object with an structure of {code:0,message:""}. If it is code=1, it means the result is success, and there is no message status description. If it is Code!=1, it means that the result is failure, the message is the description of the failure status.
2.There is only one parameter unless otherwise specified. The parameter is an object that contains all relevant parameters, including callback.
Example:
bcl.getPrivateKey().then(res=>{});
3.In addition to the subscription interface, other interfaces return a promise object when not passing callback parameter.
5.The parameter of the interface cannot be empty unless otherwise specified. Callback is an optional parameter.
7.The data returned by other interfaces will have an additional data field trxData with a value of one object.
Example:
trx_data:{
block_num:*****,//Block height
trx_id:"************************"//Transaction ID
}
8.If a non-query interface involves associated ID business (such as the ID generated by creating the NH asset), the data returned will contain the data object.
//Example
data:{
real_running_time: 387//Running time
result: "4.2.288"//Associated business id
}
code | message | Description | API |
---|---|---|---|
300 | Chain sync error, please check your system clock | Chain sync error, please check your system clock | * |
301 | RPC connection failed. Please check your network | RPC connection failed. Please check your network | * |
1 | None | Operation succeeded | * |
0 | failed | The operation failed, and the error status description is not fixed. You can directly prompt res.message or to prompt the operation failure | * |
101 | Parameter is missing | Parameter is missing | * |
1011 | Parameter error | Parameter error | * |
102 | The network is busy, please check your network connection | The network is busy, please check your network connection | * |
103 | Please enter the correct account name(/^a-z{4,63}/$) | Please enter the correct account name(/^a-z{4,63}/$) | CreateAccountWithPassword |
104 | XX not found | XX not found | passwordLogin etc |
105 | wrong password | wrong password | passwordLogin,unlockAccount |
106 | The account is already unlocked | The account is already unlocked | unlockAccount |
107 | Please import the private key | Please import the private key | unlockAccount |
108 | User name or password error (please confirm that your account is registered in account mode, and the account registered in wallet mode cannot be logged in using account mode) | User name or password error (please confirm that your account is registered in account mode, and the account registered in wallet mode cannot be logged in using account mode) | passwordLogin |
109 | Please enter the correct private key | Please enter the correct private key | keyLogin |
110 | The private key has no account information | The private key has no account information | keyLogin |
111 | Please login first | Please login first | changePassword |
112 | Must have owner permission to change the password, please confirm that you imported the ownerPrivateKey | Must have owner permission to change the password, please confirm that you imported the ownerPrivateKey | changePassword |
113 | Please enter the correct original/temporary password | Please enter the correct original/temporary password | changePassword |
114 | Account is locked or not logged in. | Account is locked or not logged in | changePasswor、transferAsset、getPrivateKey etc. |
115 | There is no asset XX on block chain | There is no asset XX on block chain | transferAsset etc. |
116 | Account receivable does not exist | Account receivable does not exist | transferAsset etc. |
117 | The current asset precision is configured as X ,and the decimal cannot exceed X | The current asset precision is configured as X ,and the decimal cannot exceed X | transferAsset etc. |
118 | Encrypt memo failed | Encrypt memo failed | transferAsset etc. |
119 | Expiry of the transaction | Expiry of the transaction | transferAsset etc. |
120 | Error fetching account record | Error fetching account record | queryAccountOperations |
121 | block and transaction information cannot be found | block and transaction information cannot be found | queryBlockTXID |
122 | Parameter blockOrTXID is incorrect | Parameter blockOrTXID is incorrect | queryBlockTXID |
123 | Parameter account can not be empty | Parameter account can not be empty | queryAccountInfo |
124 | Receivables account name can not be empty | Receivables account name can not be empty | transferAsset |
125 | Users do not own XX assets | Users do not own XX assets | queryAccountBalances |
127 | No reward available | No reward available | getVestingBalances,claimVestingBalance |
129 | Parameter 'memo' can not be empty | Parameter ‘memo’ can not be empty | decodeMemo |
130 | Please enter the correct contract name(/^a-z{4,63}$/) | Please enter the correct contract name(/^a-z{4,63}$/) | createContract |
131 | Parameter 'worldView' can not be empty | Parameter ‘worldView’ can not be empty | creatWorldView |
133 | Parameter 'toAccount' can not be empty | Parameter ‘toAccount’ can not be empty | transferNHAsset |
135 | Please check parameter data type | Please check parameter data type | creatNHAssetOrder |
136 | Parameter 'orderId' can not be empty | Parameter ‘orderId’ can not be empty | cancelNHAssetOrder |
137 | Parameter 'NHAssetHashOrIds' can not be empty | Parameter ‘NHAssetHashOrIds’ can not be empty | lookupNHAssets |
138 | Parameter 'url' can not be empty | Parameter ‘url’ can not be empty | switchAPINode |
139 | Node address must start with ws:// or wss:// | Node address must start with ws:// or wss:// | addAPINode |
140 | API server node address already exists | API server node address already exists | switchAPINode |
141 | Please check the data in parameter NHAssets | Please check the data in parameter NHAssets | creatNHAsset |
142 | Please check the data type of parameter NHAssets | Please check the data type of parameter NHAssets | creatNHAsset |
144 | Your current batch creation / deletion / transfer number is X , and batch operations can not exceed X | Your current batch creation / deletion / transfer number is X , and batch operations can not exceed X | creatNHAsset、deleteNHAsset、transferNHAsset |
145 | XX contract not found | XX contract not foun | callContractFunction, queryContract, queryAccountContractData |
146 | The account does not contain information about the contract | The account does not contain information about the contract | queryAccountContractData |
147 | NHAsset do not exist | NHAsset do not exist | queryNHAssets |
148 | Request timeout, please try to unlock the account or login the account | Request timeout, please try to unlock the account or login the account | queryVotes |
149 | This wallet has already been imported | This wallet has already been imported | importPrivateKey |
150 | Key import error | Key import error | importPrivateKey |
151 | File saving is not supported | File saving is not supported | backupDownload |
152 | Invalid backup to download conversion | Invalid backup to download conversion | backupDownload |
153 | Please unlock your wallet first | Please unlock your wallet first | importPrivateKey |
154 | Please restore your wallet first | Please restore your wallet first | backupDownload、unlockAccount |
155 | Your browser may not support wallet file recovery | Your browser may not support wallet file recovery | loadWalletFile |
156 | The wallet has been imported. Do not repeat import | The wallet has been imported. Do not repeat import | restoreWallet |
157 | Can't delete wallet, does not exist in index | Can't delete wallet, does not exist in index | deleteWallet |
158 | Imported Wallet core assets can not be XX , and it should be XX | Imported Wallet core assets can not be XX , and it should be XX | restoreWallet |
159 | Account exists | Account exists | createAccountWithWallet |
160 | You are not the creator of the Asset XX . | You are not the creator of the Asset XX | issueAsset |
161 | Orders do not exist | Orders do not exist | fillNHAssetOrder |
162 | The asset already exists | The asset already exists | createAsset |
163 | The wallet already exists. Please try importing the private key | The wallet already exists. Please try importing the private key | restoreWallet |
164 | worldViews do not exist | worldViews do not exist | queryWorldViews |
165 | There is no wallet account information on the chain | There is no wallet account information on the chain | restoreWallet |
166 | The Wallet Chain ID does not match the current chain configuration information. The chain ID of the wallet is: XX | The Wallet Chain ID does not match the current chain configuration information. The chain ID of the wallet is: XX | restoreWallet |
167 | The current contract version ID was not found | The current contract version ID was not found | queryContract |
168 | This subscription does not exist | This subscription does not exist | unsubscribe |
169 | Method does not exist | Method does not exist | unsubscribe |
Method:createAccountWithWallet
Function: To create an account with a wallet. The account created with the wallet cannot be logged in with account name and password. If an account already exists with the wallet, this operation will create a sub-account, which requires the account to be a lifetime member first.
Parameters:
account:Account name registration rules, /^[a-z][a-z0-9.-]{4,63}$/, begin with lowercase letters + digits or lowercase letters or dots or dashes -, with a length of 4 to 63 characters
password:password
callback:callback function
Method: backupDownload
Function: To back up the wallet. Calling this API will generate a wallet file, which will be downloaded automatically
Parameters:
callback:callback function
Method:loadWalletFile
Function:For the web, the change event is bound to the file input to read the wallet file.
Parameters:
file: The host environment triggers the returned event object event.target, files[0] if the change event in web => file input
callback: callback function
Method: restoreWallet
Function: To back up the wallet. Calling this API will generate a wallet file, which will be downloaded automatically. After the API is called, the wallet is locked.
Parameters:
password: the wallet password of the backup file
callback: callback function
Method: importPrivateKey
Function: To import private key to the wallet
Parameters:
privateKey: unencrypted private key
password: If the wallet has been created or the wallet has been restored, the password is that of the original wallet, otherwise it is a temporary password that can be filled in freely.
callback: callback function
Method: deleteWallet
Function: To delete the wallet. In the account mode, it’s better to delete the wallet first
Parameters:
callback: callback function
Method: getAccounts
Function: To get a list of wallet accounts
Parameters:
callback: Return data directly, the example format is:
{
"accounts": ["tom0002"],
"currentAccount": {
"account_id": "1.2.20",
"locked": true,
"account_name": "tom0002"
}
}
Method: setCurrentAccount
Function: To switch current account in wallet mode
Parameters:
account: the account to be switched to
callback: callback function
Method: unlockAccount
Function: This method can be used to unlock your account by importing private key or in the wallet mode.
Parameters:
Password: the temporary password set when importing the private key
Callback: callback function
Method: lockAccount
Function: Lock the account
Parameters:
callback: callback function
Method: createAccountWithPassword
Function: To create an account. If there’s already an account logged in under account mode, this operation will create a sub-account, which requires the account to be a lifetime member first
Parameters:
account: Account name registration rules, /^[a-z][a-z0-9.-]{4,63}$/, begin with lowercase letters + digits or lowercase letters or dots or dashes -, with a length of 4 to 63 characters
password: password
autoLogin: Boolean type. it specifies whether to log in automatically with the default value of false
callback: callback function
Method: passwordLogin
Function: To login the account
Parameters:
account: account name
password: password
callback: callback function
Method: privateKeyLogin
Function: Previously, this API was just a transition. Strictly speaking, importing a private key exists only in the wallet mode. Now, this API is temporarily left here and is still available for calling for compatility.
Parameters:
privateKey: Private key
password: Temporary password
callback: callback function
Method: logout
Function: This method will clear the user-related cache, including clearing the encrypted ciphertext key.
Parameters:
callback: callback function
Method: changePassword
Function: The password can be changed only in the account mode; after the password is successfully changed, the API will automatically call the logout.
Parameters:
oldPassword: old password
newPassword: new password
callback: callback function
Method: getAccountInfo
Function: When the account is unlocked, the return data will contain the account name
Parameters: None
Method: createAccountWithPublicKey
Function: To create an account with a random generated public key and account name. If an account already exists with the account mode, this operation will create a sub-account, which requires the account to be a lifetime member first.
Parameters:
account(string):Account name registration rules, /^[a-z][a-z0-9.-]{4,63}$/, begin with lowercase letters + digits or lowercase letters or dots or dashes -, with a length of 4 to 63 characters
ownerPubkey(string):Account permission public key
activePubkey(string):fund permission public key
callback: callback function
Method: upgradeAccount
Function: After purchasing a lifetime membership account, you can create a sub-account, which requires a certain fee.
Parameters:
onlyGetFee: Whether to get this operation fee only
callback: callback function
Method: getPrivateKey
Function: Get the user’s active_private_key. This key can be used to sign all the expenditures of the account. The returned owner_private_key: can modify various settings related to the account, including permission settings.
Parameters:
callback: Set the callback function after successfully get the private key
Method: queryAccountOperations
Function: To query user’s recent operation history
Parameters:
account: account name
limit: Number of records queried
startId: The first account record id to be queried. If the query scope is the entire account record, the initial account record is startId.
endId: The last account record id to be queried. If the scope of the query is the entire account record, the latest account record is the endId.
callback: See the unified API parameter description
Method: subscribeToAccountOperations
Function: To subscribe to operation record changes
Parameters:
account: account name
callback: Call this callback whenever the user action record changes
Method: queryAccountInfo
Function: The account information includes information such as the user id username.
Parameters:
account: account name
callback: See the unified API parameter description
Method: transferAsset
Function: Send tokens to the recipient
Parameters:
fromAccount: The sender's account name. it is not a proposal
toAccount: The recipient’s account name
amount: Amount of tokens sent
assetId: Asset ID (e.g. X.X.X) or token symbol (e.g. BTC)
memo: Transfer memo
feeAssetId: Token asset symbol used to pay for transfer fee
isPropose: Whether to propose
onlyGetFee(boolean): Whether to get the transaction fee for this operation
callback: Set the callback function after the transfer
Method: createAsset
Function: To create a token
Parameters:
assetId: Asset symbol, regular ^[.A-Z]+$
precision: precise to decimal digit
maxSupply: Maximum asset supply
description: Asset description, optional
onlyGetFee: Set to return only the fee required for this call
callback: See the unified API parameter description
coreExchangeRate(Object):
{
quoteAmount: quote asset(Created token, default 1),
baseAmount: base asset (Core asset, default 1)
}
Method: updateAsset
Function: Update token
Parameters:
assetId: Asset symbol, regular ^[.A-Z]+$
maxSupply: Maximum asset supply
newIssuer: Update issuer
description: Asset description, optional
onlyGetFee: Set to return only the fee required for this call
callback: See the unified API parameter description
coreExchangeRate(Object): Fee exchange rate
{
quoteAmount: quote asset
baseAmount: base asset
}
Method: reserveAsset
Function: Burn token assets
Parameters:
assetId: Asset symbol
amount: Amount to be destroyed
onlyGetFee: Set to return only the fee required for this call
callback: callback function
Method: issueAsset
Function: To issue token asset
Parameters:
toAccount: Issue object
amount: Amount to be issued
assetId: Asset symbol
memo: memos, optional
onlyGetFee: Set to return only the fee required for this call
callback: callback function
Method: assetFundFeePool
Function: All fees will eventually be paid using the core asset token. The fee pool is used to cover the fee for the exchange from the secondary asset token to the core asset token so that the user can use the secondary token to pay the fee. If the balance in the funds pool is used up, the user will not be able to continue to use the secondary asset token to pay the transaction fee. Currently, the APIs that supports the use of secondary asset tokens as a fee include “transfer, vote, lifetime membership upgrade, asset issuance”, which will be expanded.
Parameters:
assetId: Secondary asset token symbol requiring fund injection
amount: Amount of core asset tokens to be injected
onlyGetFee: Set to return only the fee required for this call
callback: callback function
Method: assetClaimFees
Function: The asset issuer can collect the accumulated fees here.
Parameters:
assetId: Secondary asset token symbol to be collected
amount: Amount of secondary asset tokens
onlyGetFee: Set to return only the fee required for this call
callback: callback function
Method: queryAsset
Function: Token asset query
Parameters:
assetId: Asset symbol, if this parameter is empty, all assets issued on the chain will be queried
callback: callback function
Method: queryAccountBalances
Function: Get the digital asset corresponding to the user. If the assetId is empty, all the tokens of the user will be returned.
Parameters:
assetId: Asset ID or token symbol. Asset ID: the unique token ID of the digital token (e.g. "X.X.X"), token symbol (e.g. "BTC")
account: Account name
callback: callback function
Method: queryAccountAllBalances
Function: Query the list of all assets owned by the user, including the conversion value of the asset to the unit of account. Core asset with a balance of 0 will be returned when the account has no asset balance
Parameters:
unit: the unit of account will be exchanged to the asset, asset ID or token symbol based on the fee rate or the market price. Asset ID: The unique token ID of the digital token (e.g. "X.X.X"), token symbol (e.g. "BTC")
account: account name
callback: callback function
Method: registerCreator
Function: Register your current account as a developer
Method: creatWorldView
Function: Create a supported NH asset worldview and register the current account (usually the game's account) with the blockchain system to support the NH asset worldview
Parameters:
worldView: Worldview name, case sensitive
Method: creatNHAsset
Function: Create a unique NH asset. This interface is for use only by NH asset manufacturers (blacksmiths)
Parameters:
assetId: The applicable asset ID when the current NH asset is traded;
worldView: worldview
baseDescribe: The specific content description of the current NH assets, as defined by the creator;
ownerAccount: Specify the NH asset owner (NH asset ownership account, the default is NH asset creator)
NHAssetsCount (Number): Create the amount of NH assets, the default value is 1, only type 0 to create the same NH asset to take effect
type: Create the type of NH asset mode. The default value is 0. A value of 0 creates the same NH asset by default, and a value of 0 creates a different NH asset.
NHAssets (Array) example:
[{
"assetId": "X.X.X",
"worldView": "TEST",
"baseDescribe": "{name:\"预言家\"}",
"ownerAccount": "test2"
}, {
"assetId": "X.X.X",
"worldView": "TEST",
"baseDescribe": "{name:\"女巫\"}",
"ownerAccount": "test2"
}, {
"assetId": "X.X.X",
"worldView": "TEST",
"baseDescribe": "{name:\"猎人\"}",
"ownerAccount": "test2"
}]
Method: deleteNHAsset
Function: . the entire NH asset data record, which is usually used when the product is to be destroyed (only the user can authorize the destruction of the data).
Parameters:
NHAssetIds (Array): Unique ID of the NH asset instance; example: [X.X.X, X.X.X]
Method: transferNHAsset
Function: Users can transfer their NH assets to another user
Parameters:
toAccount: Account name the NH asset is transferred to
NHAssetIds(Array): An array of multiple NH asset ids, example: [X.X.X, X.X.X]
Method: proposeRelateWorldView
Function: Propose to link to a certain worldview, which requires the approval of the creator of the worldview
Parameters:
worldView: Worldview to be linked
Method: approvalProposal
Function: Approve proposals of other users to link with the worldview
Parameters:
proposalId: Proposal ID
Method: getAccountProposals
Function: Get the proposal received by the current operation user
Method: creatNHAssetOrder
Function: Sell NH assets (you can call the queryAccountGameItems function before the transaction, listing the user's NH assets so that the user can choose an asset to sell)
Parameters:
otcAccount: OTC transaction platform account, used to collect the pending order fee; (filled in the OTC platform)
orderFee: Pending order fee, the pending order fee paid by the user to the OTC platform account; (filled in the OTC platform)
NHAssetId: The unique identifier ID of the NH asset instance; (filled in by users)
price: Pending order price; (filled in by users)
priceAssetId: The token type for the price of the pending order; (filled in by users)
expiration: Order time, such as 3600 (seconds), is 1 hour
memo: Memo for the pending order
callback: Set the callback function after executing the pending order
Method: fillNHAssetOrder
Function: Buy NH assets, pay the token for purchasing game equipment, and modify the product data owned by the user. This is a multi-step atomic operation, where the NH asset data of the user account is updated while paying the fee. If any action in the updating of the assets data is not recognized by the block of the main chain, the entire transaction will be rolled back to avoid abnormal transaction.
Parameters:
orderId: order ID
callback: callback function
Method: cancelNHAssetOrder
Function: Cancel NH asset sale order
Parameters:
orderId: order ID
callback: callback function
Method: queryNHAssetOrders
Function: Query the NH asset sales orders of the network users
Parameters:
assetIds(array): Asset symbol or id screening
worldViews (array): Version name or version id screening
baseDescribe(string): basic description
pageSize: Page size
page: Number of pages
Method: queryAccountNHAssetOrders
Function: Query the NH asset sales order of the specified user
Parameters:
account: Query account name or account ID
pageSize: Page size
page: Number of pages
callback: callback function
Method: queryAccountNHAssets
Function: Read all NH assets under the current user account that can be used in the corresponding game
Parameters:
account: Account name or account ID
worldViews (array): Set of worldviews
page: Number of pages
pageSize: Page size, number of data per page
callback: Return value. Example:
{status:1,data:[],total:0}
Method: queryNHCreator
Function: Query the worldview linked with the developer
Parameters:
account: Account name or account ID
callback: callback function
Method: queryNHCreator
Function: Query the NH assets created by the developer
Parameters:
aaccount: Account name or account ID
callback: callback function
Method: queryNHAssets
Function: Query the details of NH asset
Parameters:
NHAssetIds(Array): NH asset id or hash
callback: callback function
Method: lookupWorldViews
Function: Query the details of worldview
Parameters:
worldViews (array): Worldview name or id
callback: callback function
Method: queryVotes
Function: Query the data of node votes
Parameters:
callback: callback function
Method: publishVotes
Function: The proxy account is set when saving, which will be followed by the user’s voting information.
Parameters:
witnessesIds(array): Set of node account ids. The query node vote data will have the account ID of each node
proxyAccount: Proxy account name
callback: callback function
Method: queryBlock
Function: Query block information by block height
Parameters:
block: Block height
Method: queryTransaction
Function: Query transaction information by transaction id (ie transaction hash)
Parameters:
transactionId: Transaction id
Method: queryDataByIds
Function: Query related data by id
Parameters:
ids(Array): Set of ID array
Method: subscribeToBlocks
Function: Monitor real-time block information
Parameters:
isReqTrx: Whether the subscribed block contains transaction information, which is included by default.
callback: callback function
Method: subscribeToChainTranscation
Function: Monitor blockchain transactions across the network
Parameters:
callback: callback function
Method: lookupWitnessesForExplorer
Function: The key point is to refer to the demo parsing block generation data of the node.
Parameters:
callback: callback function
Method: lookupBlockRewards
Function: Analyze data with reference to demo
Parameters:
callback: callback function
Method: claimVestingBalance
Function: Collect block reward
Parameters:
id: Reward ID. The ID will be included in the query block rewards.
callback: callback function
Method: init
Function: Initialization includes RPC connection, reloading Indexedb data, etc.
Parameters:
refresh: Optional, after the first init, the second init will use the cache information. Data will be reloaded and the RPC module will be reinitialized only if the refresh is true
autoReconnect: Optional, whether to reconnect after the RPC is disconnected
subscribeToRpcConnectionStatusCallback: Optional, monitor RPC connection status, return status=>closed: rpc connection is closed, error: rpc connection error, realopen: rpc connection is successful. There will provide a separate method for monitoring.
callback: optional, callback function
Method: lookupWSNodeList
Function: View the list of API server nodes
Parameters:
refresh: Whether to refresh the ping. This can only refresh the non-current connection node, if you want to refresh all, call init({refresh: true})
callback: callback function
Method: switchAPINode
Function: Switch node
Parameters:
url: API server node address, this address must be the websoket address in the API server node list
callback: callback function
Method: addAPINode
Function: Add a new API server node
Parameters:
name: New node name
url: API server node websoket address
callback: callback function
Method: deleteAPINode
Function: Delete node
Parameters:
url: API server node websoket address
callback: callback function
Method: subscribeToRpcConnectionStatus
Function: Monitor rpc connection status changes
Parameters:
callback: The callback returns status, including the following results:
closed: Rpc connection closed
error: Rpc connection error
realopen: Rpc connection succeeded
Method: generateKeys
Function: Randomly generate a pair of public and private keys, which will be used when creating a contract with permissions. The generated private key is used for API initialization to authorize the contract, which will be returned directly without callback
Method: createContract
Function: Create a smart contract. If you want to set permissions on the contract, you must add a specific lua code when creating the contract, and call the contract function set_permissions_flag => contract authority code: function my_change_contract_authority( publickey) assert(is_owner()) change_contract_authority( publickey) end function set_permissions_flag(flag) assert(is_owner()) set_permissions_flag(flag) end
Parameters:
authority: Contract authority (public key publicKey in a pair of public and private keys), the developer can configure the private key when using the API initialization, and configure the private key corresponding to the public key to call the contract.
name: Contract name, regular /^[az][a-z0-9.-]{4,63}$/, beginning with the letter + letters or numbers or dot. or dash -, length 4 to 63 data: contract lua Code
onlyGetFee: Set to return only the fee required for this operation
callback: See the unified API parameter description
Method: updateContract
Function: Update contract code
Parameters:
nameOrId: Contract name or Id,Example: contract.test02
data: Contract lua code
onlyGetFee: Set to return only the fee for this operation
Method: callContractFunction
Function: Call contract function interface
Parameters:
nameOrId: Contract name or Id,Example: contract.test02
functionName: Function name in the contract,my_nht_describe_change(Modify item properties)
valueList(array): Call the parameter list of the contract function, example: [4.2.0,{"size": "large"}] , If the parameter passes a json string, the contract needs to call cjson parsing. If the object is passed, no cjson parsing is required.
runtime: The time (in milliseconds) to run the contract function with a default of 5
onlyGetFee: Set to return only the fee for this operation with a default of false
callback: callback function
Method: queryContract
Function: Query contract information data
Parameters:
nameOrId: Contract name or Id
callback: callback function
Method: queryAccountContractData
Function: Query data generated in the account contract
Parameters:
account: Account name or Id
contractNameOrId: Contract name or Id
callback: callback function
Method: apiConfig
Function:API parameter configuration
Parameters:
API initialization related parameters
Method: unsubscribe
Function: Unsubscribe
Parameters:
method(Array): Cancel the method name of the specified subscription, such as unsubscribing to block and blockchain transactions ['subscribeToBlocks','subscribeToBlocks'], without passing this parameter, cancel all subscriptions. This method returns a promise without passing a callback. Note: If you need to specify to cancel a user's subscription, the parameter is ['subscribeToAccountOperation|account']
callback: callback function
Method: decodeMemo
Function: There is no callback, the result is returned directly, and the result is an object containing the memo text. The method is passed directly, but not the wrapped options object parameter. Example: bcl.decodeMemo(raw_data.memo) where raw_data is the transaction raw data.
Method: queryTransactionBaseFee
Function: Get the transaction type base fee
Parameters:
transactionType: transaction type, example: transfer
feeAssetId: Select the token type asset symbol or ID to pay the fee
callback: See the unified API description
transactionType | Corresponding API |
---|---|
transfer | transferAsset |
account_create | createAccountWithPassword |
account_update | changePassword |
account_upgrade | upgradeAccount |
asset_create | createAsset |
asset_issue | issueAsset |
proposal_update | submitProposal |
vesting_balance_withdraw | claimVestingBalance |
contract_create | createContract |
call_contract_function | callContractFunction |
register_creator | registerCreator |
creat_world_view | creatWorldView |
propose_relate_world_view | proposeRelateWorldView |
creat_nh_asset | creatNHAsset |
delete_nh_asset | delete_nh_asset |
transfer_nh_asset | transferNHAsset |
creat_nh_asset_order | creatNHAssetOrder |
cancel_nh_asset_order | cancelNHAssetOrder |
fill_nh_asset_order | fillNHAssetOrder |
limit_order_create | createLimitOrder |
limit_order_cancel | cancelLimitOrder |