I just downloaded the rust github to check it out, I notice there was a sub directory called cardano-c where some kind of magic has happened that creates a library of rust functions such that they can be called as C code functions.
This is VERY useful, because many many languages can call C code, including Java (android), Swift (iOS), Lua, Perl, etc, etc.
However I noticed that only wallet functions functions (bip39, create/delete wallet, create/delete account, generate address) were there. Is there a reason other things such as creating and signing a transaction are not there? Are there plans to add these?
On a slight tangent - as I was reading the code, I realised I don’t know what an “account” is. The code has a wallet being created from a bip39, then from this wallet you can create an account, and from that account you can generate an address. In my Daedalus, I have a wallet (that is linked to my bip39 12 words) and I have addresses - but I don’t see an “account” and I don’t think I ever have - what is this?
Can’t see it on the roadmap now, but I clearly remember it being announced that at some stage it will be possible to setup more than one account within a single wallet. I believe this is purely for user convenience, to allocate funds for different purposes and so forth, so it would take effect only within Daedalus and, like the wallet name and spending password, would be lost and have to be set up again on restoration. Not absolutely sure though. Also, haven’t heard any mention of it recently.
I believe Wallets are really just a bunch of addresses derived from the root address (the one from the secret words)…
Root address, lets call it A… from this we can derive A1, A2, A3, A4
Now each of these themselves can derive addresses - for example we could derive from A3…
A3-1, A3-2, A3-3, A3-4
At least I think this is how it works…
So I suspect, “accounts” are the addresses on the “top level” - the ones we derived directly from A. And Daedalus ONLY uses one “account” the first derived address A1, i.e. addresses that we see and use are those derived from A1:
A1-1, A1-2, A1-3, etc.
Is this correct?
Does it matter for wallet developers?