在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → WalletConnect C# 客户端实现教程

WalletConnect C# 客户端实现教程

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:0.32M
  • 下载次数:0
  • 浏览次数:41
  • 发布时间:2024-04-02
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签:

实例介绍

【实例简介】
WalletConnectSharp 是一个使用 .NET 实现的 WalletConnect 协议v2的库。这个库按照 WalletConnect 技术规范用 .NET 实现,允许 C# 分布式应用(dApp)制作者和钱包制作者添加对开放的 WalletConnect 协议的支持。

安装:
通过 Nuget 安装:
dotnet add package WalletConnect.Sign

使用方法:
首先,您必须设置 SignClientOptions,它存储了 ProjectId 和 Metadata。您还可以选择使用的存储模块。默认情况下,如果没有指定,将使用 FileSystemStorage 模块。
var dappOptions = new SignClientOptions()
{
    ProjectId = "39f3dc0a2c604ec9885799f9fc5feb7c",
    Metadata = new Metadata()
    {
        Description = "An example dapp to showcase WalletConnectSharpv2",
        Icons = new[] { "https://walletconnect.com/meta/favicon.ico" },
        Name = "WalletConnectSharpv2 Dapp Example",
        Url = "https://walletconnect.com"
    }
};

然后,您必须设置 ConnectOptions,它定义了您的 dapp 将使用哪个区块链、RPC 方法和事件。

一旦定义了这些选项,您就可以初始化并连接 SDK:
var dappClient = await WalletConnectSignClient.Init(dappOptions);
var connectData = await dappClient.Connect(dappConnectOptions);

您可以从 connectData 中获取连接请求的 Uri,并等待连接批准使用 Approval Task 对象。

钱包使用方式也类似,首先设置 SignClientOptions,然后初始化 SDK,钱包可以配对会话使用会话的 Uri。配对会话使钱包能够获得连接提案,然后可以批准或拒绝。

