diff --git a/docs/README.md b/docs/README.md index 42833e8..aeba990 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,11 +1,197 @@ -# Stellar Snap -adds stellar to metamask, by creating a non-custodial wallet built directly into metamask +# Stellar Snap Documentation +adds Stellar to Metamask, by creating a Stellar wallet that lives in Metamask + +
-## Standard Useage -### connecting +# Quick Start + +
    +
  1. There is NO npm package required!
  2. +
  3. The only thing required is that the users computer has metamask flask
    (just normal metamask after launch)
  4. +
  5. install flask
  6. +
+ + + ## ✨Connect and install: + The wallet_requestSnaps method is used to connect to MetaMask and installs the Stellar Wallet if it's not already installed. This also generates the user's wallet. + ```javascript + + /* //request connection */ + async function connect(){ + const connected = await ethereum.request({ + method: 'wallet_requestSnaps', + params: { + [`npm:stellar-snap`]: {} + }, + }); + } + + ``` + + +
+ + + + ## 🦑Calling Stellar Methods: + After the snap is connected the wallet_invokeSnap method is used to call Stellar Methods +```javascript + + //evoke a stellar method + + const request = { + method: 'wallet_invokeSnap', + params: {snapId:`npm:stellar-snap`, + request:{ + method: `${'Stellar-Method-Name'}` + } + } + } + let address = await ethereum.request(request) + + + // gets the stellar address + address = await ethereum.request({ + method: 'wallet_invokeSnap', + params: {snapId:`npm:stellar-snap`, request:{ + method: `getAddress`, + }} + }) + + ``` + + + + + + ## 📟Calling Stellar Methods With Parameters + + Parameters are nested, parameters inside parameters + + ```javascript + //evoke a stellar method with arguments + let stellarTransactionXDR = endTransaction.build().toXDR(); //transaction from the stellar-js-sdk + const args = { + transaction: String(stellarTransactionXDR), + network:'testnet' + } + const request = { + method: 'wallet_invokeSnap', //constant across all method calls + params:{snapId:'npm:stellar-snap', request:{ //this too + method:`${'signTransaction'}`, + params:args + } + } + } + let SignedTransactionXDR = await ethereum.request(request) + + // example method call with parameters + SignedTransactionXDR = await ethereum.request({ + method: 'wallet_invokeSnap', + params: {snapId:`npm:stellar-snap`, request:{ + method: `signTransaction`, + params:{ + transaction: stellarTransactionXDR + testnet:true + } + + }} + }) + ``` + + + + + +Specifying Network: By default, all methods are treated as mainnet (the main network where actual transactions take place). However, you can specify the testnet (a network used for testing) by passing testnet: true in the parameters. + +Current Methods: The README then provides examples of how to use various methods provided by the stellar-snap plugin. These methods include getAddress (returns the account's address), getAccountInfo (returns information related to the account), getBalance (returns the XLM balance of a wallet), transfer (transfers XLM from one account to another), fund (funds the user's wallet on the testnet), and signTransaction (signs an arbitrary transaction). + +Soroban: The README also provides an example of how to use the Soroban feature, which allows you to sign a SorobanCall. This involves creating a SorobanClient, getting the account, creating a contract, preparing a transaction, and then signing the transaction. + +# Stellar Metamask Methods + + + +## ⚠️ The Docs past this point are incomplete ⚠️ +you can always ask a question in the +[discord](https://discord.gg/ETQk4UcYyc) + + + + +## connecting + +### calling this method will connect to metamask and automatically install the snap if it isn't already installed. -calling this method will connect to metamask and automatically install the snap if it isn't already installed. As well as generate the users wallet. Calling this method or any subsequent methods does not requiring installing anything to a webpage, provided the the user has metamask (flask) installed. diff --git a/docs/index.html b/docs/index.html index 04dd4a7..b998b5c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -13,10 +13,41 @@ + diff --git a/site/src/Header.svelte b/site/src/Header.svelte index 9b8a4e7..bf68541 100644 --- a/site/src/Header.svelte +++ b/site/src/Header.svelte @@ -1,6 +1,7 @@ - @@ -35,10 +39,10 @@ - Demo - Docs - FAQ - Wallet + + Docs + setPage('something-here-soon')}>FAQ + setPage('something-here-soon')}>Wallet diff --git a/site/src/SomethingHereSoon.svelte b/site/src/SomethingHereSoon.svelte new file mode 100644 index 0000000..8e45efa --- /dev/null +++ b/site/src/SomethingHereSoon.svelte @@ -0,0 +1,5 @@ + + +

Something Here Soon

