Commit Graph
62 Commits
Author SHA1 Message Date
pharpend f479a770c3 jr: multiple keypairs and they have names, one is active 2024-03-19 01:58:39 -06:00
pharpend 5e8d24b793 jr: rebrand jr to gajumaru wallet 2024-03-18 23:38:37 -06:00
pharpend ae646417aa jr: generating new keypair works 2024-03-18 23:32:55 -06:00
pharpend b6aa8fe7cc jr: commented out code to show account balance 2024-03-18 22:58:27 -06:00
pharpend f444835d8f jr: show shortened ak_... string in popup window 2024-03-18 21:51:36 -06:00
pharpend a1d0112337 jr: popup now shows list of keypairs
generate button does not work, that's the next task
2024-03-18 21:44:38 -06:00
pharpend 0e84ddcc3b jr: add build instructions to readme 2024-03-18 19:50:01 -06:00
pharpend d038140182 no longer autogenerate keypair if none exists 2024-03-18 19:38:49 -06:00
pharpend 53cce7598c jr popup: separate modals for keypairs and recover keypair 2024-03-18 19:29:46 -06:00
pharpend 546f990b97 [wip] done genericizing popup (works!)
now moving on to mansplaining
2023-10-23 13:55:53 -06:00
pharpend 602c232061 message sign confirmation works perfectly
Need to check transaction signing. But we're in the home stretch.
2023-10-23 12:02:28 -06:00
pharpend 72c844e34c Merge branch 'pharpend/gen-popup' of github.com:aeternity/Vanillae into pharpend/gen-popup 2023-10-19 12:40:17 -06:00
pharpend 76092fc43d b_lib <-> good/bad popup ipc now solved
this was the big problem that was a huge hiccup.

it is now solved.

The next thing is just getting the buttons to work the way they're expected to

other than that it's all fine.
2023-10-18 22:26:22 -06:00
pharpend 76c83183a4 docs 2023-10-12 01:14:14 -06:00
pharpend e677822f43 [wip] everything is stupid and i hate everyone and everything
the correct thing to do at this point is to factor out "show a yes/no popup
window to user"

the complexity in "open a window and then execute some code in the context of
that window" is mind-boggling

nothing works
2023-10-07 23:14:14 -06:00
pharpend 853be87eeb upgrade manifest v2->v3 2023-10-07 21:42:50 -06:00
pharpend 18be0c53f2 fixed blake issue
turned out that i was using an outdated version of vdk_aecrypt in jr. updated
2023-10-07 15:47:59 -06:00
pharpend 16a4bcebba [wip] somehow tx signature confirmation broke blakejs
it's all just so tiresome
2023-10-02 16:56:12 -06:00
pharpend 7d87fd626f start on confirm sign tx thing 2023-10-02 08:20:45 -06:00
pharpend cc72856aa3 msg confirm sends back error if user rejects tx 2023-10-02 07:51:38 -06:00
pharpend 7afd49661d msg confirm message working, need to figure out how to branch reply 2023-09-13 22:22:33 -06:00
pharpend 0cae93c98a fixed callback issue 2023-09-10 11:42:20 -06:00
pharpend 0f14772302 "confirm message signature" popup not seeing bg message for some reason
further evidence for my belief that this "ask the user about signing things"
feature is unnecessary
2023-09-06 17:20:35 -06:00
pharpend 1cd7c99eaf craig says i need more callbacks 2023-09-04 00:42:47 -06:00
pharpend d38ccbd83e vdk_aecrypt works, jr can post sale on aegora 2023-08-30 18:40:28 -06:00
pharpend 976016c5c7 bump jr awcp dep 2023-08-30 18:19:00 -06:00
pharpend c2e4506f8e make comments more polite 2023-08-25 16:52:40 -06:00
pharpend 457be05cbf jr can now post a sale on aegora testnet! 2023-08-14 22:58:40 -06:00
pharpend 4ce8ada26e [wip] tried using tx bytes rather than tx hash, still doesn't work 2023-08-14 12:31:06 -06:00
pharpend b717e2373b [wip] added networkid prefix, still doesn't work 2023-08-14 12:29:19 -06:00
pharpend 29087e0ff0 [wip] trying to get tx sign to work... am now signing the hash instead of the tx data 2023-08-14 12:07:49 -06:00
pharpend b055d7d137 [wip] ironing out bugs in tx signing procedure
this time learned
- need to have tag and version for the return data
- i think i need to sign the hash of the transaction rather than the transaction
2023-08-14 11:57:20 -06:00
pharpend 30f76048c0 [wip] jex can 'sign' a tx but it's not working for some reason 2023-08-14 11:05:49 -06:00
pharpend e05dd579c6 jr can now make an account on aegora 2023-08-13 14:21:54 -06:00
pharpend 29defebc2e [wip] adding message signing functionality
Problem is this:

    Uncaught ReferenceError: require is not defined
        <anonymous> moz-extension://b4685fc7-232c-44d9-b653-f51b7c7ea868/dist/jex_include/local-vdk_aecrypt-0.1.0/dist/jex_include/local-blakejs-1.2.1/dist/index.js:1
    index.js:1:13

The issue is that blakejs is written for node and needs to be modified to work
in a browser.

