validation.js
function validateIndivisibleIssue(input, cb){
	//	if (objAsset)
	//		profiler2.start();
		conn.query(
			"SELECT count_coins FROM asset_denominations WHERE asset=? AND denomination=?", 
			[payload.asset, denomination], 
			function(rows){
				if (rows.length === 0)
					return cb("invalid denomination: "+denomination);
				if (rows.length > 1)
					throw Error("more than one record per denomination?");
				var denomInfo = rows[0];
				if (denomInfo.count_coins === null){ // uncapped
					if (input.amount % denomination !== 0)
						return cb("issue amount must be multiple of denomination");
				}
				else{
					if (input.amount !== denomination * denomInfo.count_coins)
						return cb("wrong size of issue of denomination "+denomination);
				}
			//	if (objAsset)
			//		profiler2.stop('validateIndivisibleIssue');
				cb();
			}
		);
	}
function validateIndivisibleIssue(input, cb){
	//	if (objAsset)
	//		profiler2.start();
		conn.query(
			"SELECT count_coins FROM asset_denominations WHERE asset=? AND denomination=?", 
			[payload.asset, denomination], 
			function(rows){
				if (rows.length === 0)
					return cb("invalid denomination: "+denomination);
				if (rows.length > 1)
					throw Error("more than one record per denomination?");
				var denomInfo = rows[0];
				if (denomInfo.count_coins === null){ // uncapped
					if (input.amount % denomination !== 0)
						return cb("issue amount must be multiple of denomination");
				}
				else{
					if (input.amount !== denomination * denomInfo.count_coins)
						return cb("wrong size of issue of denomination "+denomination);
				}
			//	if (objAsset)
			//		profiler2.stop('validateIndivisibleIssue');
				cb();
			}
		);
	}
function validateIndivisibleIssue ( input , cb ) { //	if (objAsset) //		profiler2.start(); conn . query ( "SELECT count_coins FROM asset_denominations WHERE asset=? AND denomination=?" , [ payload . asset , denomination ] , function ( rows ) { if ( rows . length === 0 ) return cb ( "invalid denomination: " + denomination ) ; if ( rows . length > 1 ) throw Error ( "more than one record per denomination?" ) ; var denomInfo = rows [ 0 ] ; if ( denomInfo . count_coins === null ) { // uncapped if ( input . amount % denomination !== 0 ) return cb ( "issue amount must be multiple of denomination" ) ; } else { if ( input . amount !== denomination * denomInfo . count_coins ) return cb ( "wrong size of issue of denomination " + denomination ) ; } //	if (objAsset) //		profiler2.stop('validateIndivisibleIssue'); cb ( ) ; } ) ; }
same for both public and private
same for both public and private