From 908f8976105ae3122bbec92a2e877bdae4138c1b Mon Sep 17 00:00:00 2001 From: TheChronicMonster Date: Thu, 15 Sep 2022 16:35:04 -0500 Subject: [PATCH 01/13] algo mints --- examples/simple-nft-minter/index.mjs | 43 ++++++++++++++++++++++++++++ examples/simple-nft-minter/index.rsh | 1 + 2 files changed, 44 insertions(+) create mode 100644 examples/simple-nft-minter/index.mjs create mode 100644 examples/simple-nft-minter/index.rsh diff --git a/examples/simple-nft-minter/index.mjs b/examples/simple-nft-minter/index.mjs new file mode 100644 index 0000000000..e8355b865a --- /dev/null +++ b/examples/simple-nft-minter/index.mjs @@ -0,0 +1,43 @@ +import { loadStdlib } from '@reach-sh/stdlib'; +const stdlib = loadStdlib(process.env); + +const startingBalance = stdlib.parseCurrency(100000); + +const [minter, receiver] = await stdlib.newTestAccounts(2, startingBalance); + +const gasLimit = 5000000; +minter.setGasLimit(gasLimit); +receiver.setGasLimit(gasLimit); + +const mintAddr = minter.getAddress(); +console.log(`Your address is ${mintAddr}`); +const recAddr = receiver.getAddress(); +console.log(`receiver's address is ${recAddr}`); + +const minterAddrFormat = await stdlib.formatAddress(minter); +console.log(`The minter's formatted address is ${minterAddrFormat}`); +const receiverAddrFormat = await stdlib.formatAddress(receiver); +console.log(`The receiver's formatted address is ${receiverAddrFormat}`); + +const fmt = (x) => stdlib.formatCurrency(x, 4); +const getBal = async (who) => fmt(await stdlib.balanceOf(who)); +const bal = await getBal(minter); +console.log(`Minter starting balance: ${bal}.`); + +console.log(`Creating the NFT`); +const theNFT = await stdlib.launchToken(minter, "nftName", "SYM", { supply: 1, url: "https://reach.sh", clawback: null, freeze: null, defaultFrozen: false, reserve: null, note: Uint8Array[1]}); +const nftId = theNFT.id; + +const [preAmtNFT] = await stdlib.balancesOf(minter, [nftId]); +console.log(`Minter has ${preAmtNFT} of the NFT`); + +if (stdlib.connector == 'ALGO' && await receiver.tokenAccept(nftId)) {console.log(`Receiver opted-in to NFT`)}; +if (stdlib.connector == 'ALGO' && await receiver.tokenAccepted(nftId)) {console.log(`Token accepted`)}; +await stdlib.transfer(minter, receiver, 1, nftId); +console.log(`NFT transfer made from minter to receiver`); + +const postBal = await getBal(minter); +console.log(`Minter balance after transfer: ${postBal}.`); + +const [postAmtNFT] = await stdlib.balancesOf(receiver, [nftId]); +console.log(`Receiver has ${postAmtNFT} of the NFT`); \ No newline at end of file diff --git a/examples/simple-nft-minter/index.rsh b/examples/simple-nft-minter/index.rsh new file mode 100644 index 0000000000..7eee8baeb1 --- /dev/null +++ b/examples/simple-nft-minter/index.rsh @@ -0,0 +1 @@ +'reach 0.1' \ No newline at end of file From 2c72336b5903075ba9aeeeb73d3ed372e7e6479b Mon Sep 17 00:00:00 2001 From: TheChronicMonster Date: Thu, 15 Sep 2022 21:40:19 -0500 Subject: [PATCH 02/13] bal call --- examples/simple-nft-minter/index.mjs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/simple-nft-minter/index.mjs b/examples/simple-nft-minter/index.mjs index e8355b865a..104fd6bb7b 100644 --- a/examples/simple-nft-minter/index.mjs +++ b/examples/simple-nft-minter/index.mjs @@ -1,7 +1,7 @@ import { loadStdlib } from '@reach-sh/stdlib'; const stdlib = loadStdlib(process.env); -const startingBalance = stdlib.parseCurrency(100000); +const startingBalance = stdlib.parseCurrency(1000); const [minter, receiver] = await stdlib.newTestAccounts(2, startingBalance); @@ -26,9 +26,9 @@ console.log(`Minter starting balance: ${bal}.`); console.log(`Creating the NFT`); const theNFT = await stdlib.launchToken(minter, "nftName", "SYM", { supply: 1, url: "https://reach.sh", clawback: null, freeze: null, defaultFrozen: false, reserve: null, note: Uint8Array[1]}); -const nftId = theNFT.id; +const nftId = await theNFT.id; -const [preAmtNFT] = await stdlib.balancesOf(minter, [nftId]); +const preAmtNFT = await minter.balanceOf(nftId); console.log(`Minter has ${preAmtNFT} of the NFT`); if (stdlib.connector == 'ALGO' && await receiver.tokenAccept(nftId)) {console.log(`Receiver opted-in to NFT`)}; @@ -39,5 +39,5 @@ console.log(`NFT transfer made from minter to receiver`); const postBal = await getBal(minter); console.log(`Minter balance after transfer: ${postBal}.`); -const [postAmtNFT] = await stdlib.balancesOf(receiver, [nftId]); +const postAmtNFT = await receiver.balanceOf(nftId); console.log(`Receiver has ${postAmtNFT} of the NFT`); \ No newline at end of file From 4595ad2db363306bdc2d611a437cdba46c9bce6a Mon Sep 17 00:00:00 2001 From: TheChronicMonster Date: Mon, 3 Oct 2022 15:28:40 -0500 Subject: [PATCH 03/13] feat: arc-specs --- examples/simple-nft-minter/index.mjs | 62 ++++++++++++++++++---------- 1 file changed, 41 insertions(+), 21 deletions(-) diff --git a/examples/simple-nft-minter/index.mjs b/examples/simple-nft-minter/index.mjs index 104fd6bb7b..5c9f71e27c 100644 --- a/examples/simple-nft-minter/index.mjs +++ b/examples/simple-nft-minter/index.mjs @@ -1,13 +1,13 @@ -import { loadStdlib } from '@reach-sh/stdlib'; -const stdlib = loadStdlib(process.env); +import { Reach, test } from '@reach-sh/stdlib'; +const stdlib = new Reach(process.env, { REACH_NO_WARN: 'Y' }); -const startingBalance = stdlib.parseCurrency(1000); +const startingBalance = stdlib.parseCurrency(100); const [minter, receiver] = await stdlib.newTestAccounts(2, startingBalance); -const gasLimit = 5000000; -minter.setGasLimit(gasLimit); -receiver.setGasLimit(gasLimit); +const gasLimit = 500000; +if (stdlib.connector == 'ETH') {minter.setGasLimit(gasLimit)}; +if (stdlib.connector == 'ETH') {receiver.setGasLimit(gasLimit)}; const mintAddr = minter.getAddress(); console.log(`Your address is ${mintAddr}`); @@ -24,20 +24,40 @@ const getBal = async (who) => fmt(await stdlib.balanceOf(who)); const bal = await getBal(minter); console.log(`Minter starting balance: ${bal}.`); -console.log(`Creating the NFT`); -const theNFT = await stdlib.launchToken(minter, "nftName", "SYM", { supply: 1, url: "https://reach.sh", clawback: null, freeze: null, defaultFrozen: false, reserve: null, note: Uint8Array[1]}); -const nftId = await theNFT.id; - -const preAmtNFT = await minter.balanceOf(nftId); -console.log(`Minter has ${preAmtNFT} of the NFT`); - -if (stdlib.connector == 'ALGO' && await receiver.tokenAccept(nftId)) {console.log(`Receiver opted-in to NFT`)}; -if (stdlib.connector == 'ALGO' && await receiver.tokenAccepted(nftId)) {console.log(`Token accepted`)}; -await stdlib.transfer(minter, receiver, 1, nftId); -console.log(`NFT transfer made from minter to receiver`); +const mintNFT = async () => { + console.log(`Creating the NFT`); + const theNFT = await stdlib.launchToken(minter, "JPalgos", "JPA", { + supply: 1, + au: "ipfs://placeholderQmYgEFqRkWvNZu7gfk9HDdh55bQbYyc16TF1zX58", //asset url + c: null, // clawback + f: null, // freeze address + defaultFrozen: false, + reserve: null, + note: Uint8Array[1], + }); + const nftId = await theNFT.id; + test.chk('NFT ID', nftId, theNFT.id); + + await transferNFT(nftId); + return await nftId; +} + +const transferNFT = async (nftId) => { + + const preAmtNFT = await minter.balanceOf(nftId); + console.log(`Minter has ${preAmtNFT} of the NFT`); + + if (stdlib.connector == 'ALGO' && await receiver.tokenAccept(nftId)) {console.log(`Receiver opted-in to NFT`)}; + if (stdlib.connector == 'ALGO' && await receiver.tokenAccepted(nftId)) {console.log(`Token accepted`)}; + await stdlib.transfer(minter, receiver, 1, nftId); + console.log(`NFT transfer made from minter to receiver`); + + const postAmtNFT = await receiver.balanceOf(nftId); + console.log(`Receiver has ${postAmtNFT} of the NFT`); + test.chk('NFT AMT', preAmtNFT, postAmtNFT); +} + +await mintNFT(); const postBal = await getBal(minter); -console.log(`Minter balance after transfer: ${postBal}.`); - -const postAmtNFT = await receiver.balanceOf(nftId); -console.log(`Receiver has ${postAmtNFT} of the NFT`); \ No newline at end of file +console.log(`Minter balance after transfer: ${postBal}.`); \ No newline at end of file From d18f51133ac8294611498919e6d512b422d54bfe Mon Sep 17 00:00:00 2001 From: TheChronicMonster Date: Mon, 3 Oct 2022 15:36:43 -0500 Subject: [PATCH 04/13] output --- examples/simple-nft-minter/index.txt | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 examples/simple-nft-minter/index.txt diff --git a/examples/simple-nft-minter/index.txt b/examples/simple-nft-minter/index.txt new file mode 100644 index 0000000000..d8f7f9bf95 --- /dev/null +++ b/examples/simple-nft-minter/index.txt @@ -0,0 +1,5 @@ +Verifying knowledge assertions +Verifying for generic connector + Verifying when ALL participants are honest + Verifying when NO participants are honest +Checked 0 theorems; No failures! From 744f6d34be739b31bcc45fd3e9648cd8f8bc30f5 Mon Sep 17 00:00:00 2001 From: TheChronicMonster Date: Wed, 12 Oct 2022 12:11:49 -0500 Subject: [PATCH 05/13] feat: paramzd --- examples/simple-nft-minter/index.mjs | 51 ++++++++++++++++------------ 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/examples/simple-nft-minter/index.mjs b/examples/simple-nft-minter/index.mjs index 5c9f71e27c..a56c8240d7 100644 --- a/examples/simple-nft-minter/index.mjs +++ b/examples/simple-nft-minter/index.mjs @@ -6,8 +6,8 @@ const startingBalance = stdlib.parseCurrency(100); const [minter, receiver] = await stdlib.newTestAccounts(2, startingBalance); const gasLimit = 500000; -if (stdlib.connector == 'ETH') {minter.setGasLimit(gasLimit)}; -if (stdlib.connector == 'ETH') {receiver.setGasLimit(gasLimit)}; +if (stdlib.connector != 'ALGO') {minter.setGasLimit(gasLimit)}; +if (stdlib.connector != 'ALGO') {receiver.setGasLimit(gasLimit)}; const mintAddr = minter.getAddress(); console.log(`Your address is ${mintAddr}`); @@ -24,32 +24,38 @@ const getBal = async (who) => fmt(await stdlib.balanceOf(who)); const bal = await getBal(minter); console.log(`Minter starting balance: ${bal}.`); -const mintNFT = async () => { +const opts = { + supply: 1, + au: "ipfs://bafybeigdyrzt5...", //asset url + c: null, // clawback + f: null, // freeze address + defaultFrozen: false, + reserve: null, + note: Uint8Array[1], +}; + +const name = "JPAlgos"; +const symbol = "JPA"; + +const mintNFT = async (minter, name, symbol, opts = {supply: 1, au: "ipfs://bafybeigdyrzt5...", c: null, f: null, defaultFrozen: false, reserve: null, note: Uint8Array[1]}) => { console.log(`Creating the NFT`); - const theNFT = await stdlib.launchToken(minter, "JPalgos", "JPA", { - supply: 1, - au: "ipfs://placeholderQmYgEFqRkWvNZu7gfk9HDdh55bQbYyc16TF1zX58", //asset url - c: null, // clawback - f: null, // freeze address - defaultFrozen: false, - reserve: null, - note: Uint8Array[1], - }); - const nftId = await theNFT.id; - test.chk('NFT ID', nftId, theNFT.id); - - await transferNFT(nftId); - return await nftId; + const theNFT = await stdlib.launchToken(minter, name, symbol, opts); + console.log(theNFT); + return theNFT.id; } -const transferNFT = async (nftId) => { +const transferNFT = async (minter, receiver, nftId, supply) => { const preAmtNFT = await minter.balanceOf(nftId); console.log(`Minter has ${preAmtNFT} of the NFT`); - if (stdlib.connector == 'ALGO' && await receiver.tokenAccept(nftId)) {console.log(`Receiver opted-in to NFT`)}; - if (stdlib.connector == 'ALGO' && await receiver.tokenAccepted(nftId)) {console.log(`Token accepted`)}; - await stdlib.transfer(minter, receiver, 1, nftId); + if (stdlib.connector == 'ALGO' && await receiver.tokenAccept(nftId)) { + console.log(`Receiver opted-in to NFT` + )}; + if (stdlib.connector == 'ALGO' && await receiver.tokenAccepted(nftId)) { + console.log(`Token accepted` + )}; + await stdlib.transfer(minter, receiver, supply, nftId); console.log(`NFT transfer made from minter to receiver`); const postAmtNFT = await receiver.balanceOf(nftId); @@ -57,7 +63,8 @@ const transferNFT = async (nftId) => { test.chk('NFT AMT', preAmtNFT, postAmtNFT); } -await mintNFT(); +const nftId = await mintNFT(minter, name, symbol, opts); +await transferNFT(minter, receiver, nftId, opts.supply); const postBal = await getBal(minter); console.log(`Minter balance after transfer: ${postBal}.`); \ No newline at end of file From fb81aeb37fd3869e59a241107178b353fcf7482a Mon Sep 17 00:00:00 2001 From: TheChronicMonster Date: Wed, 12 Oct 2022 13:40:05 -0500 Subject: [PATCH 06/13] fix: nittypicky --- examples/simple-nft-minter/index.mjs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/simple-nft-minter/index.mjs b/examples/simple-nft-minter/index.mjs index a56c8240d7..a80a13fc2d 100644 --- a/examples/simple-nft-minter/index.mjs +++ b/examples/simple-nft-minter/index.mjs @@ -24,6 +24,9 @@ const getBal = async (who) => fmt(await stdlib.balanceOf(who)); const bal = await getBal(minter); console.log(`Minter starting balance: ${bal}.`); +const name = "JPAlgos"; +const symbol = "JPA"; + const opts = { supply: 1, au: "ipfs://bafybeigdyrzt5...", //asset url @@ -34,9 +37,6 @@ const opts = { note: Uint8Array[1], }; -const name = "JPAlgos"; -const symbol = "JPA"; - const mintNFT = async (minter, name, symbol, opts = {supply: 1, au: "ipfs://bafybeigdyrzt5...", c: null, f: null, defaultFrozen: false, reserve: null, note: Uint8Array[1]}) => { console.log(`Creating the NFT`); const theNFT = await stdlib.launchToken(minter, name, symbol, opts); @@ -50,11 +50,11 @@ const transferNFT = async (minter, receiver, nftId, supply) => { console.log(`Minter has ${preAmtNFT} of the NFT`); if (stdlib.connector == 'ALGO' && await receiver.tokenAccept(nftId)) { - console.log(`Receiver opted-in to NFT` - )}; + console.log(`Receiver opted-in to NFT`); + }; if (stdlib.connector == 'ALGO' && await receiver.tokenAccepted(nftId)) { - console.log(`Token accepted` - )}; + console.log(`Token accepted`); + }; await stdlib.transfer(minter, receiver, supply, nftId); console.log(`NFT transfer made from minter to receiver`); From 3cae381a53d8ddbf90ba46ebf68839a21724bfe2 Mon Sep 17 00:00:00 2001 From: TheChronicMonster Date: Mon, 17 Oct 2022 14:40:47 -0500 Subject: [PATCH 07/13] feat: bal abstracted --- examples/simple-nft-minter/index.mjs | 37 ++++++++++++++++------------ 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/examples/simple-nft-minter/index.mjs b/examples/simple-nft-minter/index.mjs index a80a13fc2d..47afbb24d7 100644 --- a/examples/simple-nft-minter/index.mjs +++ b/examples/simple-nft-minter/index.mjs @@ -2,7 +2,6 @@ import { Reach, test } from '@reach-sh/stdlib'; const stdlib = new Reach(process.env, { REACH_NO_WARN: 'Y' }); const startingBalance = stdlib.parseCurrency(100); - const [minter, receiver] = await stdlib.newTestAccounts(2, startingBalance); const gasLimit = 500000; @@ -10,9 +9,9 @@ if (stdlib.connector != 'ALGO') {minter.setGasLimit(gasLimit)}; if (stdlib.connector != 'ALGO') {receiver.setGasLimit(gasLimit)}; const mintAddr = minter.getAddress(); -console.log(`Your address is ${mintAddr}`); +console.log(`Minter's address is ${mintAddr}`); const recAddr = receiver.getAddress(); -console.log(`receiver's address is ${recAddr}`); +console.log(`Receiver's address is ${recAddr}`); const minterAddrFormat = await stdlib.formatAddress(minter); console.log(`The minter's formatted address is ${minterAddrFormat}`); @@ -20,16 +19,26 @@ const receiverAddrFormat = await stdlib.formatAddress(receiver); console.log(`The receiver's formatted address is ${receiverAddrFormat}`); const fmt = (x) => stdlib.formatCurrency(x, 4); -const getBal = async (who) => fmt(await stdlib.balanceOf(who)); -const bal = await getBal(minter); -console.log(`Minter starting balance: ${bal}.`); +const getBal = async (who, tok) => fmt(await stdlib.balanceOf(who, tok)); + +const logBalance = async (acc, tok, accStr) => { + const bal = await getBal(acc, tok, accStr); + const trueBal = await tok ? opts.supply : bal; + const unit = await tok ? 'of the NFT' : stdlib.connector; + accStr = acc.networkAccount.addr.toString(); + console.log(`${accStr} has ${trueBal} ${unit}.`); + + return trueBal; +} + +await logBalance(minter); const name = "JPAlgos"; const symbol = "JPA"; const opts = { supply: 1, - au: "ipfs://bafybeigdyrzt5...", //asset url + url: "ipfs://bafybeigdyrzt5...", //asset url c: null, // clawback f: null, // freeze address defaultFrozen: false, @@ -37,7 +46,7 @@ const opts = { note: Uint8Array[1], }; -const mintNFT = async (minter, name, symbol, opts = {supply: 1, au: "ipfs://bafybeigdyrzt5...", c: null, f: null, defaultFrozen: false, reserve: null, note: Uint8Array[1]}) => { +const mintNFT = async (minter, name, symbol, opts = {supply, url, c: null, f: null, defaultFrozen: false, reserve: null, note}) => { console.log(`Creating the NFT`); const theNFT = await stdlib.launchToken(minter, name, symbol, opts); console.log(theNFT); @@ -45,9 +54,7 @@ const mintNFT = async (minter, name, symbol, opts = {supply: 1, au: "ipfs://bafy } const transferNFT = async (minter, receiver, nftId, supply) => { - - const preAmtNFT = await minter.balanceOf(nftId); - console.log(`Minter has ${preAmtNFT} of the NFT`); + const preAmtNFT = await logBalance(minter, nftId); if (stdlib.connector == 'ALGO' && await receiver.tokenAccept(nftId)) { console.log(`Receiver opted-in to NFT`); @@ -56,15 +63,13 @@ const transferNFT = async (minter, receiver, nftId, supply) => { console.log(`Token accepted`); }; await stdlib.transfer(minter, receiver, supply, nftId); - console.log(`NFT transfer made from minter to receiver`); + console.log(`${supply} ${symbol} transferred from ${minter.networkAccount.addr.toString()} to ${receiver.networkAccount.addr.toString()}`); - const postAmtNFT = await receiver.balanceOf(nftId); - console.log(`Receiver has ${postAmtNFT} of the NFT`); + const postAmtNFT = await logBalance(receiver, nftId); test.chk('NFT AMT', preAmtNFT, postAmtNFT); } const nftId = await mintNFT(minter, name, symbol, opts); await transferNFT(minter, receiver, nftId, opts.supply); -const postBal = await getBal(minter); -console.log(`Minter balance after transfer: ${postBal}.`); \ No newline at end of file +await logBalance(minter); From 85d0f16789eb5c7e7a7280c3d69de601357c0749 Mon Sep 17 00:00:00 2001 From: TheChronicMonster Date: Tue, 18 Oct 2022 15:39:57 -0500 Subject: [PATCH 08/13] refactor: getaddr --- examples/simple-nft-minter/index.mjs | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/examples/simple-nft-minter/index.mjs b/examples/simple-nft-minter/index.mjs index 47afbb24d7..9ba379cc38 100644 --- a/examples/simple-nft-minter/index.mjs +++ b/examples/simple-nft-minter/index.mjs @@ -5,8 +5,7 @@ const startingBalance = stdlib.parseCurrency(100); const [minter, receiver] = await stdlib.newTestAccounts(2, startingBalance); const gasLimit = 500000; -if (stdlib.connector != 'ALGO') {minter.setGasLimit(gasLimit)}; -if (stdlib.connector != 'ALGO') {receiver.setGasLimit(gasLimit)}; +if (stdlib.connector != 'ALGO') {minter.setGasLimit(gasLimit) && receiver.setGasLimit(gasLimit)}; const mintAddr = minter.getAddress(); console.log(`Minter's address is ${mintAddr}`); @@ -19,19 +18,17 @@ const receiverAddrFormat = await stdlib.formatAddress(receiver); console.log(`The receiver's formatted address is ${receiverAddrFormat}`); const fmt = (x) => stdlib.formatCurrency(x, 4); -const getBal = async (who, tok) => fmt(await stdlib.balanceOf(who, tok)); +const getBal = async (who, tok) => tok ? (await stdlib.balanceOf(who, tok)) : fmt(await stdlib.balanceOf(who)); -const logBalance = async (acc, tok, accStr) => { +const logBalance = async (acc, tok, accStr = acc.getAddress()) => { const bal = await getBal(acc, tok, accStr); - const trueBal = await tok ? opts.supply : bal; - const unit = await tok ? 'of the NFT' : stdlib.connector; - accStr = acc.networkAccount.addr.toString(); - console.log(`${accStr} has ${trueBal} ${unit}.`); + const unit = tok ? 'of the NFT' : stdlib.standardUnit; + console.log(`${accStr} has ${bal} ${unit}.`); - return trueBal; + return bal; } -await logBalance(minter); +await logBalance(minter, null, "Minter"); const name = "JPAlgos"; const symbol = "JPA"; @@ -54,7 +51,7 @@ const mintNFT = async (minter, name, symbol, opts = {supply, url, c: null, f: nu } const transferNFT = async (minter, receiver, nftId, supply) => { - const preAmtNFT = await logBalance(minter, nftId); + const preAmtNFT = await logBalance(minter, nftId, "Minter"); if (stdlib.connector == 'ALGO' && await receiver.tokenAccept(nftId)) { console.log(`Receiver opted-in to NFT`); @@ -63,13 +60,13 @@ const transferNFT = async (minter, receiver, nftId, supply) => { console.log(`Token accepted`); }; await stdlib.transfer(minter, receiver, supply, nftId); - console.log(`${supply} ${symbol} transferred from ${minter.networkAccount.addr.toString()} to ${receiver.networkAccount.addr.toString()}`); + console.log(`${supply} ${symbol} transferred from ${minter.getAddress()} to ${receiver.getAddress()}`); - const postAmtNFT = await logBalance(receiver, nftId); + const postAmtNFT = await logBalance(receiver, nftId, "Minter"); test.chk('NFT AMT', preAmtNFT, postAmtNFT); } const nftId = await mintNFT(minter, name, symbol, opts); await transferNFT(minter, receiver, nftId, opts.supply); -await logBalance(minter); +await logBalance(minter, null, "Minter"); From ab989c030a9dcd50331d5078d2e3331c64e25372 Mon Sep 17 00:00:00 2001 From: TheChronicMonster Date: Tue, 18 Oct 2022 16:19:13 -0500 Subject: [PATCH 09/13] fix: receiver has nft --- examples/simple-nft-minter/index.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/simple-nft-minter/index.mjs b/examples/simple-nft-minter/index.mjs index 9ba379cc38..4dedd64189 100644 --- a/examples/simple-nft-minter/index.mjs +++ b/examples/simple-nft-minter/index.mjs @@ -62,7 +62,7 @@ const transferNFT = async (minter, receiver, nftId, supply) => { await stdlib.transfer(minter, receiver, supply, nftId); console.log(`${supply} ${symbol} transferred from ${minter.getAddress()} to ${receiver.getAddress()}`); - const postAmtNFT = await logBalance(receiver, nftId, "Minter"); + const postAmtNFT = await logBalance(receiver, nftId, "Receiver"); test.chk('NFT AMT', preAmtNFT, postAmtNFT); } From 6a4047893c676bacb81dfbda715c9516ff3bdf19 Mon Sep 17 00:00:00 2001 From: TheChronicMonster Date: Wed, 19 Oct 2022 15:18:21 -0500 Subject: [PATCH 10/13] refactor: removed default params --- examples/simple-nft-minter/index.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/simple-nft-minter/index.mjs b/examples/simple-nft-minter/index.mjs index 4dedd64189..0dec6f8d73 100644 --- a/examples/simple-nft-minter/index.mjs +++ b/examples/simple-nft-minter/index.mjs @@ -43,7 +43,7 @@ const opts = { note: Uint8Array[1], }; -const mintNFT = async (minter, name, symbol, opts = {supply, url, c: null, f: null, defaultFrozen: false, reserve: null, note}) => { +const mintNFT = async (minter, name, symbol, opts = {supply, url, c, f, defaultFrozen, reserve, note}) => { console.log(`Creating the NFT`); const theNFT = await stdlib.launchToken(minter, name, symbol, opts); console.log(theNFT); From 19bed1ddc600c2b4f11c52fe6cf7987c9e520000 Mon Sep 17 00:00:00 2001 From: TheChronicMonster Date: Fri, 21 Oct 2022 13:23:39 -0500 Subject: [PATCH 11/13] feat: debuglabel --- examples/simple-nft-minter/index.mjs | 38 ++++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/examples/simple-nft-minter/index.mjs b/examples/simple-nft-minter/index.mjs index 0dec6f8d73..ff24a0c34e 100644 --- a/examples/simple-nft-minter/index.mjs +++ b/examples/simple-nft-minter/index.mjs @@ -3,9 +3,13 @@ const stdlib = new Reach(process.env, { REACH_NO_WARN: 'Y' }); const startingBalance = stdlib.parseCurrency(100); const [minter, receiver] = await stdlib.newTestAccounts(2, startingBalance); +minter.setDebugLabel('Minter'); +receiver.setDebugLabel('Receiver'); const gasLimit = 500000; -if (stdlib.connector != 'ALGO') {minter.setGasLimit(gasLimit) && receiver.setGasLimit(gasLimit)}; +if (stdlib.connector != 'ALGO') { + minter.setGasLimit(gasLimit) && receiver.setGasLimit(gasLimit) +}; const mintAddr = minter.getAddress(); console.log(`Minter's address is ${mintAddr}`); @@ -20,18 +24,17 @@ console.log(`The receiver's formatted address is ${receiverAddrFormat}`); const fmt = (x) => stdlib.formatCurrency(x, 4); const getBal = async (who, tok) => tok ? (await stdlib.balanceOf(who, tok)) : fmt(await stdlib.balanceOf(who)); -const logBalance = async (acc, tok, accStr = acc.getAddress()) => { - const bal = await getBal(acc, tok, accStr); +const logBalance = async (acc, tok) => { + const bal = await getBal(acc, tok); const unit = tok ? 'of the NFT' : stdlib.standardUnit; - console.log(`${accStr} has ${bal} ${unit}.`); - + console.log(`${acc.getDebugLabel()} has ${bal} ${unit}.`); return bal; } -await logBalance(minter, null, "Minter"); +await logBalance(minter, null); -const name = "JPAlgos"; -const symbol = "JPA"; +const name = (stdlib.connector == 'ALGO') ? "JPAlgos" : "JPals"; +const symbol = (stdlib.connector == 'ALGO') ? "JPA" : "JPAL"; const opts = { supply: 1, @@ -51,22 +54,19 @@ const mintNFT = async (minter, name, symbol, opts = {supply, url, c, f, defaultF } const transferNFT = async (minter, receiver, nftId, supply) => { - const preAmtNFT = await logBalance(minter, nftId, "Minter"); + const preAmtNFT = await logBalance(minter, nftId); - if (stdlib.connector == 'ALGO' && await receiver.tokenAccept(nftId)) { - console.log(`Receiver opted-in to NFT`); - }; - if (stdlib.connector == 'ALGO' && await receiver.tokenAccepted(nftId)) { - console.log(`Token accepted`); + if (stdlib.connector == 'ALGO') { + await receiver.tokenAccept(nftId); + console.log(`${receiver.getDebugLabel()} opted-in to NFT`); }; await stdlib.transfer(minter, receiver, supply, nftId); - console.log(`${supply} ${symbol} transferred from ${minter.getAddress()} to ${receiver.getAddress()}`); - - const postAmtNFT = await logBalance(receiver, nftId, "Receiver"); + console.log(`${supply} ${symbol} transferred from ${minter.getDebugLabel()} to ${receiver.getDebugLabel()}`); + + const postAmtNFT = await logBalance(receiver, nftId); test.chk('NFT AMT', preAmtNFT, postAmtNFT); } const nftId = await mintNFT(minter, name, symbol, opts); await transferNFT(minter, receiver, nftId, opts.supply); - -await logBalance(minter, null, "Minter"); +await logBalance(minter, null); From 9881d01c06b88ecfa1677f519e3f5fbc6358184f Mon Sep 17 00:00:00 2001 From: TheChronicMonster Date: Mon, 24 Oct 2022 12:34:45 -0500 Subject: [PATCH 12/13] ignore gen log --- docs/.gitignore | 2 +- examples/simple-nft-minter/index.mjs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/.gitignore b/docs/.gitignore index 9162ad4b75..be24e4e269 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -1,6 +1,6 @@ /build /scribble.log /convert.log -/dev.log +/gen.log /md /secret.env diff --git a/examples/simple-nft-minter/index.mjs b/examples/simple-nft-minter/index.mjs index ff24a0c34e..3a8937e41a 100644 --- a/examples/simple-nft-minter/index.mjs +++ b/examples/simple-nft-minter/index.mjs @@ -31,7 +31,7 @@ const logBalance = async (acc, tok) => { return bal; } -await logBalance(minter, null); +await logBalance(minter); const name = (stdlib.connector == 'ALGO') ? "JPAlgos" : "JPals"; const symbol = (stdlib.connector == 'ALGO') ? "JPA" : "JPAL"; @@ -46,7 +46,7 @@ const opts = { note: Uint8Array[1], }; -const mintNFT = async (minter, name, symbol, opts = {supply, url, c, f, defaultFrozen, reserve, note}) => { +const mintNFT = async (minter, name, symbol, opts) => { console.log(`Creating the NFT`); const theNFT = await stdlib.launchToken(minter, name, symbol, opts); console.log(theNFT); @@ -69,4 +69,4 @@ const transferNFT = async (minter, receiver, nftId, supply) => { const nftId = await mintNFT(minter, name, symbol, opts); await transferNFT(minter, receiver, nftId, opts.supply); -await logBalance(minter, null); +await logBalance(minter); From 08ad81e1424d8a5e2aaeeb77abe54ce94de17a6e Mon Sep 17 00:00:00 2001 From: TheChronicMonster Date: Tue, 25 Oct 2022 12:16:22 -0500 Subject: [PATCH 13/13] gaslimit --- examples/simple-nft-minter/index.mjs | 2 +- examples/simple-nft-minter/index.rsh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/simple-nft-minter/index.mjs b/examples/simple-nft-minter/index.mjs index 3a8937e41a..d8c2ca4832 100644 --- a/examples/simple-nft-minter/index.mjs +++ b/examples/simple-nft-minter/index.mjs @@ -6,7 +6,7 @@ const [minter, receiver] = await stdlib.newTestAccounts(2, startingBalance); minter.setDebugLabel('Minter'); receiver.setDebugLabel('Receiver'); -const gasLimit = 500000; +const gasLimit = 5000000; if (stdlib.connector != 'ALGO') { minter.setGasLimit(gasLimit) && receiver.setGasLimit(gasLimit) }; diff --git a/examples/simple-nft-minter/index.rsh b/examples/simple-nft-minter/index.rsh index 7eee8baeb1..3f35e81b8a 100644 --- a/examples/simple-nft-minter/index.rsh +++ b/examples/simple-nft-minter/index.rsh @@ -1 +1 @@ -'reach 0.1' \ No newline at end of file +'reach 0.1'