Giter Site home page Giter Site logo

walletconnect / walletconnect-docs Goto Github PK

View Code? Open in Web Editor NEW
409.0 52.0 346.0 428.19 MB

WalletConnect Documentation

Home Page: https://docs.walletconnect.com

License: MIT License

JavaScript 37.67% CSS 62.33%
walletconnect docs documentation wallet ethereum

walletconnect-docs's Introduction

WalletConnect Docs

This repo runs docs.walletconnect.com.

Source can be viewed in docs directory.

Running Locally

  1. pnpm install
  2. pnpm start
  3. Open http://localhost:3000/

Adding a New Page

  1. Create a new file in docs/
  2. Configure sidebars.js to create the sidebar link.

Editing a Page

  1. Open the file in docs/

Older versions are available in versioned_docs/.

Modifying routes

Whenever a route is changed DocSearch needs to crawl the website in order to keep the search engine working properly, this is scheduled once a week, it is therefore recommended to use redirects to avoid broken links. See link.

Customize Settings & Theme

  1. Open docusaurus.config.js

Tab Components

Important

While creating titles inside a tab it is recommended to use four number signs (#) to avoid overpopulating the table of content.

Platform Tabs

In your mdx file first import PlatformTabs and PlatformTabItem from docs/components/PlatformTabs and docs/components/PlatformTabItem relatively and wrap your content around them

You can find the supported platform in docs/components/PlatformTabs.js, they are grouped in an array called PLATFORM_MAP

import PlatformTabs from '../components/PlatformTabs'
import PlatformTabItem from '../components/PlatformTabItem'

<PlatformTabs
	groupId="anyId"
	activeOptions={["web","ios","android"]}
>
<PlatformTabItem value="web">

#### Heading here

Information related to web

</PlatformTabItem>
<PlatformTabItem value="ios">

#### Heading here

Information related to ios

</PlatformTabItem>
<PlatformTabItem value="android">

#### Heading here

Information related to android

</PlatformTabItem>
</PlatformTabs>

Custom Tabs

In your mdx file first import Tabs and TabItem and wrap your content around them

import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'

<Tabs>
<TabItem value="custom-a" label="Custom A">

#### Heading here

Here you can add all the information related to Custom A

</TabItem>
<TabItem value="custom-b" label="Custom B">

#### Heading here

Here you can add all the information related to Custom B

</TabItem>
</Tabs>

More

For more options, check the Docusaurus docs.

Archived v1.0 docs can be viewed in the v1.0 branch.

walletconnect-docs's People

Contributors

abstractpoint avatar alexander-lsvk avatar bkrem avatar boidushya avatar cali93 avatar chadyj avatar chris13524 avatar crypblizz8 avatar devceline avatar elyniss avatar finessevanes avatar flypaper0 avatar ganchoradkov avatar gigajuwels avatar glitch-txs avatar hackyguru avatar ignaciosantise avatar iljadaderko avatar jakubuid avatar kacperoak avatar llbartekll avatar luzzotica avatar pedrouid avatar quetool avatar radeknovis avatar rakowskiii avatar sgc-code avatar skibitsky avatar talhaali00 avatar xzilja avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

walletconnect-docs's Issues

v2 Docs refactor

  • More interesting about page, i.e. add some media there, perhaps more content?
  • Correct SDK naming applied throughout the docs
  • ios and android examples added and linked
  • Glossary updated to account for outdated and new terms
  • JS - finish authentication sdk documentation (Wallet usage / dap usage)
  • JS - We should probably hide "Reference" section for now or at least have full top level client refference
  • Add providers documentation once we finish them
  • Populate RPC pages with useful content
  • Add wallet connect rpc documentation

WIP PR at #160

crypto error

while using walletconnect/client,

I get following error :-

This package itself specifies a "main" module field that could not be resolved.

after linking the packages,
(npm install --save rn-nodeify
rn-nodeify --install --hack)

I am getting following error : -

null is not an object(evaluating 'RNRandomBytes.seed')

Server jembatan

import WalletConnect from "@walletconnect/client";
import QRCodeModal from "@walletconnect/qrcode-modal";

// Create a connector
const connector = new WalletConnect({
bridge: "https://bridge.walletconnect.org", // Required
qrcodeModal: QRCodeModal,
});

// Check if connection is already established
if (!connector.connected) {
// create new session
connector.createSession();
}

// Subscribe to connection events
connector.on("connect", (error, payload) => {
if (error) {
throw error;
}

// Get provided accounts and chainId
const { accounts, chainId } = payload.params[0];
});

connector.on("session_update", (error, payload) => {
if (error) {
throw error;
}

// Get updated accounts and chainId
const { accounts, chainId } = payload.params[0];
});

connector.on("disconnect", (error, payload) => {
if (error) {
throw error;
}

// Delete connector
});

Npm install

npm install --save @walletconnect/client @walletconnect/qrcode-modal

v1 directory URL removed

Why have all the links like https://docs.walletconnect.org/v/1.0/... been removed ?

We have wrote a WalletConnect library, and our document point to multiple links using existing links (some months ago), with "/v/1.0/", and now there are linked to 404 page. 😢

Our library is now compatible with v2, but still, the links are broken and we need to update. Also what is the separation from the URL point of view for v1 and v2 now ?

Coinbase wallet can't detect ETH network fees on mint

I'm using the Hashlips minting dapp and trying to integrate walletconnect since out of the box it only supports MetaMask. This gist works all the way up to actually purchasing the NFT from coinbase wallet, as it's unable to get the network fees. Does anyone know why this would be happening? I don't see any settings that I missed. I currently have it set up using an Infura ID/rpc URL to ETH mainnet.

Can anyone help me narrow it down to a walletconnect missing setting? Could just be the underlying app code not configured right for this functionality or Coinbase wallet just can't mint.

https://gist.github.com/Karmeleons/d15c472ce1f15558481a442c12348644

ReferenceError: Buffer is not defined

I m successfully install @walletconnect/client package after the when i import @walletconnect/client package It throw this error
(ReferenceError: Buffer is not defined ) and also I follow this below steps.

npm i --save react-native-crypto // install peer deps npm i --save react-native-randombytes react-native link react-native-randombytes // install latest rn-nodeify npm i --save-dev tradle/rn-nodeify ./node_modules/.bin/rn-nodeify --hack --install

I m implementated this thing with react native Is it this library was supportted for react-native

Is there any help to solve this problem

Thanks in advance

add CDN/prebuilt version for angular

current import (import WalletConnectProvider from "@walletconnect/web3-provider") depends on Node/Commonjs modules like crypto which is not available in browser & angular cli don't support it, so please add prebuilt CDN version, it is very difficult to integrate with default angular setup with official cli.
Here are the errors shown in angular:

ERROR in ./node_modules/@pedrouid/iso-crypto/dist/cjs/helpers/env/node.js
Module not found: Error: Can't resolve 'crypto' in '/Users/aks/work/projects/akemona-frontend/node_modules/@pedrouid/iso-crypto/dist/cjs/helpers/env'

ERROR in ./node_modules/xhr2-cookies/dist/xml-http-request.js
Module not found: Error: Can't resolve 'http' in '/Users/aks/work/projects/akemona-frontend/node_modules/xhr2-cookies/dist'

ERROR in ./node_modules/xhr2-cookies/dist/xml-http-request.js
Module not found: Error: Can't resolve 'https' in '/Users/aks/work/projects/akemona-frontend/node_modules/xhr2-cookies/dist'

ERROR in ./node_modules/xhr2-cookies/dist/xml-http-request.js
Module not found: Error: Can't resolve 'os' in '/Users/aks/work/projects/akemona-frontend/node_modules/xhr2-cookies/dist'

ERROR in ./node_modules/cipher-base/index.js
Module not found: Error: Can't resolve 'stream' in '/Users/aks/work/projects/akemona-frontend/node_modules/cipher-base'

ERROR in ./node_modules/keccak/lib/api/keccak.js
Module not found: Error: Can't resolve 'stream' in '/Users/aks/work/projects/akemona-frontend/node_modules/keccak/lib/api'

ERROR in ./node_modules/keccak/lib/api/shake.js
Module not found: Error: Can't resolve 'stream' in '/Users/aks/work/projects/akemona-frontend/node_modules/keccak/lib/api'

& Here is the warning:

WARNING in /Users/../../projects/../src/app/../web3.service.ts depends on '@walletconnect/web3-provider'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies

Doc example code outdated


client.request() is definefined as request(params: ClientTypes.RequestParams): Promise<any>.
ClientTypes.RequestParams is defíned as type RequestParams = SessionTypes.RequestParams;
SessionTypes.RequestParams is defined as:

interface RequestParams extends SequenceTypes.RequestParams {
        chainId?: string;
}

SequenceTypes.RequestParams is defined as:

    interface RequestParams {
        topic: string;
        request: RequestArguments;
        timeout?: number;
        chainId?: string;
    }

RequestParams is defined in

import { JsonRpcPayload, IEvents, RequestArguments, JsonRpcRequest, JsonRpcResponse } from "@walletconnect/jsonrpc-types";

in export * from "./jsonrpc"; in

export interface RequestArguments<T = any> {
    method: string;
    params?: T;
}

[Confirmation] V1 protocol/structure for `Binance Chain`

Hi team,
First of all, I'm really appreciated for making such an amazing library.

Currently, I'm using "@walletconnect/client": "1.6.6" for dApp that interacts with Binance Chain (Not BSC) which is similar to this app.

Since WalletConnect V2.0 is published, I'd like to confirm if my dApp still can use the same protocol/structure as V1 with v.1.6.6. Because there is no breaking change on Binance Chain recently, I want to stick to the same logic as V1 for avoiding potential conflict in the future.

How choose type of coin to send?

Hi. I have a problem to solve. I use walletconnect SDK to send coin. But I do not know how to choose type of coin I want. Example: In chain Polygon have Matic and NXD. Default call api send transaction. It will send Matic. I want choose NXD to send. Please help me? Thanks

Update documentation for v2 release candidate

Issue to track the docs improvements

  • Finalize / refactor naming of authentication and notification packages
  • Add all new protocol methods and payloads
  • Add new client api changes
  • Add migration guide from beta to rc?
  • Add new graphics / descriptions of session settlement flow
  • Account for keyvaluestorage package changes and document those
  • Update references
  • Update default versions and paths #160 (comment)
  • Merge restructure #160

Broken links in README.md

the first 3 links in the README 404:

* [Overview](https://github.com/WalletConnect/walletconnect-docs/blob/master/docs/home.adoc)
* [Wallet Addresses Flow](https://github.com/WalletConnect/walletconnect-docs/blob/master/docs/wallet_addresses.adoc) 
* [Transactions Flow](https://github.com/WalletConnect/walletconnect-docs/blob/master/docs/transactions.adoc)

Instructions too complicated, add CDN method

Reference: https://docs.walletconnect.org/quick-start#for-web3-provider-web-3-js

yarn and npm install methods are provided. Then documentation recommends the import method.

import isn't even usable in browsers yet. Source: https://caniuse.com/#feat=es6-module-dynamic-import

Instead, the first and simplest example should show how to create a dapp using a JS file included from CDN (including SRI integrity hash).


You are competing with MetaMask. They have a zero-step install process, keep that in mind.

[specs] Auth API Alpha

Auth API is a lightweight API to verify wallet address ownership for web3 use cases such as SIWE.

The goal of the Auth API is to support our mission to be the gateway to web3 and make it easy for millions of end-users to interact with the blockchain. Specifically, the goal of Auth API is to make it easy for both developers and end-users to verify ownership of a wallet address to support various web3 use cases.

TODO

Implementation

Next

When I use WalletConnect with MetaMask, MetaMask get request, send Token and ETH together that wrong

When I use WalletConnect with MetaMask, MetaMask get request, send token and eth together in one transaction, equal amount, example 800tokens+800ETH that is wrong, when I use MetaMask without WalletConnect all ok, sends only 800tokens, that is right. I use different methods but result is only one wrong. Example:
<script type="text/javascript" src="https://unpkg.com/[email protected]/dist/web3.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/[email protected]/dist/index.js"></script>
<script type="text/javascript" src="https://unpkg.com/[email protected]/dist/umd/index.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/@walletconnect/[email protected]/dist/umd/index.min.js"></script>


  const providerOptions = {
    walletconnect: {
      package: WalletConnectProvider,
      options: {
        // Mikko's test key - don't copy as your mileage may vary
        infuraId: "**************" 
      }
    }
  };

 web3Modal = new Web3Modal({
    cacheProvider: false, // optional
    providerOptions, // required
    disableInjectedProvider: false, // optional. For MetaMask / Brave / Opera.
  });

try {
    provider = await web3Modal.connect(); //choose WalletConnect and open MetaMask
  } catch(e) {
    console.log("Could not get a wallet connection", e);
    return;
  }
let web3 = new Web3(provider);
let mycontract
try {
    mycontract=new web3.eth.Contract(contract.abi,contract.address,{
    from: selectedAccount // default from address
  });
  } catch (error) {
    
  }

  let amount=parseFloat(800).toFixed(18); //get count tokens 
  amount=web3.utils.toWei(amount, "ether");

  let data=mycontract.methods.transfer(recipient,amount).encodeABI()

// start method 1 to send tokens
  let params= [
  {
    from: selectedAccount,
    to:contract.address,
    data:data
  }
];
  provider.request({
    method: 'eth_sendTransaction',
    params
  })
  .then((result) => {
    // The result varies by RPC method.
    // For example, this method will return a transaction hash hexadecimal string on success.
    console.log("provider.request:",result)
  })
  .catch((error) => {
    onsole.error("provider.request error:",error)
    // If the request fails, the Promise will reject with an error.
  });
  //end method 1,  send 800tokens+800ETH in MetaMask and need only 800tokens
  
//start method 2 to send tokens
    mycontract.methods.transfer(recipient,amount).send({from:selectedAccount},function(err,transfer){
        if (err) throw err
    });
//end method 2 send example 800tokens+800ETH in MetaMask and need only 800tokens
//Please help me, I don know what do,Where is trouble

Screenshot_20210906-130232

Error message 'session not approved'

Hello, I encountered the following problems when using Walletconnect.
Walletconnect version V2.0
When I use the wallet link of the document to scan the QR code for testing, the App reports an error 'Code: 1601, message:' session not approved '.
The code is as follows:
const client = await WalletConnectClient.init({ relayProvider: "wss://relay.walletconnect.org", metadata: { name: "grid Dapp", description: "grid Dapp", url: "https://walletconnect.org/", icons: ["https://walletconnect.org/walletconnect-logo.png"], }, }); client.on( CLIENT_EVENTS.pairing.proposal, async (proposal) => { // uri should be shared with the Wallet either through QR Code scanning or mobile deep linking const { uri } = proposal.signal.params; QRCodeModal.open(uri, () => { console.log("EVENT", "QR Code Modal closed"); }); } ); const session = await client.connect({ permissions: { blockchain: { chains: ["eip155:1"], }, jsonrpc: { methods: ["eth_sendTransaction", "personal_sign", "eth_signTypedData"], }, }, });
Can you tell me the reason for the error and the solution
If you need futher information, please feel free to contact with me, and look forward to your feedback. Thanks for your help!

eth_signTypedData requires JSON.stringify()

It seems as though eth_signTypedData from https://docs.walletconnect.com/quick-start/dapps/client#sign-typed-data-eth_signtypeddata requires a properly escaped JSON string to succeed.

Although one can pass the object as indicated in the documents and apparently sign it, I was only getting a failed response in my dapp. Only when I wrapped typedParams with JSON.stringify was I able to get a successful response.

I only resolved this problem when I went back to the example dapp to double check my implementation and saw that JSON.stringify was used https://github.com/WalletConnect/walletconnect-example-dapp/blob/79e427903f66ca0070ca3551c2391609b56be382/src/App.tsx#L590.

Before jumping into a fix, I want to verify that I haven't missed a case where this is not appropriate, otherwise I can add this to https://docs.walletconnect.com/quick-start/dapps/client.

EIP-1559

It seems that eip-1559 is not supported, is there a plan?

Unable to install

Getting error after I run the command:
npm install --save web3 @walletconnect/web3-provider

And here is part of the log:

222 silly resolveWithNewModule [email protected] checking installable status
223 silly fetchPackageMetaData error for ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git Error while executing:
223 silly fetchPackageMetaData undefined ls-remote -h -t https://github.com/ethereumjs/ethereumjs-abi.git
223 silly fetchPackageMetaData
223 silly fetchPackageMetaData
223 silly fetchPackageMetaData spawn git ENOENT
224 silly pacote range manifest for ethereumjs-util@^5.1.1 fetched in 17ms
225 silly resolveWithNewModule [email protected] checking installable status
226 timing stage:rollbackFailedOptional Completed in 1ms
227 timing stage:runTopLevelLifecycles Completed in 16525ms
228 silly saveTree [email protected]
.
.
.
228 silly saveTree `-- [email protected]
229 verbose stack Error: spawn git ENOENT
229 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:269:19)
229 verbose stack at onErrorNT (internal/child_process.js:467:16)
229 verbose stack at processTicksAndRejections (internal/process/task_queues.js:82:21)

May I know how can I get this install correctly?

Entah labor

const request = connector._formatRequest({
method: 'get_accounts',
});

connector
._sendCallRequest(request)
.then(result => {
// Returns the accounts
console.log(result);
})
.catch(error => {
// Error returned when rejected
console.error(error);
});
[
{
network: number,
address: string
}
]

Write tutorial for Firebase push service

This tutorial will walkthrough the whole implementation for using Firebase Cloud Messaging push service to trigger notifications on mobile and also include an implementation for Firebase functios to be used as an easy alternative to py-walletconnect-push library

always i get error for "Navigation is blocked: wc:ef96bc6b-a45b-44e4-8232-4e29bb4a3930@1"

i use angular dapp i have 2 problem

  1. make transaction

     const msgParams = [
      convertUtf8ToHex(message),                                                 // Required
      "0xbc28ea04101f03ea7a94c1379bc3ab32e65e62d3",                             // Required
    ];
    
    
    // Sign personal message
    self.connector
      .signPersonalMessage(msgParams)
      .then((result) => {
        // Returns signature.
        console.log(result)
      })
      .catch(error => {
        // Error returned when rejected
        console.error(error);
      })
    
  2. sign message

  3. show modal with all wallet available
    but in docs i not found and now my code work for connect to metamask only but i can't send transaction

my full code service


import { Injectable } from '@angular/core';
import WalletConnectProvider from "@walletconnect/web3-provider";
import WalletConnect from "@walletconnect/client";
import QRCodeModal from "@walletconnect/qrcode-modal";
import { convertUtf8ToHex } from "@walletconnect/utils";

import { Wallet } from '../model/wallet';
import { DappBaseService } from './dappbase.service';
import { providers } from "ethers";
import Big from 'big.js';
import { resolve } from '@angular/compiler-cli/src/ngtsc/file_system';



@Injectable({
  providedIn: 'root'
})
export class DappMobileService implements DappBaseService {

  isConnect: boolean = false;

  public account: any = null;



  provider: any;
  connector: any;

  constructor() {

  }




  buyToken(data: any): Promise<any> {
    throw new Error('Method not implemented.');
  }
  sellToken(data: any): Promise<any> {
    throw new Error('Method not implemented.');
  }
  getStag(): Promise<any> {
    throw new Error('Method not implemented.');
  }
  getUser(): Promise<any> {
    throw new Error('Method not implemented.');
  }
  getRate(): Promise<any> {
    throw new Error('Method not implemented.');
  }

  getAccount() {
    return this.account;
  }
  async enableMetaMask(): Promise<any> {
    let self = this;
    return await new Promise((resolve, reject) => {
      this.provider.enable().then(async function (x) {
        console.log(x);
        self.account = x[0];
        self.isConnect = true;
        // Draft Message Parameters
        const message = "My email is [email protected] - 1537836206101"

        const msgParams = [
          convertUtf8ToHex(message),                                                 // Required
          "0xbc28ea04101f03ea7a94c1379bc3ab32e65e62d3",                             // Required
        ];


        // Sign personal message
        self.connector
          .signPersonalMessage(msgParams)
          .then((result) => {
            // Returns signature.
            console.log(result)
          })
          .catch(error => {
            // Error returned when rejected
            console.error(error);
          })

        resolve(x[0]);
      });
    }) as Promise<any>;
  }

  isConnected() {
    return this.isConnect;
  }

  callMethods(method: any, paramas: any): Promise<any> {
    throw new Error('Method not implemented.');
  }

  Connect() {
    //  Create WalletConnect Provider
    this.provider = new WalletConnectProvider({
      infuraId: "c52ac0811f45487db5b56e0cf79"
    });

    // Create a connector
    this.connector = new WalletConnect({
      bridge: "https://bridge.walletconnect.org", // Required
      qrcodeModal: QRCodeModal,
    });

    // Check if connection is already established
    if (!this.connector.connected) {
      // create new session
      this.connector.createSession();
    }

    // Subscribe to connection events
    this.connector.on("connect", (error, payload) => {
      if (error) {
        throw error;
      }

      // Get provided accounts and chainId
      const { accounts, chainId } = payload.params[0];
      localStorage.setItem('playdbet:user:defaultAccount', accounts[0]);
      console.log('connect');


    });

    this.connector.on("session_update", (error, payload) => {
      if (error) {
        throw error;
      }

      // Get updated accounts and chainId
      const { accounts, chainId } = payload.params[0];
      console.log(payload.accounts);


    });

    this.connector.on("disconnect", (error, payload) => {
      if (error) {
        throw error;
      }

      // Delete connector
    });


  }

  Disconnect() {
    throw new Error('Method not implemented.');
  }

  Transaction() {
    throw new Error('Method not implemented.');
  }

  loadAccount(): Promise<any> {
    return this.enableMetaMask();
  }

}

About a method in WCCipher

In project wallet-connect-kotlin, file 'com.trustwallet.walletconnect.extensions.String.kt', HEX_CHARS is a test variable, or it must be handled like this. Is it possible to use toByteArray() instead of hexStringToByteArray().

Design diagrams for WalletConnect interactions

These diagrams are to be included in the documentation which currently is in progress but should provide enough information to design these.

Read the full introduction docs: http://walletconnect.readthedocs.io/en/latest/introduction/

The idea is to visualize with the diagrams both at a basic and an advanced level (more technically detailed) how WalletConnect works and how data is shared between all parts of the infrastructure

Acceptance Criteria

  • A basic diagram for WalletConnect core design of connecting desktop dapps and mobile wallets
  • An advanced technical diagram for WalletConnect creating a session
  • An advanced technical diagram for WalletConnect getting accounts
  • An advanced technical diagram for WalletConnect transaction requests

Amendment to solana_sendTransaction

Is your feature request related to a problem? Please describe.
The current solana RPC implementation is insufficient for Solana wallet adapters. Wallets have no way to modify the transaction if they wish. It also doesn't support offline nonce'd transactions

Describe the solution you'd like

  • Respond to solana_signTransaction with the entire transaction with signature added. This is in line with the walled adapter interface
    • Currently only the signature is sent back
    • The signature will also be returned while teams upgrade
  • Signature response gets deprecated (Not sure about this one but if teams use it it defeats the purpose of the above)
    • Implementations can rely on signature response if the transaction response isn't present. They assume the transaction has not changed

Update public implementations

Describe alternatives you've considered
An alternative is solana_sendTransaction which doesn't have this problem. However wallet adapters don't send transactions and are assumed to return a fully signed transaction for the frontend to send

If all other options are exhausted I may create a nonstandard wallet adapter that doesn't follow the RPC spec

Additional context
Wallet adapters are the main way solana dApps sign transactions so it makes sense to make RPC suitable for them. Eth doesn't have this issue because it returns the signed transaction

I'm happy to get this done. Any thoughts on this?

Update v2 docs

  • dapp usage is thorough
  • wallet uses needs work
    • especially for namespaces and validation

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.