- We're indexing this chain right now. Some of the counts may be inaccurate.

Contract Address Details

0x7257879e12C75b9fBA2d6f5AaB3794f82153aEB3

Contract Name
PkpMinter
Creator
0x3e5c24–fdebf1 at 0x2be0ed–bd2f8a
Balance
0 LIT
Tokens
Fetching tokens...
Transactions
79,186 Transactions
Transfers
0 Transfers
Gas Used
81,158,314,062
Last Balance Update
2793320
Contract name:
PkpMinter




Optimization enabled
true
Compiler version
v0.8.21+commit.d9974bed




Optimization runs
200
Verified at
2023-07-27T00:08:57.486069Z

src/PkpMinter.sol

// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.13;

abstract contract PKPHelper {
      function mintNextAndAddAuthMethods(
        uint256 keyType,
        uint256[] memory permittedAuthMethodTypes,
        bytes[] memory permittedAuthMethodIds,
        bytes[] memory permittedAuthMethodPubkeys,
        uint256[][] memory permittedAuthMethodScopes,
        bool addPkpEthAddressAsPermittedAddress,
        bool sendPkpToItself
    )virtual public payable returns (uint256);
}

abstract contract PKPNFT {
    uint256 public mintCost;
    function getPubkey(uint256 tokenId) public virtual view returns (bytes memory);
}

contract PkpMinter {
    PKPHelper pkpHelper = PKPHelper(0x8bB62077437D918891F12c7F35d9e1B78468bF11);
    PKPNFT pkpNFT = PKPNFT(0x8F75a53F65e31DD0D2e40d0827becAaE2299D111);


    // Default values.
    uint256[] internal permittedAuthMethodTypes = [9];
    bytes[] permittedAuthMethodPubkeys = new bytes[](1);
    uint256[][] permittedAuthMethodScopes = [[0]];

    event BulkPKPMinted(bytes32 indexed AuthMethodId, uint256 tokenId, bytes PubKey);


    function bytesToBytes32(bytes memory b) public pure returns (bytes32) {
        bytes32 out;
        for (uint i = 0; i < 32; i++) {
            out |= bytes32(b[i] & 0xFF) >> (i * 8);
        }
        return out;
    }

    function mintPkps(bytes[][] memory permittedAuthMethodIds) external payable {
        uint256 mintCost = pkpNFT.mintCost();
        require(msg.value >= mintCost * permittedAuthMethodIds.length, "Not enough value sent to cover mint costs");
        
        for (uint i = 0; i < permittedAuthMethodIds.length; i++) {             
            uint256 tokenId = pkpHelper.mintNextAndAddAuthMethods{
                value: mintCost 
            }(
                2, 
                permittedAuthMethodTypes, 
                permittedAuthMethodIds[i],
                permittedAuthMethodPubkeys, 
                permittedAuthMethodScopes, 
                false, 
                true 
            );

            emit BulkPKPMinted( 
                bytesToBytes32(permittedAuthMethodIds[i][0]),
                tokenId, 
                pkpNFT.getPubkey(tokenId)
            );
        }

        // Send the balance to the native token to the sender.
        payable(msg.sender).transfer(address(this).balance);
    }
}
        

Contract ABI

