Skip to content
New issue

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

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

Already on GitHub? Sign in 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")

@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.

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

Successfully merging a pull request may close this issue.

7 participants