MCPcopy Create free account
hub / github.com/akash-network/node / WaitForProposalToPass

Function WaitForProposalToPass

tests/e2e/pyth_contract_test.go:859–888  ·  view source on GitHub ↗

WaitForProposalToPass polls until a proposal passes or fails

(
	ctx context.Context,
	cl cclient.Client,
	proposalID uint64,
	timeout time.Duration,
)

Source from the content-addressed store, hash-verified

857
858// WaitForProposalToPass polls until a proposal passes or fails
859func WaitForProposalToPass(
860 ctx context.Context,
861 cl cclient.Client,
862 proposalID uint64,
863 timeout time.Duration,
864) error {
865 deadline := time.Now().Add(timeout)
866
867 for time.Now().Before(deadline) {
868 proposal, err := cl.Query().Gov().Proposal(ctx, &govv1.QueryProposalRequest{
869 ProposalId: proposalID,
870 })
871 if err != nil {
872 return fmt.Errorf("failed to query proposal: %w", err)
873 }
874
875 switch proposal.Proposal.Status {
876 case govv1.StatusPassed:
877 return nil
878 case govv1.StatusRejected:
879 return fmt.Errorf("proposal %d was rejected", proposalID)
880 case govv1.StatusFailed:
881 return fmt.Errorf("proposal %d failed", proposalID)
882 }
883
884 time.Sleep(500 * time.Millisecond)
885 }
886
887 return fmt.Errorf("timeout waiting for proposal %d to pass", proposalID)
888}
889
890// GetCodeIDFromWasmEvents extracts the code ID from a store code transaction's events
891func GetCodeIDFromWasmEvents(ctx context.Context, cl cclient.Client, proposalID uint64) (uint64, error) {

Callers 1

Calls 2

BeforeMethod · 0.80
QueryMethod · 0.80

Tested by

no test coverage detected