Commit Graph
50 Commits
Author SHA1 Message Date
pharpend 180a395092 Merge branch 'master' into pharpend/develop 2023-07-06 11:14:00 -06:00
Craig Everett 3677709c89 v2 -> v3 2023-06-15 20:20:33 +09:00
Spivee 80e80f9f9e Complex AACI type coercion (#3)
* build complex and indirected types into AACI

* break up coerce and coerce_step

coerce_step handles the looping and accumulation logic, whereas coerce
just handles one term, and returns {ok, _} or {error, _}. This way
coerce can become recursive, and even without recursion becomes easier
to read, due to fewer nested tuples.

Pretty insignificant change, but it'll be nice to have something to diff
off of more cleanly.

* coerce some more types

Still haven't covered lists or tuples, but these were enough to cover a
real contract that I want to test properly, once I have a node to test
on.

* process types from all contracts in ACI

This includes the contract itself, which is added as an alias for
`contract`. This way the ACI can describe and use contract interfaces,
and `ct_*` contracts can be passed into vanillae.

* coerce lists and tuples
2023-05-09 20:11:31 +09:00
Craig Everett 21040bf4b8 minor 2023-05-07 12:32:19 +09:00
Craig Everett c8d1c8ae60 Version increase 2023-05-01 13:55:18 +09:00
Craig Everett be23f84037 Merge branch 'packaging' 2023-05-01 13:52:43 +09:00
Craig Everett 5a92682c22 Applicationize Vanillae and fix 'ok' assertion 2023-05-01 13:38:34 +09:00
Spivee e8c0242d19 Fix handle_down error message (#2)
* Fix handle_down error message

It was printing a tuple with `~s`, and also tried to pretty print a fat
call stack more than a hundred columns into the first line, which put
together made for some confusing exception-during-error-handling
messages in the erlang console.

* Switch to unicode formatting in handle_down
2023-05-01 13:37:53 +09:00
pharpend 261846aa7e move vanillae ts over here 2023-04-21 18:30:37 -06:00
Craig Everett 1b4b810936 Add zomp.meta and fix key_block typo 2023-04-21 11:51:09 +09:00
Craig Everett ab812e4285 Add zomp.meta, fix "key_block " typo. 2023-04-21 11:49:14 +09:00
Foo Bar b427dab6aa add some comments explaining the weird signature verification thing 2022-11-30 23:07:46 -07:00
Foo Bar cc13e01cd2 remove vanillae erlang modules that have been moved to utils/vw 2022-11-30 23:01:48 -07:00
Foo Bar bb8d9d32e2 Merge branch 'master' into pharpend/develop 2022-11-30 22:55:49 -07:00
Craig Everett 36ddcfc97f Add signature verification 2022-12-01 13:18:31 +09:00
pharpend 9589adaef8 [wip] various inconsequential changes 2022-11-17 16:01:19 -07:00
Craig Everett d4cb2b0107 Accept general chardata as input 2022-11-09 19:35:30 +09:00
Craig Everett f803e66ed3 Added contract_create/3,8 2022-11-09 19:24:41 +09:00
Craig Everett 446cf1b58c WIP: Contract create is still broken (type problem) 2022-11-09 18:47:44 +09:00
Craig Everett 7b0e6a9988 Adding contract_create, along with some minor fixes and additions 2022-11-09 16:42:25 +09:00
pharpend 045384420e tx humanization in erlang prototype 2022-11-08 13:15:23 -07:00
pharpend 900581bc23 [wip] templating vanillae ts tx deconstruction 2022-11-08 09:21:45 -07:00
pharpend 993ae4261b [wip] code cleanups 2022-11-06 12:24:49 -07:00
pharpend 127be10d03 [wip] code cleanups, making style uniform in vanillae ts 2022-11-06 12:20:45 -07:00
pharpend c21a4c42fe [wip] start work on api deconstructor 2022-10-26 08:52:11 -06:00
pharpend 64f9752ee5 wrote an encoder and it worked on the first try. wtf 2022-10-23 20:19:21 -06:00
pharpend 7751e71982 my ts rlp decoder seems to work
i feel like i would have more confidence in my code if i didn't test it
2022-10-23 06:41:19 -06:00
pharpend 2254c82f77 my erl rlp implementation agrees with ethereum python implementation for 59,638 random cases 2022-10-23 04:55:59 -06:00
pharpend 9701993e8b more python cases 2022-10-23 04:49:03 -06:00
pharpend 27eac056eb Generating tests for RLP Erlang (appears to work!)
Methodology:

- in Erlang, generate random DecodeData that are decentish (hard to generate
  because of arbitrary depth recursive nature)
- in Erlang, check that DecodeData->rlp:encode->rlp:decode is an identity (it
  is!)
- generate tons of encode/decode pairs for Python, make sure they all work
  (they do!)
2022-10-23 04:44:07 -06:00
pharpend ebf82a091c fix comment in b58.py 2022-10-23 04:43:56 -06:00
pharpend 3e86f27063 minor cleanups in rlp.erl 2022-10-23 04:43:35 -06:00
Craig Everett 212c9dbbd8 Fixes 2022-10-22 20:09:00 +09:00
pharpend 427583e530 update notes 2022-10-21 20:37:13 -06:00
pharpend b826080c1b wrote an rlp implementation in erlang that seems to work
my current methodology for doing X

- find library that does X in Python with lots of stars on GitHub
- autogenerate test cases against Python library
- do X in Erlang to work out logic in easier setting
- make sure Erlang implementation works
- do X in TypeScript
- make sure TypeScript implementation works
2022-10-21 20:35:01 -06:00
pharpend c5afe1dd20 forgot to add the actual code 2022-10-21 05:57:09 -06:00
pharpend 3a9cd39046 my base58 encoder/decoder worked the first time and I'm scared 2022-10-21 05:54:08 -06:00
pharpend 9f65987ca2 base58 test generation in python 2022-10-21 05:17:04 -06:00
pharpend aa9b8b7339 [wip] add untested base58 encode in ts 2022-10-21 04:47:55 -06:00
pharpend 0e600f0f05 thinking about base58, fix some comments 2022-10-21 03:14:34 -06:00
pharpend 039d246d84 base64 encode/decode done and tested 2022-10-20 02:00:27 -06:00
pharpend 90d464040d add more cases 2022-10-19 22:01:29 -06:00
pharpend 584ffff507 it turns out that testing your code is a good idea
I found a bug in my base64 implementation

have started implementing a "test system"
2022-10-19 21:47:46 -06:00
pharpend 0f1a181c08 write out the rest of the encode cases 2022-10-19 03:17:49 -06:00
pharpend 0e95fef840 [wip] start making vanillae js library
It compiles but there's some NYI functions

This is going to have all the common functions that we need all over the place

- base64 encode/decode
- base58 encode/decode
- rlp encode/decode
- transaction types
- transaction formation
- reading stuff from the transaction
- safe type
- (maybe) AWCP

This commit contains a refactored version of my prior base64 implementation,
which is more imperativey and less "trying to fit Erlang into TS".
2022-10-19 01:21:41 -06:00
Craig Everett 9b2aff77d3 Change return type of contract_call/N 2022-10-15 00:06:05 +09:00
Craig Everett 5925b6dedb Fix contract call "Amount" type 2022-10-06 20:30:14 +09:00
Craig Everett ec7f254fd4 Make dry-run Great Again 2022-10-06 20:24:11 +09:00
pharpend cbb117b504 Pharpend/develop (#1)
* move stuff in here

* reorganizing because zx needs to feel special

* add base58/base64 explainer draft
2022-10-05 23:30:49 +09:00
pharpend d1b40247be reorganizing because zx needs to feel special 2022-10-05 08:22:45 -06:00