diff --git a/README.md b/README.md index 8cc82643..b4960256 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ | :--- | :----: | | Polkadot | [v0.9.38](https://github.com/paritytech/polkadot/releases/tag/v0.9.38) | | OAK-blockchain | [v1.9.0](https://github.com/OAK-Foundation/OAK-blockchain/releases/tag/v1.9.0) | -| Mangata-node | [v0.30.0](https://github.com/mangata-finance/mangata-node/pull/501) | +| Mangata-node | [v0.30.1](https://github.com/mangata-finance/mangata-node/releases/tag/v0.30.1) | ### Steps & Logs
Dev environment @@ -33,7 +33,7 @@ - Compile modified Mangata - https://github.com/mangata-finance/mangata-node/tree/release/v0.30.0 + https://github.com/mangata-finance/mangata-node/releases/tag/v0.30.1 ``` cargo build --release --features mangata-rococo,fast-runtime @@ -371,7 +371,7 @@ MessageHash: 0xff304ed6aeab3e174ec667e9f69a18ebe23506836c4f53bd35aeb78503193453 | Chain | Version | | :--- | :----: | | Polkadot | [v0.9.38](https://github.com/paritytech/polkadot/releases/tag/v0.9.38) | -| OAK-blockchain | [v1.9.0](https://github.com/OAK-Foundation/OAK-blockchain/releases/tag/v1.9.0) | +| OAK-blockchain | [v2.0.0](https://github.com/OAK-Foundation/OAK-blockchain/releases/tag/v2.0.0) | | Moonbeam | [runtime-2302](https://github.com/PureStake/moonbeam/releases/tag/runtime-2302) | ### Steps & Logs diff --git a/src/common/utils.js b/src/common/utils.js index 1db4f981..c4878cc4 100644 --- a/src/common/utils.js +++ b/src/common/utils.js @@ -41,7 +41,7 @@ export const sendExtrinsic = async (api, extrinsic, keyPair, { isSudo = false } }); if (status.isFinalized) { - resolve(status.asFinalized.toString()); + resolve({ events, blockHash: status.asFinalized.toString() }); } } }); @@ -273,3 +273,6 @@ export const calculateXcmOverallWeight = (transactCallWeight, instructionWeight, const totalWeight = { refTime: transactCallWeight.refTime.unwrap().add(totalInstructionWeight.refTime), proofSize: transactCallWeight.proofSize.unwrap().add(totalInstructionWeight.proofSize) }; return totalWeight; }; + +export const findEvent = (events, section, method) => events.find((e) => e.event.section === section && e.event.method === method); +export const getTaskIdInTaskScheduledEvent = (event) => Buffer.from(event.event.data.taskId).toString(); diff --git a/src/config/mangata-dev.js b/src/config/mangata-dev.js index adc8830e..78866558 100644 --- a/src/config/mangata-dev.js +++ b/src/config/mangata-dev.js @@ -27,7 +27,7 @@ const assets = [ name: 'Turing native token', symbol: 'TUR', address: '', - feePerSecond: new BN('537600000000'), + feePerSecond: new BN('871400000000'), }, ]; diff --git a/src/mangata/mangata.js b/src/mangata/mangata.js index 05fb4750..48361cfb 100644 --- a/src/mangata/mangata.js +++ b/src/mangata/mangata.js @@ -10,7 +10,7 @@ import MangataHelper from '../common/mangataHelper'; import Account from '../common/account'; import { askScheduleAction, ScheduleActionType, - calculateTimeout, delay, getDecimalBN, listenEvents, sendExtrinsic, + calculateTimeout, delay, getDecimalBN, listenEvents, sendExtrinsic, findEvent, getTaskIdInTaskScheduledEvent, } from '../common/utils'; import { TuringDev, MangataDev } from '../config'; @@ -61,7 +61,6 @@ async function main() { account.print(); const mangataAddress = account.getChainByName(mangataChainName)?.address; - const turingAddress = account.getChainByName(turingChainName)?.address; const poolName = `${mangataNativeToken.symbol}-${turingNativeToken.symbol}`; // Calculate rwards amount in pool @@ -103,11 +102,9 @@ async function main() { ? { Recurring: { frequency: TASK_FREQUENCY, nextExecutionTime: executionTime } } : { Fixed: { executionTimes: [0] } }; - const providedId = `xcmp_automation_test_${(Math.random() + 1).toString(36).substring(7)}`; const overallWeight = mangataHelper.calculateXcmTransactOverallWeight(mangataProxyCallFees.weight); const fee = mangataHelper.weightToFee(overallWeight, 'TUR'); const xcmpCall = turingHelper.api.tx.automationTime.scheduleXcmpTask( - providedId, schedule, { V3: { parents: 1, interior: { X1: { Parachain: mangataHelper.config.paraId } } } }, { V3: { parents: 0, interior: 'Here' } }, @@ -124,17 +121,18 @@ async function main() { const { executionFee, xcmpFee } = await turingHelper.api.rpc.automationTime.queryFeeDetails(xcmpCall); console.log('automationFeeDetails: ', { executionFee: executionFee.toString(), xcmpFee: xcmpFee.toString() }); - // Get a TaskId from Turing rpc - const taskId = await turingHelper.api.rpc.automationTime.generateTaskId(turingAddress, providedId); - console.log('TaskId:', taskId.toHuman()); - // Send extrinsic console.log('\n3. Sign and send scheduleXcmpTask call ...'); // await turingHelper.sendXcmExtrinsic(xcmpCall, account.pair, taskId); - await sendExtrinsic(turingHelper.api, xcmpCall, account.pair); + const { events } = await sendExtrinsic(turingHelper.api, xcmpCall, account.pair); + + // Get taskId from TaskScheduled event + const taskScheduledEvent = findEvent(events, 'automationTime', 'TaskScheduled'); + const taskId = getTaskIdInTaskScheduledEvent(taskScheduledEvent); + console.log('TaskId:', taskId); // Listen XCM events on Mangata side - console.log(`\n4. Keep Listening XCM events on ${parachainName} until ${moment(executionTime * 1000).format('YYYY-MM-DD HH:mm:ss')}(${executionTime}) to verify that the task(taskId: ${taskId}, providerId: ${providedId}) will be successfully executed ...`); + console.log(`\n4. Keep Listening XCM events on ${parachainName} until ${moment(executionTime * 1000).format('YYYY-MM-DD HH:mm:ss')}(${executionTime}) to verify that the task(taskId: ${taskId}) will be successfully executed ...`); await listenEvents(mangataHelper.api, 'proxy', 'ProxyExecuted'); const isTaskExecuted = await listenEvents(mangataHelper.api, 'proxy', 'ProxyExecuted', executionTime);