Git Product home page Git Product logo

solnet's People

Contributors

aph5nt avatar bifrosttitan avatar crazynorman avatar gabrielepicco avatar hoakbuilds avatar lastbattle avatar liquizard avatar martinwhitman avatar mcanerizci avatar nazbrok avatar neo-vortex avatar qanonnetworklab avatar rebelecheveria avatar skynode avatar thesoftwarejedi avatar tiago18c 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

solnet's Issues

Improve coding style

Add a .editor config.
Run dotnet format.
Fix the consistency of the API enpoints that have lists or arrays (move into List instead of arrays)

Add commitment parameters

Add commitment parameters to the following RPC requests:

  • getAccountInfo
  • getBalance
  • getBlock
  • getBlockHeight
  • getBlockProduction
  • getBlocks
  • getBlocksWithLimit
  • getEpochInfo
  • getFeeCalculatorForBlockhash
  • getFees
  • getInflationGovernor
  • getInflationReward
  • getLargestAccounts
  • getLeaderSchedule
  • getMinimumBalanceForRentExemption
  • getMultipleAccounts
  • getProgramAccounts
  • getRecentBlockhash
  • getSignaturesForAddress
  • getSignatureStatuses
  • getSlot
  • getSlotLeader
  • getStakeActivation
  • getSupply
  • getTokenAccountBalance
  • getTokenAccountsByDelegate
  • getTokenAccountsByOwner
  • getTokenLargestAccounts
  • getTokenSupply
  • getTransaction
  • getTransactionCount
  • getVoteAccounts
  • sendTransaction
  • simulateTransaction

Attempt to collapse Solnet.Util

Ideally we want to keep the the projects self contained, for this we'd prefer if there were no need for a utilities project.

i.e.

  • Move the utility methods related to Solnet.KeyStore string / byte array conversion to the keystore project
  • Check if any other utility methods can be converted to the project that refers them

Add logger to clients and implement client factory with client interfaces

Add a way to inject a logger that implements Microsoft.Extensions.Logging.ILogger and implement a client factory as well as interfaces to not expose the client's constructors


  • RPC Client Logging
  • Streaming RPC Client Logging

  • RPC Client Interface
  • Streaming RPC Client Interface

  • Client Factory

Add tests for Solnet.Rpc

Add tests to the RPC project attempting to cover the most important methods:

  • GetAccountInfo
  • GetBalance
  • GetRecentBlockhash
  • GetSupply
  • GetTokenAccountBalance
  • GetTokenAccountsByDelegate
  • GetTokenAccountsByOwner
  • GetTokenSupply
  • GetTokenLargestAccounts

Simplify AccountInfo

AccountInfo Data field cannot be deduced. Revert to returning the encoded string + encoding

Refactor StreamingClient

Refactor the SolanaRpcStreamingClient to handle the following scenarios:

  • Logger injection (and logging of exchanged messages)
  • Error handling

Implement missing TokenProgram methods

Implement the missing TokenProgram methods.

  • InitializeMultisig
  • Approve
  • Revoke
  • Burn
  • CloseAccount
  • FreezeAccount
  • SetAuthority
  • ApproveChecked
  • BurnChecked
  • MintChecked

Implement missing SystemProgram methods

Implement the following missing SystemProgram methods:

  • Assign
  • CreateAccountWithSeed
  • CreateNonceAccount
  • CreateNonceAccountWithSeed
  • InitializeNonce
  • AdvanceNonce
  • WithdrawNonce
  • AuthorizeNonce
  • Allocate
  • AllocateWithSeed
  • AssignWithSeed

Add Solnet.KeyStore tests

Add tests to the keystore project, essentially the goal is to cover the solana-keygen output file and some web3 secret storage examples.

Add Solnet.Wallet tests

Coverage goals:

  • BIP39 key generation (solana-keygen compatible)
  • BIP32 key derivation (Sollet compatible)

Full JSON RPC API coverage

Provide an implementation for each of the following HTTP JSON RPC API methods:

  • getAccountInfo
  • getBalance
  • getBlock
  • getBlockHeight
  • getBlockProduction
  • getBlockCommitment
  • getBlocks
  • getBlocksWithLimit
  • getBlockTime
  • getClusterNodes
  • getEpochInfo
  • getEpochSchedule
  • getFeeCalculatorForBlockhash
  • getFeeRateGovernor
  • getFees
  • getFirstAvailableBlock
  • getGenesisHash
  • getHealth
  • getIdentity
  • getInflationGovernor
  • getInflationRate
  • getInflationReward
  • getLargestAccounts
  • getLeaderSchedule
  • getMaxRetransmitSlot
  • getMaxShredInsertSlot
  • getMinimumBalanceForRentExemption
  • getMultipleAccounts
  • getProgramAccounts
  • getRecentBlockhash
  • getRecentPerformanceSamples
  • getSignaturesForAddress
  • getSignatureStatuses
  • getSlot
  • getSlotLeader
  • getSlotLeaders
  • getStakeActivation
  • getSupply
  • getTokenAccountBalance
  • getTokenAccountsByDelegate
  • getTokenAccountsByOwner
  • getTokenLargestAccounts
  • getTokenSupply
  • getTransaction
  • getTransactionCount
  • getVersion
  • getVoteAccounts
  • minimumLedgerSlot
  • requestAirdrop
  • sendTransaction
  • simulateTransaction

Provide an implementation for each of the following WS JSON RPC API methods:

  • accountSubscribe
  • accountUnsubscribe
  • logsSubscribe
  • logsUnsubscribe
  • programSubscribe
  • programUnsubscribe
  • signatureSubscribe
  • signatureUnsubscribe
  • slotSubscribe
  • slotUnsubscribe

Mark them as done as we go, once all are done, close the issue and move on, cool guys don't look at explosions.

Slash dependencies

After analyzing how long it takes to load a Blazor Wasm application we realized we can do a better job at keeping the library lightweight so the idea is to slash some of the following dependencies:

  • NBitcoin is only used because of the Mnemonic, we could easily add only the needed code to the Solnet.Wallet project and save around ~4MB of total size.

  • BouncyCastle is referenced in the Solnet.Wallet project but isn't used there, only in the KeyStore.

Fix the cake build order

As it stands the cake build is skipping steps and jumping from the Test task straight to the Pack task, this should be fixed, Pack should be dependent on Publish, so it only happens when everything is OK.

Update API urls

Migrate DevNet and TesNet urls to the newest ones.

DevNet: api.devnet.solana.com
TestNet: api.testnet.solana.com

Improve the KeyStore

Improve the KeyStore to allow recovering wallets from a string which represents the private key's byte array, as follows:

[69,191,12,22,125,16,119,72,240,150,74,197,249,221,54,164,172,222,248,202,22,242,96,43,105,164,101,52,155,41,46,6,107,27,120,68,31,183,113,110,148,151,206,38,195,198,108,78,97,66,196,191,82,41,240,33,253,9,89,19,75,196,171,104]

Run dotnet format project wide

Because we're still having issues regarding code formatting due to different IDEs (Rider vs VS) and the .editorconfig and dotnet-format have been added to the project, just send it.

Implement the Solana Program Library (SPL)

Implement the following Solana Program Library on-chain programs:

  • Token Program ( #76 )
  • Token Swap Program ( #260 )
  • Associated Token Account Program ( #106 )
  • Memo Program
  • Name Service ( #101 )
  • Shared memory Program ( #105 )
  • Stake Pool Program

Update:

After some thought we've decided not to include the Feature Proposal Program in our SPL implementation for v1

Update 2:

Discarded program implementations.

Token-Lending Program ( #254 )

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.