Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@verto/tippar

Package Overview
Dependencies
Maintainers
4
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@verto/tippar

Tipping for Profit-Sharing Communities made easy

  • 1.0.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
8
increased by166.67%
Maintainers
4
Weekly downloads
 
Created
Source

Tippar

A simple library to select which PST token holder receives a tip. With the addition of SmartWeave contracts being able to custody different types of PSTs, there now needs to be a way for tips to be distributed to contracts in addition to wallets.

How it works

Tippar chooses token holders from contract(s) in recursion until a wallet is selected. Take note of the following examples:

A tip needs to be given to a token holder in Contract A

Tippar Process:

select holder from contract (A)
if holder === contract (B)
  select new holder from contract (B)
  if new holder === wallet
    return new holder
  else
    ...continue recursion

Real-World Example:

An ArDrive user is sending a tip to an ArDrive holder. If the random token-holder selected to receive the tip is the Verto Contract, a new token-holder is calculated from the users who hold a balance of VRT. This means that the ArDrive tip will now be sent to the VRT token holder.

Usage

yarn add @verto/tippar
chooseRecipient
async function chooseRecipient(client: Arweave, contract: string, mode?: string): Promise<string>
  • client: Arweave client instance
  • contract: Profit-Sharing token contract to choose holder from
  • mode?: Optional parameter for setting type of selection
    • "weightedRandom": Select token holder based on a weighted-random
    • "greatest": Select token holder from the the greatest balance
    • Defaults to "weightedRandom"

Example:

import { chooseRecipient } from "@verto/tippar;

async function someUserInteraction() {
  ...
  const tipReceiver = await chooseRecipient(arweaveClient, pstContract);
  console.log(`Wallet of tip receiver: ${tipReceiver}`);
  ...
}

Contributing

Any and all contributions are welcome. Feel free to make a PR with any updates for fixes.

Keywords

FAQs

Package last updated on 15 Jan 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc