Skip to content

Commit 1078a14

Browse files
authored
Update StatefulSwap RPC to reflect proto renames (#160)
1 parent 8e33864 commit 1078a14

4 files changed

Lines changed: 56 additions & 56 deletions

File tree

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ require (
66
filippo.io/edwards25519 v1.1.0
77
github.com/aws/aws-sdk-go-v2 v0.17.0
88
github.com/code-payments/code-vm-indexer v1.2.0
9-
github.com/code-payments/ocp-protobuf-api v1.6.0
9+
github.com/code-payments/ocp-protobuf-api v1.6.1-0.20260325154106-63d4d261070d
1010
github.com/emirpasic/gods v1.12.0
1111
github.com/envoyproxy/protoc-gen-validate v1.2.1
1212
github.com/golang/protobuf v1.5.4

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ github.com/cockroachdb/apd v1.1.0 h1:3LFP3629v+1aKXU5Q37mxmRxX/pIu1nijXydLShEq5I
7878
github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ=
7979
github.com/code-payments/code-vm-indexer v1.2.0 h1:rSHpBMiT9BKgmKcXg/VIoi/h0t7jNxGx07Qz59m+6Q0=
8080
github.com/code-payments/code-vm-indexer v1.2.0/go.mod h1:vn91YN2qNqb+gGJeZe2+l+TNxVmEEiRHXXnIn2Y40h8=
81-
github.com/code-payments/ocp-protobuf-api v1.6.0 h1:oxXgz/kVj7Erbq39mjWR6ReixBFIeI0a3TIO9E5XNdc=
82-
github.com/code-payments/ocp-protobuf-api v1.6.0/go.mod h1:tw6BooY5a8l6CtSZnKOruyKII0W04n89pcM4BizrgG8=
81+
github.com/code-payments/ocp-protobuf-api v1.6.1-0.20260325154106-63d4d261070d h1:0FIQ4GHwteUlVnS7SC5KHb5f14ZoVjweAn+bhG9agII=
82+
github.com/code-payments/ocp-protobuf-api v1.6.1-0.20260325154106-63d4d261070d/go.mod h1:tw6BooY5a8l6CtSZnKOruyKII0W04n89pcM4BizrgG8=
8383
github.com/containerd/continuity v0.0.0-20190827140505-75bee3e2ccb6 h1:NmTXa/uVnDyp0TY5MKi197+3HWcnYWfnHGyaFthlnGw=
8484
github.com/containerd/continuity v0.0.0-20190827140505-75bee3e2ccb6/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
8585
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=

ocp/rpc/transaction/swap.go

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -72,32 +72,32 @@ func (s *transactionServer) StatefulSwap(streamer transactionpb.Transaction_Stat
7272
return handleStatefulSwapError(streamer, err)
7373
}
7474

75-
initiateCurrencyCreatorSwapReq := initiateReq.GetCurrencyCreator()
76-
if initiateCurrencyCreatorSwapReq == nil {
77-
return handleStatefulSwapError(streamer, status.Error(codes.InvalidArgument, "StatefulSwapRequest.Initiate.CurrencyCreator is nil"))
75+
initiateReserveSwapReq := initiateReq.GetReserve()
76+
if initiateReserveSwapReq == nil {
77+
return handleStatefulSwapError(streamer, status.Error(codes.InvalidArgument, "StatefulSwapRequest.Initiate.Reserve is nil"))
7878
}
7979

80-
swapId := base58.Encode(initiateCurrencyCreatorSwapReq.Id.Value)
80+
swapId := base58.Encode(initiateReserveSwapReq.Id.Value)
8181
log = log.With(zap.String("swap_id", swapId))
8282

83-
fromMint, err := common.NewAccountFromProto(initiateCurrencyCreatorSwapReq.FromMint)
83+
fromMint, err := common.NewAccountFromProto(initiateReserveSwapReq.FromMint)
8484
if err != nil {
8585
log.With(zap.Error(err)).Warn("invalid source mint account")
8686
return handleStatefulSwapError(streamer, err)
8787
}
8888
log = log.With(zap.String("from_mint", fromMint.PublicKey().ToBase58()))
8989

90-
toMint, err := common.NewAccountFromProto(initiateCurrencyCreatorSwapReq.ToMint)
90+
toMint, err := common.NewAccountFromProto(initiateReserveSwapReq.ToMint)
9191
if err != nil {
9292
log.With(zap.Error(err)).Warn("invalid destination mint account")
9393
return handleStatefulSwapError(streamer, err)
9494
}
9595
log = log.With(zap.String("to_mint", toMint.PublicKey().ToBase58()))
9696

9797
log = log.With(
98-
zap.Uint64("amount", initiateCurrencyCreatorSwapReq.Amount),
99-
zap.String("funding_source", initiateCurrencyCreatorSwapReq.FundingSource.String()),
100-
zap.String("funding_id", initiateCurrencyCreatorSwapReq.FundingId),
98+
zap.Uint64("amount", initiateReserveSwapReq.Amount),
99+
zap.String("funding_source", initiateReserveSwapReq.FundingSource.String()),
100+
zap.String("funding_id", initiateReserveSwapReq.FundingId),
101101
)
102102

103103
//
@@ -118,7 +118,7 @@ func (s *transactionServer) StatefulSwap(streamer transactionpb.Transaction_Stat
118118
return handleStatefulSwapError(streamer, NewSwapDeniedError("not a user ocp account"))
119119
}
120120

121-
allow, err := s.antispamGuard.AllowSwap(ctx, swap.FundingSource(initiateCurrencyCreatorSwapReq.FundingSource), owner, fromMint, toMint)
121+
allow, err := s.antispamGuard.AllowSwap(ctx, swap.FundingSource(initiateReserveSwapReq.FundingSource), owner, fromMint, toMint)
122122
if err != nil {
123123
return handleStatefulSwapError(streamer, err)
124124
} else if !allow {
@@ -137,7 +137,7 @@ func (s *transactionServer) StatefulSwap(streamer transactionpb.Transaction_Stat
137137
return handleStatefulSwapError(streamer, err)
138138
}
139139

140-
_, err = s.data.GetSwapByFundingId(ctx, initiateCurrencyCreatorSwapReq.FundingId)
140+
_, err = s.data.GetSwapByFundingId(ctx, initiateReserveSwapReq.FundingId)
141141
if err == nil {
142142
return handleStatefulSwapError(streamer, NewSwapDeniedError("attempt to reuse swap funding id"))
143143
} else if err != swap.ErrNotFound {
@@ -157,7 +157,7 @@ func (s *transactionServer) StatefulSwap(streamer transactionpb.Transaction_Stat
157157
return handleStatefulSwapError(streamer, NewSwapValidationError("must swap between two different mints"))
158158
}
159159

160-
if initiateCurrencyCreatorSwapReq.Amount == 0 {
160+
if initiateReserveSwapReq.Amount == 0 {
161161
return handleStatefulSwapError(streamer, NewSwapValidationError("amount must be positive"))
162162
}
163163

@@ -205,15 +205,15 @@ func (s *transactionServer) StatefulSwap(streamer transactionpb.Transaction_Stat
205205
return handleStatefulSwapError(streamer, err)
206206
}
207207

208-
switch initiateCurrencyCreatorSwapReq.FundingSource {
208+
switch initiateReserveSwapReq.FundingSource {
209209
case transactionpb.FundingSource_FUNDING_SOURCE_SUBMIT_INTENT:
210-
decodedFundingId, err := base58.Decode(initiateCurrencyCreatorSwapReq.FundingId)
210+
decodedFundingId, err := base58.Decode(initiateReserveSwapReq.FundingId)
211211
if err != nil || len(decodedFundingId) != ed25519.PublicKeySize {
212212
log.With(zap.Error(err)).Warn("invalid funding id")
213213
return handleStatefulSwapError(streamer, NewSwapValidationError("funding id is not a public key"))
214214
}
215215

216-
_, err = s.data.GetIntent(ctx, initiateCurrencyCreatorSwapReq.FundingId)
216+
_, err = s.data.GetIntent(ctx, initiateReserveSwapReq.FundingId)
217217
if err == nil {
218218
return handleStatefulSwapError(streamer, NewSwapValidationError("funding intent already exists"))
219219
} else if err != intent.ErrIntentNotFound {
@@ -226,11 +226,11 @@ func (s *transactionServer) StatefulSwap(streamer transactionpb.Transaction_Stat
226226
log.With(zap.Error(err)).Warn("failure getting owner source timelock vault balance")
227227
return handleStatefulSwapError(streamer, err)
228228
}
229-
if balance < initiateCurrencyCreatorSwapReq.Amount {
229+
if balance < initiateReserveSwapReq.Amount {
230230
return handleStatefulSwapError(streamer, NewSwapValidationError("insufficient balance"))
231231
}
232232
case transactionpb.FundingSource_FUNDING_SOURCE_EXTERNAL_WALLET:
233-
decodedFundingId, err := base58.Decode(initiateCurrencyCreatorSwapReq.FundingId)
233+
decodedFundingId, err := base58.Decode(initiateReserveSwapReq.FundingId)
234234
if err != nil || len(decodedFundingId) != ed25519.SignatureSize {
235235
log.With(zap.Error(err)).Warn("invalid funding id")
236236
return handleStatefulSwapError(streamer, NewSwapValidationError("funding id is not a signature"))
@@ -240,17 +240,17 @@ func (s *transactionServer) StatefulSwap(streamer transactionpb.Transaction_Stat
240240
return handleStatefulSwapError(streamer, NewSwapDeniedError("source mint must be core mint"))
241241
}
242242
default:
243-
return handleStatefulSwapError(streamer, NewSwapDeniedErrorf("funding source %s is not supported", initiateCurrencyCreatorSwapReq.FundingSource))
243+
return handleStatefulSwapError(streamer, NewSwapDeniedErrorf("funding source %s is not supported", initiateReserveSwapReq.FundingSource))
244244
}
245245

246246
//
247247
// Section: Verified metadata signature verification
248248
//
249249

250250
verifiedMetadata := &transactionpb.VerifiedSwapMetadata{
251-
Kind: &transactionpb.VerifiedSwapMetadata_CurrencyCreator{
252-
CurrencyCreator: &transactionpb.VerifiedCurrencyCreatorSwapMetadata{
253-
ClientParameters: initiateCurrencyCreatorSwapReq,
251+
Kind: &transactionpb.VerifiedSwapMetadata_Reserve{
252+
Reserve: &transactionpb.VerifiedReserveSwapMetadata{
253+
ClientParameters: initiateReserveSwapReq,
254254
},
255255
},
256256
}
@@ -295,31 +295,31 @@ func (s *transactionServer) StatefulSwap(streamer transactionpb.Transaction_Stat
295295

296296
var swapHandler SwapHandler
297297
if common.IsCoreMint(fromMint) {
298-
swapHandler = NewCurrencyCreatorBuySwapHandler(
298+
swapHandler = NewReserveBuySwapHandler(
299299
s.data,
300300
owner,
301301
swapAuthority,
302302
toMint,
303-
initiateCurrencyCreatorSwapReq.Amount,
303+
initiateReserveSwapReq.Amount,
304304
selectedNonce.Account,
305305
)
306306
} else if common.IsCoreMint(toMint) {
307-
swapHandler = NewCurrencyCreatorSellSwapHandler(
307+
swapHandler = NewReserveSellSwapHandler(
308308
s.data,
309309
owner,
310310
swapAuthority,
311311
fromMint,
312-
initiateCurrencyCreatorSwapReq.Amount,
312+
initiateReserveSwapReq.Amount,
313313
selectedNonce.Account,
314314
)
315315
} else {
316-
swapHandler = NewCurrencyCreatorBuySellSwapHandler(
316+
swapHandler = NewReserveBuySellSwapHandler(
317317
s.data,
318318
owner,
319319
swapAuthority,
320320
fromMint,
321321
toMint,
322-
initiateCurrencyCreatorSwapReq.Amount,
322+
initiateReserveSwapReq.Amount,
323323
selectedNonce.Account,
324324
)
325325
}
@@ -365,7 +365,7 @@ func (s *transactionServer) StatefulSwap(streamer transactionpb.Transaction_Stat
365365
protoAlts[i] = transaction_util.ToProtoAlt(alt)
366366
}
367367

368-
protoServerParameters := &transactionpb.StatefulSwapResponse_ServerParameters_CurrencyCreator{
368+
protoServerParameters := &transactionpb.StatefulSwapResponse_ServerParameters_ReserveExistingCurrencyServerParameters{
369369
Payer: common.GetSubsidizer().ToProto(),
370370
Nonce: selectedNonce.Account.ToProto(),
371371
Blockhash: &commonpb.Blockhash{Value: selectedNonce.Blockhash[:]},
@@ -379,8 +379,8 @@ func (s *transactionServer) StatefulSwap(streamer transactionpb.Transaction_Stat
379379
if err := streamer.Send(&transactionpb.StatefulSwapResponse{
380380
Response: &transactionpb.StatefulSwapResponse_ServerParameters_{
381381
ServerParameters: &transactionpb.StatefulSwapResponse_ServerParameters{
382-
Kind: &transactionpb.StatefulSwapResponse_ServerParameters_CurrencyCreator_{
383-
CurrencyCreator: protoServerParameters,
382+
Kind: &transactionpb.StatefulSwapResponse_ServerParameters_ReserveExistingCurrency{
383+
ReserveExistingCurrency: protoServerParameters,
384384
},
385385
},
386386
},
@@ -455,23 +455,23 @@ func (s *transactionServer) StatefulSwap(streamer transactionpb.Transaction_Stat
455455
//
456456

457457
var initialState swap.State
458-
switch initiateCurrencyCreatorSwapReq.FundingSource {
458+
switch initiateReserveSwapReq.FundingSource {
459459
case transactionpb.FundingSource_FUNDING_SOURCE_SUBMIT_INTENT:
460460
initialState = swap.StateCreated
461461
case transactionpb.FundingSource_FUNDING_SOURCE_EXTERNAL_WALLET:
462462
initialState = swap.StateFunding
463463
default:
464-
return handleStatefulSwapError(streamer, NewSwapDeniedErrorf("funding source %s is not supported", initiateCurrencyCreatorSwapReq.FundingSource))
464+
return handleStatefulSwapError(streamer, NewSwapDeniedErrorf("funding source %s is not supported", initiateReserveSwapReq.FundingSource))
465465
}
466466

467467
record := &swap.Record{
468468
SwapId: swapId,
469469
Owner: owner.PublicKey().ToBase58(),
470470
FromMint: fromMint.PublicKey().ToBase58(),
471471
ToMint: toMint.PublicKey().ToBase58(),
472-
Amount: initiateCurrencyCreatorSwapReq.Amount,
473-
FundingSource: swap.FundingSource(initiateCurrencyCreatorSwapReq.FundingSource),
474-
FundingId: initiateCurrencyCreatorSwapReq.FundingId,
472+
Amount: initiateReserveSwapReq.Amount,
473+
FundingSource: swap.FundingSource(initiateReserveSwapReq.FundingSource),
474+
FundingId: initiateReserveSwapReq.FundingId,
475475
Nonce: selectedNonce.Account.PublicKey().ToBase58(),
476476
Blockhash: base58.Encode(selectedNonce.Blockhash[:]),
477477
ProofSignature: base58.Encode(initiateReq.ProofSignature.Value),
@@ -640,9 +640,9 @@ func toProtoSwap(record *swap.Record) (*transactionpb.SwapMetadata, error) {
640640

641641
return &transactionpb.SwapMetadata{
642642
VerifiedMetadata: &transactionpb.VerifiedSwapMetadata{
643-
Kind: &transactionpb.VerifiedSwapMetadata_CurrencyCreator{
644-
CurrencyCreator: &transactionpb.VerifiedCurrencyCreatorSwapMetadata{
645-
ClientParameters: &transactionpb.StatefulSwapRequest_Initiate_CurrencyCreator{
643+
Kind: &transactionpb.VerifiedSwapMetadata_Reserve{
644+
Reserve: &transactionpb.VerifiedReserveSwapMetadata{
645+
ClientParameters: &transactionpb.StatefulSwapRequest_Initiate_ReserveSwapClientParameters{
646646
Id: &commonpb.SwapId{Value: decodedSwapId},
647647
FromMint: fromMint.ToProto(),
648648
ToMint: toMint.ToProto(),

ocp/rpc/transaction/swap_handler.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ type SwapHandler interface {
3333
MakeInstructions(ctx context.Context) ([]solana.Instruction, error)
3434
}
3535

36-
type CurrencyCreatorBuySwapHandler struct {
36+
type ReserveBuySwapHandler struct {
3737
data ocp_data.Provider
3838

3939
buyer *common.Account
@@ -49,15 +49,15 @@ type CurrencyCreatorBuySwapHandler struct {
4949
memoryIndex uint16
5050
}
5151

52-
func NewCurrencyCreatorBuySwapHandler(
52+
func NewReserveBuySwapHandler(
5353
data ocp_data.Provider,
5454
buyer *common.Account,
5555
temporaryHolder *common.Account,
5656
mint *common.Account,
5757
amount uint64,
5858
nonce *common.Account,
5959
) SwapHandler {
60-
return &CurrencyCreatorBuySwapHandler{
60+
return &ReserveBuySwapHandler{
6161
data: data,
6262

6363
buyer: buyer,
@@ -72,7 +72,7 @@ func NewCurrencyCreatorBuySwapHandler(
7272
}
7373
}
7474

75-
func (h *CurrencyCreatorBuySwapHandler) GetServerParameters() *SwapServerParameters {
75+
func (h *ReserveBuySwapHandler) GetServerParameters() *SwapServerParameters {
7676
return &SwapServerParameters{
7777
ComputeUnitLimit: h.computeUnitLimit,
7878
ComputeUnitPrice: h.computeUnitPrice,
@@ -82,7 +82,7 @@ func (h *CurrencyCreatorBuySwapHandler) GetServerParameters() *SwapServerParamet
8282
}
8383
}
8484

85-
func (h *CurrencyCreatorBuySwapHandler) MakeInstructions(ctx context.Context) ([]solana.Instruction, error) {
85+
func (h *ReserveBuySwapHandler) MakeInstructions(ctx context.Context) ([]solana.Instruction, error) {
8686
sourceVmConfig, err := common.GetVmConfigForMint(ctx, h.data, common.CoreMintAccount)
8787
if err != nil {
8888
return nil, err
@@ -202,7 +202,7 @@ func (h *CurrencyCreatorBuySwapHandler) MakeInstructions(ctx context.Context) ([
202202
}, nil
203203
}
204204

205-
type CurrencyCreatorSellSwapHandler struct {
205+
type ReserveSellSwapHandler struct {
206206
data ocp_data.Provider
207207

208208
seller *common.Account
@@ -218,15 +218,15 @@ type CurrencyCreatorSellSwapHandler struct {
218218
memoryIndex uint16
219219
}
220220

221-
func NewCurrencyCreatorSellSwapHandler(
221+
func NewReserveSellSwapHandler(
222222
data ocp_data.Provider,
223223
seller *common.Account,
224224
temporaryHolder *common.Account,
225225
mint *common.Account,
226226
amount uint64,
227227
nonce *common.Account,
228228
) SwapHandler {
229-
return &CurrencyCreatorSellSwapHandler{
229+
return &ReserveSellSwapHandler{
230230
data: data,
231231

232232
seller: seller,
@@ -241,7 +241,7 @@ func NewCurrencyCreatorSellSwapHandler(
241241
}
242242
}
243243

244-
func (h *CurrencyCreatorSellSwapHandler) GetServerParameters() *SwapServerParameters {
244+
func (h *ReserveSellSwapHandler) GetServerParameters() *SwapServerParameters {
245245
return &SwapServerParameters{
246246
ComputeUnitLimit: h.computeUnitLimit,
247247
ComputeUnitPrice: h.computeUnitPrice,
@@ -251,7 +251,7 @@ func (h *CurrencyCreatorSellSwapHandler) GetServerParameters() *SwapServerParame
251251
}
252252
}
253253

254-
func (h *CurrencyCreatorSellSwapHandler) MakeInstructions(ctx context.Context) ([]solana.Instruction, error) {
254+
func (h *ReserveSellSwapHandler) MakeInstructions(ctx context.Context) ([]solana.Instruction, error) {
255255
sourceVmConfig, err := common.GetVmConfigForMint(ctx, h.data, h.mint)
256256
if err != nil {
257257
return nil, err
@@ -371,7 +371,7 @@ func (h *CurrencyCreatorSellSwapHandler) MakeInstructions(ctx context.Context) (
371371
}, nil
372372
}
373373

374-
type CurrencyCreatorBuySellSwapHandler struct {
374+
type ReserveBuySellSwapHandler struct {
375375
data ocp_data.Provider
376376

377377
swapper *common.Account
@@ -388,7 +388,7 @@ type CurrencyCreatorBuySellSwapHandler struct {
388388
memoryIndex uint16
389389
}
390390

391-
func NewCurrencyCreatorBuySellSwapHandler(
391+
func NewReserveBuySellSwapHandler(
392392
data ocp_data.Provider,
393393
swapper *common.Account,
394394
temporaryHolder *common.Account,
@@ -397,7 +397,7 @@ func NewCurrencyCreatorBuySellSwapHandler(
397397
amount uint64,
398398
nonce *common.Account,
399399
) SwapHandler {
400-
return &CurrencyCreatorBuySellSwapHandler{
400+
return &ReserveBuySellSwapHandler{
401401
data: data,
402402

403403
swapper: swapper,
@@ -413,7 +413,7 @@ func NewCurrencyCreatorBuySellSwapHandler(
413413
}
414414
}
415415

416-
func (h *CurrencyCreatorBuySellSwapHandler) GetServerParameters() *SwapServerParameters {
416+
func (h *ReserveBuySellSwapHandler) GetServerParameters() *SwapServerParameters {
417417
return &SwapServerParameters{
418418
ComputeUnitLimit: h.computeUnitLimit,
419419
ComputeUnitPrice: h.computeUnitPrice,
@@ -423,7 +423,7 @@ func (h *CurrencyCreatorBuySellSwapHandler) GetServerParameters() *SwapServerPar
423423
}
424424
}
425425

426-
func (h *CurrencyCreatorBuySellSwapHandler) MakeInstructions(ctx context.Context) ([]solana.Instruction, error) {
426+
func (h *ReserveBuySellSwapHandler) MakeInstructions(ctx context.Context) ([]solana.Instruction, error) {
427427
sourceVmConfig, err := common.GetVmConfigForMint(ctx, h.data, h.fromMint)
428428
if err != nil {
429429
return nil, err

0 commit comments

Comments
 (0)