brc20-prog 0.14.0

BRC20 programmable module - Smart contract execution engine compatible with BRC20 standard
Documentation
1
0x6080604052348015600e575f5ffd5b503380603357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b603a81603f565b50608e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611ee58061009b5f395ff3fe608060405234801561000f575f5ffd5b50600436106100c4575f3560e01c8063a85e59e41161007d578063f2fde38b11610058578063f2fde38b146101a5578063fc124ebd146101b8578063fde9ba41146101cb575f5ffd5b8063a85e59e41461016c578063cfd287aa1461017f578063dc9ae17d14610192575f5ffd5b8063699d2163116100ad578063699d216314610103578063715018a6146101245780638da5cb5b1461012e575f5ffd5b80631af61970146100c85780631fcfe19c146100f0575b5f5ffd5b6100db6100d6366004610c47565b6101de565b60405190151581526020015b60405180910390f35b6100db6100fe366004610c47565b61030d565b610116610111366004610c9f565b6105b2565b6040519081526020016100e7565b61012c610667565b005b5f5473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100e7565b6100db61017a366004610d00565b61067a565b61014761018d366004610d68565b6107c6565b6100db6101a0366004610c47565b610807565b61012c6101b3366004610da7565b610901565b6101166101c6366004610dc7565b610969565b6100db6101d9366004610c47565b610a1e565b6040515f90339073ffffffffffffffffffffffffffffffffffffffff851690829061020c9089908990610e17565b604051908190038120868252907f47f31a8acc27908ae172e88d3c4142f2563b8d74ebce61d2347e7beaf85d603b9060200160405180910390a460018686604051610258929190610e17565b908152604051908190036020018120547fe1f21c6700000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff8381166004840152868116602484015260448301869052169063e1f21c67906064015b6020604051808303815f875af11580156102df573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103039190610e26565b9695505050505050565b5f610316610b07565b5f73ffffffffffffffffffffffffffffffffffffffff166001868660405161033f929190610e17565b9081526040519081900360200190205473ffffffffffffffffffffffffffffffffffffffff160361047c578484868660405161037a90610bcd565b6103879493929190610e8c565b604051809103905ff0801580156103a0573d5f5f3e3d5ffd5b50600186866040516103b3929190610e17565b908152604051908190036020018120805473ffffffffffffffffffffffffffffffffffffffff939093167fffffffffffffffffffffffff0000000000000000000000000000000000000000909316929092179091556001906104189087908790610e17565b9081526040519081900360200181205473ffffffffffffffffffffffffffffffffffffffff169061044c9087908790610e17565b604051908190038120907feba47229a9112d1dd9f9988373e75a35b89a512721c5fa085b76b76118c32fd5905f90a35b8273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff1686866040516104ba929190610e17565b604051908190038120858252907f802420d0111db7da589dcea7549c6fc32b67734a04422a65a888b1b577fea4d09060200160405180910390a460018585604051610506929190610e17565b908152604051908190036020018120547f40c10f1900000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff85811660048401526024830185905216906340c10f19906044015b6020604051808303815f875af1158015610585573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a99190610e26565b95945050505050565b5f600185856040516105c5929190610e17565b908152604051908190036020018120547fdd62ed3e00000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff85811660048401528481166024840152169063dd62ed3e90604401602060405180830381865afa158015610643573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a99190610eb2565b61066f610b07565b6106785f610b59565b565b5f803390508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1688886040516106bd929190610e17565b604051908190038120868252907f802420d0111db7da589dcea7549c6fc32b67734a04422a65a888b1b577fea4d09060200160405180910390a460018787604051610709929190610e17565b908152604051908190036020018120547f15dacbea00000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff8381166004840152878116602484015286811660448401526064830186905216906315dacbea906084016020604051808303815f875af1158015610797573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107bb9190610e26565b979650505050505050565b5f600183836040516107d9929190610e17565b9081526040519081900360200190205473ffffffffffffffffffffffffffffffffffffffff16905092915050565b5f610810610b07565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16868660405161084e929190610e17565b604051908190038120858252907f802420d0111db7da589dcea7549c6fc32b67734a04422a65a888b1b577fea4d09060200160405180910390a46001858560405161089a929190610e17565b908152604051908190036020018120547f9dc29fac00000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff8581166004840152602483018590521690639dc29fac90604401610569565b610909610b07565b73ffffffffffffffffffffffffffffffffffffffff811661095d576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b61096681610b59565b50565b5f6001848460405161097c929190610e17565b908152604051908190036020018120547f70a0823100000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff848116600484015216906370a0823190602401602060405180830381865afa1580156109f2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a169190610eb2565b949350505050565b6040515f90339073ffffffffffffffffffffffffffffffffffffffff8516908290610a4c9089908990610e17565b604051908190038120868252907f802420d0111db7da589dcea7549c6fc32b67734a04422a65a888b1b577fea4d09060200160405180910390a460018686604051610a98929190610e17565b908152604051908190036020018120547f23b872dd00000000000000000000000000000000000000000000000000000000825273ffffffffffffffffffffffffffffffffffffffff838116600484015286811660248401526044830186905216906323b872dd906064016102c3565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610678576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610954565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610fe680610eca83390190565b5f5f83601f840112610bea575f5ffd5b50813567ffffffffffffffff811115610c01575f5ffd5b602083019150836020828501011115610c18575f5ffd5b9250929050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c42575f5ffd5b919050565b5f5f5f5f60608587031215610c5a575f5ffd5b843567ffffffffffffffff811115610c70575f5ffd5b610c7c87828801610bda565b9095509350610c8f905060208601610c1f565b9396929550929360400135925050565b5f5f5f5f60608587031215610cb2575f5ffd5b843567ffffffffffffffff811115610cc8575f5ffd5b610cd487828801610bda565b9095509350610ce7905060208601610c1f565b9150610cf560408601610c1f565b905092959194509250565b5f5f5f5f5f60808688031215610d14575f5ffd5b853567ffffffffffffffff811115610d2a575f5ffd5b610d3688828901610bda565b9096509450610d49905060208701610c1f565b9250610d5760408701610c1f565b949793965091946060013592915050565b5f5f60208385031215610d79575f5ffd5b823567ffffffffffffffff811115610d8f575f5ffd5b610d9b85828601610bda565b90969095509350505050565b5f60208284031215610db7575f5ffd5b610dc082610c1f565b9392505050565b5f5f5f60408486031215610dd9575f5ffd5b833567ffffffffffffffff811115610def575f5ffd5b610dfb86828701610bda565b9094509250610e0e905060208501610c1f565b90509250925092565b818382375f9101908152919050565b5f60208284031215610e36575f5ffd5b81518015158114610dc0575f5ffd5b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b604081525f610e9f604083018688610e45565b82810360208401526107bb818587610e45565b5f60208284031215610ec2575f5ffd5b505191905056fe608060405234801561000f575f5ffd5b50604051610fe6380380610fe683398101604081905261002e9161016a565b338061005357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61005c8161007e565b5060046100698382610253565b5060056100768282610253565b50505061030d565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126100f0575f5ffd5b81516001600160401b03811115610109576101096100cd565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610137576101376100cd565b60405281815283820160200185101561014e575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f5f6040838503121561017b575f5ffd5b82516001600160401b03811115610190575f5ffd5b61019c858286016100e1565b602085015190935090506001600160401b038111156101b9575f5ffd5b6101c5858286016100e1565b9150509250929050565b600181811c908216806101e357607f821691505b60208210810361020157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561024e57805f5260205f20601f840160051c8101602085101561022c5750805b601f840160051c820191505b8181101561024b575f8155600101610238565b50505b505050565b81516001600160401b0381111561026c5761026c6100cd565b6102808161027a84546101cf565b84610207565b6020601f8211600181146102b2575f831561029b5750848201515b5f19600385901b1c1916600184901b17845561024b565b5f84815260208120601f198516915b828110156102e157878501518255602094850194600190920191016102c1565b50848210156102fe57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b610ccc8061031a5f395ff3fe608060405234801561000f575f5ffd5b50600436106100fb575f3560e01c8063715018a611610093578063a9059cbb11610063578063a9059cbb1461021b578063dd62ed3e1461022e578063e1f21c6714610241578063f2fde38b14610254575f5ffd5b8063715018a6146101cf5780638da5cb5b146101d957806395d89b41146102005780639dc29fac14610208575f5ffd5b806323b872dd116100ce57806323b872dd14610165578063313ce5671461017857806340c10f191461018757806370a082311461019a575f5ffd5b806306fdde03146100ff578063095ea7b31461011d57806315dacbea1461014057806318160ddd14610153575b5f5ffd5b610107610267565b6040516101149190610a97565b60405180910390f35b61013061012b366004610b12565b6102f7565b6040519015158152602001610114565b61013061014e366004610b3a565b610310565b6003545b604051908152602001610114565b610130610173366004610b82565b61033a565b60405160128152602001610114565b610130610195366004610b12565b610352565b6101576101a8366004610bbc565b73ffffffffffffffffffffffffffffffffffffffff165f9081526001602052604090205490565b6101d761036e565b005b5f5460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610114565b610107610381565b610130610216366004610b12565b610390565b610130610229366004610b12565b6103a3565b61015761023c366004610bdc565b6103b0565b61013061024f366004610b82565b610443565b6101d7610262366004610bbc565b610461565b60606004805461027690610c0d565b80601f01602080910402602001604051908101604052809291908181526020018280546102a290610c0d565b80156102ed5780601f106102c4576101008083540402835291602001916102ed565b820191905f5260205f20905b8154815290600101906020018083116102d057829003601f168201915b5050505050905090565b5f336103048185856104c9565b60019150505b92915050565b5f6103196104db565b61032484868461052d565b61032f8484846105d6565b506001949350505050565b5f3361034785828561052d565b61032f8585856105d6565b5f61035b6104db565b610365838361067f565b50600192915050565b6103766104db565b61037f5f6106dd565b565b60606005805461027690610c0d565b5f6103996104db565b6103658383610751565b5f336103048185856105d6565b5f8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361040b57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61030a565b5073ffffffffffffffffffffffffffffffffffffffff9182165f90815260026020908152604080832093909416825291909152205490565b5f61044c6104db565b6104578484846104c9565b5060019392505050565b6104696104db565b73ffffffffffffffffffffffffffffffffffffffff81166104bd576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b6104c6816106dd565b50565b6104d683838360016107ab565b505050565b5f5473ffffffffffffffffffffffffffffffffffffffff16331461037f576040517f118cdaa70000000000000000000000000000000000000000000000000000000081523360048201526024016104b4565b5f61053884846103b0565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156105d057818110156105c2576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101829052604481018390526064016104b4565b6105d084848484035f6107ab565b50505050565b73ffffffffffffffffffffffffffffffffffffffff8316610625576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016104b4565b73ffffffffffffffffffffffffffffffffffffffff8216610674576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016104b4565b6104d68383836108f0565b73ffffffffffffffffffffffffffffffffffffffff82166106ce576040517fec442f050000000000000000000000000000000000000000000000000000000081525f60048201526024016104b4565b6106d95f83836108f0565b5050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b73ffffffffffffffffffffffffffffffffffffffff82166107a0576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f60048201526024016104b4565b6106d9825f836108f0565b73ffffffffffffffffffffffffffffffffffffffff84166107fa576040517fe602df050000000000000000000000000000000000000000000000000000000081525f60048201526024016104b4565b73ffffffffffffffffffffffffffffffffffffffff8316610849576040517f94280d620000000000000000000000000000000000000000000000000000000081525f60048201526024016104b4565b73ffffffffffffffffffffffffffffffffffffffff8085165f90815260026020908152604080832093871683529290522082905580156105d0578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108e291815260200190565b60405180910390a350505050565b73ffffffffffffffffffffffffffffffffffffffff8316610927578060035f82825461091c9190610c5e565b909155506109d79050565b73ffffffffffffffffffffffffffffffffffffffff83165f90815260016020526040902054818110156109ac576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260248101829052604481018390526064016104b4565b73ffffffffffffffffffffffffffffffffffffffff84165f9081526001602052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff8216610a0057600380548290039055610a2b565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526001602052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a8a91815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610b0d575f5ffd5b919050565b5f5f60408385031215610b23575f5ffd5b610b2c83610aea565b946020939093013593505050565b5f5f5f5f60808587031215610b4d575f5ffd5b610b5685610aea565b9350610b6460208601610aea565b9250610b7260408601610aea565b9396929550929360600135925050565b5f5f5f60608486031215610b94575f5ffd5b610b9d84610aea565b9250610bab60208501610aea565b929592945050506040919091013590565b5f60208284031215610bcc575f5ffd5b610bd582610aea565b9392505050565b5f5f60408385031215610bed575f5ffd5b610bf683610aea565b9150610c0460208401610aea565b90509250929050565b600181811c90821680610c2157607f821691505b602082108103610c58577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b8082018082111561030a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffdfea264697066735822122012a25e69c20c8b1d4eaf49d5c9123a7a8fd32491b82e6a88e3ecaa43ba5a839264736f6c634300081c0033a26469706673582212201be1e00fe4406b9cf7b0488f2c3cb2a3eae9706211be8f0e641b5160ea00029264736f6c634300081c0033