Take allowed Funds
After having allowed Move objects, you can take the ones you need.
Example Code
The following example will take the Object which was allowed in the allow how-to guide.
Create the ISCAssets
First, you need to recreate the ISCAssets
with the ObjectID.
IotaObjectID[] memory IotaObjectIDs = new IotaObjectID[](1);
IotaObjectIDs[0] = IotaObjectID.wrap(_allowanceIotaObjectID);
ISCAssets memory assets;
assets.objects = IotaObjectIDs;
Call takeAllowedFunds()
After that, you can call takeAllowedFunds()
to take the allowance of the specified address/contract
ISC.sandbox.takeAllowedFunds(_address, ObjectID);
Full Example Code
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@iota/iscmagic/ISC.sol";
contract allowance {
function takeAllowedFunds(address _address, bytes32 ObjectID) {
IotaObjectID[] memory IotaObjectIDs = new IotaObjectID[](1);
IotaObjectIDs[0] = IotaObjectID.wrap(_allowanceIotaObjectID);
ISCAssets memory assets;
assets.objects = IotaObjectIDs;
ISC.sandbox.takeAllowedFunds(_address, ObjectID);
}
}