Skip to content

Commit

Permalink
update oracle address while saving
Browse files Browse the repository at this point in the history
  • Loading branch information
nnn-gif committed Sep 19, 2024
1 parent bdb7da1 commit e572f2a
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 16 deletions.
58 changes: 43 additions & 15 deletions cmd/http/oraclebuilder/oracledraft.go
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ func (ob *Env) CreateNewOracle(context *gin.Context) {
err = ob.RelDB.SetOracleConfig(context, strconv.Itoa(customerID), oracleaddress, feederID, creator, feederAddress, symbols, feedSelection, chainID, frequency, sleepSeconds, deviationPermille, blockchainnode, mandatoryFrequency, oracleName, true)
if err != nil {
log.Errorf("RequestId: %s, error SetOracleConfig %v", requestId, err)
context.JSON(http.StatusInternalServerError, gin.H{"error": "error creating new oracle config"})
context.JSON(http.StatusInternalServerError, gin.H{"error": "error creating/updating new oracle config"})
return
}

Expand Down Expand Up @@ -252,6 +252,12 @@ func (ob *Env) InitFeeder(context *gin.Context) {
return
}

if oracleconfig.Deleted {
log.Errorf("Request ID: %s, deploy cannot be done one deleted oracle, customerID=%s, oracleconfig.CustomerID=%s %v ", requestId, customerID, oracleconfig.CustomerID, err)
context.JSON(http.StatusUnauthorized, gin.H{"error": "this is deleted oracle"})
return
}

customer, err := ob.RelDB.GetCustomerByPublicKey(creator)
if err != nil {
log.Errorf("Request ID: %s, GetCustomerByPublicKey %v ,", requestId, err)
Expand All @@ -274,18 +280,29 @@ func (ob *Env) InitFeeder(context *gin.Context) {

// create new feeder wallet

err = ob.Keyring.Set(kr.Item{
Key: oracleconfig.FeederID,
})
if err != nil {
log.Errorf("Request ID: %s, error generating key %v ,", requestId, err)
context.JSON(http.StatusInternalServerError, errors.New("error generating key"))
return
// check if it was already deployed

item, _ := ob.Keyring.Get(oracleconfig.FeederID)

isRestart := true

if item.Data == nil {
isRestart = false
// create new
err = ob.Keyring.Set(kr.Item{
Key: oracleconfig.FeederID,
})
if err != nil {
log.Errorf("Request ID: %s, error generating key %v ,", requestId, err)
context.JSON(http.StatusInternalServerError, errors.New("error generating key"))
return
}

}

// Get public key

item, err := ob.Keyring.Get(oracleconfig.FeederID)
item, err = ob.Keyring.Get(oracleconfig.FeederID)
if err != nil {
log.Errorf("Request ID: %s, error getting key %v ,", requestId, err)
context.JSON(http.StatusInternalServerError, errors.New("error getting key"))
Expand Down Expand Up @@ -315,17 +332,28 @@ func (ob *Env) InitFeeder(context *gin.Context) {
DeviationPermille: oracleconfig.DeviationPermille,
MandatoryFrequency: oracleconfig.MandatoryFrequency,
}
_, err = ob.k8sbridgeClient.CreatePod(context, fc)
if err != nil {
log.Errorln("error CreateOracleFeeder ", err)
context.JSON(http.StatusInternalServerError, errors.New("error creating oraclefeeder"))
return

if isRestart {
_, err = ob.k8sbridgeClient.RestartPod(context, fc)
if err != nil {
log.Errorln("error RestartPod ", err)
context.JSON(http.StatusInternalServerError, errors.New("error creating oraclefeeder"))
return
}

} else {
_, err = ob.k8sbridgeClient.CreatePod(context, fc)
if err != nil {
log.Errorln("error CreateOracleFeeder ", err)
context.JSON(http.StatusInternalServerError, errors.New("error creating oraclefeeder"))
return
}
}

err = ob.RelDB.SetOracleConfig(context, strconv.Itoa(customer.CustomerID), oracleconfig.Address, oracleconfig.FeederID, creator, publicKey, "", oracleconfig.FeederSelection, oracleconfig.ChainID, oracleconfig.Frequency, oracleconfig.SleepSeconds, oracleconfig.DeviationPermille, oracleconfig.BlockchainNode, oracleconfig.MandatoryFrequency, oracleconfig.Name, false)
if err != nil {
log.Errorln("requestId: %s, error SetOracleConfig ", requestId, err)
context.JSON(http.StatusInternalServerError, gin.H{"error": "error creating new oracle config"})
context.JSON(http.StatusInternalServerError, gin.H{"error": "error starting new feeder"})
return
}

Expand Down
2 changes: 1 addition & 1 deletion pkg/model/oracle.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func (rdb *RelDB) SetOracleConfig(ctx context.Context, customerId, address, feed
VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17)
ON CONFLICT(feeder_id)
DO UPDATE SET symbols=$4,frequency=$6,sleepseconds=$7,deviationpermille=$8,blockchainnode=$9,mandatory_frequency=$10,
feeder_address=$11,lastupdate=$13,feedSelection=$14,name=$15,draft=$16`,
feeder_address=$11,lastupdate=$13,feedSelection=$14,name=$15,draft=$16,address=$1`,
oracleconfigTable,
)

Expand Down

0 comments on commit e572f2a

Please sign in to comment.