| 1 | { |
| 2 | "data": { |
| 3 | "linearprotocol.near": { |
| 4 | "widget": { |
| 5 | "DAO.Proposal": { |
| 6 | "": "const { daoId, policy, proposal } = props;\\\\n\\\\nconst bgClassname =\\\\n proposal.status === \\\\\\\"InProgress\\\\\\\"\\\\n ? \\\\\\\"\\\\\\\"\\\\n : proposal.status === \\\\\\\"Approved\\\\\\\"\\\\n ? \\\\\\\"bg-success bg-opacity-10\\\\\\\"\\\\n : \\\\\\\"bg-danger bg-opacity-10\\\\\\\";\\\\n\\\\nfunction mapVote(vote) {\\\\n return vote === \\\\\\\"Approve\\\\\\\" ? (\\\\n <span className=\\\\\\\"text-success\\\\\\\">Approve</span>\\\\n ) : vote === \\\\\\\"Reject\\\\\\\" ? (\\\\n <span className=\\\\\\\"text-danger\\\\\\\">Reject</span>\\\\n ) : vote === \\\\\\\"Remove\\\\\\\" ? (\\\\n <span className=\\\\\\\"text-warning\\\\\\\">Spam</span>\\\\n ) : (\\\\n \\\\\\\"???\\\\\\\"\\\\n );\\\\n}\\\\n\\\\nfunction vote(action) {\\\\n return Near.call(\\\\n daoId,\\\\n \\\\\\\"act_proposal\\\\\\\",\\\\n {\\\\n id: proposal.id,\\\\n action,\\\\n },\\\\n \\\\\\\"300000000000000\\\\\\\" // 300 Tgas by default\\\\n );\\\\n}\\\\n\\\\nfunction decodeArgs() {\\\\n try {\\\\n const args64 = proposal.kind[\\\\\\\"FunctionCall\\\\\\\"].actions[0].args;\\\\n const jsonArgs = JSON.parse(\\\\n Buffer.from(args64, \\\\\\\"base64\\\\\\\").toString(\\\\\\\"utf-8\\\\\\\")\\\\n );\\\\n return JSON.stringify(jsonArgs, undefined, 2);\\\\n } catch {\\\\n return \\\\\\\"failed to deserialize\\\\\\\";\\\\n }\\\\n}\\\\n\\\\nreturn (\\\\n <div className={`border p-2 ${bgClassname}`}>\\\\n <div className=\\\\\\\"mb-2\\\\\\\">\\\\n <h4 className=\\\\\\\"d-inline\\\\\\\">\\\\n #{proposal.id}{\\\\\\\" \\\\\\\"}\\\\n <span className=\\\\\\\"text-muted small\\\\\\\">({proposal.status})</span>\\\\n </h4>\\\\n <div className=\\\\\\\"float-end\\\\\\\">\\\\n {new Date(parseFloat(proposal.submission_time) / 1e6).toLocaleString()}\\\\n </div>\\\\n </div>\\\\n <div className=\\\\\\\"mb-2\\\\\\\">\\\\n <label className=\\\\\\\"text-muted\\\\\\\">Proposer</label>\\\\n <div>\\\\n <Widget\\\\n src=\\\\\\\"mob.near/widget/Profile.ShortInlineBlock\\\\\\\"\\\\n props={{ accountId: proposal.proposer }}\\\\n />\\\\n </div>\\\\n </div>\\\\n <div className=\\\\\\\"mb-2\\\\\\\">\\\\n <label className=\\\\\\\"text-muted\\\\\\\">Description</label>\\\\n <div>{proposal.description}</div>\\\\n </div>\\\\n <div className=\\\\\\\"mb-2\\\\\\\">\\\\n <label className=\\\\\\\"text-muted\\\\\\\">Action</label>\\\\n <pre>{JSON.stringify(proposal.kind, undefined, 2)}</pre>\\\\n {proposal.kind && proposal.kind[\\\\\\\"FunctionCall\\\\\\\"] && (\\\\n <div className=\\\\\\\"mt-2\\\\\\\">\\\\n <label className=\\\\\\\"text-muted\\\\\\\">JSON args</label>\\\\n <pre>{decodeArgs()}</pre>\\\\n </div>\\\\n )}\\\\n </div>\\\\n <div className=\\\\\\\"mb-2\\\\\\\">\\\\n <label className=\\\\\\\"text-muted\\\\\\\">Votes</label>\\\\n <div>\\\\n {Object.entries(proposal.votes).map(([accountId, vote]) => (\\\\n <div key={accountId} className=\\\\\\\"mb-1 d-flex flex-row gap-2\\\\\\\">\\\\n <div className=\\\\\\\"m-auto text-center\\\\\\\" style={{ minWidth: \\\\\\\"5em\\\\\\\" }}>\\\\n {mapVote(vote)}\\\\n </div>\\\\n <div className=\\\\\\\"flex-grow-1\\\\\\\">\\\\n <Widget\\\\n src=\\\\\\\"mob.near/widget/Profile.ShortInlineBlock\\\\\\\"\\\\n props={{ accountId }}\\\\n />\\\\n </div>\\\\n </div>\\\\n ))}\\\\n </div>\\\\n {context.accountId && proposal.status === \\\\\\\"InProgress\\\\\\\" && (\\\\n <div className=\\\\\\\"mt-2 d-flex flex-row gap-2\\\\\\\">\\\\n <button\\\\n className=\\\\\\\"btn flex-fill btn-success\\\\\\\"\\\\n onClick={() => vote(\\\\\\\"VoteApprove\\\\\\\")}\\\\n >\\\\n Approve\\\\n </button>\\\\n <button\\\\n className=\\\\\\\"btn flex-fill btn-danger\\\\\\\"\\\\n onClick={() => vote(\\\\\\\"VoteReject\\\\\\\")}\\\\n >\\\\n Reject\\\\n </button>\\\\n <button\\\\n className=\\\\\\\"btn flex-fill btn-warning\\\\\\\"\\\\n onClick={() => vote(\\\\\\\"VoteRemove\\\\\\\")}\\\\n >\\\\n Spam\\\\n </button>\\\\n </div>\\\\n )}\\\\n </div>\\\\n </div>\\\\n);\\\\n" |
| 7 | } |
| 8 | } |
| 9 | } |
| 10 | } |
| 11 | } |
| 1 | eyJibG9ja19oZWlnaHQiOiIxMzIxNDcyMzYifQ== |
| 1 | |
| 1 | { |
| 2 | "deposit": "18307896550929472892360" |
| 3 | } |
Empty Result
| 1 | |