[{"type":"event","name":"BulkPKPMinted","inputs":[{"type":"bytes32","name":"AuthMethodId","internalType":"bytes32","indexed":true},{"type":"uint256","name":"tokenId","internalType":"uint256","indexed":false},{"type":"bytes","name":"PubKey","internalType":"bytes","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"pure","outputs":[{"type":"bytes32","name":"","internalType":"bytes32"}],"name":"bytesToBytes32","inputs":[{"type":"bytes","name":"b","internalType":"bytes"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"mintPkps","inputs":[{"type":"bytes[][]","name":"permittedAuthMethodIds","internalType":"bytes[][]"}]}]
            

Contract Creation Code

0x600080546001600160a01b0319908116738bb62077437d918891f12c7f35d9e1b78468bf111790915560018054909116738f75a53f65e31dd0d2e40d0827becaae2299d11117815560a060405260096080908152620000629160029190620000de565b5060408051600180825281830190925290816020015b6060815260200190600190039081620000785750508051620000a39160039160209091019062000133565b50604080518082019091526000602082019081528152620000c99060049060016200018c565b50348015620000d757600080fd5b5062000412565b82805482825590600052602060002090810192821562000121579160200282015b8281111562000121578251829060ff16905591602001919060010190620000ff565b506200012f929150620001e6565b5090565b8280548282559060005260206000209081019282156200017e579160200282015b828111156200017e57825182906200016d908262000346565b509160200191906001019062000154565b506200012f929150620001fd565b828054828255906000526020600020908101928215620001d8579160200282015b82811115620001d8578251620001c79083906001620000de565b5091602001919060010190620001ad565b506200012f9291506200021e565b5b808211156200012f5760008155600101620001e7565b808211156200012f5760006200021482826200023f565b50600101620001fd565b808211156200012f57600062000235828262000281565b506001016200021e565b5080546200024d90620002b7565b6000825580601f106200025e575050565b601f0160209004906000526020600020908101906200027e9190620001e6565b50565b50805460008255906000526020600020908101906200027e9190620001e6565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620002cc57607f821691505b602082108103620002ed57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200034157600081815260208120601f850160051c810160208610156200031c5750805b601f850160051c820191505b818110156200033d5782815560010162000328565b5050505b505050565b81516001600160401b03811115620003625762000362620002a1565b6200037a81620003738454620002b7565b84620002f3565b602080601f831160018114620003b25760008415620003995750858301515b600019600386901b1c1916600185901b1785556200033d565b600085815260208120601f198616915b82811015620003e357888601518255948401946001909101908401620003c2565b5085821015620004025787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6109da80620004226000396000f3fe6080604052600436106100295760003560e01c80635aaed7c11461002e578063bfe370d914610043575b600080fd5b61004161003c366004610485565b610075565b005b34801561004f57600080fd5b5061006361005e3660046105a2565b610341565b60405190815260200160405180910390f35b600154604080516317b6970960e31b815290516000926001600160a01b03169163bdb4b8489160048083019260209291908290030181865afa1580156100bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e391906105df565b90508151816100f2919061060e565b3410156101575760405162461bcd60e51b815260206004820152602960248201527f4e6f7420656e6f7567682076616c75652073656e7420746f20636f766572206d604482015268696e7420636f73747360b81b606482015260840160405180910390fd5b60005b825181101561030f5760008060009054906101000a90046001600160a01b03166001600160a01b0316639fba176b8460028088878151811061019e5761019e61062b565b602002602001015160036004600060016040518963ffffffff1660e01b81526004016101d09796959493929190610851565b60206040518083038185885af11580156101ee573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061021391906105df565b905061025184838151811061022a5761022a61062b565b60200260200101516000815181106102445761024461062b565b6020026020010151610341565b600154604051631dedfb0f60e31b8152600481018490527fbb876b727eefab56bf67c26b5b5104fbc5e43dec14141061bc3511c88616c40b9184916001600160a01b039091169063ef6fd87890602401600060405180830381865afa1580156102be573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102e691908101906108fb565b6040516102f4929190610972565b60405180910390a250806103078161098b565b91505061015a565b5060405133904780156108fc02916000818181858888f1935050505015801561033c573d6000803e3d6000fd5b505050565b60008060005b60208110156103955761035b81600861060e565b84828151811061036d5761036d61062b565b01602001516001600160f81b031916901c91909117908061038d8161098b565b915050610347565b5092915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156103db576103db61039c565b604052919050565b600067ffffffffffffffff8211156103fd576103fd61039c565b5060051b60200190565b600067ffffffffffffffff8211156104215761042161039c565b50601f01601f191660200190565b600082601f83011261044057600080fd5b813561045361044e82610407565b6103b2565b81815284602083860101111561046857600080fd5b816020850160208301376000918101602001919091529392505050565b6000602080838503121561049857600080fd5b67ffffffffffffffff80843511156104af57600080fd5b8335840185601f8201126104c257600080fd5b80356104d061044e826103e3565b81815260059190911b820184019084810190888311156104ef57600080fd5b8584015b8381101561059557858135111561050957600080fd5b803585018a603f82011261051c57600080fd5b8781013561052c61044e826103e3565b81815260059190911b820160400190898101908d83111561054c57600080fd5b604084015b83811015610584578a8135111561056757600080fd5b6105778f6040833588010161042f565b8352918b01918b01610551565b5086525050509186019186016104f3565b5098975050505050505050565b6000602082840312156105b457600080fd5b813567ffffffffffffffff8111156105cb57600080fd5b6105d78482850161042f565b949350505050565b6000602082840312156105f157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610625576106256105f8565b92915050565b634e487b7160e01b600052603260045260246000fd5b60005b8381101561065c578181015183820152602001610644565b50506000910152565b6000815180845261067d816020860160208601610641565b601f01601f19169290920160200192915050565b6000815180845260208085019450848260051b860182860160005b858110156106d65783830389526106c4838351610665565b988501989250908401906001016106ac565b5090979650505050505050565b60008282548085526020808601955060058183821b8501016000878152838120815b868110156107bf57878403601f19018b5281548390600181811c908083168061072f57607f831692505b8a8310810361074c57634e487b7160e01b88526022600452602488fd5b82895260208901818015610767576001811461077c576107a6565b60ff19861682528415158c1b820196506107a6565b6000898152602090208a5b868110156107a057815484820152908501908e01610787565b83019750505b5050509d89019d92965050509190910190600101610705565b50919998505050505050505050565b600082825480855260208086019550808260051b8401016000868152828120815b8581101561084357868403601f19018a5281548085528284528584208686019190855b8281101561082e57815484529288019260019182019101610812565b505050998501999350600191820191016107ef565b509198975050505050505050565b600060e08201898352602060e081850152818a54808452610100860191508b60005282600020935060005b818110156108985784548352600194850194928401920161087c565b505084810360408601526108ac818b610691565b9250505082810360608401526108c281886106e3565b905082810360808401526108d681876107ce565b9150506108e760a083018515159052565b82151560c083015298975050505050505050565b60006020828403121561090d57600080fd5b815167ffffffffffffffff81111561092457600080fd5b8201601f8101841361093557600080fd5b805161094361044e82610407565b81815285602083850101111561095857600080fd5b610969826020830160208601610641565b95945050505050565b8281526040602082015260006105d76040830184610665565b60006001820161099d5761099d6105f8565b506001019056fea26469706673582212203c5c6f2fb6adce864e8693087c8e5696fc7f57b58800e42c7391482dfffd8a9964736f6c63430008150033

Deployed ByteCode

0x6080604052600436106100295760003560e01c80635aaed7c11461002e578063bfe370d914610043575b600080fd5b61004161003c366004610485565b610075565b005b34801561004f57600080fd5b5061006361005e3660046105a2565b610341565b60405190815260200160405180910390f35b600154604080516317b6970960e31b815290516000926001600160a01b03169163bdb4b8489160048083019260209291908290030181865afa1580156100bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e391906105df565b90508151816100f2919061060e565b3410156101575760405162461bcd60e51b815260206004820152602960248201527f4e6f7420656e6f7567682076616c75652073656e7420746f20636f766572206d604482015268696e7420636f73747360b81b606482015260840160405180910390fd5b60005b825181101561030f5760008060009054906101000a90046001600160a01b03166001600160a01b0316639fba176b8460028088878151811061019e5761019e61062b565b602002602001015160036004600060016040518963ffffffff1660e01b81526004016101d09796959493929190610851565b60206040518083038185885af11580156101ee573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061021391906105df565b905061025184838151811061022a5761022a61062b565b60200260200101516000815181106102445761024461062b565b6020026020010151610341565b600154604051631dedfb0f60e31b8152600481018490527fbb876b727eefab56bf67c26b5b5104fbc5e43dec14141061bc3511c88616c40b9184916001600160a01b039091169063ef6fd87890602401600060405180830381865afa1580156102be573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102e691908101906108fb565b6040516102f4929190610972565b60405180910390a250806103078161098b565b91505061015a565b5060405133904780156108fc02916000818181858888f1935050505015801561033c573d6000803e3d6000fd5b505050565b60008060005b60208110156103955761035b81600861060e565b84828151811061036d5761036d61062b565b01602001516001600160f81b031916901c91909117908061038d8161098b565b915050610347565b5092915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156103db576103db61039c565b604052919050565b600067ffffffffffffffff8211156103fd576103fd61039c565b5060051b60200190565b600067ffffffffffffffff8211156104215761042161039c565b50601f01601f191660200190565b600082601f83011261044057600080fd5b813561045361044e82610407565b6103b2565b81815284602083860101111561046857600080fd5b816020850160208301376000918101602001919091529392505050565b6000602080838503121561049857600080fd5b67ffffffffffffffff80843511156104af57600080fd5b8335840185601f8201126104c257600080fd5b80356104d061044e826103e3565b81815260059190911b820184019084810190888311156104ef57600080fd5b8584015b8381101561059557858135111561050957600080fd5b803585018a603f82011261051c57600080fd5b8781013561052c61044e826103e3565b81815260059190911b820160400190898101908d83111561054c57600080fd5b604084015b83811015610584578a8135111561056757600080fd5b6105778f6040833588010161042f565b8352918b01918b01610551565b5086525050509186019186016104f3565b5098975050505050505050565b6000602082840312156105b457600080fd5b813567ffffffffffffffff8111156105cb57600080fd5b6105d78482850161042f565b949350505050565b6000602082840312156105f157600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610625576106256105f8565b92915050565b634e487b7160e01b600052603260045260246000fd5b60005b8381101561065c578181015183820152602001610644565b50506000910152565b6000815180845261067d816020860160208601610641565b601f01601f19169290920160200192915050565b6000815180845260208085019450848260051b860182860160005b858110156106d65783830389526106c4838351610665565b988501989250908401906001016106ac565b5090979650505050505050565b60008282548085526020808601955060058183821b8501016000878152838120815b868110156107bf57878403601f19018b5281548390600181811c908083168061072f57607f831692505b8a8310810361074c57634e487b7160e01b88526022600452602488fd5b82895260208901818015610767576001811461077c576107a6565b60ff19861682528415158c1b820196506107a6565b6000898152602090208a5b868110156107a057815484820152908501908e01610787565b83019750505b5050509d89019d92965050509190910190600101610705565b50919998505050505050505050565b600082825480855260208086019550808260051b8401016000868152828120815b8581101561084357868403601f19018a5281548085528284528584208686019190855b8281101561082e57815484529288019260019182019101610812565b505050998501999350600191820191016107ef565b509198975050505050505050565b600060e08201898352602060e081850152818a54808452610100860191508b60005282600020935060005b818110156108985784548352600194850194928401920161087c565b505084810360408601526108ac818b610691565b9250505082810360608401526108c281886106e3565b905082810360808401526108d681876107ce565b9150506108e760a083018515159052565b82151560c083015298975050505050505050565b60006020828403121561090d57600080fd5b815167ffffffffffffffff81111561092457600080fd5b8201601f8101841361093557600080fd5b805161094361044e82610407565b81815285602083850101111561095857600080fd5b610969826020830160208601610641565b95945050505050565b8281526040602082015260006105d76040830184610665565b60006001820161099d5761099d6105f8565b506001019056fea26469706673582212203c5c6f2fb6adce864e8693087c8e5696fc7f57b58800e42c7391482dfffd8a9964736f6c63430008150033