@settlemint/solidity-token-erc20-crowdsale
Version:
Smart contract set to build an ERC20 token sale in SettleMint
571 lines (570 loc) • 27.4 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "ExampleToken",
"sourceName": "contracts/ExampleToken.sol",
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "name_",
"type": "string"
},
{
"internalType": "string",
"name": "symbol_",
"type": "string"
},
{
"internalType": "uint256",
"name": "supply_",
"type": "uint256"
},
{
"internalType": "address",
"name": "wallet_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "allowance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientAllowance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"internalType": "uint256",
"name": "balance",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "needed",
"type": "uint256"
}
],
"name": "ERC20InsufficientBalance",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "approver",
"type": "address"
}
],
"name": "ERC20InvalidApprover",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "receiver",
"type": "address"
}
],
"name": "ERC20InvalidReceiver",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "ERC20InvalidSender",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "ERC20InvalidSpender",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "spender",
"type": "address"
}
],
"name": "allowance",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "spender",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "approve",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6080604052346103d3576111d880380380610019816103d8565b9283398101906080818303126103d35780516001600160401b0381116103d357826100459183016103fd565b602082015190926001600160401b0382116103d3576100659183016103fd565b604082015160609092015190916001600160a01b038216918290036103d35783516001600160401b0381116102dc57600354600181811c911680156103c9575b60208210146102bc57601f8111610364575b50602094601f82116001146102fd579481929394956000926102f2575b50508160011b916000199060031b1c1916176003555b82516001600160401b0381116102dc57600454600181811c911680156102d2575b60208210146102bc57601f8111610257575b506020601f82116001146101f057819293946000926101e5575b50508160011b916000199060031b1c1916176004555b61015633610468565b5081156101cf576002548181018091116101b9576002557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060009284845283825260408420818154019055604051908152a3604051610cc190816104f78239f35b634e487b7160e01b600052601160045260246000fd5b63ec442f0560e01b600052600060045260246000fd5b015190503880610137565b601f198216906004600052806000209160005b81811061023f57509583600195969710610226575b505050811b0160045561014d565b015160001960f88460031b161c19169055388080610218565b9192602060018192868b015181550194019201610203565b60046000527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c810191602084106102b2575b601f0160051c01905b8181106102a6575061011d565b60008155600101610299565b9091508190610290565b634e487b7160e01b600052602260045260246000fd5b90607f169061010b565b634e487b7160e01b600052604160045260246000fd5b0151905038806100d4565b601f198216956003600052806000209160005b88811061034c57508360019596979810610333575b505050811b016003556100ea565b015160001960f88460031b161c19169055388080610325565b91926020600181928685015181550194019201610310565b60036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106103bf575b601f0160051c01905b8181106103b357506100b7565b600081556001016103a6565b909150819061039d565b90607f16906100a5565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176102dc57604052565b81601f820112156103d3578051906001600160401b0382116102dc5761042c601f8301601f19166020016103d8565b92828452602083830101116103d35760005b82811061045357505060206000918301015290565b8060208092840101518282870101520161043e565b6001600160a01b03811660009081526000805160206111b8833981519152602052604090205460ff166104f0576001600160a01b031660008181526000805160206111b883398151915260205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b5060009056fe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146108135750806306fdde0314610733578063095ea7b3146106a057806318160ddd1461068257806323b872dd146104fc578063248a9ca3146104c75780632f2ff15d14610487578063313ce5671461046b57806336568abe146103ff57806370a08231146103b857806391d148541461035d57806395d89b41146101da578063a217fddf146101be578063a9059cbb1461018d578063d547741f146101465763dd62ed3e146100cf57600080fd5b34610141576040600319360112610141576100e86108fb565b73ffffffffffffffffffffffffffffffffffffffff61010561091e565b9116600052600160205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101415760406003193601126101415761018b60043561016561091e565b9061018661018182600052600560205260016040600020015490565b610a6b565b610bb7565b005b34610141576040600319360112610141576101b36101a96108fb565b6024359033610941565b602060405160018152f35b3461014157600060031936011261014157602060405160008152f35b3461014157600060031936011261014157604051600090600454918260011c60018416938415610353575b60208210851461032657839482855290816000146102e45750600114610287575b5003601f01601f191681019067ffffffffffffffff82118183101761025857610254829182604052826108b1565b0390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6004600090815291507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8183106102c85750508101602001601f19610226565b60209193508060019154838588010152019101909183926102b2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b84019091019150601f199050610226565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f1690610205565b346101415760406003193601126101415761037661091e565b600435600052600560205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346101415760206003193601126101415773ffffffffffffffffffffffffffffffffffffffff6103e66108fb565b1660005260006020526020604060002054604051908152f35b346101415760406003193601126101415761041861091e565b3373ffffffffffffffffffffffffffffffffffffffff8216036104415761018b90600435610bb7565b7f6697b2320000000000000000000000000000000000000000000000000000000060005260046000fd5b3461014157600060031936011261014157602060405160128152f35b346101415760406003193601126101415761018b6004356104a661091e565b906104c261018182600052600560205260016040600020015490565b610ad8565b346101415760206003193601126101415760206104f4600435600052600560205260016040600020015490565b604051908152f35b34610141576060600319360112610141576105156108fb565b61051d61091e565b6044359073ffffffffffffffffffffffffffffffffffffffff831692836000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff33166000526020526040600020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811061059d575b506101b39350610941565b83811061064c57841561061d5733156105ee576101b3946000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff33166000526020528360406000209103905584610592565b7f94280d6200000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7fe602df0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b83907ffb8f41b2000000000000000000000000000000000000000000000000000000006000523360045260245260445260646000fd5b34610141576000600319360112610141576020600254604051908152f35b34610141576040600319360112610141576106b96108fb565b60243590331561061d5773ffffffffffffffffffffffffffffffffffffffff169081156105ee57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b3461014157600060031936011261014157604051600090600354918260011c60018416938415610809575b60208210851461032657839482855290816000146102e457506001146107ac575003601f01601f191681019067ffffffffffffffff82118183101761025857610254829182604052826108b1565b6003600090815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8183106107ed5750508101602001601f19610226565b60209193508060019154838588010152019101909183926107d7565b90607f169061075e565b3461014157602060031936011261014157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361014157817f7965db0b0000000000000000000000000000000000000000000000000000000060209314908115610887575b5015158152f35b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501483610880565b9190916020815282519283602083015260005b8481106108e5575050601f19601f8460006040809697860101520116010190565b80602080928401015160408286010152016108c4565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361014157565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361014157565b73ffffffffffffffffffffffffffffffffffffffff16908115610a3c5773ffffffffffffffffffffffffffffffffffffffff16918215610a0d5760008281528060205260408120548281106109da5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b6064937fe450d38c0000000000000000000000000000000000000000000000000000000083949352600452602452604452fd5b7fec442f0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7f96c6fd1e00000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff331660005260205260ff6040600020541615610aa75750565b7fe2517d3f000000000000000000000000000000000000000000000000000000006000523360045260245260446000fd5b806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff6040600020541615600014610bb057806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff8316600052602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d600080a4600190565b5050600090565b806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416600014610bb057806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416905573ffffffffffffffffffffffffffffffffffffffff339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b600080a460019056fea264697066735822122038fc9d419e6931dae1732c1d42fd38958c7a289f8162e2c50f47ee23796c16bd64736f6c634300081b003305b8ccbb9d4d8fb16ea74ce3c29a41f1b461fbdaff4714a0d9a8eb05499746bc",
"deployedBytecode": "0x608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146108135750806306fdde0314610733578063095ea7b3146106a057806318160ddd1461068257806323b872dd146104fc578063248a9ca3146104c75780632f2ff15d14610487578063313ce5671461046b57806336568abe146103ff57806370a08231146103b857806391d148541461035d57806395d89b41146101da578063a217fddf146101be578063a9059cbb1461018d578063d547741f146101465763dd62ed3e146100cf57600080fd5b34610141576040600319360112610141576100e86108fb565b73ffffffffffffffffffffffffffffffffffffffff61010561091e565b9116600052600160205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101415760406003193601126101415761018b60043561016561091e565b9061018661018182600052600560205260016040600020015490565b610a6b565b610bb7565b005b34610141576040600319360112610141576101b36101a96108fb565b6024359033610941565b602060405160018152f35b3461014157600060031936011261014157602060405160008152f35b3461014157600060031936011261014157604051600090600454918260011c60018416938415610353575b60208210851461032657839482855290816000146102e45750600114610287575b5003601f01601f191681019067ffffffffffffffff82118183101761025857610254829182604052826108b1565b0390f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6004600090815291507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8183106102c85750508101602001601f19610226565b60209193508060019154838588010152019101909183926102b2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b84019091019150601f199050610226565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f1690610205565b346101415760406003193601126101415761037661091e565b600435600052600560205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346101415760206003193601126101415773ffffffffffffffffffffffffffffffffffffffff6103e66108fb565b1660005260006020526020604060002054604051908152f35b346101415760406003193601126101415761041861091e565b3373ffffffffffffffffffffffffffffffffffffffff8216036104415761018b90600435610bb7565b7f6697b2320000000000000000000000000000000000000000000000000000000060005260046000fd5b3461014157600060031936011261014157602060405160128152f35b346101415760406003193601126101415761018b6004356104a661091e565b906104c261018182600052600560205260016040600020015490565b610ad8565b346101415760206003193601126101415760206104f4600435600052600560205260016040600020015490565b604051908152f35b34610141576060600319360112610141576105156108fb565b61051d61091e565b6044359073ffffffffffffffffffffffffffffffffffffffff831692836000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff33166000526020526040600020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811061059d575b506101b39350610941565b83811061064c57841561061d5733156105ee576101b3946000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff33166000526020528360406000209103905584610592565b7f94280d6200000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7fe602df0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b83907ffb8f41b2000000000000000000000000000000000000000000000000000000006000523360045260245260445260646000fd5b34610141576000600319360112610141576020600254604051908152f35b34610141576040600319360112610141576106b96108fb565b60243590331561061d5773ffffffffffffffffffffffffffffffffffffffff169081156105ee57336000526001602052604060002082600052602052806040600020556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b3461014157600060031936011261014157604051600090600354918260011c60018416938415610809575b60208210851461032657839482855290816000146102e457506001146107ac575003601f01601f191681019067ffffffffffffffff82118183101761025857610254829182604052826108b1565b6003600090815291507fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8183106107ed5750508101602001601f19610226565b60209193508060019154838588010152019101909183926107d7565b90607f169061075e565b3461014157602060031936011261014157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361014157817f7965db0b0000000000000000000000000000000000000000000000000000000060209314908115610887575b5015158152f35b7f01ffc9a70000000000000000000000000000000000000000000000000000000091501483610880565b9190916020815282519283602083015260005b8481106108e5575050601f19601f8460006040809697860101520116010190565b80602080928401015160408286010152016108c4565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361014157565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361014157565b73ffffffffffffffffffffffffffffffffffffffff16908115610a3c5773ffffffffffffffffffffffffffffffffffffffff16918215610a0d5760008281528060205260408120548281106109da5791604082827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef958760209652828652038282205586815280845220818154019055604051908152a3565b6064937fe450d38c0000000000000000000000000000000000000000000000000000000083949352600452602452604452fd5b7fec442f0500000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b7f96c6fd1e00000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff331660005260205260ff6040600020541615610aa75750565b7fe2517d3f000000000000000000000000000000000000000000000000000000006000523360045260245260446000fd5b806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff6040600020541615600014610bb057806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff8316600052602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d600080a4600190565b5050600090565b806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416600014610bb057806000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416905573ffffffffffffffffffffffffffffffffffffffff339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b600080a460019056fea264697066735822122038fc9d419e6931dae1732c1d42fd38958c7a289f8162e2c50f47ee23796c16bd64736f6c634300081b0033",
"linkReferences": {},
"deployedLinkReferences": {}
}