【实例截图】
【核心代码】
文件清单
└── WalletConnectSharp-b1a151c6811c27f2f429c86528c85536e5587c33
    ├── Core Modules
    │   ├── WalletConnectSharp.Common
    │   │   ├── Events
    │   │   │   ├── EventHandlerMap.cs
    │   │   │   └── GenericEventHolder.cs
    │   │   ├── IModule.cs
    │   │   ├── Logging
    │   │   │   ├── ILogger.cs
    │   │   │   ├── WCLogger.cs
    │   │   │   └── WrapperLogger.cs
    │   │   ├── Model
    │   │   │   ├── Errors
    │   │   │   │   ├── ErrorType.cs
    │   │   │   │   ├── SdkErrors.cs
    │   │   │   │   └── WalletConnectException.cs
    │   │   │   ├── IsolatedModule.cs
    │   │   │   └── Relay
    │   │   │       ├── Relay.cs
    │   │   │       └── RelayProtocols.cs
    │   │   ├── SDKConstants.cs
    │   │   ├── Utils
    │   │   │   ├── Clock.cs
    │   │   │   ├── Constants.cs
    │   │   │   ├── DictionaryComparer.cs
    │   │   │   ├── EventUtils.cs
    │   │   │   ├── Extensions.cs
    │   │   │   ├── HashUtils.cs
    │   │   │   ├── HexByteConvertorExtensions.cs
    │   │   │   ├── ListComparer.cs
    │   │   │   ├── RpcPayloadId.cs
    │   │   │   ├── TypeSafety.cs
    │   │   │   └── UrlUtils.cs
    │   │   └── WalletConnectSharp.Common.csproj
    │   ├── WalletConnectSharp.Crypto
    │   │   ├── Crypto.cs
    │   │   ├── Encoder
    │   │   │   ├── ArrayHelpers.cs
    │   │   │   ├── Base58Encoding.cs
    │   │   │   ├── Bases.cs
    │   │   │   ├── BaseX.cs
    │   │   │   └── Codec.cs
    │   │   ├── Interfaces
    │   │   │   ├── ICrypto.cs
    │   │   │   └── IKeyChain.cs
    │   │   ├── KeyChain.cs
    │   │   ├── Models
    │   │   │   ├── DecodeOptions.cs
    │   │   │   ├── EncodeOptions.cs
    │   │   │   ├── EncodingParams.cs
    │   │   │   ├── EncodingValidation.cs
    │   │   │   ├── EncryptParams.cs
    │   │   │   ├── IridiumJWTData.cs
    │   │   │   ├── IridiumJWTDecoded.cs
    │   │   │   ├── IridiumJWTHeader.cs
    │   │   │   ├── IridiumJWTPayload.cs
    │   │   │   └── IridiumJWTSigned.cs
    │   │   └── WalletConnectSharp.Crypto.csproj
    │   ├── WalletConnectSharp.Network
    │   │   ├── Interfaces
    │   │   │   ├── IBaseJsonRpcProvider.cs
    │   │   │   ├── IConnectionBuilder.cs
    │   │   │   ├── IJsonRpcConnection.cs
    │   │   │   ├── IJsonRpcError.cs
    │   │   │   ├── IJsonRpcPayload.cs
    │   │   │   ├── IJsonRpcProvider.cs
    │   │   │   ├── IJsonRpcRequest.cs
    │   │   │   ├── IJsonRpcResult.cs
    │   │   │   ├── IRelayUrlBuilder.cs
    │   │   │   └── IRequestArguments.cs
    │   │   ├── JsonRpcProvider.cs
    │   │   ├── Models
    │   │   │   ├── BaseJsonRpcRequest.cs
    │   │   │   ├── Error.cs
    │   │   │   ├── JsonRpcError.cs
    │   │   │   ├── JsonRpcPayload.cs
    │   │   │   ├── JsonRpcRequest.cs
    │   │   │   ├── JsonRpcResponse.cs
    │   │   │   ├── RequestArguments.cs
    │   │   │   ├── RpcMethodAttribute.cs
    │   │   │   ├── RpcOptionsAttribute.cs
    │   │   │   ├── RpcRequestOptionsAttribute.cs
    │   │   │   └── RpcResponseOptionsAttribute.cs
    │   │   ├── Utils
    │   │   │   ├── RelayUrlBuilder.cs
    │   │   │   └── Validation.cs
    │   │   └── WalletConnectSharp.Network.csproj
    │   ├── WalletConnectSharp.Network.Websocket
    │   │   ├── WalletConnectSharp.Network.Websocket.csproj
    │   │   ├── WebsocketConnectionBuilder.cs
    │   │   └── WebsocketConnection.cs
    │   └── WalletConnectSharp.Storage
    │       ├── FileSystemStorage.cs
    │       ├── InMemoryStorage.cs
    │       ├── Interfaces
    │       │   └── IKeyValueStorage.cs
    │       └── WalletConnectSharp.Storage.csproj
    ├── Directory.Build.props
    ├── Directory.Packages.props
    ├── global.json
    ├── LICENSE
    ├── README.md
    ├── resources
    │   └── icon.png
    ├── Tests
    │   ├── WalletConnectSharp.Auth.Tests
    │   │   ├── AuthClientTest.cs
    │   │   ├── SignatureTest.cs
    │   │   └── WalletConnectSharp.Auth.Tests.csproj
    │   ├── WalletConnectSharp.Crypto.Tests
    │   │   ├── CryptoFixture.cs
    │   │   ├── CryptoTests.cs
    │   │   ├── Models
    │   │   │   └── TopicData.cs
    │   │   └── WalletConnectSharp.Crypto.Tests.csproj
    │   ├── WalletConnectSharp.Examples
    │   │   ├── BiDirectional.cs
    │   │   ├── IExample.cs
    │   │   ├── Program.cs
    │   │   ├── SimpleExample.cs
    │   │   └── WalletConnectSharp.Examples.csproj
    │   ├── WalletConnectSharp.Network.Tests
    │   │   ├── Models
    │   │   │   └── TopicData.cs
    │   │   ├── RelayTests.cs
    │   │   └── WalletConnectSharp.Network.Tests.csproj
    │   ├── WalletConnectSharp.Sign.Test
    │   │   ├── NamespaceTests.cs
    │   │   ├── Shared
    │   │   │   └── SignTestValues.cs
    │   │   ├── SignClientFixture.cs
    │   │   ├── SignTests.cs
    │   │   └── WalletConnectSharp.Sign.Test.csproj
    │   ├── WalletConnectSharp.Storage.Test
    │   │   ├── FileSystemStorageTest.cs
    │   │   └── WalletConnectSharp.Storage.Test.csproj
    │   ├── WalletConnectSharp.Tests.Common
    │   │   ├── CryptoWalletFixture.cs
    │   │   ├── TempFolder.cs
    │   │   ├── TestValues.cs
    │   │   ├── TwoClientsFixture.cs
    │   │   ├── UtilExtensions.cs
    │   │   └── WalletConnectSharp.Tests.Common.csproj
    │   └── WalletConnectSharp.Web3Wallet.Tests
    │       ├── AuthTests.cs
    │       ├── SignTests.cs
    │       └── WalletConnectSharp.Web3Wallet.Tests.csproj
    ├── WalletConnectSharp.Auth
    │   ├── Cacao.cs
    │   ├── Controllers
    │   │   └── AuthEngine.cs
    │   ├── Interfaces
    │   │   ├── IAuthClient.cs
    │   │   ├── IAuthClientEvents.cs
    │   │   └── IAuthEngine.cs
    │   ├── Internals
    │   │   ├── AuthEngineValidations.cs
    │   │   ├── CryptoUtils.cs
    │   │   ├── IssDidUtils.cs
    │   │   └── SignatureUtils.cs
    │   ├── Models
    │   │   ├── AuthData.cs
    │   │   ├── AuthErrorResponse.cs
    │   │   ├── AuthOptions.cs
    │   │   ├── AuthPayload.cs
    │   │   ├── AuthRequest.cs
    │   │   ├── AuthRequestData.cs
    │   │   ├── AuthResponse.cs
    │   │   ├── ErrorResponse.cs
    │   │   ├── Message.cs
    │   │   ├── PairingData.cs
    │   │   ├── PayloadParams.cs
    │   │   ├── PendingRequest.cs
    │   │   ├── Requester.cs
    │   │   ├── RequestParams.cs
    │   │   ├── RequestUri.cs
    │   │   ├── ResultResponse.cs
    │   │   └── TopicMessage.cs
    │   ├── WalletConnectAuthClient.cs
    │   ├── WalletConnectSharp.Auth.csproj
    │   └── WcAuthRequest.cs
    ├── WalletConnectSharp.Core
    │   ├── Controllers
    │   │   ├── Expirer.cs
    │   │   ├── HeartBeat.cs
    │   │   ├── JsonRpcHistory.cs
    │   │   ├── JsonRpcHistoryFactory.cs
    │   │   ├── MessageTracker.cs
    │   │   ├── Pairing.cs
    │   │   ├── PairingStore.cs
    │   │   ├── Publisher.cs
    │   │   ├── Relayer.cs
    │   │   ├── Store.cs
    │   │   ├── Subscriber.cs
    │   │   ├── TopicMap.cs
    │   │   └── TypedMessageHandler.cs
    │   ├── Core.cs
    │   ├── Interfaces
    │   │   ├── ICore.cs
    │   │   ├── IExpirer.cs
    │   │   ├── IHeartBeat.cs
    │   │   ├── IJsonRpcHistory.cs
    │   │   ├── IJsonRpcHistoryFactory.cs
    │   │   ├── IKeyHolder.cs
    │   │   ├── IMessageTracker.cs
    │   │   ├── IPairing.cs
    │   │   ├── IPairingStore.cs
    │   │   ├── IPublisher.cs
    │   │   ├── IRelayer.cs
    │   │   ├── IStore.cs
    │   │   ├── ISubscriber.cs
    │   │   ├── ISubscriberMap.cs
    │   │   └── ITypedMessageHandler.cs
    │   ├── Metadata.cs
    │   ├── Models
    │   │   ├── BatchFetchMessageRequest.cs
    │   │   ├── BatchFetchMessagesResponse.cs
    │   │   ├── CoreOptions.cs
    │   │   ├── DisposeHandlerToken.cs
    │   │   ├── Eth
    │   │   │   └── EthCall.cs
    │   │   ├── Expirer
    │   │   │   ├── Expiration.cs
    │   │   │   ├── ExpirerEventArgs.cs
    │   │   │   └── ExpirerTarget.cs
    │   │   ├── History
    │   │   │   ├── JsonRpcRecord.cs
    │   │   │   └── RequestEvent.cs
    │   │   ├── MessageHandler
    │   │   │   ├── RequestEventArgs.cs
    │   │   │   ├── ResponseEventArgs.cs
    │   │   │   └── TypedEventHandler.cs
    │   │   ├── Pairing
    │   │   │   ├── CreatePairingData.cs
    │   │   │   ├── Methods
    │   │   │   │   ├── PairingDelete.cs
    │   │   │   │   └── PairingPing.cs
    │   │   │   ├── PairingEvent.cs
    │   │   │   ├── PairingStruct.cs
    │   │   │   └── UriParameters.cs
    │   │   ├── Publisher
    │   │   │   └── PublishParams.cs
    │   │   ├── RedirectData.cs
    │   │   ├── Relay
    │   │   │   ├── DecodedMessageEvent.cs
    │   │   │   ├── MessageEvent.cs
    │   │   │   ├── ProtocolOptionHolder.cs
    │   │   │   ├── ProtocolOptions.cs
    │   │   │   ├── PublishOptions.cs
    │   │   │   ├── RelayerOptions.cs
    │   │   │   ├── RelayPublishRequest.cs
    │   │   │   ├── SubscribeOptions.cs
    │   │   │   └── UnsubscribeOptions.cs
    │   │   ├── Subscriber
    │   │   │   ├── ActiveSubscription.cs
    │   │   │   ├── BatchSubscribeParams.cs
    │   │   │   ├── DeletedSubscription.cs
    │   │   │   ├── JsonRpcSubscriberParams.cs
    │   │   │   ├── JsonRpcSubscriptionParams.cs
    │   │   │   ├── JsonRpcUnsubscribeParams.cs
    │   │   │   ├── MessageData.cs
    │   │   │   └── PendingSubscription.cs
    │   │   └── Verify
    │   │       ├── Validation.cs
    │   │       ├── VerifiedContext.cs
    │   │       └── Verifier.cs
    │   ├── Utils.cs
    │   ├── WalletConnectCore.cs
    │   └── WalletConnectSharp.Core.csproj
    ├── WalletConnectSharp.Sign
    │   ├── Controllers
    │   │   ├── AddressProvider.cs
    │   │   ├── PendingRequests.cs
    │   │   ├── Proposal.cs
    │   │   └── Session.cs
    │   ├── Engine.cs
    │   ├── Interfaces
    │   │   ├── IAddressProvider.cs
    │   │   ├── IEngineAPI.cs
    │   │   ├── IEngine.cs
    │   │   ├── IEnginePrivate.cs
    │   │   ├── IPendingRequests.cs
    │   │   ├── IProposal.cs
    │   │   ├── ISession.cs
    │   │   ├── ISignClient.cs
    │   │   └── IWcMethod.cs
    │   ├── Internals
    │   │   ├── EngineHandler.cs
    │   │   ├── EngineTasks.cs
    │   │   └── EngineValidation.cs
    │   ├── Models
    │   │   ├── Caip25Address.cs
    │   │   ├── DefaultsLoadingEventArgs.cs
    │   │   ├── Engine
    │   │   │   ├── ApproveParams.cs
    │   │   │   ├── ConnectedData.cs
    │   │   │   ├── ConnectOptions.cs
    │   │   │   ├── Events
    │   │   │   │   ├── EmitEvent.cs
    │   │   │   │   ├── EventData.cs
    │   │   │   │   ├── SessionEvent.cs
    │   │   │   │   ├── SessionProposalEvent.cs
    │   │   │   │   ├── SessionRequestEvent.cs
    │   │   │   │   └── SessionUpdateEvent.cs
    │   │   │   ├── IAcknowledgement.cs
    │   │   │   ├── IApprovedData.cs
    │   │   │   ├── Methods
    │   │   │   │   ├── SessionDelete.cs
    │   │   │   │   ├── SessionEvent.cs
    │   │   │   │   ├── SessionExtend.cs
    │   │   │   │   ├── SessionPing.cs
    │   │   │   │   ├── SessionPropose.cs
    │   │   │   │   ├── SessionProposeResponse.cs
    │   │   │   │   ├── SessionRequest.cs
    │   │   │   │   ├── SessionSettle.cs
    │   │   │   │   └── SessionUpdate.cs
    │   │   │   └── RejectParams.cs
    │   │   ├── Namespace.cs
    │   │   ├── Namespaces.cs
    │   │   ├── Participant.cs
    │   │   ├── PendingRequestStruct.cs
    │   │   ├── ProposalStruct.cs
    │   │   ├── ProposedNamespace.cs
    │   │   ├── RequiredNamespaces.cs
    │   │   ├── SessionRequestEventHandler.cs
    │   │   ├── SessionStruct.cs
    │   │   └── SignClientOptions.cs
    │   ├── WalletConnectSharp.Sign.csproj
    │   └── WalletConnectSignClient.cs
    ├── WalletConnectSharpV2.sln
    └── WalletConnectSharp.Web3Wallet
        ├── Controllers
        │   └── Web3WalletEngine.cs
        ├── Interfaces
        │   ├── IWeb3WalletApi.cs
        │   ├── IWeb3Wallet.cs
        │   └── IWeb3WalletEngine.cs
        ├── Models
        │   ├── BaseEventArgs.cs
        │   └── SessionRequestEventArgs.cs
        ├── WalletConnectSharp.Web3Wallet.csproj
        └── Web3WalletClient.cs

64 directories, 278 files

标签:

实例下载地址

WalletConnect C# 客户端实现教程

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警