PathrockNetwork Gno Explorer
HomeBlocksTransactionsTokensRealmsPackagesValidatorsAnalytics

PathrockNetwork Gno Explorer — an independent explorer for Gno.land Mainnet (gnoland-1), operated by PathrockNetwork. Not an official Gno.land service.

gnowebarchive RPC

gno.land/p/samcrew/memba_weighted_host

Package
Open in gnoweb ↗

Overview

Kind
Pure package
Name
memba_weighted_host
Namespace
samcrew
Files
32 (gnomod.toml)
Exported functions
n/a — not supported for pure packages by the node (vm/qfuncs)
Module
gno.land/p/samcrew/memba_weighted_host
gno
0.9

Files (32)

  • gnomod.tomltoml
  • appstore_actions.gnogno
  • appstore_host.gnogno
  • appstore_reads.gnogno
  • arcade_actions.gnogno
  • arcade_host.gnogno
  • arcade_reads.gno
gno
  • badges_actions.gnogno
  • badges_host.gnogno
  • badges_reads.gnogno
  • channels_actions.gnogno
  • channels_host.gnogno
  • channels_reads.gnogno
  • escrow_actions.gnogno
  • escrow_host.gnogno
  • escrow_reads.gnogno
  • feed_actions.gnogno
  • feed_host.gnogno
  • feed_reads.gnogno
  • feedback_actions.gnogno
  • feedback_host.gnogno
  • feedback_reads.gnogno
  • host.gnogno
  • market_actions.gnogno
  • market_host.gnogno
  • quest_actions.gnogno
  • quest_host.gnogno
  • quest_reads.gnogno
  • reads.gnogno
  • reviews_actions.gnogno
  • reviews_host.gnogno
  • reviews_reads.gnogno
  • arcade_actions.gnogno
    1package memba_weighted_host23import (4	"chain"5	"gno.land/p/samcrew/memba_weighted_policy"6)78

    Functions

    not supported for pure packages by the node (vm/qfuncs)

    Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.

    const ArcadePath = "gno.land/r/samcrew/memba_arcade_leaderboard_v1"
    9
    10type ArcadeActionKind string
    11
    12const (
    13 ArcadeAcceptOwner ArcadeActionKind = "accept-owner"
    14 ArcadeReturnOwner ArcadeActionKind = "return-owner"
    15 ArcadeAbortReturn ArcadeActionKind = "abort-return"
    16 ArcadeAddAttester ArcadeActionKind = "add-attester"
    17 ArcadeRemoveAttester ArcadeActionKind = "remove-attester"
    18 ArcadeUnpause ArcadeActionKind = "unpause"
    19)
    20
    21type ArcadePolicy struct{ dao, successor address }
    22
    23func NewArcadePolicy(dao, successor address) ArcadePolicy {
    24 if !dao.IsValid() || dao != chain.PackageAddress("gno.land/r/samcrew/memba_dao") {
    25 panic("arcade policy requires the founding DAO address")
    26 }
    27 if !successor.IsValid() || successor == dao || successor == chain.PackageAddress(ArcadePath) {
    28 panic("arcade policy requires a valid distinct successor")
    29 }
    30 return ArcadePolicy{dao: dao, successor: successor}
    31}
    32func (p ArcadePolicy) DAO() address { return p.dao }
    33func (p ArcadePolicy) Successor() address { return p.successor }
    34
    35type ArcadeAction struct {
    36 kind ArcadeActionKind
    37 recipient address
    38 attester address
    39}
    40
    41func (p ArcadePolicy) Accept() ArcadeAction { return ArcadeAction{kind: ArcadeAcceptOwner} }
    42func (p ArcadePolicy) Return() ArcadeAction {
    43 return ArcadeAction{kind: ArcadeReturnOwner, recipient: p.successor}
    44}
    45func (p ArcadePolicy) AbortReturn() ArcadeAction {
    46 return ArcadeAction{kind: ArcadeAbortReturn, recipient: p.successor}
    47}
    48func (p ArcadePolicy) AddAttester(who address) ArcadeAction {
    49 if who == p.DAO() || who == p.Successor() || who == chain.PackageAddress(ArcadePath) {
    50 panic("arcade attester must be a dedicated external account")
    51 }
    52 a := ArcadeAction{kind: ArcadeAddAttester, attester: who}
    53 a.Bytes()
    54 return a
    55}
    56func ArcadeRevokeAttester(who address) ArcadeAction {
    57 a := ArcadeAction{kind: ArcadeRemoveAttester, attester: who}
    58 a.Bytes()
    59 return a
    60}
    61func ArcadeResume() ArcadeAction { return ArcadeAction{kind: ArcadeUnpause} }
    62func (a ArcadeAction) Kind() ArcadeActionKind { return a.kind }
    63func (a ArcadeAction) Recipient() address { return a.recipient }
    64func (a ArcadeAction) Attester() address { return a.attester }
    65func (a ArcadeAction) Bytes() string {
    66 base := "arcade/v1|" + ArcadePath + "|" + string(a.kind)
    67 switch a.kind {
    68 case ArcadeAcceptOwner, ArcadeUnpause:
    69 if a.recipient != "" || a.attester != "" {
    70 panic("malformed arcade action")
    71 }
    72 return base
    73 case ArcadeReturnOwner, ArcadeAbortReturn:
    74 if !a.recipient.IsValid() || a.attester != "" {
    75 panic("malformed arcade return action")
    76 }
    77 return base + "|" + string(a.recipient)
    78 case ArcadeAddAttester, ArcadeRemoveAttester:
    79 if !a.attester.IsValid() || a.recipient != "" {
    80 panic("invalid arcade attester action")
    81 }
    82 return base + "|" + string(a.attester)
    83 default:
    84 panic("unsupported arcade action")
    85 }
    86}
    87func (a ArcadeAction) Category() memba_weighted_policy.Category {
    88 a.Bytes()
    89 if a.kind == ArcadeUnpause {
    90 return memba_weighted_policy.Financial
    91 }
    92 return memba_weighted_policy.Critical
    93}
    94