@alchemy_chain/js-sdk
v1.0.1
Published
Alchemy Chain JavaScript SDK - A simplified token API toolkit for blockchain token operations and interactions
Maintainers
Readme
@alchemy_chain/js-sdk
Alchemy Chain JavaScript SDK - A simplified token API toolkit for blockchain token operations and interactions.
Installation
npm install @alchemy_chain/js-sdkQuick Start
const AlchemySDK = require('@alchemy_chain/js-sdk');
// Configure RPC endpoint and private key
AlchemySDK.Config('https://your-rpc-endpoint.com', 'your-private-key');
// Create token
const result = await AlchemySDK.CreateToken('My Token', 'MTK', 18, '0x...masterAuthority');
result.success(data => {
console.log('Token address:', data.token);
console.log('Transaction hash:', data.hash);
}).error(err => {
console.error('Creation failed:', err);
});API Documentation
Configuration
Config(rpcUrl, privateKey)
Configure RPC endpoint and private key.
rpcUrl: RPC endpoint URLprivateKey: Private key for signing (can include or exclude 0x prefix)
Token Operations
CreateToken(name, symbol, decimals, masterAuthority)
Create a new token.
name: Token namesymbol: Token symboldecimals: Number of decimal placesmasterAuthority: Master authority address
Returns: Promise with .success() and .error() methods.
GetTokenMetadata(tokenAddress)
Get token metadata.
tokenAddress: Token contract address
UpdateMetadata(tokenAddress, newName, newSymbol, nonce)
Update token metadata.
tokenAddress: Token contract addressnewName: New token namenewSymbol: New token symbolnonce: Transaction nonce value
Mint(tokenAddress, toAddress, amount, nonce)
Mint tokens.
tokenAddress: Token contract addresstoAddress: Recipient addressamount: Amount to mint (wei value as string)nonce: Transaction nonce value
AdminBurn(tokenAddress, fromAddress, amount, nonce)
Admin burn tokens.
tokenAddress: Token contract addressfromAddress: Address to burn tokens fromamount: Amount to burn (wei value as string)nonce: Transaction nonce value
Authority Management
GrantAuthority(tokenAddress, role, account, nonce)
Grant authority.
tokenAddress: Token contract addressrole: Authority role (e.g. 'MINT_ROLE')account: Account address to be granted authoritynonce: Transaction nonce value
RevokeAuthority(tokenAddress, role, account, nonce)
Revoke authority.
tokenAddress: Token contract addressrole: Authority roleaccount: Account address to revoke authority fromnonce: Transaction nonce value
Contract Control
Pause(tokenAddress, nonce)
Pause contract.
tokenAddress: Token contract addressnonce: Transaction nonce value
Unpause(tokenAddress, nonce)
Unpause contract.
tokenAddress: Token contract addressnonce: Transaction nonce value
AddToBlacklist(tokenAddress, accountAddress, nonce)
Add account to blacklist.
tokenAddress: Token contract addressaccountAddress: Account address to add to blacklistnonce: Transaction nonce value
Utility Methods
GetBalance(address)
Get ETH balance.
address: Address to query
Returns: Promise that returns an object with wei and eth fields on success.
Technical Details
Enhanced Signature Verification
The SDK implements a robust signature system with the following improvements:
- Null Safety: Automatically handles and filters null/undefined values using strict null checks (
value == null) - Array Support: Properly processes array parameters by:
- Filtering out null/undefined array elements
- Flattening arrays into individual values using spread operator
- Including all non-null elements in signature
- Method Security: For token operations, method arguments are included in signature verification
- Parameter Ordering: All parameters are sorted alphabetically for consistent signature generation
- String Conversion: All parameter values are converted to strings before joining
- Comma Separation: Message parts are joined with commas for hash generation
Signature Fields
CreateToken Operations
Parameters included in signature:
decimals,masterAuthority,name,nonce,recentCheckpoint,symbol
Request parameters sent to server:
decimals,masterAuthority,name,symbol,nonce,recentCheckpoint,signature
Dynamic Method Calls
Parameters included in signature:
recentCheckpoint,nonce,methodArgs,token
Request parameters sent to server:
nonce,token,methodArgs,recentCheckpoint,signature
Note: The methodArgs field is now part of signature verification for enhanced security.
Examples
const AlchemySDK = require('@alchemy_chain/js-sdk');
async function main() {
// Configuration
AlchemySDK.Config('https://validator-node-rpc.aeon.xyz', 'your-private-key');
// Create token
const createResult = await AlchemySDK.CreateToken('My Token', 'MTK', 8, '0x...');
createResult.success(async response => {
const tokenAddress = response.token;
console.log('Token created successfully:', tokenAddress);
// Get token information
const metadataResult = await AlchemySDK.GetTokenMetadata(tokenAddress);
metadataResult.success(metadata => {
console.log('Token name:', metadata.name);
console.log('Token symbol:', metadata.symbol);
});
// Mint tokens
const mintResult = await AlchemySDK.Mint(tokenAddress, '0x...', '1000000000000000000', 1);
mintResult.success(response => {
console.log('Mint successful:', response.hash);
});
}).error(err => {
console.error('Creation failed:', err);
});
}
main().catch(console.error);Important Notes
- Private Key Security: Please keep your private key secure and do not hardcode it in your code
- Nonce Management: Ensure you use the correct nonce value when calling methods that require nonce
- Network Configuration: Make sure the RPC endpoint is accessible and compatible
- Error Handling: It's recommended to add appropriate error handling for all operations
- Signature Security: Method arguments are now included in signature verification - ensure parameters are correct
- Null Parameter Handling: The SDK automatically filters null/undefined values (
== nullcheck), so undefined parameters won't break signatures - Array Parameters: When using array parameters, null elements are automatically filtered out and arrays are flattened
- Parameter Format: CreateToken uses camelCase parameters (masterAuthority, recentCheckpoint) in both signature and request
- String Conversion: All parameter values are automatically converted to strings during signature generation
License
MIT
Contributing
Issues and pull requests are welcome!
