gemworks / gem-farm Goto Github PK
View Code? Open in Web Editor NEWConfigurable staking for NFT Projects on Solana
Home Page: https://gemfarm.gg/
License: MIT License
Configurable staking for NFT Projects on Solana
Home Page: https://gemfarm.gg/
License: MIT License
I'm writing the auto-crank feature, but got stuck on getting all the farmer accounts list or snapshot.
how can I make this work? after this I'll opensource the auto-crank.
also is there any discord we can talk with fellow developers on this source?, if there is none please create one
TL;DR: when changing the rarity points of a deposited gem a new total rarity points for the vault isn't calculated/updated. Therefore, the staking reward amount/rate isn't updated. Furthermore, it is not possible to withdraw the gem (due to certain checks for security reasons).
Does anyone know of a way to fix or get around this? (Maybe updating/refreshing the Vault struct will fix it?)
Example/issue:
Two gems, each with rarity points of 1, are moved to the vault (and may also be staked) and while they are in the vault the rarity points of one of them are set/updated to 4.
(The same things apply to a scenario with just a single gem that gets rarity points updated while in the vault)
The amount of tokens rewarded from staking remains unchanged after the update, so it seems as if the calculated total rarity points of the vault isn't updated/refreshed.
Furthermore, trying to withdraw the gem with 4 rarity points now fails with the 0x1770 error as the program tries subtracting 4 from 2 (see attached screenshot) - it appears that the calculated total rarity points of the vault is updated somewhere (but not the place that affects staking rewards).
Question:
Is there any way of "refreshing" the total calculated rarity points of a vault after the rarity points of a gem (or several) in the vault has been changed?
(I.e. is it possible to change/update the rarities if the staking of a collection of gems is already live)
Every time you refresh a farmer's state, the new start time is the updated_time. This is fine if you're using rewards per second, but if you're using any larger interval, you will start from scratch. Additionally, any user can refresh farmer state, so someone could perpetually refresh farmer state and prevent them from accruing rewards.
In this example, I set the reward to 1 token per minute. I should have 3 tokens by the given time interval, but I only have 1. This is because I refreshed the state before a minute was up. Only once did a let a whole minute pass.
I made a kinda hack update that rounds the updated_ts down to the nearest interval (e.g. minute). I can do a pull request if it makes sense, but there may be a better way of doing this.
I want to divide my collection into 4 parts, Each get different mint reward, But I dont understand how to configure that.
NFT collection size ->1111
777 (specific rarity) -> get 10 tokens
222 (specific rarity) -> get 20 tokens
111 (specific rarity) -> get 30 tokens
11 (specific rarity) -> get 50 tokens
is flash deposit working? it appears broken
I'm getting a "Transaction simulation failed: Error processing Instruction 0: custom program error: 0x1"
Staking has been working fine. Been getting this error today? I've got enough funds in the wallet I'm using to stake the NFT?
Using the gem-farm deployed on Mainnet.
Transaction simulation failed: Error processing Instruction 0: custom program error: 0x1
Program bankHHdqMuaaST4qQk6mkzxGeKPHWmqdgor6Gs8r88m invoke [1]
Program log: Instruction: DepositGem
Program 11111111111111111111111111111111 invoke [2]
Program 11111111111111111111111111111111 success
Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]
Program log: Instruction: InitializeAccount
Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3297 of 175156 compute units
Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success
Program 11111111111111111111111111111111 invoke [2]
Program 11111111111111111111111111111111 success
Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]
Program log: Instruction: Transfer
Program log: Error: insufficient funds
Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 2135 of 146292 compute units
Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA failed: custom program error: 0x1
Program bankHHdqMuaaST4qQk6mkzxGeKPHWmqdgor6Gs8r88m consumed 55843 of 200000 compute units
Program bankHHdqMuaaST4qQk6mkzxGeKPHWmqdgor6Gs8r88m failed: custom program error: 0x1
sendEncodedTransaction @ index.browser.esm.js:7051
await in sendEncodedTransaction (async)
sendRawTransaction @ index.browser.esm.js:7014
Eo @ index.browser.esm.js:8977
send @ provider.js:82
await in send (async)
i @ rpc.js:9
(anonymous) @ gem-bank.client.js:379
s @ gem-bank.client.js:24
Promise.then (async)
u @ gem-bank.client.js:26
s @ gem-bank.client.js:24
Promise.then (async)
u @ gem-bank.client.js:26
s @ gem-bank.client.js:24
Promise.then (async)
u @ gem-bank.client.js:26
s @ gem-bank.client.js:24
Promise.then (async)
u @ gem-bank.client.js:26
(anonymous) @ gem-bank.client.js:27
s @ gem-bank.client.js:23
depositGem @ gem-bank.client.js:351
(anonymous) @ index.ts:81
d @ runtime.js:63
(anonymous) @ runtime.js:294
(anonymous) @ runtime.js:119
r @ asyncToGenerator.js:3
a @ asyncToGenerator.js:25
Promise.then (async)
r @ asyncToGenerator.js:13
a @ asyncToGenerator.js:25
Promise.then (async)
r @ asyncToGenerator.js:13
a @ asyncToGenerator.js:25
Promise.then (async)
r @ asyncToGenerator.js:13
a @ asyncToGenerator.js:25
(anonymous) @ asyncToGenerator.js:32
(anonymous) @ asyncToGenerator.js:21
t @ index.ts:32
(anonymous) @ Vault.vue?4b75:364
d @ runtime.js:63
(anonymous) @ runtime.js:294
(anonymous) @ runtime.js:119
r @ asyncToGenerator.js:3
a @ asyncToGenerator.js:25
(anonymous) @ asyncToGenerator.js:32
(anonymous) @ asyncToGenerator.js:21
(anonymous) @ Vault.vue?4b75:358
(anonymous) @ Vault.vue?4b75:186
d @ runtime.js:63
(anonymous) @ runtime.js:294
(anonymous) @ runtime.js:119
r @ asyncToGenerator.js:3
a @ asyncToGenerator.js:25
(anonymous) @ asyncToGenerator.js:32
(anonymous) @ asyncToGenerator.js:21
(anonymous) @ Vault.vue?4b75:184
(anonymous) @ Vault.vue?4b75:318
eo @ runtime-core.esm-bundler.js:6708
to @ runtime-core.esm-bundler.js:6717
m @ runtime-core.esm-bundler.js:7125
Ao @ runtime-core.esm-bundler.js:6881
Eo @ runtime-core.esm-bundler.js:6922
Promise.then (async)
vo @ runtime-core.esm-bundler.js:6838
ko @ runtime-core.esm-bundler.js:6860
So @ runtime-core.esm-bundler.js:6863
Io.y @ runtime-core.esm-bundler.js:7153
C @ reactivity.esm-bundler.js:358
B @ reactivity.esm-bundler.js:346
(anonymous) @ reactivity.esm-bundler.js:472
e. @ reactivity.esm-bundler.js:398
x @ Vault.vue?4b75:175
Object.default.Object.onClick.t..t. @ Vault.vue?c9c7:45
eo @ runtime-core.esm-bundler.js:6708
to @ runtime-core.esm-bundler.js:6717
n @ runtime-dom.esm-bundler.js:357
rpc.js:13 Translating error Error: failed to send transaction: Transaction simulation failed: Error processing Instruction 0: custom program error: 0x1
at eo.sendEncodedTransaction (index.browser.esm.js:7055:13)
at async eo.sendRawTransaction (index.browser.esm.js:7014:11)
at async Eo (index.browser.esm.js:8977:9)
at async o.send (provider.js:82:15)
at async Object.i [as depositGem] (rpc.js:9:23)
While working on a Custom Frontend, i receive this error.
The bank I give to the DepositGem method is a Web3 Publickey.
The original GemFarm repo passes "bank.value" in the appropriate place (as I understand a Vue specific functionality) however I can't really get this to reproduce with react js.
The repo I use as a foundation is https://github.com/DataKnox/gem-farm.
The first error I got "Error: Insufficent Funds..." could be avoided by upgrading the GemFarm Dependency to the latest version.
Has any of you an idea?
If I only need FARM, do I need to Deploy BANK too?
With the standard of Staking individually / NFT, please add this functionality to cover the universal staking function
Thanks @ilmoi !
how to refresh other stakers?
whenever I try to call refreshFarmerWallet
I get this:
msg: 'The given account is not owned by the executing program'
I was playing around on dev net and ran into issues with unlocking the vaults after I initiated staking after creating a farm with my wallet. When i fetch the bank manager though its just an account that received reward A tokens and not the wallet I used to create the farm. Is there a way to update this or fix this so I can unlock the vault from the wallet I used to create the farm in the first place?
I believe this has to do with the u128 and how we have to multiply the numbers so much to get payouts that aren't tiny,
We are inputting the settings as such
promise duration: 4046511
base rate: 571420000000
denominator: 86400
so 8 gems would have it try and reserve 214,097,899,594,444.4 tokens. = too big
is there any way we can tweak the numbers for the input or are we stuck since we can't have such a big number reserved?
if we shorten the promise duration to fx. 2 weeks would we have users unable to withdraw their gems or claim since the number they try to claim is so big?
Sorry if the title is clickbait, I didn't know how to call it hehe
The issue is that on the readme instructions on deploying your own version, it's specified that you need to change the program IDs on src/index.ts
. So, a user after deploying the programs and replacing the IDs, would expect that launching the gem-farm app on local results in it pointing to their deployed version.
This is false since the gem-farm app is pulling the SDK from the NPM repository, not from the local source. This means the user is still interacting with the version deployed by @ilmoi even tho they changed the IDs that they needed to change as per the documentation.
This is even more aggravating now since creating a farm costs 2.5 sol and if they don't know how to remove that fee from the rust code, it's just money being paid for errors that could be avoided.
A solution to this would be appreciated as I've seen a few users that have committed this mistake already.
On the meantime, if anyone needs a fix, I forked the repository and made all the imports from the gem-farm app point to the local SDK, so if you change the IDs on src/index.ts
it will take effect.
This SHOULD be straightforward but the math isn't working out for me - please help...
If I use a reward setup of Fixed with a base rate of 0.0007986111111 (69/86400 seconds / day) I can't, because it throws an error because it can't use decimal values for some reason.
So... I try using 7986111111 as the Base rate with the Denominator set to 100000 so that the math SHOULD work out.
The value it accrues in my wallet is off.
So... I try to approximate using 7986 for the Base rate and 10 for the denominator because it seems to work out closer to what it should be.
BUT HOW DO I SET IT UP TO BE ABLE TO PROVIDE EXACTLY 69 TOKENS PER DAY PER TOKEN? What are the settings?
Thanks
Is it possible to get all stakers?
The documentation says to update the Bank ID in these files
./app/gem-bank/src/globals.ts
./app/gem-farm/src/globals.ts
But they do not exist.
Is the vanilla UI reporting accrued rewards in fractions of a token?
I set up the calculations in the farm to accrue 1200 tokens per NFT per second, and set the Denominator to 86400 (number of seconds in a day) so that the math would be good. The accrued reward is reporting as "6", but when I try to claim, it shows that I received 0.0000006 of our token.
So...do I have to multiply by a factor of 100000 for it to work?
Here's the farm config (there are previous attempts here but the current setup is what I have).
It appears that we're reporting in Lamports (if the currency was SOL) but we're using our own token.
Thanks in advance for the help!
Hey there !
I got this error on latest SDK on Testnet (while devnet was done).
Steps to reproduce :
Unstaking the 1st gem and repeating the above actions (minus 1.) fixes the issue.
Transaction simulation failed: Error processing Instruction 0: Program failed to complete
Program farmL4xeBFVXJqtfxCzU9b28QACM7E2W2ctT6epAjvE invoke [1]
Program log: Instruction: FlashDeposit
Program bankHHdqMuaaST4qQk6mkzxGeKPHWmqdgor6Gs8r88m invoke [2]
Program log: Instruction: SetVaultLock
Program bankHHdqMuaaST4qQk6mkzxGeKPHWmqdgor6Gs8r88m consumed 8101 of 163006 compute units
Program bankHHdqMuaaST4qQk6mkzxGeKPHWmqdgor6Gs8r88m success
Program bankHHdqMuaaST4qQk6mkzxGeKPHWmqdgor6Gs8r88m invoke [2]
Program log: Instruction: DepositGem
Program 11111111111111111111111111111111 invoke [3]
Program 11111111111111111111111111111111 success
Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]
Program log: Instruction: InitializeAccount
Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3297 of 108807 compute units
Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success
Program 11111111111111111111111111111111 invoke [3]
Program 11111111111111111111111111111111 success
Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]
Program log: Instruction: Transfer
Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 2643 of 62580 compute units
Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success
Program bankHHdqMuaaST4qQk6mkzxGeKPHWmqdgor6Gs8r88m consumed 83293 of 138151 compute units
Program bankHHdqMuaaST4qQk6mkzxGeKPHWmqdgor6Gs8r88m success
Program bankHHdqMuaaST4qQk6mkzxGeKPHWmqdgor6Gs8r88m invoke [2]
Program log: Instruction: SetVaultLock
Program bankHHdqMuaaST4qQk6mkzxGeKPHWmqdgor6Gs8r88m consumed 8099 of 49446 compute units
Program bankHHdqMuaaST4qQk6mkzxGeKPHWmqdgor6Gs8r88m success
Program farmL4xeBFVXJqtfxCzU9b28QACM7E2W2ctT6epAjvE consumed 200000 of 200000 compute units
Program failed to complete: exceeded maximum number of instructions allowed (200000) at instruction #24575
Program farmL4xeBFVXJqtfxCzU9b28QACM7E2W2ctT6epAjvE failed: Program failed to complete
Failed to obtain package metadata: cargo metadata
exited with an error: error: failed to load manifest for workspace member \\?\C:\Users\pc\Desktop\gem-farm\programs\*
Caused by:
failed to read \\?\C:\Users\pc\Desktop\gem-farm\programs\*\Cargo.toml
Caused by:
The filename, directory name, or volume label syntax is incorrect. (os error 123)
I ran "anchor build" command and after this line:
The program address will default to this keypair (override with --program-id):
.../gem_bank-keypair.json
I get this error:
thread 'main' panicked at 'Code not parseable: Error("bump targets should not be provided with init. Please use bump without a target.")', lang/syn/src/idl/file.rs:353:58
note: run with RUST_BACKTRACE=1
environment variable to display a backtrace
Could anyone help ?
The program needs a reward A and B. What if someone only wants to have one reward type? Also, the rewards must be different mints.
I want to allow our community to stake as well as earn airdrops, but when you stake your NFT gets moved to a "gem box", and I don't want to mistakenly airdrop to the gem box account rather than the owner's wallet. So I need to get the owner's wallet and use that with the gems stored in the gem boxes.
I've been all over the codebase and I believe that I can gain access to these objects by using the bank Id and querying the blockchain, but I do not see how this is possible by traversing through Solscan.io. Also - I see that on the found farm object you can access the account - which shows farmerCount and gemsStaked variables. But for the life of me I don't see how to get the underlying farmers and gems. Also the Bank --> Vault --> Gem Box --> Gem Deposit Receipt relationships appear to allow me to get what I need, but I don't see HOW to grab them this way. I would hope there would be a way to get to something like Bank.Vault.GemBox.GDR to be able to get all of the info I need, but I really don't see how this is possible because it does not appear that these get exposed, or I don't know how to pull them properly.
Is there anyone out there that can suggest a way to pull the list of stakers and their associated gems?
I have an error when execute command anchor deploy --provider.cluster devnet
I'm already trying to airdrop SOL to all addresses and it doesn't help.
Error: Account HVY935iEtTbZCDvxJmVniwhZvrJRCKyT3HWQdrndunCB is not an upgradeable program or already in use
There was a problem deploying: Output { status: ExitStatus(unix_wait_status(256)), stdout: "", stderr: "" }.
I'm following instructions at https://github.com/gemworks/gem-farm#deploy-your-own-version-
After running anchor build
, solana-keygen pubkey ./target/deploy/gem_farm-keypair.json
fails because gem_farm-keypair.json was not created.
➜ gem-farm git:(main) ✗ solana-keygen pubkey ./target/deploy/gem_bank-keypair.json
7s9pNBAG3AyoEsZpsRJZ6WtsKBDC2Z3qGZgqfkc8pbTh
➜ gem-farm git:(main) ✗ solana-keygen pubkey ./target/deploy/gem_farm-keypair.json
Error: No such file or directory (os error 2)
Saw in the documentation that you have to upload config file specifying the rarities. What path do I upload this file to? and how should it be syntactically?
I'm following the steps 1:1, everything is deploying successfully on both localnet and Devnet, and yet ALL transactions go through the original Farm Program ID.
"Gem Farm is deployed at: farmL4xeBFVXJqtfxCzU9b28QACM7E2W2ctT6epAjvE"
Yet, I've deployed and followed the steps 5 times, completely deleting the directory to start fresh and it's still not working/showing my new deployed Farm.
I originally thought Localnet was the issue but even deploying/following the instructions for Devnet it's still showing the original Farm Program ID. If I go through Localnet it obviously fails to do anything simply for the fact of the Program ID "farmL4xeBFVXJqtfxCzU9b28QACM7E2W2ctT6epAjvE" isn't deployed.
I'm manually going through files, line by line, to figure out where this PublicKey is being stored but everywhere I go I'm not seeing it.
I am building this on WSL in Ubuntu. I don't think that would affect anything but any help would be much appreciated. Ripping my hair out.
Is whitelisting stackers/farmers within the scope of this program?
I want to create farms where manager can control who can stack on it.
Let's describe reward
with variable
type with Solana..
It turns out that when manager funds this type of reward, he can specify amount and duration. To me, it seems that amount and duration are highly related to each other, meaning that during that duration, those x
tokens will be rewarded. Somehow, I managed the scenario where after the first funding cycle, there ended up 2 solana on it and others went to the user(he can claim).
Now what I want is specify the next duration:300
cycle though, I want farm to give rewards from those 2 solana, which is impossible. So what actually happens is I still have to provide amount = x
alongside duration:300 so that it starts giving rewards but it never takes rewards from that 2 solana, meaning that 2 solana just got frozen on the account. Can anybody explain how this works ?
Hello @ilmoi ,
Thanks for the great project and rapid update.
I was try to ask if anchor update is possible, but you have upgraded it in a couple of days, so much thanks again.
And I have some questions, maybe should be additional features?
Could you kindly give the answers? @ilmoi
Thanks so much.
What would I use as the environment variable to make it auto connect to a certain farm (so I don't have to type in farm address everytime)
I am quite the Solana noob and I can't figure out how to include multiple instructions or program calls in a single transaction such that it is only necessary to sign with the wallet once.
For example, instead of having to first end staking and afterwards end cooldown I would like to include both in a single click (and single wallet signing).
I would highly appreciate if someone could provide some code examples.
I am able to deploy my own version to devnet but to use the official deployment would I replace the pubkeys in the rs and toml files with the addresses of the official deployment and follow the same instructions?
After following the docs on https://docs.gemworks.gg/ i'm getting stuck at deploying te program.
when running % anchor deploy --provider.cluster devnet
i get the following error:
Deploying workspace: https://api.devnet.solana.com
Upgrade authority: /Users/redacted/.config/solana/id.json
Deploying program "gem_bank"...
Program path: /Users/redacted/stakingfarm/core/target/deploy/gem_bank.so...
Program Id: 7idK2QregNTtsAW9gy1bbL2vwYZ4E154dCjH1MGmMPRM
Deploying program "gem_farm"...
Program path: /Users/redacted/stakingfarm/core/target/deploy/gem_farm.so...
==========================================================================
Recover the intermediate account's ephemeral keypair file with
`solana-keygen recover` and the following 12-word seed phrase:
==========================================================================
redacted passphrase
==========================================================================
To resume a deploy, pass the recovered keypair as the
[BUFFER_SIGNER] to `solana program deploy` or `solana write-buffer'.
Or to recover the account's lamports, pass it as the
[BUFFER_ACCOUNT_ADDRESS] argument to `solana program close`.
==========================================================================
Error: Custom: Invalid blockhash
There was a problem deploying: Output { status: ExitStatus(unix_wait_status(256)), stdout: "", stderr: "" }.
I've been trying to add rarities to a deployed gem-farm,
I've tried on both devnet and on mainnet but I keep getting the same error,
{code: 3007, msg: "The given account is owned by a different program than expected"}
I've tried using this repo too:
https://github.com/nf0x/gemworks_rarity_configuration/
but everything returns same error.
Any help would be greatly appreciated
Devnet need around 10+ SOL to Deploy Program, then how much the cost if we want to deploy to mainnet?
I just want to try to deploy it on mainnnet. Could we add it on readme please?
Hello everyone,
I'm able to move all the gems I want to the vault, but when I try to "Begin Stacking" I get this error message:
Uncaught (in promise) Error: failed to send transaction: Transaction simulation failed: Error processing Instruction 0: custom program error: 0x159
at Connection.sendEncodedTransaction (index.browser.esm.js?64b9:7055:1)
at async Connection.sendRawTransaction (index.browser.esm.js?64b9:7014:1)
at async sendAndConfirmRawTransaction (index.browser.esm.js?725d:8977:1)
at async Provider.send (provider.js?877c:82:1)
at async Object.rpc [as stake] (rpc.js?7ffe:9:1)
All works well If I only stack 1 Gem.
Anyone else having an issue like this one ?
Thanks!
ERROR in ../../tests/gem-bank/gem-bank.client.ts:10:25
TS2307: Cannot find module '../../target/types/gem_bank' or its corresponding type declarations.
8 | } from '@solana/spl-token';
9 | import { AccountUtils } from '../gem-common/account-utils';
> 10 | import { GemBank } from '../../target/types/gem_bank';
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
11 | import { isKp } from '../gem-common/types';
12 |
13 | export enum BankFlags {
I got this error wen yarn && yarn serve
inside app/gem-bank
after following the steps from https://docs.gemworks.gg/get-started
A farm has been deployed with roughly ~168 GEMS; we tried airdropping a SPL token with 9 decimals but unfortunately GEMS wont work or its not behaving as expected. The issue here is that I can't seem to unstake my NFTs.
Any recommendation on how to approach this particular issue? it happens with 'unstaking' or 'adding more nfts' or even 'claiming the particular spl token'
Program farmL4xeBFVXJqtfxCzU9b28QACM7E2W2ctT6epAjvE invoke [1]
Program log: Instruction: Unstake
Program log: unstake
Program log: panicked at 'cannot convert to u64 due to overflow', programs/gem_farm/src/number128.rs:44:13
When I run Anchor build I recive this error:
Failed to obtain package metadata: cargo metadata
exited with an error: error: failed to load manifest for workspace member \\?\C:\Users\lucas\Desktop\gem-farm\programs\*
Caused by:
failed to read \\?\C:\Users\lucas\Desktop\gem-farm\programs\*\Cargo.toml
Caused by:
La sintassi del nome del file, della directory o del volume non è corretta. (os error 123)
How can I fix?
I would like to know, if I edited, would it be possible to change the network to polygon, I have an nft project and I needed a staking system in polygon
We have two type of NFTs: A & B, farmers can stake both A & B or only A to get reward, we want to prevent farmers from staking only B to our farm, is this feature available?
THX.
this works the first time you flash deposit then never works again just throwing errors. check on the main gemworks.gg site with multiple different farms. any suggestion on how to fix?
I've created a mainnet farm and farmers using the GemFarm front end here https://www.gemfarm.gg/
I had no issues on devnet, but as soon as I switched to mainnet I started getting transaction timeout errors (see below). They're happening for maybe every 4 out of 10 transactions. I'm not sure if this is a network issue as i've tested with others and had no issues. Has anybody experienced anything similar?
Thanks
Transaction was not confirmed in 30.01 seconds. It is unknown if it succeeded or failed. Check signature 3p2MkXJEs55yxAUyoiDuCd4yriL6YLQhBaYMKQ2ycSrf53vpsJBquKCe2VNRNCW8ncSTgqyMUBzx1YLDPC3H8NzB using the Solana Explorer or CLI tools.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.