spell-connector

This commit is contained in:
Richa-iitr 2022-06-19 19:24:10 +05:30
parent fdc00965f9
commit 8aec31057d
24 changed files with 445 additions and 0 deletions

View File

@ -26,6 +26,15 @@ interface AccountInterface {
function enable(address) external;
function disable(address) external;
function isAuth(address) external view returns (bool);
function cast(
string[] calldata _targetNames,
bytes[] calldata _datas,
address _origin
) external payable returns (bytes32[] memory responses);
}
interface ListInterface {
function accountID(address) external returns (uint64);
}
interface InstaConnectors {

View File

@ -0,0 +1,11 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
pragma abicoder v2;
contract Events {
event LogCastDSA(
address indexed targetDSA,
string[] connectors,
bytes[] datas
);
}

View File

@ -0,0 +1,12 @@
//SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
import { ListInterface } from "../../common/interfaces.sol";
contract SpellHelpers {
/**
* @dev InstaList
*/
ListInterface internal constant instaList =
ListInterface(0x3565F6057b7fFE36984779A507fC87b31EFb0f09);
}

View File

@ -0,0 +1,42 @@
//SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
pragma experimental ABIEncoderV2;
/**
* @title Spell.
* @dev Cast on DSAs.
*/
// import files
import { AccountInterface } from "../../common/interfaces.sol";
import { SpellHelpers } from "./helpers.sol";
import { Events } from "./events.sol";
abstract contract Spell is SpellHelpers, Events {
/**
*@dev Cast spells on DSA.
*@param targetDSA target DSA to cast spells on.
*@param connectors connector names.
*@param datas datas for the cast.
*/
function castDSA(
address targetDSA,
string[] memory connectors,
bytes[] memory datas
)
external
payable
returns (string memory _eventName, bytes memory _eventParam)
{
require(instaList.accountID(targetDSA) != 0, "not-a-DSA");
AccountInterface(targetDSA).cast(connectors, datas, address(0));
_eventName = "LogCastDSA(address,string[],bytes[])";
_eventParam = abi.encode(targetDSA, connectors, datas);
}
}
contract ConnectV2SpellConnectorPolygon is Spell {
string public name = "Spell-Connector-v1.0";
}

View File

@ -21,6 +21,15 @@ interface AccountInterface {
function enable(address) external;
function disable(address) external;
function isAuth(address) external view returns (bool);
function cast(
string[] calldata _targetNames,
bytes[] calldata _datas,
address _origin
) external payable returns (bytes32[] memory responses);
}
interface ListInterface {
function accountID(address) external returns (uint64);
}
interface InstaConnectors {

View File

@ -0,0 +1,11 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
pragma abicoder v2;
contract Events {
event LogCastDSA(
address indexed targetDSA,
string[] connectors,
bytes[] datas
);
}

View File

@ -0,0 +1,12 @@
//SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
import { ListInterface } from "../../common/interfaces.sol";
contract SpellHelpers {
/**
* @dev InstaList
*/
ListInterface internal constant instaList =
ListInterface(0x9926955e0Dd681Dc303370C52f4Ad0a4dd061687);
}

View File

@ -0,0 +1,42 @@
//SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
pragma experimental ABIEncoderV2;
/**
* @title Spell.
* @dev Cast on DSAs.
*/
// import files
import { AccountInterface } from "../../common/interfaces.sol";
import { SpellHelpers } from "./helpers.sol";
import { Events } from "./events.sol";
abstract contract Spell is SpellHelpers, Events {
/**
*@dev Cast spells on DSA.
*@param targetDSA target DSA to cast spells on.
*@param connectors connector names.
*@param datas datas for the cast.
*/
function castDSA(
address targetDSA,
string[] memory connectors,
bytes[] memory datas
)
external
payable
returns (string memory _eventName, bytes memory _eventParam)
{
require(instaList.accountID(targetDSA) != 0, "not-a-DSA");
AccountInterface(targetDSA).cast(connectors, datas, address(0));
_eventName = "LogCastDSA(address,string[],bytes[])";
_eventParam = abi.encode(targetDSA, connectors, datas);
}
}
contract ConnectV2SpellConnectorPolygon is Spell {
string public name = "Spell-Connector-v1.0";
}

View File

@ -34,6 +34,16 @@ interface AccountInterface {
function disable(address) external;
function isAuth(address) external view returns (bool);
function cast(
string[] calldata _targetNames,
bytes[] calldata _datas,
address _origin
) external payable returns (bytes32[] memory responses);
}
interface ListInterface {
function accountID(address) external returns (uint64);
}
interface InstaConnectors {

View File

@ -0,0 +1,11 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
pragma abicoder v2;
contract Events {
event LogCastDSA(
address indexed targetDSA,
string[] connectors,
bytes[] datas
);
}

View File

@ -0,0 +1,12 @@
//SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
import { ListInterface } from "../../common/interfaces.sol";
contract SpellHelpers {
/**
* @dev InstaList
*/
ListInterface internal constant instaList =
ListInterface(0x10e166c3FAF887D8a61dE6c25039231eE694E926);
}

View File

@ -0,0 +1,42 @@
//SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
pragma experimental ABIEncoderV2;
/**
* @title Spell.
* @dev Cast on DSAs.
*/
// import files
import { AccountInterface } from "../../common/interfaces.sol";
import { SpellHelpers } from "./helpers.sol";
import { Events } from "./events.sol";
abstract contract Spell is SpellHelpers, Events {
/**
*@dev Cast spells on DSA.
*@param targetDSA target DSA to cast spells on.
*@param connectors connector names.
*@param datas datas for the cast.
*/
function castDSA(
address targetDSA,
string[] memory connectors,
bytes[] memory datas
)
external
payable
returns (string memory _eventName, bytes memory _eventParam)
{
require(instaList.accountID(targetDSA) != 0, "not-a-DSA");
AccountInterface(targetDSA).cast(connectors, datas, address(0));
_eventName = "LogCastDSA(address,string[],bytes[])";
_eventParam = abi.encode(targetDSA, connectors, datas);
}
}
contract ConnectV2SpellConnectorPolygon is Spell {
string public name = "Spell-Connector-v1.0";
}

View File

@ -27,6 +27,15 @@ interface AccountInterface {
function enable(address) external;
function disable(address) external;
function isAuth(address) external view returns (bool);
function cast(
string[] calldata _targetNames,
bytes[] calldata _datas,
address _origin
) external payable returns (bytes32[] memory responses);
}
interface ListInterface {
function accountID(address) external returns (uint64);
}
interface InstaConnectors {

View File

@ -0,0 +1,11 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
pragma abicoder v2;
contract Events {
event LogCastDSA(
address indexed targetDSA,
string[] connectors,
bytes[] datas
);
}

View File

@ -0,0 +1,12 @@
//SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
import { ListInterface } from "../../common/interfaces.sol";
contract SpellHelpers {
/**
* @dev InstaList
*/
ListInterface internal constant instaList =
ListInterface(0x4c8a1BEb8a87765788946D6B19C6C6355194AbEb);
}

View File

@ -0,0 +1,42 @@
//SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
pragma experimental ABIEncoderV2;
/**
* @title Spell.
* @dev Cast on DSAs.
*/
// import files
import { AccountInterface } from "../../common/interfaces.sol";
import { SpellHelpers } from "./helpers.sol";
import { Events } from "./events.sol";
abstract contract Spell is SpellHelpers, Events {
/**
*@dev Cast spells on DSA.
*@param targetDSA target DSA to cast spells on.
*@param connectors connector names.
*@param datas datas for the cast.
*/
function castDSA(
address targetDSA,
string[] memory connectors,
bytes[] memory datas
)
external
payable
returns (string memory _eventName, bytes memory _eventParam)
{
require(instaList.accountID(targetDSA) != 0, "not-a-DSA");
AccountInterface(targetDSA).cast(connectors, datas, address(0));
_eventName = "LogCastDSA(address,string[],bytes[])";
_eventParam = abi.encode(targetDSA, connectors, datas);
}
}
contract ConnectV2SpellConnectorPolygon is Spell {
string public name = "Spell-Connector-v1.0";
}

View File

@ -23,6 +23,15 @@ interface AccountInterface {
function enable(address) external;
function disable(address) external;
function isAuth(address) external view returns (bool);
function cast(
string[] calldata _targetNames,
bytes[] calldata _datas,
address _origin
) external payable returns (bytes32[] memory responses);
}
interface ListInterface {
function accountID(address) external returns (uint64);
}
interface InstaConnectors {

View File

@ -0,0 +1,11 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
pragma abicoder v2;
contract Events {
event LogCastDSA(
address indexed targetDSA,
string[] connectors,
bytes[] datas
);
}

View File

@ -0,0 +1,12 @@
//SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
import { ListInterface } from "../../common/interfaces.sol";
contract SpellHelpers {
/**
* @dev InstaList
*/
ListInterface internal constant instaList =
ListInterface(0x9926955e0Dd681Dc303370C52f4Ad0a4dd061687);
}

View File

@ -0,0 +1,42 @@
//SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
pragma experimental ABIEncoderV2;
/**
* @title Spell.
* @dev Cast on DSAs.
*/
// import files
import { AccountInterface } from "../../common/interfaces.sol";
import { SpellHelpers } from "./helpers.sol";
import { Events } from "./events.sol";
abstract contract Spell is SpellHelpers, Events {
/**
*@dev Cast spells on DSA.
*@param targetDSA target DSA to cast spells on.
*@param connectors connector names.
*@param datas datas for the cast.
*/
function castDSA(
address targetDSA,
string[] memory connectors,
bytes[] memory datas
)
external
payable
returns (string memory _eventName, bytes memory _eventParam)
{
require(instaList.accountID(targetDSA) != 0, "not-a-DSA");
AccountInterface(targetDSA).cast(connectors, datas, address(0));
_eventName = "LogCastDSA(address,string[],bytes[])";
_eventParam = abi.encode(targetDSA, connectors, datas);
}
}
contract ConnectV2SpellConnectorPolygon is Spell {
string public name = "Spell-Connector-v1.0";
}

View File

@ -26,6 +26,15 @@ interface AccountInterface {
function enable(address) external;
function disable(address) external;
function isAuth(address) external view returns (bool);
function cast(
string[] calldata _targetNames,
bytes[] calldata _datas,
address _origin
) external payable returns (bytes32[] memory responses);
}
interface ListInterface {
function accountID(address) external returns (uint64);
}
interface InstaConnectors {

View File

@ -0,0 +1,11 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
pragma abicoder v2;
contract Events {
event LogCastDSA(
address indexed targetDSA,
string[] connectors,
bytes[] datas
);
}

View File

@ -0,0 +1,12 @@
//SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
import { ListInterface } from "../../common/interfaces.sol";
contract SpellHelpers {
/**
* @dev InstaList
*/
ListInterface internal constant instaList =
ListInterface(0x839c2D3aDe63DF5b0b8F3E57D5e145057Ab41556);
}

View File

@ -0,0 +1,42 @@
//SPDX-License-Identifier: MIT
pragma solidity ^0.7.0;
pragma experimental ABIEncoderV2;
/**
* @title Spell.
* @dev Cast on DSAs.
*/
// import files
import { AccountInterface } from "../../common/interfaces.sol";
import { SpellHelpers } from "./helpers.sol";
import { Events } from "./events.sol";
abstract contract Spell is SpellHelpers, Events {
/**
*@dev Cast spells on DSA.
*@param targetDSA target DSA to cast spells on.
*@param connectors connector names.
*@param datas datas for the cast.
*/
function castDSA(
address targetDSA,
string[] memory connectors,
bytes[] memory datas
)
external
payable
returns (string memory _eventName, bytes memory _eventParam)
{
require(instaList.accountID(targetDSA) != 0, "not-a-DSA");
AccountInterface(targetDSA).cast(connectors, datas, address(0));
_eventName = "LogCastDSA(address,string[],bytes[])";
_eventParam = abi.encode(targetDSA, connectors, datas);
}
}
contract ConnectV2SpellConnectorPolygon is Spell {
string public name = "Spell-Connector-v1.0";
}