This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(use-package (mapcan 'ql:quickload '(:drakma :cl-json :local-time))) | |
(defun fetch-bet-json (id) | |
(http-request (format () "http://bitbet.us/bet/~D/?json" id))) | |
(defun parse-json-str (str) (with-input-from-string (in str) (decode-json in))) | |
(defun process-bet-data (data) | |
(loop for bet in (cdr (assoc :bets data)) | |
for side = (cdr (assoc :side bet)) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
In the protocol all parties are assumed to have private communications channels. | |
Phase 0. Sets up the escrows and their timeout refunds. | |
Phase 1. Makes it so that if Bob gets paid there is no way for Alice to fail to get paid. | |
Phase 2. Just releases the escrows directly because everyone is happy that cheating isn't possible. | |
Alice Bob | |
========================================================= | |
0. Compute TX_0: A>2of2{A,B'} | Compute TX_1: B>2of2{B,A'} \ | |
1. Send TX_0 TXID ------------> | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defparameter *minimum* -1d0) | |
(defparameter *maximum* +1d0) | |
(defun random-point () | |
(list (+ *minimum* (random (- *maximum* *minimum*))) | |
(+ *minimum* (random (- *maximum* *minimum*))))) | |
(defun random-line () (loop repeat 2 collect (random-point))) | |
(defun dot-product (a b) (reduce #'+ (mapcar #'* a b))) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defgeneric rehome-class (class new-home) | |
(:method ((class symbol) new-home) | |
(rehome-class (find-class class) (find-package new-home))) | |
(:method ((class class) (new-home package)) | |
(let ((old-home (symbol-package (class-name class))) | |
(symbols `(,(class-name class) | |
,@(mapcar 'sb-mop:slot-definition-name | |
(sb-mop:class-direct-slots class))))) | |
(mapc (lambda (symbol) (unintern symbol old-home)) symbols) | |
(import symbols new-home) |
NewerOlder