Convex

Convex

Transaction 1 / 1
FieldValueNotes
AddressOrigin address of transaction
Account Key
Identicon for 5abb7143b3a48328300f99c5e0e711f829ce4bba8be328a40de2e410b2496d38
0x5abb7143b3a48328...
Ed25519 public key of the signer
Transaction Hash
Identicon for b6bea852e102c6833143bc4be49f1df2f7c196ed9bd10d6765f86ad918fac3c6
0xb6bea852e102c683...
Hash code of the transaction object
TypeInvokeType of transaction. Most common is 'Invoke' for general purpose execution.
Transaction Data{:origin #135,:sequence 47,:command (def tipper (deploy (quote (do (def tip-state (mk-tip-state)) (def state (lookup tip-state state)) (defn ^{:callable true} finalize! [tip] (let [artifact (:artifact tip) tips (call state (deref)) recipient (get-in tips [artifact :recipient]) amount (get-in tips [artifact :amount]) finalized? (get-in tips [artifact :finalized?])] (if (not (and recipient amount)) (fail :STATE "The recipient and the tip amount must be set") (call state (swap! assoc-in [artifact :finalized?] true))))) (defn ^{:callable true} add-artifact [artifact] (if (not artifact) (fail :ARGUMENT "Arguments require an artifact") (call state (swap! update artifact merge {:sender *caller*})))) (defn ^{:callable true} add-recipient [artifact recipient] (when recipient (let [tips (call state (deref)) sender (:sender (get tips artifact))] (cond (not (= *caller* sender)) (fail :TRUST (str *caller* " not authorised to add recipient on behalf of " sender)) (not recipient) (fail :ARGUMENT "recipient field is nil") :else (call state (swap! assoc-in [artifact :recipient] recipient)))))) (defn ^{:callable true} add-amount [artifact amount] (let [tips (call state (deref)) sender (:sender (get tips artifact))] (cond (not (= *caller* sender)) (fail :TRUST (str *caller* " not authorised to add amount on behalf of " sender)) (not (> amount 0)) (fail :FUNDS "No tip offered!") :else (do (accept amount) (call state (swap! assoc-in [artifact :amount] amount)) (return "Thanks for the tip!"))))) (defn ^{:callable true} tip! [tip-map] (let [tips (call state (deref)) artifact (:artifact tip-map) amount (get-in tips [artifact :amount] *offer*) recipient (get-in tips [artifact :recipient] (:recipient tip-map))] (add-artifact artifact) (add-recipient artifact recipient) (add-amount artifiact amount))) (def disabled? false) (def admin *caller*) (defn ^{:callable true} upgrade [code] (if disabled? (fail :STATE "Administrative access is permenantly disabled.") (if (not (= *caller* admin)) (fail :TRUST (str *caller* " is not authorised to administrate on behalf of admin " admin)) (eval code))))))))}CVX representation of the transaction
Storage Size3537Bytes consumed by transaction data
Transaction Result
FieldValueNotes
StatusERRORTransaction failed with error
Error Message"mk-tip-state"Error message from failed transaction
Error Code:UNDECLAREDAccessed an undeclared symbol
Juice Used92350Computational cost in juice units
Fees Paid
            0.001603700
Transaction fees paid in Convex Coins
Stack Trace["In core function: deploy" "In expression: (deploy (do (def tip-state (mk-tip-state)) (def state (lookup tip-state state)) (defn ^{:callable true} finalize! [tip] (let [artifact (:artifact tip) tips (call state (deref)) recipient (get-in tips [artifact :recipient]) amount (get-in tips [artifact :amount]) finalized? (get-in tips [artifact :finalized?])] (if (not (and recipient amount)) (fail :STATE \"The recipient and the tip amount must be set\") (call state (swap! assoc-in [artifact :finalized?] true))))) (defn ^{:callable true} add-artifact [artifact] (if (not artifact) (fail :ARGUMENT \"Arguments require an artifact\") (call state (swap! update artifact merge {:sender *caller*})))) (defn ^{:callable true} add-recipient [artifact recipient] (when recipient (let [tips (call state (deref)) sender (:sender (get tips artifact))] (cond (not (= *caller* sender)) (fail :TRUST (str *caller* \" not authorised to add recipient on behalf of \" sender)) (not recipient) (fail :ARGUMENT \"recipient field is nil\") :else (call state (swap! assoc-in [artifact :recipient] recipient)))))) (defn ^{:callable true} add-amount [artifact amount] (let [tips (call state (deref)) sender (:sender (get tips artifact))] (cond (not (= *caller* sender)) (fail :TRUST (str *caller* \" not authorised to add amount on behalf of \" sender)) (not (> amount 0)) (fail :FUNDS \"No tip offered!\") :else (do (accept amount) (call state (swap! assoc-in [artifact :amount] amount)) (return \"Thanks for the tip!\"))))) (defn ^{:callable true} tip! [tip-map] (let [tips (call state (deref)) artifact (:artifact tip-map) amount (get-in tips [artifact :amount] *offer*) recipient (get-in tips [artifact :recipient] (:recipient tip-map))] (add-artifact artifact) (add-recipient artifact recipient) (add-amount artifiact amount))) (def disabled? false) (def admin *caller*) (defn ^{:callable true} upgrade [code] (if disabled? (fail :STATE \"Administrative access is permenantly disabled.\") (if (not (= *caller* admin)) (fail :TRUST (str *caller* \" is not authorised to administrate on behalf of admin \" admin)) (eval code))))))"]Stack trace for error location
Log Entries (0)

No log entries were generated during transaction execution