实例介绍
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
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论