diff --git a/packages/tasit-contracts/src/config/ropsten.js b/packages/tasit-contracts/src/config/ropsten.js index fa14c650..21bc32bf 100644 --- a/packages/tasit-contracts/src/config/ropsten.js +++ b/packages/tasit-contracts/src/config/ropsten.js @@ -5,7 +5,7 @@ const ropsten = { pollingInterval: 4000, }, events: { - timeout: 2000, + timeout: 5 * 60 * 1000, }, }; diff --git a/packages/tasit-contracts/src/scripts/populateDecentralandContracts.js b/packages/tasit-contracts/src/scripts/populateDecentralandContracts.js index 670cfb4a..437a8fc7 100644 --- a/packages/tasit-contracts/src/scripts/populateDecentralandContracts.js +++ b/packages/tasit-contracts/src/scripts/populateDecentralandContracts.js @@ -182,13 +182,24 @@ const createParcel = async parcel => { gasParams ); + console.log(`creating parcel.... ${x},${y}`); + const parcelId = await new Promise((resolve, reject) => { - action.once("confirmation", async message => { + action.on("confirmation", async message => { const id = await landContract.encodeTokenId(`${x}`, `${y}`); + action.unsubscribe(); resolve(id); }); + action.on("error", message => { + const { error } = message; + console.log(error); + action.unsubscribe(); + reject(); + }); + setTimeout(() => { + console.log(`Timeout reached`); action.unsubscribe(); reject(); }, EVENTS_TIMEOUT); @@ -224,14 +235,37 @@ const createEstate = async estate => { ); const estateId = await new Promise((resolve, reject) => { - estateContract.once("CreateEstate", message => { + estateContract.on("CreateEstate", message => { const { data } = message; const { args } = data; + estateContract.unsubscribe(); resolve(args._estateId); }); + // Some error (orphan block, failed tx) events are being triggered only from the confirmationListener + // See more: https://github.com/tasitlabs/TasitSDK/issues/253 + action.on("confirmation", () => {}); + + action.on("error", message => { + const { error } = message; + console.log(error); + estateContract.unsubscribe(); + action.unsubscribe(); + reject(); + }); + + estateContract.on("error", message => { + const { error } = message; + console.log(error); + estateContract.unsubscribe(); + action.unsubscribe(); + reject(); + }); + setTimeout(() => { + console.log(`Timeout reached`); estateContract.unsubscribe(); + action.unsubscribe(); reject(); }, EVENTS_TIMEOUT); }); @@ -302,6 +336,7 @@ const placeAssetOrders = async (estateIds, parcelIds) => { for (let asset of assetsToSell) { const { nftAddress, id } = asset; + await placeAssetSellOrder(nftAddress, id); } }; @@ -312,6 +347,9 @@ const placeAssetSellOrder = async (nftAddress, assetId) => { const price = getRandomInt(10, 100) + "000"; const priceInWei = bigNumberify(price).mul(WEI_PER_ETHER); + const type = nftAddress == ESTATE_ADDRESS ? "estate" : "parcel"; + console.log(`placing sell order for the ${type} with id ${assetId}`); + const action = marketplaceContract.createOrder( nftAddress, assetId,