Skip to content

Commit aa69906

Browse files
authored
Setup additional test/demo currencies (#86)
1 parent 1adca23 commit aa69906

7 files changed

Lines changed: 263 additions & 5 deletions

File tree

ocp/common/mint.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,12 @@ var (
2222

2323
ErrUnsupportedMint = errors.New("unsupported mint")
2424

25-
jeffyMintAccount, _ = NewAccountFromPublicKeyString(config.JeffyMintPublicKey)
25+
bitsMintAccount, _ = NewAccountFromPublicKeyString(config.BitsMintPublicKey)
26+
bogeyMintAccount, _ = NewAccountFromPublicKeyString(config.BogeyMintPublicKey)
27+
floatMintAccount, _ = NewAccountFromPublicKeyString(config.FloatMintPublicKey)
28+
jeffyMintAccount, _ = NewAccountFromPublicKeyString(config.JeffyMintPublicKey)
29+
marketCoinMintAccount, _ = NewAccountFromPublicKeyString(config.MarketCoinMintPublicKey)
30+
xpMintAccount, _ = NewAccountFromPublicKeyString(config.XpMintPublicKey)
2631
)
2732

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

ocp/common/vm.go

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,30 @@ var (
1212
CoreMintVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.CoreMintVmOmnibusPublicKey)
1313

1414
// todo: DB store to track VM per mint
15+
16+
bitsAuthority, _ = NewAccountFromPublicKeyString(config.BitsAuthorityPublicKey)
17+
bitsVmAccount, _ = NewAccountFromPublicKeyString(config.BitsVmAccountPublicKey)
18+
bitsVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.BitsVmOmnibusPublicKey)
19+
20+
bogeyAuthority, _ = NewAccountFromPublicKeyString(config.BogeyAuthorityPublicKey)
21+
bogeyVmAccount, _ = NewAccountFromPublicKeyString(config.BogeyVmAccountPublicKey)
22+
bogeyVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.BogeyVmOmnibusPublicKey)
23+
24+
floatAuthority, _ = NewAccountFromPublicKeyString(config.FloatAuthorityPublicKey)
25+
floatVmAccount, _ = NewAccountFromPublicKeyString(config.FloatVmAccountPublicKey)
26+
floatVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.FloatVmOmnibusPublicKey)
27+
1528
jeffyAuthority, _ = NewAccountFromPublicKeyString(config.JeffyAuthorityPublicKey)
1629
jeffyVmAccount, _ = NewAccountFromPublicKeyString(config.JeffyVmAccountPublicKey)
1730
jeffyVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.JeffyVmOmnibusPublicKey)
31+
32+
marketCoinAuthority, _ = NewAccountFromPublicKeyString(config.MarketCoinAuthorityPublicKey)
33+
marketCoinVmAccount, _ = NewAccountFromPublicKeyString(config.MarketCoinVmAccountPublicKey)
34+
marketCoinVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.MarketCoinVmOmnibusPublicKey)
35+
36+
xpAuthority, _ = NewAccountFromPublicKeyString(config.XpAuthorityPublicKey)
37+
xpVmAccount, _ = NewAccountFromPublicKeyString(config.XpVmAccountPublicKey)
38+
xpVmOmnibusAccount, _ = NewAccountFromPublicKeyString(config.XpVmOmnibusPublicKey)
1839
)
1940

