npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

algo-flash-loan-sdk

v1.0.3

Published

[Algorand FL4SH LOAN](https://github.com/d13co/algo-FL4SH-LOAN-lsig) client for javascript.

Downloads

8

Readme

algo-fl4sh-loan-sdk

Algorand FL4SH LOAN client for javascript.

What it is / How it works / Why would I use it / etc

Read the FL4SH LOAN documentation here.

Installation

npm i algo-fl4sh-loan-sdk

or

yarn algo-fl4sh-loan-sdk

Example use

See also: examples/ for a standalone example.

import algosdk from 'algosdk';
import { makeLoanTxn, signLoanTxn } from 'algo-fl4sh-loan-sdk';

const algod = new algosdk.Algodv2("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "http://localhost", "4001");

const mnem = 'essay glory sponsor now detect bitter first arrive elder noble immense direct shock forest whale relief puppy coast initial blood salute total cube about expect';

const { addr, sk } = algosdk.mnemonicToSecretKey(mnem);

const suggestedParams = await algod.getTransactionParams().do();

// unsignedLoanTxn: the loan from the logic sig to "addr"
// unsignedRepayTxn: an example repayment txn back to the logic sig
// repayAmount: use if you want to create your own repayment transaction
const [unsignedLoanTxn, unsignedRepayTxn, repayAmount] = await makeLoanTxn({
  algosdk,
  algod, 
  fees: 10_000,
  receiver: addr,
  amount: 1_000_000,
});

// group the transactions
// loan txn MUST be first
// repayment txn MUST be last
// repayment can be from any address
// repayment MUST be an outer payment - CAN NOT be from an inner transaction in an app call
algosdk.assignGroupID([unsignedLoanTxn, /* your other transactions go here */ unsignedRepayTxn]);

// sign and submit
const signed = [
  signLoanTxn(unsignedLoanTxn, algosdk).blob,
  algosdk.signTransaction(unsignedRepayTxn, sk).blob,
];

try {
  const { txId } = await algod.sendRawTransaction(signed).do();
  console.log('OK', txId);
} catch(e) {
  console.error(e);
}

Exported functions

Note: All functions expect algosdk to be passed as a parameter.

async makeLoanTxn

makeLoanTxn returns the first and last transactions (unsigned) to be placed in the transaction group.

Call with parameters:

const [unsignedLoanTxn, unsignedRepayTxn, repayAmount] = await makeLoanTxn({
  algosdk,
  receiver,
  amount,
  fees,
  suggestedParams,
  algod,
});

Object parameter values:

  • algosdk: required. pass in the js-algorand-sdk you are using on your client.
  • receiver: required. address of loan recipient.
  • amount: required. can be 0. amount to withdraw.
  • fees: optional. Flat fee to set in the loan transaction. Will default to suggestedParams or query suggested parameters from algod.
  • suggestedParams: optional[2]. Suggested parameters to use. if fees is also provided, flatFee will be set to true and fee will be set to the fees value
  • algod: optional[2]. Algod v2 client to query suggested parameters.

* optional[2]: one of algod or suggestedParams is required

Return values: Array of:

  • Unsigned loan transaction. Goes first in the group.
  • Unsigned loan repayment transaction. Goes last in the group.
  • Repayment amount. Use this in case you want to repay the loan from a different account.

signLoanTxn

Signs a loan txn with the logic sig.

const signed = signLoanTxn(unsignedLoanTxn, algosdk);

Arguments:

  • unsignedLoanTxn: unsigned loan transaction as generated from makeLoanTxn
  • algosdk: your algosdk

Returns:

Signed transaction, containing: { txID, blob }

getAddress

Returns the fl4sh loan logic sig address: FL4SHLOANLERAK6AFTBSBIL2WIWCRUFY7XWQK57H3EXM6GMMGMPT7C3UKI

const address = getAddress(algosdk);

Arguments:

  • algosdk

getLsig

Returns a LogicSigAccount (algosdk class)

const lsigAccount = getLsig(algosdk);