Hero Summoning
Contracts
Addresses
DFK Chain
HeroSummoning
0xBc36D18662Bb97F9e74B1EAA1B752aA7A44595A7
0x1017c852e3731FaD2e893e80C6916D71Cf0B0A0a
CrystalCore
0x68f6C64786cfCb35108986041D1009c9d27bde22
0x51aacFeA9be0d10032aC66dF69F72Cc78730b162
Klaytn
HeroSummoning
0xb086584f476Ad21B40aF0672f385a67334A0b294
0x2C2D54137350FE5947e5483E0d0B5398cB34B792
CrystalCore
0x13cE9c99E8E2fcDe1632adA7B69b2eCf5BE8ED45
0xBC5248B4f50f4c7D2F9A67Be1f1d4b8be44ffc75
Interfaces
interface IHeroSummoning {
event CrystalAirdrop(address indexed owner, uint256 crystalId, uint256 createdBlock);
event CrystalDarkSummoned(uint256 crystalId, address indexed owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint8 summonerTears, uint8 assistantTears, address enhancementStone);
event CrystalOpen(address indexed owner, uint256 crystalId, uint256 heroId);
event CrystalSummoned(uint256 crystalId, address indexed owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint8 summonerTears, uint8 assistantTears, address enhancementStone);
event EnhancementStoneAdded(address atunementItemAddress);
event FeeAddressAdded(address indexed feeAddress, uint256 indexed feePercent);
event FeeDeferred(address indexed source, address indexed from, address indexed to, address token, uint256 amount, uint64 timestamp);
event FeeDisbursed(address indexed source, address indexed from, address indexed to, address token, uint256 amount, uint64 timestamp);
event FeeLockedBurned(address indexed source, address indexed from, address indexed to, address token, uint256 amount, uint64 timestamp);
function activeEnhancementStones(address) view returns (bool);
function approveAuctionSpending(address _address, uint256 _amount);
function baseCooldown() view returns (uint256);
function baseSummonFee() view returns (uint256);
function calculateSummoningCost(tuple(uint256 id, tuple(uint256 summonedTime, uint256 nextSummonTime, uint256 summonerId, uint256 assistantId, uint32 summons, uint32 maxSummons) summoningInfo, tuple(uint256 statGenes, uint256 visualGenes, uint8 rarity, bool shiny, uint16 generation, uint32 firstName, uint32 lastName, uint8 shinyStyle, uint8 class, uint8 subClass) info, tuple(uint256 staminaFullAt, uint256 hpFullAt, uint256 mpFullAt, uint16 level, uint64 xp, address currentQuest, uint8 sp, uint8 status) state, tuple(uint16 strength, uint16 intelligence, uint16 wisdom, uint16 luck, uint16 agility, uint16 vitality, uint16 endurance, uint16 dexterity, uint16 hp, uint16 mp, uint16 stamina) stats, tuple(uint16 strength, uint16 intelligence, uint16 wisdom, uint16 luck, uint16 agility, uint16 vitality, uint16 endurance, uint16 dexterity, uint16 hpSm, uint16 hpRg, uint16 hpLg, uint16 mpSm, uint16 mpRg, uint16 mpLg) primaryStatGrowth, tuple(uint16 strength, uint16 intelligence, uint16 wisdom, uint16 luck, uint16 agility, uint16 vitality, uint16 endurance, uint16 dexterity, uint16 hpSm, uint16 hpRg, uint16 hpLg, uint16 mpSm, uint16 mpRg, uint16 mpLg) secondaryStatGrowth, tuple(uint16 mining, uint16 gardening, uint16 foraging, uint16 fishing) professions) _hero) view returns (uint256);
function cooldownPerGen() view returns (uint256);
function feeAddresses(uint256) view returns (address);
function feePercents(uint256) view returns (uint256);
function increasePerGen() view returns (uint256);
function increasePerSummon() view returns (uint256);
function paused() view returns (bool);
function powerToken() view returns (address);
function summonCrystal(uint256 _summonerId, uint256 _assistantId, uint16 _summonerTears, uint16 _assistantTears, address _enhancementStone);
function summonCrystalWithAuction(uint256 _summonerId, uint256 _assistantId, uint16 _summonerTears, uint16 _assistantTears, address _enhancementStone, address _assistingAuctionAddress, uint256 _hireAmount);
function summonCrystalWithAuctionWithLocked(uint256 _summonerId, uint256 _assistantId, uint16 _summonerTears, uint16 _assistantTears, address _enhancementStone, address _assistingAuctionAddress, uint256 _hireAmount);
function summonCrystalWithLocked(uint256 _summonerId, uint256 _assistantId, uint16 _summonerTears, uint16 _assistantTears, address _enhancementStone);
}
interface ICrystalCore {
event CrystalAirdrop(address indexed owner, uint256 crystalId, uint256 createdBlock);
event CrystalDarkSummoned(uint256 crystalId, address indexed owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint8 summonerTears, uint8 assistantTears, address enhancementStone);
event CrystalOpen(address indexed owner, uint256 crystalId, uint256 heroId);
event CrystalSummoned(uint256 crystalId, address indexed owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint8 summonerTears, uint8 assistantTears, address enhancementStone);
event EnhancementStoneAdded(address atunementItemAddress);
function airdropCrystal(address _recipient, bool _isShiny);
function createCrystal(address _owner, uint256 _summonerId, uint256 _assistantId, uint16 _generation, uint8 _summonerBonusTears, uint8 _assistantBonusTears, address _enhancementStone, uint32 _maxSummons, bool _darkSummoned, uint8 _rarityBonusCharges);
function gen0Cap() view returns (uint256);
function getCrystal(uint256 _crystalId) view returns (tuple(address owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint256 heroId, uint8 summonerTears, uint8 assistantTears, address enhancementStone, uint32 maxSummons, uint32 firstName, uint32 lastName, uint8 shinyStyle, bool darkSummoned, uint8 rarityBonusCharges));
function getUserCrystals(address _address) view returns (uint256[]);
function getUserCrystalsData(address _address) view returns (uint256[], tuple(address owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint256 heroId, uint8 summonerTears, uint8 assistantTears, address enhancementStone, uint32 maxSummons, uint32 firstName, uint32 lastName, uint8 shinyStyle, bool darkSummoned, uint8 rarityBonusCharges)[]);
function globalStartTime() view returns (uint256);
function newSummonCooldown() view returns (uint256);
function nextCrystalId() view returns (uint256);
function open(uint256 _crystalId) returns (uint256);
function paused() view returns (bool);
function totalCrystals() view returns (uint256);
function waitBlocks() view returns (uint256);
}
ABIs
Historical Contracts
These contracts have been deprecated and should not be used. They are listed here for data analysis and tracking purposes only.
Addresses
Harmony
HeroSummoningUpgradable
0xf4d3aE202c9Ae516f7eb1DB5afF19Bf699A5E355
0x1702c7f5d67C0FDE65a8f3ed1a0C02c9FE4a5b99
The Hero Summoning functions on Harmony Mainnet were migrated several times:
0xf4d3aE202c9Ae516f7eb1DB5afF19Bf699A5E355
1/15/2022
9/21/2022
0x65dea93f7b886c33a78c10343267dd39727778c2
Note: this was also the Assisting Auction contract
~10/23/2021
1/15/2022
0xa2D001C829328aa06a2DB2740c05ceE1bFA3c6bb
10/6/2021
~10/29/2021
Interfaces
Harmony
interface IHeroSummoningUpgradeable {
event CrystalOpen(address indexed owner, uint256 crystalId, uint256 heroId);
event CrystalSummoned(uint256 crystalId, address indexed owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint8 summonerTears, uint8 assistantTears, address enhancementStone);
event EnhancementStoneAdded(address atunementItemAddress);
function activeEnhancementStones(address) view returns (bool);
function approveAuctionSpending(address _address, uint256 _amount);
function baseCooldown() view returns (uint256);
function baseSummonFee() view returns (uint256);
function calculateSummoningCost(tuple(uint256 id, tuple(uint256 summonedTime, uint256 nextSummonTime, uint256 summonerId, uint256 assistantId, uint32 summons, uint32 maxSummons) summoningInfo, tuple(uint256 statGenes, uint256 visualGenes, uint8 rarity, bool shiny, uint16 generation, uint32 firstName, uint32 lastName, uint8 shinyStyle, uint8 class, uint8 subClass) info, tuple(uint256 staminaFullAt, uint256 hpFullAt, uint256 mpFullAt, uint16 level, uint64 xp, address currentQuest, uint8 sp, uint8 status) state, tuple(uint16 strength, uint16 intelligence, uint16 wisdom, uint16 luck, uint16 agility, uint16 vitality, uint16 endurance, uint16 dexterity, uint16 hp, uint16 mp, uint16 stamina) stats, tuple(uint16 strength, uint16 intelligence, uint16 wisdom, uint16 luck, uint16 agility, uint16 vitality, uint16 endurance, uint16 dexterity, uint16 hpSm, uint16 hpRg, uint16 hpLg, uint16 mpSm, uint16 mpRg, uint16 mpLg) primaryStatGrowth, tuple(uint16 strength, uint16 intelligence, uint16 wisdom, uint16 luck, uint16 agility, uint16 vitality, uint16 endurance, uint16 dexterity, uint16 hpSm, uint16 hpRg, uint16 hpLg, uint16 mpSm, uint16 mpRg, uint16 mpLg) secondaryStatGrowth, tuple(uint16 mining, uint16 gardening, uint16 foraging, uint16 fishing) professions) _hero) view returns (uint256);
function cooldownPerGen() view returns (uint256);
function createCrystal(address _owner, uint256 _summonerId, uint256 _assistantId, uint16 _generation, uint8 _summonerBonusTears, uint8 _assistantBonusTears, address _enhancementStone, uint32 _maxSummons);
function crystalIdOffset() view returns (uint256);
function crystals(uint256) view returns (address owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint256 heroId, uint8 summonerTears, uint8 assistantTears, address enhancementStone, uint32 maxSummons, uint32 firstName, uint32 lastName, uint8 shinyStyle);
function determineRarity(uint256 _rarityRoll, uint256 _rarityMod) pure returns (uint8);
function enabled() view returns (bool);
function getCrystal(uint256 _crystalId) view returns (tuple(address owner, uint256 summonerId, uint256 assistantId, uint16 generation, uint256 createdBlock, uint256 heroId, uint8 summonerTears, uint8 assistantTears, address enhancementStone, uint32 maxSummons, uint32 firstName, uint32 lastName, uint8 shinyStyle));
function getUserCrystals(address _address) view returns (uint256[]);
function increasePerGen() view returns (uint256);
function increasePerSummon() view returns (uint256);
function jewelToken() view returns (address);
function newSummonCooldown() view returns (uint256);
function open(uint256 _crystalId) returns (uint256);
function paused() view returns (bool);
function statScience() view returns (address);
function summonCrystal(uint256 _summonerId, uint256 _assistantId, uint16 _summonerTears, uint16 _assistantTears, address _enhancementStone);
function summonCrystalWithAuction(uint256 _summonerId, uint256 _assistantId, uint16 _summonerTears, uint16 _assistantTears, address _enhancementStone, address _assistingAuctionAddress, uint256 _hireAmount);
function summonCrystalWithAuctionOld(uint256 _summonerId, uint256 _assistantId, uint16 _summonerTears, uint16 _assistantTears, address _enhancementStone, address _assistingAuctionAddress);
function totalCrystals() view returns (uint256);
function userCrystals(address, uint256) view returns (uint256);
}
ABIs
Last updated