\ No newline at end of file diff --git a/site_dist/assets/index-03597ce1.js b/site_dist/assets/index-c10310fa.js similarity index 99% rename from site_dist/assets/index-03597ce1.js rename to site_dist/assets/index-c10310fa.js index b6e983e..fb034e4 100644 --- a/site_dist/assets/index-03597ce1.js +++ b/site_dist/assets/index-c10310fa.js @@ -312,7 +312,7 @@ Use Chrome, Firefox or Internet Explorer 11`)}},4281:f=>{var a={};function i(s,o }) .then((result)=>alert(JSON.stringify(result))) - `}return[r]}class WalletPage extends SvelteComponent{constructor(r){super(),init(this,r,instance$3,create_fragment$3,safe_not_equal,{})}}function create_default_slot_8$1(l){let r;return{c(){r=element("div"),r.innerHTML='

on Metamask

',set_style(r,"display","flex"),set_style(r,"flex-direction","column"),set_style(r,"justify-content","left")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_default_slot_7$1(l){let r;return{c(){r=text("Demo")},m(g,p){insert(g,r,p)},d(g){g&&detach(r)}}}function create_default_slot_6$1(l){let r;return{c(){r=text("Docs")},m(g,p){insert(g,r,p)},d(g){g&&detach(r)}}}function create_default_slot_5$1(l){let r;return{c(){r=text("FAQ")},m(g,p){insert(g,r,p)},d(g){g&&detach(r)}}}function create_default_slot_4$1(l){let r;return{c(){r=text("Wallet")},m(g,p){insert(g,r,p)},d(g){g&&detach(r)}}}function create_default_slot_3$1(l){let r,g,p,v,f,a,i,t;return r=new NavLi({props:{active:!0,$$slots:{default:[create_default_slot_7$1]},$$scope:{ctx:l}}}),p=new NavLi({props:{$$slots:{default:[create_default_slot_6$1]},$$scope:{ctx:l}}}),f=new NavLi({props:{$$slots:{default:[create_default_slot_5$1]},$$scope:{ctx:l}}}),i=new NavLi({props:{$$slots:{default:[create_default_slot_4$1]},$$scope:{ctx:l}}}),{c(){create_component(r.$$.fragment),g=space(),create_component(p.$$.fragment),v=space(),create_component(f.$$.fragment),a=space(),create_component(i.$$.fragment)},m(s,o){mount_component(r,s,o),insert(s,g,o),mount_component(p,s,o),insert(s,v,o),mount_component(f,s,o),insert(s,a,o),mount_component(i,s,o),t=!0},p(s,o){const e={};o&4&&(e.$$scope={dirty:o,ctx:s}),r.$set(e);const c={};o&4&&(c.$$scope={dirty:o,ctx:s}),p.$set(c);const u={};o&4&&(u.$$scope={dirty:o,ctx:s}),f.$set(u);const h={};o&4&&(h.$$scope={dirty:o,ctx:s}),i.$set(h)},i(s){t||(transition_in(r.$$.fragment,s),transition_in(p.$$.fragment,s),transition_in(f.$$.fragment,s),transition_in(i.$$.fragment,s),t=!0)},o(s){transition_out(r.$$.fragment,s),transition_out(p.$$.fragment,s),transition_out(f.$$.fragment,s),transition_out(i.$$.fragment,s),t=!1},d(s){s&&(detach(g),detach(v),detach(a)),destroy_component(r,s),destroy_component(p,s),destroy_component(f,s),destroy_component(i,s)}}}function create_default_slot_2$1(l){let r,g;return r=new ConnectButton({props:{callback:l[0]}}),{c(){create_component(r.$$.fragment)},m(p,v){mount_component(r,p,v),g=!0},p:noop,i(p){g||(transition_in(r.$$.fragment,p),g=!0)},o(p){transition_out(r.$$.fragment,p),g=!1},d(p){destroy_component(r,p)}}}function create_default_slot_1$1(l){let r,g;return r=new NavLi({props:{$$slots:{default:[create_default_slot_2$1]},$$scope:{ctx:l}}}),{c(){create_component(r.$$.fragment)},m(p,v){mount_component(r,p,v),g=!0},p(p,v){const f={};v&4&&(f.$$scope={dirty:v,ctx:p}),r.$set(f)},i(p){g||(transition_in(r.$$.fragment,p),g=!0)},o(p){transition_out(r.$$.fragment,p),g=!1},d(p){destroy_component(r,p)}}}function create_default_slot$1(l){let r,g,p,v,f,a,i,t;return r=new NavBrand({props:{href:"/",$$slots:{default:[create_default_slot_8$1]},$$scope:{ctx:l}}}),p=new NavHamburger({}),f=new NavUl({props:{$$slots:{default:[create_default_slot_3$1]},$$scope:{ctx:l}}}),i=new NavUl({props:{$$slots:{default:[create_default_slot_1$1]},$$scope:{ctx:l}}}),{c(){create_component(r.$$.fragment),g=space(),create_component(p.$$.fragment),v=space(),create_component(f.$$.fragment),a=space(),create_component(i.$$.fragment)},m(s,o){mount_component(r,s,o),insert(s,g,o),mount_component(p,s,o),insert(s,v,o),mount_component(f,s,o),insert(s,a,o),mount_component(i,s,o),t=!0},p(s,o){const e={};o&4&&(e.$$scope={dirty:o,ctx:s}),r.$set(e);const c={};o&4&&(c.$$scope={dirty:o,ctx:s}),f.$set(c);const u={};o&4&&(u.$$scope={dirty:o,ctx:s}),i.$set(u)},i(s){t||(transition_in(r.$$.fragment,s),transition_in(p.$$.fragment,s),transition_in(f.$$.fragment,s),transition_in(i.$$.fragment,s),t=!0)},o(s){transition_out(r.$$.fragment,s),transition_out(p.$$.fragment,s),transition_out(f.$$.fragment,s),transition_out(i.$$.fragment,s),t=!1},d(s){s&&(detach(g),detach(v),detach(a)),destroy_component(r,s),destroy_component(p,s),destroy_component(f,s),destroy_component(i,s)}}}function create_fragment$2(l){let r,g;return r=new Navbar({props:{rounded:!0,$$slots:{default:[create_default_slot$1]},$$scope:{ctx:l}}}),{c(){create_component(r.$$.fragment)},m(p,v){mount_component(r,p,v),g=!0},p(p,[v]){const f={};v&4&&(f.$$scope={dirty:v,ctx:p}),r.$set(f)},i(p){g||(transition_in(r.$$.fragment,p),g=!0)},o(p){transition_out(r.$$.fragment,p),g=!1},d(p){destroy_component(r,p)}}}function instance$2(l,r,g){let{loading:p=!1}=r;async function v(){g(1,p=!0);try{console.log("in here");const f=await window.ethereum.request({method:"wallet_invokeSnap",params:{snapId,request:{method:"fund"}}});console.log(f)}catch{}g(1,p=!1)}return l.$$set=f=>{"loading"in f&&g(1,p=f.loading)},[v,p]}class Header extends SvelteComponent{constructor(r){super(),init(this,r,instance$2,create_fragment$2,safe_not_equal,{loading:1})}}const Demo_svelte_svelte_type_style_lang="";function create_if_block_1(l){let r,g,p,v,f;return g=new Chasing({props:{color:"#6366f1"}}),{c(){r=element("div"),create_component(g.$$.fragment),p=space(),v=element("p"),v.textContent="Funding Your testnet and Futurenet Accounts. Please Wait.",set_style(v,"color","white background-color:black"),attr(r,"class","flex")},m(a,i){insert(a,r,i),mount_component(g,r,null),append(r,p),append(r,v),f=!0},i(a){f||(transition_in(g.$$.fragment,a),f=!0)},o(a){transition_out(g.$$.fragment,a),f=!1},d(a){a&&detach(r),destroy_component(g)}}}function create_else_block(l){let r,g,p,v,f,a,i,t,s,o,e,c;return t=new ConnectButton({}),{c(){r=element("section"),g=element("div"),p=element("h1"),p.textContent="Unlock The Power of Stellar with Metamask",v=space(),f=element("p"),f.textContent="Unlock Stellar to 30 Million Metamask Users",a=space(),i=element("div"),create_component(t.$$.fragment),s=space(),o=element("a"),o.textContent="Learn more",attr(p,"class","mb-4 px-10 text-4xl font-extrabold tracking-tight leading-none text-gray-900 md:text-5xl lg:text-6xl dark:text-white"),set_style(f,"text-align","left"),set_style(f,"padding-right","40%"),attr(f,"class","mb-8 text-lg font-normal text-gray-500 lg:text-xl sm:px-10 lg:px-10 dark:text-gray-400"),attr(o,"href","https://www.youtube.com/watch?v=-VenhahQ5zo"),attr(o,"target","_blank"),attr(o,"class","inline-flex justify-center items-center py-3 px-5 text-base font-medium text-center text-gray-900 rounded-lg border border-gray-300 hover:bg-gray-100 focus:ring-4 focus:ring-gray-100 dark:text-white dark:border-gray-700 dark:hover:bg-gray-700 dark:focus:ring-gray-800"),attr(i,"class","flex flex-col space-y-4 sm:flex-row sm:justify-center sm:space-y-0 sm:space-x-4"),attr(g,"class","py-8 px-10 mx-auto max-w-screen-xl text-left lg:py-16"),attr(r,"class","bg-no-repeat bg-[url('https://chaindebrief.com/wp-content/uploads/2021/08/Metamask-logo.png')] bg-blend-multiply")},m(u,h){insert(u,r,h),append(r,g),append(g,p),append(g,v),append(g,f),append(g,a),append(g,i),mount_component(t,i,null),append(i,s),append(i,o),c=!0},p:noop,i(u){c||(transition_in(t.$$.fragment,u),u&&add_render_callback(()=>{c&&(e||(e=create_bidirectional_transition(r,fade,{delay:0,duration:300},!0)),e.run(1))}),c=!0)},o(u){transition_out(t.$$.fragment,u),u&&(e||(e=create_bidirectional_transition(r,fade,{delay:0,duration:300},!1)),e.run(0)),c=!1},d(u){u&&detach(r),destroy_component(t),u&&e&&e.end()}}}function create_if_block(l){let r,g,p,v,f,a,i,t,s,o;return g=new Wallet({}),v=new Toggle({props:{checked:!0,$$slots:{default:[create_default_slot_8]},$$scope:{ctx:l}}}),v.$on("change",l[6]),t=new Tabs({props:{defaultClass:"flex",$$slots:{default:[create_default_slot]},$$scope:{ctx:l}}}),{c(){r=element("div"),create_component(g.$$.fragment),p=space(),create_component(v.$$.fragment),f=space(),a=element("br"),i=space(),create_component(t.$$.fragment)},m(e,c){insert(e,r,c),mount_component(g,r,null),append(r,p),mount_component(v,r,null),append(r,f),append(r,a),append(r,i),mount_component(t,r,null),o=!0},p(e,c){const u={};c&256&&(u.$$scope={dirty:c,ctx:e}),v.$set(u);const h={};c&278&&(h.$$scope={dirty:c,ctx:e}),t.$set(h)},i(e){o||(transition_in(g.$$.fragment,e),transition_in(v.$$.fragment,e),transition_in(t.$$.fragment,e),e&&add_render_callback(()=>{o&&(s||(s=create_bidirectional_transition(r,fade,{delay:0,duration:300},!0)),s.run(1))}),o=!0)},o(e){transition_out(g.$$.fragment,e),transition_out(v.$$.fragment,e),transition_out(t.$$.fragment,e),e&&(s||(s=create_bidirectional_transition(r,fade,{delay:0,duration:300},!1)),s.run(0)),o=!1},d(e){e&&detach(r),destroy_component(g),destroy_component(v),destroy_component(t),e&&s&&s.end()}}}function create_default_slot_8(l){let r;return{c(){r=text("Testnet")},m(g,p){insert(g,r,p)},d(g){g&&detach(r)}}}function create_title_slot_16(l){let r;return{c(){r=element("p"),r.textContent="Get Address of Wallet",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_15(l){let r;return{c(){r=element("p"),r.textContent="display the address of the Wallet",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_14(l){let r;return{c(){r=element("p"),r.textContent="Get Balance of Wallet",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_13(l){let r;return{c(){r=element("p"),r.textContent="Get Account Info",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_12(l){let r;return{c(){r=element("p"),r.textContent="Get Account Assets",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_11(l){let r;return{c(){r=element("p"),r.textContent="create federation Account",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_10(l){let r;return{c(){r=element("p"),r.textContent="look up federation address (0xdfnsklf....)",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_9(l){let r;return{c(){r=element("p"),r.textContent="look up federation address (example*metastellar.io)",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_8(l){let r;return{c(){r=element("p"),r.textContent="get the federation name of the wallet",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_default_slot_7(l){let r,g,p,v,f,a,i,t,s,o,e,c,u,h,b,m,k,d,w;return g=new FunctionContainer({props:{code:l[5]("getAddress",{testnet:l[1]}),testnet:l[1],method:"getAddress",$$slots:{title:[create_title_slot_16]},$$scope:{ctx:l}}}),v=new FunctionContainer({props:{code:l[5]("showAddress",{testnet:l[1]}),testnet:l[1],method:"showAddress",$$slots:{title:[create_title_slot_15]},$$scope:{ctx:l}}}),a=new FunctionContainer({props:{code:l[5]("getBalance",{testnet:l[1]}),testnet:l[1],method:"getBalance",$$slots:{title:[create_title_slot_14]},$$scope:{ctx:l}}}),t=new FunctionContainer({props:{code:l[5]("getAccountInfo",{testnet:l[1]}),testnet:l[1],method:"getAccountInfo",$$slots:{title:[create_title_slot_13]},$$scope:{ctx:l}}}),o=new FunctionContainer({props:{code:l[5]("getAssets",{testnet:l[1]}),testnet:l[1],method:"getAssets",$$slots:{title:[create_title_slot_12]},$$scope:{ctx:l}}}),c=new FunctionContainer({props:{method:"createFederationAccount",code:l[5]("createFederationAccount",{}),params:{},$$slots:{title:[create_title_slot_11]},$$scope:{ctx:l}}}),h=new FunctionContainer({props:{method:"lookUpFedAccountByAddress",code:l[5]("lookUpFedAccountByAddress",{address:"string"}),params:{address:"string:"},$$slots:{title:[create_title_slot_10]},$$scope:{ctx:l}}}),m=new FunctionContainer({props:{method:"lookUpFedAccountByName",code:l[5]("lookUpFedAccountByName",{url:"string"}),params:{url:"string:"},$$slots:{title:[create_title_slot_9]},$$scope:{ctx:l}}}),d=new FunctionContainer({props:{method:"getWalletName",code:l[5]("getWalletName",{}),params:{},$$slots:{title:[create_title_slot_8]},$$scope:{ctx:l}}}),{c(){r=element("div"),create_component(g.$$.fragment),p=space(),create_component(v.$$.fragment),f=space(),create_component(a.$$.fragment),i=space(),create_component(t.$$.fragment),s=space(),create_component(o.$$.fragment),e=space(),create_component(c.$$.fragment),u=space(),create_component(h.$$.fragment),b=space(),create_component(m.$$.fragment),k=space(),create_component(d.$$.fragment),attr(r,"class","grid-container svelte-kpde8f")},m(y,_){insert(y,r,_),mount_component(g,r,null),append(r,p),mount_component(v,r,null),append(r,f),mount_component(a,r,null),append(r,i),mount_component(t,r,null),append(r,s),mount_component(o,r,null),append(r,e),mount_component(c,r,null),append(r,u),mount_component(h,r,null),append(r,b),mount_component(m,r,null),append(r,k),mount_component(d,r,null),w=!0},p(y,_){const x={};_&2&&(x.code=y[5]("getAddress",{testnet:y[1]})),_&2&&(x.testnet=y[1]),_&256&&(x.$$scope={dirty:_,ctx:y}),g.$set(x);const E={};_&2&&(E.code=y[5]("showAddress",{testnet:y[1]})),_&2&&(E.testnet=y[1]),_&256&&(E.$$scope={dirty:_,ctx:y}),v.$set(E);const S={};_&2&&(S.code=y[5]("getBalance",{testnet:y[1]})),_&2&&(S.testnet=y[1]),_&256&&(S.$$scope={dirty:_,ctx:y}),a.$set(S);const C={};_&2&&(C.code=y[5]("getAccountInfo",{testnet:y[1]})),_&2&&(C.testnet=y[1]),_&256&&(C.$$scope={dirty:_,ctx:y}),t.$set(C);const T={};_&2&&(T.code=y[5]("getAssets",{testnet:y[1]})),_&2&&(T.testnet=y[1]),_&256&&(T.$$scope={dirty:_,ctx:y}),o.$set(T);const R={};_&256&&(R.$$scope={dirty:_,ctx:y}),c.$set(R);const W={};_&256&&(W.$$scope={dirty:_,ctx:y}),h.$set(W);const j={};_&256&&(j.$$scope={dirty:_,ctx:y}),m.$set(j);const L={};_&256&&(L.$$scope={dirty:_,ctx:y}),d.$set(L)},i(y){w||(transition_in(g.$$.fragment,y),transition_in(v.$$.fragment,y),transition_in(a.$$.fragment,y),transition_in(t.$$.fragment,y),transition_in(o.$$.fragment,y),transition_in(c.$$.fragment,y),transition_in(h.$$.fragment,y),transition_in(m.$$.fragment,y),transition_in(d.$$.fragment,y),w=!0)},o(y){transition_out(g.$$.fragment,y),transition_out(v.$$.fragment,y),transition_out(a.$$.fragment,y),transition_out(t.$$.fragment,y),transition_out(o.$$.fragment,y),transition_out(c.$$.fragment,y),transition_out(h.$$.fragment,y),transition_out(m.$$.fragment,y),transition_out(d.$$.fragment,y),w=!1},d(y){y&&detach(r),destroy_component(g),destroy_component(v),destroy_component(a),destroy_component(t),destroy_component(o),destroy_component(c),destroy_component(h),destroy_component(m),destroy_component(d)}}}function create_title_slot_7(l){let r;return{c(){r=element("span"),r.textContent="Query Stellar",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_default_slot_6(l){let r,g;return r=new WalletPage({}),{c(){create_component(r.$$.fragment)},m(p,v){mount_component(r,p,v),g=!0},i(p){g||(transition_in(r.$$.fragment,p),g=!0)},o(p){transition_out(r.$$.fragment,p),g=!1},d(p){destroy_component(r,p)}}}function create_title_slot_6(l){let r;return{c(){r=element("span"),r.textContent="Wallet Functions",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_5(l){let r;return{c(){r=element("p"),r.textContent="TRANSFER XLM",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_default_slot_5(l){let r;return{c(){r=element("br")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_4(l){let r;return{c(){r=element("p"),r.textContent="Sign Transaction",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_default_slot_4(l){let r,g,p,v,f,a,i;return p=new FunctionContainer({props:{code:l[5]("transfer",{to:"GDPZOWVRHQV2SQ3N47CILKNU4NZQOXYDVXGKKJI32TVWIF7V7364G2QM",amount:"1"}),params:{to:"string:GDPZOWVRHQV2SQ3N47CILKNU4NZQOXYDVXGKKJI32TVWIF7V7364G2QM",amount:"number:0"},testnet:l[1],method:"transfer",$$slots:{title:[create_title_slot_5]},$$scope:{ctx:l}}}),a=new FunctionContainer({props:{method:"signTransaction",code:` + `}return[r]}class WalletPage extends SvelteComponent{constructor(r){super(),init(this,r,instance$3,create_fragment$3,safe_not_equal,{})}}function create_default_slot_8$1(l){let r;return{c(){r=element("div"),r.innerHTML='

on Metamask

',set_style(r,"display","flex"),set_style(r,"flex-direction","column"),set_style(r,"justify-content","left")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_default_slot_7$1(l){let r;return{c(){r=text("Demo")},m(g,p){insert(g,r,p)},d(g){g&&detach(r)}}}function create_default_slot_6$1(l){let r;return{c(){r=text("Docs")},m(g,p){insert(g,r,p)},d(g){g&&detach(r)}}}function create_default_slot_5$1(l){let r;return{c(){r=text("FAQ")},m(g,p){insert(g,r,p)},d(g){g&&detach(r)}}}function create_default_slot_4$1(l){let r;return{c(){r=text("Wallet")},m(g,p){insert(g,r,p)},d(g){g&&detach(r)}}}function create_default_slot_3$1(l){let r,g,p,v,f,a,i,t;return r=new Button({props:{active:!0,$$slots:{default:[create_default_slot_7$1]},$$scope:{ctx:l}}}),p=new NavLi({props:{href:"/docs",$$slots:{default:[create_default_slot_6$1]},$$scope:{ctx:l}}}),f=new NavLi({props:{$$slots:{default:[create_default_slot_5$1]},$$scope:{ctx:l}}}),f.$on("click",l[4]),i=new NavLi({props:{$$slots:{default:[create_default_slot_4$1]},$$scope:{ctx:l}}}),i.$on("click",l[5]),{c(){create_component(r.$$.fragment),g=space(),create_component(p.$$.fragment),v=space(),create_component(f.$$.fragment),a=space(),create_component(i.$$.fragment)},m(s,o){mount_component(r,s,o),insert(s,g,o),mount_component(p,s,o),insert(s,v,o),mount_component(f,s,o),insert(s,a,o),mount_component(i,s,o),t=!0},p(s,o){const e={};o&64&&(e.$$scope={dirty:o,ctx:s}),r.$set(e);const c={};o&64&&(c.$$scope={dirty:o,ctx:s}),p.$set(c);const u={};o&64&&(u.$$scope={dirty:o,ctx:s}),f.$set(u);const h={};o&64&&(h.$$scope={dirty:o,ctx:s}),i.$set(h)},i(s){t||(transition_in(r.$$.fragment,s),transition_in(p.$$.fragment,s),transition_in(f.$$.fragment,s),transition_in(i.$$.fragment,s),t=!0)},o(s){transition_out(r.$$.fragment,s),transition_out(p.$$.fragment,s),transition_out(f.$$.fragment,s),transition_out(i.$$.fragment,s),t=!1},d(s){s&&(detach(g),detach(v),detach(a)),destroy_component(r,s),destroy_component(p,s),destroy_component(f,s),destroy_component(i,s)}}}function create_default_slot_2$1(l){let r,g;return r=new ConnectButton({props:{callback:l[0]}}),{c(){create_component(r.$$.fragment)},m(p,v){mount_component(r,p,v),g=!0},p:noop,i(p){g||(transition_in(r.$$.fragment,p),g=!0)},o(p){transition_out(r.$$.fragment,p),g=!1},d(p){destroy_component(r,p)}}}function create_default_slot_1$1(l){let r,g;return r=new NavLi({props:{$$slots:{default:[create_default_slot_2$1]},$$scope:{ctx:l}}}),{c(){create_component(r.$$.fragment)},m(p,v){mount_component(r,p,v),g=!0},p(p,v){const f={};v&64&&(f.$$scope={dirty:v,ctx:p}),r.$set(f)},i(p){g||(transition_in(r.$$.fragment,p),g=!0)},o(p){transition_out(r.$$.fragment,p),g=!1},d(p){destroy_component(r,p)}}}function create_default_slot$1(l){let r,g,p,v,f,a,i,t;return r=new NavBrand({props:{href:"/",$$slots:{default:[create_default_slot_8$1]},$$scope:{ctx:l}}}),p=new NavHamburger({}),f=new NavUl({props:{$$slots:{default:[create_default_slot_3$1]},$$scope:{ctx:l}}}),i=new NavUl({props:{$$slots:{default:[create_default_slot_1$1]},$$scope:{ctx:l}}}),{c(){create_component(r.$$.fragment),g=space(),create_component(p.$$.fragment),v=space(),create_component(f.$$.fragment),a=space(),create_component(i.$$.fragment)},m(s,o){mount_component(r,s,o),insert(s,g,o),mount_component(p,s,o),insert(s,v,o),mount_component(f,s,o),insert(s,a,o),mount_component(i,s,o),t=!0},p(s,o){const e={};o&64&&(e.$$scope={dirty:o,ctx:s}),r.$set(e);const c={};o&64&&(c.$$scope={dirty:o,ctx:s}),f.$set(c);const u={};o&64&&(u.$$scope={dirty:o,ctx:s}),i.$set(u)},i(s){t||(transition_in(r.$$.fragment,s),transition_in(p.$$.fragment,s),transition_in(f.$$.fragment,s),transition_in(i.$$.fragment,s),t=!0)},o(s){transition_out(r.$$.fragment,s),transition_out(p.$$.fragment,s),transition_out(f.$$.fragment,s),transition_out(i.$$.fragment,s),t=!1},d(s){s&&(detach(g),detach(v),detach(a)),destroy_component(r,s),destroy_component(p,s),destroy_component(f,s),destroy_component(i,s)}}}function create_fragment$2(l){let r,g;return r=new Navbar({props:{rounded:!0,$$slots:{default:[create_default_slot$1]},$$scope:{ctx:l}}}),{c(){create_component(r.$$.fragment)},m(p,v){mount_component(r,p,v),g=!0},p(p,[v]){const f={};v&64&&(f.$$scope={dirty:v,ctx:p}),r.$set(f)},i(p){g||(transition_in(r.$$.fragment,p),g=!0)},o(p){transition_out(r.$$.fragment,p),g=!1},d(p){destroy_component(r,p)}}}function instance$2(l,r,g){let{loading:p=!1}=r,{currentActive:v="Demo"}=r;async function f(){g(2,p=!0);try{console.log("in here");const s=await window.ethereum.request({method:"wallet_invokeSnap",params:{snapId,request:{method:"fund"}}});console.log(s)}catch{}g(2,p=!1)}const a=s=>{g(3,v=s)},i=()=>a("something-here-soon"),t=()=>a("something-here-soon");return l.$$set=s=>{"loading"in s&&g(2,p=s.loading),"currentActive"in s&&g(3,v=s.currentActive)},[f,a,p,v,i,t]}class Header extends SvelteComponent{constructor(r){super(),init(this,r,instance$2,create_fragment$2,safe_not_equal,{loading:2,currentActive:3})}}const Demo_svelte_svelte_type_style_lang="";function create_if_block_1(l){let r,g,p,v,f;return g=new Chasing({props:{color:"#6366f1"}}),{c(){r=element("div"),create_component(g.$$.fragment),p=space(),v=element("p"),v.textContent="Funding Your testnet and Futurenet Accounts. Please Wait.",set_style(v,"color","white background-color:black"),attr(r,"class","flex")},m(a,i){insert(a,r,i),mount_component(g,r,null),append(r,p),append(r,v),f=!0},i(a){f||(transition_in(g.$$.fragment,a),f=!0)},o(a){transition_out(g.$$.fragment,a),f=!1},d(a){a&&detach(r),destroy_component(g)}}}function create_else_block(l){let r,g,p,v,f,a,i,t,s,o,e,c;return t=new ConnectButton({}),{c(){r=element("section"),g=element("div"),p=element("h1"),p.textContent="Unlock The Power of Stellar with Metamask",v=space(),f=element("p"),f.textContent="Unlock Stellar to 30 Million Metamask Users",a=space(),i=element("div"),create_component(t.$$.fragment),s=space(),o=element("a"),o.textContent="Learn more",attr(p,"class","mb-4 px-10 text-4xl font-extrabold tracking-tight leading-none text-gray-900 md:text-5xl lg:text-6xl dark:text-white"),set_style(f,"text-align","left"),set_style(f,"padding-right","40%"),attr(f,"class","mb-8 text-lg font-normal text-gray-500 lg:text-xl sm:px-10 lg:px-10 dark:text-gray-400"),attr(o,"href","https://www.youtube.com/watch?v=-VenhahQ5zo"),attr(o,"target","_blank"),attr(o,"class","inline-flex justify-center items-center py-3 px-5 text-base font-medium text-center text-gray-900 rounded-lg border border-gray-300 hover:bg-gray-100 focus:ring-4 focus:ring-gray-100 dark:text-white dark:border-gray-700 dark:hover:bg-gray-700 dark:focus:ring-gray-800"),attr(i,"class","flex flex-col space-y-4 sm:flex-row sm:justify-center sm:space-y-0 sm:space-x-4"),attr(g,"class","py-8 px-10 mx-auto max-w-screen-xl text-left lg:py-16"),attr(r,"class","bg-no-repeat bg-[url('https://chaindebrief.com/wp-content/uploads/2021/08/Metamask-logo.png')] bg-blend-multiply")},m(u,h){insert(u,r,h),append(r,g),append(g,p),append(g,v),append(g,f),append(g,a),append(g,i),mount_component(t,i,null),append(i,s),append(i,o),c=!0},p:noop,i(u){c||(transition_in(t.$$.fragment,u),u&&add_render_callback(()=>{c&&(e||(e=create_bidirectional_transition(r,fade,{delay:0,duration:300},!0)),e.run(1))}),c=!0)},o(u){transition_out(t.$$.fragment,u),u&&(e||(e=create_bidirectional_transition(r,fade,{delay:0,duration:300},!1)),e.run(0)),c=!1},d(u){u&&detach(r),destroy_component(t),u&&e&&e.end()}}}function create_if_block(l){let r,g,p,v,f,a,i,t,s,o;return g=new Wallet({}),v=new Toggle({props:{checked:!0,$$slots:{default:[create_default_slot_8]},$$scope:{ctx:l}}}),v.$on("change",l[6]),t=new Tabs({props:{defaultClass:"flex",$$slots:{default:[create_default_slot]},$$scope:{ctx:l}}}),{c(){r=element("div"),create_component(g.$$.fragment),p=space(),create_component(v.$$.fragment),f=space(),a=element("br"),i=space(),create_component(t.$$.fragment)},m(e,c){insert(e,r,c),mount_component(g,r,null),append(r,p),mount_component(v,r,null),append(r,f),append(r,a),append(r,i),mount_component(t,r,null),o=!0},p(e,c){const u={};c&256&&(u.$$scope={dirty:c,ctx:e}),v.$set(u);const h={};c&278&&(h.$$scope={dirty:c,ctx:e}),t.$set(h)},i(e){o||(transition_in(g.$$.fragment,e),transition_in(v.$$.fragment,e),transition_in(t.$$.fragment,e),e&&add_render_callback(()=>{o&&(s||(s=create_bidirectional_transition(r,fade,{delay:0,duration:300},!0)),s.run(1))}),o=!0)},o(e){transition_out(g.$$.fragment,e),transition_out(v.$$.fragment,e),transition_out(t.$$.fragment,e),e&&(s||(s=create_bidirectional_transition(r,fade,{delay:0,duration:300},!1)),s.run(0)),o=!1},d(e){e&&detach(r),destroy_component(g),destroy_component(v),destroy_component(t),e&&s&&s.end()}}}function create_default_slot_8(l){let r;return{c(){r=text("Testnet")},m(g,p){insert(g,r,p)},d(g){g&&detach(r)}}}function create_title_slot_16(l){let r;return{c(){r=element("p"),r.textContent="Get Address of Wallet",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_15(l){let r;return{c(){r=element("p"),r.textContent="display the address of the Wallet",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_14(l){let r;return{c(){r=element("p"),r.textContent="Get Balance of Wallet",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_13(l){let r;return{c(){r=element("p"),r.textContent="Get Account Info",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_12(l){let r;return{c(){r=element("p"),r.textContent="Get Account Assets",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_11(l){let r;return{c(){r=element("p"),r.textContent="create federation Account",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_10(l){let r;return{c(){r=element("p"),r.textContent="look up federation address (0xdfnsklf....)",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_9(l){let r;return{c(){r=element("p"),r.textContent="look up federation address (example*metastellar.io)",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_8(l){let r;return{c(){r=element("p"),r.textContent="get the federation name of the wallet",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_default_slot_7(l){let r,g,p,v,f,a,i,t,s,o,e,c,u,h,b,m,k,d,w;return g=new FunctionContainer({props:{code:l[5]("getAddress",{testnet:l[1]}),testnet:l[1],method:"getAddress",$$slots:{title:[create_title_slot_16]},$$scope:{ctx:l}}}),v=new FunctionContainer({props:{code:l[5]("showAddress",{testnet:l[1]}),testnet:l[1],method:"showAddress",$$slots:{title:[create_title_slot_15]},$$scope:{ctx:l}}}),a=new FunctionContainer({props:{code:l[5]("getBalance",{testnet:l[1]}),testnet:l[1],method:"getBalance",$$slots:{title:[create_title_slot_14]},$$scope:{ctx:l}}}),t=new FunctionContainer({props:{code:l[5]("getAccountInfo",{testnet:l[1]}),testnet:l[1],method:"getAccountInfo",$$slots:{title:[create_title_slot_13]},$$scope:{ctx:l}}}),o=new FunctionContainer({props:{code:l[5]("getAssets",{testnet:l[1]}),testnet:l[1],method:"getAssets",$$slots:{title:[create_title_slot_12]},$$scope:{ctx:l}}}),c=new FunctionContainer({props:{method:"createFederationAccount",code:l[5]("createFederationAccount",{}),params:{},$$slots:{title:[create_title_slot_11]},$$scope:{ctx:l}}}),h=new FunctionContainer({props:{method:"lookUpFedAccountByAddress",code:l[5]("lookUpFedAccountByAddress",{address:"string"}),params:{address:"string:"},$$slots:{title:[create_title_slot_10]},$$scope:{ctx:l}}}),m=new FunctionContainer({props:{method:"lookUpFedAccountByName",code:l[5]("lookUpFedAccountByName",{url:"string"}),params:{url:"string:"},$$slots:{title:[create_title_slot_9]},$$scope:{ctx:l}}}),d=new FunctionContainer({props:{method:"getWalletName",code:l[5]("getWalletName",{}),params:{},$$slots:{title:[create_title_slot_8]},$$scope:{ctx:l}}}),{c(){r=element("div"),create_component(g.$$.fragment),p=space(),create_component(v.$$.fragment),f=space(),create_component(a.$$.fragment),i=space(),create_component(t.$$.fragment),s=space(),create_component(o.$$.fragment),e=space(),create_component(c.$$.fragment),u=space(),create_component(h.$$.fragment),b=space(),create_component(m.$$.fragment),k=space(),create_component(d.$$.fragment),attr(r,"class","grid-container svelte-kpde8f")},m(y,_){insert(y,r,_),mount_component(g,r,null),append(r,p),mount_component(v,r,null),append(r,f),mount_component(a,r,null),append(r,i),mount_component(t,r,null),append(r,s),mount_component(o,r,null),append(r,e),mount_component(c,r,null),append(r,u),mount_component(h,r,null),append(r,b),mount_component(m,r,null),append(r,k),mount_component(d,r,null),w=!0},p(y,_){const x={};_&2&&(x.code=y[5]("getAddress",{testnet:y[1]})),_&2&&(x.testnet=y[1]),_&256&&(x.$$scope={dirty:_,ctx:y}),g.$set(x);const E={};_&2&&(E.code=y[5]("showAddress",{testnet:y[1]})),_&2&&(E.testnet=y[1]),_&256&&(E.$$scope={dirty:_,ctx:y}),v.$set(E);const S={};_&2&&(S.code=y[5]("getBalance",{testnet:y[1]})),_&2&&(S.testnet=y[1]),_&256&&(S.$$scope={dirty:_,ctx:y}),a.$set(S);const C={};_&2&&(C.code=y[5]("getAccountInfo",{testnet:y[1]})),_&2&&(C.testnet=y[1]),_&256&&(C.$$scope={dirty:_,ctx:y}),t.$set(C);const T={};_&2&&(T.code=y[5]("getAssets",{testnet:y[1]})),_&2&&(T.testnet=y[1]),_&256&&(T.$$scope={dirty:_,ctx:y}),o.$set(T);const R={};_&256&&(R.$$scope={dirty:_,ctx:y}),c.$set(R);const W={};_&256&&(W.$$scope={dirty:_,ctx:y}),h.$set(W);const j={};_&256&&(j.$$scope={dirty:_,ctx:y}),m.$set(j);const L={};_&256&&(L.$$scope={dirty:_,ctx:y}),d.$set(L)},i(y){w||(transition_in(g.$$.fragment,y),transition_in(v.$$.fragment,y),transition_in(a.$$.fragment,y),transition_in(t.$$.fragment,y),transition_in(o.$$.fragment,y),transition_in(c.$$.fragment,y),transition_in(h.$$.fragment,y),transition_in(m.$$.fragment,y),transition_in(d.$$.fragment,y),w=!0)},o(y){transition_out(g.$$.fragment,y),transition_out(v.$$.fragment,y),transition_out(a.$$.fragment,y),transition_out(t.$$.fragment,y),transition_out(o.$$.fragment,y),transition_out(c.$$.fragment,y),transition_out(h.$$.fragment,y),transition_out(m.$$.fragment,y),transition_out(d.$$.fragment,y),w=!1},d(y){y&&detach(r),destroy_component(g),destroy_component(v),destroy_component(a),destroy_component(t),destroy_component(o),destroy_component(c),destroy_component(h),destroy_component(m),destroy_component(d)}}}function create_title_slot_7(l){let r;return{c(){r=element("span"),r.textContent="Query Stellar",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_default_slot_6(l){let r,g;return r=new WalletPage({}),{c(){create_component(r.$$.fragment)},m(p,v){mount_component(r,p,v),g=!0},i(p){g||(transition_in(r.$$.fragment,p),g=!0)},o(p){transition_out(r.$$.fragment,p),g=!1},d(p){destroy_component(r,p)}}}function create_title_slot_6(l){let r;return{c(){r=element("span"),r.textContent="Wallet Functions",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_5(l){let r;return{c(){r=element("p"),r.textContent="TRANSFER XLM",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_default_slot_5(l){let r;return{c(){r=element("br")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_title_slot_4(l){let r;return{c(){r=element("p"),r.textContent="Sign Transaction",attr(r,"slot","title")},m(g,p){insert(g,r,p)},p:noop,d(g){g&&detach(r)}}}function create_default_slot_4(l){let r,g,p,v,f,a,i;return p=new FunctionContainer({props:{code:l[5]("transfer",{to:"GDPZOWVRHQV2SQ3N47CILKNU4NZQOXYDVXGKKJI32TVWIF7V7364G2QM",amount:"1"}),params:{to:"string:GDPZOWVRHQV2SQ3N47CILKNU4NZQOXYDVXGKKJI32TVWIF7V7364G2QM",amount:"number:0"},testnet:l[1],method:"transfer",$$slots:{title:[create_title_slot_5]},$$scope:{ctx:l}}}),a=new FunctionContainer({props:{method:"signTransaction",code:` async function signTransaction(){ const server = new StellarSdk.Server('https://horizon-testnet.stellar.org'); diff --git a/site_dist/docs/README.md b/site_dist/docs/README.md index 42833e8..aeba990 100644 --- a/site_dist/docs/README.md +++ b/site_dist/docs/README.md @@ -1,11 +1,197 @@ -# Stellar Snap -adds stellar to metamask, by creating a non-custodial wallet built directly into metamask +# Stellar Snap Documentation +adds Stellar to Metamask, by creating a Stellar wallet that lives in Metamask + +
-## Standard Useage -### connecting +# Quick Start + +
    +
  1. There is NO npm package required!
  2. +
  3. The only thing required is that the users computer has metamask flask
    (just normal metamask after launch)
  4. +
  5. install flask
  6. +
+ + + ## ✨Connect and install: + The wallet_requestSnaps method is used to connect to MetaMask and installs the Stellar Wallet if it's not already installed. This also generates the user's wallet. + ```javascript + + /* //request connection */ + async function connect(){ + const connected = await ethereum.request({ + method: 'wallet_requestSnaps', + params: { + [`npm:stellar-snap`]: {} + }, + }); + } + + ``` + + +
+ + + + ## 🦑Calling Stellar Methods: + After the snap is connected the wallet_invokeSnap method is used to call Stellar Methods +```javascript + + //evoke a stellar method + + const request = { + method: 'wallet_invokeSnap', + params: {snapId:`npm:stellar-snap`, + request:{ + method: `${'Stellar-Method-Name'}` + } + } + } + let address = await ethereum.request(request) + + + // gets the stellar address + address = await ethereum.request({ + method: 'wallet_invokeSnap', + params: {snapId:`npm:stellar-snap`, request:{ + method: `getAddress`, + }} + }) + + ``` + + + + + + ## 📟Calling Stellar Methods With Parameters + + Parameters are nested, parameters inside parameters + + ```javascript + //evoke a stellar method with arguments + let stellarTransactionXDR = endTransaction.build().toXDR(); //transaction from the stellar-js-sdk + const args = { + transaction: String(stellarTransactionXDR), + network:'testnet' + } + const request = { + method: 'wallet_invokeSnap', //constant across all method calls + params:{snapId:'npm:stellar-snap', request:{ //this too + method:`${'signTransaction'}`, + params:args + } + } + } + let SignedTransactionXDR = await ethereum.request(request) + + // example method call with parameters + SignedTransactionXDR = await ethereum.request({ + method: 'wallet_invokeSnap', + params: {snapId:`npm:stellar-snap`, request:{ + method: `signTransaction`, + params:{ + transaction: stellarTransactionXDR + testnet:true + } + + }} + }) + ``` + + + + + +Specifying Network: By default, all methods are treated as mainnet (the main network where actual transactions take place). However, you can specify the testnet (a network used for testing) by passing testnet: true in the parameters. + +Current Methods: The README then provides examples of how to use various methods provided by the stellar-snap plugin. These methods include getAddress (returns the account's address), getAccountInfo (returns information related to the account), getBalance (returns the XLM balance of a wallet), transfer (transfers XLM from one account to another), fund (funds the user's wallet on the testnet), and signTransaction (signs an arbitrary transaction). + +Soroban: The README also provides an example of how to use the Soroban feature, which allows you to sign a SorobanCall. This involves creating a SorobanClient, getting the account, creating a contract, preparing a transaction, and then signing the transaction. + +# Stellar Metamask Methods + + + +## ⚠️ The Docs past this point are incomplete ⚠️ +you can always ask a question in the +[discord](https://discord.gg/ETQk4UcYyc) + + + + +## connecting + +### calling this method will connect to metamask and automatically install the snap if it isn't already installed. -calling this method will connect to metamask and automatically install the snap if it isn't already installed. As well as generate the users wallet. Calling this method or any subsequent methods does not requiring installing anything to a webpage, provided the the user has metamask (flask) installed. diff --git a/site_dist/docs/index.html b/site_dist/docs/index.html index 04dd4a7..b998b5c 100644 --- a/site_dist/docs/index.html +++ b/site_dist/docs/index.html @@ -13,10 +13,41 @@ + diff --git a/site_dist/index.html b/site_dist/index.html index 5188d3b..756e6b9 100644 --- a/site_dist/index.html +++ b/site_dist/index.html @@ -13,7 +13,7 @@ var Buffer = buffer.Buffer Metamask Snap - +