2.3.3 • Published 4 years ago

blockchainiz2 v2.3.3

Weekly downloads
23
License
ISC
Repository
github
Last release
4 years ago

Node Library for Blockchainiz API

BLOCKCHAINIZ LIBRARY

Installation

Simply use NPM with the following command :

npm install blockchainiz2 --save

This will download the package and add an entry in your project's package.json file.

Setup

In your project's source code, you need to start by importing the blockchainiz package and specify the options you want to use:

const  blockchainiz = require('blockchainiz2')({
    publicKey:  'your public key',
    privateKey:  'your private key',
    url:  'https://url-of-blockchainiz-environnement',
});

There are 3 options that you can set. You NEED to specify them in order for the package to work:

OptionTypeDescription
publicKeystringYour Blockchainiz public key
privateKeystringYour Blockchainiz private key
urlstringThe API Blockchainiz url (ask our support to have it)

License

Blockchainiz Library is distributed under MIT license, see the LICENSE file.

Contacts

Report bugs or suggest features using issue tracker on GitHub.

Account creation

You can ask an account (note that validation of your sandbox/production account can take a few days, so think about doing it in advance of when you actually want to go live).

Sample usage

Get Information about Ethereum Node

blockchainiz.getEthereumInfos((err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

{
	compilerVersion:{
		solc:{
			version: '0.4.21+commit.dfe3193c.Linux.g++'
		}
	},
	etherPrice: {
		EUR: 423.83,
		USD: 492.63
	},
	gasPrice: { fast: 12000000000, slow: 5000000000, standard: 6000000000 },
	timestamp: 1529323176534
}

Post an Ethereum contract

blockchainiz.postEthereumContract(
{
	language: 'solidity', // REQUIRED: string: language of your Ethereum contract
	sourceCode: sourceCode, // REQUIRED: string: sourcecode of your Ethereum contract
	walletAddress : '0x8f136c013b1c541a7971c9dfbd0866c60f3xxxxx' // string: if null = default wallet
	parameters: [15], // number: parameters for your constructor
	gasPrice: 11000000000, // number (gas price in wei), string ("slow", "standard", "fast"): gas price used for this transaction
	name: 'testSmartContract', // string: Name of your Ethereum contract
	pushedCallback: data.url + '?type=pushed', // string: url called after push
	minedCallback: data.url + '?type=mined', // string: url called after mining
},(err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

{
	id: '5b27a100b989df001152e02e',
	walletAddress: '0x8f136c013b1c541a7971c9dfbd0866c60f3xxxxx'
}

Get the Ethereum contracts list

blockchainiz.getEthereumContractsList(
{
	page: 1, // number: current page
	perPage: 20, // number: total item per page
	sortBy: 'status', // string: apiRequest, pushedInBlockchain, minedInBlockchain, response, status (default: apiRequest)
	sortOrder: 'asc', // asc or desc (default : asc)
},(err, res) => {
	console.log(res);
	if (err) {
		console.log(err);
	}
	should.not.exist(err);
	done();
});

Response

[
	{
		id: '5a9e5ac283490f0011d87293',
		abi: [
			[Object],
			[Object],
			[Object], 
			[Object],
			[Object] 
		],
		status: 'mined',
		address: '0x8f136c013b1c541a7971c9dfbd0866c60f3xxxxx',
		language: 'solidity',
		parameters: [
			'3'
		],
		name: 'Ballot',
		gasPriceInWei: 26000000000,
		infosCompilation:[
			'1:1: Warning: Source file does not specify required compiler version!Consider adding "pragma solidity ^0.4.19;"\ncontract Ballot {\n^\nSpanning multiple lines.\n'
		],
		etherPrice:{
			BTC: 0.07502,
			USD: 847.21,
			EUR: 688.68,
			AUD: 1098.65,
			CHF: 805.06,
			CAD: 1099.97,
			GBP: 630.38
		},
		timestampsInMs:{
			requestAPI: 1520327362396,
			pushedInBlockchain: 1520327366137,
			minedInBlockchain: 1520327377000,
			response: 1520327379267
		}
	},
	...
]

Get an Ethereum contract by id

blockchainiz.getEthereumContractsById(
{
	contractId: '5afaf0e64456d800113c94df' // REQUIRED: string: the contract ID
});

Response

{
	id: '5b27d894b989df001152e0bb',
	abi:[
		{
			constant: true,
			inputs: [],
			name: 'getVersion',
			outputs: [Array],
			payable: false,
			stateMutability: 'pure',
			type: 'function'
		},
		{
			constant: false,
			inputs: [Array],
			name: 'setStatus',
			outputs: [],
			payable: false,
			stateMutability: 'nonpayable',
			type: 'function'
		},
		...
	],
	status: 'mined',
	address: '0x8f136c013b1c541a7971c9dfbd0866c60f3xxxxx',
	amount: 0,
	language: 'solidity',
	parameters: [
		20
	],
	name: 'testSmartContract',
	infosCompilation:[
		'37:9: Warning: Invoking events without "emit" prefix is deprecated.\n statusChange(msg.sender, status);\n ^------------------------------^\n'
	],
	etherPrice:{
		BTC: 0.07695,
		USD: 497.14,
		EUR: 428.16,
		AUD: 667.32,
		CHF: 493.37,
		CAD: 676.34,
		GBP: 371.94
	},
	timestampsInMs:{
		apiRequest: 1529338004280,
		pushedInBlockchain: 1529338004529,
		minedInBlockchain: 1529338018000,
		response: 1529338028277
	},
	gasPriceInWei: 10000000000
}

Get a no constant function called by id

blockchainiz.getEthereumNoConstantFunctionById(
{
	functionId :'5b27dae1b989df001152e0ca' // REQUIRED : the function ID
},(err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

{
	id: '5b27dae1b989df001152e0ca',
	contract: '5b27dac3b989df001152e0c8',
	txid: '0xae54089532251676aba760f20760c0ba55bfdf055306efd35365e590b8aa2d5c',
	functionName: 'setStatus',
	functionParameters: [
		10
	],
	status: 'mined',
	pushedCallback: 'http://postb.in/DgmNHcCg?type=pushed',
	minedCallback: 'http://postb.in/DgmNHcCg?type=mined',
	errorCallback: 'http://postb.in/DgmNHcCg?type=error',
	blockHash: '0xb851637721fd2edb3d6a4ef3dd5434adaf94c60199b9ad8607d59ffcb3abfbe1',
	blockNumber: 3462888,
	gasUsed: 28378,
	gasLimit: 31216,
	gasPriceInWei: 10000000000,
	timestampsInMs:{
		apiRequest: 1529338593136,
		pushedInBlockchain: 1529338593250,
		minedInBlockchain: 1529338608000,
		response: 1529338610943
	},
	etherPrice:{
		BTC: 0.07692,
		USD: 497.42,
		EUR: 428.15,
		AUD: 667.32,
		CHF: 493.18,
		CAD: 679.01,
		GBP: 359.81
	}
}

Get a list with all functions no constant called

blockchainiz.getEthereumNoConstantFunctionList(
{
	page: 1, // number: current page
	perPage: 20, // number: total item per page
	sortBy: 'status', // string: apiRequest, pushedInBlockchain, minedInBlockchain, response, status (default: apiRequest)
	sortOrder: 'asc', // asc or desc (default : asc)
},(err, res) => {
		if (err) {
			console.log(err);
		}
});

Response

[
	{
		id: '5b195ed7a7215d0011b73906',  
		contract: '5b195ebca7215d0011b73904',  
		txid: '0x66a30db58f6a66940b993f799fcc9fbc48e150d05de858027c6b2886f81aef',  
		functionName: 'setStatus',  
		functionParameters: [
			10
		],  
		status: 'mined',  
		pushedCallback: 'http://test/pushedCallback',  
		minedCallback: 'http://test/minedCallback',  
		errorCallback: 'http://test/errorCallback',
		blockHash: '0x2f3cd5ec71596f8b6896a6b0f5e9a2272042ce4d61a791ab1cbd364edd9caa',  
		blockNumber: 3392382,  
		gasUsed: 43378,  
		gasLimit: 47716,  
		gasPriceInWei: 10000000000,  
		timestampsInMs: {
			apiRequest: 1528389335421,  
			pushedInBlockchain: 1528389335705,  
			minedInBlockchain: 1528389336000,  
			response: 1528389342705
		},  
		etherPrice: {
			BTC: 0.07886,  
			USD: 606.26,  
			EUR: 513.15,  
			AUD: 793.73,  
			CHF: 629.93,  
			CAD: 788.97,  
			GBP: 455.81
		}
	},
	...  
]

Call a no constant function for a contract in Ethereum

blockchainiz.callEthereumNoConstantFunction(
{
	contractId: '5afaf0e64456d800113c94dd', // REQUIRED: string: The contract ID from Blockchainiz
	functionName: 'setStatus', // REQUIRED: string: name of the function called
	functionParameters: [ // if null = []
		10
	],
	gasPrice: 11000000000, // number (gas price in wei), string ("slow", "standard", "fast"): gas price used for this transaction
	walletAddress: // if null = default wallet
	value: // if null = 0 (no transfer), number (in wei): value in wei to be transferred from the wallet to the contract function 
	pushedCallback: // string/url
	minedCallback: // string/url
},(err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

{
	id: '5b28f5adb989df001152e0f6',
	walletAddress: '0x8f136c013b1c541a7971c9dfbd0866c60f3xxxxx'
}

Call a constant function for a contract in Ethereum

blockchainiz.callEthereumConstantFunction(
{
	contractId:'5afaf0e64456d800113c94da',  // REQUIRED: string: The contract ID from Blockchainiz
	functionName: 'getStatus', // REQUIRED: string: name of the function called
	functionParameters: [] // if null = []
},(err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

{
	data:{
		'2': '0.0.1',
		a: '0x2bc2239448959a1ae54747c28827b2ad7d20006c',
		b: '20'
	}
}

Subscribe to an Ethereum event in contract

blockchainiz.subscribeEthereumEvent(
{
	contractId:'5afaf0e64456d800113c94df', // REQUIRED: string: The contract ID from Blockchainiz
	eventName: 'statusChange', // REQUIRED: string: Name of the event to subscribe
	callbackUrl: 'http://myserver.com/callback?type=event', // string : url for callback
},(err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

{
	id: '5b28f5feb989df001152e0f8' // ID of the subscribtion
}

Unsubscribe to a specific event in a Ethereum contract

blockchainiz.unsubscribeEthereumEvent(
{
	contractId:'5afaf0e64456d800113c94df', // REQUIRED: string: The contract ID from Blockchainiz
	subscriptionId:'5b28f5feb989df001152e0f8', // REQUIRED: string: ID of the subscription
},(err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

No Content

Get infos about a specific subscription

blockchainiz.getEthereumSubscription(
{
	contractId:'5afaf0e64456d800113c94df', // REQUIRED: string: The contract ID from Blockchainiz
	subscriptionId:'5b28f5feb989df001152e0f8', // REQUIRED: string: ID of the subscription
},(err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

{
	id: '5b28f5feb989df001152e0f8',
	eventName: 'statusChange',
	contract: '5b28f59eb989df001152e0f4',
	callback: 'http://postb.in/57pmXc96?type=event'
}

Get event infos with a specific subscription ID

blockchainiz.getEthereumEventsBySubscription(
{
	contractId:'5afaf0e64456d800113c94df', // REQUIRED: string: The contract ID from Blockchainiz
	subscriptionId:'5b28f5feb989df001152e0f8', // REQUIRED: string: ID of the subscription
},(err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

[
	{
		id: '5b28f612b989df001152e0f9',
		eventName: 'statusChange',
    parameters: {
  		param1: '0x8f136c013b1c541a7971c9dfbd0866c60f3xxxxx',
  		param2: '10'
  	},
		contractId: '5b28f59eb989df001152e0f4',
		blockNumber: 3468496,
		blockHash: '0x338bf9674d2609830f3031ae69a6423b49c36f647bcc1afd2ff5cc5b8fca4bd3',
		transactionHash: '0xb86c49cda7fb392e655220aac093eef4d9ad999945ec5776cb5b8debab13d533'
	},
	...
]

Get event infos with a specific event ID

blockchainiz.getEthereumEvent(
{
	contractId:'5afaf0e64456d800113c94df', // REQUIRED: string: The contract ID from Blockchainiz
	eventId: '5b28f5adb989df001152e0f6', // REQUIRED: string: The event ID from Blockchainiz
},
(err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

{
	id: '5b28f612b989df001152e0f9',
	eventName: 'statusChange',
	parameters: {
		param1: '0x8f136c013b1c541a7971c9dfbd0866c60f3xxxxx',
		param2: '10'
	},
	contract: '5b28f59eb989df001152e0f4',
	blockNumber: 3468496,
	blockHash: '0x338bf9674d2609830f3031ae69a6423b49c36f647bcc1afd2ff5cc5b8fca4bd3',
	transactionHash: '0xb86c49cda7fb392e655220aac093eef4d9ad999945ec5776cb5b8debab13d533'
}

Create a new Ethereum wallet

blockchainiz.postEthereumWallets(
{
	default: true, // if true = the wallet created will be as default
	gasPrice: 11000000000 // number (gas price in wei) or string ("slow", "standard", "fast") or null (will use default gas price from your user): gas price used for this wallet
}, (err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

{
	walletAddress: '0x8f136c013b1c541a7971c9dfbd0866c60f3xxxxx' // your new wallet address
}

Update an Ethereum wallet

blockchainiz.patchEthereumWallets(
{
	default: true, // if true = the wallet created will be as default
	gasPrice: 11000000000, // number (gas price in wei) or string ("slow", "standard", "fast") or null (will use default gas price from your user): gas price used for this wallet
}, (err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

{
}

Update user

blockchainiz.patchUser(
{
	gasPrice: 11000000000, // number (gas price in wei) or string ("slow", "standard", "fast"): gas price used for your transactions if not defined in your wallet 
}, (err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

{
}

Get the balance of a specific wallet address

blockchainiz.getEthereumWalletBalance(
{
	walletAddress: '0x8f136c013b1c541a7971c9dfbd0866c60f3xxxxx', // the wallet address
	unit: 'wei'// default = wei - possible ('Gwei','Kwei','Mwei','babbage','ether','femtoether','finney','gether','grand','gwei','kether','kwei','lovelace','mether','micro','microether','milli','milliether','mwei','nano','nanoether','noether','picoether','shannon','szabo','tether','wei')
}, (err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

{
	balance: '11234654365',
  	address: '0x8f136c013b1c541a7971c9dfbd0866c60f3xxxxx',
  	unit: 'wei'
}

Get the list of yours wallets

blockchainiz.getEthereumWalletsList(
(err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

{
	addresses:
    [ { address: '0x8f136c013b1c541a7971c9dfbd0866c60f3xxxxx',
       gasPrice: 'standard' },
     { address: '0x2bc2239448959a1ae54747c28827b2ad7d2xxxxx' },
     { address: '0x60a30530ec6b7b2ef782d48863f3b6f2146xxxxx' },
     { address: '0x7a2cc501c800edb961cced0cae4b073b0b3xxxxx' },
     { address: '0xb9cffdf7058662d547816cec29e235702aaxxxxx' },
     { address: '0x465b14a5cd0cab3263ca42b3f4881f1501bxxxxx' }
	]
	defaultAddress: '0x2bc2239448959a1ae54747c28827b2ad7d2xxxxx'
}

Get the signature of a data from one of your wallet

blockchainiz.signData(
	{
		data: 'Hello world', // type: string, data to sign
		walletAddress: '0x69e38d0f6bd0fb0b43f8dec3e806238e01exxxxx' // type: string, an ethereum address to sign data with
	},
(err, res) => {
	if (err) {
		console.log(err);
	}
});

Response

{
	message: 'Hello world',
	messageHash: "0x8144a6fa26be252b86456491fbcd43c1de7e022241845ffea1c3df066f7cfede",
	v: "0x1c",
	r: "0x657123506d5f652742e3453e822a3d1686d845a3dc85608d4dcae888be880aed",
	s: "0x3c7dc96f44afc9105bd32318b3a4d7c528849f849d00aa22e57e3a99e1918b7c",
	signature:"0x657123506d5f652742e3453e822a3d1686d845a3dc85608d4dcae888be880aed3c7dc96f44afc9105bd32318b3a4d7c528849f849d00aa22e57e3a99e1918b7c1c",
}

Follow the changelog

You can follow all changes with our changelog file

2.3.3

4 years ago

2.3.2

5 years ago

2.3.1

5 years ago

2.3.0

5 years ago

2.2.0

6 years ago

2.1.3

6 years ago

2.1.1

6 years ago

2.1.0

6 years ago

2.0.2

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago