(tx *types.ProvideService, height uint32)
| 510 | } |
| 511 | |
| 512 | func (s *metaState) updateProviderList(tx *types.ProvideService, height uint32) (err error) { |
| 513 | sender, err := crypto.PubKeyHash(tx.Signee) |
| 514 | if err != nil { |
| 515 | err = errors.Wrap(err, "updateProviderList failed") |
| 516 | return |
| 517 | } |
| 518 | |
| 519 | if height >= conf.BPHeightCIPFixProvideService { |
| 520 | // load previous provider object |
| 521 | po, loaded := s.loadProviderObject(sender) |
| 522 | if loaded { |
| 523 | // refund |
| 524 | if err = s.increaseAccountStableBalance(sender, po.Deposit); err != nil { |
| 525 | return |
| 526 | } |
| 527 | |
| 528 | s.deleteProviderObject(sender) |
| 529 | } |
| 530 | } |
| 531 | |
| 532 | // deposit |
| 533 | var ( |
| 534 | minDeposit = conf.GConf.MinProviderDeposit |
| 535 | ) |
| 536 | if err = s.decreaseAccountStableBalance(sender, minDeposit); err != nil { |
| 537 | return |
| 538 | } |
| 539 | pp := types.ProviderProfile{ |
| 540 | Provider: sender, |
| 541 | Space: tx.Space, |
| 542 | Memory: tx.Memory, |
| 543 | LoadAvgPerCPU: tx.LoadAvgPerCPU, |
| 544 | TargetUser: tx.TargetUser, |
| 545 | Deposit: minDeposit, |
| 546 | GasPrice: tx.GasPrice, |
| 547 | NodeID: tx.NodeID, |
| 548 | } |
| 549 | s.dirty.provider[sender] = &pp |
| 550 | return |
| 551 | } |
| 552 | |
| 553 | func (s *metaState) matchProvidersWithUser(tx *types.CreateDatabase) (err error) { |
| 554 | log.Infof("create database: %s", tx.Hash()) |
no test coverage detected