diff --git a/contracts/internal/assets/assets.go b/contracts/internal/assets/assets.go index 534ad0f7..855c4ada 100644 --- a/contracts/internal/assets/assets.go +++ b/contracts/internal/assets/assets.go @@ -1,8 +1,8 @@ // Code generated by go-bindata. DO NOT EDIT. // sources: // ../src/contracts/CustodialDeposit.cdc (3.533kB) -// ../src/contracts/FlowToken.cdc (7.507kB) -// ../src/contracts/FungibleToken.cdc (7.298kB) +// ../src/contracts/FlowToken.cdc (7.074kB) +// ../src/contracts/FungibleToken.cdc (7.306kB) // ../src/contracts/TokenForwarding.cdc (1.954kB) package assets @@ -93,7 +93,7 @@ func custodialdepositCdc() (*asset, error) { return a, nil } -var _flowtokenCdc = "\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x59\xdf\x73\x1b\xb7\xf1\x7f\xe7\x5f\xb1\xdf\x7c\x67\x1a\xca\xa1\x28\xa6\xd3\xe9\x83\x46\x4e\x2c\xb7\xf6\x8c\x1f\xd2\xe9\xa4\x6e\xfb\x2a\xdc\xdd\x52\x44\x74\x07\x70\x00\x1c\x29\xc6\xe3\xff\xbd\xb3\x58\x00\x07\x40\x24\x25\xb5\x09\x1f\x6c\xf1\x0e\xd8\x5f\xd8\xfd\xec\x07\xcb\xab\x37\x6f\x66\xb3\xff\x87\x8f\xbd\xde\x7f\xd6\x0f\xa8\x00\x1f\xc5\xb0\xed\x11\x5a\xad\x9c\x11\xad\x9b\xcd\x3e\x6f\xa4\x05\x69\x41\x4c\x2f\x25\xfd\x3b\xa0\x72\xc2\x49\xad\x40\xaf\xc1\x6d\xd0\x0b\x81\x8f\xa3\xba\x97\x4d\x8f\xc0\xe2\xac\x13\xaa\x13\xa6\x5b\xce\x3e\x59\x50\xda\xc1\x56\x18\x17\x37\xc4\x97\x0b\x68\x46\x07\xbf\x8c\xd6\x81\xdd\xe8\xbd\x85\x8d\xde\xc3\xa0\xad\x03\x47\x42\xec\xcc\x6e\xf4\xd8\x77\x93\xda\x6a\xb7\x54\x6d\x3f\x76\x52\xdd\x4f\x66\x28\x74\x7b\x6d\x1e\x58\x00\x48\x67\xb1\x5f\x2f\xc9\x17\xcc\x7c\x8d\x3e\x82\x56\xfd\x01\x14\x62\x67\xc1\x69\x68\x10\x3a\xdc\xf6\xfa\x80\x1d\x48\x05\x5a\x21\x88\xb6\xd5\xa3\x72\x4b\x2f\xc0\xaf\xce\xfd\x48\x72\xdc\x46\x38\xd8\x7b\x5b\x1b\x32\x50\x1b\x16\x81\xa2\xdd\xc0\x68\xd1\x7c\x6b\xa3\xa8\x99\xb4\x7e\xef\xbf\xc4\xd8\x3b\xd0\xcd\x2f\xd8\xba\x05\x34\xd8\xeb\x3d\x9b\x59\xc5\xb8\xd3\xc8\x01\x24\x33\xc9\x4a\x83\x1d\xae\xa5\x42\x2f\x45\x2a\x87\x66\x2d\x5a\xb4\x6c\x83\x30\x38\x13\xbd\x41\xd1\x1d\x80\x97\x79\x3b\x7c\x78\xca\x03\x4a\x3b\x67\xb3\x37\x57\xb3\x99\x1c\xb6\xda\xb8\xb4\x88\xd7\xac\x8d\x1e\x60\xf5\xb8\xfa\xe3\x6c\xb6\x1d\x9b\xc9\xdd\x14\xc9\xeb\x6a\xc3\x97\xd9\x0c\x00\xe0\xea\x0a\x3e\x6b\x27\x7a\xb0\xe3\x76\xdb\x1f\x28\x5c\x6b\x3a\x1c\x3e\x55\x1f\x98\x47\x69\x1d\xaa\x16\xfd\x7a\x12\xbe\x13\x06\x1c\x6d\xfa\x87\xdf\x73\x0d\xff\xfc\x28\x1f\xff\xfc\xa7\x24\xf0\xc3\x8e\xcf\x5f\x38\xca\x49\x1c\xa4\x73\xd8\xc1\x7e\x83\xaa\x3c\x0a\x69\xa1\x35\x28\x1c\x76\x49\x34\xfa\xad\x85\xa5\x9f\x94\x74\x52\xf4\xf2\x57\xec\xe6\x92\xff\x2e\xf5\x5e\xbc\x48\x31\xfb\x23\x0c\xc2\x5e\xba\x4d\x67\xc4\x3e\x04\x4d\xf0\xf9\x56\x26\xfc\x3b\x2c\x9a\x8b\x81\x52\x21\xea\x5a\xf8\x3d\xd7\x70\xdb\x75\x06\xad\xfd\xf1\xb5\xba\x3b\xdc\x6a\x2b\x1d\xa7\xc7\x71\xcd\x7f\xe5\x25\x4f\x14\x3b\xfd\x4a\xb5\x0a\xf7\xb9\xea\x81\xd2\xa8\x8e\xf4\x4f\x52\xd5\x9a\x5e\xef\x92\x75\x86\x0a\xb1\x12\xfd\x7e\x34\xea\xbf\x11\x2d\x60\xc0\x3d\x5b\x6b\xc0\xa0\xd5\xa3\x69\xf1\x74\xae\xfc\xe4\x17\xfe\x85\xdf\xcd\x45\xdf\xeb\x3d\x76\xb7\x27\xd4\x4e\xf1\xbe\xba\x4a\xa6\xc4\xc2\x67\x30\xf0\x20\x2a\x15\x21\x57\x8b\x54\x0e\x1e\x4a\x26\x18\xe0\x12\x95\xbc\x5a\xdc\x63\xaa\xa2\x0d\xc2\x7a\x54\x2d\x21\x81\x8d\x85\xcc\x5b\x84\xea\xe0\x5e\xef\xd0\x50\x89\x37\x2c\x6c\x6b\xd0\x3f\xdf\x12\x84\xb6\x5a\x75\xd2\x6f\x8c\xd2\xa4\xaa\xca\x35\x56\xcf\xc1\xc7\xbc\x15\x7d\x8f\xdd\x32\xd7\xdd\x6e\xb0\x7d\xb0\xb0\x11\xdb\x2d\x05\xd1\x81\x19\x95\x93\x03\xfa\x9d\xb8\x43\x03\x22\xd9\xe7\xa3\x59\x88\x88\x92\x7e\x0e\xf1\xa6\xf7\x8a\x5d\x6f\x30\x46\x3e\x7a\x45\x05\x8c\x8f\x27\xa0\x95\x6c\x8c\xd2\x38\x3d\x22\xb4\x2d\xc0\x6a\x7a\x6d\xfc\x69\x2a\x0d\x7b\x71\x80\xb5\x26\xc3\x06\xd1\xcb\x56\xea\xd1\xf2\x41\x38\x1d\x54\x72\x00\x53\x54\xf4\x18\x94\x4a\x05\x42\x9a\x25\xdc\x82\xdd\x62\x2b\x45\x1f\xd2\x60\xca\x97\xb2\x53\xb0\x09\x4e\xfb\xb4\x8a\xd2\xa6\xfa\x28\xa2\x40\xa9\x95\xc4\x78\xfd\x15\x74\x2e\xff\x6e\xf4\x4e\x76\x68\x16\xd5\xf3\x9f\xb1\x45\xb9\x7b\xfa\xfc\xbd\xe8\x7d\x32\x05\xc8\x0d\xea\x37\xba\xef\xb8\xbf\x34\xe1\xbd\x5e\x83\xf0\x01\xb0\xb1\xa9\xc6\xe5\x11\x75\xc3\xca\x12\x71\x53\xca\x44\x9c\x2c\x84\x52\x26\x44\x6f\x7c\x50\xe9\xfc\x29\x31\xd2\x5e\xda\x38\xaf\x24\x5f\xc0\x97\xf4\x9e\x3e\xbe\x37\x47\x91\x6f\xa3\xf0\xb4\xe4\x6b\x61\x49\x04\xd8\xec\x59\xfe\xfa\x63\xcc\x42\xce\x17\xf1\x10\x6b\xce\xe1\x3d\xa5\xa9\xaf\x5d\x10\xfe\xa1\x30\xf7\x23\x35\xd8\x7c\x3f\x95\x4d\x54\x11\x7b\x29\xef\xf1\x78\x9e\xea\x6e\x99\x6f\xfa\xe4\x42\x4a\x59\x10\x7c\xf2\x48\x6d\x54\x98\x43\x28\xd2\x88\x45\xa3\xe5\x4c\xa1\xe3\xc9\x05\x90\xd8\x41\x2b\x3c\xa4\x95\x0d\x7a\x3a\x63\x84\xb2\x6b\x34\x06\xbb\x25\x69\x31\xe8\x46\xa3\xf8\x60\x15\xee\xfb\x43\x2e\x24\x16\x52\x50\xa9\x8b\x72\xf2\x72\xb9\x2c\xa9\x52\xa4\xf3\x35\xd8\x64\x4d\x23\x17\x85\xbd\xc5\x3d\x15\xd3\xf2\x58\x98\x29\x61\xd6\xa3\x4a\x71\xaa\x81\xf8\x1a\xde\x95\x39\xca\x16\x9d\x3d\xf4\xe2\xeb\x65\x88\x79\xb1\x81\x70\xfc\x69\xe7\xe4\xff\x63\xe7\xf4\x52\xf4\x5e\xa1\xf9\x71\x29\xb8\x9d\x5d\x14\x42\x38\x80\x70\x73\x99\x43\xc0\x94\x9f\x2c\xed\xe2\x44\xea\x85\x50\xbd\x26\xf3\x0a\x7a\x57\xa5\x9d\xcf\x35\xd1\x75\xb6\x28\x34\x67\x53\x75\x85\x23\xcc\x2a\x98\xbe\x7a\xf7\xec\xf1\x2c\x24\x96\xce\x4d\x8a\x36\x87\xe6\xc9\x64\x99\x14\xb2\x31\x0d\xb6\x62\xb4\x38\xe5\x72\x51\x5e\x64\x63\x96\xbf\x94\xa9\x68\xa2\xee\x80\x68\xbe\x27\xf8\xad\xdf\x4e\xd6\x6e\x44\xe1\x48\x83\x4c\xb0\xed\x38\x60\xe7\x5d\xf5\xe8\xbc\xd6\xbe\xc3\x84\xd4\x0b\xcd\x7d\xf9\x24\xb5\x42\xa8\xe7\x7c\xac\xc7\xd2\xa9\x06\x91\x1e\x1d\xec\xbc\x7f\x37\x97\x81\x7b\xd9\xff\x83\x77\x89\xa2\x2e\x4b\x57\x9f\x4b\xc1\xef\x58\xd8\xb2\x06\xa3\x94\x89\x35\x93\x2a\x96\x33\xa1\x7a\x36\x1b\x8b\x3d\xf0\x16\x56\xcb\x55\xf1\x3e\x1e\xe0\xae\x30\x3d\x4b\xca\xb0\x60\x5e\x07\x63\xf2\x3a\xa3\xd2\xf0\xf6\xc4\xf3\xcb\xc2\xf5\x4c\x4f\xa6\x2d\xe1\xcb\x87\x61\xeb\x0e\xc7\xa8\x4e\x99\xff\x25\x1e\x72\xe2\x11\x5e\x80\xc8\xf3\xf9\x57\x34\x3a\xf5\x73\xd5\x25\x7c\x93\x13\x7e\x89\xbe\x27\x24\x0c\x38\x46\x5d\xd9\x77\xf1\x81\x2e\x8b\xf4\x92\x1a\xb6\x4d\xe4\x23\x17\xe6\x19\x97\x17\xc2\x62\x13\x34\xd6\x2c\xcb\x5f\xf2\x4c\xc7\xdc\xc0\xd7\x0f\xbf\x4f\xc2\xf8\xc6\x16\x1a\xbe\xa0\xbb\x93\xbf\x7f\xf9\x86\x1c\x53\xd5\x06\xf2\x10\xda\x2b\xb8\xc3\x16\x9f\xb4\x7e\x4a\xed\x3a\x8c\xf3\xe7\xf1\xf2\x19\xd4\x5a\x2d\x57\x17\xd5\x59\x11\x63\xb9\x55\x1d\xd1\xe4\x13\x24\x2c\x62\x12\xa3\x95\x37\x59\x74\x03\x71\x1f\xf6\xd6\x42\xeb\xef\xb1\xa9\x55\x51\x9b\x62\x8e\xe3\xa3\xdb\x90\x45\x2f\x61\x39\x99\x29\x15\x49\xa1\xa3\x09\xcd\x95\x62\xc7\xac\x3f\xf2\xbc\x48\xd2\x4b\x48\x4b\x14\x0b\x32\xe2\x72\x94\x97\x17\x9a\x68\xdb\xe7\x92\xf5\x9c\x03\x6f\x5a\x6e\x33\xe7\x16\x1e\xa6\xc9\xaa\x21\xe6\xa5\xaf\x1f\xe0\x02\x5a\xd4\x04\x22\x6b\xd3\xc3\x89\x44\x3e\xd7\x57\x27\x6b\x8f\x75\xd6\x12\xd0\xaa\xc2\x27\xe6\x5f\x3e\xa1\x4f\x08\xf2\x0f\x41\xcc\x7c\x75\x71\x0d\xdf\x70\xb8\xc2\xcd\x8d\xeb\xa9\x41\xb8\xf7\x19\x66\x28\x0e\xca\x97\xe7\x37\xa7\xa4\xdd\x04\xc4\xac\xa2\x7f\x42\x6e\x8f\xd6\xb2\x50\x7f\xea\xe1\x44\x59\x54\xa9\xe2\xeb\xff\x80\x64\xdf\x1d\x23\x0e\x4f\xad\x84\x63\xa6\x9f\x61\x1d\xc5\x45\xb6\xe6\x08\x2f\x28\xd0\xf3\xb4\x82\x2a\xe9\x15\xc9\x59\x32\x8b\x92\x52\x2c\xc0\x8e\x8d\xbf\x2f\xd9\x9c\x49\xe4\xc2\x12\x8d\x75\xd9\x64\x66\x41\x4f\x54\x6c\x27\xd9\x60\x6a\x51\xd5\xab\xc1\xe6\x00\x06\x07\xbd\x8b\xd3\xb6\x50\xb6\x5e\x6c\x9a\xe6\x1c\xa5\x8d\x1e\x7c\x26\xfe\x1a\xd2\x88\x47\x66\xc2\xfa\x30\xb8\xb3\x7c\x73\x0a\xd4\xef\xcb\x0b\x68\x8b\x88\x89\x72\x9a\x06\x1c\xef\xce\x29\x69\x8a\x11\xc5\xf9\x0c\xe0\xac\xf9\x1b\xee\xf9\xa2\xf9\xa2\x34\x48\x0d\x36\xc3\x1b\x6e\xb6\xd5\x74\xe3\x5c\x44\x2b\xc5\x27\x26\x1c\xd7\xf0\xae\x04\xf1\x27\xbe\x9e\x9d\x93\x14\x5f\xcf\xd7\x4d\xa6\xe6\x85\x52\xb2\x40\xfa\xab\xe6\x71\x0f\x8e\xdd\x3d\x6a\x44\x28\xbe\x9f\x24\x41\x7e\x32\x9b\x2e\xc3\xc6\x8f\x18\xf2\x39\xc5\x12\x6e\xfb\x1e\xd6\x12\xe9\xfe\x2d\xab\x99\x24\x81\x61\x14\xd4\xe4\x72\x3a\xba\x49\xf3\xcc\x99\xca\x98\x08\x36\xcf\xdc\xfd\x4c\x3c\x1b\xbc\xeb\x35\xec\x37\xc2\x4d\x34\xa7\x1e\x13\x73\xd3\xee\x74\xd4\x9d\xd9\x5a\x8f\x63\xc8\x15\x35\x0e\x0d\xdd\x26\x84\x41\x10\xa6\x91\x8e\x48\x7f\xb1\xd0\x47\x35\x0f\x20\xdd\x34\xca\x69\x40\x8e\xc0\xde\xf3\xd8\xf3\x82\xf2\x27\x30\xe4\xe3\x5f\xe2\xf9\xf7\xab\x15\xb1\xdf\x5c\x0b\xa7\x53\x36\xea\xf2\xfc\xb1\x86\xae\x8c\x3a\x78\xd2\x27\x76\x48\xf4\x51\xaa\x62\x86\x56\xe5\x7f\x01\x0a\xc7\x31\xbb\xb6\xf1\xa2\xb4\x3e\xfe\x20\x40\xfa\xe6\x37\x97\x5e\x18\xb3\xfe\xab\xa0\xf7\x6a\x1d\x21\x86\x71\xe9\x98\x6f\x82\x2a\xb1\x97\x2d\xb4\x62\x2b\x1a\xd9\x4b\x77\x88\xb1\x0b\x3f\x1e\x64\xf3\x03\x3f\x30\xc3\xc7\xad\xb6\x68\x6b\x1a\x75\x17\x58\xe8\x1d\x0c\xe8\x36\x9a\x2e\x5b\x46\x8f\xf7\x1c\xae\xbb\x38\x3b\xba\xcb\xa6\xfd\x47\xa2\x52\x38\xd6\x4b\xf5\x70\xf3\x87\x0a\x26\xbf\x1c\x9f\x49\x7d\xfd\x61\x5e\xd4\xd7\x15\x7b\x35\x45\x20\x0d\xaf\x8a\x65\x4e\x98\x7b\x74\x27\x23\x96\xd6\xfe\xce\xa1\x0b\x47\x7e\x17\x73\x37\x8f\xdc\xfb\xf8\xee\xb7\x0d\x5c\x10\xfb\x6c\xdc\xc2\xba\xdf\x34\x6c\xd4\x22\x72\x38\x4f\x44\x7d\xba\x33\x71\xfd\xc4\x6b\x4f\x5d\x47\x54\x3c\x43\x26\x60\x2a\xa1\x33\xf0\xfd\xfd\x2a\xdd\x52\x4e\xd5\x50\x26\xf3\x54\x25\x65\x0a\x4a\xef\x3e\x50\x17\x22\x9c\x9c\x46\xff\xfc\x4b\x62\xba\x4e\x24\x10\x26\xae\x91\x21\x6f\x92\xe2\x1b\xd9\x4b\x7f\x1c\x3a\x8e\x0e\x5f\x67\xd4\x28\xfe\x13\x00\x00\xff\xff\x88\x77\x5b\xc3\x53\x1d\x00\x00" +var _flowtokenCdc = "\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x59\xcd\x6e\x23\xb9\x11\xbe\xfb\x29\x2a\x7b\x48\x64\xac\x2d\x1b\x41\x90\x83\xe0\xd9\x1d\x4f\x32\x03\xec\x21\x8b\x60\x33\x49\xae\xa6\xba\x4b\x12\x33\xdd\xa4\x40\xb2\x25\x6b\x07\x7e\xf7\xa0\x8a\x3f\x4d\x52\x2d\xd9\x5e\xef\xf8\x30\xe3\xee\x26\xeb\xf7\xab\xaa\x8f\xb4\xec\xb7\xda\x38\xf8\x34\xa8\xb5\x5c\x76\xf8\x59\x7f\x41\x05\x2b\xa3\x7b\xb8\x7d\xbc\xfd\xf3\xc5\xc5\x76\x58\x42\xa3\x95\x33\xa2\x71\xf0\xa9\xd3\x7b\x5e\xb1\xa8\x36\x7c\xbd\xb8\x00\x00\xb8\xb9\x81\xcf\xda\x89\x0e\xec\xb0\xdd\x76\x07\xd0\x2b\xde\x02\x8e\x16\x59\x90\x0a\xf0\x51\x5a\x87\xaa\x41\x5e\x4f\xc2\x77\xc2\x80\xa3\x4d\xff\xe2\x3d\x0b\xf8\xf7\x27\xf9\xf8\xd7\xbf\x24\x81\x1f\x77\xa8\x1c\xb8\x8d\x70\x20\x2d\x60\x2f\x9d\xc3\x16\xf6\x1b\x54\xe0\x36\x38\xda\x26\x2d\x34\x06\x85\xc3\x36\x89\x46\xde\xca\x16\xda\x9f\x94\x74\x52\x74\xf2\x57\x6c\x67\xd2\xff\x5e\x2a\xbc\x7c\x91\x46\xef\x88\x30\x08\x7b\xe9\x36\xad\x11\xfb\x10\x2d\x01\xff\x11\x43\xe7\x26\x75\xff\x37\x2e\x9d\x89\x5e\x0f\xca\x45\x95\x57\xbc\x75\x01\xf7\x6d\x6b\xd0\xda\x1f\x5f\x6b\x42\x8b\x5b\x6d\x25\x7d\x71\xfa\xac\x01\x7f\x8f\x0b\x8f\x0c\x70\xfa\x95\xea\x15\xee\x73\x13\x7a\xa9\x4e\x45\xfc\x1f\xfc\xa9\xd2\xf8\x7a\x17\xad\x33\xfa\x70\x42\xc5\x87\xc1\xa8\xdf\xa6\x42\xb0\x23\x6c\xbd\x01\x83\x56\x0f\xa6\xc1\xd3\x18\x62\x5f\xcc\xdf\xfc\xb7\x99\xe8\x3a\xbd\xc7\xf6\xfe\xb7\xaa\x5d\x92\xd9\x2f\x51\xcb\xfe\x25\xb5\xa3\x86\x31\xd3\x37\x37\x49\xab\x68\x36\x30\x58\x34\x60\x9d\x36\x68\x41\x28\x90\xca\x3a\xa1\x1a\xa4\x42\xd4\xaa\x3b\x70\xc5\xf0\x66\xaa\x45\xb7\x41\xe9\x57\x8b\x35\xa6\xfa\xdd\x20\xac\x06\xd5\x38\xa9\x7d\xc5\x8e\x5b\x84\x6a\x61\xad\x77\x48\x31\x87\xa5\x17\xb6\x35\xc8\xef\xb7\xda\x3a\xaa\xc5\x56\xf2\xc6\x28\x4d\xaa\xaa\x51\xc4\xba\x3d\x70\x76\x1b\xd1\x75\xd8\xce\x73\xdd\xcd\x06\x9b\x2f\x16\x36\x62\xbb\xa5\x78\x39\x30\x83\x72\xb2\x47\xde\x89\x3b\x34\x20\x92\x7d\x1c\xb8\x42\x44\x94\xf4\x4b\x08\x2d\x7d\x57\xde\xf5\x25\xc6\x20\x47\xaf\xa8\x75\xe0\xa3\xa3\xe0\x14\x9d\x84\x33\x47\x36\x46\x69\x1e\x88\x2b\xa9\x78\xef\x15\x58\x4d\x9f\x0d\x27\x4e\x69\xd8\x8b\x03\xac\x34\x19\xd6\x8b\x4e\x36\x52\x0f\xd6\x27\xc2\xe9\xa0\xd2\x07\x30\x45\x45\x0f\x41\xa9\x54\x20\xa4\x99\xc3\x3d\xd8\x2d\x36\x52\x74\x01\x68\x23\x34\x14\x62\x6b\x49\xd0\x72\x34\xc1\x69\x06\x6e\x94\x36\x56\x64\x11\x05\x42\x51\x12\xc3\xfa\xab\xa6\x3d\xff\xa7\xd1\x3b\xd9\xa2\xb9\xaa\xde\xff\x82\x0d\xca\xdd\xf1\xfb\x0f\xa2\x63\x30\x85\x66\x1f\xd4\x6f\x74\x47\x16\x6e\x10\x96\xe1\xbb\x5e\x81\xe0\x00\xd8\x60\x57\x5a\x1e\xfb\x7d\x58\x59\xf6\xfa\x04\x99\xd8\xa8\x0b\xa1\x84\x84\xe8\x0d\x07\x95\xf2\x4f\xc0\x48\x7b\x69\xe3\xac\x92\x7c\x09\x5f\xd3\x77\xfa\xb1\xd8\xad\xe6\x51\xe4\xbb\x28\x3c\x2d\x79\x2a\x2c\x89\x1d\x3e\x7b\x97\x7f\xfe\x14\x51\xe8\xf1\x22\xbe\xc4\x9a\x73\xb8\x26\x98\x72\x77\x00\xc1\x2f\x85\x59\x0f\x3d\x86\x9c\x45\x54\xa9\x36\xa9\xb0\x5e\x48\xd8\xc3\x03\x25\xd5\xdd\x3c\xdf\xf4\x93\x0b\x90\xb2\xa1\x97\x38\xa4\x01\x2e\xcc\x21\x14\x69\x6c\x3b\x83\xf5\x48\xa1\xf4\xe4\x02\x48\x6c\xaf\x15\x1e\xd2\xca\x25\x4a\xb5\x06\x67\x84\xb2\x2b\x34\x06\xdb\x39\x69\x31\xe8\x06\xa3\x7c\x62\x15\xee\xbb\x43\x2e\x24\x16\x52\x50\xa9\x8b\x72\x62\xb9\xbe\x2c\xa9\x52\xa4\xe3\x1a\x5c\x66\xe3\x2a\x17\x85\x9d\xc5\x3d\x15\xd3\x7c\x2a\xcc\x04\x98\xd5\xa0\x52\x9c\xea\x56\xbf\x80\xf7\x25\x46\xbd\x45\x67\x93\x5e\x3c\x5e\x87\x98\x17\x1b\xa8\x65\x9f\x1c\xdd\xfe\xff\x38\xba\x59\x98\xde\x2b\x34\x3f\xce\x85\x9f\xa3\x97\x85\x2c\x1f\x47\xb8\xbb\xce\x3b\xc1\x08\x53\x2f\xed\xf2\x04\x02\x43\xc4\x5e\x03\xc0\x90\x13\xbd\xfc\x1f\x36\x35\xfa\x18\x72\xa2\x6d\x6d\x51\x6f\xce\xa6\x22\x0b\x99\xcc\x0a\x99\x1e\xd9\x3d\x3b\x0d\x46\x69\x21\x4c\x43\xda\x1c\xa6\x35\xef\xb2\xa4\xd0\x1b\xb3\xc4\x46\x0c\x16\x47\x48\x17\x55\x46\x36\x66\x30\x26\xc0\xa2\x89\xba\x43\x63\xe3\xd1\xc0\x5b\xff\x34\x5a\xbb\x11\x85\x23\x4b\x44\x45\x20\xb4\x43\x8f\x2d\xbb\xca\x4d\x7a\xa5\x79\xd0\x04\x04\x06\x36\x31\x3f\x42\x58\x08\xf5\xcc\xa7\x75\x0a\x55\x75\x2f\xe9\xd0\xc1\x8e\xfd\xbb\xbb\x0e\x1c\xd0\xfe\x01\xde\x27\x8e\x3c\x2f\x5d\x7d\x0e\x89\xdf\x7b\x61\xf3\xba\x27\x55\x80\x3c\xa6\x72\xc5\x36\xcf\xe8\x9e\x45\x65\xb1\x07\xde\xc1\xed\xfc\xb6\xf8\x1e\x13\xb9\x2b\x5c\xc8\xc0\x19\x16\xcc\xea\xa0\x8c\xde\x67\x9c\x1e\xde\x9d\x78\x7f\x5d\x84\x20\xd3\x93\x69\x4b\xed\xe6\x63\xbf\x75\x87\x29\xe6\x53\xd6\x41\xd9\x1e\x3d\x00\xa9\x7d\x80\xc8\x71\xfd\x2b\x1a\x9d\xc6\xbb\x6a\x53\xbb\x93\x63\x3b\x13\x5d\x47\x8d\x31\xb4\x35\x1a\xd2\x3c\xd4\xfb\xc1\xfa\xf6\x46\xf3\xdb\x26\x2e\x92\x0b\x63\x02\xc6\x42\xbc\xd8\xd4\x29\x6b\xd2\x45\x2f\xb4\x69\x3d\x55\xe0\x3a\xf2\xdf\x93\xb0\xa6\xe1\x81\xe0\xe7\xbf\x58\x76\x5c\xa2\xc6\xcf\xe7\x08\x59\x1b\xb8\x44\x98\xb6\xe0\x0e\x5b\x3c\x62\x02\x04\xf1\x3a\x8c\xb3\xe7\xdb\xe7\x33\xdd\xeb\x76\x7e\x7b\x99\xe7\xaa\xe0\x1c\xf7\x6d\x2f\x95\xb4\xce\x08\xa7\x4d\x26\x33\x25\xf4\x67\xdc\x7b\xba\xf3\xa2\xfe\x96\xf2\x9a\x65\x6b\x92\xc5\x9f\x9b\x23\x95\xe2\x13\x4c\x7e\x01\xef\x03\x0f\xfb\x7a\x5c\x86\x67\x8f\x02\xc5\xe3\xf9\x41\x30\x6d\xc1\x09\x01\xe5\x58\x48\x5e\xf8\xf3\xc1\x1b\xc3\x57\x9d\x46\x5e\x14\x3e\xaf\x98\x01\xe4\x7f\x9d\x8a\x54\x7d\x7a\x39\x17\x8d\x28\xf0\x64\x0f\xc8\x90\x72\x4c\xf3\xe3\xb8\xf3\x83\x90\xab\x40\x10\xfa\x62\x01\xf9\x63\x00\x4d\x96\x48\x9e\x5f\xc4\x9a\x13\x08\x6a\x02\x15\x78\x1a\xd5\x9d\x3f\xaa\xc6\x23\x43\xc4\x62\x39\x16\x13\x5b\x87\x8c\x03\x4f\x42\xaf\xd0\x44\xdb\x3e\x97\x04\xfa\x5c\x86\x69\xb9\xcd\xfc\xba\xe2\x51\x4f\x56\xf5\xb1\xa7\xb9\xec\x72\xe6\xaa\xe6\xa2\x19\xe3\xeb\x4f\x35\xc1\x73\xe0\x18\xcd\x9d\x62\x69\xe5\x54\xac\xe0\x42\xa7\xc8\xf2\x0d\xfd\x84\x28\xff\x10\xc4\xcc\x6e\x2f\x17\xf0\x9d\x8f\x57\xb8\x77\xf0\xcd\x78\x89\xb0\x66\x14\x19\x0a\x84\xe2\xde\xfe\xdd\x29\x69\x77\x61\xec\x56\xe1\x3f\x21\xb7\x43\x6b\xbd\x50\x4e\x7b\x48\xa9\x17\x55\xaa\x78\x7a\xc3\x18\xfc\x7e\x8a\x84\x1e\x5b\x09\x53\xa6\x3f\xcb\x60\xab\x6b\x98\x9a\x70\xc2\x9b\x38\x2a\x9f\xb9\xa6\x9b\xe8\x14\x09\xaf\xdd\x29\x9e\x8f\x4a\x9f\xfe\x8d\x95\x9e\x75\xba\xb7\x96\x3f\xf5\xbb\x67\x4b\x3f\x75\xb5\x82\x61\x0e\x46\xbd\xa2\x20\x03\x47\x1a\x49\x79\xbc\x8e\xb9\x02\x5c\xad\xb0\x71\x72\x87\xdd\x81\xa5\xf2\x09\x6c\xa4\xbb\x27\xc4\xff\xac\x1d\x2e\x3c\x43\xf7\xac\x22\xbb\x28\x13\x83\xd3\xbd\x70\x92\x2a\xf6\x00\x76\x58\xf2\x5d\x06\xb6\xe3\x61\xb2\x68\x62\xf9\x2d\x6d\x71\xc9\xc3\x46\x0f\x8d\xd3\xe6\x6c\xb1\x8f\xa1\xf8\xb6\x8c\x99\xb6\x88\x08\x97\xd3\x04\x79\x9a\xaf\x56\x95\x50\xdd\x16\x1e\xc3\x3a\x03\xb7\x07\x36\x81\xe8\xde\x63\x68\x01\xf7\x83\xdb\x84\x87\xdc\x31\x06\x76\x59\xe5\xc4\xa6\xf3\x68\xfb\x11\x98\x05\x99\xf9\x68\xdd\x90\xb3\x71\xc2\x24\x52\xec\x90\xe8\xa8\x54\xc5\x15\x5d\x95\x8f\x22\xa4\xd3\xe5\x5b\x1b\x38\x7a\x9c\xfb\x37\x27\x7d\xb3\xbb\x6b\x16\xe6\x4f\x11\x37\x41\xef\xcd\x2a\x26\xc8\x67\x75\xca\x37\x41\xc8\xe8\x64\x03\x8d\xd8\x8a\xa5\xec\xa4\x3b\xc4\x19\xc2\x6c\xb8\xcd\xaf\x27\xf8\x3e\x0e\x1f\xb7\xda\xa2\xad\x47\xeb\x43\x60\xb5\x0f\xd0\xa3\xdb\x68\x3a\xc4\x19\x3d\xac\x7d\xb8\x1e\xe2\xd5\xd4\x03\x5f\xb3\x98\x95\x98\xe6\x2b\x85\x63\x9d\x54\x5f\xee\xfe\x58\x81\xec\xeb\xf4\x95\xd7\xd3\x0f\xb3\x02\x3d\x37\xde\xab\x31\x02\xe9\x6e\xac\x58\xe6\x84\x59\xa3\x3b\x19\xb1\xb4\xf6\x1b\x87\x2e\xa4\xfc\x01\x56\x12\xbb\x2a\x72\x1f\xe2\xb7\xdf\x37\x70\x41\xec\xb3\x71\x0b\xeb\xde\x1c\x36\xee\x07\xdc\xdb\x47\xbc\x17\x07\x8d\xd9\x79\x78\xf3\xbb\x53\xf0\x66\x41\x65\x8e\x3e\x52\xfb\x10\x2a\xdc\xc7\x73\x0a\xec\x46\xef\x33\xc6\x97\xae\x8d\xf7\xc2\x66\x97\x97\xe3\x25\x57\xd6\x81\xce\xfc\x11\x6a\xba\x4a\x9f\x2e\x9e\x2e\xfe\x1f\x00\x00\xff\xff\x4d\xa4\xc6\xb3\xa2\x1b\x00\x00" func flowtokenCdcBytes() ([]byte, error) { return bindataRead( @@ -109,11 +109,11 @@ func flowtokenCdc() (*asset, error) { } info := bindataFileInfo{name: "FlowToken.cdc", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x47, 0xff, 0x63, 0x1c, 0x17, 0xfb, 0xd1, 0xbb, 0xe3, 0x7b, 0xc6, 0xfe, 0xc8, 0x74, 0x9e, 0xef, 0x83, 0xb9, 0x84, 0xa6, 0x33, 0xbf, 0x22, 0xf4, 0x85, 0xb3, 0x1f, 0x1a, 0xb6, 0x8, 0xa0, 0x21}} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa1, 0x81, 0x4b, 0x5d, 0xc9, 0xe, 0x76, 0x5f, 0x31, 0xc9, 0x26, 0x9c, 0xc, 0xb4, 0xda, 0x8c, 0xcc, 0x97, 0x7d, 0x7e, 0xdb, 0x2d, 0xf, 0xf7, 0xed, 0x80, 0x68, 0xe0, 0xa1, 0x12, 0x6e, 0x98}} return a, nil } -var _fungibletokenCdc = "\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x59\x4d\x73\xdc\xb8\x11\xbd\xf3\x57\x74\xd9\x07\xcb\xce\x58\xda\x43\x2a\x07\x57\x79\x13\xbb\xd6\xaa\xf2\x25\x49\x25\x4a\xf6\x3a\x18\xb2\x39\x83\x15\x08\x70\x01\x70\x46\xb4\xcb\xff\x3d\xd5\x8d\x0f\x82\x1c\x4a\x1a\x55\xd6\x17\x6b\x48\xa0\xd1\xdd\x78\xfd\xfa\x01\xbc\x79\xf7\xae\xaa\x5e\xc3\xdd\x01\xe1\x56\x99\x13\xdc\x0e\x7a\x2f\x77\x0a\xe1\xce\xdc\xa3\x06\xe7\x85\x6e\x84\x6d\xaa\xea\xf5\x6b\xd8\xa6\x97\xfc\x6e\x0b\xb5\xd1\xde\x8a\xda\x83\xd4\x1e\x6d\x2b\x6a\xac\x2a\x32\x94\x7f\x82\x3f\x08\x0f\x42\x29\x68\x93\x59\xcf\x66\xd3\x4c\x07\x27\x33\xa8\x06\x0e\xe2\x48\xaf\xe8\x79\x6b\x6c\x07\xde\x5c\x57\x5f\x5b\x10\x30\x38\xb4\x0e\x4e\x42\x7b\x47\xef\x1b\xec\x95\x19\x41\x80\xc6\xd3\xc2\xd4\x06\xfc\x01\xa5\xcd\xbf\xab\x60\x59\x23\x36\x34\x53\x76\xbd\xc2\x0e\xb5\xa7\x61\x30\x0b\x64\xf2\xf7\x9a\xfd\x2f\x8c\x2c\xdc\x6b\x8d\xa2\x1c\x51\x40\x64\xc5\x0e\x0a\x1d\x08\xdd\x80\x16\x9d\xd4\xfb\x8a\xc3\xf5\xb3\x0c\xb8\x1e\x6b\xd9\x4a\x74\xd7\x21\x85\xff\x15\x83\xf2\x5b\xb0\xe8\xcc\x60\x29\x61\x5f\x44\x7d\x00\x51\xd7\x66\x60\xdf\x84\x07\x73\xd2\x2e\x04\x97\xd2\x93\x82\x60\x3f\x04\x39\x4c\xfb\x52\x63\x65\x5a\x5e\x8e\x8d\x66\x9b\xe0\xbc\xb1\xd8\x80\xd4\x31\x25\xc9\x3a\x3d\x17\xfb\x18\xe5\x72\xd2\x41\x38\xe8\xd0\x1f\x4c\xe3\x20\xc7\x61\x4e\x1a\x2d\x47\x68\xfc\x01\x6d\xdc\x8e\x5a\x68\xa8\x85\x52\x31\xa4\x7f\x5a\x73\x94\x0d\xda\xed\x06\xb6\xff\xc2\x1a\xe5\x91\xff\xa6\x59\xdb\xcf\x42\x91\xa3\x53\xc0\x53\x6a\x1c\xbb\xe1\xca\x27\xd0\x60\xad\x84\x45\xe8\x2d\xbe\xaf\x8d\x6e\xa4\x97\x46\x87\x14\xf7\xc6\xf9\xf2\x19\xfb\x68\xd1\x79\x2b\x6b\x5f\x91\xb3\xf8\x80\xf5\x40\x2f\x21\xa6\xa5\x1d\x74\x1d\x06\x87\x54\x84\x90\x43\xf8\x23\xd0\x3a\x0e\x7b\x61\x85\x47\xd8\x61\x2d\x06\xf2\xc5\xc3\x5e\x1e\xd1\xf1\x70\x8a\x96\xff\x10\x3b\xa9\xa4\x1f\x69\x0b\xdc\x41\x58\xac\x04\x58\x6c\xd1\xa2\xae\x19\x17\x21\xcd\x21\xa1\x61\x0b\xb5\x1a\x01\x1f\x7a\xe3\xa2\xa9\x56\xa2\x6a\xdc\xe4\x51\x25\x35\x18\x8d\x60\x2c\x74\xc6\x62\xf2\x78\x4a\xc5\x75\x55\x7d\xa5\xd2\x71\x26\x3a\x14\x52\xbf\xf0\xa6\x13\xf7\x08\xf5\xe0\xbc\xe9\x72\x86\x63\x6a\x32\xe0\x29\x37\xf3\x2c\x53\x21\x19\x38\x0a\x2b\xcd\x40\xa3\xa5\xde\x3b\x38\x49\x7f\x60\xf3\x01\x79\xd7\xd5\xad\xb1\x80\x0f\x82\xcc\x6c\x40\x40\x2b\x86\x1a\x3d\xef\xfd\x0e\x27\xeb\xd8\xc0\x6e\x4c\x75\xcb\x35\xc0\xe9\x80\x04\x8a\x59\x71\x7d\x1e\x61\x70\x52\xef\x0b\x5f\x69\x6b\x27\xd7\x36\x31\x4c\xd3\x2e\x4a\x34\x13\x46\x45\x0e\x38\xd4\x0d\xcf\xb4\x01\x6e\xa9\x5a\x7a\x44\xfb\xde\x9b\xf7\xf4\xff\x86\x23\x32\x83\xa7\xaa\xa1\x35\x89\x04\x68\x21\xe6\x06\x0a\x56\x40\x8d\x64\x55\x81\xc2\x66\x8f\x16\x5c\x27\xac\xcf\x4b\x5d\xc3\x9d\x09\x2b\x45\xeb\xde\x80\xd0\x53\x1d\x6c\xaa\x40\x4f\xb1\x46\x1d\xa5\x64\xe4\x45\x1b\x2b\x4e\x45\x2a\xa1\xb5\xa6\x2b\x31\xc2\x54\x15\x4a\x88\x81\xdb\x60\x6f\x9c\xf4\x19\x1d\x60\xf4\x6c\xa5\x37\x2e\x61\x8b\x18\x92\x32\xef\x31\xd8\xb7\x42\xbb\x16\xed\x75\x55\xbd\xbb\xa9\xaa\x9b\x1b\xe6\xf1\x4e\x48\xbd\xe4\xf1\x62\x17\x6e\x6e\xe0\x1f\x6c\xfa\x71\x4e\x96\x4a\xcd\x08\x53\xba\x82\xe2\x6f\x6e\xaa\x7e\xd8\xad\x90\xff\x62\xcb\xbe\x57\x15\x00\x40\x74\xca\x1b\x2f\x14\xe8\xa1\xdb\xa1\x65\xb4\x87\xd4\x48\x0d\xf8\x20\x9d\xa7\x4a\xba\x4e\xe3\xbf\x7a\x90\x0e\x86\x3e\x96\x56\x01\x36\x4b\x8f\x50\xbb\xc1\xc6\xde\x12\xcc\xba\xa1\xef\xd5\x98\xa6\x3b\x2f\x46\x47\xa4\x37\x70\x69\x13\x4e\x82\xad\x46\x78\xe4\x41\xe4\xff\x51\xd8\x30\xfb\xdf\x3c\xf9\x03\xfc\xe7\x56\x3e\xfc\xe5\xcf\xd9\xe9\x2f\x47\x4c\x84\x2c\x1d\x60\x27\x3d\x61\xfd\x44\x1b\x47\x3e\x4d\xe1\x3b\xa8\x2d\x0a\x8f\x4d\x36\x8d\x3c\x75\x96\x8d\xaf\x5a\x7a\x29\x94\xfc\x86\xcd\x95\x0c\x7f\xcf\xd7\x7d\x7b\xd1\xc2\x21\x69\xc4\x5c\x09\x67\x3a\xa0\x4b\x04\x84\x2c\x5c\xf8\x35\x0e\xba\x12\x1d\x35\x80\xb4\xd6\x86\xe7\x7c\x80\x4f\x4d\x63\xd1\xb9\xbf\xbe\x74\xed\x88\xd7\xd0\x93\xd6\x57\xfe\x25\x0c\x39\x5b\xd8\x9b\xb5\x65\x13\x59\xc4\xdf\x19\x07\x73\x1d\x81\xc4\x31\x75\x24\x54\x8b\xbf\x0f\xd2\x32\x2a\x1c\xb4\xc6\xe6\x84\x10\x07\xc5\xf9\x8b\xf2\x9b\x70\xc4\x74\x30\xf6\x19\x71\x69\xc2\xaf\x08\x8d\xd1\x6f\xf2\x52\xf3\x55\x8c\x86\xed\x2e\xf5\xb3\x03\x5a\xdc\xa4\x79\x45\xf7\x50\x28\x88\xad\x4d\x1f\x71\xd2\x1b\xe7\x64\x24\x6c\xd3\x06\xa8\xd0\xf2\x91\xb4\xfb\x18\xb9\xcb\x3e\x53\xa4\xc1\x09\x8d\x35\x3a\x27\xac\x54\x63\x54\x00\x4c\x21\xe6\xa4\x21\xba\x31\xf3\x9f\x92\x7f\xde\x65\x27\x22\x8e\xf5\x18\xd7\x49\xe9\x2a\x9e\x95\xaf\x6f\x13\x15\xb1\x3f\x6e\xd8\x45\x6a\x58\xa6\x94\x05\x42\xe2\xa7\xd2\x40\x60\x67\x3f\x58\xc2\xcc\x52\x6b\xe4\x5e\x63\xb1\x33\x47\x6c\x72\xcf\x59\x77\xe6\xae\xe8\xe5\x6f\xb8\xb2\xd1\x39\x50\x78\x44\x45\x30\xed\x87\x9d\x92\xf5\x06\x76\x43\xe2\x2a\x47\xe9\x13\x94\xdc\x9d\xc2\xae\x34\x95\x76\x8a\x1b\xf4\xa4\x70\xb8\xa9\x78\x63\x19\x18\xec\x57\xce\xe3\x5c\x43\x95\xb6\x6a\x56\x62\x5c\xcb\x6a\x64\x36\x0f\xcb\x27\x57\x9f\x0a\x27\x2c\xdb\x89\x11\xf6\x56\x68\x1f\xe5\x55\x5c\x24\x87\x48\x9d\x35\x01\x86\xc2\x91\xc7\xc4\x60\xd9\x85\x3e\xab\x01\xda\xa8\xd0\x8a\x04\xab\xd4\xa8\x3c\xeb\x99\x74\xa3\x82\x65\xdb\xa5\x15\xc6\x69\x82\x49\x0e\xdd\x1f\xac\x19\xf6\xd4\x26\xb3\xd6\xb9\x2c\xa2\x20\x5a\x38\x2c\xca\xc9\x33\x41\xf1\xe6\x5d\x1a\x13\xd9\x5b\x0d\x67\x16\x43\x69\xed\xc5\xe1\x50\x19\xb5\x83\xce\x05\xb2\xa0\xb0\xb7\x1f\xe0\x6f\x01\xcd\xdf\xf3\x14\x9e\x66\xdc\xf2\x51\xf4\x60\x6b\xd1\x45\xcd\xdf\x46\x9f\x03\xc4\xa8\x38\xe0\x28\xd4\x80\x67\xd3\xc2\x94\xeb\x58\xe6\xf0\xf1\x23\x44\x2f\xce\x46\xd2\xbf\x57\x89\xe7\x85\x8a\xe3\xa0\x1b\x9c\x27\x9d\x46\x2b\x39\xd1\x21\x88\x90\xa2\x64\x31\xea\xcd\xa9\x8b\x70\x4c\xaf\x66\xe6\x7f\x54\xf3\xbf\x7e\x64\xbe\x4e\x2a\xff\xff\xe1\xeb\xd8\x44\xce\xe9\x5a\xea\x65\xdb\x7f\x96\xae\xa5\xae\xd5\xd0\x20\x29\xba\x74\x40\x08\x2e\xd4\x07\xac\xef\xe7\x91\x47\x06\x48\x36\x4e\xc8\xa7\x4b\xda\x15\xd2\xd9\x97\xc8\xec\x10\x7b\x90\xd9\x55\xc1\x05\x8d\x49\x63\xd6\x25\xf5\x06\x94\xbc\xa7\x13\xa1\x92\x7c\xba\xea\x48\x96\x08\xdd\x64\xdd\xc2\x5a\x93\x9e\x93\x56\x91\x2d\xa3\xd4\x43\xaf\xc2\x79\x00\x9e\xa5\xfa\xb4\x2d\x0b\xaa\x8f\x99\xbe\x88\xe9\xa3\xbc\x27\x32\x0b\xed\x3d\x69\xd3\x10\x42\x39\x71\x7d\x9f\xa6\x7a\x1b\x7b\x7c\xaa\xbe\xa2\xe1\xab\x20\x45\x42\x4d\xbd\x5d\x16\x95\xc5\x95\x9a\xa2\x19\xb9\x34\x7e\x8e\x75\x79\xf5\xd3\xdb\x47\x8a\x23\x4a\x91\x0c\x80\x54\x1a\x01\x7e\x47\xbc\x14\xf4\xf1\x28\xfb\x34\xe6\x49\x16\x0a\xa9\x03\x82\x26\xb5\xc0\xc7\x3f\x28\x4f\xeb\x69\x3e\xf5\xc9\xa2\x50\x88\xef\x48\x6d\x69\x3c\x85\x71\x6f\x82\xe4\x8a\x12\x73\x53\x42\x39\x99\x60\x75\x9e\xe5\x25\xd4\xc6\x5a\xac\xbd\x1a\x2f\x81\x4c\x0c\x6a\x81\x98\x49\xb0\x2f\xf8\x22\x72\xf9\x1b\xb7\xc4\x43\x52\xd4\x71\xfc\x5c\x4d\xd3\x3f\xf2\xf0\x6a\xf1\xf6\x6c\xbb\xd7\x39\xd4\xa1\x6a\x4b\x2a\x4c\x56\xd6\xb7\xfb\xf3\x62\x9b\xcb\xd4\x24\xc0\x86\x47\xc9\xd0\xa5\x00\x28\xf7\xad\x3c\xda\x14\x2d\x66\x89\x80\xe9\x06\xc2\x9b\xc7\x4e\xad\x4b\x56\xbb\xe3\x13\x61\xad\x84\x15\xe9\x32\x83\x79\xad\xb6\x7c\xec\x1b\x7b\x56\x25\x62\xed\x00\xd6\xa1\xd0\x73\x5e\xc2\x23\xda\x71\x79\x18\xcc\x33\xe7\x17\x05\x6e\x79\xd2\x8b\x36\x38\x93\x0d\xb6\x52\x63\xe9\x49\xe8\x82\x66\xf7\x1b\x46\x4b\x99\x0b\xc3\x65\x40\xee\x74\x97\x5d\x10\x15\xf7\x42\x45\x69\x44\x66\xe7\x6c\xba\x7c\x8d\x42\x6f\xa6\xab\x94\xc7\x50\xce\x0e\x7e\xc8\x02\x78\x93\xf9\x71\x53\xc0\xfe\x05\xa8\x7f\x39\xe8\xa3\xd1\xe9\x76\x24\x6c\x5f\x4c\x68\xb8\xea\x9a\x44\xa4\xfc\x36\x97\x2e\xe9\xf2\xd4\x9c\x1c\x69\x3f\x8a\x22\xe9\xd3\x05\x82\x93\xa3\xc7\x85\x0a\x7f\xba\xfa\x56\xcf\x03\x85\xd6\xdf\x06\x2d\xb1\x9d\xd4\x3e\xdb\x77\x79\xd5\xd4\xbb\x20\x49\xad\x24\xf7\x8f\x25\x34\x72\x17\x4c\x96\xb1\x99\x31\x18\xfc\x31\xfa\x6b\xb5\x55\xcc\xa8\xe3\xe7\x67\x54\xd4\xa7\x20\x9d\x26\x4d\x94\x28\x44\x05\x81\x29\x34\x18\x0b\xf8\xfb\x20\x54\xf8\xb5\x22\xa8\x9e\x94\x51\xf0\xa4\x4e\xa4\x63\x09\xa7\x89\x74\xbb\x50\xd3\x6d\xd0\x76\x87\xad\xb1\xb8\x65\x8d\x82\x3e\xee\x84\x1a\xf2\xa2\x8b\x3e\xb3\x66\x3c\xde\xe7\xee\x70\x2f\xb5\x26\x14\x2d\xae\x48\xa7\xcb\xd3\x95\xd9\xcf\x33\x32\x3b\x78\x55\x3e\x7e\x0b\xef\x9f\xce\xf6\xdf\x53\x87\x3b\x6b\xcc\x7c\x25\x16\xe5\xcf\x94\xd9\xde\xe2\x91\xef\x2b\x0b\xf4\xbd\x4c\xc3\xae\x68\x22\xf0\xe2\x1e\xcf\x10\x2b\xe8\x49\x2f\xac\xe8\xd0\xc7\xeb\x6f\xd1\x34\x73\xf1\x53\x94\x41\xa4\xb9\x05\x12\xe2\x25\xfc\xa3\x25\xf9\x22\x1d\x74\x61\x63\x5c\xdb\x86\x3f\xa5\xc7\xa5\x6c\x7a\x4c\x2b\x3d\xbd\x29\x6e\xe8\x9e\xdd\x8d\xe9\x6e\xe8\x45\x27\x8a\xa0\x6f\xbe\x74\xbd\x1f\xd7\xda\xec\x27\x3d\x86\xbb\xd6\xf4\xe9\x61\x7e\xd2\xe6\x8b\x51\xb6\x10\x3f\x0d\x95\xbd\x69\x76\xb3\x72\x10\x93\xcb\x1f\x3f\xc2\x4f\xcb\xe6\x41\x3b\xb2\xf4\xe5\x6a\x8d\x73\x56\xb6\xe4\xfc\xd0\x36\x49\x53\x78\x45\x8d\x40\xe3\x49\x8d\x49\xcb\x45\x27\x39\xc1\xfc\x61\xe7\x1b\x5a\x73\xae\x49\x52\xa6\x7e\xc4\xfb\x5d\xe9\xa6\xfe\x5d\xca\x04\xe9\xe0\x37\x36\x85\x96\x21\x19\x0e\xcc\x43\xf9\xd9\xec\xec\xcb\x57\x15\xba\xf5\x52\x46\x88\x9d\x39\xe2\x26\xdf\x95\x9c\x8f\xe0\x4f\x40\xda\x30\x30\x82\x6d\x6c\xc8\x96\xd1\xc5\x1d\x55\xa4\x9c\xce\xf0\x47\x88\xe5\xad\xf1\x2f\x43\xd7\x8d\xf0\xfd\x47\x05\xff\x0b\x00\x00\xff\xff\xc6\x72\x1e\xe7\x82\x1c\x00\x00" +var _fungibletokenCdc = "\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x59\x4d\x73\xdc\xb8\x11\xbd\xf3\x57\x74\xd9\x07\xcb\xce\x58\xda\x43\x2a\x07\x57\x79\x13\xbb\xd6\xaa\xf2\x25\x49\x25\x4a\xf6\x3a\x18\xb2\x39\x83\x15\x08\x70\x01\x70\x46\xb4\xcb\xff\x3d\xd5\x8d\x0f\x82\x1c\x4a\x1a\x55\xd6\x17\x6b\x48\xa0\xd1\xdd\x78\xfd\xfa\x01\xbc\x79\xf7\xae\xaa\x5e\xc3\xdd\x01\xe1\x56\x99\x13\xdc\x0e\x7a\x2f\x77\x0a\xe1\xce\xdc\xa3\x06\xe7\x85\x6e\x84\x6d\xaa\xea\xf5\x6b\xd8\xa6\x97\xfc\x6e\x0b\xb5\xd1\xde\x8a\xda\x83\xd4\x1e\x6d\x2b\x6a\xac\x2a\x32\x94\x7f\x82\x3f\x08\x0f\x42\x29\x68\x93\x59\xcf\x66\xd3\x4c\x07\x27\x33\xa8\x06\x0e\xe2\x48\xaf\xe8\x79\x6b\x6c\x07\xde\x5c\x57\x5f\x5b\x10\x30\x38\xb4\x0e\x4e\x42\x7b\x47\xef\x1b\xec\x95\x19\x41\x80\xc6\xd3\xc2\xd4\x06\xfc\x01\xa5\xcd\xbf\xab\x60\x59\x23\x36\x34\x53\x76\xbd\xc2\x0e\xb5\xa7\x61\x30\x0b\x64\xf2\xf7\x9a\xfd\x2f\x8c\x2c\xdc\x6b\x8d\xa2\x1c\x51\x40\x64\xc5\x0e\x0a\x1d\x08\xdd\x80\x16\x9d\xd4\xfb\x8a\xc3\xf5\xb3\x0c\xb8\x1e\x6b\xd9\x4a\x74\xd7\x21\x85\xff\x15\x83\xf2\x5b\xb0\xe8\xcc\x60\x29\x61\x5f\x44\x7d\x00\x51\xd7\x66\x60\xdf\x84\x07\x73\xd2\x2e\x04\x97\xd2\x93\x82\x60\x3f\x04\x39\x4c\xfb\x52\x63\x65\x5a\x5e\x8e\x8d\x66\x9b\xe0\xbc\xb1\xd8\x80\xd4\x31\x25\xc9\x3a\x3d\x17\xfb\x18\xe5\x72\xd2\x41\x38\xe8\xd0\x1f\x4c\xe3\x20\xc7\x61\x4e\x1a\x2d\x47\x68\xfc\x01\x6d\xdc\x8e\x5a\x68\xa8\x85\x52\x31\xa4\x7f\x5a\x73\x94\x0d\xda\xed\x06\xb6\xff\xc2\x1a\xe5\x91\xff\xa6\x59\xdb\xcf\x42\x91\xa3\x53\xc0\x53\x6a\x1c\xbb\xe1\xca\x27\xd0\x60\xad\x84\x45\xe8\x2d\xbe\xaf\x8d\x6e\xa4\x97\x46\x87\x14\xf7\xc6\xf9\xf2\x19\xfb\x68\xd1\x79\x2b\x6b\x5f\x91\xb3\xf8\x80\xf5\x40\x2f\x21\xa6\xa5\x1d\x74\x1d\x06\x87\x54\x84\x90\x43\xf8\x23\xd0\x3a\x0e\x7b\x61\x85\x47\xd8\x61\x2d\x06\xf2\xc5\xc3\x5e\x1e\xd1\xf1\x70\x8a\x96\xff\x10\x3b\xa9\xa4\x1f\x69\x0b\xdc\x41\x58\xac\x04\x58\x6c\xd1\xa2\xae\x19\x17\x21\xcd\x21\xa1\x61\x0b\xb5\x1a\x01\x1f\x7a\xe3\xa2\xa9\x56\xa2\x6a\xdc\xe4\x51\x25\x35\x18\x8d\x60\x2c\x74\xc6\x62\xf2\x78\x4a\xc5\x75\x55\x7d\xa5\xd2\x71\x26\x3a\x14\x52\xbf\xf0\xa6\x13\xf7\x08\xf5\xe0\xbc\xe9\x72\x86\x63\x6a\x32\xe0\x29\x37\xf3\x2c\x53\x21\x19\x38\x0a\x2b\xcd\x40\xa3\xa5\xde\x3b\x38\x49\x7f\x60\xf3\x01\x79\xd7\xd5\xad\xb1\x80\x0f\x82\xcc\x6c\x40\x40\x2b\x86\x1a\x3d\xef\xfd\x0e\x27\xeb\xd8\xc0\x6e\x4c\x75\xcb\x35\xc0\xe9\x80\x04\x8a\x59\x71\x7d\x1e\x61\x70\x52\xef\x0b\x5f\x69\x6b\x27\xd7\x36\x31\x4c\xd3\x2e\x4a\x34\x13\x46\x45\x0e\x38\xd4\x0d\xcf\xb4\x01\x6e\xa9\x5a\x7a\x44\xfb\xde\x9b\xf7\xf4\xff\x86\x23\x32\x83\xa7\xaa\xa1\x35\x89\x04\x68\x21\xe6\x06\x0a\x56\x40\x8d\x64\x55\x81\xc2\x66\x8f\x16\x5c\x27\xac\xcf\x4b\x5d\xc3\x9d\x09\x2b\x45\xeb\xde\x80\xd0\x53\x1d\x6c\xaa\x40\x4f\xb1\x46\x1d\xa5\x64\xe4\x45\x1b\x2b\x4e\x45\x2a\xa1\xb5\xa6\x2b\x31\xc2\x54\x15\x4a\x88\x81\xdb\x60\x6f\x9c\xf4\x19\x1d\x60\xf4\x6c\xa5\x37\x2e\x61\x8b\x18\x92\x32\xef\x31\xd8\xb7\x42\xbb\x16\xed\x75\x55\xbd\xbb\xa9\xaa\x9b\x1b\xe6\xf1\x4e\x48\xbd\xe4\xf1\x62\x17\x6e\x6e\xe0\x1f\x6c\xfa\x71\x4e\x96\x4a\xcd\x08\x53\xba\x82\xe2\x6f\x6e\xaa\x7e\xd8\xad\x90\xff\x62\xcb\xbe\x57\x15\x00\x40\x74\xca\x1b\x2f\x14\xe8\xa1\xdb\xa1\x65\xb4\x87\xd4\x48\x0d\xf8\x20\x9d\xa7\x4a\xba\x4e\xe3\xbf\x7a\x90\x0e\x86\x3e\x96\x56\x01\x36\x4b\x8f\x50\xbb\xc1\xc6\xde\x12\xcc\xba\xa1\xef\xd5\x98\xa6\x3b\x2f\x46\x47\xa4\x37\x70\x69\x13\x4e\x82\xad\x46\x78\xe4\x41\xe4\xff\x51\xd8\x30\xfb\xdf\x3c\xf9\x03\xfc\xe7\x56\x3e\xfc\xe5\xcf\xd9\xe9\x2f\x47\x4c\x84\x2c\x1d\x60\x27\x3d\x61\xfd\x44\x1b\x47\x3e\x4d\xe1\x3b\xa8\x2d\x0a\x8f\x4d\x36\x8d\x3c\x95\xb3\xe0\xbe\x6a\xe9\xa5\x50\xf2\x1b\x36\x57\x32\xfc\x3d\x5f\xf0\xed\x45\x2b\x86\x6c\x11\x65\x25\x80\xe9\x00\x2b\x11\xa0\xb1\xba\xf6\xaf\x69\xe8\x95\xe8\xa8\x01\xa4\x25\x37\x3c\xf5\x03\x7c\x6a\x1a\x8b\xce\xfd\xf5\xa5\x2e\x44\xbc\x86\x9e\xf4\x94\x03\xbf\xa4\x81\x67\x0e\x78\xb3\xb6\x7c\x22\x8d\xf8\x3b\xe3\x61\xae\x27\x90\xb8\xa6\x8e\xc4\x6a\xf1\xf7\x41\x5a\x46\x87\x83\xd6\xd8\x9c\x1f\xe2\xa2\x38\x7f\x51\x86\x13\x9e\x98\x16\xc6\x3e\x23\x2f\x4d\xf8\x15\xa1\x31\xfa\x4d\x5e\x6a\xbe\x8a\xd1\xb0\xdd\xa5\xbe\x76\x40\x8b\x9b\x34\xaf\xe8\x22\x0a\x05\xb1\xb6\xe9\x23\x5e\x7a\xe3\x9c\x8c\xc4\x6d\xda\x00\x19\x5a\x3e\x92\x77\x1f\x23\x77\xd9\x67\x8a\x34\x38\xa1\xb1\x46\xe7\x84\x95\x6a\x8c\x4a\x80\xa9\xc4\x9c\x34\x44\x37\x66\xfe\xd3\x26\x9c\x77\xdb\x89\x90\x63\x5d\xc6\x75\x52\xba\x8a\x67\xe5\xeb\xdb\x44\x49\xec\x8f\x1b\x76\x91\x22\x96\x29\x65\xa1\x90\x78\xaa\x34\x10\x58\xda\x0f\x96\xb0\xb3\xd4\x1c\xb9\xe7\x58\xec\xcc\x11\x9b\xdc\x7b\xd6\x9d\xb9\x2b\x7a\xfa\x1b\xae\x70\x74\x0e\x14\x1e\x51\x11\x5c\xfb\x61\xa7\x64\xbd\x81\xdd\x90\x38\xcb\x51\xfa\x04\x25\x77\xa7\xb0\x2b\x4d\xa5\x9d\xe2\x46\x3d\x29\x1d\x6e\x2e\xde\x58\x06\x06\xfb\x95\xf3\x38\xd7\x52\xa5\xad\x9a\x15\x19\x97\xb6\x1a\x99\xd5\xc3\xf2\xc9\xd5\xa7\xc2\x09\xcb\x76\x62\x84\xbd\x15\xda\x47\x99\x15\x17\xc9\x21\x52\x87\x4d\x80\xa1\x70\xe4\x31\x31\x59\x76\xa1\xcf\xaa\x80\x36\x2a\xb4\x24\xc1\x6a\x35\x2a\xd0\x7a\x26\xe1\xa8\x70\xd9\x76\x69\x85\x71\x9a\x60\x92\x43\xf7\x07\x6b\x86\x3d\xb5\xcb\xac\x79\x2e\x8b\x28\x88\x17\x0e\x8b\x72\xf2\x4c\x50\xbc\x79\x97\xc6\x44\xf6\x56\xc3\x99\xc5\x50\x5a\x7b\x71\x38\x54\x46\xed\xa0\x73\x81\x2c\x28\xec\xed\x07\xf8\x5b\x40\xf3\xf7\x3c\x85\xa7\x19\xb7\x7c\x14\x3d\xd8\x5a\x74\x51\xfb\xb7\xd1\xe7\x00\x31\x2a\x0e\x38\x0a\x35\xe0\xd9\xb4\x30\xe5\x3a\x96\x39\x7c\xfc\x08\xd1\x8b\xb3\x91\xf4\xef\x55\x22\x7c\xa1\xe2\x38\xe8\x06\xe7\x49\xaf\xd1\x4a\x4e\x74\x08\x22\xa4\x28\x59\x8c\xba\x73\x6a\x2a\x1c\xd3\xab\x99\xf9\x1f\xd5\xfc\xaf\x1f\x99\xaf\x93\xda\xff\x7f\xf8\x3a\x36\x93\x73\xba\x96\x7a\xd9\xfe\x9f\xa5\x6b\xa9\x6b\x35\x34\x48\xca\x2e\x1d\x14\x82\x0b\xf5\x01\xeb\xfb\x79\xe4\x91\x01\x92\x8d\x13\xf2\x29\x93\x76\x85\xf4\xf6\x25\x72\x3b\xc4\x1e\xe4\x76\x55\x70\x41\x63\xd2\x98\x75\x69\xbd\x01\x25\xef\xe9\x64\xa8\x24\x9f\xb2\x3a\x92\x27\x42\x37\x59\xbf\xb0\xe6\xa4\xe7\xa4\x59\x64\xcb\x28\xf5\xd0\xab\x70\x2e\x80\x67\xa9\x3e\x6d\xcb\x82\xea\x63\xa6\x2f\x62\xfa\x28\xf3\x89\xcc\x42\x9b\x4f\x1a\x35\x84\x50\x4e\x5c\xdf\xa7\xa9\xde\xc6\x1e\x9f\xaa\xaf\x68\xf8\x2a\x48\x92\x50\x53\x6f\x97\x45\x65\x71\xa5\xa6\x68\x46\x2e\x8d\x9f\x63\x5d\x5e\xfd\xf4\xf6\x91\xe2\x88\x62\x24\x03\x20\x95\x46\x80\xdf\x11\x2f\x05\x7d\x3c\xd2\x3e\x8d\x79\x92\x87\x42\xea\x80\xa0\x49\x2d\xf0\x31\x10\xca\x53\x7b\x9a\x4f\x7d\xb2\x28\x14\xe2\x3b\x52\x5d\x1a\x4f\x61\xdc\x9b\x20\xbd\xa2\xd4\xdc\x94\x50\x4e\x26\x58\xa5\x67\xb5\x09\xb5\xb1\x16\x6b\xaf\xc6\x4b\x20\x13\x83\x5a\x20\x66\x12\xee\x0b\xbe\x88\x5c\xfe\xc6\x2d\xf1\x90\x94\x75\x1c\x3f\x57\xd5\xf4\x8f\x3c\xbc\x5a\xbc\x3d\xdb\xee\x75\x0e\x75\xa8\xda\x92\x0a\x93\x95\xf5\xed\xfe\xbc\xd8\xe6\x32\x35\x09\xb0\xe1\x51\x32\x74\x29\x00\xca\x7d\x2b\x8f\x38\x45\x8b\x59\x22\x60\xba\x89\xf0\xe6\xb1\xd3\xeb\x92\xd5\xee\xf8\x64\x58\x2b\x61\x45\xba\xd4\x60\x5e\xab\x2d\x1f\xff\xc6\x9e\x55\x89\x58\x3b\x88\x75\x28\xf4\x9c\x97\xf0\x88\x76\x5c\x1e\x0a\xf3\xcc\xf9\x85\x81\x5b\x9e\xf8\xa2\x0d\xce\x64\x83\xad\xd4\x58\x7a\x12\xba\xa0\xd9\xfd\x86\xd1\x52\xe6\xc2\x70\x29\x90\x3b\xdd\x65\x17\x45\xc5\xfd\x50\x51\x1a\x91\xd9\x39\x9b\x2e\x5f\xa7\xd0\x9b\xe9\x4a\xe5\x31\x94\xb3\x83\x1f\xb2\x00\xde\x64\x7e\xdc\x14\xb0\x7f\x01\xea\x5f\x0e\xfa\x68\x74\xba\x25\x09\xdb\x17\x13\x1a\xae\xbc\x26\x11\x29\xbf\xcd\xa5\x4b\xba\x44\x35\x27\x47\xda\x8f\xa2\x48\xfa\x74\x81\xe0\xe4\xe8\x71\xa1\xc2\x9f\xae\xbe\xd5\xf3\x40\xa1\xf5\xb7\x41\x4b\x6c\x27\xb5\xcf\xf6\x5d\x5e\x35\xf5\x2e\x48\x52\x2b\xc9\xfd\x63\x09\x8d\xdc\x05\x93\x65\x6c\x66\x0c\x06\x7f\x8c\xfe\x5a\x6d\x15\x33\xea\xf8\xf9\x19\x15\xf5\x29\x48\xa7\x49\x13\x25\x0a\x51\x41\x60\x0a\x0d\xc6\x02\xfe\x3e\x08\x15\x7e\xad\x08\xaa\x27\x65\x14\x3c\xa9\x13\xe9\x58\xc2\x69\x22\xdd\x2e\xd4\x74\x2b\xb4\xdd\x61\x6b\x2c\x6e\x59\xa3\xa0\x8f\x3b\xa1\x86\xbc\xe8\xa2\xcf\xac\x19\x8f\xf7\xba\x3b\xdc\x4b\xad\x09\x45\x8b\xab\xd2\xe9\x12\x75\x65\xf6\xf3\x8c\xcc\x0e\x5e\x95\x8f\xdf\xc2\xfb\xa7\xb3\xfd\xf7\xd4\xe1\xce\x1a\x33\x5f\x8d\x45\xf9\x33\x65\xb6\xb7\x78\xe4\x7b\xcb\x02\x7d\x2f\xd3\xb0\x2b\x9a\x08\xbc\xb8\xc7\x33\xc4\x0a\x7a\xd2\x0b\x2b\x3a\xf4\xf1\x1a\x5c\x34\xcd\x5c\xfc\x14\x65\x10\x69\x6e\x81\x84\x78\x19\xff\x68\x49\xbe\x48\x07\x5d\xd8\x18\xd7\xb6\xe1\x4f\xe9\x71\x29\x9b\x1e\xd3\x4a\x4f\x6f\x8a\x1b\xba\x67\x77\x63\xba\x23\x7a\xd1\x89\x22\xe8\x9b\x2f\x5d\xef\xc7\xb5\x36\xfb\x49\x8f\xe1\xce\x35\x7d\x82\x98\x9f\xb4\xf9\x82\x94\x2d\xc4\x4f\x44\x65\x6f\x9a\xdd\xac\x1c\xc4\xe4\xf2\xc7\x8f\xf0\xd3\xb2\x79\xd0\x8e\x2c\x7d\xb9\x5a\xe3\x9c\x95\x2d\x39\x3f\xb4\x4d\xd2\x14\x5e\x51\x23\xd0\x78\x52\x63\xd2\x72\xd1\x49\x4e\x30\x7f\xe0\xf9\x86\xd6\x9c\x6b\x92\x94\xa9\x1f\xf1\x9e\x57\xba\xa9\x7f\x97\x32\x41\x3a\xf8\x8d\x4d\xa1\x65\x48\x86\x03\xf3\x50\x7e\x3e\x3b\xfb\x02\x56\x85\x6e\xbd\x94\x11\x62\x67\x8e\xb8\xc9\x77\x25\xe7\x23\xf8\x53\x90\x36\x0c\x8c\x60\x1b\x1b\xb2\x65\x74\x71\x47\x15\x29\xa7\x33\xfc\x31\x62\x79\x7b\xfc\xcb\xd0\x75\x23\x7c\xff\x51\xc1\xff\x02\x00\x00\xff\xff\xb9\x57\xa9\xfb\x8a\x1c\x00\x00" func fungibletokenCdcBytes() ([]byte, error) { return bindataRead( @@ -129,7 +129,7 @@ func fungibletokenCdc() (*asset, error) { } info := bindataFileInfo{name: "FungibleToken.cdc", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd5, 0x44, 0xba, 0xe4, 0xa7, 0x45, 0x70, 0x84, 0xd3, 0x34, 0x8c, 0x59, 0xb7, 0x19, 0x8d, 0xb9, 0x63, 0x5b, 0x2d, 0xc7, 0x8c, 0xa2, 0xfa, 0xc8, 0xd, 0x16, 0x7e, 0x96, 0x2d, 0xad, 0xec, 0xfd}} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd9, 0xde, 0xd5, 0x68, 0x7c, 0x88, 0xc9, 0xa8, 0x1e, 0xd, 0xee, 0xbe, 0x78, 0xd1, 0xb4, 0x65, 0xce, 0x74, 0x82, 0x74, 0x6c, 0x7b, 0xd8, 0x25, 0x89, 0x19, 0x24, 0x99, 0x66, 0x9b, 0x3d, 0x17}} return a, nil } diff --git a/src/contracts/FlowToken.cdc b/src/contracts/FlowToken.cdc index 9da3b50c..550304ff 100644 --- a/src/contracts/FlowToken.cdc +++ b/src/contracts/FlowToken.cdc @@ -1,45 +1,31 @@ -/** - -# FlowToken example contract - -This is an example implementation of the Flow Fungible Token standard. -Is not part of the standard, but just shows how most tokens -should implement the standard, including the Flow network token itself. - -The FlowToken contract only needs to be deployed in one account. -The only part of the contract that would be stored in each user's account -is the Vault object, below - -The implementation does not need to redefine the interfaces that are -already defined in the Fungible Token interface - -*/ - import FungibleToken from 0x02 pub contract FlowToken: FungibleToken { - // Total supply of flow tokens in existence + // Total supply of Flow tokens in existence pub var totalSupply: UFix64 // Event that is emitted when the contract is created - pub event FungibleTokenInitialized(initialSupply: UFix64) + pub event TokensInitialized(initialSupply: UFix64) // Event that is emitted when tokens are withdrawn from a Vault - pub event Withdraw(amount: UFix64, from: Address?) + pub event TokensWithdrawn(amount: UFix64, from: Address?) // Event that is emitted when tokens are deposited to a Vault - pub event Deposit(amount: UFix64, to: Address?) + pub event TokensDeposited(amount: UFix64, to: Address?) // Event that is emitted when new tokens are minted - pub event Mint(amount: UFix64) + pub event TokensMinted(amount: UFix64) // Event that is emitted when tokens are destroyed - pub event Burn(amount: UFix64) + pub event TokensBurned(amount: UFix64) - // Event that is emitted when a mew minter resource is created + // Event that is emitted when a new minter resource is created pub event MinterCreated(allowedAmount: UFix64) + // Event that is emitted when a new burner resource is created + pub event BurnerCreated() + // Vault // // Each user stores an instance of only the Vault in their storage @@ -73,7 +59,7 @@ pub contract FlowToken: FungibleToken { // pub fun withdraw(amount: UFix64): @FungibleToken.Vault { self.balance = self.balance - amount - emit Withdraw(amount: amount, from: self.owner?.address) + emit TokensWithdrawn(amount: amount, from: self.owner?.address) return <-create Vault(balance: amount) } @@ -87,7 +73,7 @@ pub contract FlowToken: FungibleToken { pub fun deposit(from: @FungibleToken.Vault) { let vault <- from as! @FlowToken.Vault self.balance = self.balance + vault.balance - emit Deposit(amount: vault.balance, to: self.owner?.address) + emit TokensDeposited(amount: vault.balance, to: self.owner?.address) vault.balance = 0.0 destroy vault } @@ -108,20 +94,39 @@ pub contract FlowToken: FungibleToken { return <-create Vault(balance: 0.0) } - // MintAndBurn + pub resource Administrator { + // createNewMinter + // + // Function that creates and returns a new minter resource + // + pub fun createNewMinter(allowedAmount: UFix64): @Minter { + emit MinterCreated(allowedAmount: allowedAmount) + return <-create Minter(allowedAmount: allowedAmount) + } + + // createNewBurner + // + // Function that creates and returns a new burner resource + // + pub fun createNewBurner(): @Burner { + emit BurnerCreated() + return <-create Burner() + } + } + + // Minter // - // Resource object that token admin accounts could hold - // to mint and burn new tokens. + // Resource object that token admin accounts can hold to mint new tokens. // - pub resource MintAndBurn { + pub resource Minter { // the amount of tokens that the minter is allowed to mint pub var allowedAmount: UFix64 // mintTokens // - // Function that mints new tokens, adds them to the total Supply, - // and returns them to the calling context + // Function that mints new tokens, adds them to the total supply, + // and returns them to the calling context. // pub fun mintTokens(amount: UFix64): @FlowToken.Vault { pre { @@ -130,58 +135,48 @@ pub contract FlowToken: FungibleToken { } FlowToken.totalSupply = FlowToken.totalSupply + amount self.allowedAmount = self.allowedAmount - amount - emit Mint(amount: amount) + emit TokensMinted(amount: amount) return <-create Vault(balance: amount) } + init(allowedAmount: UFix64) { + self.allowedAmount = allowedAmount + } + } + + // Burner + // + // Resource object that token admin accounts can hold to burn tokens. + // + pub resource Burner { + // burnTokens // - // Function that takes a Vault as an argument, subtracts its balance - // from the total supply, then destroys the Vault, - // thereby removing the tokens from existence. + // Function that destroys a Vault instance, effectively burning the tokens. // - // Returns the amount that was burnt. + // Note: the burned tokens are automatically subtracted from the + // total supply in the Vault destructor. // pub fun burnTokens(from: @FungibleToken.Vault) { let vault <- from as! @FlowToken.Vault let amount = vault.balance destroy vault - emit Burn(amount: amount) - } - - // createNewMinter - // - // Function that creates and returns a new minter resource - // - pub fun createNewMinter(allowedAmount: UFix64): @MintAndBurn { - emit MinterCreated(allowedAmount: allowedAmount) - return <-create MintAndBurn(allowedAmount: allowedAmount) - } - - init(allowedAmount: UFix64) { - self.allowedAmount = allowedAmount + emit TokensBurned(amount: amount) } } - // The initializer for the contract. All fields in the contract must - // be initialized at deployment. This is just an example of what - // an implementation could do in the initializer. - // - // The numbers are arbitrary. - // - init() { - // Initialize the totalSupply field to the initial balance - self.totalSupply = 1000.0 + init(adminAccount: AuthAccount) { + self.totalSupply = 0.0 // Create the Vault with the total supply of tokens and save it in storage // let vault <- create Vault(balance: self.totalSupply) - self.account.save(<-vault, to: /storage/flowTokenVault) + adminAccount.save(<-vault, to: /storage/flowTokenVault) // Create a public capability to the stored Vault that only exposes // the `deposit` method through the `Receiver` interface // - self.account.link<&FlowToken.Vault{FungibleToken.Receiver}>( + adminAccount.link<&FlowToken.Vault{FungibleToken.Receiver}>( /public/flowTokenReceiver, target: /storage/flowTokenVault ) @@ -189,18 +184,15 @@ pub contract FlowToken: FungibleToken { // Create a public capability to the stored Vault that only exposes // the `balance` field through the `Balance` interface // - self.account.link<&FlowToken.Vault{FungibleToken.Balance}>( + adminAccount.link<&FlowToken.Vault{FungibleToken.Balance}>( /public/flowTokenBalance, target: /storage/flowTokenVault ) - // Create a new MintAndBurn resource and store it in account storage - let mintAndBurn <- create MintAndBurn(allowedAmount: 100.0) - self.account.save(<-mintAndBurn, to: /storage/flowTokenMintAndBurn) + let admin <- create Administrator() + adminAccount.save(<-admin, to: /storage/flowTokenAdmin) // Emit an event that shows that the contract was initialized - emit FungibleTokenInitialized(initialSupply: self.totalSupply) + emit TokensInitialized(initialSupply: self.totalSupply) } } - - \ No newline at end of file diff --git a/src/contracts/FungibleToken.cdc b/src/contracts/FungibleToken.cdc index df68df6b..68876d6c 100644 --- a/src/contracts/FungibleToken.cdc +++ b/src/contracts/FungibleToken.cdc @@ -51,13 +51,13 @@ pub contract interface FungibleToken { pub var totalSupply: UFix64 // Event that is emitted when the contract is created - pub event FungibleTokenInitialized(initialSupply: UFix64) + pub event TokensInitialized(initialSupply: UFix64) // Event that is emitted when tokens are withdrawn from a Vault - pub event Withdraw(amount: UFix64, from: Address?) + pub event TokensWithdrawn(amount: UFix64, from: Address?) // Event that is emitted when tokens are deposited to a Vault - pub event Deposit(amount: UFix64, to: Address?) + pub event TokensDeposited(amount: UFix64, to: Address?) // Provider // diff --git a/test/go.mod b/test/go.mod index 7068221d..4d4632d2 100644 --- a/test/go.mod +++ b/test/go.mod @@ -4,7 +4,7 @@ go 1.13 require ( github.com/dapperlabs/flow-emulator v1.0.0-alpha.7.0.20200522225230-51e97f42cb03 - github.com/onflow/cadence v0.3.0-beta3.0.20200522221348-6e99c1cc6bc8 + github.com/onflow/cadence v0.3.0-beta4.0.20200524043105-6b94cabe6a65 github.com/onflow/flow-go-sdk v0.3.0-beta1 github.com/stretchr/testify v1.5.1 ) diff --git a/test/go.sum b/test/go.sum index 299a8d17..48c13034 100644 --- a/test/go.sum +++ b/test/go.sum @@ -62,6 +62,7 @@ github.com/aws/aws-sdk-go v1.25.48/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpi github.com/axw/gocov v1.0.0/go.mod h1:LvQpEYiwwIb2nYkXY2fDWhg9/AsYqkhmrCshjlUJECE= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/btcsuite/btcd v0.0.0-20171128150713-2e60448ffcc6/go.mod h1:Dmm/EzmjnCiweXmzRIAiUWCInVmPgjkzgv5k4tVyXiQ= github.com/btcsuite/btcd v0.0.0-20190213025234-306aecffea32/go.mod h1:DrZx5ec/dmnfpw9KyYoQyYo7d0KEvTkk/5M/vbZjAr8= @@ -82,6 +83,7 @@ github.com/cespare/cp v0.1.0/go.mod h1:SOGHArjBr4JWaSDEVpWpo/hNg6RoKrls6Oh40hiwW github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.0.1-0.20190104013014-3767db7a7e18/go.mod h1:HD5P3vAIAh+Y2GAxg0PrPN1P8WkepXGpjbUPDHJqqKM= +github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= @@ -104,6 +106,8 @@ github.com/dapperlabs/flow-emulator v1.0.0-alpha.7.0.20200522225230-51e97f42cb03 github.com/dapperlabs/flow-emulator v1.0.0-alpha.7.0.20200522225230-51e97f42cb03/go.mod h1:c2n0nG7Wikp17yPuaAer9xaJLzjGcOCfEKiM29MQia4= github.com/dapperlabs/flow-go v0.3.2-0.20200520200337-3476e94b144b h1:ZBwPx8vlkkotdxh0UO/vlmx0lIT7PDaJJ0FGCcAMSyY= github.com/dapperlabs/flow-go v0.3.2-0.20200520200337-3476e94b144b/go.mod h1:qdTB1Q5uKj4uRq2ztmCMV9tggmkFUfE2HXOZVsD6PpM= +github.com/dapperlabs/flow-go v0.3.2-0.20200524173840-eafdd749ee5d h1:VS2qNkzIUTG7lWKlSe5bRWda/nGJe14nhEUnejiXILI= +github.com/dapperlabs/flow-go v0.3.2-0.20200524173840-eafdd749ee5d/go.mod h1:HmZLRcKPTgbuyoJm/U7OnCCH1xmRVVm2T9YzwIupJ6E= github.com/dapperlabs/flow-go/crypto v0.3.2-0.20200312195452-df4550a863b7/go.mod h1:6UyHoekg86OJnzTz9hp3Ubzp2ZkrDMFg2krGbVEiloU= github.com/dapperlabs/flow-go/crypto v0.3.2-0.20200505040645-6043e0fe5246 h1:Do+yDKdrWcyFGvDdhQ7SthDADpHgoD47D8xB2Vyz7yc= github.com/dapperlabs/flow-go/crypto v0.3.2-0.20200505040645-6043e0fe5246/go.mod h1:DtpZLXm4h787U0fkDZ6F9/S3vpRr/JT8xFNJ9mfKzXw= @@ -382,6 +386,7 @@ github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-tty v0.0.3/go.mod h1:ihxohKRERHTVzN+aSVRwACLCeqIoZAWpoICkkvrWyR0= +github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/miekg/dns v1.1.12/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= @@ -436,6 +441,8 @@ github.com/onflow/cadence v0.3.0-beta3 h1:muvmL9o0iqyUVL8XCAlhzAiJsX42syvk9GmEkt github.com/onflow/cadence v0.3.0-beta3/go.mod h1:GaLQ7IsJi5bqpH66GprNs8uoQtperK/xbXXIOq11nZw= github.com/onflow/cadence v0.3.0-beta3.0.20200522221348-6e99c1cc6bc8 h1:hSdP8PyuFn61VzrQN9XU01pZvBbvPqoryPOXUKDAaOA= github.com/onflow/cadence v0.3.0-beta3.0.20200522221348-6e99c1cc6bc8/go.mod h1:GaLQ7IsJi5bqpH66GprNs8uoQtperK/xbXXIOq11nZw= +github.com/onflow/cadence v0.3.0-beta4.0.20200524043105-6b94cabe6a65 h1:1ZqKddG0CVWgxJiFmo23eaN0bcIBRu29QFjYLGWdNE0= +github.com/onflow/cadence v0.3.0-beta4.0.20200524043105-6b94cabe6a65/go.mod h1:GaLQ7IsJi5bqpH66GprNs8uoQtperK/xbXXIOq11nZw= github.com/onflow/flow-go-sdk v0.3.0-beta1 h1:HmAqosPHLoNmYfhUECsSFpvSD4kWIkJ+Xs8LAJijKDc= github.com/onflow/flow-go-sdk v0.3.0-beta1/go.mod h1:8v6vcYGh5/PtYcM3IXflLcCb00I91WDbnNF8SjirnlI= github.com/onflow/flow/protobuf/go/flow v0.1.4 h1:xRdLYCxR/V6lq03ElK3g0T/F8pCIpLrKs2IHQTYr9rM= @@ -448,6 +455,7 @@ github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/pborman/uuid v0.0.0-20170112150404-1b00554d8222/go.mod h1:VyrYX9gd7irzKovcSS6BIIEwPRkP2Wm2m9ufcdFSJ34= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= @@ -464,20 +472,24 @@ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXP github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= +github.com/prometheus/client_golang v1.5.1 h1:bdHYieyGlH+6OLEk2YQha8THib30KP0/yD0YH9m6xcA= github.com/prometheus/client_golang v1.5.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= +github.com/prometheus/common v0.9.1 h1:KOMtN28tlbam3/7ZKEYKHhKoJZYYj3gMH4uc62x7X7U= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.8 h1:+fpWZdT24pJBiqJdAwYBjPSk+5YmQzYNPYzQsdzLkt8= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/tsdb v0.6.2-0.20190402121629-4f204dcbc150/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= @@ -538,7 +550,9 @@ github.com/syndtr/goleveldb v1.0.0/go.mod h1:ZVVdQEZoIme9iO1Ch2Jdy24qqXrMMOU6lpP github.com/syndtr/goleveldb v1.0.1-0.20190923125748-758128399b1d/go.mod h1:9OrXJhf154huy1nPWmuSrkgjPUtUNhA+Zmy+6AESzuA= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tyler-smith/go-bip39 v1.0.1-0.20181017060643-dbb3b84ba2ef/go.mod h1:sJ5fKU0s6JVwZjjcUEX2zFOnvq0ASQ2K9Zr6cf67kNs= +github.com/uber/jaeger-client-go v2.22.1+incompatible h1:NHcubEkVbahf9t3p75TOCR83gdUHXjRJvjoBh1yACsM= github.com/uber/jaeger-client-go v2.22.1+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= +github.com/uber/jaeger-lib v2.2.0+incompatible h1:MxZXOiR2JuoANZ3J6DE/U0kSFv/eJ/GfSYVCjK7dyaw= github.com/uber/jaeger-lib v2.2.0+incompatible/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= @@ -570,6 +584,7 @@ go.opencensus.io v0.22.1/go.mod h1:Ap50jQcDJrx6rB6VgeeFPtuPIf3wMRvRfrfYDO6+BmA= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.5.1 h1:rsqfU5vBkVknbhUGbAUwQKR2H4ItV8tjJ+6kJX4cxHM= go.uber.org/atomic v1.5.1/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= diff --git a/test/token_test.go b/test/token_test.go index 1e58dc81..85ee83b3 100644 --- a/test/token_test.go +++ b/test/token_test.go @@ -1,9 +1,12 @@ package test import ( + "encoding/hex" + "fmt" "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "github.com/onflow/flow-go-sdk" "github.com/onflow/flow-go-sdk/crypto" @@ -412,3 +415,105 @@ func TestMintingAndBurning(t *testing.T) { executeScriptAndCheck(t, b, GenerateInspectSupplyScript(fungibleAddr, flowAddr, 1000)) }) } + +func TestTokenAdministrator(t *testing.T) { + b := newEmulator() + + // Should be able to deploy a contract as a new account with no keys. + fungibleTokenCode := readFile(fungibleTokenContractFile) + _, err := b.CreateAccount(nil, fungibleTokenCode) + assert.NoError(t, err) + + _, err = b.CommitBlock() + assert.NoError(t, err) + + // Should be able to deploy a contract as a new account with no keys. + flowTokenCode := readFile(flowTokenContractFile) + + setupScript := fmt.Sprintf(` + transaction { + prepare(signer: AuthAccount) { + let flowTokenAcct = AuthAccount(payer: signer) + + let admin = signer + flowTokenAcct.setCode("%s".decodeHex(), admin) + } + } + `, hex.EncodeToString(flowTokenCode)) + + setupTx := flow.NewTransaction(). + SetScript([]byte(setupScript)). + AddAuthorizer(b.RootKey().Address). + SetPayer(b.RootKey().Address). + SetProposalKey(b.RootKey().Address, b.RootKey().ID, b.RootKey().SequenceNumber) + + err = setupTx.SignEnvelope(b.RootKey().Address, b.RootKey().ID, b.RootKey().Signer()) + require.NoError(t, err) + + err = b.AddTransaction(*setupTx) + require.NoError(t, err) + + result, err := b.ExecuteNextTransaction() + require.NoError(t, err) + + if !assert.Nil(t, result.Error) { + t.Fatal(result.Error) + } + + _, err = b.CommitBlock() + require.NoError(t, err) + + mintScript := ` + import FungibleToken from 0x02 + import FlowToken from 0x06 + + transaction { + let tokenAdmin: &FlowToken.Administrator + let tokenReceiver: &FlowToken.Vault{FungibleToken.Receiver} + + prepare(signer: AuthAccount) { + self.tokenAdmin = signer + .borrow<&FlowToken.Administrator>(from: /storage/flowTokenAdmin) + ?? panic("Signer is not the token admin") + + self.tokenReceiver = signer + .getCapability(/public/flowTokenReceiver)! + .borrow<&FlowToken.Vault{FungibleToken.Receiver}>() + ?? panic("Unable to borrow receiver reference") + } + + execute { + let minter <- self.tokenAdmin.createNewMinter(allowedAmount: 100.0) + let mintedVault <- minter.mintTokens(amount: 100.0) + + self.tokenReceiver.deposit(from: <-mintedVault) + + log("Minted 100 tokens and deposited to admin account") + + destroy minter + } + } + ` + + mintTx := flow.NewTransaction(). + SetScript([]byte(mintScript)). + AddAuthorizer(b.RootKey().Address). + SetPayer(b.RootKey().Address). + SetProposalKey(b.RootKey().Address, b.RootKey().ID, b.RootKey().SequenceNumber) + + err = mintTx.SignEnvelope(b.RootKey().Address, b.RootKey().ID, b.RootKey().Signer()) + require.NoError(t, err) + + err = b.AddTransaction(*mintTx) + require.NoError(t, err) + + result, err = b.ExecuteNextTransaction() + require.NoError(t, err) + + if !assert.Nil(t, result.Error) { + t.Fatal(result.Error) + } + + _, err = b.CommitBlock() + require.NoError(t, err) +}