Skip to content

Commit db04b58

Browse files
committed
Support another launchpad currency
1 parent 5ac1eba commit db04b58

File tree

6 files changed

+100
-33
lines changed

6 files changed

+100
-33
lines changed

pkg/code/async/currency/reserve.go

Lines changed: 62 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -72,29 +72,68 @@ func (p *reserveService) Start(serviceCtx context.Context, interval time.Duratio
7272

7373
// todo: Don't hardcode Jeffy
7474
func (p *reserveService) UpdateAllLaunchpadCurrencyReserves(ctx context.Context) error {
75-
jeffyMintAccount, _ := common.NewAccountFromPublicKeyString("52MNGpgvydSwCtC2H4qeiZXZ1TxEuRVCRGa8LAfk2kSj")
76-
jeffyVaultAccount, _ := common.NewAccountFromPublicKeyString("BFDanLgELhpCCGTtaa7c8WGxTXcTxgwkf9DMQd4qheSK")
77-
coreMintVaultAccount, _ := common.NewAccountFromPublicKeyString("A9NVHVuorNL4y2YFxdwdU3Hqozxw1Y1YJ81ZPxJsRrT4")
78-
79-
var tokenAccount token.Account
80-
ai, err := p.data.GetBlockchainAccountInfo(ctx, jeffyVaultAccount.PublicKey().ToBase58(), solana.CommitmentFinalized)
81-
if err != nil {
82-
return err
83-
}
84-
tokenAccount.Unmarshal(ai.Data)
85-
jeffyVaultBalance := tokenAccount.Amount
75+
err1 := func() error {
76+
jeffyMintAccount, _ := common.NewAccountFromPublicKeyString("52MNGpgvydSwCtC2H4qeiZXZ1TxEuRVCRGa8LAfk2kSj")
77+
jeffyVaultAccount, _ := common.NewAccountFromPublicKeyString("BFDanLgELhpCCGTtaa7c8WGxTXcTxgwkf9DMQd4qheSK")
78+
coreMintVaultAccount, _ := common.NewAccountFromPublicKeyString("A9NVHVuorNL4y2YFxdwdU3Hqozxw1Y1YJ81ZPxJsRrT4")
79+
80+
var tokenAccount token.Account
81+
ai, err := p.data.GetBlockchainAccountInfo(ctx, jeffyVaultAccount.PublicKey().ToBase58(), solana.CommitmentFinalized)
82+
if err != nil {
83+
return err
84+
}
85+
tokenAccount.Unmarshal(ai.Data)
86+
jeffyVaultBalance := tokenAccount.Amount
87+
88+
ai, err = p.data.GetBlockchainAccountInfo(ctx, coreMintVaultAccount.PublicKey().ToBase58(), solana.CommitmentFinalized)
89+
if err != nil {
90+
return err
91+
}
92+
tokenAccount.Unmarshal(ai.Data)
93+
coreMintVaultBalance := tokenAccount.Amount
94+
95+
return p.data.PutCurrencyReserve(ctx, &currency.ReserveRecord{
96+
Mint: jeffyMintAccount.PublicKey().ToBase58(),
97+
SupplyFromBonding: currencycreator.DefaultMintMaxQuarkSupply - jeffyVaultBalance,
98+
CoreMintLocked: coreMintVaultBalance,
99+
Time: time.Now(),
100+
})
101+
}()
102+
103+
err2 := func() error {
104+
knicksNightMintAccount, _ := common.NewAccountFromPublicKeyString("497Wy6cY9BjWBiaDHzJ7TcUZqF2gE1Qm7yXtSj1vSr5W")
105+
knicksNightVaultAccount, _ := common.NewAccountFromPublicKeyString("GEJGcTHfggJ4P82AwrmNWji2AkLq5eRUDM2hQSZ5SXpt")
106+
coreMintVaultAccount, _ := common.NewAccountFromPublicKeyString("AZN7RinWLBtjxtJL6rLxFgb2rtcbpUJ67pfcq71Z3mKk")
86107

87-
ai, err = p.data.GetBlockchainAccountInfo(ctx, coreMintVaultAccount.PublicKey().ToBase58(), solana.CommitmentFinalized)
88-
if err != nil {
89-
return err
108+
var tokenAccount token.Account
109+
ai, err := p.data.GetBlockchainAccountInfo(ctx, knicksNightVaultAccount.PublicKey().ToBase58(), solana.CommitmentFinalized)
110+
if err != nil {
111+
return err
112+
}
113+
tokenAccount.Unmarshal(ai.Data)
114+
knicksNightVaultBalance := tokenAccount.Amount
115+
116+
ai, err = p.data.GetBlockchainAccountInfo(ctx, coreMintVaultAccount.PublicKey().ToBase58(), solana.CommitmentFinalized)
117+
if err != nil {
118+
return err
119+
}
120+
tokenAccount.Unmarshal(ai.Data)
121+
coreMintVaultBalance := tokenAccount.Amount
122+
123+
return p.data.PutCurrencyReserve(ctx, &currency.ReserveRecord{
124+
Mint: knicksNightMintAccount.PublicKey().ToBase58(),
125+
SupplyFromBonding: currencycreator.DefaultMintMaxQuarkSupply - knicksNightVaultBalance,
126+
CoreMintLocked: coreMintVaultBalance,
127+
Time: time.Now(),
128+
})
129+
}()
130+
131+
if err1 != nil {
132+
return err1
90133
}
91-
tokenAccount.Unmarshal(ai.Data)
92-
coreMintVaultBalance := tokenAccount.Amount
93-
94-
return p.data.PutCurrencyReserve(ctx, &currency.ReserveRecord{
95-
Mint: jeffyMintAccount.PublicKey().ToBase58(),
96-
SupplyFromBonding: currencycreator.DefaultMintMaxQuarkSupply - jeffyVaultBalance,
97-
CoreMintLocked: coreMintVaultBalance,
98-
Time: time.Now(),
99-
})
134+
if err2 != nil {
135+
return err2
136+
}
137+
138+
return nil
100139
}

pkg/code/async/geyser/handler.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ func (h *TokenProgramAccountHandler) Handle(ctx context.Context, update *geyserp
8585

8686
switch mintAccount.PublicKey().ToBase58() {
8787

88-
case common.CoreMintAccount.PublicKey().ToBase58(), "52MNGpgvydSwCtC2H4qeiZXZ1TxEuRVCRGa8LAfk2kSj":
88+
case common.CoreMintAccount.PublicKey().ToBase58(), "52MNGpgvydSwCtC2H4qeiZXZ1TxEuRVCRGa8LAfk2kSj", "497Wy6cY9BjWBiaDHzJ7TcUZqF2gE1Qm7yXtSj1vSr5W":
8989
// Not an ATA, so filter it out. It cannot be a VM deposit ATA
9090
if bytes.Equal(tokenAccount.PublicKey().ToBytes(), ownerAccount.PublicKey().ToBytes()) {
9191
return nil

pkg/code/async/nonce/service.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ func (p *service) Start(ctx context.Context, interval time.Duration) error {
6868
for _, vm := range []string{
6969
common.CodeVmAccount.PublicKey().ToBase58(),
7070
"Bii3UFB9DzPq6UxgewF5iv9h1Gi8ZnP6mr7PtocHGNta",
71+
"9Du5GuKYT21ydLQ9KzUTWWQ7NKdwoXB15y4ypNnnpbJa",
7172
} {
7273
for _, state := range []nonce.State{
7374
nonce.StateReleased,

pkg/code/common/mint.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ var (
1717
CoreMintName = config.CoreMintName
1818
CoreMintSymbol = config.CoreMintSymbol
1919

20-
jeffyMintAccount, _ = NewAccountFromPublicKeyString(config.JeffyMintPublicKey)
20+
jeffyMintAccount, _ = NewAccountFromPublicKeyString(config.JeffyMintPublicKey)
21+
knicksNightMintAccount, _ = NewAccountFromPublicKeyString(config.KnicksNightMintPublicKey)
2122
)
2223

2324
func GetBackwardsCompatMint(protoMint *commonpb.SolanaAccountId) (*Account, error) {

pkg/code/common/vm.go

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,12 @@ var (
1616
CodeVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.VmOmnibusPublicKey)
1717

1818
// todo: DB store to track VM per mint
19-
jeffyAuthority, _ = NewAccountFromPublicKeyString(config.JeffyAuthorityPublicKey)
20-
jeffyVmAccount, _ = NewAccountFromPublicKeyString(config.JeffyVmAccountPublicKey)
21-
jeffyVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.JeffyVmOmnibusPublicKey)
19+
jeffyAuthority, _ = NewAccountFromPublicKeyString(config.JeffyAuthorityPublicKey)
20+
jeffyVmAccount, _ = NewAccountFromPublicKeyString(config.JeffyVmAccountPublicKey)
21+
jeffyVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.JeffyVmOmnibusPublicKey)
22+
knicksNightAuthority, _ = NewAccountFromPublicKeyString(config.KnicksNightAuthorityPublicKey)
23+
knicksNightVmAccount, _ = NewAccountFromPublicKeyString(config.KnicksNightVmAccountPublicKey)
24+
knicksNightVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.KnicksNightVmOmnibusPublicKey)
2225
)
2326

2427
type VmConfig struct {
@@ -56,6 +59,25 @@ func GetVmConfigForMint(ctx context.Context, data code_data.Provider, mint *Acco
5659
Omnibus: jeffyVmOmnibusAccount,
5760
Mint: mint,
5861
}, nil
62+
case knicksNightMintAccount.PublicKey().ToBase58():
63+
if knicksNightAuthority.PrivateKey() == nil {
64+
vaultRecord, err := data.GetKey(ctx, knicksNightAuthority.PublicKey().ToBase58())
65+
if err != nil {
66+
return nil, err
67+
}
68+
69+
knicksNightAuthority, err = NewAccountFromPrivateKeyString(vaultRecord.PrivateKey)
70+
if err != nil {
71+
return nil, err
72+
}
73+
}
74+
75+
return &VmConfig{
76+
Authority: knicksNightAuthority,
77+
Vm: knicksNightVmAccount,
78+
Omnibus: knicksNightVmOmnibusAccount,
79+
Mint: mint,
80+
}, nil
5981
default:
6082
return nil, errors.New("unsupported mint")
6183
}

pkg/code/config/config.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ const (
1717
CoreMintName = "USDC"
1818
CoreMintSymbol = "USDC"
1919
CoreMintDescription = "USDC is a regulated digital currency established in 2018 and issued by Circle, a regulated financial service business that follows strict US laws and standards to protect your money. Every USDC in existence is backed by a US dollar or cash equivalent asset that Circle has in its publicly visible reserves, with assurances issued monthly by a Big Four accounting firm."
20-
CoreMintImageUrl = "https://pbs.twimg.com/profile_images/1916937910928211968/CKblfanr_400x400.png"
20+
CoreMintImageUrl = "https://flipcash-currency-assets.s3.us-east-1.amazonaws.com/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v/icon.png"
2121

2222
// Random value. Replace with real subsidizer public keys
2323
SubsidizerPublicKey = "84ydcM4Yp59W6aZP6eSaKiAMaKidNLfb5k318sT2pm14"
@@ -27,10 +27,14 @@ const (
2727
VmOmnibusPublicKey = "GNw1t85VH8b1CcwB5933KBC7PboDPJ5EcQdGynbfN1Pb"
2828

2929
// todo: DB store to track VM per mint
30-
JeffyMintPublicKey = "52MNGpgvydSwCtC2H4qeiZXZ1TxEuRVCRGa8LAfk2kSj"
31-
JeffyAuthorityPublicKey = "jfy1btcfsjSn2WCqLVaxiEjp4zgmemGyRsdCPbPwnZV"
32-
JeffyVmAccountPublicKey = "Bii3UFB9DzPq6UxgewF5iv9h1Gi8ZnP6mr7PtocHGNta"
33-
JeffyVmOmnibusPublicKey = "CQ5jni8XTXEcMFXS1ytNyTVbJBZHtHCzEtjBPowB3MLD"
30+
JeffyMintPublicKey = "52MNGpgvydSwCtC2H4qeiZXZ1TxEuRVCRGa8LAfk2kSj"
31+
JeffyAuthorityPublicKey = "jfy1btcfsjSn2WCqLVaxiEjp4zgmemGyRsdCPbPwnZV"
32+
JeffyVmAccountPublicKey = "Bii3UFB9DzPq6UxgewF5iv9h1Gi8ZnP6mr7PtocHGNta"
33+
JeffyVmOmnibusPublicKey = "CQ5jni8XTXEcMFXS1ytNyTVbJBZHtHCzEtjBPowB3MLD"
34+
KnicksNightMintPublicKey = "497Wy6cY9BjWBiaDHzJ7TcUZqF2gE1Qm7yXtSj1vSr5W"
35+
KnicksNightAuthorityPublicKey = "kn1VC4z3LUupQu41jCxx3PGNDmVyN3PswcAuvtyyHzS"
36+
KnicksNightVmAccountPublicKey = "9Du5GuKYT21ydLQ9KzUTWWQ7NKdwoXB15y4ypNnnpbJa"
37+
KnicksNightVmOmnibusPublicKey = "CqiUoainSQuqJNUxngLxemtGHcJR8tAueReduaL42kmK"
3438
)
3539

3640
var (

0 commit comments

Comments
 (0)