Next task is doing that, but did a ton of work so taking a break
2023-08-12 18:18:03 -06:00
pharpend 4f73ca4022 [wip] notional code for message signing done 2023-08-12 15:53:21 -06:00
pharpend dac533f136 make comment language more polite 2023-08-12 14:55:38 -06:00
pharpend b627689133 [wip] jr can now tell the page script about current pubkey 2023-08-12 13:17:41 -06:00
pharpend 315ae9c315 [wip] i forgot to write the s2i function, but progress on showing address to user 2023-08-11 17:40:23 -06:00
pharpend 60f27b4952 [wip] jr addressing: fixed type errors; next thing to do is write serializer lib 2023-08-11 12:39:12 -06:00
pharpend a73da72382 [wip] jr: working on presenting address to user 2023-08-11 12:15:56 -06:00
pharpend 1e80a53051 idiomatically refactoring jr controller
I am trying to copy the Erlang idiom of "calling" another process through a
function call interface. That is, suppose I have two named processes
corresponding to modules `caller` and `callee`

caller.erl:

    foo() ->
        Result = callee:get_some_data(),
        do_something_with(Result).

callee.erl:
    get_some_data() ->
        gen_server:call(?MODULE, get_some_data)

    handle_call(get_some_data, CalleeState) ->
        {Result, NewState} = do_get_some_data(CalleeState),
        {reply, Result, NewState}.

I'm trying to replicate that in JS, because it's definitely the most pleasant
idiom for having different processes "talk" to each other.  This also allows
the callee process to define an API that black-boxes away the internal
messaging structure, thus giving the developer the flexibility to change that
internal messaging structure without breaking the calling code.
2023-08-01 15:15:15 -06:00
pharpend b3eba95520 starting jr controller api idiom 2023-07-30 22:58:55 -06:00
pharpend c54c57b37a shift script include URLs to be relative 2023-07-26 17:24:49 -06:00
pharpend b680336ba4 all this time i thought that it was the browser that was mentally disabled it turned out the mental disability was inside me all along
======================
NACL mental disability
======================

NACL is mentally disabled and can't be loaded as an ES6 module. That is, it can't be
"imported" using

```js
import * as nacl from './path/to/nacl.js';
```

Instead you have to include it in a page. So we have a page called
`background.html`.

I naively tried this

```html
<script src="dist/jex_include/local-nacl-1.0.3/nacl.js"></script>
```

That of course didn't work because we live in hell.

I initially thought the problem was an invalid hash. No. Notes as I figure it
out:

    Trying to figure out why TweetNaCl isn't loading

    ok so the problem is not an invalid hash, it's something specific
    to nacl

    to have an inline script, its hash must be specified in
    manifest.json

    example (integrity key is not necessary, it is there purely for
    comment purposes)

         beginning of line
        V
        |        <script integrity="sha256-8T3dvQxHPNQvgxzCemw3KGUCM5RhknpCQF6pCcTdFTw=">console.log('bg-test-inline.js line 1!');
        |</script>

    newline is there for hash purposes

    this works if and only if
    'sha256-8T3dvQxHPNQvgxzCemw3KGUCM5RhknpCQF6pCcTdFTw=' is included
    in the manifest.json

    example (top level key):

         "content_security_policy" : "script-src 'self' 'sha256-8T3dvQxHPNQvgxzCemw3KGUCM5RhknpCQF6pCcTdFTw='; object-src 'self'",

    Absent that explicit allow, I get this error from Firefox:

        Content Security Policy: The page’s settings blocked the loading of a resource at inline (“script-src”).

    Refs:
        1. https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_security_policy
        2. https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy#inline_javascript

    If I include the same script as a file,

        <script src="bg-test-inline.js"></script>

    this works irrespective of if I specify it as allowable in the manifest

    nacl is just refusing to load

        Loading failed for the <script> with source “moz-extension://eafd6a74-b75b-4312-9a34-8087b68395e7/dist/jex_include/local-nacl-1.0.3/nacl.js”.

    I initially thought it was a hash problem, but it is not

    TweetNaCL doesn't work as an ES6 module, it works by destructively
    updating the window namespace.  This I think was necessary before
    ES6, and that behavior is retained either because of laziness or
    because of backward compatibility reasons.

    hmm

    so this just plainly doesn't work and i cannot figure out why

        <script src="dist/jex_include/local-nacl-1.0.3/nacl.js"></script>

I think it works if I do it in the popup window instead. Let's try

oh no

no

oh my god

i am so stupid

the problem was that i typed the url wrong

the package is "tweetnacl" not "nacl", and i also need /dist/ too

    <script src="dist/jex_include/local-tweetnacl-1.0.3/dist/nacl.js"></script>

that works

all this time i thought that it was the browser that was mentally disabled

it turned out the mental disability was inside me all along

alright well I discovered a potential future pitfall at least
2023-07-26 17:21:17 -06:00
pharpend ff8670d592 committing because switching branches 2023-07-18 14:48:23 -06:00
pharpend 19203cc003 have page script talking to controller 2023-07-14 20:53:35 -06:00
pharpend 984f562579 wrote out architecture rant in readme 2023-07-12 17:17:03 -06:00
pharpend 373d43dd8c committing because commitment is good 2023-07-09 21:01:54 -06:00
pharpend b76397b723 jr code cleanups 2023-07-09 15:03:53 -06:00