diff --git a/ocp/common/mint.go b/ocp/common/mint.go index 1b64d46..c71cf7a 100644 --- a/ocp/common/mint.go +++ b/ocp/common/mint.go @@ -22,11 +22,13 @@ var ( ErrUnsupportedMint = errors.New("unsupported mint") + badBoysMintAccount, _ = NewAccountFromPublicKeyString(config.BadBoysMintPublicKey) bitsMintAccount, _ = NewAccountFromPublicKeyString(config.BitsMintPublicKey) bogeyMintAccount, _ = NewAccountFromPublicKeyString(config.BogeyMintPublicKey) floatMintAccount, _ = NewAccountFromPublicKeyString(config.FloatMintPublicKey) jeffyMintAccount, _ = NewAccountFromPublicKeyString(config.JeffyMintPublicKey) marketCoinMintAccount, _ = NewAccountFromPublicKeyString(config.MarketCoinMintPublicKey) + testMintAccount, _ = NewAccountFromPublicKeyString(config.TestMintPublicKey) xpMintAccount, _ = NewAccountFromPublicKeyString(config.XpMintPublicKey) ) diff --git a/ocp/common/vm.go b/ocp/common/vm.go index 3f5c82d..c97a352 100644 --- a/ocp/common/vm.go +++ b/ocp/common/vm.go @@ -13,6 +13,10 @@ var ( // todo: DB store to track VM per mint + badBoysAuthority, _ = NewAccountFromPublicKeyString(config.BadBoysAuthorityPublicKey) + badBoysVmAccount, _ = NewAccountFromPublicKeyString(config.BadBoysVmAccountPublicKey) + badBoysVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.BadBoysVmOmnibusPublicKey) + bitsAuthority, _ = NewAccountFromPublicKeyString(config.BitsAuthorityPublicKey) bitsVmAccount, _ = NewAccountFromPublicKeyString(config.BitsVmAccountPublicKey) bitsVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.BitsVmOmnibusPublicKey) @@ -33,6 +37,10 @@ var ( marketCoinVmAccount, _ = NewAccountFromPublicKeyString(config.MarketCoinVmAccountPublicKey) marketCoinVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.MarketCoinVmOmnibusPublicKey) + testAuthority, _ = NewAccountFromPublicKeyString(config.TestAuthorityPublicKey) + testVmAccount, _ = NewAccountFromPublicKeyString(config.TestVmAccountPublicKey) + testVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.TestVmOmnibusPublicKey) + xpAuthority, _ = NewAccountFromPublicKeyString(config.XpAuthorityPublicKey) xpVmAccount, _ = NewAccountFromPublicKeyString(config.XpVmAccountPublicKey) xpVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.XpVmOmnibusPublicKey) @@ -58,6 +66,25 @@ func GetVmConfigForMint(ctx context.Context, data ocp_data.Provider, mintAccount Omnibus: CoreMintVmOmnibusAccount, Mint: CoreMintAccount, }, nil + case badBoysMintAccount.PublicKey().ToBase58(): + if badBoysAuthority.PrivateKey() == nil { + vaultRecord, err := data.GetKey(ctx, badBoysAuthority.PublicKey().ToBase58()) + if err != nil { + return nil, err + } + + badBoysAuthority, err = NewAccountFromPrivateKeyString(vaultRecord.PrivateKey) + if err != nil { + return nil, err + } + } + + return &VmConfig{ + Authority: badBoysAuthority, + Vm: badBoysVmAccount, + Omnibus: badBoysVmOmnibusAccount, + Mint: mintAccount, + }, nil case bitsMintAccount.PublicKey().ToBase58(): if bitsAuthority.PrivateKey() == nil { vaultRecord, err := data.GetKey(ctx, bitsAuthority.PublicKey().ToBase58()) @@ -153,6 +180,25 @@ func GetVmConfigForMint(ctx context.Context, data ocp_data.Provider, mintAccount Omnibus: marketCoinVmOmnibusAccount, Mint: mintAccount, }, nil + case testMintAccount.PublicKey().ToBase58(): + if testAuthority.PrivateKey() == nil { + vaultRecord, err := data.GetKey(ctx, testAuthority.PublicKey().ToBase58()) + if err != nil { + return nil, err + } + + testAuthority, err = NewAccountFromPrivateKeyString(vaultRecord.PrivateKey) + if err != nil { + return nil, err + } + } + + return &VmConfig{ + Authority: testAuthority, + Vm: testVmAccount, + Omnibus: testVmOmnibusAccount, + Mint: mintAccount, + }, nil case xpMintAccount.PublicKey().ToBase58(): if xpAuthority.PrivateKey() == nil { vaultRecord, err := data.GetKey(ctx, xpAuthority.PublicKey().ToBase58()) diff --git a/ocp/config/config.go b/ocp/config/config.go index 69caa8b..26a497f 100644 --- a/ocp/config/config.go +++ b/ocp/config/config.go @@ -25,6 +25,11 @@ const ( // todo: DB store to track VM per mint + BadBoysMintPublicKey = "64dkhPKhdjc2xg3NLyDjC14wiXHLnGXHHUxJnqZVugJt" + BadBoysAuthorityPublicKey = "bbVCosXYRMBTbcmLsRXqHSzaUDJpSStYRqTstcpVxwx" + BadBoysVmAccountPublicKey = "9EpU4RGoe7zfJdLjLyXWLpza6RZHqN6QV73z1gfNKCJa" + BadBoysVmOmnibusPublicKey = "7pQkiRaXdMW3bLJK6D1huP175AF5wD6gXNPBsvQ8bJZ3" + BitsMintPublicKey = "A3e8dzb1y4gqGP2cnCS3UU8dm5YNrFpZBpjjdoZdtfnB" BitsAuthorityPublicKey = "bit8rCyAcstm1ZiwLq22FHdz8wAigKU46hmtrigrGub" BitsVmAccountPublicKey = "5zDzL3CHb3wFxs7xnkxmWMGMR1gjNtYgV46PTBgSHmsJ" @@ -50,6 +55,11 @@ const ( MarketCoinVmAccountPublicKey = "AeJ6x6mtwdjUM2AqppQ7zG6m89sx5c8qegfFPzjmD2x6" MarketCoinVmOmnibusPublicKey = "CQMdG8AKtLP9JCU4GAzKunKnsfpXVFdMcSwQd3Hd5oZg" + TestMintPublicKey = "2psDP3LAvbNzfvBYNMs9ieMpsD8PVzyQsKNfZrjEKoDN" + TestAuthorityPublicKey = "tstBCPtzNDycsM7rAd2CxzdgKh1gWrMULzrDHuGVXAW" + TestVmAccountPublicKey = "CYtzE732LQ7YP9sngSPUQhCCTQ8GY14dmjWX2hXP16Np" + TestVmOmnibusPublicKey = "65Ghp2FFPmdB3FLkC2NCKkBQ3RuXgmjZ56DDGZLVAZZa" + XpMintPublicKey = "6oZnhB1FPrUaDfhRCVZnbVWNKVx9wgj84vKGH7eMpzXL" XpAuthorityPublicKey = "xpTXV7BNXwsdvCaFKfeT4h6rSnKck2Bv5iBAFFS5Uwk" XpVmAccountPublicKey = "4qnCaQkGxCnr66cmPfpNfM2rxaaTMFSSfbY9gXZgCYdS" diff --git a/ocp/rpc/currency/worker.go b/ocp/rpc/currency/worker.go index 580ca23..02d17ce 100644 --- a/ocp/rpc/currency/worker.go +++ b/ocp/rpc/currency/worker.go @@ -23,22 +23,26 @@ import ( ) var ( + badBoysMintAccount, _ = common.NewAccountFromPublicKeyString(config.BadBoysMintPublicKey) bitsMintAccount, _ = common.NewAccountFromPublicKeyString(config.BitsMintPublicKey) bogeyMintAccount, _ = common.NewAccountFromPublicKeyString(config.BogeyMintPublicKey) floatMintAccount, _ = common.NewAccountFromPublicKeyString(config.FloatMintPublicKey) jeffyMintAccount, _ = common.NewAccountFromPublicKeyString(config.JeffyMintPublicKey) marketCoinMintAccount, _ = common.NewAccountFromPublicKeyString(config.MarketCoinMintPublicKey) + testMintAccount, _ = common.NewAccountFromPublicKeyString(config.TestMintPublicKey) xpMintAccount, _ = common.NewAccountFromPublicKeyString(config.XpMintPublicKey) ) // trackedLaunchpadMints is the hardcoded set of launchpad mints to track // (excludes core mint as it only has exchange rate data) var trackedLaunchpadMints = []*common.Account{ + badBoysMintAccount, bitsMintAccount, bogeyMintAccount, floatMintAccount, jeffyMintAccount, marketCoinMintAccount, + testMintAccount, xpMintAccount, } diff --git a/ocp/worker/currency/reserve.go b/ocp/worker/currency/reserve.go index 8aa135d..187bce3 100644 --- a/ocp/worker/currency/reserve.go +++ b/ocp/worker/currency/reserve.go @@ -160,6 +160,36 @@ func (p *reserveRuntime) UpdateAllLaunchpadCurrencyReserves(ctx context.Context) }) }() + err7 := func() error { + badBoysMintAccount, _ := common.NewAccountFromPublicKeyString(config.BadBoysMintPublicKey) + + ciculatingSupply, ts, err := currency_util.GetLaunchpadCurrencyCirculatingSupply(ctx, p.data, badBoysMintAccount) + if err != nil { + return err + } + + return p.data.PutCurrencyReserve(ctx, ¤cy.ReserveRecord{ + Mint: badBoysMintAccount.PublicKey().ToBase58(), + SupplyFromBonding: ciculatingSupply, + Time: ts, + }) + }() + + err8 := func() error { + testMintAccount, _ := common.NewAccountFromPublicKeyString(config.TestMintPublicKey) + + ciculatingSupply, ts, err := currency_util.GetLaunchpadCurrencyCirculatingSupply(ctx, p.data, testMintAccount) + if err != nil { + return err + } + + return p.data.PutCurrencyReserve(ctx, ¤cy.ReserveRecord{ + Mint: testMintAccount.PublicKey().ToBase58(), + SupplyFromBonding: ciculatingSupply, + Time: ts, + }) + }() + if err1 != nil { return err1 } @@ -178,6 +208,12 @@ func (p *reserveRuntime) UpdateAllLaunchpadCurrencyReserves(ctx context.Context) if err6 != nil { return err6 } + if err7 != nil { + return err7 + } + if err8 != nil { + return err8 + } return nil } diff --git a/ocp/worker/geyser/handler.go b/ocp/worker/geyser/handler.go index 4276a85..3d25b00 100644 --- a/ocp/worker/geyser/handler.go +++ b/ocp/worker/geyser/handler.go @@ -85,11 +85,13 @@ func (h *TokenProgramAccountHandler) Handle(ctx context.Context, update *geyserp // todo: Don't hardcode Jeffy and other Flipcash currencies case common.CoreMintAccount.PublicKey().ToBase58(), + config.BadBoysMintPublicKey, config.BitsMintPublicKey, config.BogeyMintPublicKey, config.FloatMintPublicKey, config.JeffyMintPublicKey, config.MarketCoinMintPublicKey, + config.TestMintPublicKey, config.XpMintPublicKey: // Not an ATA, so filter it out. It cannot be a VM deposit ATA if bytes.Equal(tokenAccount.PublicKey().ToBytes(), ownerAccount.PublicKey().ToBytes()) { diff --git a/ocp/worker/nonce/runtime.go b/ocp/worker/nonce/runtime.go index 9fa1b25..4114658 100644 --- a/ocp/worker/nonce/runtime.go +++ b/ocp/worker/nonce/runtime.go @@ -70,11 +70,13 @@ func (p *runtime) Start(ctx context.Context, interval time.Duration) error { // todo: Dynamically detect VMs for _, vm := range []string{ common.CoreMintVmAccount.PublicKey().ToBase58(), + config.BadBoysVmAccountPublicKey, config.BitsVmAccountPublicKey, config.BogeyVmAccountPublicKey, config.FloatVmAccountPublicKey, config.JeffyVmAccountPublicKey, config.MarketCoinVmAccountPublicKey, + config.TestVmAccountPublicKey, config.XpVmAccountPublicKey, } { for _, state := range []nonce.State{