anchor.diff:  					obj = JSON.parse(str);
   				}
   				
  -				if(name) obj.cc.names.push(name);
  +				if(name && !in_array(name, obj.cc.names)) obj.cc.names.push(name);			//only add if it doesn't exist yet
   				window.localStorage.setItem(lsKey, JSON.stringify(obj));					//save new one
   				build_cc_options(obj.cc);
   			}
  
positive.code: 			$(document).on("click", ".go", function(){
  				var host = $("input[name='host']").val();
  				var port = $("input[name='port']").val();
  				var func = $(this).attr('func');
  				var args = $(this).prev().val();
  				
  				var data = {
  								chaincodeSpec: {
  									type: "GOLANG",
  									chaincodeID: {
  										name: $("input[name='cc_path']").val(),
  									},
  									ctorMsg: {
  										function: func,
  										args: JSON.parse("[" + args + "]")
  									}
  								}
  							};
  				console.log(data);
  				$.ajax({
  					method: 'POST',
  					url: 'http://' + host + ':' + port + '/devops/invoke',
  					data: JSON.stringify(data),
  					contentType: 'application/json',
  					success: function(json){
  						console.log('Success', json);
  					},
  					error: function(e){
  						console.log('Error', e);
  					}
  				});
  				
  			});
  			
  			$(document).on("click", ".transBlock", function(){
  
negative.code: 									}
  								}
  							};
  				
  				/*var data = {
  								"chaincodeSpec": {
  									"type": "GOLANG",
  									"chaincodeID": {
  										name: $("input[name='cc_name']").val(),
  									},
  									"ctorMsg": {
  										"function": "test",
  										"args": [name, value]
  									}
  								}
  							};*/
  				$.ajax({
  					method: 'POST',
  					url: 'http://' + host + ':' + port + '/devops/invoke',
  