272 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			272 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Factor
		
	
	
| 
								 | 
							
								! Copyright (C) 2010 Chris Double.
							 | 
						||
| 
								 | 
							
								! See http://factorcode.org/license.txt for BSD license.
							 | 
						||
| 
								 | 
							
								USING: help.markup help.syntax ;
							 | 
						||
| 
								 | 
							
								IN: bitcoin.client
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: bitcoin-server
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "string" "a string" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns the hostname of the json-rpc server for the bitcoin client. "
							 | 
						||
| 
								 | 
							
								    "This defaults to 'localhost' or the value of the 'bitcoin-server' "
							 | 
						||
| 
								 | 
							
								    "variable."
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $see-also bitcoin-port bitcoin-user bitcoin-password } ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: bitcoin-port
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "n" "a number" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns the port of the json-rpc server for the bitcoin client. "
							 | 
						||
| 
								 | 
							
								    "This defaults to '8332' or the value of the 'bitcoin-port' "
							 | 
						||
| 
								 | 
							
								    "variable."
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $see-also bitcoin-server bitcoin-user bitcoin-password } ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: bitcoin-user
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "string" "a string" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns the username required to authenticate with the json-rpc "
							 | 
						||
| 
								 | 
							
								    "server for the bitcoin client. This defaults to empty or the "
							 | 
						||
| 
								 | 
							
								    "value of the 'bitcoin-user' variable."
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $see-also bitcoin-port bitcoin-server bitcoin-password } ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: bitcoin-password
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "string" "a string" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns the password required to authenticate with the json-rpc "
							 | 
						||
| 
								 | 
							
								    "server for the bitcoin client. This returns the "
							 | 
						||
| 
								 | 
							
								    "value of the 'bitcoin-password' variable."
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $see-also bitcoin-port bitcoin-server bitcoin-user } ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: get-addresses-by-label
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "label" "a string" } 
							 | 
						||
| 
								 | 
							
								  { "seq" "a sequence" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns the list of addresses with the given label."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: get-balance
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "n" "a number" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns the server's available balance."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: get-block-count
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "n" "a number" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns the number of blocks in the longest block chain."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: get-block-number
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "n" "a number" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns the block number of the latest block in the longest block chain."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: get-connection-count
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "n" "a number" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns the number of connections to other nodes."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: get-difficulty
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "n" "a number" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns the proof-of-work difficulty as a multiple of the minimum "
							 | 
						||
| 
								 | 
							
								    "difficulty."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: get-generate
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "?" "a boolean" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns true if the server is trying to generate bitcoins, false "
							 | 
						||
| 
								 | 
							
								    "otherwise."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: set-generate
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "gen" "a boolean" } 
							 | 
						||
| 
								 | 
							
								  { "n" "a number" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "If 'gen' is true, the server starts generating bitcoins. If 'gen' is "
							 | 
						||
| 
								 | 
							
								     "'false' then the server stops generating bitcoins. 'n' is the number "
							 | 
						||
| 
								 | 
							
								     "of CPU's to use while generating. A value of '-1' means use all the "
							 | 
						||
| 
								 | 
							
								     "CPU's available."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: get-info
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "result" "an assoc" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns an assoc containing server information."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: get-label
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "address" "a string" } 
							 | 
						||
| 
								 | 
							
								  { "label" "a string" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns the label associated with the given address."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: set-label
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "address" "a string" } 
							 | 
						||
| 
								 | 
							
								  { "label" "a string" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Sets the label associateed with the given address."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: remove-label
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "address" "a string" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Removes the label associated with the given address."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: get-new-address
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "address" "a string" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns a new bitcoin address for receiving payments."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: get-new-labelled-address
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "label" "a string" } 
							 | 
						||
| 
								 | 
							
								  { "address" "a string" } 
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns a new bitcoin address for receiving payments. The given "
							 | 
						||
| 
								 | 
							
								    "label is associated with the new address."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: get-received-by-address
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "address" "a string" } 
							 | 
						||
| 
								 | 
							
								  { "amount" "a number" }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns the total amount received by the address in transactions "
							 | 
						||
| 
								 | 
							
								    "with at least one confirmation."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: get-confirmed-received-by-address
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "address" "a string" } 
							 | 
						||
| 
								 | 
							
								  { "minconf" "a number" }
							 | 
						||
| 
								 | 
							
								  { "amount" "a number" }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns the total amount received by the address in transactions "
							 | 
						||
| 
								 | 
							
								    "with at least 'minconf' confirmations."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: get-received-by-label
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "label" "a string" } 
							 | 
						||
| 
								 | 
							
								  { "amount" "a number" }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns the total amount received by addresses with 'label' in transactions "
							 | 
						||
| 
								 | 
							
								    "with at least one confirmation."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: get-confirmed-received-by-label
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "label" "a string" } 
							 | 
						||
| 
								 | 
							
								  { "minconf" "a number" }
							 | 
						||
| 
								 | 
							
								  { "amount" "a number" }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Returns the total amount received by the addresses with 'label' in transactions "
							 | 
						||
| 
								 | 
							
								    "with at least 'minconf' confirmations."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: list-received-by-address
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "minconf" "a number" } 
							 | 
						||
| 
								 | 
							
								  { "include-empty" "a boolean" }
							 | 
						||
| 
								 | 
							
								  { "seq" "a sequence" }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Return a sequence containing an assoc of data about the payments an "
							 | 
						||
| 
								 | 
							
								    "address has received. 'include-empty' indicates whether addresses that "
							 | 
						||
| 
								 | 
							
								    "haven't received any payments should be included. 'minconf' is the "
							 | 
						||
| 
								 | 
							
								    "minimum number of confirmations before payments are included."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: list-received-by-label
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "minconf" "a number" } 
							 | 
						||
| 
								 | 
							
								  { "include-empty" "a boolean" }
							 | 
						||
| 
								 | 
							
								  { "seq" "a sequence" }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Return a sequence containing an assoc of data about the payments that "
							 | 
						||
| 
								 | 
							
								    "addresses with the given label have received. 'include-empty' "
							 | 
						||
| 
								 | 
							
								    " indicates whether addresses that "
							 | 
						||
| 
								 | 
							
								    "haven't received any payments should be included. 'minconf' is the "
							 | 
						||
| 
								 | 
							
								    "minimum number of confirmations before payments are included."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: send-to-address
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "address" "a string" } 
							 | 
						||
| 
								 | 
							
								  { "amount" "a number" }
							 | 
						||
| 
								 | 
							
								  { "?" "a boolean" }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Sends 'amount' from the server's available balance to 'address'. "
							 | 
						||
| 
								 | 
							
								    "'amount' is rounded to the nearest 0.01. Returns a boolean indicating "
							 | 
						||
| 
								 | 
							
								    "if the call succeeded."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: stop
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Stops the bitcoin server."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								HELP: list-transactions
							 | 
						||
| 
								 | 
							
								{ $values 
							 | 
						||
| 
								 | 
							
								  { "count" "a number" } 
							 | 
						||
| 
								 | 
							
								  { "include-generated" "a boolean" }
							 | 
						||
| 
								 | 
							
								  { "seq" "a sequence" }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								{ $description 
							 | 
						||
| 
								 | 
							
								    "Return's a sequence containing up to 'count' most recent transactions."
							 | 
						||
| 
								 | 
							
								    "This requires a patched bitcoin server so may not work with old or unpatched "
							 | 
						||
| 
								 | 
							
								    "servers."
							 | 
						||
| 
								 | 
							
								} ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 |