Skip to content
This repository has been archived by the owner on Mar 16, 2022. It is now read-only.

Commit

Permalink
Merge pull request #4 from bikerworld/reswap
Browse files Browse the repository at this point in the history
Reswap
  • Loading branch information
jmagly committed Jan 17, 2022
2 parents 8e0db90 + 0b7dd1e commit 19c4b37
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 24 deletions.
28 changes: 18 additions & 10 deletions src/components/owner-swaps/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const sortByPrice = (a, b) => {
return Number(a.xtz_per_objkt) - Number(b.xtz_per_objkt)
}

export const OwnerSwaps = ({ swaps, handleCollect, cancel, proxyAdminAddress, restricted, ban, cancelv1 }) => {
export const OwnerSwaps = ({ swaps, handleCollect, cancel, proxyAdminAddress, restricted, ban, cancelv1, reswapv2 }) => {

console.log("SWAPS", proxyAdminAddress);

Expand Down Expand Up @@ -75,16 +75,24 @@ export const OwnerSwaps = ({ swaps, handleCollect, cancel, proxyAdminAddress, re
<div className={styles.buttons}>
{!restricted && (
!ban.includes(swap.creator_id) && (
<Button onClick={() => handleCollect(swap.id, swap.price)}>
<Purchase>
collect for {parseFloat(swap.price / 1000000)} tez
</Purchase>
</Button>
))}
<Button onClick={() => handleCollect(swap.id, swap.price)}>
<Purchase>
collect for {parseFloat(swap.price / 1000000)} tez
</Purchase>
</Button>
))}
{showCancel && (
<Button onClick={() => cancel(swap.id)}>
<Purchase>cancel</Purchase>
</Button>
<>
<div className={styles.break}></div>
<input id="new_price" type="text" size="12" placeholder="New price"></input>
<Button onClick={() => reswapv2(swap)}>
<Purchase>reswap</Purchase>
</Button>

<Button onClick={() => cancel(swap.id)}>
<Purchase>cancel</Purchase>
</Button>
</>
)}
</div>
</div>
Expand Down
9 changes: 8 additions & 1 deletion src/components/owner-swaps/styles.module.scss
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,18 @@

.issuer {
display: flex;
align-items: center;
align-items: stretch;
}

.break {
flex-basis: 100%;
height: 0;
margin-bottom:10px;
}

.buttons {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: flex-end;

Expand Down
43 changes: 41 additions & 2 deletions src/context/HicetnuncContext.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ const Packer = new MichelCodecPacker();
function modifyFeeAndLimit(op) {
const { fee, gas_limit, storage_limit, ...rest } = op;
if (op.parameters && (op.parameters.entrypoint === "swap") || (op.parameters.entrypoint === "mint_OBJKT") || (op.parameters.entrypoint === "collect")) {
rest.storage_limit = 310
}
Expand Down Expand Up @@ -207,6 +207,45 @@ class HicetnuncContextProviderClass extends Component {
return await batch.send()
},

reswapv2: async (swap) => {
let xtz_per_objkt = document.getElementById("new_price").value
if (typeof (xtz_per_objkt) == 'undefined' || !xtz_per_objkt) return;
if (parseFloat(xtz_per_objkt) == NaN) return;
if (parseFloat(xtz_per_objkt) <= 0.0) return;

let objkt_id = swap.token.id
let creator = swap.token.creator_id
let from = swap.creator_id
let price = parseFloat(xtz_per_objkt) * 1000000

let objkts = await Tezos.wallet.at(this.state.objkts)
await Tezos.wallet.at(this.state.v2).then(c => console.log(c.parameterSchema.ExtractSignatures()))
let marketplace = await Tezos.wallet.at(this.state.v2)
let list = []
// cancel current swap
list.push({
kind: OpKind.TRANSACTION,
...marketplace.methods.cancel_swap(parseFloat(swap.id)).toTransferParams({ amount: 0, mutez: true, storageLimit: 310 })
})
// swap with new price
list.push(
{
kind: OpKind.TRANSACTION,
...objkts.methods.update_operators([{ add_operator: { operator: this.state.v2, token_id: parseFloat(objkt_id), owner: from } }])
.toTransferParams({ amount: 0, mutez: true, storageLimit: 100 })
}
)
list.push(
{
kind: OpKind.TRANSACTION,
...marketplace.methods.swap(creator, parseFloat(swap.amount_left), parseFloat(objkt_id), parseFloat(swap.royalties), price).toTransferParams({ amount: 0, mutez: true, storageLimit: 250 })
}
)
console.log(list)
let batch = await Tezos.wallet.batch(list);
return await batch.send()
},

batch_cancel: async (arr) => {
let v1 = await Tezos.wallet.at(this.state.v1)

Expand Down Expand Up @@ -695,7 +734,7 @@ class HicetnuncContextProviderClass extends Component {
})
},

/*
/*
airgap/thanos interop methods
*/
operationRequest: async (obj) => {
Expand Down
28 changes: 17 additions & 11 deletions src/pages/objkt-display/tabs/collectors.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,19 @@ import { OwnerSwaps } from '../../../components/owner-swaps'

const _ = require('lodash')

export const Collectors = ({ creator, swaps, token_holders, restricted, ban }) => {
const { syncTaquito, collect, acc, getAccount, cancel, cancelv1 } =
export const Collectors = ({ id, creator, swaps, token_holders, restricted, ban }) => {
const { syncTaquito, collect, acc, getAccount, cancel, cancelv1, reswapv2 } =
useContext(HicetnuncContext)

// sort swaps in ascending price order

swaps = _.orderBy(swaps, 'price', 'asc')

// for reswap, we need to have minimal token info
swaps.forEach(s => {
s.token = { id: id, creator_id: creator.address }
})

const handleCollect = (swap_id, price) => {
if (acc == null) {
syncTaquito()
Expand All @@ -39,21 +44,22 @@ export const Collectors = ({ creator, swaps, token_holders, restricted, ban }) =
cancelv1={cancelv1}
restricted={restricted}
ban={ban}
reswapv2={reswapv2}
/>
</Padding>
</Container>
)}

{/* {filtered.length === 0 ? undefined : ( */}
<Container>
<Padding>
<OwnerList
owners={token_holders}
acc={acc}
swaps={swaps}
/>
</Padding>
</Container>
<Container>
<Padding>
<OwnerList
owners={token_holders}
acc={acc}
swaps={swaps}
/>
</Padding>
</Container>
{/* )} */}
</>
)
Expand Down

0 comments on commit 19c4b37

Please sign in to comment.