|
- package endpoints
-
- import (
- "encoding/json"
- "fmt"
- . "github.com/imosed/signet/data"
- "github.com/stellar/go/clients/horizonclient"
- "github.com/stellar/go/protocols/horizon"
- "net/http"
- )
-
- var client = horizonclient.DefaultTestNetClient
-
- type SubmitFundRequest struct {
- FundId uint `json:"fundId"`
- }
-
- func SubmitFund(w http.ResponseWriter, r *http.Request) {
- var req SubmitFundRequest
- err := json.NewDecoder(r.Body).Decode(&req)
- if err != nil {
- panic("Could not decode body")
- }
-
- var fund RewardFund
- Db.Find(&fund, req.FundId)
-
- //source := keypair.MustParseFull(fund.FundWallet)
- //sourceReq := horizonclient.AccountRequest{AccountID: source.Address()}
- //var sourceAcct horizon.Account
- //sourceAcct, err = client.AccountDetail(sourceReq)
-
- offerReq := horizonclient.OfferRequest{
- Selling: fmt.Sprintf("%s:%s", fund.Asset, fund.IssuerWallet),
- Seller: fund.IssuerWallet,
- Cursor: "0",
- }
-
- var offers horizon.OffersPage
- offers, err = client.Offers(offerReq)
- for _, o := range offers.Embedded.Records {
- if float64(o.PriceR.N)/float64(o.PriceR.D) == fund.Price {
- fmt.Println(o.PriceR.N)
- fmt.Println(o.Amount)
- }
- }
-
- //var tx *txnbuild.Transaction
- //tx, err = txnbuild.NewTransaction(
- // txnbuild.TransactionParams{
- // SourceAccount: &sourceAcct,
- // IncrementSequenceNum: true,
- // Operations: []txnbuild.Operation{
- // &txnbuild.ManageBuyOffer{
- // Selling: txnbuild.NativeAsset{},
- // Buying: txnbuild.CreditAsset{
- // Code: fund.Asset,
- // Issuer: fund.IssuerWallet,
- // },
- // Amount: fmt.Sprintf("%f", SumContributions(fund.Contributions)),
- // Price: xdr.Price{}, // TODO: get price
- // OfferID: 0,
- // SourceAccount: "",
- // },
- // },
- // BaseFee: txnbuild.MinBaseFee,
- // Memo: txnbuild.Memo(txnbuild.MemoText(strconv.Itoa(int(fund.Model.ID)))),
- // Preconditions: txnbuild.Preconditions{
- // TimeBounds: txnbuild.NewInfiniteTimeout(), // TODO: change from infinite
- // },
- // })
- //if err != nil {
- // panic("Could not submit reward fund")
- //}
- //
- //tx, err = tx.Sign(network.TestNetworkPassphrase, source)
- //if err != nil {
- // panic("Could not submit fund")
- //}
- //
- //var response horizon.Transaction
- //response, err = client.SubmitTransaction(tx)
-
- var resp SuccessResponse
- //resp.Success = response.Successful
-
- err = json.NewEncoder(w).Encode(resp)
- if err != nil {
- panic("Could not deliver response")
- }
- }
|