code: function readSharedAddressDefinition(shared_address, handleDefinition){
  	db.query(
  		"SELECT definition, "+db.getUnixTimestamp("creation_date")+" AS creation_ts FROM shared_addresses WHERE shared_address=?", 
  		[shared_address], 
  		function(rows){
  			if (rows.length !== 1)
  				throw Error('shared definition not found '+shared_address);
  			var arrDefinition = JSON.parse(rows[0].definition);
  			handleDefinition(arrDefinition, rows[0].creation_ts);
  		}
  	);
  }
docs: /*
  function readRequiredCosigners(shared_address, arrSigningDeviceAddresses, handleCosigners){
  db.query(
  "SELECT shared_address_signing_paths.address \n\
  FROM shared_address_signing_paths \n\
  LEFT JOIN unit_authors USING(address) \n\
  WHERE shared_address=? AND device_address IN(?) AND unit_authors.address IS NULL",
  [shared_address, arrSigningDeviceAddresses],
  function(rows){
  handleCosigners(rows.map(function(row){ return row.address; }));
  }
  );
  }