2041
type VmConfig struct {
@@ -37,6 +58,63 @@ func GetVmConfigForMint(ctx context.Context, data ocp_data.Provider, mintAccount
3758
Omnibus: CoreMintVmOmnibusAccount,
3859
Mint: CoreMintAccount,
3960
}, nil
61+
case bitsMintAccount.PublicKey().ToBase58():
62+
if bitsAuthority.PrivateKey() == nil {
63+
vaultRecord, err := data.GetKey(ctx, bitsAuthority.PublicKey().ToBase58())
64+
if err != nil {
65+
return nil, err
66+
}
67+
68+
bitsAuthority, err = NewAccountFromPrivateKeyString(vaultRecord.PrivateKey)
69+
if err != nil {
70+
return nil, err
71+
}
72+
}
73+
74+
return &VmConfig{
75+
Authority: bitsAuthority,
76+
Vm: bitsVmAccount,
77+
Omnibus: bitsVmOmnibusAccount,
78+
Mint: mintAccount,
79+
}, nil
80+
case bogeyMintAccount.PublicKey().ToBase58():
81+
if bogeyAuthority.PrivateKey() == nil {
82+
vaultRecord, err := data.GetKey(ctx, bogeyAuthority.PublicKey().ToBase58())
83+
if err != nil {
84+
return nil, err
85+
}
86+
87+
bogeyAuthority, err = NewAccountFromPrivateKeyString(vaultRecord.PrivateKey)
88+
if err != nil {
89+
return nil, err
90+
}
91+
}
92+
93+
return &VmConfig{
94+
Authority: bogeyAuthority,
95+
Vm: bogeyVmAccount,
96+
Omnibus: bogeyVmOmnibusAccount,
97+
Mint: mintAccount,
98+
}, nil
99+
case floatMintAccount.PublicKey().ToBase58():
100+
if floatAuthority.PrivateKey() == nil {
101+
vaultRecord, err := data.GetKey(ctx, floatAuthority.PublicKey().ToBase58())
102+
if err != nil {
103+
return nil, err
104+
}
105+
106+
floatAuthority, err = NewAccountFromPrivateKeyString(vaultRecord.PrivateKey)
107+
if err != nil {
108+
return nil, err
109+
}
110+
}
111+
112+
return &VmConfig{
113+
Authority: floatAuthority,
114+
Vm: floatVmAccount,
115+
Omnibus: floatVmOmnibusAccount,
116+
Mint: mintAccount,
117+
}, nil
40118
case jeffyMintAccount.PublicKey().ToBase58():
41119
if jeffyAuthority.PrivateKey() == nil {
42120
vaultRecord, err := data.GetKey(ctx, jeffyAuthority.PublicKey().ToBase58())
@@ -56,6 +134,44 @@ func GetVmConfigForMint(ctx context.Context, data ocp_data.Provider, mintAccount
56134
Omnibus: jeffyVmOmnibusAccount,
57135
Mint: mintAccount,
58136
}, nil
137+
case marketCoinMintAccount.PublicKey().ToBase58():
138+
if marketCoinAuthority.PrivateKey() == nil {
139+
vaultRecord, err := data.GetKey(ctx, marketCoinAuthority.PublicKey().ToBase58())
140+
if err != nil {
141+
return nil, err
142+
}
143+
144+
marketCoinAuthority, err = NewAccountFromPrivateKeyString(vaultRecord.PrivateKey)
145+
if err != nil {
146+
return nil, err
147+
}
148+
}
149+
150+
return &VmConfig{
151+
Authority: marketCoinAuthority,
152+
Vm: marketCoinVmAccount,
153+
Omnibus: marketCoinVmOmnibusAccount,
154+
Mint: mintAccount,
155+
}, nil
156+
case xpMintAccount.PublicKey().ToBase58():
157+
if xpAuthority.PrivateKey() == nil {
158+
vaultRecord, err := data.GetKey(ctx, xpAuthority.PublicKey().ToBase58())
159+
if err != nil {
160+
return nil, err
161+
}
162+
163+
xpAuthority, err = NewAccountFromPrivateKeyString(vaultRecord.PrivateKey)
164+
if err != nil {
165+
return nil, err
166+
}
167+
}
168+
169+
return &VmConfig{
170+
Authority: xpAuthority,
171+
Vm: xpVmAccount,
172+
Omnibus: xpVmOmnibusAccount,
173+
Mint: mintAccount,
174+
}, nil
59175
default:
60176
return nil, ErrUnsupportedMint
61177
}

ocp/config/config.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,36 @@ const (
2424
CoreMintVmOmnibusPublicKey = "D8oUTXRvarxhx9cjYdFJqWAVj2rmzry58bS6JSTiQsv5"
2525

2626
// todo: DB store to track VM per mint
27+
28+
BitsMintPublicKey = "A3e8dzb1y4gqGP2cnCS3UU8dm5YNrFpZBpjjdoZdtfnB"
29+
BitsAuthorityPublicKey = "bit8rCyAcstm1ZiwLq22FHdz8wAigKU46hmtrigrGub"
30+
BitsVmAccountPublicKey = "5zDzL3CHb3wFxs7xnkxmWMGMR1gjNtYgV46PTBgSHmsJ"
31+
BitsVmOmnibusPublicKey = "872F9FFXnSMPahkYjB8uF1pz1CrgMrmbfKQMGNCdVBvc"
32+
33+
BogeyMintPublicKey = "3AhBb1fpDTp1F9hPkZjRPDejXBM9S5vfpVdvn66vLYnT"
34+
BogeyAuthorityPublicKey = "bgy6SZdBCjVbftagjp4Vv5rvajTHmmh4ccsZbD9F3m3"
35+
BogeyVmAccountPublicKey = "2KWN2ame8kZKfFc6iyNAWNZsTvByfo3Mrzue6NasNC5B"
36+
BogeyVmOmnibusPublicKey = "H52LuBfwtBNZ3qrX8gqteF2mLx3EscdeUiryUC4fFFfR"
37+
38+
FloatMintPublicKey = "5APqK9YUZupKt7rRUrpYy6WV3RPuxA71ZtKJffDUMdPP"
39+
FloatAuthorityPublicKey = "f1t57oRwzBvtcqfAkjGKsEAbXymDSbL7pp3iRmDw9iz"
40+
FloatVmAccountPublicKey = "5PKurz63VfSozHbkzwdudpDeA7mUuif8XTfNP932jRYy"
41+
FloatVmOmnibusPublicKey = "98W5qFv7jiFvNA5c72kj7ku2hhFgaAEUfBXcLw8SK1yY"
42+
2743
JeffyMintPublicKey = "54ggcQ23uen5b9QXMAns99MQNTKn7iyzq4wvCW6e8r25"
2844
JeffyAuthorityPublicKey = "jfy1btcfsjSn2WCqLVaxiEjp4zgmemGyRsdCPbPwnZV"
2945
JeffyVmAccountPublicKey = "8rwgUXsLSq1Pn51UJs4NGVA1cTkemwBgKyWPfFYgnm3B"
3046
JeffyVmOmnibusPublicKey = "9XiqBPYSG2cBwpb8MqJeuFmLaQaAAr6gwikyBrPZDQ8R"
47+
48+
MarketCoinMintPublicKey = "311m6Sb1814PfAxkEcqq6MNdBiVZLr8VWuAWDSC72euW"
49+
MarketCoinAuthorityPublicKey = "mrkthxqn4rKCZw1pDxhJTpCrvUBtK9m6aLvCeY3PyWR"
50+
MarketCoinVmAccountPublicKey = "AeJ6x6mtwdjUM2AqppQ7zG6m89sx5c8qegfFPzjmD2x6"
51+
MarketCoinVmOmnibusPublicKey = "CQMdG8AKtLP9JCU4GAzKunKnsfpXVFdMcSwQd3Hd5oZg"
52+
53+
XpMintPublicKey = "6oZnhB1FPrUaDfhRCVZnbVWNKVx9wgj84vKGH7eMpzXL"
54+
XpAuthorityPublicKey = "xpTXV7BNXwsdvCaFKfeT4h6rSnKck2Bv5iBAFFS5Uwk"
55+
XpVmAccountPublicKey = "4qnCaQkGxCnr66cmPfpNfM2rxaaTMFSSfbY9gXZgCYdS"
56+
XpVmOmnibusPublicKey = "5FCroyNvCXpLFkNuNQ4fw8Lk8xNGwGpwoTjzhRMbaBUo"
3157
)
3258

3359
var (

ocp/rpc/currency/worker.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,23 @@ import (
2323
)
2424

2525
var (
26-
jeffyMintAccount, _ = common.NewAccountFromPublicKeyString(config.JeffyMintPublicKey)
26+
bitsMintAccount, _ = common.NewAccountFromPublicKeyString(config.BitsMintPublicKey)
27+
bogeyMintAccount, _ = common.NewAccountFromPublicKeyString(config.BogeyMintPublicKey)
28+
floatMintAccount, _ = common.NewAccountFromPublicKeyString(config.FloatMintPublicKey)
29+
jeffyMintAccount, _ = common.NewAccountFromPublicKeyString(config.JeffyMintPublicKey)
30+
marketCoinMintAccount, _ = common.NewAccountFromPublicKeyString(config.MarketCoinMintPublicKey)
31+
xpMintAccount, _ = common.NewAccountFromPublicKeyString(config.XpMintPublicKey)
2732
)
2833

2934
// trackedLaunchpadMints is the hardcoded set of launchpad mints to track
3035
// (excludes core mint as it only has exchange rate data)
3136
var trackedLaunchpadMints = []*common.Account{
37+
bitsMintAccount,
38+
bogeyMintAccount,
39+
floatMintAccount,
3240
jeffyMintAccount,
41+
marketCoinMintAccount,
42+
xpMintAccount,
3343
}
3444

3545
// liveExchangeRateData represents live exchange rate data with its pre-signed response

ocp/worker/currency/reserve.go

Lines changed: 92 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,23 +71,113 @@ func (p *reserveRuntime) Start(runtimeCtx context.Context, interval time.Duratio
7171
// todo: Don't hardcode Jeffy and other Flipcash currencies
7272
func (p *reserveRuntime) UpdateAllLaunchpadCurrencyReserves(ctx context.Context) error {
7373
err1 := func() error {
74+
bitsMintAccount, _ := common.NewAccountFromPublicKeyString(config.BitsMintPublicKey)
75+
76+
ciculatingSupply, ts, err := currency_util.GetLaunchpadCurrencyCirculatingSupply(ctx, p.data, bitsMintAccount)
77+
if err != nil {
78+
return err
79+
}
80+
81+
return p.data.PutCurrencyReserve(ctx, &currency.ReserveRecord{
82+
Mint: bitsMintAccount.PublicKey().ToBase58(),
83+
SupplyFromBonding: ciculatingSupply,
84+
Time: ts,
85+
})
86+
}()
87+
88+
err2 := func() error {
89+
bogeyMintAccount, _ := common.NewAccountFromPublicKeyString(config.BogeyMintPublicKey)
90+
91+
ciculatingSupply, ts, err := currency_util.GetLaunchpadCurrencyCirculatingSupply(ctx, p.data, bogeyMintAccount)
92+
if err != nil {
93+
return err
94+
}
95+
96+
return p.data.PutCurrencyReserve(ctx, &currency.ReserveRecord{
97+
Mint: bogeyMintAccount.PublicKey().ToBase58(),
98+
SupplyFromBonding: ciculatingSupply,
99+
Time: ts,
100+
})
101+
}()
102+
103+
err3 := func() error {
104+
floatMintAccount, _ := common.NewAccountFromPublicKeyString(config.FloatMintPublicKey)
105+
106+
ciculatingSupply, ts, err := currency_util.GetLaunchpadCurrencyCirculatingSupply(ctx, p.data, floatMintAccount)
107+
if err != nil {
108+
return err
109+
}
110+
111+
return p.data.PutCurrencyReserve(ctx, &currency.ReserveRecord{
112+
Mint: floatMintAccount.PublicKey().ToBase58(),
113+
SupplyFromBonding: ciculatingSupply,
114+
Time: ts,
115+
})
116+
}()
117+
118+
err4 := func() error {
74119
jeffyMintAccount, _ := common.NewAccountFromPublicKeyString(config.JeffyMintPublicKey)
75120

76-
jeffyCirculatingSupply, ts, err := currency_util.GetLaunchpadCurrencyCirculatingSupply(ctx, p.data, jeffyMintAccount)
121+
ciculatingSupply, ts, err := currency_util.GetLaunchpadCurrencyCirculatingSupply(ctx, p.data, jeffyMintAccount)
77122
if err != nil {
78123
return err
79124
}
80125

81126
return p.data.PutCurrencyReserve(ctx, &currency.ReserveRecord{
82127
Mint: jeffyMintAccount.PublicKey().ToBase58(),
83-
SupplyFromBonding: jeffyCirculatingSupply,
128+
SupplyFromBonding: ciculatingSupply,
129+
Time: ts,
130+
})
131+
}()
132+
133+
err5 := func() error {
134+
marketCoinMintAccount, _ := common.NewAccountFromPublicKeyString(config.MarketCoinMintPublicKey)
135+
136+
ciculatingSupply, ts, err := currency_util.GetLaunchpadCurrencyCirculatingSupply(ctx, p.data, marketCoinMintAccount)
137+
if err != nil {
138+
return err
139+
}
140+
141+
return p.data.PutCurrencyReserve(ctx, &currency.ReserveRecord{
142+
Mint: marketCoinMintAccount.PublicKey().ToBase58(),
143+
SupplyFromBonding: ciculatingSupply,
144+
Time: ts,
145+
})
146+
}()
147+
148+
err6 := func() error {
149+
xpMintAccount, _ := common.NewAccountFromPublicKeyString(config.XpMintPublicKey)
150+
151+
ciculatingSupply, ts, err := currency_util.GetLaunchpadCurrencyCirculatingSupply(ctx, p.data, xpMintAccount)
152+
if err != nil {
153+
return err
154+
}
155+
156+
return p.data.PutCurrencyReserve(ctx, &currency.ReserveRecord{
157+
Mint: xpMintAccount.PublicKey().ToBase58(),
158+
SupplyFromBonding: ciculatingSupply,
84159
Time: ts,
85160
})
86161
}()
87162

88163
if err1 != nil {
89164
return err1
90165
}
166+
if err2 != nil {
167+
return err2
168+
}
169+
if err3 != nil {
170+
return err3
171+
}
172+
if err4 != nil {
173+
return err4
174+
}
175+
if err5 != nil {
176+
return err5
177+
}
178+
if err6 != nil {
179+
return err6
180+
}
91181

92182
return nil
93183
}

ocp/worker/geyser/handler.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,13 @@ func (h *TokenProgramAccountHandler) Handle(ctx context.Context, update *geyserp
8484
switch mintAccount.PublicKey().ToBase58() {
8585

8686
// todo: Don't hardcode Jeffy and other Flipcash currencies
87-
case common.CoreMintAccount.PublicKey().ToBase58(), config.JeffyMintPublicKey:
87+
case common.CoreMintAccount.PublicKey().ToBase58(),
88+
config.BitsMintPublicKey,
89+
config.BogeyMintPublicKey,
90+
config.FloatMintPublicKey,
91+
config.JeffyMintPublicKey,
92+
config.MarketCoinMintPublicKey,
93+
config.XpMintPublicKey:
8894
// Not an ATA, so filter it out. It cannot be a VM deposit ATA
8995
if bytes.Equal(tokenAccount.PublicKey().ToBytes(), ownerAccount.PublicKey().ToBytes()) {
9096
return nil

ocp/worker/nonce/runtime.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,12 @@ func (p *runtime) Start(ctx context.Context, interval time.Duration) error {
7070
// todo: Dynamically detect VMs
7171
for _, vm := range []string{
7272
common.CoreMintVmAccount.PublicKey().ToBase58(),
73+
config.BitsVmAccountPublicKey,
74+
config.BogeyVmAccountPublicKey,
75+
config.FloatVmAccountPublicKey,
7376
config.JeffyVmAccountPublicKey,
77+
config.MarketCoinVmAccountPublicKey,
78+
config.XpVmAccountPublicKey,
7479
} {
7580
for _, state := range []nonce.State{
7681
nonce.StateReleased,

0 commit comments

Comments
 (0)