Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

transition getting started from ag-solo to smart wallet + RPC #726

Closed
dckc opened this issue Nov 9, 2022 · 10 comments · Fixed by #894
Closed

transition getting started from ag-solo to smart wallet + RPC #726

dckc opened this issue Nov 9, 2022 · 10 comments · Fixed by #894
Assignees

Comments

@dckc
Copy link
Member

dckc commented Nov 9, 2022

docs talk about ag-solo and such,
but production uses a smart wallet architecture

Tangentially related: efforts to make installing the SDK from npm more straightforward:

cc @michaelfig @turadg @samsiegart

@turadg
Copy link
Member

turadg commented Nov 9, 2022

This is great. To get this rendering natively in Github we could massage it into a C4 diagram. E.g.

    C4Context
      title System Context diagram for Internet Banking System
      Enterprise_Boundary(b0, "BankBoundary0") {
        Person(customerA, "Banking Customer A", "A customer of the bank, with personal bank accounts.")
        Person(customerB, "Banking Customer B")
        Person_Ext(customerC, "Banking Customer C", "desc")

        Person(customerD, "Banking Customer D", "A customer of the bank, <br/> with personal bank accounts.")

        System(SystemAA, "Internet Banking System", "Allows customers to view information about their bank accounts, and make payments.")

        Enterprise_Boundary(b1, "BankBoundary") {

          SystemDb_Ext(SystemE, "Mainframe Banking System", "Stores all of the core banking information about customers, accounts, transactions, etc.")

          System_Boundary(b2, "BankBoundary2") {
            System(SystemA, "Banking System A")
            System(SystemB, "Banking System B", "A system of the bank, with personal bank accounts. next line.")
          }

          System_Ext(SystemC, "E-mail system", "The internal Microsoft Exchange e-mail system.")
          SystemDb(SystemD, "Banking System D Database", "A system of the bank, with personal bank accounts.")

          Boundary(b3, "BankBoundary3", "boundary") {
            SystemQueue(SystemF, "Banking System F Queue", "A system of the bank.")
            SystemQueue_Ext(SystemG, "Banking System G Queue", "A system of the bank, with personal bank accounts.")
          }
        }
      }

      BiRel(customerA, SystemAA, "Uses")
      BiRel(SystemAA, SystemE, "Uses")
      Rel(SystemAA, SystemC, "Sends e-mails", "SMTP")
      Rel(SystemC, customerA, "Sends e-mails to")

      UpdateElementStyle(customerA, $fontColor="red", $bgColor="grey", $borderColor="red")
      UpdateRelStyle(customerA, SystemAA, $textColor="blue", $lineColor="blue", $offsetX="5")
      UpdateRelStyle(SystemAA, SystemE, $textColor="blue", $lineColor="blue", $offsetY="-10")
      UpdateRelStyle(SystemAA, SystemC, $textColor="blue", $lineColor="blue", $offsetY="-40", $offsetX="-50")
      UpdateRelStyle(SystemC, customerA, $textColor="red", $lineColor="red", $offsetX="-50", $offsetY="20")

      UpdateLayoutConfig($c4ShapeInRow="3", $c4BoundaryInRow="1")
Loading

@dckc
Copy link
Member Author

dckc commented Nov 9, 2022

Some motivation for accepting the smart wallet limitation to the general distribute objects framework: an ag-solo wallet recovery plan seemed infeasible for a broad user-base. The smart wallet approach meets the market expectation that all you need to do business is your seed phrase.

@dckc
Copy link
Member Author

dckc commented Jan 25, 2023

@anilhelvaci
Copy link

What is the latest state on documenting the smart wallet? Can you point me to some docs if any.

@turadg
Copy link
Member

turadg commented Feb 6, 2023

What is the latest state on documenting the smart wallet? Can you point me to some docs if any.

@anilhelvaci I've linked to some in #748 (comment)

@anilhelvaci
Copy link

@anilhelvaci I've linked to some in #748 (comment)

Thanks 🙏

@dckc dckc self-assigned this Nov 3, 2023
@dckc
Copy link
Member Author

dckc commented Nov 6, 2023

Smart Wallet app development with local-chain, Core Eval web form

In Nov 1 office hours, we demo'd a zero-to-dapp approach:

  1. a dapp such as dapp-join-game to buy some NFTs comes with support for starting a local chain with a yarn start:docker command that uses docker-compose to start a chain with all the facilities from mainnet, based on work in agoric-3-proposals
~/projects/simple-game$ yarn start:docker                                                                                                               
yarn run v1.22.19                                                                                                                                                       
$ docker-compose up -d                                                                                                                                                  
Creating network "simple-game_default" with the default driver                                                                                                          
Creating simple-game_agd_1 ... done                                                                                                                                     
Done in 0.56s.

Having it run in 0.56s like that depends on...

Plus, the first time they do it, the computer will spend a minute or so downloading the image.

  1. The Gov Proposal Builder lets devs drag-and-drop their bundles and their script/permit of their contract, built with a simple yarn build:proposal command.

Upload bundles:

image

Propose CoreEval:

image

Bundling their contract still depends on being able to install the Agoric SDK; we're close to being able to do that smoothly from npm (Agoric/agoric-sdk#3857)

@dckc
Copy link
Member Author

dckc commented Nov 6, 2023

notes from trying it out

@kbennett2000 ran into trouble as soon as he tried to yarn install at the top. some sqlite3 build error. Sigh.

He also ran into command not found for docker-compose.

When we switched to my screen...

yarn docker:mint4k didn't work - files have moved around
note: came from list in

The user1 key/address had changed, so I did import-to-keplr thing again. But our devs will have to do that at least once.
Here's hoping not more than once:

By the time I went to submit a CoreEval, my initial 10BLD had been reduced to 7.6 or so, so I had to get more to meet the required 10 BLD deposit.

Having a contract directory inside the UI stuff is awkard:

yarn test didn't work at all...

  • TODO: migrate contract tests
simple-game/contract$ yarn ava
yarn run v1.22.19
warning package.json: No license field
$ /home/connolly/projects/simple-game/contract/node_modules/.bin/ava

  ✘ Couldn’t find any files to test

@dckc dckc changed the title transition from ag-solo to smart wallet + RPC transition getting started from ag-solo to smart wallet + RPC Dec 9, 2023
@dckc dckc assigned kbennett2000 and unassigned dckc Dec 12, 2023
@dckc dckc closed this as completed in #894 Dec 20, 2023
@dckc
Copy link
Member Author

dckc commented Dec 20, 2023

a few thinks to double-check with @sufyaankhan ...

  • title of /getting-started/ page? was "Installing the Agoric SDK"; now "Your First Agoric Dapp". is that right?

@dckc dckc reopened this Dec 20, 2023
@dckc
Copy link
Member Author

dckc commented Dec 20, 2023

well, #894 is deployed. So let's call this done after all.

# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants